Skip to content

Conversation

@trexfeathers
Copy link
Contributor

No description provided.

What's New in Iris 2.3
**********************

:Release: 2.3
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@trexfeathers Can we explicitly clarify this as 2.3.0

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

* :class:`~iris.analysis.RMS` (more detail below)
* :class:`~iris.analysis.MEAN`

|
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@trexfeathers Is this | intentional, if so what does it do?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It adds a blank line, making a clearer distinction between the final showcase and the first bullet point:

Screenshot from 2019-10-04 14-18-12

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@trexfeathers How does it look with a divider instead? i.e., see reStructuredText transitions

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bjlittle I think your idea looks better so I've switched to that

Copy link
Member

@lbdreyer lbdreyer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@trexfeathers Could you also delete the contributions_2.3.0 directory as part of this PR

Bugs Fixed
==========
* Cube equality of boolean data is now handled correctly.
* Iris now supports NetCDF Climate and Forecast (CF) Metadata Conventions 1.7 (see `CF 1.7 Conventions Document <http://cfconventions.org/Data/cf-conventions/cf-conventions-1.7/cf-conventions.html>`_ for more information)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This shouldn't be a bug fix.
I think the original whats new contribution (that I wrote!) was incorrectly labelled as bugfix
Could you remove?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've moved this to new features

* The name of cubes loaded from abf/abl files has been corrected.
* Fixed a bug in UM file loading, where any landsea-mask-compressed fields
(i.e. with LBPACK=x2x) would cause an error later, when realising the data.
* :meth:`iris.cube.Cube.coll\apsed` now handles partial collapsing of
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should there be a backslash in coll\apsed?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will double check all the links next time!



Iris 2.3.0 Dependency Updates
===========================
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This needs a couple extra =

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, missed that after I added ".0"

@@ -0,0 +1,193 @@
What's New in Iris 2.3.0
**********************
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This underline is too short

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, missed that after I added ".0"

(:doc:`View all changes <index>`.)

Iris 2.3.0 Features
=================
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This underline is too short

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, missed that after I added ".0"

'bounds' attribute and accompanying 'bnds' boundary variable. See below
for an example:

.. code-block::
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This errors when building:
2.3.rst:41: WARNING: Error in "code-block" directive:
And the resulting built page misses the code block completely.

Suggested change
.. code-block::
.. code-block:: none

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting that this worked on my local build without "none". Anyway I've made this change and the new formatting still looks good 👍

Copy link
Member

@lbdreyer lbdreyer Oct 4, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This may be because I'm using an old version of sphinx. I think more recent versions have a default

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is now allowed to omit the argument in more recent versions of sphinx
sphinx-doc/sphinx#6015
I just need to update my environment!

Comment on lines 34 to 35
When an Iris climatological coordinate is saved in NetCDF, the NetCDF time
axis will be given a 'climatology' attribute, and the contents of the
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
When an Iris climatological coordinate is saved in NetCDF, the NetCDF time
axis will be given a 'climatology' attribute, and the contents of the
coordinate variable will be given a 'climatology' attribute, and the contents of the

From CF conventions:

a climatological time coordinate variable does not have a bounds attribute. Instead, it has a climatology attribute, which names a variable with dimensions (n,2), n being the dimension of the climatological time axis

So its the variable that has a climatology attribute

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, I appreciate the guidance. I've read and re-read that CF section but it's taking me a while to get my head around all the terminology

Copy link
Contributor Author

@trexfeathers trexfeathers left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Closing this extra review...

.. admonition:: New Chunking Strategy

Iris now makes better choices of Dask chunk sizes when loading from NetCDF
files: If a file variable has specified, small chunks, Iris will now choose
Copy link
Member

@lbdreyer lbdreyer Oct 4, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I remember this phrasing tripping me up in the PR it was included.

I think the ordering of the adjectives are wrong. I think it should be:
If a file variable has small, specified chunks, Iris will now choose

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Previously, Iris compared cube data arrays using "abs(a - b) < 1.e-8".
We now apply the default operation of :func:`numpy.allclose` instead,
which is equivalent to "abs(a - b) < (1.e-8 + 1.e-5 * b)".
* Added support to render HTML for :class:`iris.cube.CubeList`s in Jupyter Notebooks and JupyterLab.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This may be due to my old version of Sphinx, but it is complaining about this line and in the built copy it doesn't correctly create the link to iris.cube.CubeList

