v0.52.0
Contributors to this version: David Huard (@huard), Trevor James Smith (@Zeitsperre), Hui-Min Wang (@Hem-W), Éric Dupuis (@coxipi), Sarah Gammon (@SarahG-579462), Pascal Bourgault (@aulemahal), Juliette Lavoie (@juliettelavoie), Adrien Lamarche (@LamAdr).
Announcements
xclim
now supports bothnumpy
versions>=1.20
and>=2.0
. (GH/1785, PR/1814, PR/1870).xclim
now needscf_xarray>=0.9.3
but continues to support older versions ofpint
(<0.24
) for compatibility reasons. (PR/1870).
New features and enhancements
xclim.sdba.nbutils.quantile
and its child functions are now faster. If thefastnanquantile
library is installed, it is used as the backend for the computation of quantiles and yields even faster results. This dependency is now listed in thexclim[extras]
recipe. (GH/1255, PR/1513).- New multivariate bias adjustment class
MBCn
, giving a faster and more accurate implementation of theMBCn
algorithm. (GH/1551, PR/1580). - New multivariate bias adjustment classes
OTC
anddOTC
. Requires thePOT
library which can be installed via thexclim[extras]
recipe. (PR/1787). xclim
is now compatible withpytest
versions>=8.0.0
. (PR/1632).
Breaking changes
- As of
cf_xarray>=0.9.3
, dimensionless quantities now use the"1"
units attribute as specified by the CF conventions, previously an empty string was returned. (PR/1814). - The definitions of the
frost_free_season_start
andfrost_free_season_end
have been slightly changed to be coherent with thefrost_free_season_length
andxclim
's notion ofseason
in general. Indicator and indices signature have been adapted to the new conventions. (PR/1845). - Season length indicators have been modified to return
0
for all cases where a proper season was not found, but the data is valid. Previously, anan
was given if neither a start nor an end were found, even if the data was valid, and a0
was given if an end was found but without a valid start. (PR/1845).
Bug fixes
- Fixed the indexer bug in the
xclim.indices.standardized_index_fit_params
when multiple or non-array indexers are specified and fitted parameters are reloaded from netCDF. (GH/1842, PR/1843). - Addressed a bug found in
wet_spell_*
indicators that was contributing to erroneous results. A new generic spell length statistic function (xclim.indices.generic.spell_length_statistics
) is now used in wet and dry spells indicators. (GH/1834, PR/1838). - Syntax for
nan
andinf
was adapted to supportnumpy>=2.0
. (PR/1814, GH/1785). - The type in
jitter
now works with modern version ofdask
(>=2024.8.0
). (PR/1864).
Internal changes
- Changed the French translation of "wet days" from "jours mouillés" to "jours pluvieux". (GH/1825, PR/1826).
- In order to adapt to changes in
pytest
, the doctest fixtures have been split from the main testing suite and doctests are now run using$ python -c 'from xclim.testing.utils import run_doctests; run_doctests()'
. (PR/1632). tox
has been reconfigured to run doctests in a separate environment (tox -e doctests
). (PR/1632).- Added
xclim.indices.generic.season
to make season start, end, and length indices. Added astat
argument toxclim.indices.run_length.season
to avoid returning a dataset. (PR/1845).
CI changes
pip-tools
(pip-compile
) has been used to generate a lock file with hashes for the CI dependencies. (PR/1841).- The
main.yml
workflow has been updated to use simpler trigger logic. (PR/1841). - A workflow bug has been fixed that was causing multiple duplicate comments to be made on Pull Requests originating from forks. (PR/1841).
- The
upstream.yml
workflow was adapted to not install upstream Python dependencies using hashes (as it is impossible to install directly from GitHub sources using--require-hashes
). (PR/1859). - The
tox-gh
configuration has been set to handle the environment configurations on GitHub Workflows. The tox.ini file is also a bit more organized/consistent. (PR/1859).