Change log¶
Version 1.9.0.4¶
2022-07-18
Upgrade to allow cfdm to work with Python 3.10 (https://github.com/NCAS-CMS/cfdm/issues/187)
Fix bug that caused a hang when reading zero-length files (https://github.com/NCAS-CMS/cfdm/issues/190)
Fix bug to prevent error when writing vlen strings to a netCDF file when compression has been set (for
netCDF4>=1.6.0) (https://github.com/NCAS-CMS/cfdm/issues/199)
Version 1.9.0.3¶
2022-03-10
Fixed bug that caused a failure from
cfdm.writewhen writing identical (auxiliary) coordinates to different data variables in different groups (https://github.com/NCAS-CMS/cfdm/issues/177)Fixed bug that caused
cf.Domain.__str__to fail when a dimension coordinate construct does not have data (https://github.com/NCAS-CMS/cfdm/issues/174)New dependency:
packaging>=20.0Changed dependency:
cftime>=1.6.0
Version 1.9.0.2¶
2022-01-31
Fixed bug that caused a
cfdm.writefailure when a vertical coordinate reference construct has no coordinates (https://github.com/NCAS-CMS/cfdm/issues/164)Fixed bug that caused a failure when downstream
identitiesmethods return anitertools.chainobject (https://github.com/NCAS-CMS/cfdm/issues/170)
Version 1.9.0.1¶
2021-10-12
Fixed bug that prevented some geometry coordinates being written to netCDF CLASSIC files (https://github.com/NCAS-CMS/cfdm/issues/140)
Fixed bug that a caused segmentation fault when appending a string data type to netCDF files (https://github.com/NCAS-CMS/cfdm/issues/155)
Fixed bug in
cf.Field.get_domainwhen there are climatological time axes (https://github.com/NCAS-CMS/cfdm/issues/159)
Version 1.9.0.0¶
2021-09-21
Python 3.6 support removed (https://github.com/NCAS-CMS/cfdm/issues/139)
Conversion of
cfdm.Domainto a non-abstract that may be read from and written to a netCDF dataset (https://github.com/NCAS-CMS/cfdm/issues/111)New method:
cfdm.Domain.creation_commandsNew method:
cfdm.Domain.climatological_time_axesNew method:
cfdm.AuxiliaryCoordinate.del_climatologyNew method:
cfdm.AuxiliaryCoordinate.get_climatologyNew method:
cfdm.AuxiliaryCoordinate.is_climatologyNew method:
cfdm.AuxiliaryCoordinate.set_climatologyNew method:
cfdm.DimensionCoordinate.del_climatologyNew method:
cfdm.DimensionCoordinate.get_climatologyNew method:
cfdm.DimensionCoordinate.is_climatologyNew method:
cfdm.DimensionCoordinate.set_climatologyNew function:
cfdm.unique_constructsNew function:
cfdm.example_fieldsConstruct access API changes from 1.8.9.0 applied to
Field.convertImproved error message for invalid inputs to
Field.convertRaise exception when attempting to write multiply defined coordinate reference parameters (https://github.com/NCAS-CMS/cfdm/issues/148)
Interpret format specifiers for size 1
cfdm.Dataarrays (https://github.com/NCAS-CMS/cfdm/issues/152)Fix file name expansions in
cfdm.write(https://github.com/NCAS-CMS/cfdm/issues/157)
Version 1.8.9.0¶
2021-05-25
Construct access API changes (https://github.com/NCAS-CMS/cfdm/issues/124, https://github.com/NCAS-CMS/cfdm/issues/130, https://github.com/NCAS-CMS/cfdm/issues/132, https://github.com/NCAS-CMS/cfdm/issues/137)
Performance enhancements (https://github.com/NCAS-CMS/cfdm/issues/124, https://github.com/NCAS-CMS/cfdm/issues/130)
New write mode
mode='a'for appending to, rather than over-writing, a netCDF file on disk (https://github.com/NCAS-CMS/cfdm/issues/143)Better error message in the case of a
numpy.ma.core.MaskErroroccurring upon reading of CDL files with only header or coordinate information (https://github.com/NCAS-CMS/cfdm/issues/128)Fix for zero-sized unlimited dimensions when read from a grouped netCDF file (https://github.com/NCAS-CMS/cfdm/issues/113)
Fix bug causing occasional non-symmetric
equalsoperations (https://github.com/NCAS-CMS/cfdm/issues/133)Changed dependency:
cftime>=1.5.0Changed dependency:
netCDF4>=1.5.4
Version 1.8.8.0¶
2020-12-18
The setting of global constants can now be controlled by a context manager (https://github.com/NCAS-CMS/cfdm/issues/100)
Fixed bug that caused a failure when writing a dataset that contains a scalar domain ancillary construct (https://github.com/NCAS-CMS/cfdm/issues/98)
Changed dependency:
cftime>=1.3.0
Version 1.8.7.0¶
2020-10-09
Python 3.5 support deprecated (3.5 was retired on 2020-09-13)
New method:
cfdm.Field.creation_commandsNew method:
cfdm.Data.creation_commandsNew method:
cfdm.Field._docstring_special_substitutionsNew method:
cfdm.Field._docstring_substitutionsNew method:
cfdm.Field._docstring_package_depthNew method:
cfdm.Field._docstring_method_exclusionsNew method:
cfdm.Data.filledNew keyword parameter to
cfdm.Field.set_data:inplaceNew keyword parameter to
cfdm.write:coordinates(https://github.com/NCAS-CMS/cfdm/issues/81)New class:
cfdm.core.DocstringRewriteMetaComprehensive documentation coverage of class methods.
Improved documentation following JOSS review.
Enabled “creation commands” methods (https://github.com/NCAS-CMS/cfdm/issues/53)
Fixed bug that caused failures when reading or writing a dataset that contains multiple geometry containers (https://github.com/NCAS-CMS/cfdm/issues/65)
Fixed bug that prevented the writing of multiple fields to netCDF when at least one dimension was shared between some of the fields.
Version 1.8.6.0¶
2020-07-24
Removed Python 2.7 support (https://github.com/NCAS-CMS/cfdm/issues/55)
Implemented the reading and writing of netCDF4 group hierarchies for CF-1.8 (https://github.com/NCAS-CMS/cfdm/issues/13)
Renamed to lower-case (but otherwise identical) names all functions which get and set global constants:
cfdm.atol,cfdm.rtol,cfdm.log_level. The old names e.g.cfdm.ATOLremain functional as aliases.New function:
cfdm.configurationNew method:
cfdm.Field.nc_variable_groupsNew method:
cfdm.Field.nc_set_variable_groupsNew method:
cfdm.Field.nc_clear_variable_groupsNew method:
cfdm.Field.nc_group_attributesNew method:
cfdm.Field.nc_set_group_attributeNew method:
cfdm.Field.nc_set_group_attributesNew method:
cfdm.Field.nc_clear_group_attributesNew method:
cfdm.Field.nc_geometry_variable_groupsNew method:
cfdm.Field.nc_set_geometry_variable_groupsNew method:
cfdm.Field.nc_clear_geometry_variable_groupsNew method:
cfdm.DomainAxis.nc_dimension_groupsNew method:
cfdm.DomainAxis.nc_set_dimension_groupsNew method:
cfdm.DomainAxis.nc_clear_dimension_groupsNew method:
cfdm.AuxiliaryCoordinate.del_interior_ringNew keyword parameter to
cfdm.write:groupKeyword parameter
verboseto multiple methods now accepts named strings, not just the equivalent integer levels, to set verbosity.Added test to check that cell bounds have more dimensions than the data.
Added test to check that dimension coordinate construct data is 1-dimensional.
Fixed bug in
cfdm.CompressedArray.to_memory.Fixed bug that caused an error when a coordinate bounds variable is missing from a dataset (https://github.com/NCAS-CMS/cfdm/issues/63)
New dependency:
netcdf_flattener>=1.2.0Changed dependency:
cftime>=1.2.1Removed dependency:
future
Version 1.8.5¶
2020-06-10
Fixed bug that prevented the reading of certain netCDF files, such as those with at least one external variable.
Version 1.8.4¶
2020-06-08
Added new example field
7tocfdm.example_field.Enabled configuration of the extent and nature of informational and warning messages output by
cfdmusing a logging framework (see points below) (https://github.com/NCAS-CMS/cfdm/issues/31)New function
cfdm.LOG_LEVELto set the minimum log level for which messages are displayed globally, i.e. to change the project-wide verbosity (https://github.com/NCAS-CMS/cfdm/issues/35).Changed behaviour and default of
verbosekeyword argument when available to a function/method so it interfaces with the new logging functionality (https://github.com/NCAS-CMS/cfdm/issues/35).Changed dependency:
cftime>=1.1.3Fixed bug the wouldn’t allow the reading of a netCDF file which specifies Conventions other than CF (https://github.com/NCAS-CMS/cfdm/issues/36).
Version 1.8.3¶
2020-04-30
cfdm.Field.apply_maskingnow masks metadata constructs.New method:
cfdm.Field.get_filenamesNew method:
cfdm.Data.get_filenamesNew function:
cfdm.abspathNew keyword parameter to
cfdm.read:warn_valid(https://github.com/NCAS-CMS/cfdm/issues/30)New keyword parameter to
cfdm.write:warn_valid(https://github.com/NCAS-CMS/cfdm/issues/30)
Version 1.8.2¶
2020-04-24
Added time coordinate bounds to the polygon geometry example field
6returned bycfdm.example_field.New method:
cfdm.Field.apply_maskingNew method:
cfdm.Data.apply_maskingNew keyword parameter to
cfdm.read:maskNew keyword parameter to
cfdm.Field.nc_global_attributes:valuesFixed bug in
cfdm.writethat caused (what are effectively) string-valued scalar auxiliary coordinates to not be written to disk as such, or even an exception to be raised.
Version 1.8.1¶
2020-04-16
Improved source code highlighting in links from the documentation (https://github.com/NCAS-CMS/cfdm/issues/21).
Fixed bug that erroneously required netCDF geometry container variables to have a
geometry_dimensionnetCDF attribute.
Version 1.8.0¶
2020-03-23
First release for CF-1.8 (does not include netCDF hierarchical groups functionality).
Implementation of simple geometries for CF-1.8 (https://github.com/NCAS-CMS/cfdm/issues/11).
Implementing of string data-types for CF-1.8 (https://github.com/NCAS-CMS/cfdm/issues/12).
New function:
cfdm.example_field(https://github.com/NCAS-CMS/cfdm/issues/18)New attributes:
cfdm.Field.dtype,cfdm.Field.ndim,cfdm.Field.shape,cfdm.Field.sizeNew method:
cfdm.Data.anyNew
pathskeyword parameter tocfdm.environmentChanged dependency:
netCDF4>=1.5.3Changed dependency:
cftime>=1.1.1Fixed bug that prevented the writing of
'NETCDF3_64BIT_OFFSET'and'NETCDF3_64BIT_DATA'format files (https://github.com/NCAS-CMS/cfdm/issues/9).Fixed bug that caused a failure when a “_FillValue” or “missing_value” property is set and data type conversions are specified with the
datatypekeyword tocfdm.write(https://github.com/NCAS-CMS/cfdm/issues/16).Fixed bug whereby
cfdm.Field.has_constructwould try to delete the construct rather than check whether it existed.
Version 1.7.11¶
2019-11-27
New methods:
cfdm.Field.compress,cfdm.Field.uncompressNew methods:
cfdm.Data.flatten,cfdm.Data.uncompressNew
dtypeandmaskkeyword parameters tocfdm.DataChanged the default value of the
ignore_compressionparameter toTrue.
Version 1.7.10¶
2019-11-14
New method:
cfdm.Field.nc_set_global_attributes.Fixed bug relating to the reading of some CDL files (https://github.com/NCAS-CMS/cfdm/issues/5).
Fixed bug relating numpy warning when printing a field with masked reference time values (https://github.com/NCAS-CMS/cfdm/issues/8).
Version 1.7.9¶
2019-11-07
Fixed bug relating to setting of parameters on datum and coordinate conversion objects of coordinate conversion constructs (https://github.com/NCAS-CMS/cfdm/issues/6).
Version 1.7.8¶
2019-10-04
During writing to netCDF files, ensured that _FillValue and missing_value have the same data type as the data.
Fixed bug during construct equality testing that didn’t recognise equal cell method constructs in transposed, but otherwise equal field constructs.
Bounds netCDF dimension name is now saved, and can be set. The saved/set value is written out to disk.
Now reads CDL files (https://github.com/NCAS-CMS/cfdm/issues/5)
Version 1.7.7¶
2019-06-13
Don’t set the fill mode for a
netCDF4.Datasetopen for writing tooff, to prevent incorrect reading of some netCDF4 files (https://github.com/NCAS-CMS/cfdm/issues/4).Updated documentation
Version 1.7.6¶
2019-06-05
Added attributes
_ATOLand_RTOLto facilitate subclassing.Fixed bug in
cfdm.Field.convert.Fixed bug in
cfdm.core.constructs.new_identifier.
Version 1.7.5¶
2019-05-15
Version 1.7.4¶
2019-05-14
Changed behaviour of
cfdm.Constructs.filter_by_axis.New methods:
cfdm.Data.has_units,cfdm.Data.has_calendar,cfdm.Data.has_fill_value.New
constructskeyword parameter toField.transpose.Keyword parameter
axestocfdm.Field.set_datais now optional.Added the ‘has_bounds’ method to constructs that have data but can’t have bounds.
New methods:
cfdm.DomainAxis.nc_is_unlimited,cfdm.DomainAxis.nc_set_unlimited.Made Data a virtual subclass of Array.
Deprecated methods:
cfdm.Field.nc_unlimited,cfdm.Field.nc_clear_unlimited,cfdm.Field.nc_clear_unlimited.Fixed bug when writing new horizontal coordinate reference for the vertical datum.
Fixed bug in
del_datamethods.Fixed bug with in-place operations.
Fixed bug with position in some
insert_dimensionmethods.Fixed bug that sometimes made duplicate netCDF dimensions when writing to a file.
Added _shape keyword to
cfdm.Field.set_data_axesto allow the data shape to be checked prior to insertion.Added the ‘_custom’ attribute to facilitate subclassing.
New class
cfdm.mixin.NetCDFUnlimitedDimensionreplacescfdm.mixin.NetCDFUnlimitedDimensions, which is deprecated.New method
cfdm.CFDMImplementation.nc_is_unlimited_axisreplacescfdm.CFDMImplementation.nc_get_unlimited_axes, which is deprecated.New method
cfdm.CFDMImplementation.nc_set_unlimited_axisreplacescfdm.CFDMImplementation.nc_set_unlimited_dimensions, which is deprecated.
Version 1.7.3¶
2019-04-24
New method:
cfdm.Constructs.filter_by_size.New method:
cfdm.Data.uncompress.Changed the default behaviours of the
cfdm.Construct.filter_by_axis,cfdm.Construct.filter_by_size,cfdm.Construct.filter_by_naxes,cfdm.Construct.filter_by_property,cfdm.Construct.filter_by_ncvar,cfdm.Construct.filter_by_ncdim,cfdm.Construct.filter_by_method,cfdm.Construct.filter_by_measuremethods in the case when no arguments are provided: Now returns all possible constructs that could have the feature, with any values.Renamed the “underlying_array” methods to “source”
Added _field_data_axes attribute to
Constructsinstances.Added _units and _fill_value arguments to get_data method.
Moved contents of cfdm/read_write/constants.py to
NetCDFReadandNetCDFWrite.Fixed bug in
cfdm.CoordinateReference.clear_coordinates.Fixed bug in
cfdm.Field.convert(which omitted domain ancillaries in the result).Added
kwargsparameter tocfdm.CFDMImplementation.initialise_Data, to facilitate subclassing.Added
NetCDFRead._customize_read_varsto facilitate subclassing.Added
NetCDFWrite._transform_stringsto facilitate subclassing.
Version 1.7.2¶
2019-04-05
New
modeparameter options tocfdm.Constructs.filter_by_axis:'exact','subset','superset'.Enabled setting of HDF5 chunksizes.
Fixed bug that caused coordinate bounds to be not sliced during subspacing (https://github.com/NCAS-CMS/cfdm/issues/1).
Version 1.7.1¶
2019-04-02
New methods
cfdm.Constructs.clear_filters_applied,cfdm.Constructs.filter_by_naxes.Changed behaviour of
cfdm.Constructs.unfilterandcfdm.Constructs.inverse_filters: added depth keyword and changed default.
Version 1.7.0¶
2019-04-02
First release for CF-1.7