Skip to content

Releases: cerfacs-globc/icclim

v5.3.0

06 Jul 13:17
3aa62c3
Compare
Choose a tag to compare

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: Added clipped_season keyword which ignores events starting before the season bounds (original behavior of season).
  • [maint] slice_mode: Modified season 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 together var_name and in_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

29 Jun 10:25
Compare
Choose a tag to compare

Small release to update dependencies constraints:

  • numpy < 1.22 is no longer needed.
  • xclim >= 0.37 is now needed.

v5.2.1

03 May 09:23
9c65fca
Compare
Choose a tag to compare

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

23 Mar 17:31
5a3061e
Compare
Choose a tag to compare

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 of rechunker[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

[0] https://github.com/pangeo-data/rechunker/

v5.0.2

11 Feb 14:26
35d5862
Compare
Choose a tag to compare

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.

4.2.20

23 Sep 09:46
Compare
Choose a tag to compare

Removed utime since cftime to not support anymore this deprecated function.

4.2.19

09 Aug 15:28
Compare
Choose a tag to compare

Fixed bug in calc_ind for call to CWD.
Properly referencing version.

4.2.18

11 May 16:46
Compare
Choose a tag to compare

Fixed bugs related to user indices.

4.2.17

31 Mar 16:38
Compare
Choose a tag to compare

Many fixes to setup better all import statements.
Removed support for python 2.7.

4.2.16

29 Mar 15:25
Compare
Choose a tag to compare

Important bug fixes related to handling of specific calendars related to leap years for percentile calculations.
Those bugs were producing an out-of-bound error for some specific calendars and start year.