From d1b3272b95f5ca172081620733fa1fc605d7c287 Mon Sep 17 00:00:00 2001 From: marqh Date: Tue, 16 May 2017 17:27:29 +0000 Subject: [PATCH 1/2] draft whats new --- docs/iris/src/whatsnew/1.13.rst | 37 +++++++++ ...te_2016-Nov-09_experimental_fieldsfile.txt | 3 - .../docchange_2016-Dec-12_areaweighted.txt | 1 - ...newfeature_2016-Dec-08_pp_lblrec_error.txt | 5 -- ...eature_2016-May-20_lazy_cube_transpose.txt | 1 - ...ture_2016-Nov-09_structured_um_loading.txt | 81 ------------------- ...17-Jan-05_experimental_scipy_regridder.txt | 1 - ...ewfeature_2017-Jan-05_fields_file_skip.txt | 6 -- ...eature_2017-Jan-09_unstructured_scheme.txt | 10 --- .../bugfix_2017-Jan-18_zonal_mean_bounds.txt | 2 - .../newfeature_2017-May-10_NZ_dateline.txt | 1 - 11 files changed, 37 insertions(+), 111 deletions(-) create mode 100644 docs/iris/src/whatsnew/1.13.rst delete mode 100644 docs/iris/src/whatsnew/contributions_1.12/deprecate_2016-Nov-09_experimental_fieldsfile.txt delete mode 100644 docs/iris/src/whatsnew/contributions_1.12/docchange_2016-Dec-12_areaweighted.txt delete mode 100644 docs/iris/src/whatsnew/contributions_1.12/newfeature_2016-Dec-08_pp_lblrec_error.txt delete mode 100644 docs/iris/src/whatsnew/contributions_1.12/newfeature_2016-May-20_lazy_cube_transpose.txt delete mode 100644 docs/iris/src/whatsnew/contributions_1.12/newfeature_2016-Nov-09_structured_um_loading.txt delete mode 100644 docs/iris/src/whatsnew/contributions_1.12/newfeature_2017-Jan-05_experimental_scipy_regridder.txt delete mode 100644 docs/iris/src/whatsnew/contributions_1.12/newfeature_2017-Jan-05_fields_file_skip.txt delete mode 100644 docs/iris/src/whatsnew/contributions_1.12/newfeature_2017-Jan-09_unstructured_scheme.txt delete mode 100644 docs/iris/src/whatsnew/contributions_1.13/bugfix_2017-Jan-18_zonal_mean_bounds.txt delete mode 100644 docs/iris/src/whatsnew/contributions_1.13/newfeature_2017-May-10_NZ_dateline.txt diff --git a/docs/iris/src/whatsnew/1.13.rst b/docs/iris/src/whatsnew/1.13.rst new file mode 100644 index 0000000000..8e21e1e19b --- /dev/null +++ b/docs/iris/src/whatsnew/1.13.rst @@ -0,0 +1,37 @@ +What's New in Iris 1.12 +*********************** + +:Release: 1.12 +:Date: 2017-05-17 + + +This document explains the new/changed features of Iris in version 1.12 +(:doc:`View all changes `.) + +Iris 1.13 Features +================== + +* Allow the reading of NAME trajectories stored by time instead of by particle number. +* An experimental link to python-stratify via :mod:`iris.experimental.stratify` +* Data arrays may be shared between cubes, and subsets of cubes, by using the :meth:`iris.cube.share_data` flag. + + +Bug Fixes +========= + +* The bounds are now set correctly on the longitude coordinate if a zonal mean diagnostic has been loaded from a PP file as per the CF Standard. +* netCDF loading will now determine whether there is a string-valued scalar label, i.e.: a character variable that only has one dimension (the length of the string) and interpret this effectively. +* A line plot of geographic coordinates (e.g. drawing a trajectory) wraps around the edge of the map cleanly, rather than plotting a segment straight across the map. +* Preserve lazy data in PP save-pairs generation, so you can work with a list of save cubes and/or fields without excessive memory requirements (as intended for saving). +* When two cubes have coordinates which do not match, an error should be raised if a user tries to perform arithmetic operations on them. These cases are now caught by the multiply and divide operators as well as the add and subtract operators, which already worked effectively. +* Limited area Rotated Pole datasets where the data range is 0 <= lambda < 360, for example as produced in New Zealand, are plotted over a sensible map extent by default. +* Removed the potential for a RuntimeWarning: overflow encountered in int_scalars which was missed during collapsed calculations. This could can trip up unwary users of limited data types, such as int32 for very large numbers (e.g. seconds since 1970). +* The CF conventions state that certain formula_terms terms may be omitted and assumed to be zero (http://cfconventions.org/cf-conventions/v1.6.0/cf-conventions.html#dimensionless-v-coord) so Iris now allows factories to be constructed with missing terms. +* clabel inline is set to be False for line countour plots. Clabel does not remove any of the contour so it renders correctly, avoiding spurious horizontal lines across plots, although this does make labels a little harder to see +* The computation of area weights has been changed to a more numerically stable form. The previous form converted latitude to colatitude and used difference of cosines in the cell area computation. This formulation uses latitude and difference of sines. The conversion from latitude to colatitude at lower precision causes errors when computing the cell areas + +Testing +======= + +* Iris has adopted conda-forge to provide environments for continuous integration testing. + diff --git a/docs/iris/src/whatsnew/contributions_1.12/deprecate_2016-Nov-09_experimental_fieldsfile.txt b/docs/iris/src/whatsnew/contributions_1.12/deprecate_2016-Nov-09_experimental_fieldsfile.txt deleted file mode 100644 index 78ef1db74d..0000000000 --- a/docs/iris/src/whatsnew/contributions_1.12/deprecate_2016-Nov-09_experimental_fieldsfile.txt +++ /dev/null @@ -1,3 +0,0 @@ -* The :mod:`iris.experimental.fieldsfile` has been deprecated, in favour of the - new fast-loading mechanism provided by - :meth:`iris.fileformats.um.structured_um_loading`. diff --git a/docs/iris/src/whatsnew/contributions_1.12/docchange_2016-Dec-12_areaweighted.txt b/docs/iris/src/whatsnew/contributions_1.12/docchange_2016-Dec-12_areaweighted.txt deleted file mode 100644 index b70e6206dc..0000000000 --- a/docs/iris/src/whatsnew/contributions_1.12/docchange_2016-Dec-12_areaweighted.txt +++ /dev/null @@ -1 +0,0 @@ -* Corrected documentation of :class:`iris.analysis.AreaWeighted` scheme to make the usage scope clearer. diff --git a/docs/iris/src/whatsnew/contributions_1.12/newfeature_2016-Dec-08_pp_lblrec_error.txt b/docs/iris/src/whatsnew/contributions_1.12/newfeature_2016-Dec-08_pp_lblrec_error.txt deleted file mode 100644 index e81b514b25..0000000000 --- a/docs/iris/src/whatsnew/contributions_1.12/newfeature_2016-Dec-08_pp_lblrec_error.txt +++ /dev/null @@ -1,5 +0,0 @@ -* Iris can now load PP files containing a PP field whose LBLREC value does not - match the field length recorded in the file. - A warning message is printed, and all fields up to the offending one are - loaded and returned. - Previously, this simply resulted in an unrecoverable error. diff --git a/docs/iris/src/whatsnew/contributions_1.12/newfeature_2016-May-20_lazy_cube_transpose.txt b/docs/iris/src/whatsnew/contributions_1.12/newfeature_2016-May-20_lazy_cube_transpose.txt deleted file mode 100644 index 79e95711bd..0000000000 --- a/docs/iris/src/whatsnew/contributions_1.12/newfeature_2016-May-20_lazy_cube_transpose.txt +++ /dev/null @@ -1 +0,0 @@ -* The transpose method of a Cube now results in a lazy transposed view of the original rather than realising the data then transposing it. diff --git a/docs/iris/src/whatsnew/contributions_1.12/newfeature_2016-Nov-09_structured_um_loading.txt b/docs/iris/src/whatsnew/contributions_1.12/newfeature_2016-Nov-09_structured_um_loading.txt deleted file mode 100644 index 344e7ae81c..0000000000 --- a/docs/iris/src/whatsnew/contributions_1.12/newfeature_2016-Nov-09_structured_um_loading.txt +++ /dev/null @@ -1,81 +0,0 @@ -* Support for "fast" loading of UM files has been added. - This can dramatically accelerate loading speeds of fieldsfiles and PP files, - if they meet certain common structural requirements, typical for these types - of datafile. - - See : :meth:`iris.fileformats.um.structured_um_loading`. - - .. Note: - - This updates and replaces the experimental code in - :mod:`iris.experimental.fieldsfile`, which is now deprecated in favour of - the new, supported facility. - - [[ - **NOTE TO RELEASE COMPILER** - This needs highlighting, and a better explanation than the plain reference - documentation. We probably want a "featured item" section in the whatsnew, - along the following lines ... - ]] - - Fast UM file loading: - --------------------- - Support has been added for accelerated loading of UM files (PP and - Fieldsfile), when these have a suitable regular 'structured' form. - - A context manager is used to enable fast um loading in all the regular iris - load functions, such as :meth:`iris.load` and :meth:`iris.load_cube`, - when loading data from UM file types. - For example: - - >>> import iris - >>> filepath = iris.sample_data_path('uk_hires.pp') - >>> from iris.fileformats.um import structured_um_loading - >>> with structured_um_loading(): - ... cube = iris.load_cube(filepath, 'air_potential_temperature') - - This approach can deliver loading which is 10 times faster or more. - For example : - - * a 78 Gb fieldsfile of 51,840 fields loads in about 13 rather than 190 - seconds. - * a set of 25 800Mb PP files loads in about 21 rather than 220 seconds. - - For full details, see : :meth:`iris.fileformats.um.structured_um_loading`. - - You can load data with structured loading and compare the results with those - from "normal" loading to check whether they are equivalent. - - * The results will normally differ, if at all, only in having dimensions in a - different order or a different choice of dimension coordinates. - **In these cases, structured loading can be used with confidence.** - - * Ordinary Fieldsfiles (i.e. model outputs) are generally suitable for - structured loading. Many PP files also are, especially if produced - directly from Fieldsfiles, and retaining the same field ordering. - - * Some inputs however (generally PP) will be unsuitable for structured - loading : For instance if a particular combination of vertical levels and - time has been omitted, or some fields appear out of order. - - * There are also some known unsupported cases, including data which is - produced on pseudo-levels. See the detail documentation on this. - - It is the user's responsibility to use structured loading only with suitable - inputs. Otherwise, odd behaviour and even incorrect loading can result, as - input files are not checked as fully as in a normal load. - - Although the user loading call for structured loading can be just the same, - and the returned results are also often identical, structured loading is not - in fact an exact *identical* replacement for normal loading: - - * results are often somewhat different, especially regarding the order - of dimensions and the choice of dimension coordinates. - - * although both constraints and user callbacks are supported, callback - routines will generally need to be re-written. This is because a - 'raw' cube in structured loading generally covers *multiple* PPfields, - which therefore need to be handled as a collection : A grouping object - containing them is passed to the callback 'field' argument. - An example showing callbacks suitable for both normal and structured - loading can be seen `here `_. diff --git a/docs/iris/src/whatsnew/contributions_1.12/newfeature_2017-Jan-05_experimental_scipy_regridder.txt b/docs/iris/src/whatsnew/contributions_1.12/newfeature_2017-Jan-05_experimental_scipy_regridder.txt deleted file mode 100644 index 5c6a6bc8b1..0000000000 --- a/docs/iris/src/whatsnew/contributions_1.12/newfeature_2017-Jan-05_experimental_scipy_regridder.txt +++ /dev/null @@ -1 +0,0 @@ -* Added experimental ProjectedUnstructured regridders which use scipy.interpolate.griddata to regrid unstructured data (see :class:`iris.experimental.regrid.ProjectedUnstructuredLinear` and :class:`iris.experimental.regrid.ProjectedUnstructuredNearest`) diff --git a/docs/iris/src/whatsnew/contributions_1.12/newfeature_2017-Jan-05_fields_file_skip.txt b/docs/iris/src/whatsnew/contributions_1.12/newfeature_2017-Jan-05_fields_file_skip.txt deleted file mode 100644 index 1e36c303d8..0000000000 --- a/docs/iris/src/whatsnew/contributions_1.12/newfeature_2017-Jan-05_fields_file_skip.txt +++ /dev/null @@ -1,6 +0,0 @@ -* A skip pattern is introduced to the fields file loader, such that fields - which cannot be turned into iris PPField instances are skipped and the - remaining fields are loaded. This especially applies to certain types of - files that can contain fields with a non-standard LBREL value : Iris can now - load such a file, skipping the unreadable field and printing a warning - message. diff --git a/docs/iris/src/whatsnew/contributions_1.12/newfeature_2017-Jan-09_unstructured_scheme.txt b/docs/iris/src/whatsnew/contributions_1.12/newfeature_2017-Jan-09_unstructured_scheme.txt deleted file mode 100644 index 2496a3f7e4..0000000000 --- a/docs/iris/src/whatsnew/contributions_1.12/newfeature_2017-Jan-09_unstructured_scheme.txt +++ /dev/null @@ -1,10 +0,0 @@ -* a new regridding scheme, :class:`iris.analysis.UnstructuredNearest`, - performs nearest-neighbour regridding from unstructured onto "normal" grids. - Here, "unstructured" means that the data has X and Y coordinate values - defined at each horizontal location, instead of on independent X and Y - dimensions. - For example, data sampled on a trajectory or a tripolar ocean grid. - - The essential purpose is the same as - :class:`iris.experimental.regrid.ProjectedUnstructuredNearest`. - This scheme, by comparison, is generally more accurate, but slower. diff --git a/docs/iris/src/whatsnew/contributions_1.13/bugfix_2017-Jan-18_zonal_mean_bounds.txt b/docs/iris/src/whatsnew/contributions_1.13/bugfix_2017-Jan-18_zonal_mean_bounds.txt deleted file mode 100644 index 78aa7befeb..0000000000 --- a/docs/iris/src/whatsnew/contributions_1.13/bugfix_2017-Jan-18_zonal_mean_bounds.txt +++ /dev/null @@ -1,2 +0,0 @@ -The bounds are now set on the longitude coordinate if a zonal mean -diagnostic has been loaded from a PP file as per the CF Standard. \ No newline at end of file diff --git a/docs/iris/src/whatsnew/contributions_1.13/newfeature_2017-May-10_NZ_dateline.txt b/docs/iris/src/whatsnew/contributions_1.13/newfeature_2017-May-10_NZ_dateline.txt deleted file mode 100644 index 40acbfd711..0000000000 --- a/docs/iris/src/whatsnew/contributions_1.13/newfeature_2017-May-10_NZ_dateline.txt +++ /dev/null @@ -1 +0,0 @@ -* A new capability has been added which recognises where rotated pole limited area datasets are using a 0<=lambda<360 extent and provides a useful base projection to enable them to display with a reasonable extent. From 0f0373c28aa31d24c11c4c39ea5d70dfa3277b84 Mon Sep 17 00:00:00 2001 From: lbdreyer Date: Wed, 17 May 2017 11:05:12 +0100 Subject: [PATCH 2/2] Minor changes to whats new. --- docs/iris/src/whatsnew/1.13.rst | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/iris/src/whatsnew/1.13.rst b/docs/iris/src/whatsnew/1.13.rst index 8e21e1e19b..532c160f13 100644 --- a/docs/iris/src/whatsnew/1.13.rst +++ b/docs/iris/src/whatsnew/1.13.rst @@ -1,18 +1,18 @@ -What's New in Iris 1.12 +What's New in Iris 1.13 *********************** -:Release: 1.12 +:Release: 1.13 :Date: 2017-05-17 -This document explains the new/changed features of Iris in version 1.12 +This document explains the new/changed features of Iris in version 1.13 (:doc:`View all changes `.) Iris 1.13 Features ================== * Allow the reading of NAME trajectories stored by time instead of by particle number. -* An experimental link to python-stratify via :mod:`iris.experimental.stratify` +* An experimental link to python-stratify via :mod:`iris.experimental.stratify`. * Data arrays may be shared between cubes, and subsets of cubes, by using the :meth:`iris.cube.share_data` flag. @@ -20,15 +20,15 @@ Bug Fixes ========= * The bounds are now set correctly on the longitude coordinate if a zonal mean diagnostic has been loaded from a PP file as per the CF Standard. -* netCDF loading will now determine whether there is a string-valued scalar label, i.e.: a character variable that only has one dimension (the length of the string) and interpret this effectively. +* NetCDF loading will now determine whether there is a string-valued scalar label, i.e. a character variable that only has one dimension (the length of the string), and interpret this correctly. * A line plot of geographic coordinates (e.g. drawing a trajectory) wraps around the edge of the map cleanly, rather than plotting a segment straight across the map. -* Preserve lazy data in PP save-pairs generation, so you can work with a list of save cubes and/or fields without excessive memory requirements (as intended for saving). -* When two cubes have coordinates which do not match, an error should be raised if a user tries to perform arithmetic operations on them. These cases are now caught by the multiply and divide operators as well as the add and subtract operators, which already worked effectively. -* Limited area Rotated Pole datasets where the data range is 0 <= lambda < 360, for example as produced in New Zealand, are plotted over a sensible map extent by default. -* Removed the potential for a RuntimeWarning: overflow encountered in int_scalars which was missed during collapsed calculations. This could can trip up unwary users of limited data types, such as int32 for very large numbers (e.g. seconds since 1970). -* The CF conventions state that certain formula_terms terms may be omitted and assumed to be zero (http://cfconventions.org/cf-conventions/v1.6.0/cf-conventions.html#dimensionless-v-coord) so Iris now allows factories to be constructed with missing terms. -* clabel inline is set to be False for line countour plots. Clabel does not remove any of the contour so it renders correctly, avoiding spurious horizontal lines across plots, although this does make labels a little harder to see -* The computation of area weights has been changed to a more numerically stable form. The previous form converted latitude to colatitude and used difference of cosines in the cell area computation. This formulation uses latitude and difference of sines. The conversion from latitude to colatitude at lower precision causes errors when computing the cell areas +* When saving to PP, lazy data is preserved when generating PP fields from cubes so that a list of cubes can be saved to PP without excessive memory requirements. +* An error is now correctly raised if a user tries to perform an arithmetic operation on two cubes with mismatching coordinates. Previously these cases were caught by the add and subtract operators, and now it is also caught by the multiply and divide operators. +* Limited area Rotated Pole datasets where the data range is ``0 <= lambda < 360``, for example as produced in New Zealand, are plotted over a sensible map extent by default. +* Removed the potential for a RuntimeWarning: overflow encountered in ``int_scalars`` which was missed during collapsed calculations. This could trip up unwary users of limited data types, such as int32 for very large numbers (e.g. seconds since 1970). +* The CF conventions state that certain ``formula_terms`` terms may be omitted and assumed to be zero (http://cfconventions.org/cf-conventions/v1.6.0/cf-conventions.html#dimensionless-v-coord) so Iris now allows factories to be constructed with missing terms. +* In the User Guide's contour plot example, clabel inline is set to be False so that it renders correctly, avoiding spurious horizontal lines across plots, although this does make labels a little harder to see. +* The computation of area weights has been changed to a more numerically stable form. The previous form converted latitude to colatitude and used difference of cosines in the cell area computation. This formulation uses latitude and difference of sines. The conversion from latitude to colatitude at lower precision causes errors when computing the cell areas. Testing =======