.. _changelog: Changelog ========= .. _changelog-v2-8-0: v2.8.0 ------ Highlights ~~~~~~~~~~ - ESMValCore now supports wildcards in recipes and offers improved support for ancillary variables and dataset versioning thanks to contributions by `Bouwe Andela `__. For details, see :ref:`Automatically populating a recipe with all available datasets ` and :ref:`Defining supplementary variables `. - Support for CORDEX datasets in a rotated pole coordinate system has been added by `sloosvel `__. - Native :ref:`ICON ` output is now made UGRID-compliant on-the-fly to unlock the use of more sophisticated regridding algorithms, thanks to `Manuel Schlund `__. - The Python API has been extended with the addition of three modules: :mod:`esmvalcore.config`, :mod:`esmvalcore.dataset`, and :mod:`esmvalcore.local`, all these features courtesy of `Bouwe Andela `__. For details, see our new example :doc:`example-notebooks`. - The preprocessor :func:`~esmvalcore.preprocessor.multi_model_statistics` has been extended to support more use-cases thanks to contributions by `Manuel Schlund `__. For details, see :ref:`Multi-model statistics `. This release includes: Backwards incompatible changes ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Please read the descriptions of the linked pull requests for detailed upgrade instructions. - The algorithm for automatically defining the ancillary variables and cell measures has been improved (`#1609 `_) `Bouwe Andela `__. If this does not work as expected, more examples of how to adapt your recipes are given `here `__ and in the corresponding sections of the :ref:`recipe documentation ` and the :ref:`preprocessor documentation `. - Remove deprecated features scheduled for removal in v2.8.0 or earlier (`#1826 `__) `Manuel Schlund `__. Removed ``esmvalcore.iris_helpers.var_name_constraint`` (has been deprecated in v2.6.0; please use :class:`iris.NameConstraint` with the keyword argument ``var_name`` instead) and the option ``always_use_ne_mask`` for :func:`esmvalcore.preprocessor.mask_landsea` (has been deprecated in v2.5.0; the same behavior can now be achieved by specifying ``supplementary_variables``. - No files will be found if a non-existent version of a dataset is specified (`#1835 `_) `Bouwe Andela `__. If a ``version`` of a dataset is specified in the recipe, the tool will now search for exactly that version, instead of simply using the latest version. Therefore, it is necessary to make sure that the version number in the directory tree matches with the version number in the recipe to find the files. - The default filename template for obs4MIPs has been updated to better match filenames used in this project in (`#1866 `__) `Bouwe Andela `__. This may cause issues if you are storing all the files for obs4MIPs in a directory with no subdirectories per dataset. Deprecations ~~~~~~~~~~~~ Please read the descriptions of the linked pull requests for detailed upgrade instructions. - Various configuration related options that are now available through :mod:`esmvalcore.config` have been deprecated (`#1769 `_) `Bouwe Andela `__. - The ``fx_variables`` preprocessor argument and related features have been deprecated (`#1609`_) `Bouwe Andela `__. See `here `__ for more information. - Combined ``offline`` and ``always_search_esgf`` into a single option ``search_esgf`` (`#1935 `_) `Manuel Schlund `__. The configuration option/command line argument ``offline`` has been deprecated in favor of ``search_esgf``. The previous ``offline: true`` is now ``search_esgf: never`` (the default); the previous ``offline: false`` is now ``search_esgf: when_missing``. More details on how to adapt your workflow regarding these new options are given in `#1935`_ and the `documentation `__. - :func:`esmvalcore.preprocessor.cleanup` has been deprecated (`#1949 `_) `Manuel Schlund `__. Please do not use this anymore in the recipe (it is not necessary). Python API ~~~~~~~~~~ - Support searching ESGF for a specific version of a file and add :obj:`esmvalcore.esgf.ESGFFile.facets` (`#1822 `__) `Bouwe Andela `__ - Fix issues with searching for files on ESGF (`#1863 `__) `Bouwe Andela `__ - Move the :mod:`esmvalcore.experimental.config` module to :mod:`esmvalcore.config` (`#1769`_) `Bouwe Andela `__ - Add :mod:`esmvalcore.local`, a module to search data on the local filesystem (`#1835`_) `Bouwe Andela `__ - Add :mod:`esmvalcore.dataset` module (`#1877 `__) `Bouwe Andela `__ Bug fixes ~~~~~~~~~ - Import from :mod:`esmvalcore.config` in the :mod:`esmvalcore.experimental` module (`#1816 `__) `Bouwe Andela `__ - Added scalar coords of input cubes to output of esmpy_regrid (`#1811 `__) `Manuel Schlund `__ - Fix severe bug in :func:`esmvalcore.preprocessor.mask_fillvalues` (`#1823 `__) `Manuel Schlund `__ - Fix LWP of ICON on-the-fly CMORizer (`#1839 `__) `Manuel Schlund `__ - Fixed issue in irregular regridding regarding scalar coordinates (`#1845 `__) `Manuel Schlund `__ - Update product attributes and `metadata.yml` with cube metadata before saving files (`#1837 `__) `Manuel Schlund `__ - Remove an extra space character from a filename (`#1883 `__) `Bouwe Andela `__ - Improve resilience of ESGF search (`#1869 `__) `Bouwe Andela `__ - Fix issue with no files found if timerange start/end differs in length (`#1880 `__) `Bouwe Andela `__ - Add `driver` and `sub_experiment` tags to generate dataset aliases (`#1886 `__) `sloosvel `__ - Fixed time points of native CESM2 output (`#1772 `__) `Manuel Schlund `__ - Fix type hints for Python versions < 3.10 (`#1897 `__) `Bouwe Andela `__ - Fixed `set_range_in_0_360` for dask arrays (`#1919 `__) `Manuel Schlund `__ - Made equalized attributes in concatenated cubes consistent across runs (`#1783 `__) `Manuel Schlund `__ - Fix issue with reading dates from files (`#1936 `__) `Bouwe Andela `__ - Add institute name used on ESGF for CMIP5 CanAM4, CanCM4, and CanESM2 (`#1937 `__) `Bouwe Andela `__ - Fix issue where data was not loaded and saved (`#1962 `__) `Bouwe Andela `__ - Fix type hints for Python 3.8 (`#1795 `__) `Bouwe Andela `__ - Update the institute facet of the CSIRO-Mk3L-1-2 model (`#1966 `__) `Rémi Kazeroni `__ - Fixed race condition that may result in errors in :func:`esmvalcore.preprocessor.cleanup` (`#1949`_) `Manuel Schlund `__ - Update notebook so it uses supplementaries instead of ancillaries (`#1945 `__) `Bouwe Andela `__ Documentation ~~~~~~~~~~~~~ - Fix anaconda badge in README (`#1759 `__) `Valeriu Predoi `__ - Fix mistake in the documentation of :obj:`esmvalcore.esgf.find_files` (`#1784 `__) `Bouwe Andela `__ - Support linking to "stable" ESMValTool version on readthedocs (`#1608 `__) `Bouwe Andela `__ - Updated ICON doc with information on usage of extract_levels preprocessor (`#1903 `__) `Manuel Schlund `__ - Add changelog for latest released version v2.7.1 (`#1905 `__) `Valeriu Predoi `__ - Update `preprocessor.rst` due to renaming of NCEP dataset to NCEP-NCAR-R1 (`#1908 `__) `Birgit Hassler `__ - Replace timerange nested lists in docs with overview table (`#1940 `__) `Klaus Zimmermann `__ - Updated section "backward compatibility" in `contributing.rst` (`#1918 `__) `Axel Lauer `__ - Add link to ESMValTool release procedure steps (`#1957 `__) `Rémi Kazeroni `__ - Synchronize documentation table of contents with ESMValTool (`#1958 `__) `Bouwe Andela `__ Improvements ~~~~~~~~~~~~ - Support wildcards in the recipe and improve support for ancillary variables and dataset versioning (`#1609`_) `Bouwe Andela `__. More details on how to adapt your recipes are given in the corresponding pull request description and in the corresponding sections of the `recipe documentation `__ and the `preprocessor documentation `__. - Create a session directory with suffix "-1", "-2", etc if it already exists (`#1818 `__) `Bouwe Andela `__ - Message for users when they use esmvaltool executable from esmvalcore only (`#1831 `__) `Valeriu Predoi `__ - Order recipe output in index.html (`#1899 `__) `Bouwe Andela `__ - Improve reading facets from ESGF search results (`#1920 `__) `Bouwe Andela `__ Fixes for datasets ~~~~~~~~~~~~~~~~~~ - Fix rotated coordinate grids and `tas` and `pr` for CORDEX datasets (`#1765 `__) `sloosvel `__ - Made ICON output UGRID-compliant (on-the-fly) (`#1664 `__) `Manuel Schlund `__ - Fix automatic download of ICON grid file and make ICON UGRIDization optional (`default: true`) (`#1922 `__) `Manuel Schlund `__ - Add siconc fixes for EC-Earth3-Veg and EC-Earth3-Veg-LR models (`#1771 `__) `Evgenia Galytska `__ - Fix siconc in KIOST-ESM (`#1829 `__) `Lisa Bock `__ - Extension of ERA5 CMORizer (variable cl) (`#1850 `__) `Axel Lauer `__ - Add standard variable names for EMAC (`#1853 `__) `FranziskaWinterstein `__ - Fix for FGOALS-f3-L clt (`#1928 `__) `Lisa Bock `__ Installation ~~~~~~~~~~~~ - Add all deps to the conda-forge environment and suppress installing and reinstalling deps with pip at readthedocs builds (`#1786 `__) `Valeriu Predoi `__ - Pin netCDF4<1.6.1 (`#1805 `__) `Bouwe Andela `__ - Unpin NetCF4 (`#1814 `__) `Valeriu Predoi `__ - Unpin flake8 (`#1820 `__) `Valeriu Predoi `__ - Add iris-esmf-regrid as a dependency (`#1809 `__) `sloosvel `__ - Pin esmpy<8.4 (`#1871 `__) `Klaus Zimmermann `__ - Update esmpy import for ESMF v8.4.0 (`#1876 `__) `Bouwe Andela `__ Preprocessor ~~~~~~~~~~~~ - Allow :func:`esmvalcore.preprocessor.multi_model_statistics` on cubes with arbitrary dimensions (`#1808 `__) `Manuel Schlund `__ - Smarter removal of coordinate metadata in :func:`esmvalcore.preprocessor.multi_model_statistics` preprocessor (`#1813 `__) `Manuel Schlund `__ - Allowed usage of :func:`esmvalcore.preprocessor.multi_model_statistics` on single cubes/products (`#1849 `__) `Manuel Schlund `__ - Allowed usage of :func:`esmvalcore.preprocessor.multi_model_statistics` on cubes with identical ``name()`` and ``units`` (but e.g. different long_name) (`#1921 `__) `Manuel Schlund `__ - Allowed ignoring scalar coordinates in :func:`esmvalcore.preprocessor.multi_model_statistics` (`#1934 `__) `Manuel Schlund `__ - Refactored :func:`esmvalcore.preprocessor.regrid` and removed unnecessary code not needed anymore due to new iris version (`#1898 `__) `Manuel Schlund `__ - Do not realise coordinates during CMOR check (`#1912 `__) `sloosvel `__ - Make :func:`esmvalcore.preprocessor.extract_volume` work with closed and mixed intervals and allow nearest value selection (`#1930 `__) `sloosvel `__ Release ~~~~~~~ - Changelog for `v2.8.0rc1` (`#1952 `__) `Rémi Kazeroni `__ - Increase version number for ESMValCore `v2.8.0rc1` (`#1955 `__) `Rémi Kazeroni `__ - Changelog for `v2.8.0rc2` (`#1959 `__) `Rémi Kazeroni `__ - Increase version number for ESMValCore `v2.8.0rc2` (`#1973 `__) `Rémi Kazeroni `__ - Changelog for `v2.8.0` (`#1978 `__) `Rémi Kazeroni `__ - Increase version number for ESMValCore `v2.8.0` (`#1983 `__) `Rémi Kazeroni `__ Automatic testing ~~~~~~~~~~~~~~~~~ - Set implicit optional to true in `mypy` config to avert side effects and test fails from new mypy version (`#1790 `__) `Valeriu Predoi `__ - Remove duplicate `implicit_optional = True` line in ``setup.cfg`` (`#1791 `__) `Valeriu Predoi `__ - Fix failing test due to missing sample data (`#1797 `__) `Bouwe Andela `__ - Remove outdated cmor_table facet from data finder tests (`#1798 `__) `Bouwe Andela `__ - Modernize tests for :func:`esmvalcore.preprocessor.save` (`#1799 `__) `Bouwe Andela `__ - No more sequential tests since SegFaults were not noticed anymore (`#1819 `__) `Valeriu Predoi `__ - Update pre-commit configuration (`#1821 `__) `Bouwe Andela `__ - Updated URL of ICON grid file used for testing (`#1914 `__) `Manuel Schlund `__ Variable Derivation ~~~~~~~~~~~~~~~~~~~ - Add derivation of sea ice extent (`#1695 `__) `sloosvel `__ .. _changelog-v2-7-1: v2.7.1 ------ Highlights ~~~~~~~~~~ This is a bugfix release where we unpin `cf-units` to allow the latest `iris=3.4.0` to be installed. It also includes an update to the default configuration used when searching the ESGF for files, to account for a recent change of the CEDA ESGF index node hostname. The changelog contains only changes that were made to the ``main`` branch. Installation ~~~~~~~~~~~~ - Set the version number on the development branches to one minor version more than the previous release (`#1854 `__) `Bouwe Andela `__ - Unpin cf-units (`#1770 `__) `Bouwe Andela `__ Bug fixes ~~~~~~~~~ - Improve error handling if an esgf index node is offline (`#1834 `__) `Bouwe Andela `__ Automatic testing ~~~~~~~~~~~~~~~~~ - Removed unnecessary test that fails with iris 3.4.0 (`#1846 `__) `Manuel Schlund `__ - Update CEDA ESGF index node hostname (`#1838 `__) `Valeriu Predoi `__ .. _changelog-v2-7-0: v2.7.0 ------ Highlights ~~~~~~~~~~ - We have a new preprocessor function called `'rolling_window_statistics' `__ implemented by `Liza Malinina `__ - We have improved the support for native models, refactored native model fixes by adding common base class `NativeDatasetFix`, changed default DRS for reading native ICON output, and added tests for input/output filenames for `ICON `__ and `EMAC `__ on-the-fly CMORizer, all these features courtesy of `Manuel Schlund `__ - Performance of preprocessor functions that use time dimensions has been sped up by **two orders of magnitude** thanks to contributions by `Bouwe Andela `__ This release includes: Backwards incompatible changes ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Change default DRS for reading native ICON output (`#1705 `__) `Manuel Schlund `__ Bug fixes ~~~~~~~~~ - Add support for regions stored as MultiPolygon to extract_shape preprocessor (`#1670 `__) `Bouwe Andela `__ - Fixed type annotations for Python 3.8 (`#1700 `__) `Manuel Schlund `__ - Core `_io.concatenate()` may fail due to case when one of the cubes is scalar - this fixes that (`#1715 `__) `Valeriu Predoi `__ - Pick up esmvalcore badge instead of esmvaltool one in README (`#1749 `__) `Valeriu Predoi `__ - Restore support for scalar cubes to time selection preprocessor functions (`#1750 `__) `Bouwe Andela `__ - Fix calculation of precipitation flux in EMAC on-the-fly CMORizer (`#1755 `__) `Manuel Schlund `__ Deprecations ~~~~~~~~~~~~ - Remove deprecation warning for regrid schemes already deprecated for v2.7.0 (`#1753 `__) `Valeriu Predoi `__ Documentation ~~~~~~~~~~~~~ - Add Met Office Installation Method (`#1692 `__) `mo-tgeddes `__ - Add MO-paths to config file (`#1709 `__) `mo-tgeddes `__ - Update MO obs4MIPs paths in the user configuration file (`#1734 `__) `mo-tgeddes `__ - Update `Making a release` section of the documentation (`#1689 `__) `sloosvel `__ - Added changelog for v2.7.0 (`#1746 `__) `Valeriu Predoi `__ - update CITATION.cff file with 2.7.0 release info (`#1757 `__) `Valeriu Predoi `__ Improvements ~~~~~~~~~~~~ - New preprocessor function 'rolling_window_statistics' (`#1702 `__) `Liza Malinina `__ - Remove `pytest_flake8` plugin and use `flake8` instead (`#1722 `__) `Valeriu Predoi `__ - Added CESM2 CMORizer (`#1678 `__) `Manuel Schlund `__ - Speed up functions that use time dimension (`#1713 `__) `Bouwe Andela `__ - Modernize and minimize pylint configuration (`#1726 `__) `Bouwe Andela `__ Fixes for datasets ~~~~~~~~~~~~~~~~~~ - Refactored native model fixes by adding common base class `NativeDatasetFix` (`#1694 `__) `Manuel Schlund `__ Installation ~~~~~~~~~~~~ - Pin `netCDF4 != 1.6.1` since that seems to throw a flurry of Segmentation Faults (`#1724 `__) `Valeriu Predoi `__ Automatic testing ~~~~~~~~~~~~~~~~~ - Pin `flake8<5.0.0` since Circle CI tests are failing copiously (`#1698 `__) `Valeriu Predoi `__ - Added tests for input/output filenames for ICON and EMAC on-the-fly CMORizer (`#1718 `__) `Manuel Schlund `__ - Fix failed tests for Python<3.10 resulting from typing (`#1748 `__) `Manuel Schlund `__ .. _changelog-v2-6-0: v2.6.0 ------ Highlights ~~~~~~~~~~ - A new set of CMOR fixes is now available in order to load native EMAC model output and CMORize it on the fly. For details, see :ref:`Supported native models: EMAC `. - The version number of ESMValCore is now automatically generated using `setuptools_scm `__, which extracts Python package versions from git metadata. This release includes Deprecations ~~~~~~~~~~~~ - Deprecate the function `esmvalcore.var_name_constraint` (`#1592 `__) `Manuel Schlund `__. This function is scheduled for removal in v2.8.0. Please use :class:`iris.NameConstraint` with the keyword argument `var_name` instead: this is an exact replacement. Bug fixes ~~~~~~~~~ - Added `start_year` and `end_year` attributes to derived variables (`#1547 `__) `Manuel Schlund `__ - Show all results on recipe results webpage (`#1560 `__) `Bouwe Andela `__ - Regridding regular grids with similar coordinates (`#1567 `__) `Tomas Lovato `__ - Fix timerange wildcard search when deriving variables or downloading files (`#1562 `__) `sloosvel `__ - Fix `force_derivation` bug (`#1627 `__) `sloosvel `__ - Correct `build-and-deploy-on-pypi` action (`#1634 `__) `sloosvel `__ - Apply `clip_timerange` to time dependent fx variables (`#1603 `__) `sloosvel `__ - Correctly handle requests.exceptions.ConnectTimeout when an ESGF index node is offline (`#1638 `__) `Bouwe Andela `__ CMOR standard ~~~~~~~~~~~~~ - Added custom CMOR tables used for EMAC CMORizer (`#1599 `__) `Manuel Schlund `__ - Extended ICON CMORizer (`#1549 `__) `Manuel Schlund `__ - Add CMOR check exception for a basin coord named sector (`#1612 `__) `David Hohn `__ - Custom user-defined location for custom CMOR tables (`#1625 `__) `Manuel Schlund `__ Containerization ~~~~~~~~~~~~~~~~ - Remove update command in Dockerfile (`#1630 `__) `sloosvel `__ Community ~~~~~~~~~ - Add David Hohn to contributors' list (`#1586 `__) `Valeriu Predoi `__ Documentation ~~~~~~~~~~~~~ - [Github Actions Docs] Full explanation on how to use the GA test triggered by PR comment and added docs link for GA hosted runners (`#1553 `__) `Valeriu Predoi `__ - Update the command for building the documentation (`#1556 `__) `Bouwe Andela `__ - Update documentation on running the tool (`#1400 `__) `Bouwe Andela `__ - Add support for DKRZ-Levante (`#1558 `__) `Rémi Kazeroni `__ - Improved documentation on native dataset support (`#1559 `__) `Manuel Schlund `__ - Tweak `extract_point` preprocessor: explain what it returns if one point coord outside cube and add explicit test (`#1584 `__) `Valeriu Predoi `__ - Update CircleCI, readthedocs, and Docker configuration (`#1588 `__) `Bouwe Andela `__ - Remove support for Mistral in `config-user.yml` (`#1620 `__) `Rémi Kazeroni `__ - Add changelog for v2.6.0rc1 (`#1633 `__) `sloosvel `__ - Add a note on transferring permissions to the release manager (`#1645 `__) `Bouwe Andela `__ - Add documentation on building and uploading Docker images (`#1644 `__) `Bouwe Andela `__ - Update documentation on ESMValTool module at DKRZ (`#1647 `__) `Rémi Kazeroni `__ - Expanded information on deprecations in changelog (`#1658 `__) `Manuel Schlund `__ Improvements ~~~~~~~~~~~~ - Removed trailing whitespace in custom CMOR tables (`#1564 `__) `Manuel Schlund `__ - Try searching multiple ESGF index nodes (`#1561 `__) `Bouwe Andela `__ - Add CMIP6 `amoc` derivation case and add a test (`#1577 `__) `Valeriu Predoi `__ - Added EMAC CMORizer (`#1554 `__) `Manuel Schlund `__ - Improve performance of `volume_statistics` (`#1545 `__) `sloosvel `__ Fixes for datasets ~~~~~~~~~~~~~~~~~~ - Fixes of ocean variables in multiple CMIP6 datasets (`#1566 `__) `Tomas Lovato `__ - Ensure lat/lon bounds in FGOALS-l3 atmos variables are contiguous (`#1571 `__) `sloosvel `__ - Added `AllVars` fix for CMIP6's ICON-ESM-LR (`#1582 `__) `Manuel Schlund `__ Installation ~~~~~~~~~~~~ - Removed `package/meta.yml` (`#1540 `__) `Manuel Schlund `__ - Pinned iris>=3.2.1 (`#1552 `__) `Manuel Schlund `__ - Use setuptools-scm to automatically generate the version number (`#1578 `__) `Bouwe Andela `__ - Pin cf-units to lower than 3.1.0 to temporarily avoid changes within new version related to calendars (`#1659 `__) `Valeriu Predoi `__ Preprocessor ~~~~~~~~~~~~ - Allowed special case for unit conversion of precipitation (`kg m-2 s-1` <--> `mm day-1`) (`#1574 `__) `Manuel Schlund `__ - Add general `extract_coordinate_points` preprocessor (`#1581 `__) `sloosvel `__ - Add preprocessor `accumulate_coordinate` (`#1281 `__) `Javier Vegas-Regidor `__ - Add `axis_statistics` and improve `depth_integration` (`#1589 `__) `sloosvel `__ Release ~~~~~~~ - Increase version number for ESMValCore v2.6.0rc1 (`#1632 `__) `sloosvel `__ - Update changelog and version for 2.6rc3 (`#1646 `__) `sloosvel `__ - Add changelog for rc4 (`#1662 `__) `sloosvel `__ Automatic testing ~~~~~~~~~~~~~~~~~ - Refresh CircleCI cache weekly (`#1597 `__) `Bouwe Andela `__ - Use correct cache restore key on CircleCI (`#1598 `__) `Bouwe Andela `__ - Install git and ssh before checking out code on CircleCI (`#1601 `__) `Bouwe Andela `__ - Fetch all history in Github Action tests (`#1622 `__) `sloosvel `__ - Test Github Actions dashboard badge from meercode.io (`#1640 `__) `Valeriu Predoi `__ - Improve esmvalcore.esgf unit test (`#1650 `__) `Bouwe Andela `__ Variable Derivation ~~~~~~~~~~~~~~~~~~~ - Added derivation of `hfns` (`#1594 `__) `Manuel Schlund `__ .. _changelog-v2-5-0: v2.5.0 ------ Highlights ~~~~~~~~~~ - The new preprocessor :func:`~esmvalcore.preprocessor.extract_location` can extract arbitrary locations on the Earth using the `geopy `__ package that connects to OpenStreetMap. For details, see :ref:`Extract location `. - Time ranges can now be extracted using the `ISO 8601 format `_. In addition, wildcards are allowed, which makes the time selection much more flexible. For details, see :ref:`Recipe section: Datasets `. - The new preprocessor :func:`~esmvalcore.preprocessor.ensemble_statistics` can calculate arbitrary statistics over all ensemble members of a simulation. In addition, the preprocessor :func:`~esmvalcore.preprocessor.multi_model_statistics` now accepts the keyword ``groupy``, which allows the calculation of multi-model statistics over arbitrary multi-model ensembles. For details, see :ref:`Ensemble statistics ` and :ref:`Multi-model statistics `. This release includes Backwards incompatible changes ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Update Cordex section in `config-developer.yml` (`#1303 `__) `francesco-cmcc `__. This changes the naming convention of ESMValCore's output files from CORDEX dataset. This only affects recipes that use CORDEX data. Most likely, no changes in diagnostics are necessary; however, if code relies on the specific naming convention of files, it might need to be adapted. - Dropped Python 3.7 (`#1530 `__) `Manuel Schlund `__. ESMValCore v2.5.0 dropped support for Python 3.7. From now on Python >=3.8 is required to install ESMValCore. The main reason for this is that conda-forge dropped support for Python 3.7 for OSX and arm64 (more details are given `here `__). Bug fixes ~~~~~~~~~ - Fix `extract_shape` when fx vars are present (`#1403 `__) `sloosvel `__ - Added support of `extra_facets` to fx variables added by the preprocessor (`#1399 `__) `Manuel Schlund `__ - Augmented input for derived variables with extra_facets (`#1412 `__) `Manuel Schlund `__ - Correctly use masked arrays after `unstructured_nearest` regridding (`#1414 `__) `Manuel Schlund `__ - Fixing the broken derivation script for XCH4 (and XCO2) (`#1428 `__) `Birgit Hassler `__ - Ignore `.pymon-journal` file in test discovery (`#1436 `__) `Valeriu Predoi `__ - Fixed bug that caused automatic download to fail in rare cases (`#1442 `__) `Manuel Schlund `__ - Add new `JULIA_LOAD_PATH` to diagnostic task test (`#1444 `__) `Valeriu Predoi `__ - Fix provenance file permissions (`#1468 `__) `Bouwe Andela `__ - Fixed usage of `statistics=std_dev` option in multi-model statistics preprocessors (`#1478 `__) `Manuel Schlund `__ - Removed scalar coordinates `p0` and `ptop` prior to merge in `multi_model_statistics` (`#1471 `__) `Axel Lauer `__ - Added `dataset` and `alias` attributes to `multi_model_statistics` output (`#1483 `__) `Manuel Schlund `__ - Fixed issues with multi-model-statistics timeranges (`#1486 `__) `Manuel Schlund `__ - Fixed output messages for CMOR logging (`#1494 `__) `Manuel Schlund `__ - Fixed `clip_timerange` if only a single time point is extracted (`#1497 `__) `Manuel Schlund `__ - Fixed chunking in `multi_model_statistics` (`#1500 `__) `Manuel Schlund `__ - Fixed renaming of auxiliary coordinates in `multi_model_statistics` if coordinates are equal (`#1502 `__) `Manuel Schlund `__ - Fixed timerange selection for automatic downloads (`#1517 `__) `Manuel Schlund `__ - Fixed chunking in `multi_model_statistics` (`#1524 `__) `Manuel Schlund `__ Deprecations ~~~~~~~~~~~~ - Renamed vertical regridding schemes (`#1429 `__) `Manuel Schlund `__. Old regridding schemes are supported until v2.7.0. For details, see :ref:`Vertical interpolation schemes `. Documentation ~~~~~~~~~~~~~ - Remove duplicate entries in changelog (`#1391 `__) `Klaus Zimmermann `__ - Documentation on how to use HPC central installations (`#1409 `__) `Valeriu Predoi `__ - Correct brackets in preprocessor documentation for list of seasons (`#1420 `__) `Bouwe Andela `__ - Add Python=3.10 to package info, update Circle CI auto install and documentation for Python=3.10 (`#1432 `__) `Valeriu Predoi `__ - Reverted unintentional change in `.zenodo.json` (`#1452 `__) `Manuel Schlund `__ - Synchronized config-user.yml with version from ESMValTool (`#1453 `__) `Manuel Schlund `__ - Solved issues in configuration files (`#1457 `__) `Manuel Schlund `__ - Add direct link to download conda lock file in the install documentation (`#1462 `__) `Valeriu Predoi `__ - CITATION.cff fix and automatic validation of citation metadata (`#1467 `__) `Valeriu Predoi `__ - Updated documentation on how to deprecate features (`#1426 `__) `Manuel Schlund `__ - Added reference hook to conda lock in documentation install section (`#1473 `__) `Valeriu Predoi `__ - Increased ESMValCore version to 2.5.0rc1 (`#1477 `__) `Manuel Schlund `__ - Added changelog for v2.5.0 release (`#1476 `__) `Manuel Schlund `__ - Increased ESMValCore version to 2.5.0rc2 (`#1487 `__) `Manuel Schlund `__ - Added some authors to citation and zenodo files (`#1488 `__) `SarahAlidoost `__ - Restored `scipy` intersphinx mapping (`#1491 `__) `Manuel Schlund `__ - Increased ESMValCore version to 2.5.0rc3 (`#1504 `__) `Manuel Schlund `__ - Fix download instructions for the MSWEP dataset (`#1506 `__) `Rémi Kazeroni `__ - Documentation updated for the new cmorizer framework (`#1417 `__) `Rémi Kazeroni `__ - Added tests for duplicates in changelog and removed duplicates (`#1508 `__) `Manuel Schlund `__ - Increased ESMValCore version to 2.5.0rc4 (`#1519 `__) `Manuel Schlund `__ - Add Github Actions Test badge in README (`#1526 `__) `Valeriu Predoi `__ - Increased ESMValCore version to 2.5.0rc5 (`#1529 `__) `Manuel Schlund `__ - Increased ESMValCore version to 2.5.0rc6 (`#1532 `__) `Manuel Schlund `__ Fixes for datasets ~~~~~~~~~~~~~~~~~~ - Added fix for AIRS v2.1 (obs4mips) (`#1472 `__) `Axel Lauer `__ Preprocessor ~~~~~~~~~~~~ - Added bias preprocessor (`#1406 `__) `Manuel Schlund `__ - Improve error messages when a preprocessor is failing (`#1408 `__) `Manuel Schlund `__ - Added option to explicitly not use fx variables in preprocessors (`#1416 `__) `Manuel Schlund `__ - Add `extract_location` preprocessor to extract town, city, mountains etc - anything specifiable by a location (`#1251 `__) `Javier Vegas-Regidor `__ - Add ensemble statistics preprocessor and 'groupby' option for multimodel (`#673 `__) `sloosvel `__ - Generic regridding preprocessor (`#1448 `__) `Klaus Zimmermann `__ Automatic testing ~~~~~~~~~~~~~~~~~ - Add `pandas` as dependency :panda_face: (`#1402 `__) `Valeriu Predoi `__ - Fixed tests for python 3.7 (`#1410 `__) `Manuel Schlund `__ - Remove accessing `.xml()` cube method from test (`#1419 `__) `Valeriu Predoi `__ - Remove flag to use pip 2020 solver from Github Action pip install command on OSX (`#1357 `__) `Valeriu Predoi `__ - Add Python=3.10 to Github Actions and switch to Python=3.10 for the Github Action that builds the PyPi package (`#1430 `__) `Valeriu Predoi `__ - Pin `flake8<4` to keep getting relevant error traces when tests fail with FLAKE8 issues (`#1434 `__) `Valeriu Predoi `__ - Implementing conda lock (`#1164 `__) `Valeriu Predoi `__ - Relocate `pytest-monitor` outputted database `.pymon` so `.pymon-journal` file should not be looked for by `pytest` (`#1441 `__) `Valeriu Predoi `__ - Switch to Mambaforge in Github Actions tests (`#1438 `__) `Valeriu Predoi `__ - Turn off conda lock file creation on any push on `main` branch from Github Action test (`#1489 `__) `Valeriu Predoi `__ - Add DRS path test for IPSLCM files (`#1490 `__) `Stéphane Sénési `__ - Add a test module that runs tests of `iris` I/O every time we notice serious bugs there (`#1510 `__) `Valeriu Predoi `__ - [Github Actions] Trigger Github Actions tests (`run-tests.yml` workflow) from a comment in a PR (`#1520 `__) `Valeriu Predoi `__ - Update Linux condalock file (various pull requests) github-actions[bot] Installation ~~~~~~~~~~~~ - Move `nested-lookup` dependency to `environment.yml` to be installed from conda-forge instead of PyPi (`#1481 `__) `Valeriu Predoi `__ - Pinned `iris` (`#1511 `__) `Manuel Schlund `__ - Updated dependencies (`#1521 `__) `Manuel Schlund `__ - Pinned iris<3.2.0 (`#1525 `__) `Manuel Schlund `__ Improvements ~~~~~~~~~~~~ - Allow to load all files, first X years or last X years in an experiment (`#1133 `__) `sloosvel `__ - Filter tasks earlier (`#1264 `__) `Javier Vegas-Regidor `__ - Added earlier validation for command line arguments (`#1435 `__) `Manuel Schlund `__ - Remove `profile_diagnostic` from diagnostic settings and increase test coverage of `_task.py` (`#1404 `__) `Valeriu Predoi `__ - Add `output2` to the `product` extra facet of CMIP5 data (`#1514 `__) `Rémi Kazeroni `__ - Speed up ESGF search (`#1512 `__) `Bouwe Andela `__ .. _changelog-v2-4-0: v2.4.0 ------ Highlights ~~~~~~~~~~ - ESMValCore now has the ability to automatically download missing data from ESGF. For details, see :ref:`Data Retrieval`. - ESMValCore now also can resume an earlier run. This is useful to re-use expensive preprocessor results. For details, see :ref:`Running`. This release includes Bug fixes ~~~~~~~~~ - Crop on the ID-selected region(s) and not on the whole shapefile (`#1151 `__) `Stef Smeets `__ - Add 'comment' to list of removed attributes (`#1244 `__) `Peter Kalverla `__ - Speed up multimodel statistics and fix bug in peak computation (`#1301 `__) `Bouwe Andela `__ - No longer make plots of provenance (`#1307 `__) `Bouwe Andela `__ - No longer embed provenance in output files (`#1306 `__) `Bouwe Andela `__ - Removed automatic addition of areacello to obs4mips datasets (`#1316 `__) `Manuel Schlund `__ - Pin docutils <0.17 to fix bullet lists on readthedocs (`#1320 `__) `Klaus Zimmermann `__ - Fix obs4MIPs capitalization (`#1328 `__) `Bouwe Andela `__ - Fix Python 3.7 tests (`#1330 `__) `Bouwe Andela `__ - Handle fx variables in `extract_levels` and some time operations (`#1269 `__) `sloosvel `__ - Refactored mask regridding for irregular grids (fixes #772) (`#865 `__) `Klaus Zimmermann `__ - Fix `da.broadcast_to` call when the fx cube has different shape than target data cube (`#1350 `__) `Valeriu Predoi `__ - Add tests for _aggregate_time_fx (`#1354 `__) `sloosvel `__ - Fix extra facets (`#1360 `__) `Bouwe Andela `__ - Pin pip!=21.3 to avoid pypa/pip#10573 with editable installs (`#1359 `__) `Klaus Zimmermann `__ - Add a custom `date2num` function to deal with changes in cftime (`#1373 `__) `Klaus Zimmermann `__ - Removed custom version of `AtmosphereSigmaFactory` (`#1382 `__) `Manuel Schlund `__ Deprecations ~~~~~~~~~~~~ - Remove write_netcdf and write_plots from config-user.yml (`#1300 `__) `Bouwe Andela `__ Documentation ~~~~~~~~~~~~~ - Add link to plot directory in index.html (`#1256 `__) `Stef Smeets `__ - Work around issue with yapf not following PEP8 (`#1277 `__) `Bouwe Andela `__ - Update the core development team (`#1278 `__) `Bouwe Andela `__ - Update the documentation of the provenance interface (`#1305 `__) `Bouwe Andela `__ - Update version number to first release candidate 2.4.0rc1 (`#1363 `__) `Klaus Zimmermann `__ - Update to new ESMValTool logo (`#1374 `__) `Klaus Zimmermann `__ - Update version number for third release candidate 2.4.0rc3 (`#1384 `__) `Klaus Zimmermann `__ - Update changelog for 2.4.0rc3 (`#1385 `__) `Klaus Zimmermann `__ - Update version number to final 2.4.0 release (`#1389 `__) `Klaus Zimmermann `__ - Update changelog for 2.4.0 (`#1366 `__) `Klaus Zimmermann `__ Fixes for datasets ~~~~~~~~~~~~~~~~~~ - Add fix for differing latitude coordinate between historical and ssp585 in MPI-ESM1-2-HR r2i1p1f1 (`#1292 `__) `Bouwe Andela `__ - Add fixes for time and latitude coordinate of EC-Earth3 r3i1p1f1 (`#1290 `__) `Bouwe Andela `__ - Apply latitude fix to all CCSM4 variables (`#1295 `__) `Bouwe Andela `__ - Fix lat and lon bounds for FGOALS-g3 mrsos (`#1289 `__) `Thomas Crocker `__ - Add grid fix for tos in fgoals-f3-l (`#1326 `__) `sloosvel `__ - Add fix for CIESM pr (`#1344 `__) `Bouwe Andela `__ - Fix DRS for IPSLCM : split attribute 'freq' into : 'out' and 'freq' (`#1304 `__) `Stéphane Sénési - work `__ CMOR standard ~~~~~~~~~~~~~ - Remove history attribute from coords (`#1276 `__) `Javier Vegas-Regidor `__ - Increased flexibility of CMOR checks for datasets with generic alevel coordinates (`#1032 `__) `Manuel Schlund `__ - Automatically fix small deviations in vertical levels (`#1177 `__) `Bouwe Andela `__ - Adding standard names to the custom tables of the `rlns` and `rsns` variables (`#1386 `__) `Rémi Kazeroni `__ Preprocessor ~~~~~~~~~~~~ - Implemented fully lazy climate_statistics (`#1194 `__) `Manuel Schlund `__ - Run the multimodel statistics preprocessor last (`#1299 `__) `Bouwe Andela `__ Automatic testing ~~~~~~~~~~~~~~~~~ - Improving test coverage for _task.py (`#514 `__) `Valeriu Predoi `__ - Upload coverage to codecov (`#1190 `__) `Bouwe Andela `__ - Improve codecov status checks (`#1195 `__) `Bouwe Andela `__ - Fix curl install in CircleCI (`#1228 `__) `Javier Vegas-Regidor `__ - Drop support for Python 3.6 (`#1200 `__) `Valeriu Predoi `__ - Allow more recent version of `scipy` (`#1182 `__) `Manuel Schlund `__ - Speed up conda build `conda_build` Circle test by using `mamba` solver via `boa` (and use it for Github Actions test too) (`#1243 `__) `Valeriu Predoi `__ - Fix numpy deprecation warnings (`#1274 `__) `Bouwe Andela `__ - Unpin upper bound for iris (previously was at <3.0.4) (`#1275 `__) `Valeriu Predoi `__ - Modernize `conda_install` test on Circle CI by installing from conda-forge with Python 3.9 and change install instructions in documentation (`#1280 `__) `Valeriu Predoi `__ - Run a nightly Github Actions workflow to monitor tests memory per test (configurable for other metrics too) (`#1284 `__) `Valeriu Predoi `__ - Speed up tests of tasks (`#1302 `__) `Bouwe Andela `__ - Fix upper case to lower case variables and functions for flake compliance in `tests/unit/preprocessor/_regrid/test_extract_levels.py` (`#1347 `__) `Valeriu Predoi `__ - Cleaned up a bit Github Actions workflows (`#1345 `__) `Valeriu Predoi `__ - Update circleci jobs: renaming tests to more descriptive names and removing conda build test (`#1351 `__) `Klaus Zimmermann `__ - Pin iris to latest `>=3.1.0` (`#1341 `__) `Valeriu Predoi `__ Installation ~~~~~~~~~~~~ - Pin esmpy to anything but 8.1.0 since that particular one changes the CPU affinity (`#1310 `__) `Valeriu Predoi `__ Improvements ~~~~~~~~~~~~ - Add a more friendly and useful message when using default config file (`#1233 `__) `Valeriu Predoi `__ - Replace os.walk by glob.glob in data finder (only look for data in the specified locations) (`#1261 `__) `Bouwe Andela `__ - Machine-specific directories for auxiliary data in the `config-user.yml` file (`#1268 `__) `Rémi Kazeroni `__ - Add an option to download missing data from ESGF (`#1217 `__) `Bouwe Andela `__ - Speed up provenance recording (`#1327 `__) `Bouwe Andela `__ - Improve results web page (`#1332 `__) `Bouwe Andela `__ - Move institutes from config-developer.yml to default extra facets config and add wildcard support for extra facets (`#1259 `__) `Bouwe Andela `__ - Add support for re-using preprocessor output from previous runs (`#1321 `__) `Bouwe Andela `__ - Log fewer messages to screen and hide stack trace for known recipe errors (`#1296 `__) `Bouwe Andela `__ - Log ESMValCore and ESMValTool versions when running (`#1263 `__) `Javier Vegas-Regidor `__ - Add "grid" as a tag to the output file template for CMIP6 (`#1356 `__) `Klaus Zimmermann `__ - Implemented ICON project to read native ICON model output (`#1079 `__) `Brei Soliño `__ .. _changelog-v2-3-1: v2.3.1 ------ This release includes Bug fixes ~~~~~~~~~ - Update config-user.yml template with correct drs entries for CEDA-JASMIN (`#1184 `__) `Valeriu Predoi `__ - Enhancing MIROC5 fix for hfls and evspsbl (`#1192 `__) `katjaweigel `__ - Fix alignment of daily data with inconsistent calendars in multimodel statistics (`#1212 `__) `Peter Kalverla `__ - Pin cf-units, remove github actions test for Python 3.6 and fix test_access1_0 and test_access1_3 to use cf-units for comparisons (`#1197 `__) `Valeriu Predoi `__ - Fixed search for fx files when no ``mip`` is given (`#1216 `__) `Manuel Schlund `__ - Make sure climate statistics always returns original dtype (`#1237 `__) `Klaus Zimmermann `__ - Bugfix for regional regridding when non-integer range is passed (`#1231 `__) `Stef Smeets `__ - Make sure area_statistics preprocessor always returns original dtype (`#1239 `__) `Klaus Zimmermann `__ - Add "." (dot) as allowed separation character for the time range group (`#1248 `__) `Klaus Zimmermann `__ Documentation ~~~~~~~~~~~~~ - Add a link to the instructions to use pre-installed versions on HPC clusters (`#1186 `__) `Rémi Kazeroni `__ - Bugfix release: set version to 2.3.1 (`#1253 `__) `Klaus Zimmermann `__ Fixes for datasets ~~~~~~~~~~~~~~~~~~ - Set circular attribute in MCM-UA-1-0 fix (`#1178 `__) `sloosvel `__ - Fixed time coordinate of MIROC-ESM (`#1188 `__) `Manuel Schlund `__ Preprocessor ~~~~~~~~~~~~ - Filter warnings about collapsing multi-model dimension in multimodel statistics preprocessor function (`#1215 `__) `Bouwe Andela `__ - Remove fx variables before computing multimodel statistics (`#1220 `__) `sloosvel `__ Installation ~~~~~~~~~~~~ - Pin lower bound for iris to 3.0.2 (`#1206 `__) `Valeriu Predoi `__ - Pin `iris<3.0.4` to ensure we still (sort of) support Python 3.6 (`#1252 `__) `Valeriu Predoi `__ Improvements ~~~~~~~~~~~~ - Add test to verify behaviour for scalar height coord for tas in multi-model (`#1209 `__) `Peter Kalverla `__ - Sort missing years in "No input data available for years" message (`#1225 `__) `Lee de Mora `__ .. _changelog-v2-3-0: v2.3.0 ------ This release includes Bug fixes ~~~~~~~~~ - Extend preprocessor multi_model_statistics to handle data with "altitude" coordinate (`#1010 `__) `Axel Lauer `__ - Remove scripts included with CMOR tables (`#1011 `__) `Bouwe Andela `__ - Avoid side effects in extract_season (`#1019 `__) `Javier Vegas-Regidor `__ - Use nearest scheme to avoid interpolation errors with masked data in regression test (`#1021 `__) `Stef Smeets `__ - Move _get_time_bounds from preprocessor._time to cmor.check to avoid circular import with cmor module (`#1037 `__) `Valeriu Predoi `__ - Fix test that makes conda build fail (`#1046 `__) `Valeriu Predoi `__ - Fix 'positive' attribute for rsns/rlns variables (`#1051 `__) `Lukas Brunner `__ - Added preprocessor mask_multimodel (`#767 `__) `Manuel Schlund `__ - Fix bug when fixing bounds after fixing longitude values (`#1057 `__) `sloosvel `__ - Run conda build parallel AND sequential tests (`#1065 `__) `Valeriu Predoi `__ - Add key to id_prop (`#1071 `__) `Lukas Brunner `__ - Fix bounds after reversing coordinate values (`#1061 `__) `sloosvel `__ - Fixed --skip-nonexistent option (`#1093 `__) `Manuel Schlund `__ - Do not consider CMIP5 variable sit to be the same as sithick from CMIP6 (`#1033 `__) `Bouwe Andela `__ - Improve finding date range in filenames (enforces separators) (`#1145 `__) `Stéphane Sénési - work `__ - Review fx handling (`#1147 `__) `sloosvel `__ - Fix lru cache decorator with explicit call to method (`#1172 `__) `Valeriu Predoi `__ - Update _volume.py (`#1174 `__) `Lee de Mora `__ Deprecations ~~~~~~~~~~~~ Documentation ~~~~~~~~~~~~~ - Final changelog for 2.3.0 (`#1163 `__) `Klaus Zimmermann `__ - Set version to 2.3.0 (`#1162 `__) `Klaus Zimmermann `__ - Fix documentation build (`#1006 `__) `Bouwe Andela `__ - Add labels required for linking from ESMValTool docs (`#1038 `__) `Bouwe Andela `__ - Update contribution guidelines (`#1047 `__) `Bouwe Andela `__ - Fix basestring references in documentation (`#1106 `__) `Javier Vegas-Regidor `__ - Updated references master to main (`#1132 `__) `Axel Lauer `__ - Add instructions how to use the central installation at DKRZ-Mistral (`#1155 `__) `Rémi Kazeroni `__ Fixes for datasets ~~~~~~~~~~~~~~~~~~ - Added fixes for various CMIP5 datasets, variable cl (3-dim cloud fraction) (`#1017 `__) `Axel Lauer `__ - Added fixes for hybrid level coordinates of CESM2 models (`#882 `__) `Manuel Schlund `__ - Extending LWP fix for CMIP6 models (`#1049 `__) `Axel Lauer `__ - Add fixes for the net & up radiation variables from ERA5 (`#1052 `__) `Lukas Brunner `__ - Add derived variable rsus (`#1053 `__) `Lukas Brunner `__ - Supported `mip`-level fixes (`#1095 `__) `Manuel Schlund `__ - Fix erroneous use of `grid_latitude` and `grid_longitude` and cleaned ocean grid fixes (`#1092 `__) `Manuel Schlund `__ - Fix for pr of miroc5 (`#1110 `__) `Rémi Kazeroni `__ - Ocean depth fix for cnrm_esm2_1, gfdl_esm4, ipsl_cm6a_lr datasets + mcm_ua_1_0 (`#1098 `__) `Tomas Lovato `__ - Fix for uas variable of the MCM_UA_1_0 dataset (`#1102 `__) `Rémi Kazeroni `__ - Fixes for sos and siconc of BCC models (`#1090 `__) `Rémi Kazeroni `__ - Run fgco2 fix for all CESM2 models (`#1108 `__) `Lisa Bock `__ - Fixes for the siconc variable of CMIP6 models (`#1105 `__) `Rémi Kazeroni `__ - Fix wrong sign for land surface flux (`#1113 `__) `Lisa Bock `__ - Fix for pr of EC_EARTH (`#1116 `__) `Rémi Kazeroni `__ CMOR standard ~~~~~~~~~~~~~ - Format cmor related files (`#976 `__) `Javier Vegas-Regidor `__ - Check presence of time bounds and guess them if needed (`#849 `__) `sloosvel `__ - Add custom variable "tasaga" (`#1118 `__) `Lisa Bock `__ - Find files for CMIP6 DCPP startdates (`#771 `__) `sloosvel `__ Preprocessor ~~~~~~~~~~~~ - Update tests for multimodel statistics preprocessor (`#1023 `__) `Stef Smeets `__ - Raise in extract_season and extract_month if result is None (`#1041 `__) `Javier Vegas-Regidor `__ - Allow selection of shapes in extract_shape (`#764 `__) `Javier Vegas-Regidor `__ - Add option for regional regridding to regrid preprocessor (`#1034 `__) `Stef Smeets `__ - Load fx variables as cube cell measures / ancillary variables (`#999 `__) `sloosvel `__ - Check horizontal grid before regridding (`#507 `__) `Benjamin Müller `__ - Clip irregular grids (`#245 `__) `Bouwe Andela `__ - Use native iris functions in multi-model statistics (`#1150 `__) `Peter Kalverla `__ Notebook API (experimental) ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Automatic testing ~~~~~~~~~~~~~~~~~ - Report coverage for tests that run on any pull request (`#994 `__) `Bouwe Andela `__ - Install ESMValTool sample data from PyPI (`#998 `__) `Javier Vegas-Regidor `__ - Fix tests for multi-processing with spawn method (i.e. macOSX with Python>3.8) (`#1003 `__) `Barbara Vreede `__ - Switch to running the Github Action test workflow every 3 hours in single thread mode to observe if Segmentation Faults occur (`#1022 `__) `Valeriu Predoi `__ - Revert to original Github Actions test workflow removing the 3-hourly test run with -n 1 (`#1025 `__) `Valeriu Predoi `__ - Avoid stale cache for multimodel statistics regression tests (`#1030 `__) `Bouwe Andela `__ - Add newer Python versions in OSX to Github Actions (`#1035 `__) `Barbara Vreede `__ - Add tests for type annotations with mypy (`#1042 `__) `Stef Smeets `__ - Run problematic cmor tests sequentially to avoid segmentation faults on CircleCI (`#1064 `__) `Valeriu Predoi `__ - Test installation of esmvalcore from conda-forge (`#1075 `__) `Valeriu Predoi `__ - Added additional test cases for integration tests of data_finder.py (`#1087 `__) `Manuel Schlund `__ - Pin cf-units and fix tests (cf-units>=2.1.5) (`#1140 `__) `Valeriu Predoi `__ - Fix failing CircleCI tests (`#1167 `__) `Bouwe Andela `__ - Fix test failing due to fx files chosen differently on different OS's (`#1169 `__) `Valeriu Predoi `__ - Compare datetimes instead of strings in _fixes/cmip5/test_access1_X.py (`#1173 `__) `Valeriu Predoi `__ - Pin Python to 3.9 in environment.yml on CircleCI and skip mypy tests in conda build (`#1176 `__) `Bouwe Andela `__ Installation ~~~~~~~~~~~~ - Update yamale to version 3 (`#1059 `__) `Klaus Zimmermann `__ Improvements ~~~~~~~~~~~~ - Refactor diagnostics / tags management (`#939 `__) `Stef Smeets `__ - Support multiple paths in input_dir (`#1000 `__) `Javier Vegas-Regidor `__ - Generate HTML report with recipe output (`#991 `__) `Stef Smeets `__ - Add timeout to requests.get in _citation.py (`#1091 `__) `SarahAlidoost `__ - Add SYNDA drs for CMIP5 and CMIP6 (closes #582) (`#583 `__) `Klaus Zimmermann `__ - Add basic support for variable mappings (`#1124 `__) `Klaus Zimmermann `__ - Handle IPSL-CM6 (`#1153 `__) `Stéphane Sénési - work `__ .. _changelog-v2-2-0: v2.2.0 ------ Highlights ~~~~~~~~~~ ESMValCore is now using the recently released `Iris 3 `__. We acknowledge that this change may impact your work, as Iris 3 introduces several changes that are not backward-compatible, but we think that moving forward is the best decision for the tool in the long term. This release is also the first one including support for downloading CMIP6 data using Synda and we have also started supporting Python 3.9. Give it a try! This release includes Bug fixes ~~~~~~~~~ - Fix path settings for DKRZ/Mistral (`#852 `__) `Bouwe Andela `__ - Change logic for calling the diagnostic script to avoid problems with scripts where the executable bit is accidentally set (`#877 `__) `Bouwe Andela `__ - Fix overwriting in generic level check (`#886 `__) `sloosvel `__ - Add double quotes to script args in rerun screen message when using vprof profiling (`#897 `__) `Valeriu Predoi `__ - Simplify time handling in multi-model statistics preprocessor (`#685 `__) `Peter Kalverla `__ - Fix links to Iris documentation (`#966 `__) `Javier Vegas-Regidor `__ - Bugfix: Fix units for MSWEP data (`#986 `__) `Stef Smeets `__ Deprecations ~~~~~~~~~~~~ - Deprecate defining write_plots and write_netcdf in config-user file (`#808 `__) `Bouwe Andela `__ Documentation ~~~~~~~~~~~~~ - Fix numbering of steps in release instructions (`#838 `__) `Bouwe Andela `__ - Add labels to changelogs of individual versions for easy reference (`#899 `__) `Klaus Zimmermann `__ - Make CircleCI badge specific to main branch (`#902 `__) `Bouwe Andela `__ - Fix docker build badge url (`#906 `__) `Stef Smeets `__ - Update github PR template (`#909 `__) `Stef Smeets `__ - Refer to ESMValTool GitHub discussions page in the error message (`#900 `__) `Bouwe Andela `__ - Support automatically closing issues (`#922 `__) `Bouwe Andela `__ - Fix checkboxes in PR template (`#931 `__) `Stef Smeets `__ - Change in config-user defaults and documentation with new location for esmeval OBS data on JASMIN (`#958 `__) `Valeriu Predoi `__ - Update Core Team info (`#942 `__) `Axel Lauer `__ - Update iris documentation URL for sphinx (`#964 `__) `Bouwe Andela `__ - Set version to 2.2.0 (`#977 `__) `Javier Vegas-Regidor `__ - Add first draft of v2.2.0 changelog (`#983 `__) `Javier Vegas-Regidor `__ - Add checkbox in PR template to assign labels (`#985 `__) `Javier Vegas-Regidor `__ - Update install.rst (`#848 `__) `bascrezee `__ - Change the order of the publication steps (`#984 `__) `Javier Vegas-Regidor `__ - Add instructions how to use esmvaltool from HPC central installations (`#841 `__) `Valeriu Predoi `__ Fixes for datasets ~~~~~~~~~~~~~~~~~~ - Fixing unit for derived variable rsnstcsnorm to prevent overcorrection2 (`#846 `__) `katjaweigel `__ - Cmip6 fix awi cm 1 1 mr (`#822 `__) `mwjury `__ - Cmip6 fix ec earth3 veg (`#836 `__) `mwjury `__ - Changed latitude longitude fix from Tas to AllVars. (`#916 `__) `katjaweigel `__ - Fix for precipitation (pr) to use ERA5-Land cmorizer (`#879 `__) `katjaweigel `__ - Cmip6 fix ec earth3 (`#837 `__) `mwjury `__ - Cmip6_fix_fgoals_f3_l_Amon_time_bnds (`#831 `__) `mwjury `__ - Fix for FGOALS-f3-L sftlf (`#667 `__) `mwjury `__ - Improve ACCESS-CM2 and ACCESS-ESM1-5 fixes and add CIESM and CESM2-WACCM-FV2 fixes for cl, clw and cli (`#635 `__) `Axel Lauer `__ - Add fixes for cl, cli, clw and tas for several CMIP6 models (`#955 `__) `Manuel Schlund `__ - Dataset fixes for MSWEP (`#969 `__) `Stef Smeets `__ - Dataset fixes for: ACCESS-ESM1-5, CanESM5, CanESM5 for carbon cycle (`#947 `__) `Bettina Gier `__ - Fixes for KIOST-ESM (CMIP6) (`#904 `__) `Rémi Kazeroni `__ - Fixes for AWI-ESM-1-1-LR (CMIP6, piControl) (`#911 `__) `Rémi Kazeroni `__ CMOR standard ~~~~~~~~~~~~~ - CMOR check generic level coordinates in CMIP6 (`#598 `__) `sloosvel `__ - Update CMIP6 tables to 6.9.33 (`#919 `__) `Javier Vegas-Regidor `__ - Adding custom variables for tas uncertainty (`#924 `__) `Lisa Bock `__ - Remove monotonicity coordinate check for unstructured grids (`#965 `__) `Javier Vegas-Regidor `__ Preprocessor ~~~~~~~~~~~~ - Added clip_start_end_year preprocessor (`#796 `__) `Manuel Schlund `__ - Add support for downloading CMIP6 data with Synda (`#699 `__) `Bouwe Andela `__ - Add multimodel tests using real data (`#856 `__) `Stef Smeets `__ - Add plev/altitude conversion to extract_levels (`#892 `__) `Axel Lauer `__ - Add possibility of custom season extraction. (`#247 `__) `mwjury `__ - Adding the ability to derive xch4 (`#783 `__) `Birgit Hassler `__ - Add preprocessor function to resample time and compute x-hourly statistics (`#696 `__) `Javier Vegas-Regidor `__ - Fix duplication in preprocessors DEFAULT_ORDER introduced in #696 (`#973 `__) `Javier Vegas-Regidor `__ - Use consistent precision in multi-model statistics calculation and update reference data for tests (`#941 `__) `Peter Kalverla `__ - Refactor multi-model statistics code to facilitate ensemble stats and lazy evaluation (`#949 `__) `Peter Kalverla `__ - Add option to exclude input cubes in output of multimodel statistics to solve an issue introduced by #949 (`#978 `__) `Peter Kalverla `__ Automatic testing ~~~~~~~~~~~~~~~~~ - Pin cftime>=1.3.0 to have newer string formatting in and fix two tests (`#878 `__) `Valeriu Predoi `__ - Switched miniconda conda setup hooks for Github Actions workflows (`#873 `__) `Valeriu Predoi `__ - Add test for latest version resolver (`#874 `__) `Stef Smeets `__ - Update codacy coverage reporter to fix coverage (`#905 `__) `Niels Drost `__ - Avoid hardcoded year in tests and add improvement to plev test case (`#921 `__) `Bouwe Andela `__ - Pin scipy to less than 1.6.0 until ESMValGroup/ESMValCore/issues/927 gets resolved (`#928 `__) `Valeriu Predoi `__ - Github Actions: change time when conda install test runs (`#930 `__) `Valeriu Predoi `__ - Remove redundant test line from test_utils.py (`#935 `__) `Valeriu Predoi `__ - Removed netCDF4 package from integration tests of fixes (`#938 `__) `Manuel Schlund `__ - Use new conda environment for installing ESMValCore in Docker containers (`#951 `__) `Bouwe Andela `__ Notebook API (experimental) ~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Implement importable config object in experimental API submodule (`#868 `__) `Stef Smeets `__ - Add loading and running recipes to the notebook API (`#907 `__) `Stef Smeets `__ - Add displaying and loading of recipe output to the notebook API (`#957 `__) `Stef Smeets `__ - Add functionality to run single diagnostic task to notebook API (`#962 `__) `Stef Smeets `__ Improvements ~~~~~~~~~~~~ - Create CODEOWNERS file (`#809 `__) `Javier Vegas-Regidor `__ - Remove code needed for Python <3.6 (`#844 `__) `Bouwe Andela `__ - Add requests as a dependency (`#850 `__) `Bouwe Andela `__ - Pin Python to less than 3.9 (`#870 `__) `Valeriu Predoi `__ - Remove numba dependency (`#880 `__) `Manuel Schlund `__ - Add Listing and finding recipes to the experimental notebook API (`#901 `__) `Stef Smeets `__ - Skip variables that don't have dataset or additional_dataset keys (`#860 `__) `Valeriu Predoi `__ - Refactor logging configuration (`#933 `__) `Stef Smeets `__ - Xco2 derivation (`#913 `__) `Bettina Gier `__ - Working environment for Python 3.9 (pin to !=3.9.0) (`#885 `__) `Valeriu Predoi `__ - Print source file when using config get_config_user command (`#960 `__) `Valeriu Predoi `__ - Switch to Iris 3 (`#819 `__) `Stef Smeets `__ - Refactor tasks (`#959 `__) `Stef Smeets `__ - Restore task summary in debug log after #959 (`#981 `__) `Bouwe Andela `__ - Pin pre-commit hooks (`#974 `__) `Stef Smeets `__ - Improve error messages when data is missing (`#917 `__) `Javier Vegas-Regidor `__ - Set remove_preproc_dir to false in default config-user (`#979 `__) `Valeriu Predoi `__ - Move fiona to be installed from conda forge (`#987 `__) `Valeriu Predoi `__ - Re-added fiona in setup.py (`#990 `__) `Valeriu Predoi `__ .. _changelog-v2-1-0: v2.1.0 ------ This release includes Bug fixes ~~~~~~~~~ - Set unit=1 if anomalies are standardized (`#727 `__) `bascrezee `__ - Fix crash for FGOALS-g2 variables without longitude coordinate (`#729 `__) `Bouwe Andela `__ - Improve variable alias management (`#595 `__) `Javier Vegas-Regidor `__ - Fix area_statistics fx files loading (`#798 `__) `Javier Vegas-Regidor `__ - Fix units after derivation (`#754 `__) `Manuel Schlund `__ Documentation ~~~~~~~~~~~~~ - Update v2.0.0 release notes with final additions (`#722 `__) `Bouwe Andela `__ - Update package description in setup.py (`#725 `__) `Mattia Righi `__ - Add installation instructions for pip installation (`#735 `__) `Bouwe Andela `__ - Improve config-user documentation (`#740 `__) `Bouwe Andela `__ - Update the zenodo file with contributors (`#807 `__) `Valeriu Predoi `__ - Improve command line run documentation (`#721 `__) `Javier Vegas-Regidor `__ - Update the zenodo file with contributors (continued) (`#810 `__) `Valeriu Predoi `__ Improvements ~~~~~~~~~~~~ - Reduce size of docker image (`#723 `__) `Javier Vegas-Regidor `__ - Add 'test' extra to installation, used by docker development tag (`#733 `__) `Bouwe Andela `__ - Correct dockerhub link (`#736 `__) `Bouwe Andela `__ - Create action-install-from-pypi.yml (`#734 `__) `Valeriu Predoi `__ - Add pre-commit for linting/formatting (`#766 `__) `Stef Smeets `__ - Run tests in parallel and when building conda package (`#745 `__) `Bouwe Andela `__ - Readable exclude pattern for pre-commit (`#770 `__) `Stef Smeets `__ - Github Actions Tests (`#732 `__) `Valeriu Predoi `__ - Remove isort setup to fix formatting conflict with yapf (`#778 `__) `Stef Smeets `__ - Fix yapf-isort import formatting conflict (Fixes #777) (`#784 `__) `Stef Smeets `__ - Sorted output for `esmvaltool recipes list` (`#790 `__) `Stef Smeets `__ - Replace vmprof with vprof (`#780 `__) `Valeriu Predoi `__ - Update CMIP6 tables to 6.9.32 (`#706 `__) `Javier Vegas-Regidor `__ - Default config-user path now set in config-user read function (`#791 `__) `Javier Vegas-Regidor `__ - Add custom variable lweGrace (`#692 `__) `bascrezee `__ - Create Github Actions workflow to build and deploy on Test PyPi and PyPi (`#820 `__) `Valeriu Predoi `__ - Build and publish the esmvalcore package to conda via Github Actions workflow (`#825 `__) `Valeriu Predoi `__ Fixes for datasets ~~~~~~~~~~~~~~~~~~ - Fix cmip6 models (`#629 `__) `npgillett `__ - Fix siconca variable in EC-Earth3 and EC-Earth3-Veg models in amip simulation (`#702 `__) `Evgenia Galytska `__ Preprocessor ~~~~~~~~~~~~ - Move cmor_check_data to early in preprocessing chain (`#743 `__) `Bouwe Andela `__ - Add RMS iris analysis operator to statistics preprocessor functions (`#747 `__) `Pep Cos `__ - Add surface chlorophyll concentration as a derived variable (`#720 `__) `sloosvel `__ - Use dask to reduce memory consumption of extract_levels for masked data (`#776 `__) `Valeriu Predoi `__ .. _changelog-v2-0-0: v2.0.0 ------ This release includes Bug fixes ~~~~~~~~~ - Fixed derivation of co2s (`#594 `__) `Manuel Schlund `__ - Padding while cropping needs to stay within sane bounds for shapefiles that span the whole Earth (`#626 `__) `Valeriu Predoi `__ - Fix concatenation of a single cube (`#655 `__) `Bouwe Andela `__ - Fix mask fx dict handling not to fail if empty list in values (`#661 `__) `Valeriu Predoi `__ - Preserve metadata during anomalies computation when using iris cubes difference (`#652 `__) `Valeriu Predoi `__ - Avoid crashing when there is directory 'esmvaltool' in the current working directory (`#672 `__) `Valeriu Predoi `__ - Solve bug in ACCESS1 dataset fix for calendar. (`#671 `__) `Peter Kalverla `__ - Fix the syntax for adding multiple ensemble members from the same dataset (`#678 `__) `SarahAlidoost `__ - Fix bug that made preprocessor with fx files fail in rare cases (`#670 `__) `Manuel Schlund `__ - Add support for string coordinates (`#657 `__) `Javier Vegas-Regidor `__ - Fixed the shape extraction to account for wraparound shapefile coords (`#319 `__) `Valeriu Predoi `__ - Fixed bug in time weights calculation (`#695 `__) `Manuel Schlund `__ - Fix diagnostic filter (`#713 `__) `Javier Vegas-Regidor `__ Documentation ~~~~~~~~~~~~~ - Add pandas as a requirement for building the documentation (`#607 `__) `Bouwe Andela `__ - Document default order in which preprocessor functions are applied (`#633 `__) `Bouwe Andela `__ - Add pointers about data loading and CF standards to documentation (`#571 `__) `Valeriu Predoi `__ - Config file populated with site-specific data paths examples (`#619 `__) `Valeriu Predoi `__ - Update Codacy badges (`#643 `__) `Bouwe Andela `__ - Update copyright info on readthedocs (`#668 `__) `Bouwe Andela `__ - Updated references to documentation (now docs.esmvaltool.org) (`#675 `__) `Axel Lauer `__ - Add all European grants to Zenodo (`#680 `__) `Bouwe Andela `__ - Update Sphinx to v3 or later (`#683 `__) `Bouwe Andela `__ - Increase version to 2.0.0 and add release notes (`#691 `__) `Bouwe Andela `__ - Update setup.py and README.md for use on PyPI (`#693 `__) `Bouwe Andela `__ - Suggested Documentation changes (`#690 `__) `Steve Smith `__ Improvements ~~~~~~~~~~~~ - Reduce the size of conda package (`#606 `__) `Bouwe Andela `__ - Add a few unit tests for DiagnosticTask (`#613 `__) `Bouwe Andela `__ - Make ncl or R tests not fail if package not installed (`#610 `__) `Valeriu Predoi `__ - Pin flake8<3.8.0 (`#623 `__) `Valeriu Predoi `__ - Log warnings for likely errors in provenance record (`#592 `__) `Bouwe Andela `__ - Unpin flake8 (`#646 `__) `Bouwe Andela `__ - More flexible native6 default DRS (`#645 `__) `Bouwe Andela `__ - Try to use the same python for running diagnostics as for esmvaltool (`#656 `__) `Bouwe Andela `__ - Fix test for lower python version and add note on lxml (`#659 `__) `Valeriu Predoi `__ - Added 1m deep average soil moisture variable (`#664 `__) `bascrezee `__ - Update docker recipe (`#603 `__) `Javier Vegas-Regidor `__ - Improve command line interface (`#605 `__) `Javier Vegas-Regidor `__ - Remove utils directory (`#697 `__) `Bouwe Andela `__ - Avoid pytest version that crashes (`#707 `__) `Bouwe Andela `__ - Options arg in read_config_user_file now optional (`#716 `__) `Javier Vegas-Regidor `__ - Produce a readable warning if ancestors are a string instead of a list. (`#711 `__) `katjaweigel `__ - Pin Yamale to v2 (`#718 `__) `Bouwe Andela `__ - Expanded cmor public API (`#714 `__) `Manuel Schlund `__ Fixes for datasets ~~~~~~~~~~~~~~~~~~ - Added various fixes for hybrid height coordinates (`#562 `__) `Manuel Schlund `__ - Extended fix for cl-like variables of CESM2 models (`#604 `__) `Manuel Schlund `__ - Added fix to convert "geopotential" to "geopotential height" for ERA5 (`#640 `__) `Evgenia Galytska `__ - Do not fix longitude values if they are too far from valid range (`#636 `__) `Javier Vegas-Regidor `__ Preprocessor ~~~~~~~~~~~~ - Implemented concatenation of cubes with derived coordinates (`#546 `__) `Manuel Schlund `__ - Fix derived variable ctotal calculation depending on project and standard name (`#620 `__) `Valeriu Predoi `__ - State of the art FX variables handling without preprocessing (`#557 `__) `Valeriu Predoi `__ - Add max, min and std operators to multimodel (`#602 `__) `Javier Vegas-Regidor `__ - Added preprocessor to extract amplitude of cycles (`#597 `__) `Manuel Schlund `__ - Overhaul concatenation and allow for correct concatenation of multiple overlapping datasets (`#615 `__) `Valeriu Predoi `__ - Change volume stats to handle and output masked array result (`#618 `__) `Valeriu Predoi `__ - Area_weights for cordex in area_statistics (`#631 `__) `mwjury `__ - Accept cubes as input in multimodel (`#637 `__) `sloosvel `__ - Make multimodel work correctly with yearly data (`#677 `__) `Valeriu Predoi `__ - Optimize time weights in time preprocessor for climate statistics (`#684 `__) `Valeriu Predoi `__ - Add percentiles to multi-model stats (`#679 `__) `Peter Kalverla `__ .. _changelog-v2-0-0b9: v2.0.0b9 -------- This release includes Bug fixes ~~~~~~~~~ - Cast dtype float32 to output from zonal and meridional area preprocessors (`#581 `__) `Valeriu Predoi `__ Improvements ~~~~~~~~~~~~ - Unpin on Python<3.8 for conda package (run) (`#570 `__) `Valeriu Predoi `__ - Update pytest installation marker (`#572 `__) `Bouwe Andela `__ - Remove vmrh2o (`#573 `__) `Mattia Righi `__ - Restructure documentation (`#575 `__) `Bouwe Andela `__ - Fix mask in land variables for CCSM4 (`#579 `__) `Klaus Zimmermann `__ - Fix derive scripts wrt required method (`#585 `__) `Klaus Zimmermann `__ - Check coordinates do not have repeated standard names (`#558 `__) `Javier Vegas-Regidor `__ - Added derivation script for co2s (`#587 `__) `Manuel Schlund `__ - Adapted custom co2s table to match CMIP6 version (`#588 `__) `Manuel Schlund `__ - Increase version to v2.0.0b9 (`#593 `__) `Bouwe Andela `__ - Add a method to save citation information (`#402 `__) `SarahAlidoost `__ For older releases, see the release notes on https://github.com/ESMValGroup/ESMValCore/releases.