Skip to content

Commit

Permalink
Merge pull request SciTools#6206 from ESadek-MO/v3.11.x.mergeback
Browse files Browse the repository at this point in the history
V3.11.x.mergeback
  • Loading branch information
HGWright authored Oct 30, 2024
2 parents dd29017 + 9dc3e40 commit 61e04b9
Show file tree
Hide file tree
Showing 3 changed files with 190 additions and 85 deletions.
179 changes: 179 additions & 0 deletions docs/src/whatsnew/3.11.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,179 @@
.. include:: ../common_links.inc

v3.11 (28 Oct 2024) [release candidate]
***************************************

This document explains the changes made to Iris for this release
(:doc:`View all changes <index>`.)


.. dropdown:: v3.11 Release Highlights
:color: primary
:icon: info
:animate: fade-in
:open:

The highlights for this minor release of Iris include:

* Iris is now compliant with NumPy v2. See the notes below for how this might
affect your scripts.

* Loading now supports varying reference fields for hybrid vertical
coordinates, e.g. a time-varying orography. This is controlled by the
:meth:`~iris.LOAD_POLICY` object : see :class:`~iris.LoadPolicy`.

* We now have type hints in :class:`~iris.cube.Cube`, and
:meth:`iris.cube.CubeList.concatenate` is in places almost an order of
magnitude faster!

* `@bouweandela`_ added type hints for :class:`~iris.cube.Cube`.

* Checkout the significant performance enhancements section for a couple of
improvements to the performance of Iris.
Special thanks to `@bouweandela`_ for these contributions.

* We added ``colorbar`` keyword to allow optional creation of
the colorbar in three quickplot methods!

And finally, get in touch with us on :issue:`GitHub<new/choose>` if you have
any issues or feature requests for improving Iris. Enjoy!


📢 Announcements
================

#. Iris is now compliant with NumPy v2. This may affect your scripts.
:ref:`See the full What's New entry for more details <numpy2>`.


✨ Features
===========

#. `@jrackham-mo`_ added :meth:`~iris.io.format_picker.FormatAgent.copy` and
equality methods to :class:`iris.io.format_picker.FormatAgent`, as requested
in :issue:`6108`, actioned in :pull:`6119`.

#. `@ukmo-ccbunney`_ added ``colorbar`` keyword to allow optional creation of
the colorbar in the following quickplot methods:

* :meth:`iris.quickplot.contourf`

* :meth:`iris.quickplot.pcolor`

* :meth:`iris.quickplot.pcolormesh`

Requested in :issue:`5970`, actioned in :pull:`6169`.

#. `@pp-mo`_ and `@stephenworsley`_ added support for hybrid coordinates whose
references are split across multiple input fields, and :meth:`~iris.LOAD_POLICY` to
control it, as requested in :issue:`5369`, actioned in :pull:`6168`.

#. `@ESadek-MO`_ has updated :mod:`iris.fileformats.pp_save_rules` and
:mod:`iris.fileformats.pp` to include the `label_surface_fields` flag across
relevant functions, most notably :func:`iris.fileformats.pp.save`.
This allows the user to choose whether or not surface fields are recognised
and handled appropriately. (:issue:`3280`, :pull:`5734`)

#. `@ESadek-MO`_ updated to the latest CF Standard Names Table v86
(5 September 2024). (:pull:`6200`)

🐛 Bugs Fixed
=============

#. `@rcomer`_ enabled partial collapse of multi-dimensional string coordinates,
fixing :issue:`3653`. (:pull:`5955`)

#. `@bouweandela`_ made further updates to the ``chunktype`` of Dask arrays,
so it corresponds better with the array content. (:pull:`5989`)

#. `@ukmo-ccbunney`_ improved error handling for malformed `cell_method`
attribute. Also made cell_method string parsing more lenient w.r.t.
whitespace. (:pull:`6083`)

#. `@ukmo-ccbunney`_ fixed comparison of cubes with array type attributes;
fixes :issue:`6027` (:pull:`6181`)

💣 Incompatible Changes
=======================

#. N/A


🚀 Performance Enhancements
===========================

#. `@bouweandela`_ made the time coordinate categorisation functions in
:mod:`~iris.coord_categorisation` faster. Anyone using
:func:`~iris.coord_categorisation.add_categorised_coord`
with cftime :class:`~cftime.datetime` objects can benefit from the same
improvement by adding a type hint to their category funcion. (:pull:`5999`)

