------
Highlights
~~~~~~~~~~
- The new preprocessor :func:`~esmvalcore.preprocessor.extract_location` can extract arbitrary locations on the Earth using the `geopy <https://pypi.org/project/geopy/>`__ package that connects to OpenStreetMap. For details, see :ref:`Extract location <extract_location>`.
- Time ranges can now be extracted using the `ISO 8601 format <https://en.wikipedia.org/wiki/ISO_8601>`_. In addition, wildcards are allowed, which makes the time selection much more flexible. For details, see :ref:`Recipe section: Datasets <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 <ensemble statistics>` and :ref:`Multi-model statistics <multi-model statistics>`.
This release includes
Backwards incompatible changes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Update Cordex section in `config-developer.yml` (:pull:`1303`) by :user:`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 (:pull:`1530`) by :user:`schlunma`. 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 <https://github.com/ESMValGroup/ESMValTool/issues/2584#issuecomment-1063853630>`__).
Bug fixes
~~~~~~~~~
- Fix `extract_shape` when fx vars are present (:pull:`1403`) by :user:`sloosvel`
- Added support of `extra_facets` to fx variables added by the preprocessor (:pull:`1399`) by :user:`schlunma`
- Augmented input for derived variables with extra_facets (:pull:`1412`) by :user:`schlunma`
- Correctly use masked arrays after `unstructured_nearest` regridding (:pull:`1414`) by :user:`schlunma`
- Fixing the broken derivation script for XCH4 (and XCO2) (:pull:`1428`) by :user:`hb326`
- Ignore `.pymon-journal` file in test discovery (:pull:`1436`) by :user:`valeriupredoi`
- Fixed bug that caused automatic download to fail in rare cases (:pull:`1442`) by :user:`schlunma`
- Add new `JULIA_LOAD_PATH` to diagnostic task test (:pull:`1444`) by :user:`valeriupredoi`
- Fix provenance file permissions (:pull:`1468`) by :user:`bouweandela`
- Fixed usage of `statistics=std_dev` option in multi-model statistics preprocessors (:pull:`1478`) by :user:`schlunma`
- Removed scalar coordinates `p0` and `ptop` prior to merge in `multi_model_statistics` (:pull:`1471`) by :user:`axel-lauer`
- Added `dataset` and `alias` attributes to `multi_model_statistics` output (:pull:`1483`) by :user:`schlunma`
- Fixed issues with multi-model-statistics timeranges (:pull:`1486`) by :user:`schlunma`
- Fixed output messages for CMOR logging (:pull:`1494`) by :user:`schlunma`
- Fixed `clip_timerange` if only a single time point is extracted (:pull:`1497`) by :user:`schlunma`
- Fixed chunking in `multi_model_statistics` (:pull:`1500`) by :user:`schlunma`
- Fixed renaming of auxiliary coordinates in `multi_model_statistics` if coordinates are equal (:pull:`1502`) by :user:`schlunma`
- Fixed timerange selection for automatic downloads (:pull:`1517`) by :user:`schlunma`
- Fixed chunking in `multi_model_statistics` (:pull:`1524`) by :user:`schlunma`
Deprecations
~~~~~~~~~~~~
- Renamed vertical regridding schemes (:pull:`1429`) by :user:`schlunma`. Old regridding schemes are supported until v2.7.0. For details, see :ref:`Vertical interpolation schemes <Vertical interpolation schemes>`.
Documentation
~~~~~~~~~~~~~
- Remove duplicate entries in changelog (:pull:`1391`) by :user:`zklaus`
- Documentation on how to use HPC central installations (:pull:`1409`) by :user:`valeriupredoi`
- Correct brackets in preprocessor documentation for list of seasons (:pull:`1420`) by :user:`bouweandela`
- Add Python=3.10 to package info, update Circle CI auto install and documentation for Python=3.10 (:pull:`1432`) by :user:`valeriupredoi`
- Reverted unintentional change in `.zenodo.json` (:pull:`1452`) by :user:`schlunma`
- Synchronized config-user.yml with version from ESMValTool (:pull:`1453`) by :user:`schlunma`
- Solved issues in configuration files (:pull:`1457`) by :user:`schlunma`
- Add direct link to download conda lock file in the install documentation (:pull:`1462`) by :user:`valeriupredoi`
- CITATION.cff fix and automatic validation of citation metadata (:pull:`1467`) by :user:`valeriupredoi`
- Updated documentation on how to deprecate features (:pull:`1426`) by :user:`schlunma`
- Added reference hook to conda lock in documentation install section (:pull:`1473`) by :user:`valeriupredoi`
- Increased ESMValCore version to 2.5.0rc1 (:pull:`1477`) by :user:`schlunma`
- Added changelog for v2.5.0 release (:pull:`1476`) by :user:`schlunma`
- Increased ESMValCore version to 2.5.0rc2 (:pull:`1487`) by :user:`schlunma`
- Added some authors to citation and zenodo files (:pull:`1488`) by :user:`SarahAlidoost`
- Restored `scipy` intersphinx mapping (:pull:`1491`) by :user:`schlunma`
- Increased ESMValCore version to 2.5.0rc3 (:pull:`1504`) by :user:`schlunma`
- Fix download instructions for the MSWEP dataset (:pull:`1506`) by :user:`remi-kazeroni`
- Documentation updated for the new cmorizer framework (:pull:`1417`) by :user:`remi-kazeroni`
- Added tests for duplicates in changelog and removed duplicates (:pull:`1508`) by :user:`schlunma`
- Increased ESMValCore version to 2.5.0rc4 (:pull:`1519`) by :user:`schlunma`
- Add Github Actions Test badge in README (:pull:`1526`) by :user:`valeriupredoi`
- Increased ESMValCore version to 2.5.0rc5 (:pull:`1529`) by :user:`schlunma`
- Increased ESMValCore version to 2.5.0rc6 (:pull:`1532`) by :user:`schlunma`
Fixes for datasets
~~~~~~~~~~~~~~~~~~
- Added fix for AIRS v2.1 (obs4mips) (:pull:`1472`) by :user:`axel-lauer`
Preprocessor
~~~~~~~~~~~~
- Added bias preprocessor (:pull:`1406`) by :user:`schlunma`
- Improve error messages when a preprocessor is failing (:pull:`1408`) by :user:`schlunma`
- Added option to explicitly not use fx variables in preprocessors (:pull:`1416`) by :user:`schlunma`
- Add `extract_location` preprocessor to extract town, city, mountains etc - anything specifiable by a location (:pull:`1251`) by :user:`jvegreg`
- Add ensemble statistics preprocessor and 'groupby' option for multimodel (:pull:`673`) by :user:`sloosvel`
- Generic regridding preprocessor (:pull:`1448`) by :user:`zklaus`
Automatic testing
~~~~~~~~~~~~~~~~~
- Add `pandas` as dependency :panda_face: (:pull:`1402`) by :user:`valeriupredoi`
- Fixed tests for python 3.7 (:pull:`1410`) by :user:`schlunma`
- Remove accessing `.xml()` cube method from test (:pull:`1419`) by :user:`valeriupredoi`
- Remove flag to use pip 2020 solver from Github Action pip install command on OSX (:pull:`1357`) by :user:`valeriupredoi`
- Add Python=3.10 to Github Actions and switch to Python=3.10 for the Github Action that builds the PyPi package (:pull:`1430`) by :user:`valeriupredoi`
- Pin `flake8<4` to keep getting relevant error traces when tests fail with FLAKE8 issues (:pull:`1434`) by :user:`valeriupredoi`
- Implementing conda lock (:pull:`1164`) by :user:`valeriupredoi`
- Relocate `pytest-monitor` outputted database `.pymon` so `.pymon-journal` file should not be looked for by `pytest` (:pull:`1441`) by :user:`valeriupredoi`
- Switch to Mambaforge in Github Actions tests (:pull:`1438`) by :user:`valeriupredoi`
- Turn off conda lock file creation on any push on `main` branch from Github Action test (:pull:`1489`) by :user:`valeriupredoi`
- Add DRS path test for IPSLCM files (:pull:`1490`) by :user:`senesis`
- Add a test module that runs tests of `iris` I/O every time we notice serious bugs there (:pull:`1510`) by :user:`valeriupredoi`
- [Github Actions] Trigger Github Actions tests (`run-tests.yml` workflow) from a comment in a PR (:pull:`1520`) by :user:`valeriupredoi`
- 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 (:pull:`1481`) by :user:`valeriupredoi`
- Pinned `iris` (:pull:`1511`) by :user:`schlunma`
- Updated dependencies (:pull:`1521`) by :user:`schlunma`
- Pinned iris<3.2.0 (:pull:`1525`) by :user:`schlunma`
Improvements
~~~~~~~~~~~~
- Allow to load all files, first X years or last X years in an experiment (:pull:`1133`) by :user:`sloosvel`
- Filter tasks earlier (:pull:`1264`) by :user:`jvegreg`
- Added earlier validation for command line arguments (:pull:`1435`) by :user:`schlunma`
- Remove `profile_diagnostic` from diagnostic settings and increase test coverage of `_task.py` (:pull:`1404`) by :user:`valeriupredoi`
- Add `output2` to the `product` extra facet of CMIP5 data (:pull:`1514`) by :user:`remi-kazeroni`
- Speed up ESGF search (:pull:`1512`) by :user:`bouweandela`
.. _changelog-v2-4-0: