Software that “Understands” CF Data

This page lists software packages that “understand” CF Data. If you have any additions or corrections for this page, please submit an issue on the CF Website GitHub repo (see the Contributing Guide for more details).

The description of each software package should give some indication of the level of support for CF.

CF Compliance Checkers

cf-checker - Python Tool for Compliance Checking

The cf-checker is a python tool to check compliance of netCDF files against the CF Conventions. It can be run as a command-line tool, via a web interface (available at NCAS and CEDA) or imported as a python library. The cf-checker verifies conformance according to the requirements and recommendations laid out in the CF Conformance Document. It is possible to check conformance against any CF version.

IOOS Compliance Checker

The IOOS Compliance Checker is a python based tool for data providers to check for completeness and community standard compliance of local or remote netCDF files against CF, ACDD, and IOOS Metadata Profile file standards. The Compliance Checker can be used as a command-line tool or as a library that can be integrated into other software.

The Compliance Checker also includes a web-based version that enables a broader audience and improve accessibility for the checker. With the web version, providers can simply provide a link or upload their datasets and get the full suite of capabilities that Compliance Checker offers.

Free and Open Source Software Packages

cfdm - Python CF Data Model Package

The cfdm Python package implements the CF data model for its internal data structures and so is able to process any CF-compliant dataset. It is not strict about CF-compliance, however, so that partially conformant datasets may be ingested from existing datasets and written to new datasets. This is so that datasets which are partially conformant may nonetheless be modified in memory.

cf-python - CF Python Package

The Python cf package, “cf-python”, is an Earth Science data analysis library. It is built on cfdm and implements the CF data model for its internal data structures so is able to process any CF-compliant dataset. It can read, write and inspect field constructs and manipulate the data and metadata therein by means of statistical operations, collapsing, subspacing, regridding and more. Field constructs from cf can also be visualised with the cf-plot package.

cf-plot - CF Python Plotting package

cf-plot is a set of Python functions for making common contour, vector and line plots that climate researchers use. cf-plot generally uses cf-python to present the data and CF attributes for plotting. It can also use numpy arrays of data as the input fields making for flexible plotting of data. cf-plot uses the Python numpy, matplotlib and scipy libraries.

cf-view - CF Python Quick Look Visualization Package

The cf-view Python package is a quick look data exploration tool for netCDF and Met Office PP data. It uses the cf-python and cf-plot packages and reads and writes CF-compliant dataset.

Iris - Python library for analysing and visualising Earth science data

Iris implements a data model based on the CF Conventions giving you a powerful, format-agnostic interface for working with your data. It excels when working with multi-dimensional Earth Science data, where tabular representations become unwieldy and inefficient.

CF Standard names, units, and coordinate metadata are built into Iris, giving you a rich and expressive interface for maintaining an accurate representation of your data.

netCDF Operators (NCO)

The netCDF Operators toolkit manipulates and analyzes data stored in netCDF-accessible formats, including DAP, HDF4, HDF5, and, most recently, Zarr. NCO exploits the geophysical expressivity and logic of many CF (Climate & Forecast) metadata conventions including support for UDUNITS, for the attributes Conventions, history, scale_factor, add_offset, coordinates, cell_methods, and cell_measures, for hierarchical datasets, and for auxiliary coordinates. See the documentation for a full description.

netCDF Flattener - Flatten netCDF files

The netCDF Flattener Python package takes netCDF objects that use groups and flattens them while preserving references as described in the Groups section of the CF Conventions. The resulting object is logically equivalent to the original, and can be processed by software that isn’t able to work with files that use netCDF-4 groups.

netCDF-Java Library

The netCDF Java library provides an interface for scientific data access. It can be used to read scientific data from a variety of file formats including netCDF, HDF, GRIB, BUFR, and many others, as well as a variety of remote data access protocols. It implements the Unidata Common Data Model which uses CF and other metadata conventions in its Coordinate System and Scientific Feature Type layers. NetCDF-Java can write netCDF-3/4 files that conform to the CF Metadata Conventions.

THREDDS Data Server (TDS)

The THREDDS Data Server (TDS) is a web server that provides metadata and data access for scientific datasets, using OPeNDAP, OGC WMS and WCS, HTTP, and other remote data access protocols. It is also capable of mapping CF metadata to ISO-19115 though the use of ncISO. The TDS can use the NetCDF Markup Language (NcML) to modify datasets in-memory to aid in CF conformance without the need to rewrite the files as stored on disk. The NetCDF Subset Service allows users to subset CF compliant datasets in coordinate space using a REST API. The service returns subsets as CF compliant netCDF-3/4 files, in addition to other formats.

xarray - Python Package for working with n-D labeled arrays

Xarray is a python package designed for working with labelled, multi-dimensional array data, built around the netCDF data model. It uses CF Conventions in several ways, such as encoding / decoding variables and interpreting metadata for visualization.