You could also argue that we should use the ~ i.e. :class:~iris.cube.CubeListso that it reads more nicely:
Added support to render HTML for CubeList in Jupyter Notebooks and JupyterLab
where cube list would link off to the ref for CubeList

Copy link
Member

@pp-mo pp-mo Oct 4, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I caught this one. I'm pretty sure the cause is the "s" immediately following.
I'm sure there is a way to fix this ...

In the 2.2 whatsnew I found :

:class:`iris.coords.AuxCoord`'s can now test as 'equal'

That at least seems to work.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Went for @lbdreyer's idea

which is equivalent to "abs(a - b) < (1.e-8 + 1.e-5 * b)".
* Added support to render HTML for :class:`iris.cube.CubeList`s in Jupyter Notebooks and JupyterLab.
* Loading CellMeasures with non-float values is now supported.
* New coordinate system: :class:`iris.coord_systems.Geostationary`, based on
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be in the showcase as Geostationary was introduced in CF1.7

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Copy link
Member

@pp-mo pp-mo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Quite a few points, but all a bit trivial I hope.

* climatological coordinate support
* standard name modifier support
* name tokens enforcement in cell methods
* coordinate var_name, CF_CONVENTIONS_VERSION advanced to 1.7
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. The "coordinate var_name" and "CF_CONVENTIONS_VERSION advanced to 1.7" are separate points.
  2. What "coordinate var_name" means needs explaining.
    I don't get this myself : is it actually part of the previous point ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This wasn't how I intended, hence it read strangely. Have fixed to what I wanted originally

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have also added links to internal anchors. Unfortunately anchors can't be placed in the middle of a bullet list so the links will only take you to the relevant section. See what you think


* climatological coordinate support
* standard name modifier support
* name tokens enforcement in cell methods
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This point either needs more explaining or, if there was some more detail below, we could maybe treat it as a sort of title and turn it into a link?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we should mention this as it is a bugfix so isn't really suitable in this section

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK it's gone

Comment on lines 108 to 112
* The :data:`iris.analysis.RMS` aggregator now supports a lazy calculation.
However, the "weights" keyword is not currently supported by this, so a
*weighted* calculation will still return a realised result, *and* force
realisation of the original cube data. **NOTE:** lazy calculation with RMS
is currently only supported for un-masked arrays.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The "NOTE" bit just seems to repeat the same information.
Sorry if this was my fault ??

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Having read in more detail I see your point, have remoted the NOTE

Comment on lines 90 to 95
* Cube data equality testing (and hence cube equality) now uses a more relaxed
tolerance : This means that some cubes may now test 'equal' that previously
did not.
Previously, Iris compared cube data arrays using "abs(a - b) < 1.e-8".
We now apply the default operation of :func:`numpy.allclose` instead,
which is equivalent to "abs(a - b) < (1.e-8 + 1.e-5 * b)".
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we get those maths expressions to display on one line somehow?
Otherwise it's a bit unreadable.
I know there are special forms for maths -- see the docstring for iris.analysis.calculus.curl,
but that may well be overkill for this, especially if you need to do learning just for this..
Maybe there is a simpler way ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Have reformatted

* The Proj4 pin has been moved from version 5 to version 6 pending `fixes to
some cartopy tests <https://github
.com/SciTools/cartopy/pull/1289#pullrequestreview-272774087>`_.
* Iris now requires Dask > 1.2 to allow for improved coordinate equality
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"> 1.2" should be ">= 1.2"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍


Documentation Changes
=====================
* Added a gallery example showing how to concatenate NEMO ocean model data.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we make "a gallery example" into a link ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

=====================
* Added a gallery example showing how to concatenate NEMO ocean model data.
* Added an example in the
`Loading Iris Cubes: Constraining on Time <https://scitools.org.uk/iris/docs/latest/userguide/loading_iris_cubes.html#constraining-on-time>`_
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because this is written as an external link, it doesn't go to the page in this same docs build, so it doesn't show the changes it ought to !
This was my fault 😱
After some experiment, I think this should instead be ... "Loading Iris Cubes: Constraining on Time <../userguide/loading_iris_cubes.html#constraining-on-time>_"

