What’s New in Iris#

v3.10.0.dev58 (19 Jun 2024) [unreleased]#

This document explains the changes made to Iris for this release (View all changes.)

v3.10.0.dev58 Release Highlights

The highlights for this major/minor release of Iris include:

  • N/A

And finally, get in touch with us on GitHub if you have any issues or feature requests for improving Iris. Enjoy!

📢 Announcements#

  1. N/A

✨ Features#

  1. @ESadek-MO updated the error messages in iris.cube.CubeList.concatenate() to better explain the error. (PR #6005)

🐛 Bugs Fixed#

  1. @bouweandela updated the chunktype of Dask arrays, so it corresponds to the array content. (PR #5801)

  2. @rcomer made the WPERCENTILE aggregator work with rolling_window(). (Issue #5777, PR #5825)

💣 Incompatible Changes#

  1. @rcomer removed the target parameter from as_fields() and save_pairs_from_cube() because it had no effect. (PR #5783)

  2. @stephenworsley made masked arrays on Iris objects now compare as equal precisely when all unmasked points are equal and when the masks are identical. This is due to changes in array_equal() which previously ignored masks entirely. (PR #4457)

🚀 Performance Enhancements#

  1. @bouweandela added the option to specify the Dask chunks of the target array in iris.util.broadcast_to_shape(). (PR #5620)

  2. @schlunma allowed iris.analysis.cartography.area_weights() to return dask arrays with arbitrary chunks. (PR #5658)

  3. @bouweandela made iris.cube.Cube.rolling_window() work with lazy data. (PR #5795)

🔥 Deprecations#

  1. N/A

🔗 Dependencies#

  1. @tkknight removed the pin for sphinx <=5.3, so the latest should now be used, currently being v7.2.6. (PR #5901)

📚 Documentation#

  1. @hsteptoe added more detailed examples to Cube functions slices() and slices_over(). (PR #5735)

💼 Internal#

  1. @bouweandela removed a workaround in merge() for an issue with dask.array.stack() which has been solved since 2017. (PR #5923)

  2. @trexfeathers introduced a temporary fix for Airspeed Velocity’s deprecated use of the conda --force argument. To be removed once airspeed-velocity/asv#1397 is merged and released. (PR #5931)

  3. @trexfeathers created iris.tests.stock.realistic_4d_w_everything(); providing a Cube aimed to exercise as much of Iris as possible. (PR #5949)

  4. @trexfeathers deactivated any small ‘unit-style’ benchmarks for default benchmark runs, and introduced larger more ‘real world’ benchmarks where coverage was needed. (PR #5949).

  5. @trexfeathers made a Nox benchmarks session as the recommended entry point for running benchmarks. (PR #5951)

  6. @ESadek-MO added further benchmarks for aggregation and collapse. (PR #5954)

  7. @trexfeathers set the benchmark data generation environment to automatically install iris-test-data during setup. (PR #5958)

  8. @pp-mo reworked benchmark peak-memory measurement to use the tracemalloc package. (PR #5948)

  9. @pp-mo added a benchmark ‘trialrun’ sub-command, to quickly test benchmarks during development. (PR #5957)

  10. @pp-mo moved several memory-measurement benchmarks from ‘on-demand’ to the standard set, in hopes that use of ‘tracemalloc’ (PR #5948) makes the results consistent enough to monitor for performance changes. (PR #5959)

  11. @rcomer made some slices_over() tests go faster (PR #5973)