forked from SciTools/iris
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES
438 lines (342 loc) · 16.9 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
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
Release 1.5 (unreleased)
========================
Features added
--------------
* The functions `iris.plot.plot` and `iris.quickplot.plot` now take up to two
arguments, which may be cubes or coordinates, allowing the user to have full
control over what is plotted on each axis. The coords keyword argument is now
deprecated for these functions.
Bugs fixed
----------
* N/A
Incompatible changes
--------------------
* N/A
Deprecations
------------
* The coords keyword argument for `iris.plot.plot` and `iris.quickplot.plot`
has been deprecated due to the new API which accepts multiple cubes or
coordinates.
----------------------------
Release 1.4 (unreleased)
========================
Features added
--------------
* A new configuration variable called `iris.config.TEST_DATA_DIR`
has been added, replacing the previous combination of
`iris.config.MASTER_DATA_REPOSITORY` and
`iris.config.DATA_REPOSITORY`. This constant should be the path
to a directory containing the test data required by the unit tests. It can
be set by adding a ``test_data_dir`` entry to the ``Resources`` section of
site.cfg. See `iris.config` for more details.
* One and two dimensional cubes can be converted to and from Pandas objects.
See `iris.pandas` for more details.
* Experimental support has been added to `iris.load`,
`iris.load_cube` and `iris.load_cubes` for loading Cubes from
OPeNDAP URLs.
* `iris.experimental.raster.export_geotiff` now provides experimental
GeoTiff export functionality.
* Cubes with no vertical coordinate can now be output to Grib format. In these
cases, "Type of first fixed surface" is set to 1, "ground or water surface".
( This is a common usage for data with no defined level, but may not be
strictly correct - see https://github.com/SciTools/iris/issues/519 ).
Bugs fixed
----------
* N/A
Incompatible changes
--------------------
* As part of simplifying the mechanism for accessing test data
`iris.io.select_data_path()`, `iris.config.DATA_REPOSITORY`,
`iris.config.MASTER_DATA_REPOSITORY` and
`iris.config.RESOURCE_DIR` have been removed.
Deprecations
------------
* N/A
----------------------------
Release 1.3 (27 March 2013)
===========================
Features added
--------------
* Experimental support for loading ABF/ABL files.
* Support in `iris.analysis.interpolate.linear` for longitude ranges
other than [-180, 180].
* Support for customised CF profiles on export to netCDF.
* The documentation now includes guidance on how to cite Iris.
* The ability to calculate the exponential of a Cube, via
`iris.analysis.maths.exp()`.
* Experimental support for concatenating Cubes along existing dimensions
via `iris.experimental.concatenate.concatenate()`.
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.
Incompatible changes
--------------------
* N/A
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()
========================== ======================
----------------------------
Release 1.2 (7 March 2013)
==========================
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 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.
* Printing a :class:`~iris.cube.Cube` is now more user friendly with regards
to dates and time. All *time* and *forecast_reference_time* scalar coordinates
now display human readable date/time information.
* The units of a :class:`~iris.cube.Cube` are now shown when it is printed.
* The area weights calculated by :func:`iris.analysis.cartography.area_weights`
may now be normalised relative to the total grid area.
* Weights may now be passed to :meth:`iris.cube.Cube.rolling_window` aggregations,
thus allowing arbitrary digital filters to be applied to a :class:`~iris.cube.Cube`.
Bugs fixed
----------
* The GRIB hindcast interpretation of negative forecast times can be enabled
via the :data:`iris.fileformats.grib.hindcast_workaround` flag.
* The NIMROD file loader has been extended to cope with orography vertical
coordinates.
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.
* Iteration over a :class:`~iris.cube.Cube` has been deprecated. Instead,
users should use :meth:`iris.cube.Cube.slices`.
----------------------------
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.