Releases: Ouranosinc/xscen
Releases · Ouranosinc/xscen
v0.5.0
Contributors to this version: Gabriel Rondeau-Genesse (@RondeauG), Juliette Lavoie (@juliettelavoie), Trevor James Smith (@Zeitsperre), Sarah Gammon (@sg2475962) and Pascal Bourgault (@aulemahal).
New features and enhancements
- Possibility of excluding variables read from file from the catalog produced by
parse_directory
. (PR/107). - New functions
extract.subset_warming_level
andaggregate.produce_horizon
. (PR/93). - add
round_var
toxs.clean_up
. (PR/93). - New "timeout_cleanup" option for
save_to_zarr
, which removes variables that were in the process of being written when receiving aTimeoutException
. (PR/106). - New
scripting.skippable
context, allowing the use of CTRL-C to skip code sections. (PR/106). - Possibility of fields with underscores in the patterns of
parse_directory
. (PR/111). - New
utils.show_versions
function for printing or writing to file the dependency versions ofxscen
. (GH/109, PR/112). - Added previously private notebooks to the documentation. (PR/108).
- Notebooks are now tested using
pytest
withnbval
. (PR/108). - New
restrict_warming_level
argument forextract.search_data_catalogs
to filter dataset that are not in the warming level csv. (GH/105, PR/138). - Set configuration value programmatically through
CONFIG.set
. (PR/144). - New
to_dataset
method onDataCatalog
. The same asto_dask
, but exposing more aggregation options. (PR/147).
Breaking changes
- Functions that are called internally can no longer parse the configuration. (PR/133).
Bug fixes
clean_up
now converts the calendar of variables that use "interpolate" in "missing_by_var" at the same time.properties_and_measures
no longer casts month coordinates to string. (PR/106).search_data_catalogs
no longer crashes if it finds nothing. (GH/42, PR/92).- Prevented fixed fields from being duplicated during
_dispatch_historical_to_future
(GH/81, PR/92). - Added missing
parse_config
to functions inreduce.py
(PR/92). - Added deepcopy before
skipna
is popped inspatial_mean
(PR/92). subset_warming_level
now validates that the data exists in the dataset provided (GH/117, PR/119).- Adapt
stack_drop_nan
for the newest version of xarray (2022.12.0). (GH/122, PR/126). - Fix
stack_drop_nan
not working if intermediate directories don't exist (GH/128). - Fixed a crash when
compute_indicators
produced fixed fields (PR/139).
Internal changes
compute_deltas
skips the unstacking step if there is no time dimension and cast object dimensions to string. (PR/9)- Added the "2sem" frequency to the translations CVs. (PR/111).
- Skip files we can't read in
parse_directory
. (PR/111). - Fixed non-numpy-standard Docstrings. (PR/108).
- Added more metadata to package description on PyPI. (PR/108).
- Faster
search_data_catalogs
andextract_dataset
through a fasterDataCatalog.unique
, date parsing and a rewrite of theensure_correct_time
logic. (PR/127). - The
search_data_catalogs
function now acceptsstr
orpathlib.Path
variables (in addition to lists of either data type) for performing catalog lookups. (PR/121). produce_horizons
now supports fixed fields (PR/139).- Rewrite of
unstack_dates
for better performance with dask arrays. (PR/144).
v0.4.0
v0.4.0 (2022-09-28)
Contributors to this version: Gabriel Rondeau-Genesse (@RondeauG), Juliette Lavoie (@juliettelavoie), Trevor James Smith (@Zeitsperre) and Pascal Bourgault (@aulemahal).
New features and enhancements
- New functions
diagnostics.properties_and_measures
,diagnostics.measures_heatmap
anddiagnostics.measures_improvement
. (GH/5, PR/54). - Add argument
resample_methods
toxs.extract.resample
. (GH/57, PR/57) - Added a ReadTheDocs configuration to expose public documentation. (GH/65, PR/66).
xs.utils.stack_drop_nans
/xs.utils.unstack_fill_nan
will now format theto_file
/coords
string to add the domain and the shape. (GH/59, PR/67).- New unstack_dates function to "extract" seasons or months from a timeseries. (PR/68).
- Better spatial_mean for cases using xESMF and a shapefile with multiple polygons. (PR/68).
- Yet more changes to parse_directory: (PR/68).
- Better parallelization by merging the finding and name-parsing step in the same dask tree.
- Allow cvs for the variable columns.
- Fix parsing the variable names from datasets.
- Sort the variables in the tuples (for a more consistent output)
- In extract_dataset, add option
ensure_correct_time
to ensure the time coordinate matches the expected freq. Ex: monthly values given on the 15th day are moved to the 1st, as expected when asking for "MS". (:issue:53
). - In regrid_dataset: (PR/68).
- Allow passing skipna to the regridder kwargs.
- Do not fail for any grid mapping problem, includin if a grid_mapping attribute mentions a variable that doesn't exist.
- Default email sent to the local user. (PR/68).
- Special accelerated pathway for parsing catalogs with all dates within the datetime64[ns] range. (PR/75).
- New functions
reduce_ensemble
andbuild_reduction_data
to support kkz and kmeans clustering. (GH/4, PR/63). ensemble_stats
can now loop through multiple statistics, support functions located inxclim.ensembles._robustness
, and supports weighted realizations. (PR/63).- New function
ensemble_stats.generate_weights
that estimates weights based on simulation metadata. (PR/63). - New function
catalog.unstack_id
to reverse-engineer IDs. (PR/63). generate_id
now accepts Datasets. (PR/63).- Add
rechunk
option toproperties_and_measures
(PR/76). - Add
create
argument toProjectCatalog
(GH/11, PR/77). - Add percentage deltas to
compute_deltas
(GH/82, PR/90).
Breaking changes
statistics / stats_kwargs
have been changed/eliminated inensemble_stats
, respectively. (PR/63).
Bug fixes
- Add a missing dependencies to the env (
pyarrow
, for faster string handling in catalogs). (PR/68). - Allow passing
compute=False
tosave_to_zarr
. (PR/68).
Internal changes
- Small bugfixes in
aggregate.py
. (PR/55, PR/56). - Default method of
xs.extract.resample
now depends on frequency. (GH/57, PR/58). - Bugfix for
_restrict_by_resolution
with CMIP6 datasets (PR/71). - More complete check of coverage in
_subset_file_coverage
. (GH/70, PR/72) - The code that performs
common_attrs_only
inensemble_stats
has been moved toclean_up
. (PR/63). - Removed the default
to_level
inclean_up
. (PR/63). xscen
now has an official logo. (PR/69).- Use numpy max and min in
properties_and_measures
(PR/76). - Cast catalog date_start and date_end to "%4Y-%m-%d %H:00" when writing to disk. (GH/83, PR/79)
- Skip test of coverage on the sum if the list of select files is empty. (PR/79)
- Added missing CMIP variable names in conversions.yml and added the ability to provide a custom file instead (GH/86, PR/88)
- Changed 'allow_conversion' and 'allow_resample' default to False in search_data_catalogs (GH/86, PR/88)
v0.3.0
Contributors to this version: Gabriel Rondeau-Genesse (@RondeauG), Juliette Lavoie (@juliettelavoie), Trevor James Smith (@Zeitsperre) and Pascal Bourgault (@aulemahal).
New features and enhancements
- New function
clean_up
added. (GH/22, PR/24). parse_directory
: Fixes toxr_open_kwargs
and support for wildcards (*) in the directories. (PR/19).- New function
xscen.ensemble.ensemble_stats
added. (GH/3, PR/28). - New functions
spatial_mean
,climatological_mean
anddeltas
added. (GH/4, PR/35). - Add argument
intermediate_reg_grids
toxscen.regridding.regrid
. (GH/34, PR/39). - Add argument
moving_yearly_window
toxscen.biasadjust.adjust
. (PR/39). - Many adjustments to
parse_directory
: better wildcards (GH/24), allow custom columns, fastpaths forparse_from_ds
, and more (PR/30). - Documentation now makes better use of autodoc to generate package index. (PR/41).
periods
argument added tocompute_indicators
to support datasets with jumps in time (PR/35).
Breaking changes
- Patterns in
parse_directory
start at the end of the paths indirectories
. (PR/30). - Argument
extension
ofparse_directory
has been renamedglobpattern
. (PR/30). - The
xscen
API and filestructure have been significantly refactored. (GH/40, PR/41). The following functions are available from the top-level:adjust
,train
,ensemble_stats
,clisops_subset
,dispatch_historical_to_future
,extract_dataset
,resample
,restrict_by_resolution
,restrict_multimembers
,search_data_catalogs
,save_to_netcdf
,save_to_zarr
,rechunk
,compute_indicators
,regrid_dataset
, andcreate_mask
.
- xscen now requires geopandas and shapely (PR/35).
- Following a change in intake-esm xscen now uses "cat:" to prefix the dataset attributes extracted from the catalog. All catalog-generated attributes should now be valid when saving to netCDF. (GH/13, PR/51).
Internal changes
parse_directory
: Fixes toxr_open_kwargs
. (PR/19).- Fix for indicators removing the 'time' dimension. (PR/23).
- Security scanning using CodeQL and GitHub Actions is now configured for the repository. (PR/21).
- Bumpversion action now configured to automatically augment the version number on each merged pull request. (PR/21).
- Add
align_on = 'year'
argument in bias adjustment converting of calendars. (PR/39). - GitHub Actions using Ubuntu-22.04 images are now configured for running testing ensemble using
tox-conda
. (PR/44). import xscen
smoke test is now run on all pull requests. (PR/44).- Fix for
create_mask
removing attributes (PR/35).
v0.2.0
Contributors to this version: Gabriel Rondeau-Genesse (:user:RondeauG
), Pascal Bourgault (:user:aulemahal
), Trevor James Smith (:user:Zeitsperre
), Juliette Lavoie (:user:juliettelavoie
).
Announcements
- This is the first official release for xscen!
New features and enhancements
- Supports workflows with YAML configuration files for better transparency, reproducibility, and long-term backups.
- Intake_esm-based catalog to find and manage climate data.
- Climate dataset extraction, subsetting, and temporal aggregation.
- Calculate missing variables through Intake-esm's DerivedVariableRegistry.
- Regridding with xESMF.
- Bias adjustment with xclim.
Breaking changes
- N/A
Internal changes
- N/A