Releases: NCAS-CMS/cfdm
Releases · NCAS-CMS/cfdm
1.13.1.0
2026-04-09
- Read Kerchunk datasets with
cfdm.read(#385) - Read open file handle datasets with
cfdm.read(#401) - Write UGRID datasets with
cfdm.write(#271) - New keyword to
cfdm.read:filesystem(#397) - New keyword parameter to
cfdm.Data.compute:persist(#389) - New function to control the persistence of computed data:
cfdm.persist_data(#389) - Support for HEALPix grids (#370)
- New default backend for netCDF-4 in
cfdm.write:h5netcdf-h5py, that allows control of the internal file metadata via the newh5py_optionsparameter (#386) - New default backend for netCDF-4 in
cfdm.readthat allows parallel reading:h5netcdf-pyfive(#375) - New optional backend for netCDF-3 in
cfdm.readthat allows parallel reading:netcdf_file(#375) - Fix bug in
cfdm.netcdf_indexerthat sometimes caused a failure with anp.newaxisindex (#395) - Fix bug in
cfdm.readthat wouldn't read non-Zarr and Zarr datasets from the same directory (#391) - Fix bug in
cfdm.writeto correctly create unlimited aggregation dimensions that correspond to unlimited normal dimensions (#387) - Fix bug in
cfdm.writewhen writing identical coordinates that have differentformula_terms(#380). - New dependency:
pyfive>=1.1.1 - New dependency:
fsspec>=2026.2.0 - Changed dependency:
h5netcdf>=1.8.0 - Removed dependency:
s3fs
What's Changed
- [Superseded by #383] Fix bug in
cfdm.writewhen writing identical coordinates that have different "formula_terms" by @davidhassell in #381 - Fix bug in
cfdm.writewhen writing identical coordinates that have different "formula_terms" by @davidhassell in #383 - Fix aggregation unlimited netCDF dimensions by @davidhassell in #387
- Enable parallel netCDF dataset reads by @davidhassell in #384
- New 'h5netcdf-h5py' netCDF backend in
cfdm.write, and 'h5py_options' parameter by @davidhassell in #388 - Implement HEALPix grids by @davidhassell in #371
- Persist data after computation by @davidhassell in #390
- Fix: Zarr and non-Zarr datasets can't be read from the same directory by @davidhassell in #392
- Add
filesystemkeyword tocfdm.readfor pre-authenticated fsspec backends (part 1) by @Copilot in #393 - Add
filesystemkeyword tocfdm.readfor pre-authenticated fsspec backends (part 2) by @davidhassell in #398 - Fix bug in
cfdm.netcdf_indexerthat sometimes caused a failure with anp.newaxisindex by @davidhassell in #400 - Implementation of UGRID (part 2 of 2): Write by @davidhassell in #372
- Read Kerchunk and file-like object datasets by @davidhassell in #402
New Contributors
- @Copilot made their first contribution in #393
Full Changelog: v1.13.0.0...v1.13.1.0
1.13.0.0
- Write Zarr v3 datasets with
cfdm.write, and allow the reading of grouped Zarr v2 and v3 datasets withcfdm.read(#354) - Read Zarr v2 and v3 datasets that contain a group hierarchy with
cfdm.read(#355) - New function
cfdm.dataset_flattenthat replaces the deprecatedcfdm.netcdf_flatten(#355) - Raise
IndexErrorfor out-of-range indices in a value-setting operation on a data array (#377) - New function to control the creation of cached elements during data display:
cfdm.display_data(#363) - New methods:
cfdm.Data.get_cached_elements,cfdm.Data.cache_elements(#363) - Set cached elements during
cfdm.Data.__init__(#363) - Removed the
cfdm.constants.CONSTANTSdictionary, replacing it withcfdm.ConstantAccess.constants(#361) - Reduce the time taken to import
cfdm(#361) - New optional dependency:
zarr>=3.1.3 - Removed dependency (now optional):
zarr>=3.0.8
What's Changed
- Reduce the time taken to import
cfdmby @davidhassell in #362 - Zarr write + Zarr groups by @davidhassell in #368
- Control setting and display of cached data elements by @davidhassell in #376
- Detect out-of-range integer indices in
__setitem__operations by @sadielbartholomew in #378
Full Changelog: v1.12.3.1...v1.13.0.0
1.12.3.1
2025-10-15
- Python 3.9 support removed (#353)
- When changing array data type, retain cached data elements cast to the new type (#358)
- Fix bug that prevented
cfdm.readfrom reading a file with#characters in its file name (#356) - Changed dependency:
Python>=3.10.0
What's Changed
- Allow
#in file names by @davidhassell in #357 - Retain cached data array values when changing dtype by @davidhassell in #359
- Remove support for Python 3.9 (EOL) by @davidhassell in #360
Full Changelog: v1.12.3.0...v1.12.3.1
1.12.3.0
1.12.2.0
2025-06-05
- Implement lossy compression via quantization (#330)
- New quantization classes:
cfdm.Quantization,cfdm.mixin.QuantizationMixin(#330) - New quantization methods:
cfdm.Field.get_quantization,cfdm.Field.get_quantize_on_write,cfdm.Field.set_quantize_on_write,cfdm.Field.del_quantize_on_write(#330) - Improve performance in
cfdm.readby caching any array values retrieved from disk (#313) - New keyword parameter to
cfdm.write:chunk_cache(#328) - Read Zarr datasets with
cfdm.read(#335) - Read multiple datasets simultaneously with
cfdm.read(#336) - New keyword parameters to
cfdm.read:recursive,followlinks(#336) - New keyword parameters to
cfdm.read:cdl_string(#337) - Update CF aggregation keywords (#341)
- Set new minimum version of
dask:2025.5.1(#339) - New dependency:
zarr>=3.0.8 - Changed dependency:
dask>=2025.5.1
1.12.1.0
2025-04-01
- Set new method
cfdm.Array.astype(#331) - Set new maximum version of
dask:2025.3.0(#332) - Changed dependency:
dask>=2025.2.0,<=2025.3.0
What's Changed
- Add
astypemethod onArraysubclasses. Pin Dask. by @davidhassell in #333
Full Changelog: v1.12.0.0...v1.12.1.0
1.12.0.0
2025-03-18
- Set new minimum version of
dask:2025.2.0(#321) - Set new minimum version of
numpy:2.0.0(#318) - Introduction of reading and writing of aggregation datasets (for CF-1.13) (#319)
- Changed dependency:
Python>=3.9.0 - Changed dependency:
numpy>=2.0.0 - Changed dependency:
netCDF4>=1.7.2 - Changed dependency:
cftime>=1.6.4 - Changed dependency:
dask>=2025.2.0
What's Changed
- Prevent read error for datasets including badly-encoded UGRID meshes by @sadielbartholomew in #316
- Introduction of aggregation datasets by @davidhassell in #320
- Add missing docstrings by @davidhassell in #322
- Move to numpy version 2 by @davidhassell in #323
- Allow dask>2024.7.1 by @davidhassell in #326
- Add missing docs by @davidhassell in #327
Full Changelog: v1.11.2.1...v1.12.0.0
1.11.2.1
2025-02-26
- Re-introduction of
cfdm.Data.datetime_as_string(#324)
What's Changed
- Reinstate cfdm.Data.datetime_as_string by @davidhassell in #324
Full Changelog: v1.11.2.0...v1.11.2.1
1.11.2.0
2025-01-28
- Introduction of
daskfor all data manipulations (#317) - Fix bug that returned incorrect results when an invalid identifer is provided to
cf.Field.cell_methods(#299) - Upgrades to allow cfdm to work with Python 3.12 (#302)
- Extension to the HDF5 chunks API (#309)
- New function
cfdm.netcdf_flattenerthat replaces the import ofnetcdf_flattener(#286) - New function
cfdm.netcdf_indexerthat applies netCDF masking and unpacking to arbitrary arrays (#285) - Allow access to netCDF-4 files in S3 object stores (#285)
- Allow a choice of netCDF engines (#285)
- Fix bug that caused
cfdm.writeto fail when a parametric Z dimension coordinate did not have acomputed_standard_nameattribute (#303) - New class
cfdm.H5netcdfArray - New class
cfdm.NetCDF4Array - Changed dependency:
numpy>=1.15,<2.0 - New dependency:
h5netcdf>=1.3.0 - New dependency:
h5py>=3.10.0 - New dependency:
s3fs>=2024.6.0 - New dependency:
dask>=2024.6.0,<=2024.7.1 - Removed dependency:
netcdf_flattener
What's Changed
- Python 3.12 compatability by @davidhassell in #292
- Update linting package versions for Python 3.12 by @davidhassell in #306
- Fix
cfdm.writewhen a parametric Z dimension coordinate does not have a compute_standard_name attribute by @davidhassell in #304 - h5netcdf read by @davidhassell in #307
- Extension to the HDF5 chunks API by @davidhassell in #310
- Fix bug that returned incorrect results when an invalid identifer is provided to
cf.Field.cell_methodsby @davidhassell in #300 - Introduction of Dask for all data manipulations by @davidhassell in #312
Full Changelog: v1.11.1.0...v1.11.2.0