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 Unidata. Send comments to THREDDS support. Last updated: February 2012