#. `@bouweandela`_ made :meth:`iris.cube.CubeList.concatenate` faster if more
than two cubes are concatenated with equality checks on the values of
auxiliary coordinates, derived coordinates, cell measures, or ancillary
variables enabled.
In some cases, this may lead to higher memory use. This can be remedied by
reducing the number of Dask workers.
In rare cases, the new implementation could potentially be slower. This
may happen when there are very many or large auxiliary coordinates, derived
coordinates, cell measures, or ancillary variables to be checked that span
the concatenation axis. This issue can be avoided by disabling the
problematic check. (:pull:`5926` and :pull:`6187`)

🔥 Deprecations
===============

#. N/A


🔗 Dependencies
===============

.. _numpy2:

#. `@trexfeathers`_ adapted the Iris codebase to work with NumPy v2. The
`NumPy v2 full release notes`_ have the exhaustive details. Notable
changes that may affect your Iris scripts are below. (:pull:`6035`)

* `NumPy v2 changed data type promotion`_

* `NumPy v2 changed scalar printing`_


📚 Documentation
================

#. `@bouweandela`_ added type hints for :class:`~iris.cube.Cube`. (:pull:`6037`)

#. `@ESadek-MO`_ has updated :ref:`um_files_loading` to include a short description
of the new `label_surface_fields` functionality. (:pull:`5734`)


💼 Internal
===========

#. `@trexfeathers`_ improved the new ``tracemalloc`` benchmarking (introduced
in Iris v3.10.0, :pull:`5948`) to use the same statistical repeat strategy
as timing benchmarks. (:pull:`5981`)

#. `@trexfeathers`_ adapted Iris to work with Cartopy v0.24. (:pull:`6171`,
:pull:`6172`)

#. `@trexfeathers`_ refactored spanning checks in :mod:`iris.fileformats.cf`
to reduce code duplication. (:pull:`6196`)


.. comment
Whatsnew author names (@github name) in alphabetical order. Note that,
core dev names are automatically included by the common_links.inc:
.. _@jrackham-mo: https://github.com/jrackham-mo


.. comment
Whatsnew resources in alphabetical order:
.. _cartopy#2390: https://github.com/SciTools/cartopy/issues/2390
.. _NumPy v2 changed data type promotion: https://numpy.org/doc/stable/numpy_2_0_migration_guide.html#changes-to-numpy-data-type-promotion
.. _NumPy v2 changed scalar printing: https://numpy.org/doc/stable/release/2.0.0-notes.html#representation-of-numpy-scalars-changed
.. _NumPy v2 full release notes: https://numpy.org/doc/stable/release/2.0.0-notes.html
1 change: 1 addition & 0 deletions docs/src/whatsnew/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ What's New in Iris
:hidden:

latest.rst
3.11.rst
3.10.rst
3.9.rst
3.8.rst
Expand Down
95 changes: 10 additions & 85 deletions docs/src/whatsnew/latest.rst
Original file line number Diff line number Diff line change
Expand Up @@ -24,56 +24,20 @@ This document explains the changes made to Iris for this release
📢 Announcements
================

#. Iris is now compliant with NumPy v2. This may affect your scripts.
:ref:`See the full What's New entry for more details <numpy2>`.
#. N/A


✨ Features
===========

#. `@jrackham-mo`_ added :meth:`~iris.io.format_picker.FormatAgent.copy` and
equality methods to :class:`iris.io.format_picker.FormatAgent`, as requested
in :issue:`6108`, actioned in :pull:`6119`.

#. `@ukmo-ccbunney`_ added ``colorbar`` keyword to allow optional creation of
the colorbar in the following quickplot methods:

* :meth:`iris.quickplot.contourf`

* :meth:`iris.quickplot.pcolor`

* :meth:`iris.quickplot.pcolormesh`

Requested in :issue:`5970`, actioned in :pull:`6169`.

#. `@pp-mo`_ and `@stephenworsley`_ added support for hybrid coordinates whose
references are split across multiple input fields, and :meth:`~iris.LOAD_POLICY` to
control it, as requested in :issue:`5369`, actioned in :pull:`6168`.

#. `@ESadek-MO`_ has updated :mod:`iris.fileformats.pp_save_rules` and
:mod:`iris.fileformats.pp` to include the `label_surface_fields` flag across
relevant functions, most notably :func:`iris.fileformats.pp.save`.
This allows the user to choose whether or not surface fields are recognised
and handled appropriately. (:issue:`3280`, :pull:`5734`)
#. N/A

