What’s new#

Unreleased#

  • Fix cmor time axis issue (#236).

v0.7.0 (25 February 2024)#

This release introduces the cell_area() function and adds the cell_area keyword in cordex_domain(). Includes internal updates for CORDEX-CMIP6 cmorization.

New Features#

  • Added cell_area() which computes the cell area of a regular grid, e.g., the cell area in the rotated coordinates of a CORDEX dataset (#230).

  • New keyword cell_area in cordex_domain() which will add a cell area coordinate (#230).

Internal Changes#

  • Updated cmor table prefix to CORDEX-CMIP6 (#227).

  • Moved from setup.cfg to pyproject.toml (#209).

  • Update point cell method resampling (#207).

  • Update units check using pint (#203).

  • Stick to upper case pandas time offset strings for now (#198).

Bugfixes#

v0.6.6 (9 November 2023)#

Patch release that fixes installation and cmor issues.

Bugfixes#

v0.6.5 (26 October 2023)#

Patch release to update the CI and cmor module.

Internal Changes#

  • Added CI for python 3.12 (#184).

  • Switch CI to setup-micromamba (#185).

Bugfixes#

v0.6.4 (4 October 2023)#

Patch release to fix cmor related dependencies.

Internal Changes#

v0.6.3 (17 August 2023)#

Patch release to update pre-commit configuration and fix rtd issues.

Internal Changes#

  • More clean up of deprecated meta files (#159).

  • Fixed E721 rule, switched to ruff for linting in pre-commit, added dependabot.yml (#162).

v0.6.2 (17 July 2023)#

Patch releasee to support searching indexes in alternative domain tables.

Internal Changes#

  • Support for searching indexes in alternative domain tables (#157).

v0.6.1 (17 July 2023)#

Patch release to update location of domain_id in domain_tables.

Bugfixes#

  • Updated location of domain_id in domain_tables (#154).

v0.6.0 (11 July 2023)#

This releases prepares for CORDEX-CMIP6 vocabulary and introduces the mip_era keyword in the main API. There has also been some refactoring to simplify table fetching and the domain table repository has been updated and moved to the WCRP CORDEX github table repository. Note that you might have to clean up your ~/.py-cordex caching directory to retrieve the new table.

New Features#

Internal Changes#

  • Support for upcoming CORDEX-CMIP6 vocabulary. This includes the new keyword mip_era in cordex_domain() and create_dataset() (#129).

  • Updated domain table fetching. There is now only one table that contains all domain definitions which is now located in the WCRP CORDEX github table repository . This table allows for selection by different naming conventions for the domain identifier, e.g., EUR-12 is equivilant to EUR-11, etc., sell also this issue (#140).

  • Slight refactoring of transform_bounds() to make it work for arbitrary transformations (#146).

Breaking Changes#

  • The keyword name for the CORDEX domain identifier has changed from short_name to domain_id, e.g., in cordex_domain() or domain_info(). If you have explicitly set this keyword, e.g., short_name="EUR-11", please change this to domain_id="EUR-11". This will be more consistent with the attribues in the updated domain tables.

  • Default branch is now main instead of master.

Deprecations#

  • Deprecation of preprocessing.get_grid_mapping() and preprocessing.get_grid_mapping_name() in favour of cf_xarray (#144).

Documentation#

  • Unpinned sphinx-book-theme (#127).

  • Tutorial notebook is now executed and rendered on readthedocs automatically (#141).

  • Updated prudence notebook for recent updates in regionmask (#20), (#149).

v0.5.2 (5 April 2023)#

This is a patch release to make cmorization run with the latest xarray version. Also some warnings and performance issues with cmorization are fixed.

Internal Changes#

  • Fixes in the cmor module, including fixing of time step warnings and resampling options, includes options for using flox in resampling operations (#119).

Bugfixes#

  • Fix call to encode_cf_variable for time during cmorization, see also #7645 (#126).

v0.5.1 (2 March 2023)#

Patch release to update pypi dependencies and fix setup meta data.

v0.5.0 (2 March 2023)#

This release introduces a cmorization workflow using cmor.cmorize_variable() and deprecates some code depending on cartopy. There has also been a lot of refactoring since py-cordex now makes extensive use of cf-xarray to make cmorization as easy as possible. This release is used for developing and testing the new CORDEX cmor tables for downscaling CMIP6 global model runs. Since the new archive specifications for CORDEX are not fixed yet, the API will probably change in the future. For some examples of cmorization, please visit the CORDEX cmorization examples notebook in the cmor table repository. This version also drops python3.7 support.

New Features#

Breaking Changes#

  • The standard cmor tables are now fetched from the development repository (#116).

  • nan values in domain tables are replace with None. That means in case you retrive domain information with domain_info() for a regular grid, pollon and pollat will now be None instead of nan (#107, #105).

Deprecations#

  • add_vertices keyword is deprecated in favour of bounds keyword in cordex_domain() and create_dataset(). Note that the 2D longitude and latitude bounds (lon_vertices, lat_vertices) will now appear as coordinates in the domain dataset by default and not as data variables (#101).

  • map_crs() and rotated_coord_transform() are deprecated and will be removed in the future (#71).

  • vertices() is deprecated, please use transform_bounds() instead (#102).

  • tables.cmip6_cmor_table() is deprecated in favour of tables.cordex_cmor_table() (#117).

Internal Changes#

  • Updated CI pipeline (#83).

  • Refactored transformation functions (#71).

  • Pinned pyproj>=3.3.0 and cf_xarray>=0.8.0 (Dropped python 3.7 support).

  • Moved core modules (#87).

  • Added CITATION.cff (#87).

  • Updated documentation environment for python 3.10 (#89).

  • Use cf-xarray for adding bounds to regular datasets (#101).

v0.4.1 (23 June 2022)#

Patch release to fix coordinate precisions, also includes some maintenance updates.

Internal Changes#

  • Added pre-commit hooks for Jupyter notebooks (including reformatting), added .zenodo.json (#59).

  • Switched to automatic version numbering using setuptools_scm (#62).

  • Added publish-pypi.yaml workflow (#63).

Bug Fixes#

  • Fixed rounding errors for grid coordinates (#61). This might have some influence on results, since coordinate values might change to more exact values.

v0.4.0 (29 April 2022)#

This version introduces CORDEX regular grids, they are denoted with an i in the end, e.g., EUR-11i. The cmor tables have also been updated to allow for a preliminary cmorization of CORDEX data using CMIP6 cmor tables. However, this is still only used for development since there is no official data request yet for downscaling CMIP6 models. There are also some internal changes, mainly to improve code quality for easier contributions.

New Features#

  • Updated map_crs() to work for arbitray transformations (#52).

  • Added cordex-regular table and options to create regular cordex domains (#53, #54).

Internal Changes#

  • Updated documentation including contribution guide, switch to sphinx-book-theme (#57).

  • Introduced linting.yaml test and pre-commit hook (#56).

  • Updated external resource from pooch to ignore hashes and use main branch from tables repository (#53). This should protect earlier version from breaking if the tables change.

  • Changed pooch resource for CMOR table fetching. The test workflow now uses original CMIP6 cmor tables in a combination with an updated controlled vocabulary for CORDEX_CV.json. Because there are no official CORDEX CMIP6 CMOR tables yet, we ignore hash checking for now. This will change in the future (#55).

Breaking Changes#

  • map_crs() switched order of coordinates to COARDS (#52).

v0.3.2 (30 March 2022)#

Patch release to fix vertices issues, imports and dependencies. Also includes python3.10 support.

Internal Changes#

  • Added python3.10 support (#48).

  • Fixed vertices attributes (#49).

Breaking Changes#

  • Fixed vertices order (#50).

  • Fixed imports (#51).

v0.3.1 (24 February 2022)#

Patch release to fix dependencies when py-cordex is installed with pip.

Bug Fixes#

Added cftime to pip dependencies.

v0.3.0 (12 January 2022)#

This release introduces the cmorization and preprocessing modules. We outsourced some more code that was REMO dependent to be more useful for CORDEX datasets in general. The CORDEX tables are not available for CMIP6 yet, so the tables are only useful for the development of a cmorization workflow. The peprocessing module aims at overcoming CF related inconsistencies in ESGF CORDEX datasets.

New Features#

  • Included experiment cmor table resource for development (#27).

  • Included basic utitilities to compute time bounds (#28).

  • Added add_vertices option to cx.cordex_domain (#32).

  • Additional cmorization utilities (#28, #30).

  • Preprocessing module for working with CORDEX ensembles (#35, #36).

  • Tutorial module for loading simple CORDEX test datasets (#35).

Internal Changes#

  • Coverage is ignored for unused modules (#29).

v0.2.1 (1 November 2021)#

Small bugfix release that updates the path to download germany shapefiles (#24). Also fixed coordinate attribute issues (#25) and added a test.

v0.2.0 (28 October 2021)#

This is a new restructuring release, that cleanded a lot of things and includes much more documentation and example notebooks. All meta information is removed and accessed online. This version should be more open for contributions!

New Features#

  • Included new sub regions (germany and prudence) for masking and analysis.

  • Included function map_crs for coordinate transformations using cartopy.

Internal Changes#

  • Tables are removed from the package and stored in an extra github repo.

  • Tables are download at first access using pooch.

  • Using now conda environemt for testing (#18).

  • Restructured and cleaned dependencies (#21).

v0.1.2 (3 June 2021)#

This is a major restructuring release. The code base has been reduced significantly and the main data structure are now xarray’s datarrays. Several new domains have been added.