Differences between CDM and CF
CF is a metadata standard for netCDF files. CDM is a data model for many differerent data formats, which generally conforms to CF whenever the two overlap. This documents the differences in metadata interpretation.
Coordinate Systems
Units of false_easting and false_northing
- CF: false_easting, and false_northing attribute values must be in the same units as the x and y projection coordinates.
- CDM: the attribute "units" may be specified on the dummy Coordinate Transform Variable, which overrides the x/y coordinate units. This is needed when the projection does not have access to the x/y coordinates.
Required use of Lat/Lon Coordinates
- CF: requires that all files include latitude and longitude coordinates.
- CDM: When the data are on a projection, this requirement implies that 2 dimension lat(y,x) and lon(y,x) must be included in the file. When the 1D x(x) and y(y) coordinates are also included, along with a standard grid_mapping that specifies the projection, the CDM uses the projection for the Coordinate System layer, and not the lat, lon variables. In some circumstances, for example in extracting a single variable into a seperate file, including the 2D lat(y,x) and lon(y,x) variables can triple the size of the file. CDM therefore allows a user to create an "almost-CF compliant" file without the 2D lat(y,x) and lon(y,x) variables. Generally the user also has an option to include these variables when strict compliance is needed.
Calendar Date Coordinates
- CF: Variables representing time must always explicitly include the units attribute. The units attribute takes a string value formatted as per the recommendations in the Udunits package [UDUNITS] This implies that a time coordinate always has a numeric data type, and uses udunits to transform "value time_unit since reference" into a date.
- CDM:
See CDM Calendar Dates for details.
- Also accepts time coordinates as ISO formatted Strings. The variable data type may be String or Char.
- As of CDM 4.3, joda time is used to parse time units, instead of udunits. This allows the CDM to process the CF 'calendar' attribute.
- An extended date syntax is also supported : "CALENDAR period SINCE reference_date"
- Default calendar: for udunits, and therefore for CF, the default calendar is gregorian ("Mixed Gregorian/Julian calendar"). For CDM, the default calendar is proleptic_gregorian (ISO8601 standard). This only matters for dates before 1582.
Discrete Sampling Geometries
- CF: Convention for Discrete Sampling Geometries (aka "point data") were added to CF version 1.6.
- CDM: the implementation has some differences, described here.
This document is maintained by John Caron and was last updated February 2012