Metadata-Version: 2.1
Name: cfdm
Version: 1.12.3.0
Summary: A Python reference implementation of the CF data model
Home-page: https://ncas-cms.github.io/cfdm
Download-URL: https://pypi.org/project/cfdm/#files
Author: David Hassell, Sadie Bartholomew
Author-email: david.hassell@ncas.ac.uk
Maintainer: David Hassell, Sadie Bartholomew
License: MIT
Keywords: cf,netcdf,data,science,oceanography,meteorology,climate
Platform: Linux
Platform: MacOS
Platform: Windows
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Topic :: Software Development
Classifier: Topic :: Scientific/Engineering
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.9
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: netCDF4>=1.7.2
Requires-Dist: cftime>=1.6.4
Requires-Dist: numpy>=2.0.0
Requires-Dist: packaging>=20.0
Requires-Dist: scipy>=1.10.0
Requires-Dist: h5netcdf>=1.3.0
Requires-Dist: h5py>=3.12.0
Requires-Dist: s3fs>=2024.6.0
Requires-Dist: dask>=2025.5.1
Requires-Dist: distributed>=2025.5.1
Requires-Dist: uritools>=4.0.3
Requires-Dist: cfunits>=3.3.7
Requires-Dist: zarr>=3.0.8
Provides-Extra: documentation
Requires-Dist: sphinx>=7.0.0; extra == "documentation"
Requires-Dist: sphinx-copybutton; extra == "documentation"
Requires-Dist: sphinx-toggleprompt; extra == "documentation"
Requires-Dist: sphinxcontrib-spelling; extra == "documentation"
Provides-Extra: pre-commit-hooks
Requires-Dist: pre-commit; extra == "pre-commit-hooks"
Requires-Dist: black; extra == "pre-commit-hooks"
Requires-Dist: docformatter; extra == "pre-commit-hooks"
Requires-Dist: flake8; extra == "pre-commit-hooks"
Requires-Dist: pydocstyle; extra == "pre-commit-hooks"

The **cfdm** Python package is a complete reference implementation
of the `CF data model
<https://www.geosci-model-dev.net/10/4619/2017>`_ for CF-1.11, that
identifies the fundamental elements of the `CF conventions
<http://cfconventions.org/>`_ and shows how they relate to each other,
independently of the `netCDF
<https://www.unidata.ucar.edu/software/netcdf/>`_ encoding.

The central element defined by the CF data model is the **field
construct**, which corresponds to a CF-netCDF data variable with all
of its metadata.

A simple example of reading a field construct from a file and
inspecting it:

    >>> import cfdm
    >>> f = cfdm.read('file.nc')
    >>> f
    [<Field: air_temperature(time(12), latitude(64), longitude(128)) K>]
    >>> print(f[0])
    Field: air_temperature (ncvar%tas)
    ----------------------------------
    Data            : air_temperature(time(12), latitude(64), longitude(128)) K
    Cell methods    : time(12): mean (interval: 1.0 month)
    Dimension coords: time(12) = [0450-11-16 00:00:00, ..., 0451-10-16 12:00:00] noleap
                    : latitude(64) = [-87.8638, ..., 87.8638] degrees_north
                    : longitude(128) = [0.0, ..., 357.1875] degrees_east
                    : height(1) = [2.0] m

The **cfdm** package can

* read field and domain constructs from netCDF, CDL, and Zarr datasets with a choice of netCDF backends,
* be fully flexible with respect to dataset storage chunking,
* create new field and domain constructs in memory,
* write and append field and domain constructs to netCDF datasets on disk,
* read, write, and manipulate UGRID mesh topologies,
* read, write, and create coordinates defined by geometry cells,
* read and write netCDF4 string data-type variables,
* read, write, and create netCDF and CDL datasets containing hierarchical groups,
* inspect field and domain constructs,
* test whether two constructs are the same,
* modify field and domain construct metadata and data,
* create subspaces of field and domain constructs,
* incorporate, and create, metadata stored in external files, and
* read, write, and create data that have been compressed by convention
  (i.e. ragged or gathered arrays, or coordinate arrays compressed
  by subsampling), whilst presenting a view of the data in its
  uncompressed form,
* read and write that data that are quantized to eliminate false
  precision.

Documentation
=============

https://ncas-cms.github.io/cfdm

Dask
====

From version 1.11.2.0 the `cfdm` package uses `Dask
<https://docs.dask.org>`_ for all of its data manipulations.

Tutorial
========

https://ncas-cms.github.io/cfdm/tutorial

Installation
============

https://ncas-cms.github.io/cfdm/installation

Command line utility
====================

During installation the `cfdump` command line tool is also installed,
which generates text descriptions of the field constructs contained
in a netCDF dataset.

Source code
===========

This project is hosted in a `GitHub repository
<https://github.com/NCAS-CMS/cfdm>`_ where you can access the most
up-to-date source.
