v1.1 (03 Jan 2013) ****************** This document explains the changes made to Iris for this release (:doc:`View all changes `.) Features ======== With the release of Iris 1.1, we are introducing support for Mac OS X. Version 1.1 also sees the first batch of performance enhancements, with some notable improvements to netCDF/PP import. * Support for Mac OS X. * GRIB1 import now supports time units of "3 hours". * Fieldsfile import now supports unpacked and "CRAY" 32-bit packed data in 64-bit Fieldsfiles. * PP file import now supports "CRAY" 32-bit packed data. * Various performance improvements, particularly for netCDF import, PP import, and constraints. * GRIB2 export now supports level types of altitude and height (codes 102 and 103). * iris.analysis.cartography.area_weights now supports non-standard dimension orders. * PP file import now adds the "forecast_reference_time" for fields where LBTIM is 11, 12, 13, 31, or 32. * PP file import now supports LBTIM values of 1, 2, and 3. * Fieldsfile import now has some support for ancillary files. * Coordinate categorisation functions added for day-of-year and user-defined seasons. * GRIB2 import now has partial support for probability data defined with product template 4.9. Coordinate Categorisation ------------------------- An :func:`~iris.coord_categorisation.add_day_of_year` categorisation function has been added to the existing suite in :mod:`iris.coord_categorisation`. Custom Seasons ~~~~~~~~~~~~~~ The conventional seasonal categorisation functions have been complemented by two groups of functions which handle user-defined, custom seasons. The first group of functions is: * :func:`iris.coord_categorisation.add_custom_season` * :func:`iris.coord_categorisation.add_custom_season_number` * :func:`iris.coord_categorisation.add_custom_season_year` These functions mimic their non-custom versions, but with the addition of a ``seasons`` parameter which is used to define the custom seasons. These seasons are defined by concatenating the single letter abbreviations of the relevant, consecutive months. For example, to categorise a Cube based on "winter" and "summer" months, one might do:: >>> seasons = ['mamjja', 'sondjf'] >>> iris.coord_categorisation.add_custom_season(cube, 'time', seasons) >>> print(cube.coord('season').points) ['ondjfm' 'ondjfm' 'mamjja' 'mamjja' 'mamjja' 'mamjja' 'mamjja' 'mamjja' 'ondjfm' 'ondjfm' 'ondjfm' 'ondjfm'] The other custom season function is: * :func:`iris.coord_categorisation.add_custom_season_membership`. This function adds a coordinate containing True/False values determined by membership of a single custom season. Bugs Fixed ========== * PP export no longer attempts to set/overwrite the STASH code based on the standard_name. * Cell comparisons now work consistently, which fixes a bug where bounded_cell > point_cell compares the point to the bounds but, point_cell < bounded_cell compares the points. * Fieldsfile import now correctly recognises pre v3.1 and post v5.2 versions, which fixes a bug where the two were interchanged. * iris.analysis.trajectory.interpolate now handles hybrid-height.