Changes between Version 8 and Version 9 of DataModel1.5Draft
 Timestamp:
 04/02/13 10:43:37 (6 years ago)
Legend:
 Unmodified
 Added
 Removed
 Modified

DataModel1.5Draft
v8 v9 21 21 = Constructs, Types = 22 22 23 These construct names have been agreed in principle and the detail of their specification is being worked upon.24 23 25 == = Field ===24 == Field == 26 25 27 The Field is the atomic unit within the CF data model. Fields are independent entities containing data and metadata.26 The 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 spatiotemporal and other coordinates) and other metadata. This data model makes a central assumption that each Field is independent. 28 27 29 The Field defines a domain and one phenomenon described over that domain. It contains a multidimensional 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 multidimensional array of data values, which may include missing data, and the metadata which define the domain.'' 30 29 31 === Coordinate === 30 Each Field may contain the following, all of which are optional. 32 31 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.'' 34 35 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 36 40 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. 38 43 39 Coordinates are onedimensional and strictly monotonic.44 * A cell_measures collection of !CellMeasure instances. 40 45 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.'' 42 48 43 A Field may contain !AuxiliaryCoordinates referenced by domain_axes of the Field. 49 * A collection of Transform constructs 44 50 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 CFnetCDF attributes are properties in this sense.'' 46 53 47 !AuxiliaryCoordinates may be multidimensional and not definitively sortable. 54 * ''A list of ancillary fields (corresponding to the CFnetCDF ancillary_variables attribute, which identifies other data variables that provide metadata). '' 48 55 49 !AuxiliaryCoordinates further describe the Field's domain. 56 Collectively, 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. 50 57 51 == = !CellMeasure ===58 == !DomainAxis == 52 59 53 A Field may contain !CellMeasure referenced by domain_axes of the Field.60 A !DomainAxis declares a degree of freedom of the field. It must contain 54 61 55 A Field may contain many !CellMeasure per domain_axes of the Field. 62 A size: a postive integer greater than zero 56 63 57 !CellMeasures may be multidimensional and not definitively sortable. 64 == !DimCoord == 58 65 59 !CellMeasures quantify aspects of the Field's domain (where this is not derivable) 66 A !DimCoords instance must contain: 60 67 61 === !CellMethod === 68 * A onedimensional 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 nonmissing values, and they must be strictly monotonic: increasing or decreasing. 71 * !DimCoord instances cannot have stringvalued coordinates. 62 72 63 A !CellMethod defines a process the data has undergone, qualifying the definition of the Field's phenomenon. 73 and may contain: 64 74 65 A !CellMethod may contain a !CellMethod, forming an ordered list of !CellMethods. 75 * A twodimensional numerical boundary array, whose slowvarying dimension (first in CDL, second in Fortran) equals the size specified by the referencing !DomainAxis, and whose fastvarying 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.'' 66 78 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. '' 68 81 69 A Transform defines a process which produces a defined result from a set of metadata inputs: Coordinates, !AuxiliaryCoordinates, !CellMeasures.70 82 71 e.g. A pair of !AuxiliaryCoordinates: latitude and longitude, from a projected spatial coordinate pair. 83 == !AuxCoord == 72 84 73 74 ==== Notes ==== 85 An !AuxCoord must contain: 75 86 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^ 77 91 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. 92 and may also contain 79 93 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. '' 81 98 82 99 83 100 84 === Domain Axis ===85 101 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 === 89 103 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 ==== 95 105 96 106 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. 97 107 98 E.g. a Field may have One or Zero Coordinates for each domain_axes of the Field.108 E.g. a Field may define One or Zero dimension_coordinates (!DimCoord instances) for each !DomainAxis of the Field.