forked from SciTools/iris
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES
528 lines (393 loc) · 19.2 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
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
This file is no longer updated and is provided for historical purposes only.
Please see docs/iris/src/whatsnew/ for a changelog.
Release 1.4 (14 June 2013)
==========================
* Saving multiple cubes to netcdf
https://github.com/SciTools/iris/pull/367
* Rework Coord nearest_neighbour to support circular cases
https://github.com/SciTools/iris/pull/391
* Simplified resource configuration
https://github.com/SciTools/iris/pull/406
* Helper function for regridding that returns x and y coords
https://github.com/SciTools/iris/pull/437
* Added iris.tests.assertArrayAllClose
https://github.com/SciTools/iris/pull/440
* Add bilinear interpolation between rectilinear grids.
https://github.com/SciTools/iris/pull/442
* Added tolerances to Coord.is_contiguous()
https://github.com/SciTools/iris/pull/459
* Pandas interoperability
https://github.com/SciTools/iris/pull/439
* Nimrod level type 12 (below ground)
https://github.com/SciTools/iris/pull/199
* Modified logic in Unit.convert to handle numpy scalars
https://github.com/SciTools/iris/pull/472
* Experimental OPeNDAP functionality.
https://github.com/SciTools/iris/pull/422
* Experimental GeoTiff export functionality:
`iris.experimental.raster.export_geotiff`
* Added a PEP8 test to ensure coding standards
https://github.com/SciTools/iris/pull/476
* Add licence header check to tests
https://github.com/SciTools/iris/issues/454
* Cube merge string coords.
https://github.com/SciTools/iris/pull/475
* Unambiguous season year naming
https://github.com/SciTools/iris/pull/490
* Area weighted regridding
https://github.com/SciTools/iris/pull/464
* Removal of strict constraint in izip().
https://github.com/SciTools/iris/pull/495
* PP save with no time forecast.
https://github.com/SciTools/iris/pull/498
* Load of nimrod files with multiple fields and period of interest
https://github.com/SciTools/iris/pull/507
* Conservative regridding, preserving area sums
https://github.com/SciTools/iris/pull/453
* Handle missing values from grib messages
https://github.com/SciTools/iris/pull/520
* PP export rule to calculate forecast period
https://github.com/SciTools/iris/pull/514
* Preserve masked arrays during aggregation
https://github.com/SciTools/iris/pull/527
* Support for ieee 32bit fieldsfiles to iris.load
https://github.com/SciTools/iris/pull/297
* NetCDF load support for transverse Mercator and climatology
https://github.com/SciTools/iris/pull/521
* Polar stereo grib loading
https://github.com/SciTools/iris/pull/518
* GRIB export of cubes with no vertical information
See https://github.com/SciTools/iris/issues/519 for ongoing discussion
* GRIB2 parameter translation
https://github.com/SciTools/iris/pull/482
* Added depth rules for bounds
https://github.com/SciTools/iris/pull/451
* Added a test for license checking of code files
https://github.com/SciTools/iris/pull/477
* Fixed netcdf save cubelist bug
https://github.com/SciTools/iris/pull/488
* Add an optimisation for single valued coordinate constraints
https://github.com/SciTools/iris/pull/428
* Improved error message within Cube.aggregated_by()
https://github.com/SciTools/iris/pull/504
* Change unit print-out
https://github.com/SciTools/iris/pull/465
* Modified linear() to handle non-scalar length one coords
https://github.com/SciTools/iris/pull/508
* Propagate all coord names in construct midpoint
https://github.com/SciTools/iris/pull/499
* Resolved pickling issues with deferred loading
https://github.com/SciTools/iris/pull/511
* Modified plot.py to pass coords arg through to _map_common()
https://github.com/SciTools/iris/pull/463
* Use cartopy v0.8.0
https://github.com/SciTools/iris/pull/494
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
------------
* The *add_custom_season_** functions from coord_categorisation.py have been deprecated in favour of adding their functionality to the *add_season_** functions
----------------------------
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.1 (11 Sep, 2012)
============================
Features added
--------------
* Fixed an issue with netCDF loading that failed to close file handles.
Incompatible changes
--------------------
* None
Deprecations
------------
* None
----------------------------
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 <https://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 <https://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.