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