v1.3 (27 Mar 2013)#

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

Features#

Loading ABF/ABL Files#

Support for the ABF and ABL file formats (as defined by the climate and vegetation research group of Boston University), is currently provided under the “experimental” system. As such, ABF/ABL file detection is not automatically enabled.

To enable ABF/ABL file detection, simply import the iris.experimental.fileformats.abf module before attempting to load an ABF/ABL file.

For example:

import iris.experimental.fileformats.abf
cube = iris.load_cube('/path/to/my/data.abf')

Customised CF Profiles#

Iris now provides hooks in the CF-netCDF export process to allow user-defined routines to check and/or modify the representation in the netCDF file.

The following keys within the iris.site_configuration dictionary have been reserved as hooks to external user-defined CF profile functions:

  • cf_profile ingests a iris.cube.Cube for analysis and returns a profile result

  • cf_patch modifies the CF-netCDF file associated with export of the iris.cube.Cube

The iris.site_configuration dictionary should be configured via the iris/site_config.py file.

For further implementation details see iris/fileformats/netcdf.py.

Cube Concatenation#

Iris now provides initial support for concatenating Cubes along one or more existing dimensions. Currently this will force the data to be loaded for all the source Cubes, but future work will remove this restriction.

For example, if one began with a collection of Cubes, each containing data for a different range of times:

>>> print(cubes)
0: air_temperature                     (time: 30; latitude: 145; longitude: 192)
1: air_temperature                     (time: 30; latitude: 145; longitude: 192)
2: air_temperature                     (time: 30; latitude: 145; longitude: 192)

One could use iris.experimental.concatenate.concatenate() to combine these into a single Cube as follows:

>>> new_cubes = iris.experimental.concatenate.concatenate(cubes)
>>> print(new_cubes)
0: air_temperature                     (time: 90; latitude: 145; longitude: 192)

Note

As this is an experimental feature, your feedback is especially welcome.

Bugs Fixed#

  • Printing a Cube now supports Unicode attribute values.

  • PP export now sets LBMIN correctly.

  • Converting between reference times now works correctly for units with non-Gregorian calendars.

  • Slicing a CubeList now returns a CubeList instead of a normal list.

Deprecations#

  • The boolean methods/properties on the Unit class have been updated to is_…() methods, in line with the project’s naming conventions.

    Deprecated Property/Method

    New Method

    convertible()

    is_convertible()

    dimensionless

    is_dimensionless()

    no_unit

    is_no_unit()

    time_reference

    is_time_reference()

    unknown

    is_unknown()