forked from SciTools/iris
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES
306 lines (237 loc) · 12.3 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
Release 1.2 (unreleased)
========================
Features added
--------------
* :meth:`iris.cube.Cube.convert_units()` and
:meth:`iris.coords.Coord.convert_units()` have been added for straightforward
conversion of cubes and coordinates from one unit to another.
* :attr:`iris.cube.Cube.var_name`, :attr:`iris.coords.Coord.var_name` and
:attr:`iris.aux_factory.AuxCoordFactory.var_name` attributes have been added.
This attribute represents the CF variable name of the object. It is populated
when loading from CF-netCDF files and is used when writing to CF-netCDF. A
var_name keyword argument has also been added to the
:meth:`iris.cube.Cube.coord()`, :meth:`iris.cube.Cube.coords()` and
:meth:`iris.cube.Cube.aux_factory()` methods.
* :meth:`iris.coords.Coord.is_compatible()` has been added. This method is
used to determine whether two coordinates are are sufficiently alike to
allow operations such as :meth:`iris.coords.Coord.intersect()` and
:func:`iris.analysis.interpolate.regrid()` to take place. A corresponding
method for cubes, :meth:`iris.cube.Cube.is_compatible()`, has also been
added.
Bugs fixed
----------
* N/A
Incompatible changes
--------------------
* The deprecated :attr:`iris.cube.Cube.unit` and :attr:`iris.coords.Coord.unit`
attributes have been removed.
Deprecations
------------
* The :meth:`iris.coords.Coord.unit_converted()` method has been deprecated.
Users should make a copy of the coordinate using
:meth:`iris.coords.Coord.copy()` and then call the
:meth:`iris.coords.Coord.convert_units()` method of the new coordinate.
* With the addition of the var_name attribute the signatures of DimCoord and
AuxCoord have changed. This should have no impact if you are providing
parameters as keyword arguments, but it may cause issues if you are relying
on the position/order of the arguments.
----------------------------
Release 1.1 (7 Dec, 2012)
==========================
Features added
--------------
* 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.
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.
Incompatible changes
--------------------
* N/A
Deprecations
------------
* N/A
----------------------------
Release 1.0 (15 Oct, 2012)
==========================
Features added
--------------
* Iris can now represent hybrid-pressure vertical coordinates, and load
them from GRIB files.
* Initial support for CF-style coordinate systems: lat-lon, rotated lat-lon,
and transverse Mercator (incl. OSGB).
* Iris can now load NIMROD files.
* Availability of Cynthia Brewer colour palettes.
* Add a citation to a plot.
* Readability improvements to Cube summary.
* Ensures netCDF files are properly closed.
* A more explicit set of load functions, which also allow the automatic
cube merging to be bypassed as a last resort.
* Save netCDF files with an unlimited dimension.
* The ability to project a cube with a lat-lon or rotated lat-lon coordinate
system into a range of map projections e.g. Polar Stereographic.
Incompatible changes
--------------------
* The "source" and "history" metadata are now represented as Cube
attributes, where previously they used coordinates.
* With the change to cartopy, the function iris.plot.gcm() is obsolete
and has been removed.
* Three functions have been removed from iris.analysis.cartography:
lat_lon_range(), get_lat_lon_grids(), and
get_lat_lon_contiguous_grids(). They have been replaced with
generalised versions: get_xy_grids()
and get_xy_contiguous_bounded_grids().
* iris.plot.gcm, iris.plot.map_setup functions are now removed as part
of the change to using cartopy. See the "what's new" section for further
information on working with cartopy.
* The method `Cube.coord_dims()` now returns a tuple instead of a list.
Deprecations
------------
* The methods `Coord.cos()` and `Coord.sin()` have been deprecated.
* The function `load_strict()` has been deprecated. Code should now use
`iris.load_cube()` and `iris.load_cubes()` instead.
----------------------------
Release 0.9 (14 Aug, 2012)
==========================
Features added
--------------
* Iris is now an open source project. See `Iris on github <https://github.com/SciTools/iris>`_.
* Hybrid vertical coordinates are implemented with the new :class:`~iris.aux_factory.AuxCoordFactory`.
* More graceful loading of units. See `here <https://github.com/SciTools/iris/pull/17>`_ for more details.
Incompatible changes
--------------------
* The Iris data model is now fully aligned with the `CF data model <http://cf-pcmdi.llnl.gov/documents/cf-conventions/>`_ .
Iris remains file-format independent, as is the underlying CF data model.
* Cube merging has been re-written for the new CF data model with the benefit that some corner cases are now better handled.
Some users may find that their cubes, once merged, now have a smaller total shape and more intelligent handling of dimension coordinate picking.
Deprecations
------------
* None
----------------------------
Release 0.8 (29 May, 2012)
==========================
Features added
--------------
* Cube trajectory extraction now supports irregular grids (ORCA2) using nearest-neighbour interpolation.
* Support cube arithmetic with masked array data.
* PP loading now utilises improved field-code to standard_name/unit mapping.
* Upgraded to use centrally installed and managed version 2 of PP packing library.
Incompatible changes
--------------------
* The ability to add UK Met Office branding to plots has been moved to
the UK Met Office's internal `monty` library.
* The ability to read colour palettes from the UKMO IDL library has been
moved to the UK Met Office's internal `monty` library.
Deprecations
------------
* None
----------------------------
Release 0.7 (23 Mar, 2012)
==========================
Features added
--------------
* Cubes can now have missing data in the form of numpy masked arrays. All plotting and aggregating routines
should now support masked data handling without any user code changes necessary.
* GRIB2 saving now supported for common cases. GRIB loading capabilities further extended.
* NetCDF loading of multidimensional auxiliary data implemented, providing initial support for data with an ORCA grid.
* Extended the number of PP STASH code to standard name mappings.
* PP saving of non ``latitude, longitude`` cubes added.
* Cube merging has been upgraded to support optimisation of ``time``, ``forecast_period`` and
``forecast_reference_time`` dimensionality.
* Added new gallery entry highlighting NetCDF support for rotated pole data.
* NetCDF saving should now be CF-1.5 compliant.
* Custom made colour palettes from the UKMO IDL library can now be loaded as matplotlib colour
palettes (see :func:`iris.clrtools.load_clr`).
* It is now possible to iterate over multiple cubes "in step", ensuring that the metadata is consistent between the
given cubes (see :func:`iris.iterate.izip`).
* Cell methods will now appear in the printout of a cube.
* Supporting software dependency versions have been updated. Of particular note is matplotlib which has gone from version 1.0.1
up to `1.1.0 <http://matplotlib.sourceforge.net/users/whats_new.html#new-in-matplotlib-1-1>`_ . This may have a small impact on
some plot element placements.
Incompatible changes
--------------------
* The call signature for custom loader functions handled via :class:`~iris.io.format_picker.FormatSpecification` has changed.
Previously the signature was ``loader(filename, callback)`` and now looks like ``loader(filenames, callback)`` where ``filenames``
is an iterable of filenames.
* Custom aggregators should now create :class:`iris.analysis.Aggregator` instances rather than defining
a the partial creation of an Aggregate (i.e. ``partial(iris.analysis.Aggregate, ...)`` becomes ``iris.analysis.Aggregator(...)``.
* PP STASH code ingestion is now stricter. In particular handling of partial stash codes (i.e. those without a model or section)
is no longer done, meaning that some cubes which previously had a standard name may no longer have a standard name.
Further work is planned to support field code translation which should provide more robust and accurate PP interpretations.
* For parity with the CF-NetCDF community 'phenomenon_time' has now become 'time'.
Deprecations
------------
* Callback functions to ``iris.load`` and ``iris.load_strict`` should no longer return a value.
Updated documentation can be found at :func:`iris.load`.
----------------------------
Release 0.6 (20 Jan, 2012)
==========================
Features added
--------------
* The PP loader now supports PP fields with a header release number of 3.
(As used by the UM version 8.1)
* Initial support for multidimensional coordinates (i.e. those which span multiple
cube data dimensions) with the standard ExplicitCoord class.
* Added cube to CF-netCDF saving.
* Print of a cube now supports multi-dimensional coordinates, and re-categorisation of
cube coordinates into "dimensioned", "scalar" and "other" (i.e. neither dimensioned or
scalar).
* Provide support for CF-netCDF label variables and 1-D auxiliary coordinate variables.
Incompatible changes
--------------------
* The ``cube.coords`` dictionary has been replaced with the ``cube.coord`` and ``cube.coords`` methods
for easier identification of coordinates.
* ``iris.cdm.coords`` has been moved and separated to ``iris.coords and`` ``iris.coord_systems``.
* CF-netCDF global attributes are now put in the cube "attributes" dictionary rather than
as scalar cube coordinates. Additionally any "unused" CF-netCDF variable attributes are also put in the
cube "attributes" dictionary.
Deprecations
------------
* ``cube.axes`` is now deprecated and read-only. A coordinate's dimensions on a cube can be
found with the ``cube.coord_dims`` method. An interim cube convenience property
"axes" is provided to support legacy getter functionality.
* ``cube.axis_length`` is now deprecated. A cube's shape can be determined with ``cube.shape``
and the dimensions to which a coordinate is associated can be determined with ``cube.coord_dims``.
----------------------------
Release 0.5 (31 Oct, 2011)
==========================
* Overhaul to NetCDF loading. Iris will now load a far wider variety of CF
compliant NetCDF files.
* Cubes loaded from PP will now have the associated "STASH" code in MSI format
within the cube custom "attributes" dictionary.
* Cubes now have an "attributes" dictionary which can be used for phenomenon
definition - cubes with different attributes are representing fundamentally
different phenomenon.
* Strings can now be used to constrain standard name on load/extract.
* Plotting routines now pick the colour palettes based on the cube to plot.
* Added ability to derive area weights from a shapely geometry.
* Cubes can now be operated on (added, multiplied, etc.) using numpy arrays.
* New example of how to load custom ascii files into Cubes.
* Percentile aggregation added.
* Deferred data loading for Cubes loaded from netCDF.
* Pickle support for cubes. Pickling should be reserved for short term storage and
optimisation purposes only as pickle files will not be compatible across releases.