Changes between Version 8 and Version 9 of DataModel1.5Draft


Ignore:
Timestamp:
04/02/13 10:43:37 (6 years ago)
Author:
markh
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DataModel1.5Draft

    v8 v9  
    2121= Constructs, Types =
    2222
    23 These construct names have been agreed in principle and the detail of their specification is being worked upon.
    2423
    25 === Field ===
     24== Field ==
    2625
    27 The Field is the atomic unit within the CF data model.  Fields are independent entities containing data and metadata.
     26The central concept of the data model is a Field. A Field corresponds to exactly one data array together with associated information about the domain and sampling in which the data resides (defined by spatio-temporal and other coordinates) and other metadata. This data model makes a central assumption that each Field is independent.
    2827
    29 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.
     28''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.''
    3029
    31 === Coordinate ===
     30Each Field may contain the following, all of which are optional.
    3231
    33 A Field may contain one or zero Coordinates per domain_axis of the Field, these are the Fields dimension_coordinates.
     32 * An ordered list of !DomainAxis instances.
     33 * A data array whose shape is determined by the domain axes in the order listed, optionally omitting any domain axes of size one.
     34  * ''(It is possible to omit domain axes of size one because their position in the order of domain axes makes no difference to the order of data elements in the array.) If there are no domain axes of greater size than one, the single datum may be a scalar instead of an array. If the data array has more than one element, they must all be of the same data type, which may be numeric, character or string.''
    3435
    35 These Coordinate defines the meaning of a domain_axis for the Fields domain.
     36 * A dimension_coords collection of !DimCoord instances:
     37  * A dimension coord member provides physical coordinates to define and locate the cells at unique positions along a single !DomainAxis.
     38  * Each member is referenced by the Field using a qualified association, exclusively mediated by one !DomainAxis instance;
     39   * i.e. a !DomainAxis may reference one or zero !DimCoords as a member of the Field's dimension_coords
    3640
    37 A Coordinate defines a phenomenon and data values for nominal points.  Optionally bounds may be defined.
     41 * An auxiliary_coords collection of !AuxCoord and !DimCoord instances.
     42  * An auxiliary coord provides physical coordinates to locate the cells along one or more !DomainAxis instances.
    3843
    39 Coordinates are one-dimensional and strictly monotonic.
     44 * A cell_measures collection of !CellMeasure instances.
    4045
    41 === !AuxiliaryCoordinate ===
     46 * ''A cell methods construct, which refers to the domain axes (but not their sizes).''
     47 * ''A cell_methods container of !CellMethod instances referencing elements of the dimension_coords collection.''
    4248
    43 A Field may contain !AuxiliaryCoordinates referenced by domain_axes of the Field.
     49 * A collection of Transform constructs
    4450
    45 A Field may contain many !AuxiliaryCoordinates per domain_axis of the Field.
     51 * ''Attributes: key:value pairs which serve to describe the data the field contains.''
     52 * ''Other properties, which are metadata that do not refer to the domain axes, and serve to describe the data the field contains. Properties may be of any data type (numeric, character or string) and can be scalars or arrays. These properties correspond to attributes in the netCDF file, but we use the term "property" instead because not all CF-netCDF attributes are properties in this sense.''
    4653
    47 !AuxiliaryCoordinates may be multi-dimensional and not definitively sortable.
     54 * ''A list of ancillary fields (corresponding to the CF-netCDF ancillary_variables attribute, which identifies other data variables that provide metadata). ''
    4855
    49 !AuxiliaryCoordinates further describe the Field's domain.
     56Collectively, the domain_axes, dimension_coordinates, auxiliary_coordinates, cell_measures and cell_methods describe the domain and sampling in which the data resides. Thus a Field can be regarded as a domain with data in that domain.
    5057
    51 === !CellMeasure ===
     58== !DomainAxis ==
    5259
    53 A Field may contain !CellMeasure referenced by domain_axes of the Field.
     60A !DomainAxis declares a degree of freedom of the field. It must contain
    5461
    55 A Field may contain many !CellMeasure per domain_axes of the Field.
     62    A size: a postive integer greater than zero
    5663
    57 !CellMeasures may be multi-dimensional and not definitively sortable.
     64== !DimCoord ==
    5865
    59 !CellMeasures quantify aspects of the Field's domain (where this is not derivable)
     66A !DimCoords instance must contain:
    6067
    61 === !CellMethod ===
     68 * A one-dimensional numerical coordinate array of the size specified by a referencing !DomainAxis.
     69  * ''If the size is one, the single coordinate value may be a scalar instead of an array.''
     70  * If the size is greater than one, the elements of the coordinate array must all be of the same numeric data type, they must all have different non-missing values, and they must be strictly monotonic: increasing or decreasing.
     71  * !DimCoord instances cannot have string-valued coordinates.
    6272
    63 A !CellMethod defines a process the data has undergone, qualifying the definition of the Field's phenomenon.
     73and may contain:
    6474
    65 A !CellMethod may contain a !CellMethod, forming an ordered list of !CellMethods.
     75 * A two-dimensional numerical boundary array, whose slow-varying dimension (first in CDL, second in Fortran) equals the size specified by the referencing !DomainAxis, and whose fast-varying dimension is two indicating the extent of the cell.
     76  * For climatological time dimensions, the bounds are interpreted in a special way indicated by the cell methods.
     77  * ''Sometimes the bounds are the important information for locating the cell, and the coordinates are notional, especially for extensive quantities.''
    6678
    67 === Transform ===
     79 * ''Attributes: key:value pairs, describing the !DimCoord instance definition''
     80 * ''Properties (in the same sense as for the field construct) serving to describe the coordinates. ''
    6881
    69 A Transform defines a process which produces a defined result from a set of metadata inputs: Coordinates, !AuxiliaryCoordinates, !CellMeasures.
    7082
    71 e.g. A pair of !AuxiliaryCoordinates: latitude and longitude, from a projected spatial coordinate pair.
     83== !AuxCoord ==
    7284
    73  
    74 ==== Notes ====
     85An !AuxCoord must contain:
    7586
    76 Wherever it is used for a Type, 'attributes' is a collection of key:value pairs.
     87 * A coordinate array whose shape is determined by the referencing !DomainAxes in the order listed
     88  * ''optionally omitting any domain axes of size one. If all domain axes are of size one, the single coordinate value may be a scalar instead of an array.''
     89  * If the array has more than one element, they must all be of the same data type (numeric, character or string), but they do not have to be distinct or monotonic.
     90  * ''Missing values are not allowed (in CF version 1.5).'' ^i thought they were^
    7791
    78 Particular keys are banned from use for each type, as a particular implementation (NetCDF) has used them for referencing between variables.  As such the specified attribute keys may not be used to provide semantic meaning to a Type. 
     92and may also contain
    7993
    80 == Potential Constructs: Under Discussion ==
     94 * A boundary array with all the dimensions, in the same order, as the coordinate array, and an additional dimension (following the coordinate array dimensions in CDL, preceding them in Fortran) equal to the number of vertices of each cell.
     95
     96 * ''Attributes: key:value pairs, describing the !AuxCoord instance definition''
     97 * ''Properties (in the same sense as for the field construct) serving to describe the coordinates. ''
    8198
    8299
    83100
    84 === Domain Axis ===
    85101
    86 === !CoordinateReferenceSystem ===
    87  
    88 This construct defines a the system which a coordinate is defined with respect to.  It is part of the definition of a coordinate.
     102=== Notes ===
    89103
    90 It is proposed to be shelved until CF 1.7, consistent with teh development of CF for NetCDF.
    91 
    92 == Notes ==
    93 
    94 === Qualified Associations ===
     104==== Qualified Associations ====
    95105
    96106The 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.
    97107
    98 E.g. a Field may have One or Zero Coordinates for each domain_axes of the Field.
     108E.g. a Field may define One or Zero dimension_coordinates (!DimCoord instances) for each !DomainAxis of the Field.