#. `@ESadek-MO`_ updated to the latest CF Standard Names Table v86
(5 September 2024). (:pull:`6200`)

🐛 Bugs Fixed
=============

#. `@rcomer`_ enabled partial collapse of multi-dimensional string coordinates,
fixing :issue:`3653`. (:pull:`5955`)

#. `@bouweandela`_ made further updates to the ``chunktype`` of Dask arrays,
so it corresponds better with the array content. (:pull:`5989`)

#. `@ukmo-ccbunney`_ improved error handling for malformed `cell_method`
attribute. Also made cell_method string parsing more lenient w.r.t.
whitespace. (:pull:`6083`)
#. N/A

#. `@ukmo-ccbunney`_ fixed comparison of cubes with array type attributes;
fixes :issue:`6027` (:pull:`6181`)

💣 Incompatible Changes
=======================
Expand All @@ -84,23 +48,8 @@ This document explains the changes made to Iris for this release
🚀 Performance Enhancements
===========================

#. `@bouweandela`_ made the time coordinate categorisation functions in
:mod:`~iris.coord_categorisation` faster. Anyone using
:func:`~iris.coord_categorisation.add_categorised_coord`
with cftime :class:`~cftime.datetime` objects can benefit from the same
improvement by adding a type hint to their category funcion. (:pull:`5999`)

#. `@bouweandela`_ made :meth:`iris.cube.CubeList.concatenate` faster if more
than two cubes are concatenated with equality checks on the values of
auxiliary coordinates, derived coordinates, cell measures, or ancillary
variables enabled.
In some cases, this may lead to higher memory use. This can be remedied by
reducing the number of Dask workers.
In rare cases, the new implementation could potentially be slower. This
may happen when there are very many or large auxiliary coordinates, derived
coordinates, cell measures, or ancillary variables to be checked that span
the concatenation axis. This issue can be avoided by disabling the
problematic check. (:pull:`5926` and :pull:`6187`)
#. N/A


🔥 Deprecations
===============
Expand All @@ -111,51 +60,27 @@ This document explains the changes made to Iris for this release
🔗 Dependencies
===============

.. _numpy2:

#. `@trexfeathers`_ adapted the Iris codebase to work with NumPy v2. The
`NumPy v2 full release notes`_ have the exhaustive details. Notable
changes that may affect your Iris scripts are below. (:pull:`6035`)

* `NumPy v2 changed data type promotion`_

* `NumPy v2 changed scalar printing`_
#. N/A


📚 Documentation
================

#. `@bouweandela`_ added type hints for :class:`~iris.cube.Cube`. (:pull:`6037`)

#. `@ESadek-MO`_ has updated :ref:`um_files_loading` to include a short description
of the new `label_surface_fields` functionality. (:pull:`5734`)
#. N/A


💼 Internal
===========

#. `@trexfeathers`_ improved the new ``tracemalloc`` benchmarking (introduced
in Iris v3.10.0, :pull:`5948`) to use the same statistical repeat strategy
as timing benchmarks. (:pull:`5981`)

#. `@trexfeathers`_ adapted Iris to work with Cartopy v0.24. (:pull:`6171`,
:pull:`6172`)

#. `@trexfeathers`_ refactored spanning checks in :mod:`iris.fileformats.cf`
to reduce code duplication. (:pull:`6196`)
#. N/A


.. comment
Whatsnew author names (@github name) in alphabetical order. Note that,
core dev names are automatically included by the common_links.inc:
.. _@jrackham-mo: https://github.com/jrackham-mo
.. comment
Whatsnew resources in alphabetical order:
.. _cartopy#2390: https://github.com/SciTools/cartopy/issues/2390
.. _NumPy v2 changed data type promotion: https://numpy.org/doc/stable/numpy_2_0_migration_guide.html#changes-to-numpy-data-type-promotion
.. _NumPy v2 changed scalar printing: https://numpy.org/doc/stable/release/2.0.0-notes.html#representation-of-numpy-scalars-changed
.. _NumPy v2 full release notes: https://numpy.org/doc/stable/release/2.0.0-notes.html
.. comment
Whatsnew resources in alphabetical order:

0 comments on commit 61e04b9

Please sign in to comment.