The initial '..' is probably not the best way, but I'm not quite sure how it goes otherwise. That did at least work for me.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Userguide section, demonstrating how to load data within a specified date
range.
* Added notes to the :func:`iris.load` documentation, and the userguide
`Loading Iris Cubes <https://scitools.org.uk/iris/docs/latest/userguide/loading_iris_cubes.html>`_
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As above, links to the "wrong docs", i.e. the Scitools release docs.
I think this one should be "Loading Iris Cubes <../userguide/loading_iris_cubes.html>_.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

We now apply the default operation of :func:`numpy.allclose` instead,
which is equivalent to "abs(a - b) < (1.e-8 + 1.e-5 * b)".
* Added support to render HTML for :class:`iris.cube.CubeList`s in Jupyter Notebooks and JupyterLab.
* Loading CellMeasures with non-float values is now supported.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this should be "integer values". It won't cope with strings !

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

which is equivalent to "abs(a - b) < (1.e-8 + 1.e-5 * b)".
* Added support to render HTML for :class:`iris.cube.CubeList`s in Jupyter Notebooks and JupyterLab.
* Loading CellMeasures with non-float values is now supported.
* New coordinate system: :class:`iris.coord_systems.Geostationary`, based on
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we also load+save these in netcdf ? If so, should say so (like the one below).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

* Cubes are now rendered more robustly by Jupyter.
:meth:`~iris.cube.Cube._repr_html_` no longer crashes for a cube with
attributes containing ``\n``.
* Variables which reference themselves in ``cell_measures`` can now be read.
Copy link
Member

@lbdreyer lbdreyer Oct 4, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a bit unclear.
I would specify that the you are talking about netCDF here.
And possibly explicitly say the cell_measures attribute.
Something like:

Suggested change
* Variables which reference themselves in ``cell_measures`` can now be read.
* NetCDF Variables which reference themselves in their ``cell_measures`` attribute can now be read.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@lbdreyer
Copy link
Member

lbdreyer commented Oct 4, 2019

Brilliant! 🎉 🎉 This all looks good! Thanks for all your hard work on this @trexfeathers !

And as @trexfeathers mentioned offline, the amount of content in this what's new is proof of just how much we have accomplished these past few weeks!

Well done team! 💯

@lbdreyer lbdreyer merged commit dee6e32 into SciTools:v2.3.x Oct 4, 2019
lbdreyer pushed a commit to lbdreyer/iris that referenced this pull request Oct 7, 2019
* Manual elements of What's New

* renamed manual 2.3 What's New entries

* Created 2.3 What's New document.

* Referencing 2.3 What's New in index.html

* Explicit reference to 2.3.0

* Added separator underneath showcases

* Deleted contributions folder.

* Referenced CF conventions for NetCDF format example

* Moved CF 1.7 support from bugfix to new feature.

* Typo in Cube.collapsed.

* Underlines, code-block language and CF terminology fixes.

* Correction to climatological docstring and What's New.

* Correction to climatological docstring and What's New.

* Added Geostationary projection to CF 1.7 showcase.

* Chunking strategy phrasing.

* CubeList link for render HTML point.

* Removed reference to latest.rst from What's New index.

* CF 1.7 section links.

* Removed duplicate note about realisation with iris.analysis.RMS

* Improved formatting for cube equality point.

* Fixed Dask dependency to by >=1.2.

* Proj4 dependency phrasing.

* with masked arrays -> with arrays with missing points.

* var_name name token phrasing.

* Removed reference to private method Cube._html_repr_.

* abf/abl cube pluralisation.

* Link for NEMO example.

* Corrected internal documentation links.

* Corrected *integer* value support.

* Geostationary includes load and save support.

* Clarified self-referencing NetCDF variables.

* Reworded CF 1.7 showcase.

* Internal address fixes.

* Removed name tokens from the CF 1.7 showcase.
@trexfeathers trexfeathers deleted the v2.3.x branch July 31, 2020 11:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants