Releases: Ouranosinc/xscen
v0.10.1
v0.10.1 (2024-11-04)
Contributors to this version: Gabriel Rondeau-Genesse (@RondeauG), Pascal Bourgault (@aulemahal), Éric Dupuis (@coxipi), Juliette Lavoie (@juliettelavoie).
New features and enhancements
xs.io.make_toc
now includes the global attributes of the dataset after the information about the variables. (PR/473).- New function
xs.get_warming_level_from_period
to get the warming level associated with a given time horizon. (PR/474). - Added ability to skip whole folders to
xs.parse_directory
with argumentskip_dirs
. (PR/478, PR/479). diagnostics.measures_improvement
now acceptsdim
, which specifiesdimension(s)
on which the proportion of improved pixels are computed. (PR/416)- The argument
indicators
inxs.produce_horizon
is now optional. Added an argumentop
to control the climatological operation. (PR/483).
Breaking changes
xs.get_warming_level
has been renamed toxs.get_period_from_warming_level
. Its argumentreturn_horizon
was reversed and renamedreturn_central_year
(PR/474).- Removed support for the deprecated
xclim
functionchange_significance
inensemble_stats
. (PR/482). - The argument
indicators
inxs.produce_horizon
is no longer positional. (PR/483).
Bug fixes
xs.io.save_to_table
now correctly handles the case where the input is aDataArray
or aDataset
with a single variable. (PR/473).- Fixed a bug in
xs.utils.change_units
where the original dataset was also getting modified. (PR/482). - Fixed a bug in
xs.compute_indicators
where thecat:variable
attribute was not correctly set. (PR/483). - Fixed a bug in
xs.climatological_op
where kwargs were not passed to the operation function. (PR/486). - Fixed a bug in
xs.climatological_op
wheremin_periods
was not passed when the operation waslinregress
. (PR/486).
Internal changes
- Include CF convention for temperature differences and on scale (PR/428, GH/428).
- Bumped the version of
xclim
to 0.53.2. (PR/482). - More tests added. (PR/486).
- Fixed a bug in
xs.testing.datablock_3d
where some attributes of the rotated pole got reversed half-way through the creation of the dataset. (PR/486). - The function
xs.regrid._get_grid_mapping
was moved toxs.spatial.get_grid_mapping
and is now a public function. (PR/486).
v0.10.0
v0.10.0 (2024-09-30)
Contributors to this version: Juliette Lavoie (@juliettelavoie), Pascal Bourgault (@aulemahal), Gabriel Rondeau-Genesse (@RondeauG), Trevor James Smith (@Zeitsperre).
New features and enhancements
- The
mask
argument instack_drop_nans
can now be a list of dimensions. In that case, adropna(how='all')
operation will be used to create the mask on-the-fly. (PR/450). - Few changes to
clean_up
: minimum_calendar
now accepts a list as input. (PR/450).- More calendars are now recognized in
translate_time_chunk
. (PR/450). new_dim
inunstack_dates
is now None by default and changes depending on the frequency. It becomesmonth
if the data is exactly monthly, and keep the old default ofseason
otherwise. (PR/450).- Updated the list of libraries in
show_versions
to reflect our current environment. (PR/450). - New
xscen.catutils.patterns_from_schema
to generate all possible patterns from a given schema (or one of xscen's default), to use with :py:func:parse_directory
. (PR/431). - New
DataCatalog.copy_files
to copy all files of catalog to a new destination, unzipping if needed and returning a new catalog. (PR/431). - Convenience functions
xs.io.zip_directory
andxs.io.unzip_directory
(for zarrs). (PR/431). - New argument
compute_indicators
:rechunk_input
to rechunk the inputs to resample-appropriate chunks before calling xclim. (PR/431). - New
xs.indicators.get_indicator_outputs
to retrieve what variable name(s) and frequency to expect from an xclim indicator. (PR/431). xscen
now supports launches tests frompytest
with the--numprocesses
option. See thepytest-xdist documentation <https://pytest-xdist.readthedocs.io/en/stable/>
_ for more information. (PR/464).- Conservative regridding now supports oblique mercator projections. (PR/467).
- The automatic name for the weight file in
regrid_dataset
is now more explicit to avoid errors, but now requirescat:id
andcat:domain
arguments for both the source and target datasets. (PR/467).
Bug fixes
- Fixed bug with reusing weights. (GH/411, PR/414).
- Fixed bug in
update_from_ds
when "time" is a coordinate, but not a dimension. (:pull:417
). - Avoid modification of mutable arguments in
search_data_catalogs
(PR/413). ensure_correct_time
now correctly handles cases where timesteps are missing. (PR/440).- If using the argument
tile_buffer
with ashape
method inspatial.subset
, the shapefile will now be reprojected to a WGS84 grid before the buffer is applied. (PR/440). maybe_unstack
now works if the dimension name is not the default. (PR/450).unstack_fill_nan
now works if given a dictionary that contains both dimensions and coordinates. (PR/450).clean_up
no longer modifies the original dataset. (PR/450).unstack_dates
now works correctly for yearly datasets whenwinter_starts_year=True
, as well as multi-year datasets. (PR/450).- Fix
xs.catalog.concat_data_catalogs
for catalogs that have not been search yet. (PR/431). - Fix indicator computation using
freq=2Q*
by assuming this means a semiannual frequency anchored at the given month (pandas assumes 2 quarter steps, any of them anchored at the given month). (PR/431). create_bounds_rotated_pole
now uses the default value if the dataset has nonorth_pole_grid_longitude
attribute, instead of crashing. (PR/455).- Rewrote the global tas data file with latest HDF5/h5py to avoid errors when using h5py 3.11 and hdf5 1.14.2. (PR/1861).
- Remove reference of deprecated xclim functions (
convert_calendar
,get_calendar
) and adapt the code for supporting xclim 0.52.2 and its subsequent development version. (PR/465).
Breaking changes
convert_calendar
inclean_up
now usesxarray
instead ofxclim
. Keywords aren't compatible between the two, but given thatxclim
will abandon its function, no backwards compatibility was sought. (PR/450).attrs_to_remove
andremove_all_attrs_except
inclean_up
now use real regex. It should not be too breaking since afullmatch()
is used, but*
is now.*
. (PR/450).- Python 3.9 is no longer supported. (PR/456).
- Functions and arguments that were deprecated in
xscen
v0.8.0 or earlier have been removed. (PR/461). pytest-xdist
is now a development dependency. (PR/464).xs.regrid.create_bounds_rotated_pole
has been renamed toxs.regrid.create_bounds_gridmapping
. (PR/467).- The
weights_location
argument inregrid_dataset
is no longer positional. (PR/467). - The
xs.regrid.create_mask
function now requires explicit arguments instead of a dictionary. (PR/467).
Internal changes
DataCatalog.to_dataset
can now accept apreprocess
argument even ifcreate_ensemble_on
is given. The user assumes calendar handling. (PR/431).- Include domain in
weight_location
inregrid_dataset
. (PR/414). - Added pins to
xarray
,xclim
,h5py
, andnetcdf4
. (PR/414). - Add
.zip
and.zarr.zip
as possible file extensions for Zarr datasets. (PR/426). - Explicitly assign coords of multiindex in
xs.unstack_fill_nan
. (PR/427). - French translations are compiled offline. A new check ensures no PR are merged with missing messages. (GH/342, PR/443).
- Continued work to add tests. (PR/450).
- Updated the cookiecutter template via
cruft
: (PR/452)- GitHub Workflows that use rely on
PyPI
-based dependencies now use commit hashes. Dependabot
will now group updates by type.- Dependencies have been updated and synchronized.
- Contributor guidance documentation has been adjusted.
numpydoc-validate
has been added to the linting tools.- Linting checks are more reliant on
ruff
suggestions and stricter. flake8-alphabetize
has been replaced byruff
.- License information has been updated in the library top-level
__init__.py
.
- GitHub Workflows that use rely on
- Docstrings have been adjusted to meet the
numpydoc
standard. (PR/452).
CI changes
- The
bump-version.yml
workflow now uses the Ouranosinc GitHub Helper Bot to sign bump version commits. (PR/462).
v0.9.1
v0.9.1 (2024-06-04)
Contributors to this version: Pascal Bourgault (@aulemahal), Trevor James Smith (@Zeitsperre), Juliette Lavoie (@juliettelavoie).
Breaking changes
xscen
now uses a src layout in lieu of a flat layout. (PR/407).
Bug fixes
- Fixed defaults for
xr_combine_kwargs
inextract_dataset
(PR/402). - Fixed bug with
xs.utils.update_attr
(GH/404, PR/405). - Fixed template 1 bugs due to changes in dependencies. ( PR/405).
Internal changes
cartopy
has been pinned above version '0.23.0' in order to address a licensing issue. (PR/403).- The cookiecutter template has been updated to the latest commit via
cruft
. (PR/407).- GitHub Workflows now point to commits rather than tags.
Dependabot
will now only update on a monthly schedule.- Dependencies have been updated and synchronized.
CHANGES.rst
is nowCHANGELOG.rst
(see: KeepAChangelog).- The
CODE_OF_CONDUCT.rst
file adapted toContributor Covenant v2.1 <https://www.contributor-covenant.org/version/2/1/code_of_conduct/>
_. - Maintainer-specific directions are now found under
releasing.rst
v0.9.0
v0.9.0 (2024-05-07)
Contributors to this version: Trevor James Smith (@Zeitsperre), Pascal Bourgault (@aulemahal), Gabriel Rondeau-Genesse (@RondeauG), Juliette Lavoie (@juliettelavoie), Marco Braun (@vindelico).
New features and enhancements
xs.reduce_ensemble
will now callxclim.ensembles.create_ensemble
andxclim.ensembles.make_critera
if required. (PR/386).
Breaking changes
- Removed support for the old instances of the
region
argument inspatial_mean
,extract_dataset
, andsubset
. (PR/367). - Removed
xscen.extract.clisops_subset
. (PR/367). dtr
(the function) was renamed todtr_from_minmax
to avoid confusion with thedtr
variable. (PR/372).- The
xscen.reduce
module has been abandoned. (PR/386).build_reduction_data
has been made redundant byxclim.ensembles.make_critera
and will be removed in a future release.xscen.reduce.reduce_ensemble
has been moved toxscen.ensembles.reduce_ensemble
, as a module was no longer necessary.
Internal changes
- Modified
xscen.utils.change_unit
to always adopt the name from thevariables_and_units dictionary
if the physical units are equal but their names are not (ex. degC <-> ˚C) (PR/373). - Updated the
cookiecutter
template to the latest version. (PR/358):- Addresses a handful of misconfigurations in the GitHub Workflows.
- Added a few free
grep
-based hooks for finding unwanted artifacts in the code base. - Updated
ruff
to v0.2.0 andblack
to v24.2.0.
- Added more tests. (PR/366, PR/367, PR/372).
- Refactored
xs.spatial.subset
into smaller functions. (PR/367). - An
encoding
argument was added toxs.config.load_config
. (PR/370). - Various small fixes to the code to address FutureWarnings. (PR/380).
xs.spatial.subset
will try to guess CF coordinate if it can't find "latitude" or "longitude" inds.cf
. (PR/384).xs.extract_dataset
andxs.DataCatalog.to_dataset
will now default to opening datasets with optionchunks={}
, which tries to respect chunking on disk. (PR/398, GH/368).
Bug fixes
- Fix
unstack_dates
for the new frequency syntax introduced by pandas v2.2. (PR/359). subset_warming_level
will not return partial subsets if the warming level is reached at the end of the timeseries. (GH/360, PR/359).- Loading of training in
adjust
is now done outside of the periods loop. (PR/366). - Fixed bug for adding the preprocessing attributes inside the
adjust
function. (PR/366). - Fixed a bug to accept
group = False
inadjust
function. (PR/366). creep_weights
now correctly handles the case where the grid is small,n
is large, andmode=wrap
. (GH/367).- Fixed a bug in
tasmin_from_dtr
andtasmax_from_dtr
, whendtr
units differed from tasmin/max. (PR/372). - Fixed a bug where the requested chunking would be ignored when saving a dataset (PR/379).
- The missing value check in
health_checks
will no longer crasg if a variable has no time dimension. (PR/382).
v0.8.3
Contributors to this version: Juliette Lavoie (@juliettelavoie), Trevor James Smith (@Zeitsperre), Gabriel Rondeau-Genesse (@RondeauG), Pascal Bourgault (@aulemahal).
Announcements
xscen
now has a security disclosure policy. (PR/353).- Various frequency-related changes to match the new
pandas
naming conventions. (PR/351).
Internal changes
- Added tests for diagnostics. (PR/352).
- Added a
SECURITY.md
file to the repository and the documentation. (PR/353). - Added
tox
modifier for testing builds against themain
development branch ofxclim
. (PR/351, PR/355). - Added a
requirements_upstream.txt
file to the repository to track the development branches of relevant dependencies. (PR/355). - Added a dedicated GitHub Workflow to evaluate compatibility with upstream dependencies. (PR/355).
Breaking changes
xscen
now requirespandas
>= 2.2 andxclim
>= 0.48.2. (PR/351).- Functions that output a dict with keys as xrfreq (such as
extract_dataset
,compute_indicators
) will now return the new nomenclature (e.g."YS-JAN"
instead of"AS-JAN"
). (PR/351). - Going from
xrfreq
to frequencies or timedeltas will still work, but the opposite (frequency --> xrfreq/timedelta) will now only result in the newpandas
nomenclature. (PR/351).
v0.8.2
v0.8.2 (2024-02-12)
Contributors to this version: Trevor James Smith (@Zeitsperre), Pascal Bourgault (@aulemahal)
New features and enhancements
- Added a new argument
indicators_kw
toxs.ensembles.build_partition_data
. (PR/315). xscen
isSemantic Versioning 2.0.0 <https://semver.org/spec/v2.0.0.html>
_ compliant. (PR/319).xesmf
made an optional dependency, makingxscen
easier to install withpip
. (PR/337).
Internal changes
- Granular permissions and dependency scanning actions have been added to all GitHub CI Workflows. (PR/313).
- Updated the list of dependencies to add missing requirements. (PR/314).
- The
cookiecutter
template has been updated to the latest commit viacruft
. (PR/319):actions-versions-updater.yml
has been replaced with Dependabot (it's just better).- The OpenSSF
scorecard.yml
workflow has been added to the GitHub workflows to evaluate package security. - Code formatting tools (
black
,blackdoc
,isort
) are now hard-pinned. These need to be kept in sync with changes frompre-commit
. (Dependabot should perform this task automatically.) - The versioning system has been updated to follow the Semantic Versioning 2.0.0 standard.
v0.8.0
Changelog
v0.8.0 (2024-01-16)
Contributors to this version: Gabriel Rondeau-Genesse (@RondeauG), Pascal Bourgault (@aulemahal), Juliette Lavoie (@juliettelavoie), Sarah-Claude Bourdeau-Goulet (@sarahclaude), Trevor James Smith (@Zeitsperre), Marco Braun (@vindelico).
Announcements
xscen
now adheres to PEPs 517/518/621 using thesetuptools
andsetuptools-scm
backend for building and packaging. (PR/292).
New features and enhancements
- New function
xscen.indicators.select_inds_for_avail_vars
to filter the indicators that can be calculated with the variables available in axarray.Dataset
. (PR/291). - Replaced aggregation function
climatological_mean()
withclimatological_op()
offering more types of operations to aggregate over climatological periods. (PR/290) - Added the ability to search for simulations that reach a given warming level. (PR/251).
xs.spatial_mean
now accepts theregion="global"
keyword to perform a global average (GH/94, PR/260).xs.spatial_mean
withmethod='xESMF'
will also automatically segmentize polygons (down to a 1° resolution) to ensure a correct average (PR/260).- Added documentation for
require_all_on
insearch_data_catalogs
. (PR/263). xs.save_to_table
andxs.io.to_table
to transform datasets and arrays to DataFrames, but with support for multi-columns, multi-sheets and localized table of content generation.- Better
xs.extract.resample
: support for weighted resampling operations when starting with frequencies coarser than daily and missing timesteps/values handling. (GH/80, GH/93, PR/265). - New argument
attribute_weights
togenerate_weights
to allow for custom weights. (PR/252). xs.io.round_bits
to round floating point variable up to a number of bits, allowing for a better compression. This can be combined with the saving step through argument"bitround"
ofsave_to_netcdf
andsave_to_zarr
. (PR/266).- Added annual global tas timeseries for CMIP6's models CMCC-ESM2 (ssp245, ssp370, ssp585), EC-Earth3-CC (ssp245, ssp585), KACE-1-0-G (ssp245, ssp370, ssp585) and TaiESM1 (ssp245, ssp370). Moved global tas database to a netCDF file. (GH/268, PR/270).
- Implemented support for multiple levels and models in
xs.subset_warming_level
. Better support forDataArray
andDataFrame
inxs.get_warming_level
. (PR/270). - Added the ability to directly provide an ensemble dataset to
xs.ensemble_stats
. (PR/299). - Added support in
xs.ensemble_stats
for the new robustness-related functions available inxclim
. (PR/299). - New function
xs.ensembles.get_partition_input
(PR/289).
Breaking changes
climatological_mean()
has been replaced withclimatological_op()
and will be abandoned in a future version. (PR/290)experiment_weights
argument ingenerate_weights
was renamed tobalance_experiments
. (PR/252).- New argument
attribute_weights
togenerate_weights
to allow for custom weights. (PR/252). - For a sequence of models, the output of
xs.get_warming_level
is now a list. Revert to a dictionary withoutput='selected'
(PR/270). - The global average temperature database is now a netCDF, custom databases must follow the same format (PR/270).
Bug fixes
- Fixed a bug in
xs.search_data_catalogs
when searching for fixed fields and specific experiments/members. (PR/251). - Fixed a bug in the documentation build configuration that prevented stable/latest and tagged documentation builds from resolving on ReadTheDocs. (PR/256).
- Fixed
get_warming_level
to avoid incomplete matches. (PR/269). search_data_catalogs
now eliminates anything that matches any entry inexclusions
. (GH/275, PR/280).- Fixed a bug in
xs.scripting.save_and_update
wherebuild_path_kwargs
was ignored when trying to guess the file format. (PR/282). - Add a warning to
xs.extract._dispatch_historical_to_future
. (GH/286, PR/287). - Modify use_cftime for the calendar conversion in
to_dataset
. (GH/303, PR/289).
Internal changes
- Continued work on adding tests. (PR/251).
- Fixed
pre-commit
'spretty-format-json
hook so that it ignores notebooks. (PR/254). - Fixed the labeler so docs/CI isn't automatically added for contributions by new collaborators. (PR/254).
- Made it so that
tests
are no longer treated as an installable package. (PR/248). - Renamed the pytest marker from
requires_docs
torequires_netcdf
. (PR/248). - Included the documentation in the source distribution, while excluding the NetCDF files. (PR/248).
- Reduced the size of the files in
/docs/notebooks/samples
and changed the notebooks and tests accordingly. (GH/247, PR/248). - Added a new
xscen.testing
module with thedatablock_3d
function previously located in/tests/conftest.py
. (PR/248). - New function
xscen.testing.fake_data
to generate fake data for testing. (PR/248). - xESMF 0.8 Regridder and SpatialAverager argument
out_chunks
is now accepted byxs.regrid_dataset
andxs.spatial_mean
. (PR/260). - Testing, Packaging, and CI adjustments. (PR/274):
xscen
builds now install in atox
environment withconda
-providedESMF
in GitHub Workflows.tox
now offers a method for installing esmpy from a tag/branch (via ESMF_VERSION environment variable).$ make translate
is now called on ReadTheDocs and withintox
.- Linters are now called by order of most common failures first, to speed up the CI.
Manifest.in
is much more specific about what is installed.- Re-adds a dev recipe to the
setup.py
.
- Multiple improvements to the docstrings and type annotations. (PR/282).
pip check
in conda builds in GitHub workflows have been temporarily set to always pass. (PR/288).- The
cookiecutter
template has been updated to the latest commit viacruft
. (PR/292):setup.py
has been mostly hollowed-out, save for thebabel
-related translation function.pyproject.toml
has been added, with most package configurations migrated into it.HISTORY.rst
has been renamed toCHANGES.rst
.actions-version-updater.yml
has been added to automate the versioning of the package.pre-commit
hooks have been updated to the latest versions;check-toml
andtoml-sort
have been added to cleanup thepyproject.toml
file, andcheck-json-schema
has been added to ensure GitHub and ReadTheDocs workflow files are valid.ruff
has been added to the linting tools to replace mostflake8
andpydocstyle
verifications.tox
builds are more pure Python environment/PyPI-friendly.xscen
now usesTrusted Publishing
for TestPyPI and PyPI uploads.
- Linting checks now examine the testing folder, function complexity, and alphabetical order of
__all__
lists. (PR/292). publish_release_notes
now uses better logic for finding and reformatting theCHANGES.rst
file. (PR/292).bump2version
version-bumping utility was replaced bybump-my-version
. (PR/292).- Documentation build checks no longer fail due to broken external links; Notebooks are now nested and numbered. (PR/304).
v0.7.1
v0.7.0
v0.7.0 (2023-08-22)
Contributors to this version: Gabriel Rondeau-Genesse (@RondeauG), Pascal Bourgault (@aulemahal), Trevor James Smith (@Zeitsperre), Juliette Lavoie (@juliettelavoie), Marco Braun (@vindelico).
Announcements
- Dropped support for Python 3.8, added support for 3.11. (PR/199, PR/222).
xscen
is now available onconda-forge <https://anaconda.org/conda-forge/xscen>
_, and can be installed withconda install -c conda-forge xscen
. (PR/241)
New features and enhancements
xscen
now tracks code coverage using coveralls. (PR/187).- New function
get_warming_level
to search within the IPCC CMIP global temperatures CSV without requiring data. (GH/208, PR/210). - File re-structuration from catalogs with
xscen.catutils.build_path
. (PR/205, PR/237). - New scripting functions
save_and_update
andmove_and_delete
. (PR/214). - Spatial dimensions can be generalized as X/Y when rechunking and will be mapped to rlon/rlat or lon/lat accordingly. (PR/221).
- New argument
var_as_string
forget_cat_attrs
to return variable names as strings. (PR/233). - New argument
copy
formove_and_delete
. (PR/233). - New argument
restrict_year
forcompute_indicators
. (PR/233). - Add more comments in the template. (PR/233, GH/232).
generate_weights
now allows to split weights between experiments, and make them vary along the time/horizon axis. (GH/108, PR/231).- New independence_level,
institution
, added togenerate_weights
. (PR/231). - Updated
produce_horizon
so it can accept multiple periods or warming levels. (PR/231, PR/240). - Add more comments in the template. (PR/233, PR/235, GH/232).
- New function
diagnostics.health_checks
that can perform multiple checkups on a dataset. (PR/238).
Breaking changes
- Columns
date_start
anddate_end
now use adatetime64[ms]
dtype. (PR/222). - The default output of
date_parser
is nowpd.Timestamp
(output_dtype='datetime'
). (PR/222). date_parser(date, end_of_period=True)
has time "23:59:59", instead of "23:00". (PR/222, PR/237).driving_institution
was removed from the "default" xscen columns. (PR/222).- Folder parsing utilities (
parse_directory
) moved toxscen.catutils
. Signature changed :globpattern
removed,dirglob
added, newpatterns
specifications. See doc for all changes. (PR/205). compute_indicators
now returns all outputs produced by indicators with multiple outputs (such asrain_season
). (PR/228).- In
generate_weights
, independence_levelall
was renamedmodel
. (PR/231). - In response to a bugfix, results for
generate_weights(independence_level='GCM')
are significantly altered. (GH/230, PR/231). - Legacy support for
stats_kwargs
inensemble_stats
was dropped. (PR/231). period
inproduce_horizon
has been deprecated and replaced withperiods
. (PR/231).- Some automated
to_level
were updated to reflect more recent changes. (PR/231). - Removed
diagnostics.fix_unphysical_values
. (PR/238).
Bug fixes
- Fix bug in
unstack_dates
with seasonal climatological mean. (GH/202, PR/202). - Added NotImplemented errors when trying to call
climatological_mean
andcompute_deltas
with daily data. (PR/187). - Minor documentation fixes. (GH/223, PR/225).
- Fixed a bug in
unstack_dates
where it failed for anything other than seasons. (PR/228). cleanup
withcommon_attrs_only
now works even when nocat
attribute is present in the datasets. (PR/231).
Internal changes
- Removed the pin on xarray's version. (GH/175, PR/199).
- Folder parsing utilities now in pure python, platform independent. New dependency
parse
. (PR/205). - Updated ReadTheDocs configuration to prevent
--eager
installation of xscen (PR/209). - Implemented a template to be used for unit tests. (PR/187).
- Updated GitHub Actions to remove deprecation warnings. (PR/187).
- Updated the cookiecutter used to generate boilerplate documentation and code via
cruft
. (PR/212). - A few changes to
subset_warming_level
so it doesn't needdriving_institution
. (PR/215). - Added more tests. (PR/228).
- In
compute_indicators
, the logic to manage indicators returning multiple outputs was simplified. (PR/228).
v0.6.0
History
v0.6.0 (2023-05-04)
Contributors to this version: Trevor James Smith (@Zeitsperre), Juliette Lavoie (@juliettelavoie), Pascal Bourgault (@aulemahal), Gabriel Rondeau-Genesse (@RondeauG).
Announcements
xscen
is now offered as a conda package available through Anaconda.org. Refer to the installation documentation for more information. (GH/149, PR/171).- Deprecation: Release 0.6.0 of
xscen
will be the last version to supportxscen.extract.clisops_subset
. Usexscen.spatial.subset
instead. (PR/182, PR/184). - Deprecation: The argument
region
, used in multiple functions, has been slightly reformatted. Release 0.6.0 ofxscen
will be the last version to support the old format. (GH/99, GH/101, PR/184).
New features and enhancements
- New 'cos-lat' averaging in
spatial_mean
. (GH/94, PR/125). - Support for computing anomalies in
compute_deltas
. (PR/165). - Add function
diagnostics.measures_improvement_2d
. (PR/167). - Add function
regrid.create_bounds_rotated_pole
and automatic use inregrid_dataset
andspatial_mean
. This is temporary, while we wait for a functionning method incf_xarray
. (PR/174, GH/96). - Add
spatial
submodule with functionscreep_weights
andcreep_fill
for filling NaNs using neighbours. (PR/174). - Allow passing
GeoDataFrame
instances inspatial_mean
'sregion
argument, not only geospatial file paths. (PR/174). - Allow searching for periods in
catalog.search
. (GH/123, PR/170). - Allow searching and extracting multiple frequencies for a given variable. (GH/168, PR/170).
- New masking feature in
extract_dataset
. (GH/180, PR/182). - New function
xs.spatial.subset
to replacexs.extract.clisops_subset
and add method "sel". (GH/180, PR/182). - Add long_name attribute to diagnostics. ( PR/189).
- Added a new YAML-centric notebook (GH/8, PR/191).
- New
utils.standardize_periods
to standardize that argument across multiple functions. (GH/87, PR/192). - New
coverage_kwargs
argument added tosearch_data_catalogs
to allow modifying the default values ofsubset_file_coverage
. (GH/87, PR/192).
Breaking changes
- 'mean' averaging has been deprecated in
spatial_mean
. (PR/125). - 'interp_coord' has been renamed to 'interp_centroid' in
spatial_mean
. (PR/125). - The 'datasets' dimension of the output of
diagnostics.measures_heatmap
is renamed 'realization'. (PR/167). _subset_file_coverage
was renamedsubset_file_coverage
and moved tocatalog.py
to prevent circular imports. (PR/170).extract_dataset
doesn't fail when a variable is in the dataset, but notvariables_and_freqs
. (PR/185).- The argument
period
, used in multiple function, is now always a single list, whileperiods
is more flexible. (GH/87, PR/192). - The parameters
reference_period
andsimulation_period
ofxscen.train
andxscen.adjust
were renamedperiod/periods
to respect the point above. (GH/87, PR/192).
Bug fixes
- Forbid pandas v1.5.3 in the environment files, as the linux conda build breaks the data catalog parser. (GH/161, PR/162).
- Only return requested variables when using
DataCatalog.to_dataset
. (PR/163). compute_indicators
no longer crashes if less than 3 timesteps are produced. (PR/125).xarray
is temporarily pinned below v2023.3.0 due to an API-breaking change. (GH/175, PR/173).- `xscen.utils.unstack_fill_nan`` can now handle datasets that have non dimension coordinates. (GH/156, PR/175).
extract_dataset
now skips a simulation way earlier if the frequency doesn't match. (PR/170).extract_dataset
now correctly tries to extract in reverse timedelta order. (PR/170).compute_deltas
no longer creates all NaN values if the input dataset is in a non-standard calendar. (PR/188).
Internal changes
xscen
now manages packaging for PyPi and TestPyPI via GitHub workflows. (PR/159).- Pre-load coordinates in
extract.clisops_subset
(PR/163). - Minimal documentation for templates. (PR/163).
xscen
is now indexed in Zenodo, under theouranos
community of projects. (PR/164).- Added a few relevant Shields to the README.rst. (PR/164).
- Better warning messages in
_subset_file_coverage
when coverage is insufficient. (PR/125). - The top-level Makefile now includes a
linkcheck
recipe, and the ReadTheDocs configuration no longer reinstalls thellvmlite
compiler library. (PR/173). - The checkups on coverage and duplicates can now be skipped in
subset_file_coverage
. (PR/170). - Changed the
ProjectCatalog
docstrings to make it more obvious that it needs to be created empty. (GH/99, PR/184). - Added parse_config to
creep_fill
,creep_weights
, andreduce_ensemble
(PR/191).