Version 5 (modified by markh, 6 years ago) (diff)


Draft of the CF Data Model 1.5

This page is the working draft of the CF data model for CF 1.5, under the terms of reference of ticket 88. The original discussion in ticket 68 have been closed and a new ticket opened to move adapt this draft model to a community accepted model.

UML Sketch

This sketch represents the model in its draft state, illustrating the relationships between types.

Controlled Vocabularies


Where a type has an attribute of 'standard_name' its value must be taken from the list of standard names

Constructs, Types

These construct names have been agreed in principle and the detail of their specification is being worked upon.


The Field is the atomic unit within the CF data model. Fields are independent entities containing data and metadata.

The Field defines a domain and one phenomenon described over that domain. It contains a multi-dimensional array of data values, which may include missing data, and the metadata which define the domain.


A Field may contain one or zero Coordinates per domain_axis of the Field.

The Coordinate defines a phenomenon and data values for nominal points. Optionally bounds may be defined.

The Coordinate defines the meaning of a domain_axis for the Fields domain.

Coordinates are one-dimensional and strictly monotonic.


A Field may contain AuxiliaryCoordinates referenced by domain_axes of the Field.

A Field may contain many AuxiliaryCoordinates per domain_axis of the Field.

AuxiliaryCoordinates may be multi-dimensional and not definitively sortable.

AuxiliaryCoordinates further describe the Field's domain.


A Field may contain CellMeasure referenced by domain_axes of the Field.

A Field may contain many CellMeasure per domain_axes of the Field.

CellMeasures may be multi-dimensional and not definitively sortable.

CellMeasures quantify aspects of the Field's domain (where this is not derivable)


A CellMethod defines a process the data has undergone, qualifying the definition of the Field's phenomenon.

A CellMethod may contain a CellMethod, forming an ordered list of CellMethods.


A Transform defines a process which produces a defined result from a set of metadata inputs: Coordinates, AuxiliaryCoordinates, CellMeasures.

e.g. A pair of AuxiliaryCoordinates: latitude and longitude, from a projected spatial coordinate pair.


Wherever it is used for a Type, 'attributes' is a collection of key:value pairs: particular keys are banned from use for each type

Potential Constructs: Under Discussion

Domain Axis



Qualified Associations

The associations between the Field and its Coordinates and CellMeasures are qualified associations. These are UML concepts which denote a managed association without mandating how this association is managed; only the constraints of the relationship are detailed.

E.g. a Field may have One or Zero Coordinates for each domain_axes of the Field.

Attachments (1)

Download all attachments as: .zip