Releases: cerfacs-globc/icclim
v5.3.0
icclim v5.3.0 is a important release with many changes.
Overall it improves icclim outputted metadata, improves slice_mode
API with new modes, eases the use of dates parameter and adds the possibility to give percentiles as an input instead of a computing them.
Changelog
- [enh] Add icclim version to history in outputted metadata.
- [maint] breaking change Pin minimal pandas version to 1.3 to have the fix for pandas-dev/pandas#24539
- [enh]
slice_mode
: seasons can now be defined to be between two exact dates. - [enh]
slice_mode
type can now be tuple[str, list], it works similarly to the list in input of seasons but, it enforces a length of 2. - [enh]
slice_mode
: Addedclipped_season
keyword which ignores events starting before the season bounds (original behavior ofseason
). - [maint]
slice_mode
: Modifiedseason
keyword to take into account events (such as in CDD) starting before the season bounds.
This should improve the scientific validity of these seasonal computations. Plus it is in accordance to xclim way of doing this. - [maint] Added dataclass ClimateIndex to ease the introduction of new indices not in the ECAD standard.
- [maint] Made use the new typing syntax thanks to
from __future__ import annotations
. - [maint] Add docstring validation into flake8 checks.
- [enh] Improve API for date related parameters
{time_range, base_period_time_range, ref_time_range}
They can still be filled with a datetime object but additionally various string format are now available.
This comes with dateparser library. - [doc] Update callback doc as its outputted value is very inaccurate when dask is enable.
- [enh] T(X/N/G)(10/90)p indices threshold is now configurable with
threshold
parameter.
Example of use:icclim.tx90p(in_files=data, threshold=[42, 99])
- [enh|maint] threshold, history and source metadata have been updated to better describe what happens during icclim process.
- [fix/doc] The documentation of the generated API for T(X/N/G)(10/90)p indices now properly use thier ECAD definitions instead of those from ETCCDI.
- [enh/doc] Add [WSDI, CSDI, rxxp, rxxpTOT, CW, CD, WW, WD] indices in yaml definition.
Note: We no longer strictly follow the yaml given by clix-meta. - [fix] custom seasonal slice_mode was broken when it ended in december. It's now fixed and unit tested.
- [enh] Make
in_file
accept a dictionary merging togethervar_name
andin_file
features. - [enh]
in_file
dictionary can now be used to pass percentiles thresholds. These thresholds will be used instead of computing them on relevant indices. - [maint/internal] Refactored IndexConfig and moved all the logic to input_parsing.
- [enh] R(75/95/99)P and R(75/95/99)PTOT indices threshold is now configurable with
threshold
parameter.
Example of use:icclim.r75p(in_files=data, threshold=60)
- [enh] Update metadata of indices when a custom threshold is used.
BREAKING CHANGE: The outputted variable name now also contains the thresholds (e.g. SU_35_42 for index_name="SU" and threshold=[35, 42]) - [maint] Rename IndexConfig::threshold in IndexConfig::scalar_thresholds to avoid confusion with the thresholds given in in_files.
Diff: 5.2.1...v5.3.0
v5.2.2
v5.2.1
This 5.2.1 release supersedes 5.2.0 which had unpolished finishes.
As usual the package is available on pypi and conda-forge.
Breaking changes
None
Bug fixes
slice_mode
seasonal samplings was giving wrong results for quite a few indices. This has been fixed and the performances should also be improved by the fix.
However, now seasonal slice_mode does not allow to use xclim missing values mechanisms.
user_index ExtremeMode config was not properly parsed when a string was used.
user_index Anomaly operator was not properly using the ref_time_range
to setup a reference period as it should.
user_index Sum and Mean operators were broken due to a previous refactoring and a lack of unit tests, it is now fixed and tested.
create_optimized_zarr_store
would throw an error when creating the first temp store if the chunks were not unified.
Internal changes
Made Frequency part of SliceMode union.
Changed how rechunker
dependency is pinned to add flexibility. We want a version above '0.3' but not the '0.4'.
For the newly generate API, on custom_index
function, the parameter user_index
is now mandatory.
Update release process.
Enhancements
Improve create_optimized_zarr_store
to accept a chunking schema instead of a single dim.
Make use of fsspec
to generalize the storages where create_optimized_zarr_store
can create its zarr stores.
Make CSDI and WSDI threshold configurable using the threshold
parameter of icclim.index.
Add a function in icclim
namespace for each ECA&D index for convenience.
Improved documentation about chunking.
Improved dev documentation display on readthedocs.
v5.1.0
Breaking changes
- Parameter
out_file
default value is now None. When it is None,icclim.index
does not write the output on a netCDF. - Minimal required xclim version is now 0.34
- Pinned dask dependency:
dask<2022.01.1
for rechunker 0.3.3 to work.
API changes
- Added
icclim.indices
to compute multiple indices at once. - Added experimental feature
icclim.create_optimized_zarr_store
. It is a context manager which can be used to rechunk a dataset using without any chunk on the specified dimension. It makes use ofrechunker
[0] library.
Bug fixes
- Fixed WSDI and CSDI. They were computing percentiles on the wrong period.
- Fixed WW, WD, CW, CD. Their binding with xclim was not properly made and was throwing an error.
- Fixed setup.py dependency to the whole world. This make installation from sources possible in a clean environment.
Maintenance
- Improved icclim CI (code coverage)
- Improved code quality (unit test, refactoring)
- Added contribution guide
- Improve overall typing
v5.0.2
Official release of icclim 5.0.2 (a.k.a icclim v5)
For full details of the changes see https://icclim.readthedocs.io/en/latest/references/release_notes.html
In short, icclim has be rewritten to make use of xclim, xarray and dask libraries.
The scope is unchanged, icclim still computes 49 ECA&D climate indices and provides an API to create custom indices.
icclim 5.0.2 is available on both pip and conda-forge.