Open Geospatial Consortium Approval Date: 2012-12-17 Publication Date: 2013-01-03 External OGC identifier: http://www.opengis.net/doc/is/netcdf-data-model-extension/1.0 Reference number of this document: OGC 11-165r2 Version: 3.1 Category: OpenGIS® Standard Editors: Ben Domenico and Stefano Nativi
CF-netCDF3 Data Model Extension standard Copyright © 2013 Open Geospatial Consortium Copyright © 2013 Open Geospatial Consortium To obtain additional rights of use, visit http://www.opengeospatial.org/legal/.
Warning This document is an OGC Member approved international standard. This document is available on a royalty free, non-discriminatory basis. Recipients of this document are invited to submit, with their comments, notification of any relevant patent rights of which they are aware and to provide supporting documentation.
Document type: Document subtype: Document stage: Document language :
OGC® Implementation Standard Encoding Approved for Public Release English
OGC 11-165r2
License Agreement Permission is hereby granted by the Open Geospatial Consortium, ("Licensor"), free of charge and subject to the terms set forth below, to any person obtaining a copy of this Intellectual Property and any associated documentation, to deal in the Intellectual Property without restriction (except as set forth below), including without limitation the rights to implement, use, copy, modify, merge, publish, distribute, and/or sublicense copies of the Intellectual Property, and to permit persons to whom the Intellectual Property is furnished to do so, provided that all copyright notices on the intellectual property are retained intact and that each person to whom the Intellectual Property is furnished agrees to the terms of this Agreement. If you modify the Intellectual Property, all copies of the modified Intellectual Property must include, in addition to the above copyright notice, a notice that the Intellectual Property includes modifications that have not been approved or adopted by LICENSOR. THIS LICENSE IS A COPYRIGHT LICENSE ONLY, AND DOES NOT CONVEY ANY RIGHTS UNDER ANY PATENTS THAT MAY BE IN FORCE ANYWHERE IN THE WORLD. THE INTELLECTUAL PROPERTY IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE DO NOT WARRANT THAT THE FUNCTIONS CONTAINED IN THE INTELLECTUAL PROPERTY WILL MEET YOUR REQUIREMENTS OR THAT THE OPERATION OF THE INTELLECTUAL PROPERTY WILL BE UNINTERRUPTED OR ERROR FREE. ANY USE OF THE INTELLECTUAL PROPERTY SHALL BE MADE ENTIRELY AT THE USER’S OWN RISK. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR ANY CONTRIBUTOR OF INTELLECTUAL PROPERTY RIGHTS TO THE INTELLECTUAL PROPERTY BE LIABLE FOR ANY CLAIM, OR ANY DIRECT, SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM ANY ALLEGED INFRINGEMENT OR ANY LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR UNDER ANY OTHER LEGAL THEORY, ARISING OUT OF OR IN CONNECTION WITH THE IMPLEMENTATION, USE, COMMERCIALIZATION OR PERFORMANCE OF THIS INTELLECTUAL PROPERTY. This license is effective until terminated. You may terminate it at any time by destroying the Intellectual Property together with all copies in any form. The license will also terminate if you fail to comply with any term or condition of this Agreement. Except as provided in the following sentence, no such termination of this license shall require the termination of any third party end-user sublicense to the Intellectual Property which is in force as of the date of notice of such termination. In addition, should the Intellectual Property, or the operation of the Intellectual Property, infringe, or in LICENSOR’s sole opinion be likely to infringe, any patent, copyright, trademark or other right of a third party, you agree that LICENSOR, in its sole discretion, may terminate this license without any compensation or liability to you, your licensees or any other party. You agree upon termination of any kind to destroy or cause to be destroyed the Intellectual Property together with all copies in any form, whether held by you or by any third party. Except as contained in this notice, the name of LICENSOR or of any other holder of a copyright in all or part of the Intellectual Property shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Intellectual Property without prior written authorization of LICENSOR or such copyright holder. LICENSOR is and shall at all times be the sole entity that may authorize you or any third party to use certification marks, trademarks or other special designations to indicate compliance with any LICENSOR standards or specifications.
ii
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
Contents
Page
i. Abstract ............................................................................................................... xv ii. Keywords ........................................................................................................... xvi iii. Preface ............................................................................................................. xvii iv. Document terms and definitions ..................................................................... xviii v. Submitting organizations .................................................................................... xix vi. Document Contributor Contact Points ................................................................ xx vii. Changes to the OGC Abstract Specification ....................................................... xxi viii.
Future work ................................................................................................... xxii
1 Scope .................................................................................................................... 3 2 Conformance ........................................................................................................ 3 3 Normative references ............................................................................................ 3 4 Terms and definitions ............................................................................................ 4 4.1 CDL syntax .................................................................................................................. 4 4.2 Coverage .................................................................................................................... 4 4.2.1 Data Model ................................................................................................................ 4 4.2.2 Feature ....................................................................................................................... 5 4.2.3 Grid ............................................................................................................................ 5 4.2.4 Multi-‐point coverage ................................................................................................. 5 4.2.5 NetCDF ....................................................................................................................... 5 5 Conventions .......................................................................................................... 5 5.1 Namespace prefix conventions ................................................................................... 5 6 NetCDF Data Model extension .............................................................................. 6 6.1 CF Conventions ........................................................................................................... 6 6.1.1 Introduced Requirements .......................................................................................... 7 7 CF-‐netCDF Data Model .......................................................................................... 9 7.1 Extension packages .................................................................................................... 9 7.2 CF-‐netCDF core extension data model ........................................................................ 9 7.3 “CF-‐netCDF core” requirements class ....................................................................... 12 7.3.1 Structural adherence ............................................................................................... 12 7.3.2 General Conventions ................................................................................................ 12 7.3.3 CF-‐netCDF Variables and Standard Attributes ......................................................... 13 7.3.4 CF-‐netCDF Dimensions and Dimensional Variables ................................................. 14 7.3.5 Units attribute .......................................................................................................... 15 7.3.6 CF-‐NetCDF Coordinate Variables and Coordinate Types ......................................... 15 iii
Copyright © 2013 Open Geospatial Consortium Copyright © 2013
OGC 11-165r2
7.3.7 Well-‐known coordinates .......................................................................................... 17 7.3.8 Auxiliary Coordinate Variable .................................................................................. 21 7.3.9 Scalar Coordinate Variables ..................................................................................... 22 7.3.10 Coordinate Systems ............................................................................................... 23 7.3.11 Grid Cells ................................................................................................................ 25 7.3.12 Cell Boundary Variable ........................................................................................... 25 7.3.13 Cell Measure Variable ............................................................................................ 26 7.4 The Discrete Sampling Geometries extension data model ........................................ 28 7.5 “CF-‐netCDF Discrete Sampling” requirements class .................................................. 30 7.5.1 Structural adherence ............................................................................................... 30 7.5.2 Features and Feature Types ..................................................................................... 30 7.5.3 Collections, instances and elements ........................................................................ 32 7.5.4 Representations of collections of features in data variables ................................... 32 7.5.5 Orthogonal multidimensional array representation ................................................ 33 7.5.6 Incomplete multidimensional array representation ................................................ 33 7.5.7 Contiguous ragged array representation ................................................................. 33 7.5.8 Indexed ragged array representation ...................................................................... 34 7.5.9 FeatureType attribute .............................................................................................. 35 7.5.10 Coordinates and metadata .................................................................................... 35 7.5.11 Missing Data .......................................................................................................... 36 7.5.12 Examples ................................................................................................................ 36
8 CF-‐netCDF Mapping to ISO Coverage Model ......................................................... 37 8.1 ISO Coverages and Grid Coverages ........................................................................... 37 8.2 Dimensionality Challenges ........................................................................................ 37 8.3 CF-‐netCDF model mapping to ISO Coverage types .................................................... 38 8.3.1 CF-‐netCDF and Continuous coverages ..................................................................... 38 8.4 “CF-‐netCDF Mapping onto ISO 19123” requirements class ........................................ 39 8.4.1 Coverage types ......................................................................................................... 39 8.4.2 Mapping rules .......................................................................................................... 42 8.4.3 Coordinate System ................................................................................................... 43 8.4.4 CF Discrete Sampling Geometries ............................................................................ 47 8.4.5 Feature collections ................................................................................................... 48 9 Bibliography ......................................................................................................... 57 Annex A (normative) Abstract test suite .................................................................... 59 A.1 Conformance Test Classes: CF-‐netCDF-‐1.6 ............................................................ 59 A.2 CF-‐netCDF-‐1.6-‐core conformance class ................................................................. 59 A.3 CF-‐netCDF-‐1.6-‐DiscreteSampling conformance class ............................................. 72 A.4 CF-‐netCDF-‐1.6-‐ISOMapping conformance class ..................................................... 77 Annex B Revision History ............................................................................................ 86
iv
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
Figures
Page
Figure 1 - NetCDF core data model [1]
6
Figure 2 - CF-netCDF data model extension packages
9
Figure 3 - CF-netCDF core data model: CF Variable and Standard Attributes
10
Figure 4 - CF-netCDF core data model: CF Coordinate Variables, Coordinate Types, Coordinate Systems, and Grid Cells
11
Figure 5 - Discrete Sampling Geometries data model: context
29
Figure 6 - Discrete Sampling Geometries data model: data representations
30
Figure 7 - CF-netCDF dataset mapping to ISO coverage types
40
Figure 8 - ISO19123:CV_DiscretePointCoverage data model
41
Figure 9 - ISO19123:CV_DiscreteGridPointCoverage data model
42
Figure 10 - CF-netCDF dataset mapping ISO19123:CV_DiscreteCoverage
43
Figure 11 - CF-netCDF Discrete Sampling Geometries mapping ISO19123: DiscreteCoverage
47
Tables
Page
Table 1. CF elements overruled from optional to mandatory ............................................. 7 Table 2. Mandatory dimensions for Feature Type ............................................................ 31 Table 3. Summary of relationships between CF-netCDF3 and CV_DiscreteGridPointCoverage models: main packages.......................................... 49 Table 4. Summary of relationship between CF-netCDF and CV_DiscreteCoverage models: Coverage Function package.......................................................................... 50 Table 5. Summary of relationship between the CF-netCDF and the DiscreteCoverage profile models: Coordinate System package .............................................................. 53 Table 6. Summary of relationship between the CF-netCDF and the DiscreteCoverage profile models: Discrete Sampling Geometries package ........................................... 55
v
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
Requirements
Page
Requirement 1 /req/CF-‐netCDF-‐1.6-‐core/structural-‐adherence: Any data instantiating a concrete CF-netCDF dataset shall conform with the UML diagrams in Figure 3 and Figure 4Figure 1. .................................................................. 12 Requirement 2 ./req/CF-‐netCDF-‐1.6-‐core/Conventions: Any CF-netCDF Dataset that uses the CF convention shall define the global attribute Conventions to the string value "CF-‐1.6". .............................................................. 12
Requirement 3 /req/CF-‐netCDF-‐1.6-‐core/NamingConventions: CF-netCDF Variable, Dimension and Attribute names shall begin with a letter and be composed of letters, digits, and underscores. ........................................................... 12 Requirement 4 /req/CF-‐netCDF-‐1.6-‐core/ReservedAttributeNames: CF-netCDF Attribute names commencing with underscore ('_') shall be reserved for use by the netCDF library. 12 Requirement 5 /req/CF-‐netCDF-‐1.6-‐core/StandardAttributeNames: The list of CFnetCDF Attribute names reported in the Appendix A of [8] shall be considered standard names and therefore reserved. .................................................................... 13 Requirement 6 /req/CF-‐netCDF-‐1.6-‐core/StandardNames: Any CF-netCDF Variable shall define either a standard_name attribute or a long_name attribute. Exception, this is not mandatory only for Bounday Variable ...... 14
Requirement 7 /req/CF-‐netCDF-‐1.6-‐core/StandardNameValues: A standard name shall contain no whitespace and shall be case sensitive. In addition, the set of permissible standard names is contained in the CF standard name table published at: http://cf-‐pcmdi.llnl.gov/documents/cf-‐standard-‐names/standard-‐name-‐table/18/cf-‐ standard-‐name-‐table.xml ........................................................................................... 14 Requirement 8 /req/CF-‐netCDF-‐1.6-‐core/Dimensions: For any CF-netCDF Variable, its Dimension names shall have different names. ............................ 14
Requirement 9 /req/CF-‐netCDF-‐1.6-‐core/DimensionsShape: For a given spatial-‐ temporal CF-netCDF Variable, its spatial-‐temporal Dimensions order shall appear in the relative order T, then Z, then Y, then X. In addition, any other dimension shall be placed to the left of the spatiotemporal dimensions. ................... 14 Requirement 10 /req/CF-‐netCDF-‐1.6-‐core/Units: Any dimensional CF-netCDF Variable (i.e. CF-netCDF Variable that represents dimensional quantity) shall define a units attribute. Exception, this is not mandatory only for Bounday Variable In addition, the units value may be physically equivalent (not necessarily identical) to the canonical units for the Variable. ..................................... 15 vi
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
Requirement 11 /req/CF-‐netCDF-‐1.6-‐core/UnitsValue: any units attribute value shall be a string that can be recognized by UNIDATA"s Udunits package [9]. In addition, exceptions are the units level, layer, and sigma_level. ................................ 15 Requirement 12 /req/CF-‐netCDF-‐1.6-‐core/UnitsConsistency: The units of a CFVariable shall be consistent with the units given in the standard name table (published at:). http://cf-‐pcmdi.llnl.gov/documents/cf-‐standard-‐names/standard-‐ name-‐table/18/cf-‐standard-‐name-‐table.xml In addition, the units must also be consistent with a specified cell_methods attribute, if one is present. ................... 15
Requirement 13 /req/CF-‐netCDF-‐1.6-‐core/CoordinateData: Any Variable containing coordinate data shall be: a Coordinate Variable | an Auxiliary Coordinate Variable ................................................................. 16 Requirement 14 /req/CF-‐netCDF-‐1.6-‐core/CoordinateData/CoordinateVariable: A Coordinate Variable shall be defined for each Dimension that correspond to one dimensional space or time coordinates. .............................................................. 17 Requirement 15 /req/CF-‐netCDF-‐1.6-‐core/CoordinateVariableDimension: any Coordinate Variable shall have a single Dimension whose name matches the the Variable name. ............................................................................................... 17 Requirement 16 /req/CF-‐netCDF-‐1.6-‐core/CoordinateVariableValues: Coordinate Variable values shall be ordered monotonically. ........................... 17
Requirement 17 /req/CF-‐netCDF-‐1.6-‐core/CoordinateVariable/AxisAttribute: for any Coordinate Variable the attribute axis shall be given one of the values X, Y, Z or T. In addition these values stand for a longitude, latitude, vertical, or time axis respectively for the CF-‐netCDF cordinate types: LongitudeCoordinate, LatitudeCoordinate, VerticalCoordinate, TimeCoordinate . .......... 17 Requirement 18 /req/CF-‐netCDF-‐1.6-‐ core/CoordinateVariable/AxisAttributeSemantic: The values X and Y for the axis attribute shall be used to identify horizontal coordinate variables. ............................ 17 Requirement 19 /req/CF-‐netCDF-‐1.6-‐ core/CoordinateVariable/Missing_valuesAttribute: Coordinate Variable shall not define an attribute missing_values. .............................................................. 17
Requirement 20 /req/CF-‐netCDF-‐1.6-‐core/LatitudeCoordinate: For any Latitude Coordinate the units attribute values shall be: degrees_north | degree_north | degree_N, | degrees_N | degreeN | degreesN. In addition, Coordinates of latitude with respect to a rotated pole should be given units of degrees, not degrees_north or equivalents, .................................................. 18 Requirement 21 /req/CF-‐netCDF-‐1.6-‐core/LongitudeCoordinate: For any Longitude Coordinate the units attribute values shall be: degrees_east | degree_east | degree_E, | degrees_E | degreeE | degreesE. In addition, Copyright © 2013 Open Geospatial Consortium vii
OGC 11-165r2
Coordinates of longitude with respect to a rotated pole should be given units of degrees, not degrees_east or equivalents, ........................................................ 18 Requirement 22 /req/CF-‐netCDF-‐1.6-‐core/VerticalCoordinatePositiveAttribute: Any Vertical Coordinate shall define the positive attribute whose values shall be: up | down. ............................................................................................... 19 Requirement 23 /req/CF-‐netCDF-‐1.6-‐core/VerticalCoordinateUnitsAttribute: For any Vertical Coordinate the units attribute values shall be: units of pressure as listed in the file udunits.dat (e.g. bar, millibar, decibar, atmosphere (atm), pascal (Pa), and hPa) | units of length as listed in the file udunits.dat (e.g. meter, metre, m, kilometer, km) | other units listed in the file udunits.dat that may under certain circumstances reference vertical position such as units of density or temperature. .......................................... 19 Requirement 24 /req/CF-‐netCDF-‐1.6-‐core/DimensionlessVerticalCoordinate: Any Dimensionless Vertical Coordinate shall be defined in Appendix D of [8]. . 19 Requirement 25 /req/CF-‐netCDF-‐1.6-‐ core/DimensionlessVerticalCoordinateFormula_TermsAttribute: Any Dimensionless Vertical Coordinate shall define the formula_terms attribute. 19 Requirement 26 /req/CF-‐netCDF-‐1.6-‐core/TimeCoordinateUnitsAttribute: For any Time Coordinate the units attribute values shall be units of time as listed in the file udunits.dat (e.g. day or (d), hour or (hr, h), minute or (min), and second or (sec, s) ). ................................................................................. 20 Requirement 27 /req/CF-‐netCDF-‐1.6-‐core/TimeCoordinateCalendarAttribute: Any Time Coordinate shall define the calendar attribute In addition, the values currently defined for calendar are: gregorian or standard | proleptic_gregorian | noleap or 365_day | all_leap or 366_day | 360_day | julian | none. ......................................................................... 21 Requirement 28 /req/CF-‐netCDF-‐1.6-‐core/TimeCoordinateNonstandardCalendar: Any Time Coordinate characterized by a nonstandard calendar shall define the month_lengths attribute to specify its calendar. In addition, the attribute value shall be for non-‐leap year: a vector of size 12, specifying the number of days in the months from January to December. In addition, for leap year two other attributes of the time axis shall be defined: leap_year and leap_month. .............................. 21 Requirement 29 /req/CF-‐netCDF-‐1.6-‐core/AuxiliaryCoordinateVariable: An Auxiliary Coordinate Variable shall be identified by the coordinates attribute defined by a netCDF Variable. In addition, The value of the coordinates attribute is a blank separated list of the names of Auxiliary Coordinate Variables ....................................................................................... 22 viii
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
Requirement 30 /req/CF-‐netCDF-‐1.6-‐core/ScalarCoordinateVariable: A Scalar Coordinate Variable shall define a coordinate which is single-‐valued. In addition, the Scalar Coordinate Variable name shall not match the name of any dimension in the netCDF dataset. ........................................................................ 23 Requirement 31 /req/CF-‐netCDF-‐1.6-‐core/HorizontalCRS: For any CF Variable defined on an horizontal grid not defined on latitude and longitude dimensions, true latitude and longitude coordinates shall be supplied as Coordinate Variables and associated via the coordinates attribute. In addition: the attribute grid_mapping may be used to supply the description of the mapping between the given grid coordinate variables and the true latitude and longitude coordinates. In addition: the grid_mapping attribute takes a string value which is the name of a Grid Mapping Variable ................................................................................... 23 Requirement 32 /req/CF-‐netCDF-‐1.6-‐core/GridMappingVariable: Any Grid Mapping Variable shall define the grid_mapping_name attribute.. ............ 24
Requirement 33 /req/CF-‐netCDF-‐1.6-‐core/BoundaryVariable: Any Boundary Variable shall define one more dimension than its associated Coordinate or Auxiliary Coordinate Variable. In addition, The additional dimension shall be the most rapidly varying one, and its size is the maximum number of cell vertices 25 Requirement 34 /req/CF-‐netCDF-‐1.6-‐core/CellMeasures: cell_measures attribute shall be a string attribute comprising a list of blank-‐separated pairs of words of the form "measure: name". ................................................................................... 26 Requirement 35 /req/CF-‐netCDF-‐1.6-‐core/MeasureVariable: Measure Variable dimensions shall be the same as or a subset of the dimensions of the CF Variable to which they are related. ....................................................................... 26 Requirement 36 /req/CF-‐netCDF-‐1.6-‐core/CellMethods: cell_methods attribute shall be a string attribute comprising a list of blank-‐separated words of the form "name: method". In addition, name can be: a Dimension of the variable (defining the attribute), a Scalar Coordinate Variable, a valid standard name, or the word "area". In addition, the value of method should be: point | sum | mean | maximum | minimum | mid_range | standard_deviation | variance, mode | median. .................................................................................. 27 Requirement 37 /req/CF-‐netCDF-‐1.6-‐ DiscreteSampling/DistrictSamplingGeometriesModel: Any data instantiating a concrete CF-netCDF DistrictSamplingGeometry dataset shall conform with the UML diagrams in Figure 5 and Figure 6. ........................................................ 30 Requirement 38 /req/CF-‐netCDF-‐1.6-‐DiscreteSampling/FeatureCollection: CFnetCDF Feature Collection shall contain Feature instances of the same type. 31 ix
Copyright © 2013 Open Geospatial Consortium Copyright © 2013
OGC 11-165r2
Requirement 39 /req/CF-‐netCDF-‐1.6-‐DiscreteSampling/Feature: CF-netCDF Dataset shall contain Feature Collection variables of the same feature type. 31 Requirement 40 /req/CF-‐netCDF-‐1.6-‐DiscreteSampling/FeatureTypeDimension: Any CF-netCDF Feature Collection variable implementing a Feature type shall define the Dimensions specified in Table 2. ....................................... 32 Requirement 41 /req/CF-‐netCDF-‐1.6-‐DiscreteSampling/MultidimensionalArray: Any Multidimensional Array Feature Collection shall have both an Instance Dimension and an Element Dimension. ........................................................................................ 33 Requirement 42 /req/CF-‐netCDF-‐1.6-‐DiscreteSampling/RaggedArray: Any Ragged Array Feature Collection shall have a Sample Dimension. In addition, the Sample Dimension is occupied by both an Instance Dimension and an Element Dimension. .......................................................................................... 33 Requirement 43 /req/CF-‐netCDF-‐1.6-‐ DiscreteSampling/OrthogonalMultidimensionalArray: Any Feature instance of an Orthogonal Multidimensional Array Feature Collection shall have identical Coordinates along the Element Dimension. ..................................... 33 Requirement 44 /req/CF-‐netCDF-‐1.6-‐DiscreteSampling/ContiguousRaggedArray: Any Contiguous Ragged Array dataset shall have a Count Variable. ..... 34 Requirement 45 /req/CF-‐netCDF-‐1.6-‐ DiscreteSampling/ContiguousRaggedArraySampleDimension: Any Count Variable shall define the attribute sample_dimension. In addition, the attribute sample_dimension names the Sample Dimension being counted. ............... 34 Requirement 46 /req/CF-‐netCDF-‐1.6-‐DiscreteSampling/IndexedRaggedArray: Any Indexed Ragged Array dataset shall have an Index Variable. In addition, the Index Variable must be of type integer. In addition, the Index Variable must have the Sample Dimension as its single dimension. ............ 34 Requirement 47 /req/CF-‐netCDF-‐1.6-‐ DiscreteSampling/IndexedRaggedArrayInstanceDimension: Any Index Variable shall define the attribute instance_dimension. In addition, the attribute instance_dimension names the Instance Dimension characterizing the Instance Variables of the dataset ................................................................... 35 Requirement 48 /req/CF-‐netCDF-‐1.6-‐DiscreteSampling/Feature_type: Any Ragged Array and Multidimensional Array dataset shall define an attribute feature_type. In addition, the attribute feature_type must be: point | timeSeries | trajectory | profile | timeSeriesProfile | trajectoryProfile. ........................................................................................... 35 x
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
Requirement 49 /req/CF-‐netCDF/FeatureCollectionCoordinates: Any Feature Collection data variable shall define an attribute coordinates. ...................... 35 Requirement 50 /req/CF-‐netCDF-‐1.6-‐DiscreteSampling/Cf_role: The attribute cf_role must be: timeseries_id | profile_id | trajectory_id. ........... 35 Requirement 51 /req/CF-‐netCDF-‐1.6-‐DiscreteSampling/MissingData: Auxiliary Coordinate Variables characterizing Feature Collection shall define the attribute missing_values. ................................................................................... 36
Requirement 52 /req/CF-‐netCDF-‐1.6-‐ISOMapping/discreteGridPointCoverage: Any group of CF-‐netCDF data variables that share the same set of spatial/temporal coordinate variables shall realize ISO19123:CV_DiscreteCoverage sub-‐types: ISO19123:CV_DiscreteGridPointCoverage or ISO19123:CV_DiscretePointCoverage. In addition, the ISO19123:CV_CoverageFunction shall not define any interpolation method. . 40 Requirement 53 /req/CF-‐netCDF-‐1.6-‐ISOMapping/CoverageDomain: the set of spatial/temporal Coordinate Variables, shared by CF-‐netCDF data Variables, shall realize either an ISO19123:CV_DiscreteGridPointCoverage.CV_GridValueMatrix. CV_GridPoint.gridCoord or ISO19123:CV_PointValuePair.geometry. ................................................. 43 Requirement 54 /req/CF-‐netCDF-‐1.6-‐ISOMapping/DatasetCS: the CF-‐netCDF Coordinate System type, which is comprised of a set of spatial/temporal coordinate variables shared by CF-‐netCDF data variables, shall realize ISO19123:CV_DiscreteCoverage.SC_CRS.SC_CoordinateSystem or a subtype of it (i.e. ISO19123:CV_DiscreteGridPointCoverage.SC_CRS.SC_CoordinateSy stem or ISO19123:CV_DiscretePointCoverage.SC_CRS.SC_CoordinateSystem ). Additionally, the spatial/temporal Coordinate Variables and its subtypes (i.e. Vertical Coordinate, Latitude Coordinate, Longitude Coordinate, Time Coordinate elements), and the Auxiliary Coordinate Variables shall realize the related set of SC_CRS.SC_CoordinateSystem.SC_CoordinateSystemAxis .................. 44 Requirement 55 /req/CF-‐netCDF-‐1.6-‐ISOMapping/DatasetCRS: the Grid Mapping Variable projection information characterizing a set of spatial/temporal coordinate variables, shared by CF-‐netCDF data variables, shall realize ISO19123:CV_DiscreteCoverage.SC_CRS.SC_CoordinateSystem.type or a subtype of it. 44 Requirement 56 /req/CF-‐netCDF-‐1.6-‐ISOMapping/DatasetRange: the CF-‐netCDF data Variables sharing the common set of spatial/temporal Coordinate
xi
Copyright © 2013 Open Geospatial Consortium Copyright © 2013
OGC 11-165r2
Variables, shall realize one of the following objects: (a) ISO19123:CV_DiscreteGridPointCoverage.CV_GridValuesMatrix. values or a subtype of it; (b) ISO19123:CV_DiscretePointCoverage.CV_PointValuePair.value Additionally, the CF Variable data values generate the CV_GeometryValuePair record value(s): (a) CV_GridValueMatrix.values.record entry (i.e. AttributeName, Any); (b) CV_PointValuePair.value.record entry (i.e. AttributeName, Any). ........................................................................................ 45 Requirement 57 /req/CF-‐netCDF-‐1.6-‐ISOMapping/DatasetRangeType: the CF-‐ netCDF data Variables sharing a common set of spatial/temporal coordinate variables/auxiliary coordinate variables, shall realize one of the following objects: (a) CV_DiscreteGridPointCoverage.RangeType.AttributesType (i.e. AttributeName, TypeName) or a subtype of it; (b) CV_DiscretePointCoverage.RangeType.AttributesType (i.e. AttributeName, TypeName) or a subtype of it. ................................................. 45 Requirement 58 /req/CF-‐netCDF-‐1.6-‐ISOMapping/DatasetParametricRangeValues: the CF-‐netCDF Auxiliary Coordinate Variables (part of the dataset shared coordinate system) which are not space or time dimension, shall realize one of the following objects: (a) ISO19123:CV_DiscreteGridPointCoverage.CV_GridValuesMatrix. values or a subtype of it; (b) ISO19123:CV_DiscretePointCoverage.CV_PointValuePair.value .. 46 Requirement 59 /req/CF-‐netCDF-‐1.6-‐ISOMapping/DatasetParametricRangeType: the CF-‐netCDF Auxiliary Coordinate Variables (part of the dataset shared coordinate system) which are not space or time dimension, shall realize one of the following objects: (a) CV_DiscreteGridPointCoverage.RangeType.AttributesType (i.e. AttributeName, TypeName) or a subtype of it; (b) CV_DiscretePointCoverage.RangeType.AttributesType (i.e. AttributeName, TypeName). ............................................................................ 46 Requirement 60 /req/CF-‐netCDF-‐1.6-‐ ISOMapping/MeasureVariableMapping/RangeValues: any CF-‐netCDF Measure Variable (characterising a CF Variable) shall realize one of the following objects: (a) ISO19123:CV_DiscreteGridPointCoverage.CV_GridValuesMatrix. values or a subtype of it; (b) ISO19123:CV_DiscretePointCoverage.CV_PointValuePair.value .. 46 Requirement 61 /req/CF-‐netCDF-‐1.6-‐ ISOMapping/MeasureVariableMapping/RangeType: any CF-‐netCDF Measure Variable (characterising a CF Variable) shall realize one of the following objects: xii
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
(a) CV_DiscreteGridPointCoverage.RangeType.AttributesType (i.e. AttributeName, TypeName) or a subtype of it; (b) CV_DiscretePointCoverage.RangeType.AttributesType (i.e. AttributeName, TypeName). ............................................................................ 46 Requirement 62 /req/CF-‐netCDF-‐1.6-‐ ISOMapping/DiscreteSamplingGeometriesMapping/RaggedArray: Any CF-‐netCDF Ragged Array shall realize ISO19123:CV_DiscreteCoverage sub-‐type: ISO19123:CV_DiscreteGridPointCoverage In addition, the ISO19123:CV_CoverageFunction shall not define any interpolation method. . 47 Requirement 63 /req/CF-‐netCDF-‐1.6-‐ ISOMapping/DiscreteSamplingGeometriesMapping/MultidimensionalArray: Any CF-‐ netCDF Multidimensional Array shall realize ISO19123:CV_DiscreteCoverage sub-‐types: ISO19123:CV_DiscreteGridPointCoverage or ISO19123:CV_DiscretePointCoverage. In addition, the ISO19123:CV_CoverageFunction shall not define any interpolation method. . 48 Requirement 64 /req/CF-‐netCDF-‐1.6-‐ ISOMapping/MultidimensionalArrayFeatureCollectionMapping/RangeValues: Any CF-‐ netCDF Multidimensional Array Feature Collection shall realize one of the following objects: (a) ISO19123:CV_DiscreteGridPointCoverage.CV_GridValuesMatrix. values or a subtype of it; (b) ISO19123:CV_DiscretePointCoverage.CV_PointValuePair.value .. 48 Requirement 65 /req/CF-‐netCDF-‐1.6-‐ ISOMapping/MultidimensionalArrayFeatureCollectionMapping/RangeType: Any CF-‐ netCDF Multidimensional Array Feature Collection shall realize one of the following objects: (a) CV_DiscreteGridPointCoverage.RangeType.AttributesType (i.e. AttributeName, TypeName) or a subtype of it; (b) CV_DiscretePointCoverage.RangeType.AttributesType (i.e. AttributeName, TypeName) or a subtype of it. ................................................. 49 Requirement 66 /req/CF-‐netCDF-‐1.6-‐ ISOMapping/RaggedArrayFeatureCollectionMapping/RangeValues: Any CF-‐netCDF Multidimensional Array Feature Collection shall realize an ISO19123:CV_DiscretePointCoverage.CV_PointValuePair.value or a subtype of it. 49 Requirement 67 /req/CF-‐netCDF-‐1.6-‐ ISOMapping/RaggedArrayFeatureCollectionMapping/RangeType: Any CF-‐netCDF Ragged Array Feature Collection shall realize an xiii
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
ISO10123:CV_DiscretePointCoverage.RangeType.AttributesType (i.e. AttributeName, TypeName) or a subtype of it. ......................................... 49
xiv
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
i.
Abstract The OGC netCDF encoding supports electronic encoding of geospatial data, that is, digital geospatial information representing space and time-varying phenomena. This standard specifies the CF-netCDF data model extension. This standard specifies the CF-netCDF data model mapping onto the ISO 19123 coverage schema. This standard deals with multi-dimensional gridded data and multi-dimensional multipoint data. In particular, this extension standard encoding profile is limited to multi-point, and regular and warped grids; however, irregular grids are important in the CF-netCDF community and work is underway to expand the CF-netCDF to encompass other coverages types, including irregular gridded datasets.
xv
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
ii.
Keywords Ogcdoc, netcdf, data model extension, multi-dimensional
xvi
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
iii.
Preface This OGC standard provides an extension of the “netCDF core” Data Model standard: OGC 10-090 [1]. Suggested additions, changes, and comments on this standard are welcome and encouraged. Such suggestions may be submitted by email message or by submitting an official OGC Change Request using the online CR application: https://portal.opengeospatial.org/public_ogc/change_request.php
xvii
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
iv.
Document terms and definitions This document uses the standard terms defined in Subclause 5.3 of [OGC 06-121r9], which is based on the ISO/IEC Directives, Part 2. Rules for the structure and drafting of International Standards. In particular, the word “shall” (not “must”) is the verb form used to indicate a requirement to be strictly followed to conform to this standard.
xviii
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
v.
Submitting organizations The following organizations have submitted this standard to the Open Geospatial Consortium:
The University Corporation for Atmospheric Research (UCAR) The National Research Council of Italy (CNR)
xix
Copyright © 2013 Open Geospatial Consortium Copyright © 2013
OGC 11-165r2
vi.
Document Contributor Contact Points All questions regarding this document should be directed to the editors: Name Stefano Nativi Ben Domenico
xx
Organization/email CNR/IIA/ESSI-lab / stefano.nativi<at>cnr.it UCAR/Unidata / ben<at>unidata.ucar.edu
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
vii.
Changes to the OGC Abstract Specification The OGC® Abstract Specification does not require any changes to accommodate the technical contents of this document.
xxi
Copyright © 2013 Open Geospatial Consortium Copyright © 2013
OGC 11-165r2
viii.
Future work Improvements in this document are desirable to support changes and additions to CF conventions and netCDF binary and XML encodings. However, it is important that CF and netCDF remain “loosely coupled” in the sense that each can change and evolve without having to rewrite the other each time. In particular, this extension standard encoding profile is limited to multi-point, and regular and warped grids; however, irregular grids are important in the CF-netCDF community and work is underway to expand the CF-netCDF to encompass other coverages types, including irregular gridded datasets. The current plan is to include these augmentations in subsequent versions of this standard extension. This standard is written for netCDF version 3, but netCDF version 4 is now being released. Currently the plan is to submit a separate extension standard for CF-netCDF version 4 as it becomes more heavily used in the community. Finally, the Discrete Sampling extension model may be tied to O&M 2.0 Sampling Feature model; infact, that was partially inspired by CF. Such alignment is planned for next release of the standard.
xxii
Copyright © 2013 Open Geospatial Consortium
OGC® Implementation Standard
OGC 11-165r2
Foreword This document is an extension of the “netCDF core” Data Model standard: OGC 10-090 [1]. This standard deals with: multi-dimensional gridded data and multi-dimensional multipoint data. The data model specified by this document can be encoded using the “NetCDF Binary Encoding Extension Standard: NetCDF Classic and 64-bit Offset Format” [OGC 10-092]. Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. The Open Geospatial Consortium shall not be held responsible for identifying any or all such patent rights. Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the standard set forth in this document, and to provide supporting documentation.
Copyright © 2013 Open Geospatial Consortium
1
OGC 11-165r2
Introduction The OGC netCDF encoding supports electronic encoding of geospatial data, that is, digital geospatial information representing space and time-varying phenomena. NetCDF (network Common Data Form) is a data model for array-oriented scientific data, a freely distributed collection of access libraries implementing support for that data model, and a machine-independent format. Together, the interfaces, libraries, and format support the creation, access, and sharing of multi-dimensional scientific data. This document specifies the CF-netCDF data model extension; every CF-netCDF dataset shall adhere to this standard. CF-netCDF encoding format is netCDF conforming to the Climate and Forecast (CF) conventions (i.e. CF-netCDF). This standard is based on the netCDF (network Common Data Form) ver. 3.0 file format using the CF (Climate and Forecast) conventions ver. 1.6 For the scope of this standard, CF-netCDF data model deals with multi-dimensional discrete coverage data. This OGC CF-netCDF Data Model extension standard consists of the present document. The document has OGC URI http://www.opengis.net/spec/netCDF_data-model/IS/CFnetCDF/. Background information regarding the overall landscape of netCDF standards is presented in the CF-netCDF Primer, OGC 10-091, “CF-netCDF: Core and Extensions.” This stanard is an extension to the core standard for the netCDF Classic data model in OGC 10-090r3, “NetCDF Core Encoding Standard version 1.0”.
2
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
CF-netCDF3 Data Model Extension standard 1
Scope
This standard specifies the CF-netCDF data model extension. This standard specifies the CF-netCDF data model mapping onto the ISO 19123 coverage schema. This standard deals with multi-dimensional gridded data and multi-dimensional multipoint data. 2
Conformance
Standardization targets are: (a) CF-netCDF core implementations (currently encodings); (b) CF-netCDF Discrete Sampling implementations (currently encodings); (c) the mapping of CF-netCDF data model to ISO 19123. This document establishes three requirements classes, one for each standardization target: 1. CF-netCDF core, of http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-core -for the standardization target (a); 2. CF-netCDF Discrete Sampling, of http://www.opengis.net/spec/netCDF_datamodel/req/CF-netCDF-1.6-DiscreteSampling -for the standardization target (b); 3. CF-netCDF Mapping onto ISO 19123, of http://www.opengis.net/spec/netCDF_data-model/req/CF-netCDF-1.6ISOMapping -for the standardization target (c); and three corresponding pertaining conformance class, CF-netCDF, with URIs: 1. http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6-core. 2. http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6DiscreteSampling 3. http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6ISOMapping Requirements and conformance test URIs defined in this document are relative to http://www.opengis.net/spec/netCDF_data-model/. Annex A lists the conformance tests which shall be exercised on any software artifact claiming to implement an OGC CF-netCDF extension for netCDF. 3
Normative references
The following normative documents contain provisions that, through reference in this text, constitute provisions of this standard. For dated references, subsequent amendments to, or revisions of, any of these publications do not apply. For undated references, the latest edition of the normative document referred to applies. 3
OGC 11-165r2
OGC 10-090r3, NetCDF Core Encoding Standard version 1.0 Classes used: Core with URI: http://www.opengis.net/spec/netcdf/1.0/conf/core OGC 10-092, NetCDF Binary Encoding Extension Standard: NetCDF Classic and 64-bit Offset Format version 1.0 Classes used: netCDF classic with URI: http://www.opengis.net/spec/netcdf_binaryencoding_netcdf-classic-and-64-bit-offset/1.0/conf /netcdf-classic netCDF 64-bit with URI: http://www.opengis.net/spec/netcdf_binaryencoding_netcdf-classic-and-64-bit-offset /1.0/conf /netcdf-64-bit-offset
For this standard, there is one external normative document contain provisions that are quoted verbatim in this text and hence constitute provisions of this standard: NASA ESDS-RFC-021v0.02, CF Metadata Conventions, April 2010. Available at: http://www.esdswg.org/spg/rfc/esds-rfc-021/ESDS-RFC-021-v0.01.pdf An overview of this standard is provided by [18]. 4
Terms and definitions
For the purposes of this document, the terms and definitions given in the above references apply. In addition, the following terms and definitions apply. 4.1
CDL syntax
The ASCII format used to describe the contents of a netCDF file is called CDL (network Common Data form Language). This format represents arrays using the indexing conventions of the C programming language, i.e., index values start at 0, and in multidimensional arrays, when indexing over the elements of the array, it is the last declared dimension that is the fastest varying in terms of file storage order. The netCDF utilities ncdump and ncgen use this format. 4.2
Coverage
feature that acts as a function to return values from its range for any direct position within its spatiotemporal domain [OGC 07-111/ISO19123] 4.2.1
Data Model
a description of the organization of data in a manner that reflects an information structure [ISO/IEC 11179-1 Specification and standardization of data elements – Part 1: Framework] 4
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
NOTE: netCDF literature reports the following definition for data model: a way of thinking about scientific data by applying a data model theory. It is an abstraction that describes how datasets are represented and used. In computer terms, a data model can be thought of as equivalent to an abstract object model in Object Oriented Programming in that an abstract data model describes data objects and what methods can be used on them. 4.2.2
Feature
abstraction of real world phenomena [ISO 19101]. NOTE A feature may occur as a type or an instance. 4.2.3
Grid
network composed of two or more sets of curves in which the members of each set intersect the members of the other sets in a algorithmic way [OGC 07-111/ISO19123]. NOTE: the curves partition a space into grid cells. 4.2.4
Multi-point coverage
A discrete coverage which is characterized by a finite domain consisting of points. Generally, the domain is a set of irregularly distributed points [OGC 07-111/ISO19123]. A set of hydrographic soundings is an example of a discrete point coverage. 4.2.5
NetCDF
NetCDF is a standard for data on complex grids –curvilinear in XY; sigma and densityrelated in Z; climatological and artificial calendars in T; and heading towards "tile mosaics" and 5D forecast ensembles in the near future. 5
Conventions
5.1
Namespace prefix conventions
The following namespaces are used in this document. The prefix abbreviations used constitute conventions used here, but are not normative. The namespaces to which the prefixes refer are normative, however. — Namespace mappings Prefix
Namespace URI
Description
xsd
http://www.w3.org/2001/XMLSchema
XML Schema
gml
http://www.opengis.net/gml/3.2
GML 3.2.1
ncml
http://unidata.ucar.edu/ncml
ncML schema
5
OGC 11-165r2
6
NetCDF Data Model extension
A formal specification of the netCDF data model is provided by [1]; while, [2] provides a general description of the netCDF technology. For reader’s convenience, the netCDF core data model is shown in Figure 1.
Figure 1 - NetCDF core data model [1]
6.1
CF Conventions
The purpose of the CF conventions is to require conforming datasets to contain sufficient metadata that they are self-describing in the sense that each variable in the file has an associated description of what it represents, including physical units if appropriate, and that each value can be located in space (relative to earth-based coordinates) and time. This enables users of data from different sources to decide which quantities are comparable, and facilitates building applications with powerful extraction, regridding, and display capabilities. This standard considers version 1.6 of the CF conventions. The full CF Conventions reference documentation is provided in [8] and [16]. For this standard, provisions were given by [18].
6
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
6.1.1
Introduced Requirements
Most of the introduced requirements are taken from the “CF Conformance Requirements and Recommendations” published by the Program for Climate Model Diagnosis & Intercomparison (PCMDI) [10], from the “NetCDF Climate and Forecast (CF) Metadata Conventions, Version 1.5” [8], and from "NetCDF Climate and Forecast (CF) Metadata Conventions, Version 1.6 -Chapter 9" [16]. For interoperability sake, the following requirement section specifies a CF 1.6 profile by restricting some of the original specifications –i.e. by transforming most of the recommendations into mandatory requirements. Table 1 reports the elements who are considered mandatory for this standard while they are optional for CF 1.6.
Table 1. CF elements overruled from optional to mandatory
Entity
Requirements
Condition
CF-netCDF Variable
standard_name Mandatory Optional attribute or a long_name attribute.
CF 1.6 condition
Exception Bounday Variable
Coordinate axis attribute Variable
Manadtory Optional
Dimensionless formula_terms attribute Vertical Coordinate
Mandatory Optional
Mandatory Optional
Mandatory Conditional
Mandatory Optional
Spatial-‐ temporal CF-netCDF Variable,
Dimensions order shall appear in the relative order T, then Z, then Y, then X. In addition, any other Dimension shall be placed to the left of the spatiotemporal Dimensions
Vertical Coordinate
Positive attribute
Time Calendar attribute Coordinate
7
OGC 11-165r2
Time month_lengths Coordinate attribute characterized by a nonstandard calendar
Mandatory Optional
Time leap_year and Coordinate leap_month characterized attributes by a nonstandard calendar (for leap years)
Mandatory Optional
Coordinate Variable defined on a horizontal grid not defined on latitude and longitude dimensions
coordinates attribute which associates a couple of Coordinate Variables defining the true latitude and longitude coordinates
Mandatory Optional
Measure Variable
Dimensions shall be the same as or a subset of the dimensions of the CF Variable to which they are related
Mandatory Optional
8
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
7
CF-netCDF Data Model
7.1
Extension packages
Based on the OGC netCDF data model (OGC 10-090r3), the following extension packages are modeled by this standard (as depicted in Figure 2): General conventions; Variables and Standard attributes conventions; Dimensions and Dimensional Variables conventions; Coordinate Variables and Coordinate Types conventions; Coordinate Systems convention; Discrete Sampling Geometries.
«Conventions» Grid Cells
Core extension
«Conventions» Coordinate Variables and Coordinate Types
«Conventions» Discrete Sampling Geometries
«Conventions» Dimensions and Dimensional Variables
«Conventions» General
«Conventions» Coordinate Systems
«Conventions» Variables and Standard Attributes
Figure 2 - CF-netCDF data model extension packages
All the packages but the “Discrete Sampling Geometry” will be described as part of the CF-netCDF core extension data model. While the “Discrete Sampling Geometry” package realizes the CF-netCDF Discrete Sampling data model. 7.2
CF-netCDF core extension data model
For the scope of this standard, the core extension data model of CF-netCDF is shown in Figure 3 and Figure 4.
9
OGC 11-165r2
Figure 3 - CF-netCDF core data model: CF Variable and Standard Attributes
10
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
Figure 4 - CF-netCDF core data model: CF Coordinate Variables, Coordinate Types, Coordinate Systems, and Grid Cells
11
OGC 11-165r2
7.3
“CF-netCDF core” requirements class
The “CF-netCDF core” requirements class (URI: http://www.opengis.net/spec/netCDF_data-model/req/CF-netCDF-1.6-core) must be applied to those datasets implementing the core extension data model of CF-netCDF (see Figure 3 and Figure 4). This requiremets class is comprised of 36 requirements (from req 1 to req 36) described by the following clauses. 7.3.1
Structural adherence
Requirement 1 /req/CF-netCDF-1.6-core/structural-adherence: Any data instantiating a concrete CF-netCDF dataset shall conform with the UML diagrams in Figure 3 and Figure 4Figure 1.
7.3.2
General Conventions
7.3.2.1 Conventions
To identify that the file uses the CF convention, the Conventions global attribute shall be given the string value of “CF-1.6” Requirement 2 ./req/CF-netCDF-1.6-core/Conventions: Any CF-netCDF Dataset that uses the CF convention shall define the global attribute Conventions to the string value "CF-1.6". 7.3.2.2 Naming conventions
Variable, dimension, and attribute names should begin with a letter and be
composed of letters, digits, and underscores.
Requirement 3 /req/CF-netCDF-1.6-core/NamingConventions: CF-netCDF Variable, Dimension and Attribute names shall begin with a letter and be composed of letters, digits, and underscores. 7.3.2.3 Reserved attribute names
Names commencing with underscore ('_') are reserved for use by the netCDF library. Most generic applications that process netCDF datasets assume standard attribute conventions. Requirement 4 /req/CF-netCDF-1.6-core/ReservedAttributeNames: CF-netCDF Attribute names commencing with underscore ('_') shall be reserved for use by the netCDF library.
12
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
7.3.2.4 Standard attribute names
Requirement 5 /req/CF-netCDF-1.6-core/StandardAttributeNames: The list of CFnetCDF Attribute names reported in the Appendix A of [8] shall be considered standard names and therefore reserved.
7.3.3
CF-netCDF Variables and Standard Attributes
Each variable in a netCDF file has an associated description which is provided by the attributes units, long_name, and standard_name. The units, and long_name attributes are defined in the netCDF User Guide document [7] and the standard_name attribute is defined in the CF conventions document [8]. Example of units, standard and long name values (CDL syntax): netcdf temperature { dimensions: lat = 45; lon = 57; variables: double lat(lat); lat:standard_name=”latitude”; lat:long_name=”latitude”; lat:units=”degrees_north”; double lon(lon); lon:standard_name=”longitude”; lon:long_name=”longitude”; lon:units=”degrees_east”;
}
double temperature(lon, lat); temperature:standard_name=”air_temperature”; temperature:long_name=”temperature”; temperature:units=”K”;
CF Standard names attribute A fundamental requirement for exchange of scientific data is the ability to describe precisely the physical quantities being represented. The standard_name attribute is the name used to identify the physical quantity. It is used to provide unique identifiers for variables. CF standard names conventions describe what the numbers in a netCDF dataset represent; e.g., temperature, pressure, wind speed, salinity, radiance, reflectivity. Besides, this attribute can be used to identify variables that contain coordinate data. Long name attribute The long_name attribute is defined to contain a long descriptive name which may, for example, be used for labeling plots. For backwards compatibility with COARDS this 13
OGC 11-165r2
attribute is optional. If a variable has no long_name attribute then an application may use, as a default the standard_name or the variable name itself [8]. 7.3.3.1 Standard names
Requirement 6 /req/CF-netCDF-1.6-core/StandardNames: Any CF-netCDF Variable shall define either a standard_name attribute or a long_name attribute. Exception, this is not mandatory only for Bounday Variable 7.3.3.2 Standard name values
Requirement 7 /req/CF-netCDF-1.6-core/StandardNameValues: A standard name shall contain no whitespace and shall be case sensitive. In addition, the set of permissible standard names is contained in the CF standard name table published at: http://cf-pcmdi.llnl.gov/documents/cf-standardnames/standard-name-table/18/cf-standard-name-table.xml
7.3.4
CF-netCDF Dimensions and Dimensional Variables
A variable may have any number of Dimensions, including zero, and the dimensions must all have different names. The dimensions of the variable define the axes of the quantity it contains. If any or all of the dimensions of a variable have the interpretations of "date or time" (T), "height or depth" (Z), "latitude" (Y), or "longitude" (X) then those dimensions must appear in the relative order T, then Z, then Y, then X. All other dimensions can be placed to the left of the spatiotemporal dimensions. 7.3.4.1 Dimensions
Requirement 8 /req/CF-netCDF-1.6-core/Dimensions: For any CF-netCDF Variable, its Dimension names shall have different names. 7.3.4.2 Dimensions shape
Requirement 9 /req/CF-netCDF-1.6-core/DimensionsShape: For a given spatialtemporal CF-netCDF Variable, its spatial-temporal Dimensions order shall appear in the relative order T, then Z, then Y, then X. In addition, any other dimension shall be placed to the left of the spatiotemporal dimensions.
14
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
7.3.5
Units attribute
CF units conventions describe what are the units of measure for the numbers in a netCDF dataset. The units attribute is required for all variables that represent dimensional quantities. The value of the units attribute must be a string that can be recognized by Unidata’s Udunits software package [9]. 7.3.5.1 Units
Requirement 10 /req/CF-netCDF-1.6-core/Units: Any dimensional CF-netCDF Variable (i.e. CF-netCDF Variable that represents dimensional quantity) shall define a units attribute. Exception, this is not mandatory only for Bounday Variable In addition, the units value may be physically equivalent (not necessarily identical) to the canonical units for the Variable. 7.3.5.2 Units value
Requirement 11 /req/CF-netCDF-1.6-core/UnitsValue: any units attribute value shall be a string that can be recognized by UNIDATA"s Udunits package [9]. In addition, exceptions are the units level, layer, and sigma_level. 7.3.5.3 Units consistency
Requirement 12 /req/CF-netCDF-1.6-core/UnitsConsistency: The units of a CFVariable shall be consistent with the units given in the standard name table (published at:). http://cf-pcmdi.llnl.gov/documents/cf-standard-names/standard-name-table/18/cfstandard-name-table.xml In addition, the units must also be consistent with a specified cell_methods attribute, if one is present.
7.3.6
CF-NetCDF Coordinate Variables and Coordinate Types
A variable's spatiotemporal dimensions are used to locate data values in time and space. This is accomplished by associating these dimensions with the relevant set of latitude, longitude, vertical, and time coordinates [8].
15
OGC 11-165r2
Variables with a single dimension whose names match the name of their dimension are called “coordinate variables”. By convention coordinate variables define the physical coordinate for that dimension (see the netCDF Users Guide [7]). For instance, the following dataset description shows a variable (i.e. xwind) that is defined on a set of spatiotemporal dimensions: latitude, longitude, vertical, and time dimension; each axis is identified by a coordinate variable. xwind(n,k,j,i) is associated with the coordinate values lon(i), lat(j), pres(k), and time(n). dimensions: lat = 18 ; lon = 36 ; pres = 15 ; time = 4 ; variables: float xwind(time,pres,lat,lon) ; xwind:long_name = "zonal wind" ; xwind:units = "m/s" ; float lon(lon) ; lon:long_name = "longitude" ; lon:units = "degrees_east" ; float lat(lat) ; lat:long_name = "latitude" ; lat:units = "degrees_north" ; float pres(pres) ; pres:long_name = "pressure" ; pres:units = "hPa" ; double time(time) ; time:long_name = "time" ; time:units = "days since 1990-1-1 0:0:0" ;
There are two methods used to identify variables that contain coordinate data. The first is to use the Coordinate Variable types, the second is the use of Auxiliary Coordinate Variables. The use of Coordinate Variables is required for all dimensions that correspond to one dimensional space or time coordinates. All of a variable's dimensions that are latitude, longitude, vertical, or time dimensions must have corresponding coordinate variables, i.e., one-dimensional variables with the same name as the dimension. Coordinate Variable is defined as a numeric data type with values that are ordered monotonically. Missing values are not allowed in coordinate variables. 7.3.6.1 Coordinate data
Requirement 13 /req/CF-netCDF-1.6-core/CoordinateData: Any Variable containing coordinate data shall be: a Coordinate Variable | an Auxiliary Coordinate Variable
16
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
7.3.6.2 Coordinate variable
Requirement 14 /req/CF-netCDF-1.6-core/CoordinateData/CoordinateVariable: A Coordinate Variable shall be defined for each Dimension that correspond to one dimensional space or time coordinates. 7.3.6.3 Coordinate variable dimension
Requirement 15 /req/CF-netCDF-1.6-core/CoordinateVariableDimension: any Coordinate Variable shall have a single Dimension whose name matches the the Variable name. 7.3.6.4 Coordinate variable values
Requirement 16 /req/CF-netCDF-1.6-core/CoordinateVariableValues: Coordinate Variable values shall be ordered monotonically. 7.3.6.5 Coordinate variable axis attribute
Requirement 17 /req/CF-netCDF-1.6-core/CoordinateVariable/AxisAttribute: for any Coordinate Variable the attribute axis shall be given one of the values X, Y, Z or T. In addition these values stand for a longitude, latitude, vertical, or time axis respectively for the CF-netCDF cordinate types: LongitudeCoordinate, LatitudeCoordinate, VerticalCoordinate, TimeCoordinate . 7.3.6.6 Coordinate variable axis attribute semantics
Requirement 18 /req/CF-netCDF-1.6core/CoordinateVariable/AxisAttributeSemantic: The values X and Y for the axis attribute shall be used to identify horizontal coordinate variables. 7.3.6.7 Coordinate variable missing values
Requirement 19 /req/CF-netCDF-1.6core/CoordinateVariable/Missing_valuesAttribute: Coordinate Variable shall not define an attribute missing_values.
7.3.7
Well-known coordinates
The CF convention gives special constraints to latitude, longitude, vertical, and time coordinates (i.e. LatitudeCoordinate, LongitudeCoordinate, VerticalCoordinate, TimeCoordinate).
17
OGC 11-165r2
7.3.7.1 Latitude Coordinate
The recommended unit of latitude is degrees_north. Also acceptable are degree_north, degree_N, degrees_N, degreeN, and degreesN. /req/CF-netCDF-1.6-core/LatitudeCoordinate: For any Latitude Coordinate the units attribute values shall be: degrees_north | degree_north | degree_N, | degrees_N | degreeN | degreesN.
Requirement 20
In addition, Coordinates of latitude with respect to a rotated pole should be given units of degrees, not degrees_north or equivalents,
Example of Latitude axis float lat(lat) ; lat:long_name = "latitude" ; lat:units = "degrees_north" ; lat:standard_name = "latitude" ;
7.3.7.2 Longitude Coordinate
The recommended unit of longitude is degrees_east. Also acceptable are degree_east, degree_E, degrees_E, degreeE, and degreesE. Requirement 21
/req/CF-netCDF-1.6-core/LongitudeCoordinate: For any Longitude Coordinate the units attribute values shall be: degrees_east | degree_east | degree_E, | degrees_E | degreeE | degreesE. In addition, Coordinates of longitude with respect to a rotated pole should be given units of degrees, not degrees_east or equivalents,
Example of Latitude axis float lon(lon) ; lon:long_name = "longitude" ; lon:units = "degrees_east" ; lon:standard_name = "longitude" ;
7.3.7.3 Vertical (Height, Depth, Dimensional) Coordinate
The direction of positive (i.e., the direction in which the coordinate values are increasing), whether up or down, cannot in all cases be inferred from the units. For this Copyright © 2013 Open Geospatial Consortium 18
OGC 11-165r2
reason the attribute positive is required. The positive attribute may have the value up or down (case insensitive). This attribute may be applied to either coordinate variables or auxillary coordinate variables that contain vertical coordinate data. Requirement 22 /req/CF-netCDF-1.6-core/VerticalCoordinatePositiveAttribute: Any Vertical Coordinate shall define the positive attribute whose values shall be: up | down.
The acceptable units for vertical (depth or height) coordinate variables are: units of pressure as listed in the file udunits.dat. For vertical axes the most commonly used of these include include bar, millibar, decibar, atmosphere (atm), pascal (Pa), and hPa. TMFALKG>D=F?L@9KDAKL=<AFL@=>AD=M<MFALK <9L !GJN=JLA;9D9P=KL@=EGKL;GEEGFDQ used of these include meter (metre, m), and kilometer (km). TGL@=JMFALKDAKLed in the file udunits.dat that may under certain circumstances reference vertical position such as units of density or temperature. 7.3.7.4 Vertical coordinate units
Requirement 23 /req/CF-netCDF-1.6-core/VerticalCoordinateUnitsAttribute: For any Vertical Coordinate the units attribute values shall be: units of pressure as listed in the file udunits.dat (e.g. bar, millibar, decibar, atmosphere (atm), pascal (Pa), and hPa) | units of length as listed in the file udunits.dat (e.g. meter, metre, m, kilometer, km) | other units listed in the file udunits.dat that may under certain circumstances reference vertical position such as units of density or temperature.
7.3.7.5 Dimensionless vertical coordinates
Dimensionless vertical coordinates are defined in the Appendix D of [8]. The standard_name attribute associates a coordinate with its definition which provides a mapping between the dimensionless coordinate values and dimensional values that can positively and uniquely indicate the location of the data. The formula_terms attribute is used to associate terms in the definitions with variables in a netCDF file; for this reason it is mandatory. Requirement 24 /req/CF-netCDF-1.6-core/DimensionlessVerticalCoordinate: Any Dimensionless Vertical Coordinate shall be defined in Appendix D of [8]. 7.3.7.6 Dimensionless vertical coordinate formula terms
Requirement 25 /req/CF-netCDF-1.6core/DimensionlessVerticalCoordinateFormula_TermsAttribute: Any
19
OGC 11-165r2
Dimensionless Vertical Coordinate shall define the formula_terms attribute.
Example of Atmosphere sigma coordinate float lev(lev) ; lev:long_name = "sigma at layer midpoints" ; lev:positive = "down" ; lev:standard_name = "atmosphere_sigma_coordinate" ; lev:formula_terms = "sigma: lev ps: PS ptop: PTOP" ;
The formula_terms attribute associates the variable lev with the term sigma, the variable PS with the term ps, and the variable PTOP with the term ptop. Thus the pressure at gridpoint (n,k,j,i) would be calculated by: p(n,k,j,i) = PTOP + lev(k)*(PS(n,j,i)-PTOP) 7.3.7.7 Time Coordinate
The units attribute takes a string value formatted as per the recommendations in the Udunits package [9]. Requirement 26 /req/CF-netCDF-1.6-core/TimeCoordinateUnitsAttribute: For any Time Coordinate the units attribute values shall be units of time as listed in the file udunits.dat (e.g. day or (d), hour or (hr, h), minute or (min), and second or (sec, s) ).
Example of Time axis: double time(time) ; time:long_name = "time" ; time:units = "days since 1990-1-1 0:0:0" ;
7.3.7.8 Calendar attribute
To calculate a new date and time given a base date, base time and a time increment one must know what calendar to use. For this purpose it is important the calendar be specified by the attribute calendar which is assigned to the time coordinate variable. The calendar attribute may be set to none in climate experiments that simulate a fixed time of year or when a non-standard calendar is being used -e.g. non-standard paleoclimate eras . 20
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
Requirement 27 /req/CF-netCDF-1.6-core/TimeCoordinateCalendarAttribute: Any Time Coordinate shall define the calendar attribute In addition, the values currently defined for calendar are: gregorian or standard | proleptic_gregorian | noleap or 365_day | all_leap or 366_day | 360_day | julian | none. Example of Perpetual time axis variables: double time(time) ; time:long_name = "time" ; time:units = "days since 1-7-15 0:0:0" ; time:calendar = "none" ; data: time = 0., 1., 2., ...;
7.3.7.9 Non-standard calendars
If none of the standard calendars (e.g., calendars appropriate to a different paleoclimate era), a nonstandard calendar must be defined. The lengths of each month are explicitly defined with the month_lengths attribute of the time axis. If leap years are included, then two other attributes of the time axis should also be defined: leap_year and leap_month. Requirement 28 /req/CF-netCDF-1.6-core/TimeCoordinateNonstandardCalendar: Any Time Coordinate characterized by a nonstandard calendar shall define the month_lengths attribute to specify its calendar. In addition, the attribute value shall be for non-leap year: a vector of size 12, specifying the number of days in the months from January to December. In addition, for leap year two other attributes of the time axis shall be defined: leap_year and leap_month. 7.3.8
Auxiliary Coordinate Variable
In cases where coordinate variables are not applicable (e.g. a CF-Variable characterized by spatiotemporal dimensions that are not latitude, longitude, vertical, or time dimensions), Auxiliary Coordinate Variables are defined. The Auxiliary Coordinate Variables are identified (and linked to the CFVariable) through the coordinates attribute defined by the CF-Variable. Unlike Coordinate Variables, there is no relationship between the name of an auxiliary coordinate variable and the name(s) of its dimension(s). 21
OGC 11-165r2
Requirement 29 /req/CF-netCDF-1.6-core/AuxiliaryCoordinateVariable: An Auxiliary Coordinate Variable shall be identified by the coordinates attribute defined by a netCDF Variable. In addition, The value of the coordinates attribute is a blank separated list of the names of Auxiliary Coordinate Variables 7.3.9
Scalar Coordinate Variables
When a variable has an associated coordinate which is single-valued, that coordinate may be represented as a scalar variable. Since there is no associated dimension these scalar coordinate variables should be attached to a data variable via the coordinates attribute. Once a name is used for a scalar coordinate variable it cannot be used for a 1D coordinate variable. For this reason it is not allowed using a name for a scalar coordinate variable that matches the name of any dimension in the netCDF dataset. Example of Scalar Coordinate Variables (i.e. atime and P500 variables) [8]: dimensions: lat = 180 ; lon = 360 ; time = UNLIMITED ; variables: double atime atime:standard_name = "forecast_reference_time" ; atime:units = "hours since 1999-01-01 00:00" ; double time(time); time:standard_name = "time" ; time:units = "hours since 1999-01-01 00:00" ; double lon(lon) ; lon:long_name = "station longitude"; lon:units = "degrees_east"; double lat(lat) ; lat:long_name = "station latitude" ; lat:units = "degrees_north" ; double p500 p500:long_name = "pressure" ; p500:units = "hPa" ; p500:positive = "down" ; float height(time,lat,lon); height:long_name = "geopotential height" ; height:standard_name = "geopotential_height" ; height:units = "m" ; height:coordinates = "atime p500" ; data: time = 6., 12., 18., 24. ;
22
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
atime = 0. ; p500 = 500.
Requirement 30 /req/CF-netCDF-1.6-core/ScalarCoordinateVariable: A Scalar Coordinate Variable shall define a coordinate which is single-valued. In addition, the Scalar Coordinate Variable name shall not match the name of any dimension in the netCDF dataset.
7.3.10 Coordinate Systems Independent Latitude, Longitude, Vertical, and Time Axes When each of a variable's spatiotemporal dimensions is a latitude, longitude, vertical, or time dimension, then each axis is identified by a coordinate variable. Horizontal Coordinate Reference Systems, Grid Mappings, and Projections When the coordinate variables for an horizontal grid are not longitude and latitude, it is required that the true latitude and longitude coordinates be supplied via the coordinates attribute [8]. If in addition it is desired to describe the mapping between the given coordinate variables and the true latitude and longitude coordinates, the attribute grid_mapping may be used to supply this description. This attribute is attached to data variables so that variables with different mappings may be present in a single file. The attribute takes a string value which is the name of another variable in the file that provides the description of the mapping via a collection of attached attributes. This variable is called a grid mapping variable and is of arbitrary type since it contains no data. Its purpose is to act as a container for the attributes that define the mapping. The one attribute that all grid mapping variables must have is grid_mapping_name which takes a string value that contains the mapping's name. The other attributes that define a specific mapping depend on the value of grid_mapping_name. The valid values of grid_mapping_name along with the attributes that provide specific map parameter values are described in the Appendix F of [8]. 7.3.10.1 Horizontal CRS When the coordinate variables for an horizontal grid are longitude and latitude, a grid mapping variable with grid_mapping_name equal to latitude_longitude may be used to specify the ellipsoid and prime meridian. Requirement 31 /req/CF-netCDF-1.6-core/HorizontalCRS: For any CF Variable defined on an horizontal grid not defined on latitude and longitude dimensions, true latitude and longitude coordinates shall be supplied as Coordinate Variables and associated via the coordinates attribute.
23
OGC 11-165r2
In addition: the attribute grid_mapping may be used to supply the description of the mapping between the given grid coordinate variables and the true latitude and longitude coordinates. In addition: the grid_mapping attribute takes a string value which is the name of a Grid Mapping Variable 7.3.10.2 Grid mapping variable
Requirement 32 /req/CF-netCDF-1.6-core/GridMappingVariable: Any Grid Mapping Variable shall define the grid_mapping_name attribute..
Example of Horizontal grid data characterized by a grid mapping for rotated pole grid (i.e. T(let, rlat, rlon)) dimensions: rlon = 128 ; rlat = 64 ; lev = 18 ; variables: float T(lev,rlat,rlon) ; T:long_name = "temperature" ; T:units = "K" ; T:coordinates = "lon lat" ; T:grid_mapping = "rotated_pole" ; char rotated_pole rotated_pole:grid_mapping_name = "rotated_latitude_longitude" ; rotated_pole:grid_north_pole_latitude = 32.5 ; rotated_pole:grid_north_pole_longitude = 170. ; float rlon(rlon) ; rlon:long_name = "longitude in rotated pole grid" ; rlon:units = "degrees" ; rlon:standard_name = "grid_longitude"; float rlat(rlat) ; rlat:long_name = "latitude in rotated pole grid" ; rlat:units = "degrees" ; rlon:standard_name = "grid_latitude"; float lev(lev) ; lev:long_name = "pressure level" ; lev:units = "hPa" ; float lon(rlat,rlon) ; lon:long_name = "longitude" ; lon:units = "degrees_east" ; float lat(rlat,rlon) ; lat:long_name = "latitude" ; lat:units = "degrees_north" ;
24
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
7.3.11 Grid Cells When gridded data does not represent the point values of a field but instead represents some characteristic of the field within cells of finite "volume," a complete description of the variable should include metadata that describes the domain or extent of each cell, and the characteristic of the field that the cell values represent [8]. 7.3.12 Cell Boundary Variable The attribute bounds is used to represent cells to the appropriate coordinate variable(s). The value of bounds is the name of the variable that contains the vertices of the cell boundaries. This type of variable is referred as "boundary variable." A boundary variable will have one more dimension than its associated Coordinate or Auxiliary Coordinate Variable. The additional dimension must the most rapidly varying one, and its size is the maximum number of cell vertices. Since a boundary variable is considered to be part of a coordinate variable's metadata, it is not necessary to provide it with attributes such as long_name and units.
This approach supports both regular and non-regular grids (i.e. non-contiguous intervals defined on a given axis).
Requirement 33 /req/CF-netCDF-1.6-core/BoundaryVariable: Any Boundary Variable shall define one more dimension than its associated Coordinate or Auxiliary Coordinate Variable. In addition, The additional dimension shall be the most rapidly varying one, and its size is the maximum number of cell vertices
Example of cell boundaries on a latitude and longitude axes.
dimensions: lat = 45; lon = 57; nv = 2; // number of vertices variables: double lat(lat); lat:long_name = ”latitude”; lat:units = ”degrees_north”; lat:bounds = “lat_bnds”; double lon(lon); lon:long_name = ”longitude”; lon:units = ”degrees_east”; lon:bounds = “lon_bnds”;
25
OGC 11-165r2
double lat_bnds(lat, nv); double lon_bnds(lon, nv);
7.3.13 Cell Measure Variable
For some calculations, information is needed about the size, shape or location of the cells that cannot be deduced from the coordinates and bounds without special knowledge that a generic application cannot be expected to have [8]. To indicate such extra information, a cell_measures attribute may be defined for a variable. This is a string attribute comprising a list of blank-separated pairs of words of the form "measure: name". For the moment, "area" and "volume" are the only defined measures, but others may be supported in future. The "name" is the name of the variable containing the measure values, which we refer to as a "measure variable". The dimensions of the measure variable must be the same as or a subset of the dimensions of the variable to which they are related. In the case of area, for example, the field itself might be a function of longitude, latitude, and time, but the variable containing the area values would only include longitude and latitude dimensions. The measure variable must have a units attribute and may have other attributes such as a standard_name. 7.3.13.1 Cell measures
Requirement 34 /req/CF-netCDF-1.6-core/CellMeasures: cell_measures attribute shall be a string attribute comprising a list of blank-separated pairs of words of the form "measure: name". 7.3.13.2 Measure variable
Requirement 35 /req/CF-netCDF-1.6-core/MeasureVariable: Measure Variable dimensions shall be the same as or a subset of the dimensions of the CF Variable to which they are related.
Example of cell areas for a spherical geodesic grid.
dimensions: cell = 2562 ; // number of grid cells time = 12 ; nv = 6 ; // maximum number of cell vertices variables: float PS(time,cell) ; PS:units = "Pa" ; PS:coordinates = "lon lat" ; PS:cell_measures = "area: cell_area" ;
26
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
float lon(cell) ; lon:long_name = "longitude" ; lon:units = "degrees_east" ; lon:bounds="lon_vertices" ; float lat(cell) ; lat:long_name = "latitude" ; lat:units = "degrees_north" ; lat:bounds="lat_vertices" ; float time(time) ; time:long_name = "time" ; time:units = "days since 1979-01-01 0:0:0" ; float cell_area(cell) ; cell_area:long_name = "area of grid cell" ; cell_area:standard_name="area"; cell_area:units = "m2" float lon_vertices(cell,nv) ; float lat_vertices(cell,nv) ;
7.3.13.3 Cell Methods
To describe the characteristic of a field that is represented by cell values, the cell_methods attribute of the variable is defined. This is a string attribute comprising a list of blank-separated words of the form "name: method". Each "name: method" pair indicates that for an axis identified by name, the cell values representing the field have been determined or derived by the specified method [8]. For example, if data values have been generated by computing time means, then this could be indicated with cell_methods="t: mean", assuming here that the name of the time dimension variable is "t". In the specification of the cell_methods attribute, name can be a dimension of the variable, a scalar coordinate variable, a valid standard name, or the word "area". (See Section 7.3.4, “Cell methods when there are no coordinates” of [8] concerning the use of standard names in cell_methods). The values of method should be: point, sum, mean, maximum, minimum, mid_range, standard_deviation, variance, mode, and median. Requirement 36 /req/CF-netCDF-1.6-core/CellMethods: cell_methods attribute shall be a string attribute comprising a list of blank-separated words of the form "name: method". In addition, name can be: a Dimension of the variable (defining the attribute), a Scalar Coordinate Variable, a valid standard name, or the word "area". In addition, the value of method should be: point | sum | mean | maximum |
27
OGC 11-165r2
minimum | mid_range | standard_deviation | variance, mode | median.
Example: 12-hourly timeseries of pressure, temperature and precipitation from a number of stations, where pressure is measured instantaneously, maximum temperature for the preceding 12 hours is recorded, and precipitation is accumulated in a rain gauge [8]. dimensions: time = UNLIMITED; // (5 currently) station = 10; nv = 2; variables: float pressure(station,time)(time,station); pressure:long_name = "pressure"; pressure:units = "kPa"; pressure:cell_methods = "time: point"; float maxtemp(station,time)(time,station); maxtemp:long_name = "temperature"; maxtemp:units = "K"; maxtemp:cell_methods = "time: maximum"; float ppn(station,time)(time,station); ppn:long_name = "depth of water-equivalent precipitation"; ppn:units = "mm"; ppn:cell_methods = "time: sum"; double time(time); time:long_name = "time"; time:units = "h since 1998-4-19 6:0:0"; time:bounds = "time_bnds"; double time_bnds(time,nv); data: time = 0., 12., 24., 36., 48.; time_bnds = -12.,0., 0.,12., 12.,24., 24.,36., 36.,48.;
7.4
The Discrete Sampling Geometries extension data model
Datasets representing Discrete Sampling Geometries -such as time series, vertical profiles and trajectories- are characterized by a dimensionality that is lower than that of the space-time region that is sampled; discrete sampling geometries are typically “paths” through space-time. CF ver. 1.6 specification [16] represents Discrete Sampling Geometries datasets as Feature Collections which are a collection of Feature (i.e. instances) made up of data Elements. Figure 5 and Figure 6 shows the conventions model. CF partially inspired the O&M 2.0 Sampling Feature model [OGC 10-004r1], as well. Therefore, this extension model may be tied to O&M –see the Future Work paragraph. 28
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
Figure 5 - Discrete Sampling Geometries data model: context
29
OGC 11-165r2
Figure 6 - Discrete Sampling Geometries data model: data representations
7.5
“CF-netCDF Discrete Sampling” requirements class
The “CF-netCDF Discrete Sampling” requirements class (URI: http://www.opengis.net/spec/netCDF_data-model/req/CF-netCDF-1.6-DiscreteSempling) must be applied to those datasets implementing the Discrete Sampling extension data model of CF-netCDF (see Figure 5 and Figure 6). This requiremets class is comprised of 15 requirements (from req 37 to req 51) described by the following clauses. 7.5.1
Structural adherence
Requirement 37 /req/CF-netCDF-1.6DiscreteSampling/DistrictSamplingGeometriesModel: Any data instantiating a concrete CF-netCDF DistrictSamplingGeometry dataset shall conform with the UML diagrams in Figure 5 and Figure 6.
7.5.2
Features and Feature Types
The features contained within a collection must always be of the same type; and all the collections contained in a CF file must be of the same feature type. 30
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
7.5.2.1 Feature collection
Requirement 38 /req/CF-netCDF-1.6-DiscreteSampling/FeatureCollection: CFnetCDF Feature Collection shall contain Feature instances of the same type. 7.5.2.2 Feature
Requirement 39 /req/CF-netCDF-1.6-DiscreteSampling/Feature: CF-netCDF Dataset shall contain Feature Collection variables of the same feature type. 7.5.2.3 Feature types
For the scope of this standard, Feature Types are listed in Table 2 along with their mandatory dimensions [16].
Table 2 - Mandatory dimensions for Feature Type Description of a single feature with this discrete sampling geometry featureType
point
timeSeries
trajectory
profile
Form of a data variable containing values defined on a collection of these features
a single data point (having no implied coordinate relationship to other points) data(i)
data(i,o)
x(i) y(i) t(i,o)
a series of data points along a path through space with monotonically increasing times data(i,o)
x(i,o) y(i,o) t(i,o)
an ordered set of data points along a vertical line at a fixed horizontal position and fixed time x(i) y(i) z(i,o) t(i)
a series of profile features at the same horizontal position with monotonically increasing times data(i,p,o)
trajectoryProfile
x(i) y(i) t(i)
a series of data points at the same spatial location with monotonically increasing times
data(i,o)
timeSeriesProfile
Mandatory space-time coordinates for a collection of these features
x(i) y(i) z(i,p,o) t(i,p)
a series of profile features located at points ordered along a trajectory data(i,p,o)
x(i,p) y(i,p) z(i,p,o) t(i,p)
i=instance dimension; o, p=element dimensions; x and y=horizontal dimensions; z=vertical dimension; t=temporal dimension.
31
OGC 11-165r2
Requirement 40 /req/CF-netCDF-1.6-DiscreteSampling/FeatureTypeDimension: Any CF-netCDF Feature Collection variable implementing a Feature type shall define the Dimensions specified in Table 2.
7.5.3
Collections, instances and elements
Referring to Table 2, the Instance Dimension (dimension with subscript i) identifies a particular feature within a collection of features. Instance Variable is a one-dimensional variable (defined in a Discrete Geometry CF Dataset), which has only this dimension (such as x(i) y(i) and z(i) for a TimeSeries. Instance Variables provide the metadata that differentiates individual features [16]. Feature data values are defined as Elements. The Element Dimensions (dimensions with subscripts o and p) distinguish the data elements that compose a single Feature. For example in a collection of TimeSeries features, each time series instance, i, has data values at various times, o. In a collection of Profile features, the subscript, o, provides the index position along the vertical axis of each profile instance [16] 7.5.4
Representations of collections of features in data variables
The individual Features within a Collection need not necessarily contain the same number of Elements. For example, observed in situ time series will commonly contain unique numbers of time points, reflecting different deployment dates of the instruments. Other data sources, such as the output of numerical models, may commonly generate features of identical size. Four types of representation are possible [16], see Figure 5: two Multidimensional Array representations, in which each Feature instance is allocated the identical amount of storage space. In these representations the Instance Dimension and the Element Dimension(s) are distinct CF Coordinate Axes; two Ragged Array representations, in which each Feature is provided with the minimum amount of space that it requires. In these representations the instances of the individual Features are stacked sequentially along the same array dimension as the Elements of the Features; this combined dimension is defined as Sample Dimension.
32
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
7.5.4.1 Multidimensional array
Requirement 41 /req/CF-netCDF-1.6-DiscreteSampling/MultidimensionalArray: Any Multidimensional Array Feature Collection shall have both an Instance Dimension and an Element Dimension. 7.5.4.2 Ragged array
Requirement 42 /req/CF-netCDF-1.6-DiscreteSampling/RaggedArray: Any Ragged Array Feature Collection shall have a Sample Dimension. In addition, the Sample Dimension is occupied by both an Instance Dimension and an Element Dimension.
7.5.5
Orthogonal multidimensional array representation
The Orthogonal Multidimensional Array representation is the simplest representation; it can be used if each Feature instance in the Collection has identical Coordinates along the Element Dimension of the Features. Requirement 43 /req/CF-netCDF-1.6DiscreteSampling/OrthogonalMultidimensionalArray: Any Feature instance of an Orthogonal Multidimensional Array Feature Collection shall have identical Coordinates along the Element Dimension.
7.5.6
Incomplete multidimensional array representation
The Incomplete Multidimensional Array representation can used if the features within a collection do not all have the same number of Elements, but sufficient storage space is available to allocate the number of Elements required by the longest Feature to all Features. That is, Features that are shorter than the longest Feature must be padded with missing values to bring all instances to the same storage size [16]. 7.5.7
Contiguous ragged array representation
The Contiguous Ragged Array representation can be used only if the size of each Feature is known at the time that it is created [16]. In this representation, the Dataset contains a Count Variable, which must be of type integer and must have the Instance Dimension as its sole dimension. The Count Variable contains the number of Elements that each Feature has. 33
OGC 11-165r2
This representation and its Count Variable are identifiable by the presence of an attribute, sample_dimension, found on the Count Variable, which names the Sample Dimension being counted. 7.5.7.1 Contiguous Ragged array
Requirement 44 /req/CF-netCDF-1.6-DiscreteSampling/ContiguousRaggedArray: Any Contiguous Ragged Array dataset shall have a Count Variable. 7.5.7.2 Contiguous ragged array sample dimension
Requirement 45 /req/CF-netCDF-1.6DiscreteSampling/ContiguousRaggedArraySampleDimension: Any Count Variable shall define the attribute sample_dimension. In addition, the attribute sample_dimension names the Sample Dimension being counted.
7.5.8
Indexed ragged array representation
The Indexed Ragged Array representation stores the features interleaved along the Sample Dimension in the Feature Collection data variable. The canonical use case for this representation is the storage of real-time data streams that contain reports from many sources. In this representation, the Dataset contains an Index Variable, which must be of type integer, and must have the Sample Dimension as its single dimension. The Index Variable contains the zero-based index of the Feature to which each Element belongs. This representation and its Index Variable are identifiable by the presence of an attribute, instance_dimension which names the dimension of the Instance Variables (i.e. the Instance Dimensions). 7.5.8.1 Indexed ragged array
Requirement 46 /req/CF-netCDF-1.6-DiscreteSampling/IndexedRaggedArray: Any Indexed Ragged Array dataset shall have an Index Variable. In addition, the Index Variable must be of type integer. In addition, the Index Variable must have the Sample Dimension as its single dimension.
34
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
7.5.8.2 Indexed ragged array instance dimension
Requirement 47 /req/CF-netCDF-1.6DiscreteSampling/IndexedRaggedArrayInstanceDimension: Any Index Variable shall define the attribute instance_dimension. In addition, the attribute instance_dimension names the Instance Dimension characterizing the Instance Variables of the dataset
7.5.9
FeatureType attribute
The global attribute, feature_type, is required for all Discrete Sampling Geometry representations. Requirement 48 /req/CF-netCDF-1.6-DiscreteSampling/Feature_type: Any Ragged Array and Multidimensional Array dataset shall define an attribute feature_type. In addition, the attribute feature_type must be: point | timeSeries | trajectory | profile | timeSeriesProfile | trajectoryProfile.
7.5.10 Coordinates and metadata
Every Element of every Feature must be unambiguously associated with its space and time coordinates and with the feature that contains it. The coordinates attribute must be attached to every Feature Collection data variable to indicate the spatiotemporal coordinate variables that are needed to geo-locate the data. 7.5.10.1 Feature collection coordinates
Requirement 49 /req/CF-netCDF/FeatureCollectionCoordinates: Any Feature Collection data variable shall define an attribute coordinates. 7.5.10.2 Cf role
The cf_role attribute of Instance Variable identifies the roles of variables that identify features in discrete sampling geometries. Requirement 50 /req/CF-netCDF-1.6-DiscreteSampling/Cf_role: The attribute cf_role must be: timeseries_id | profile_id | trajectory_id.
35
OGC 11-165r2
7.5.11 Missing Data
Auxiliary Coordinate Variables (spatial and time), characterizing Feature Collection, must contain missing values to indicate a void in data storage in the file but must not have missing data for any other reason.
Requirement 51 /req/CF-netCDF-1.6-DiscreteSampling/MissingData: Auxiliary Coordinate Variables characterizing Feature Collection shall define the attribute missing_values.
7.5.12 Examples
Annotated examples of Discrete Sampling Geometries are in Appendix A9 of [16].
36
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
file:///C:/Nativi/Activity/Standardization Initiatives/WCS-netCDF-CF/Grid mappings description:http:/cf-pcmdi.llnl.gov/documents/cf-conventions/1.1/ch05s06.html 8
CF-netCDF Mapping to ISO Coverage Model
Having defined the CF-netCDF extension data model (see Figure 2), it is essential to specify its mapping to the ISO coverage model. 8.1
ISO Coverages and Grid Coverages
According to ISO 19123 [4], a coverage is a feature (e.g. a Feature Collection instance) that acts as a function to return values from its range for any direct position within its spatial, temporal or spatiotemporal domain. The spatiotemporal domain of a discrete coverage may be a regular or semi-regular tessellation of the extent of the coverage. Point sets (multi-points coverages) and other sets of non-conterminous geometric objects do not form tessellations. Grid coverages employ a systematic tessellation of the domain. The principal advantage of such tessellations is that they support a sequential enumeration of the elements of the domain, which makes data storage and access more efficient. The tessellation may represent how the data were acquired or how they were computed in a model. The domain of a grid coverage is a set of grid points [4]. 8.2
Dimensionality Challenges
To explicitly map the CF-netCDF array data model (e.g. meteo-ocean multi-dimensional observation and physical model outputs) to the ISO Coverage data model, there is a need to address structural and semantics differences, applying the appropriate constraints and, hence, performing a mediation process. Points to consider include: CF-netCDF data model supports datasets characterized by multiple domains (e.g. more than one coordinate system is defined for a dataset), whereas an ISO coverage is characterized by a single coordinate system. CF-netCDF data model supports datasets characterized by arbitrary multidimensional domains (e.g. collections of spatiotemporal coverages), whereas an ISO coverage domain is either 2-D (space), 3-D (2D + vertical dimension or 2D + time), 4-D (2D + vertical dimension + time). Most commonly, the domain axes of a CF-netCDF dataset coincide with reference system axes. However, CF-netCDF allows arbitrary domain shapes, i.e. domain axes ordering. Thus, it is possible to have a variable v1 defined on a <x, y, t, z> domain and a variable v2 defined on a <z, x, t, y> domain. Since there is a fixed enumeration of allowed compound CRSs in ISO coverages, the transformation of such generalized domain coordinates to ISO CRS coordinates may not be an affine transformation. In other words, mapping CF-netCDF 37
OGC 11-165r2
domains to ISO (geo)rectified domains may require axes reshaping and reordering.
In this document, a two steps approach is adopted to address these mapping issues: a first step consists in defining appropriate profiles for both data models. The second step deals with defining a set of mapping constraint rules, here expressed as conformance requirements. 8.3
CF-netCDF model mapping to ISO Coverage types
Clearly, CF-netCDF datasets encode discrete observations and measurements –i.e. discrete coverages. CF-netCDF datasets (array oriented datasets) are mainly gridded and multi-point data. Thus, this standard will deal with multi-dimensional gridded point and multi-point data – i.e. gridded point coverages and multi-point coverages. 8.3.1
CF-netCDF and Continuous coverages
In most cases, a continuous coverage is also associated with a discrete coverage that provides a set of control values to be used as a basis for evaluating the continuous coverage. Evaluation of the continuous coverage at other direct positions is done by interpolating between the geometry value pairs of the control set. This often depends upon additional geometric objects constructed from those in the control set; these additional objects are typically of higher topological dimension than the control objects. In ISO 19123, such objects are called “geometry value objects”. A geometry value object is a geometric object associated with a set of geometry value pairs that provide the control for constructing the geometric object and for evaluating the coverage at direct positions within the geometric object. A common example of geometry value object is represented by quadrilateral grid cell whose vertices are represented by four grid points (i.e. the set of geometry value pairs). In the netCDF domain, the continuous quadrilateral grid coverage type is associated to a discrete grid point coverage type by sharing the same geometry grid and matrix values; the two coverage subclasses share the GridValueMatrix object and the derived GridPointValuePair objects. The real difference consists in the realization of the locate() operation, which is inherited from the Coverage super-type. Therefore, “the principal use of discrete point coverages is to provide a basis for continuous coverage functions, where the evaluation of the continuous coverage function is accomplished by interpolation between the points of the discrete point coverage”.
The same approach is applied in the case of a multi-point coverage (Discrete Point Coverage in ISO 19123). The principal use of discrete point coverages is to provide a basis for continuous coverage functions, where the evaluation of the continuous coverage 38
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
function is accomplished by interpolation between the points of the discrete point coverage. Most interpolation algorithms depend upon a structured pattern of spatial relationships between the points. This requires either that the points in the spatial domain of the discrete point coverage be arranged in a regular way, or that the spatial domain of the continuous coverage be partitioned in a regular way in relation to the points of the discrete point coverage. Grid coverages employ the first method; Thiessen polygon and TIN coverages employ the second [4].
In the case of netCDF data, the interpolation methods specified by the ISO continuous coverage classes do not apply in general. In fact, in most cases, any scientifically realistic interpolation depends on the physics of the situation as well as the geometry. Hence, any realistic interpolation is actually data dependent. Therefore the netCDF data types don’t implement the evaluation operation using interpolation methods. They are mapped to the ISO discrete coverages because they actually represent sampled points in a continuous space where the intermediate values depend on the solution to physics-based equations that depend on the values of the range data. 8.4
“CF-netCDF Mapping onto ISO 19123” requirements class
The “CF-netCDF Mapping onto ISO 19123” requirements class (URI: http://www.opengis.net/spec/netCDF_data-model/req/CF-netCDF-1.6-ISOMapping) must be applied to map the CF-netCDF datasets to the ISO Coverage model (see Figure 7, Figure 8 and Figure 9Figure 5). This requiremets class is comprised of 16 requirements (from req 52 to req 67) described by the following clauses. 8.4.1
Coverage types
The high-level abstract mapping model is depicted in Figure 7.
39
OGC 11-165r2
Figure 7. CF-netCDF dataset mapping to ISO coverage types
As far as the CF-netCDF and ISO19123 models are concerned, the following profiling constraints are introduced.
For the present standard, any group of CF-netCDF data variables that share the same set of spatial/temporal coordinate variables (e.g. Feature Collection objects) can be mapped to a single discrete coverage, ISO19123:CV_DiscreteCoverage. For the present standard, the following discrete coverage sub-types are considered: ISO19123:CV_DiscreteGridPointCoverage and ISO19123:CV_DiscretePointCoverage. 8.4.1.1 Discrete grid point coverage
Requirement 52 /req/CF-netCDF-1.6-ISOMapping/discreteGridPointCoverage: Any group of CF-netCDF data variables that share the same set of spatial/temporal coordinate variables shall realize ISO19123:CV_DiscreteCoverage sub-types: ISO19123:CV_DiscreteGridPointCoverage or ISO19123:CV_DiscretePointCoverage. In addition, the ISO19123:CV_CoverageFunction shall not define any interpolation method.
Figure 8 depicts the ISO19123:CV_DiscretePointCoverage data model considered
for this standard.
40
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
Figure 8. ISO19123:CV_DiscretePointCoverage data model
Figure 9 depicts the ISO19123:CV_DiscreteGridPointCoverage data model
considered for this standard.
41
OGC 11-165r2
Figure 9. ISO19123:CV_DiscreteGridPointCoverage data model
8.4.2
Mapping rules
The abstract mapping between CF-netCDF data and ISO19123:CV_DiscreteCoverage is showed in Figure 10.
42
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
Figure 10. CF-netCDF dataset mapping ISO19123:CV_DiscreteCoverage
8.4.3
Coordinate System
A set of spatial/temporal Coordinate Variables realizes the domain of the coverage, whose geometry is represented by either a single grid (ISO19123:CV_Grid) or subtype of it. 8.4.3.1 Coverage domain
Requirement 53 /req/CF-netCDF-1.6-ISOMapping/CoverageDomain: the set of spatial/temporal Coordinate Variables, shared by CF-netCDF data Variables, shall realize either an ISO19123:CV_DiscreteGridPointCoverage.CV_GridValueMatrix. CV_GridPoint.gridCoord or ISO19123:CV_PointValuePair.geometry.
NOTE 43
OGC 11-165r2
The domain of each coverage may be described by the extent of the related coordinate axis variables. 8.4.3.2 Dataset CS
CF-netCDF dataset Coordinate System is the composition of the set of coordinate variables / auxiliary coordinate variables commonly shared by CF-netCDF data variables. The coordinate variables / auxiliary coordinate variables realize the coordinate axes. CF Auxiliary Coordinate Variable are used for encoding non standard spatial/temporal dimension (e.g. non monotonically crescent axes).
Requirement 54 /req/CF-netCDF-1.6-ISOMapping/DatasetCS: the CF-netCDF Coordinate System type, which is comprised of a set of spatial/temporal coordinate variables shared by CF-netCDF data variables, shall realize ISO19123:CV_DiscreteCoverage.SC_CRS.SC_CoordinateSystem or a subtype of it (i.e. ISO19123:CV_DiscreteGridPointCoverage.SC_CRS.SC_CoordinateSys tem or ISO19123:CV_DiscretePointCoverage.SC_CRS.SC_CoordinateSystem). Additionally, the spatial/temporal Coordinate Variables and its subtypes (i.e. Vertical Coordinate, Latitude Coordinate, Longitude Coordinate, Time Coordinate elements), and the Auxiliary Coordinate Variables shall realize the related set of SC_CRS.SC_CoordinateSystem.SC_CoordinateSystemAxis 8.4.3.3 Dataset CRS
The grid mapping and/or projection information maps to the ISO1911:CRS and the associated ISO1911:CoordinateSystem (e.g. the units of the coordinate system). Requirement 55 /req/CF-netCDF-1.6-ISOMapping/DatasetCRS: the Grid Mapping Variable projection information characterizing a set of spatial/temporal coordinate variables, shared by CF-netCDF data variables, shall realize ISO19123:CV_DiscreteCoverage.SC_CRS.SC_CoordinateSystem.type or a subtype of it.
NOTES To model “engineering” gridded datasets –i.e. datasets which are referred to a local defined coordinate system- the CRS is an application defined (i.e. engineering) CRS, characterized by an “engineering” datum (see ISO 19111). The associated Coordinate System has the origin and offset attributes coincident with the data grid Cartesian system origin and axes versors (i.e. unit vectors). 44
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
A Scalar Coordinate Variable is a coordinate variable that contains coordinate data. Functionally, it is equivalent to either a size one coordinate variable or a size one auxiliary coordinate variable 8.4.3.4 Coverage function 8.4.3.5 Dataset range
The data variables in a CF-netCDF dataset make up a discrete coverage range with each variable being a separate range field. Requirement 56 /req/CF-netCDF-1.6-ISOMapping/DatasetRange: the CF-netCDF data Variables sharing the common set of spatial/temporal Coordinate Variables, shall realize one of the following objects: (a) ISO19123:CV_DiscreteGridPointCoverage.CV_GridValuesMatrix. values or a subtype of it; (b) ISO19123:CV_DiscretePointCoverage.CV_PointValuePair.value Additionally, the CF Variable data values generate the CV_GeometryValuePair record value(s): (a) CV_GridValueMatrix.values.record entry (i.e. AttributeName, Any); (b) CV_PointValuePair.value.record entry (i.e. AttributeName, Any).
NOTE The attribute values: Sequence <Record> shall be a sequence of N feature attribute value records where N is the number of grid points (or multi-point instances) within the section of the grid (or multi-point domain) specified by extent .
8.4.3.6 Dataset range type
The discrete coverage range is a list of records with an attribute for every related CFnetCDF variable sharing a common set of spatial/temporal coordinate variables. Requirement 57 /req/CF-netCDF-1.6-ISOMapping/DatasetRangeType: the CFnetCDF data Variables sharing a common set of spatial/temporal coordinate variables/auxiliary coordinate variables, shall realize one of the following objects: (a) CV_DiscreteGridPointCoverage.RangeType.AttributesType (i.e. AttributeName, TypeName) or a subtype of it; (b) CV_DiscretePointCoverage.RangeType.AttributesType (i.e. AttributeName, TypeName) or a subtype of it. 8.4.3.7 Mapping Auxiliary Coordinate Variables to range values CF-netCDF dataset may be characterized by arbitrary multi-dimensional domains, whereas an ISO coverage domain is either 2-D (space), 3-D (2D + vertical dimension or 2D + time), 4-D (2D + vertical dimension + time). Thus, the extra dimensions (called parametric dimensions and described by the CF Auxiliary Coordinate Variable entity) must be treated as variables realizing the coverage data range (i.e. CF_Variable).
45
OGC 11-165r2
Requirement 58 /req/CF-netCDF-1.6-ISOMapping/DatasetParametricRangeValues: the CF-netCDF Auxiliary Coordinate Variables (part of the dataset shared coordinate system) which are not space or time dimension, shall realize one of the following objects: (a) ISO19123:CV_DiscreteGridPointCoverage.CV_GridValuesMatrix. values or a subtype of it; (b) ISO19123:CV_DiscretePointCoverage.CV_PointValuePair.value 8.4.3.8 Mapping Auxiliary Coordinate Variables to range type
Requirement 59 /req/CF-netCDF-1.6-ISOMapping/DatasetParametricRangeType: the CF-netCDF Auxiliary Coordinate Variables (part of the dataset shared coordinate system) which are not space or time dimension, shall realize one of the following objects: (a) CV_DiscreteGridPointCoverage.RangeType.AttributesType (i.e. AttributeName, TypeName) or a subtype of it; (b) CV_DiscretePointCoverage.RangeType.AttributesType (i.e. AttributeName, TypeName). 8.4.3.9 Mapping measure variables to range values A CF-netCDF cell Measure Variable may be associated with a variable to indicate extra information about the spatial properties of a variable's grid cells (or point cells). Measure Variable data values must be treated as a range dimension of coverage data.
Requirement 60 /req/CF-netCDF-1.6ISOMapping/MeasureVariableMapping/RangeValues: any CF-netCDF Measure Variable (characterising a CF Variable) shall realize one of the following objects: (a) ISO19123:CV_DiscreteGridPointCoverage.CV_GridValuesMatrix. values or a subtype of it; (b) ISO19123:CV_DiscretePointCoverage.CV_PointValuePair.value 8.4.3.10 Mapping measure variables to range type
Requirement 61 /req/CF-netCDF-1.6ISOMapping/MeasureVariableMapping/RangeType: any CF-netCDF Measure Variable (characterising a CF Variable) shall realize one of the following objects: (a) CV_DiscreteGridPointCoverage.RangeType.AttributesType (i.e. AttributeName, TypeName) or a subtype of it; (b) CV_DiscretePointCoverage.RangeType.AttributesType (i.e. AttributeName, TypeName).
NOTE: 46
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
A Scalar Coordinate Variable is a coordinate variable that contains coordinate data. Functionally, it is equivalent to either a size one coordinate variable or a size one auxiliary coordinate variable 8.4.4
CF Discrete Sampling Geometries
In keeping the previous mapping requirements, Figure 11 depicts the CF Discrete Sampling Geometries mapping to ISO19123:DiscreteCoverage.
Figure 11 - CF-netCDF Discrete Sampling Geometries mapping ISO19123: DiscreteCoverage
CF RaggedArray and MultidimensionalArray entities are CF dataset subtypes; hence, they generate one or more ISO19123:CV_DiscreteCoverage instances. 8.4.4.1 Ragged array
Requirement 62 /req/CF-netCDF-1.6ISOMapping/DiscreteSamplingGeometriesMapping/RaggedArray: Any CFnetCDF Ragged Array shall realize ISO19123:CV_DiscreteCoverage sub-
47
OGC 11-165r2
type: ISO19123:CV_DiscreteGridPointCoverage In addition, the ISO19123:CV_CoverageFunction shall not define any interpolation method. 8.4.4.2 MultidimensionalArray
Requirement 63 /req/CF-netCDF-1.6ISOMapping/DiscreteSamplingGeometriesMapping/MultidimensionalArray: Any CF-netCDF Multidimensional Array shall realize ISO19123:CV_DiscreteCoverage sub-types: ISO19123:CV_DiscreteGridPointCoverage or ISO19123:CV_DiscretePointCoverage. In addition, the ISO19123:CV_CoverageFunction shall not define any interpolation method. 8.4.5
Feature collections
A CF-netCDF Feature Collection is a CF Variable; hence, it generates an ISO19123:CV_CoverageFunction instance. For CF Multidimensional Array Feature Collection, each feature instance is allocated the identical amount of storage space. Both orthogonal multidimensional array and incomplete multidimensional array representations may encode feature instances in the collection which have identical coordinates along the element axis of the features. Therefore, it is possible to map those arrays on either ISO19123:CV_DiscreteGridPointCoverage.CV_GridValuesMatrix or ISO19123:CV_DiscretePointCoverage.CV_PointValuePair.
Ragged Array Feature Collection comprises features which are not characterized by identical coordinates along the element axis of the features. In these representations the instances of the individual features are stacked sequentially along the same array dimension as the elements of the features. Hence, they can be mapped (in an unambiguous way) only to
ISO19123:CV_DiscretePointCoverage.CV_PointValuePair
8.4.5.1 Mapping multidimensional array feature collection to range values
Requirement 64 /req/CF-netCDF-1.6ISOMapping/MultidimensionalArrayFeatureCollectionMapping/RangeValues: Any CF-netCDF Multidimensional Array Feature Collection shall realize one of the following objects: (a) ISO19123:CV_DiscreteGridPointCoverage.CV_GridValuesMatrix. values or a subtype of it; (b) ISO19123:CV_DiscretePointCoverage.CV_PointValuePair.value
48
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
8.4.5.2 Mapping multidimensional array feature collection to range type
Requirement 65 /req/CF-netCDF-1.6ISOMapping/MultidimensionalArrayFeatureCollectionMapping/RangeType: Any CF-netCDF Multidimensional Array Feature Collection shall realize one of the following objects: (a) CV_DiscreteGridPointCoverage.RangeType.AttributesType (i.e. AttributeName, TypeName) or a subtype of it; (b) CV_DiscretePointCoverage.RangeType.AttributesType (i.e. AttributeName, TypeName) or a subtype of it. 8.4.5.3 Mapping ragged array feature collection to rangevalues
Requirement 66 /req/CF-netCDF-1.6ISOMapping/RaggedArrayFeatureCollectionMapping/RangeValues: Any CFnetCDF Multidimensional Array Feature Collection shall realize an ISO19123:CV_DiscretePointCoverage.CV_PointValuePair.value or a subtype of it. 8.4.5.4 Mapping ragged array feature collection to range type
Requirement 67 /req/CF-netCDF-1.6ISOMapping/RaggedArrayFeatureCollectionMapping/RangeType: Any CFnetCDF Ragged Array Feature Collection shall realize an ISO10123:CV_DiscretePointCoverage.RangeType.AttributesType (i.e. AttributeName, TypeName) or a subtype of it.
8.4.6
Mapping rules Summary
A summary of the mapping rules are reported in the Table 3, Table 4 and Table 5.
Table 3. Summary of relationships between CF-netCDF3 and CV_DiscreteGridPointCoverage models: main packages
CF-netCDF concept
ISO Discrete Coverage concept
Mapping Cardinality (obligation)
Description and constraints
Rule #
CF Dataset
CV_DiscreteGridPo intCoverage
1 to 0..n
Grouping the CF_Variables defined in a dataset by their CoordinateSystem, a CV_DiscreteCoverage may be defined for each group. The CV_DiscreteCoverage is realized as either a CV_DiscreteGridPointCoverag e or a
0
or CV_DiscretePointC overage
49
OGC 11-165r2
CV_DiscretePointCoverage. The association of groups and coverages may not be one-to-one, since the concept of coordinate system in CF-netCDF is wider than CRS (see table Table 5). Hence, some of the obtained coverages may be further grouped together. It is possible that a CoordinateSystem entity does not contain any axes allowed in coverage CRS (i.e. only parametric dimension axes); the associated variables would then originate no CV_DiscreteCoverage instance. CF Variable
CV_CoverageFuncti on
1 to 1
and sub-types related to a CoordinateSy stem Coordinate System
The CF Variable belongs to a group of variables which is mappable to ISO CV_DiscreteCoverage
---
See Table 4
CS_CRS
1 to 1
The CF-netCDF CoordinateSystem belongs to a group of variables which is mappable to ISO CV_DiscreteCoverage
---
See Table 5 Discrete Sampling Geometry
CV_DiscreteGridPo intCoverage
1 to 0..n
A CF Discrete Sampling Geometry is a type of CF Dataset
13
1 to 1
A CF Feature Collection is a type of CF Variable
---
or CV_DiscretePointC overage
Feature Collection
CV_CoverageFuncti on
See Table 6
8.4.6.1 Coverage Function Table 4. Summary of relationship between CF-netCDF and CV_DiscreteCoverage models: Coverage Function package
50
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
CF-netCDF concept
ISO Discrete Coverage concept
Mapping Cardinality
Description and constraints
Rule #
Dataset CF Variable
ISO19123:CV_DiscreteGri dPointCoverage.CV_GridV aluesMatrix.values
1 to 1
The set of CF Variables comprising the group that shares a common Coordinate System (whose axes are the set of spatial/temporal CF Coordinate Variables/Auxiliary Coordinate Variables).
7
or ISO19123:CV_DiscretePoi ntCoverage.CV_PointValu ePair.value
Dataset CF Variable
CV_DiscreteGridPointCov erage.RangeType.Attribu tesType entry (i.e. AttributeName, TypeName)
The CF Variable data values generate the range set record values, as either: CV_GridValueMatrix.values .record entry (i.e. AttributeName, Any) or CV_DiscretePointCoverage. CV_PointValuePair.value entry (i.e. AttributeName, Any) 1 to 1
or ISO19123:CV_DiscretePoi ntCoverage. RangeType.AttributesTyp e entry (i.e. AttributeName, TypeName)
Dataset Auxiliary Coordinate Variable
ISO19123:CV_DiscreteGri dPointCoverage.CV_GridV aluesMatrix.values or ISO19123:CV_DiscretePoi ntCoverage.CV_PointValu ePair.value
The range of each CV_DiscreteGridPointCover age is a list of records with an attribute for every related CF-netCDF Variable and for every CF CoordinateVariable/Auxiliary Coordinate Variable (defined by the shared Coordinate System).
8
Thus, the CF Variable properties (i.e. name and type) realize the CV_DiscreteGridPointCover age.RangeType.AttributesT ype entry (i.e. AttributeName, TypeName) or the analogous for multi-point coverages 1 to 1
A CF-netCDF Auxiliary Coordinate Variable may be used to realize a non spatial/temporal dimension (e.g. pressure, density, salinity). That is not allowed in a coverage CRS (i.e. parametric dimension axes). Thus, the auxiliary coordinate variable does not behave like a
51
9
OGC 11-165r2
discrete coverage domain axis; on the contrary, it behaves like a discrete coverage range axis Dataset Auxiliary Coordinate Variable
CV_DiscreteGridPointCov erage.RangeType.Attribu tesType entry (i.e. AttributeName, TypeName)
1 to 1
or
ISO19123:CV_DiscreteGri dPointCoverage.CV_GridV aluesMatrix.values
1 to 1
ISO19123:CV_DiscretePoi ntCoverage.CV_PointValu ePair.value
CV_DiscreteGridPointCov erage.RangeType.Attribu tesType entry (i.e. AttributeName, TypeName) or ISO19123:CV_DiscretePoi ntCoverage. RangeType.AttributesTyp e entry (i.e. AttributeName, TypeName)
A CF-netCDF cell Measure Variable is associated with a variable to indicate extra
A CF-netCDF cell Measure Variable must be treated as a range variable of the coverage. 1 to 1
A CF-netCDF cell Measure Variable is associated with a variable to indicate extra
information about the spatial properties of a variable's grid cells (or point cells).
A CF-netCDF cell Measure Variable must be treated as a range variable of the coverage
Note: A Scalar Coordinate Variable is a coordinate variable that contains coordinate data. Functionally, it is equivalent to either a size one coordinate variable or a size one auxiliary coordinate variable
52
11
information about the spatial properties of a variable's grid cells (or point cells).
or
Dataset MeasureVariable
10
That is not allowed in a coverage CRS (i.e. parametric dimension axes). Thus, the auxiliary coordinate variable does not behave like a discrete coverage domain axis; on the contrary, it behaves like a discrete coverage range axis.
ISO19123:CV_DiscretePoi ntCoverage. RangeType.AttributesTyp e entry (i.e. AttributeName, TypeName) Dataset MeasureVariable
A CF-netCDF Auxiliary Coordinate Variable may be used to realize a non spatial/temporal dimension (e.g. pressure, density, salinity).
Copyright © 2013 Open Geospatial Consortium
12
OGC 11-165r2
8.4.6.2 Coverage Coordinate System and Grid Geometry Table 5. Summary of relationship between the CF-netCDF and the DiscreteCoverage profile models: Coordinate System package
53
OGC 11-165r2
CF-netCDF concept
ISO Discrete Coverage concept
Mapping Cardinality
Description and constraints
Rule #
Coordinate System
CV_DiscreteGridPoint Coverage.SC_CRS.SC_C oordinateSystem
1 to 1
Parametric coordinate systems are allowed in CF-netCDF but not in ISO CRS1. A coordinate system is of type parametric if a physical or material property is used as a dimension [21]; valuable examples are pressure in meteorology and density in oceanography.
1
or CV_DiscretePointCove rage.SC_CRS.SC_Coord inateSystem
It is possible that a CF-netCDF Coordinate System entity does not contain any axes allowed in ISO coverage CRS (i.e. only parametric dimension axes); Only spatial and temporal coordinates in a CF-netCDF Coordinate System become part of a coverage CRS, whereas parametric dimension axes are mapped to compound range set components. Spatial/temporal CF Coordinate Variable or subtypes (Latitude Coordinate, Longitude Coordinate, Vertical Coordinate, Time Coordinate)
ISO19123:CV_Discrete GridPointCoverage.CV _GridValueMatrix.CV_ GridPoint.gridCoord or sub-types (e.g. ISO19123:CV_GridValu eMatrix)
1 to 1
The set of monotonically crescent spatial/temporal coordinate variables (shared by a group of CF Variables) maps to the discrete coverage domain set, whose geometry is represented by either a single grid ISO19123:CV_Grid or
2
A CF-netCDF spatial/temporal Coordinate Variable shared by a group of CF
3
a set of points, GM_Points
or
ISO19123:CV_Discre tePointCoverage.CV _PointValuePair.ge ometry.GM_Point Spatial/temporal CF CoordinateVariable
CV_DiscreteGridPoint Coverage.SC_CRS.SC_C oordinateSystem.SC_C
1 to 1
1 Future extension to ISO 19111 (see ISO/CD19111-2) may permit parametric CRS, that would accommodate the
pressure axis.
54
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
or subtypes (Latitude Coordinate, Longitude Coordinate, Vertical Coordinate, Time Coordinate)
oordinateSystemAxis
CF Auxiliary Coordinate Variable
ISO19123:CV_Discrete GridPointCoverage.CV _GridValueMatrix.CV_ GridPoint.gridCoord or sub-types (e.g. ISO19123:CV_GridValu eMatrix)
Variables.
or CV_DiscretePointCove rage.SC_CRS.SC_Coord inateSystem. SC_CoordinateSystemA xis 1 to 1
or
CV_DiscreteGridPoint Coverage.SC_CRS.SC_C oordinateSystem.SC_C oordinateSystemAxis
a set of points, GM_Points
1 to 1
or CV_DiscretePointCove rage.SC_CRS.SC_Coord inateSystem. SC_CoordinateSystemA xis Grid Mapping Variable
ISO19123:CV_Discrete GridPointCoverage.SC _CRS.SC_CoordinateSy stem.type
4
Coordinate data values map to the discrete coverage domain set, whose geometry is represented by either a single grid ISO19123:CV_Grid or
ISO19123:CV_Discre tePointCoverage.CV _PointValuePair.ge ometry.GM_Point CF Auxiliary Coordinate Variable
A CF-netCDF Auxiliary Coordinate Variable realizes a "non-standard" or non monotonically crescent spatial/temporal dimension, which is shared by a group of CF Variables (e.g. CF Feature Collections).
1 to 1
A CF-netCDF Auxiliary Coordinate Variable realizes a "non-standard" or non monotonically crescent spatial/temporal dimension, which is shared by a group of CF Variables (e.g. CF Feature Collections).
CF Grid Mapping Variable is used as a container for attributes that define a specific grid mapping.
8.4.6.3 CF Discrete Sampling Geometries Table 6. Summary of relationship between the CF-netCDF and the DiscreteCoverage profile models: Discrete Sampling Geometries package
55
5
6
OGC 11-165r2
CF-netCDF concept
ISO Discrete Coverage concept
Mapping Cardinality
Description and constraints
Rule #
CF Multidimensional Array Feature Collection
ISO19123:CV_Discrete GridPointCoverage.CV _GridValuesMatrix.va lues
1 to 1
A CF-netCDF Multidimensional Array Feature Collection is a CF Variable whose feature instances are defined on a set of common element axes
14
1 to 1
A CF-netCDF Multidimensional Array Feature Collection is a CF Variable whose feature instances have common dimensions along the set of common element axes.
15
or ISO19123:CV_Discrete PointCoverage.CV_Poi ntValuePair.value CF Multidimensional Array Feature Collection
CV_DiscreteGridPoint Coverage.RangeType.A ttributesType entry (i.e. AttributeName, TypeName) or ISO19123:CV_Discrete PointCoverage. RangeType.Attributes Type entry (i.e. AttributeName, TypeName)
CF Ragged Array Feature Collection
ISO19123:CV_Discrete PointCoverage.CV_Poi ntValuePair.value
1 to 1
A CF-netCDF Multidimensional Array Feature Collection is a CF Variable whose feature instances have different dimensions along the common set of element axes.
16
CF Ragged Array Feature Collection
ISO19123:CV_Discrete PointCoverage. RangeType.Attributes Type entry (i.e. AttributeName, TypeName)
1 to 1
A CF-netCDF Multidimensional Array Feature Collection is a CF Variable whose feature instances have different dimensions along the common set of element axes.
17
56
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
9
Bibliography
[1]
OGC 10-090, NetCDF Core, version 1.0
[2]
OGC 10-091, CF-netCDF3 Data Model Extension standard
[3]
OGC 10-92, NetCDF Binary Encoding Extension Standard: NetCDF Classic and 64-bit Offset Format, version 1.0.0.
[4]
ISO/TC 211, IS 19123:2005 Geographic information — Schema for coverage geometry and functions, ISO/IS 19123:2005.
[5]
UNIDATA netCDF home available at: http://www.unidata.ucar.edu/software/netcdf/
[6]
NetCDF documents available at: http://www.unidata.ucar.edu/software/netcdf/docs/
[7]
NetCDF Users Guide available at: http://www.unidata.ucar.edu/software/netcdf/docs/netcdf.html
[8]
NetCDF Climate and Forecast (CF) Metadata Conventions, Version 1.5, 25 October, 2010; available at: http://cf-pcmdi.llnl.gov/documents/cf-conventions/1.5/cf-conventions.pdf
[9]
UDUNITS Software Package, UNIDATA Program Center of the University Corporation for Atmospheric Research (available at ftp://ftp.unidata.ucar.edu/pub/udunits/udunits-2.1.24.tar.gz)
[10] CF Conformance Requirements and Recommendations, available at: http://cfpcmdi.llnl.gov/conformance [11] UNIDATA Best Practice recommendations on writing netCDF files, available at: http://www.unidata.ucar.edu/packages/netcdf/BestPractices.html [12] NetCDF XML encoding (ncML) available at: http://www.unidata.ucar.edu/software/netcdf/ncml/ [13] S. Nativi, J. Caron, E. Davis and B. Domenico, “Design and implementation of netCDF Markup Language (NcML) and Its GML-based extension (NcML-GML)”, Computers & Geosciences Journal, Volume 31, Issue 9, November 2005, Pages 1104-1118, Elsevier Publication. http://linkinghub.elsevier.com/retrieve/pii/S0098300405001019 [14] S. Nativi and B, Domenico, “Enabling interoperability for Digital Earth: Coverage access services”, International Journal of Digital Earth, Volume 2, Supplement 1, 2009, Pages: 79-104, Taylor & Francis ed., ISSN: 1753-8955 (electronic) 17538947 (paper), 2009. [15] Mazzetti, P.; Nativi, S., J. Caron, “RESTful Implementation of Geospatial Services”, International Journal of Digital Earth, Volume 2, Supplement 1, 2009, 57
OGC 11-165r2
pages: 40-61, Taylor & Francis ed., ISSN: 1753-8955 (electronic) 1753-8947 (paper), 2009, 2009. [16]
NetCDF Climate and Forecast (CF) Metadata Conventions, Version 1.6, 4 May, 2011; available at: http://cf-pcmdi.llnl.gov/documents/cf-conventions/1.6/cfconventions.html
[17] NASA ESDS-RFC-021v0.02, CF Metadata Conventions, April 2010. [18] NASA ESDS–RFC-021 Technical Working Group Final Report.
58
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
Annex A (normative) Abstract test suite A WCS CF-netCDF extension implementation must satisfy the following system characteristics to be conformant with this standard.
A.1 Conformance Test Classes: CF-netCDF-1.6 This document establishes three conformance classes CF-netCDF, with URIs: 1. http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6-core. 2. http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6DiscreteSampling 3. http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6ISOMapping
A.2 CF-netCDF-1.6-core conformance class This is the core conformance class for this standard. There is a dependency on the core conformance class for OGC Network Common Data Form (netCDF) Core Encoding Standard version 1.0 (OGC 10-090r3).
Conformance Class http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6-core Requiremen ts
http://www.opengis.net/spec/netCDF_data-model/req/CF-netCDF-1.6-core
Dependency
http://www.opengis.net/spec/netcdf/1.0/conf/core
Test
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6core/structural-adherence
Test
Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-core/structural-adherence
Test purpose
Any data instantiating a concrete CF-netCDF dataset shall conform with the UML diagrams in Figure 3 and Figure 4
Test method
Open the CF-netCDF data and verify that it represents information using the entities and the relations shown in the UML diagrams in Figure 3 and Figure 4.
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6-
59
OGC 11-165r2
core/Conventions
Test
Test
Requirement
http://www.opengis.net/spec/netCDF_data-model./req/CFnetCDF-1.6-core/Conventions
Test purpose
Any CF-netCDF Dataset that uses the CF convention shall define the global attribute Conventions to the string value "CF1.6".
Test method
Open the CF-netCDF data and verify that its global attribute Conventions is equal to "CF-1.6".
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6core/NamingConventions Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-core/NamingConventions
Test purpose
CF-netCDF Variable, Dimension and Attribute names
Test method
Open the CF-netCDF data and verify that all Variables , Dimensions and Attributes names begin with a letter and are composed of letters, digits, and underscore characters.
shall begin with a letter and be composed of letters, digits, and underscores.
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6core/ReservedAttributeNames Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-core/ReservedAttributeNames
Test purpose
CF-netCDF Attribute names commencing with underscore ('_') shall be reserved for use by the netCDF library /req/CF-netCDF-
1.6-core/ReservedAttributeNames: CF-netCDF Attribute names commencing with underscore ('_') shall be reserved for use by the netCDF library.
Test method Test
60
Open the CF-netCDF data and verify that no Attribute name, defined by the Authors, begins with the underscore ('_') character.
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6core/StandardAttributeNames requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-core/StandardAttributeNames
Test purpose
The list of CF-netCDF Attribute names reported in the Appendix A of [8] shall be considered standard names and therefore reserved.
Test method
Open the CF-netCDF data and verify that no Attribute name, Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
defined by the Authors, matches any name reported in the Appendix A of [8]. Test
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6core/StandardNames Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-core/StandardNames
Test purpose
Any CF-netCDF Variable shall define either a standard_name attribute or a long_name attribute. Exception: this is not mandatory only for Boundary Variable
Test method
Test
Open the CF-netCDF data and verify that all Variables (with the exception of the Boundary Variables) have either a standard_name attribute or a long_name attribute.
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6core/StandardNameValues Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-core/StandardNameValues
Test purpose
A standard name shall contain no whitespace and shall be case sensitive. In addition, the set of permissible standard names is contained in the CF standard name table published at: http://cfpcmdi.llnl.gov/documents/cf-standard-names/standard-nametable/18/cf-standard-name-table.xml
Test method
Test
Test
Open the CF-netCDF data and verify that all Variable standard_names match an entry of the CF standard name table (published at: http://cf-pcmdi.llnl.gov/documents/cf-standardnames/standard-name-table/18/cf-standard-name-table.xml) and that do not contain any whitespace.
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6-
core/Dimensions
Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CF-netCDF-
Test purpose
For any CF-netCDF Variable, its Dimension names shall have different names.
Test method
Open the CF-netCDF data and verify that for any Variable its Dimensions have different names.
1.6-core/Dimensions
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6core/DimensionsShape
61
OGC 11-165r2
Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-core/DimensionsShape
Test purpose
For a given spatial-temporal CF-netCDF Variable, its spatialtemporal Dimensions order shall appear in the relative order T, then Z, then Y, then X. In addition, any other dimension shall be placed to the left of the spatiotemporal dimensions.
Test method
Test
Open the CF-netCDF data and verify that for any spatial-temporal Variable its dimensions order matches the following shape: T, then Z, then Y, then X. In addition, verify that any other Dimension (i.e. parametric dimensions) is placed to the left of the spatiotemporal dimensions.
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6-core/Units Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-core/Units
Test purpose
Any dimensional CF-netCDF Variable (i.e. CF-netCDF Variable that represents dimensional quantity) shall define a units attribute. Exception, this is not mandatory only for Boundary Variable In addition, the units value may be physically equivalent (not necessarily identical) to the canonical units for the Variable.
Test method
Test
Open the CF-netCDF data and verify that any Variable that represents dimensional quantity (with the exception of Boundary Variables) has a units attribute. In addition, verify that the units value may be physically equivalent (not necessarily identical) to the canonical units for the Variable.
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6core/UnitsValue Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-core/UnitsValue
Test purpose
Any units attribute value shall be a string that can be recognized by UNIDATA"s Udunits package [9]. In addition, exceptions are the units level, layer, and sigma_level.
Test method
62
Open the CF-netCDF data and verify that any units attribute value (with the exception of: the units level, layer, and sigma_level) is recognized by the UNIDATA"s Udunits package [9]. Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
Test
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6core/UnitsConsistency Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-core/UnitsConsistency
Test purpose
The units of a CF-Variable shall be consistent with the units given in the standard name table (published at: http://cfpcmdi.llnl.gov/documents/cf-standard-names/standard-nametable/18/cf-standard-name-table.xml ) In addition, the units must also be consistent with a specified cell_methods attribute, if one is present.
Test method
Test
Open the CF-netCDF data and verify that the units attribute value of any CF-Variable is consistent with the units given in the standard name table (published at: http://cfpcmdi.llnl.gov/documents/cf-standard-names/standard-nametable/18/cf-standard-name-table.xml). In addition, if a cell_methods attribute is present, verify that the units is consistent with it.
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6core/CoordinateData Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-core/CoordinateData
Test purpose
Any Variable containing coordinate data shall be: a Coordinate Variable | an Auxiliary Coordinate Variable
Test method
Test
Test
Open the CF-netCDF data and verify that any Variable containing coordinate information is either a Coordinate Variable entity or an Auxiliary Coordinate Variable entity.
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6core/CoordinateData/CoordinateVariable Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-core/CoordinateData/CoordinateVariable
Test purpose
A Coordinate Variable shall be defined for each Dimension that correspond to one dimensional space or time coordinates.
Test method
Open the CF-netCDF data and verify that any Dimension that corresponds to one dimensional space or time coordinates has an associate Coordinate Variable .
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6-
63
OGC 11-165r2
core/CoordinateVariableDimension
Test
Test
Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-core/CoordinateVariableDimension
Test purpose
Any Coordinate Variable shall have a single Dimension whose name matches the Variable name.
Test method
Open the CF-netCDF data and verify that any Coordinate Variable has a single Dimension whose name matches the Variable name.
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6core/CoordinateVariableValues Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-core/CoordinateVariableValues
Test purpose
Coordinate Variable values shall be ordered monotonically.
Test method
Open the CF-netCDF data and verify that the values of any Coordinate Variable is ordered monotonically.
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6core/CoordinateVariable/AxisAttribute Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-core/CoordinateVariable/AxisAttribute
Test purpose
For any Coordinate Variable the attribute axis shall be given one of the values X, Y, Z or T. In addition these values stand for a longitude, latitude, vertical, or time axis respectively for the CF-netCDF cordinate types: LongitudeCoordinate, LatitudeCoordinate, VerticalCoordinate, TimeCoordinate .
Test method
Test
64
Open the CF-netCDF data and verify that any attribute axis of any Coordinate Variable has one of the following values: X, Y, Z or T.
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6-core/ CoordinateVariable/AxisAttributeSemantic Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-core/CoordinateVariable/AxisAttributeSemantic
Test purpose
The values X and Y for the axis attribute shall be used to identify horizontal coordinate variables.
Test method
Open the CF-netCDF data and verify that the values X and Y for the axis attribute identify horizontal coordinate variables. Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
Test
Test
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6core/CoordinateVariable/Missing_valuesAttribute Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-core/CoordinateVariable/Missing_valuesAttribute
Test purpose
Coordinate Variable shall not define an attribute missing_values.
Test method
Open the CF-netCDF data and verify that no Coordinate Variable defines a missing_values attribute.
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6core/LatitudeCoordinate Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-core/LatitudeCoordinate
Test purpose
For any Latitude Coordinate the units attribute values shall be: degrees_north | degree_north | degree_N, | degrees_N | degreeN | degreesN. In addition, Coordinates of latitude with respect to a rotated pole should be given units of degrees, not degrees_north or equivalents.
Test method
Test
Open the CF-netCDF data and verify that for any Latitude Coordinate the units attribute has one of the following values: degrees_north ; degree_north ; degree_N; degrees_N ; degreeN ; degreesN. In addition, verify that coordinates of latitude with respect to a rotated pole have units of degrees, not degrees_north or equivalents.
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6core/LongitudeCoordinate Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-core/LongitudeCoordinate
Test purpose
For any Longitude Coordinate the units attribute values shall be: degrees_east | degree_east | degree_E | degrees_E | degreeE | degreesE. In addition, Coordinates of longitude with respect to a rotated pole should be given units of degrees, not degrees_east or equivalents.
Test method
Open the CF-netCDF data and verify that for any Longitude Coordinate the units attribute has one of the following values: degrees_east; degree_east ; degree_E ; degrees_E ; degreeE ; degreesE. In addition, verify that coordinates of longitude with respect to a rotated pole have units of degrees,
65
OGC 11-165r2
not degrees_east or equivalents. Test
Test
Test
Test
66
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6core/VerticalCoordinatePositiveAttribute Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-core/VerticalCoordinatePositiveAttribute
Test purpose
Any Vertical Coordinate shall define the positive attribute whose values shall be: up | down.
Test method
Open the CF-netCDF data and verify that any Vertical Coordinate defines the positive attribute whose value is one of the followings: up ; down
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6core/VerticalCoordinateUnitsAttribute Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-core/VerticalCoordinateUnitsAttribute
Test purpose
For any Vertical Coordinate the units attribute values shall be: units of pressure as listed in the file udunits.dat (e.g. bar, millibar, decibar, atmosphere (atm), pascal (Pa), and hPa) | units of length as listed in the file udunits.dat (e.g. meter, metre, m, kilometer, km) | other units listed in the file udunits.dat that may under certain circumstances reference vertical position such as units of density or temperature.
Test method
Open the CF-netCDF data and verify that for any Vertical Coordinate the units attribute has one of the following values: units of pressure as listed in the file udunits.dat (e.g. bar, millibar, decibar, atmosphere (atm), pascal (Pa), and hPa) ; units of length as listed in the file udunits.dat (e.g. meter, metre, m, kilometer, km) ; other units listed in the file udunits.dat that may, under certain circumstances, reference vertical position such as units of density or temperature.
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6core/DimensionlessVerticalCoordinate Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-core/DimensionlessVerticalCoordinate
Test purpose
Any Dimensionless Vertical Coordinate shall be defined in Appendix D of [8].
Test method
Open the CF-netCDF data and verify that any Dimensionless Vertical Coordinate is defined in Appendix D of [8].
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
core/DimensionlessVerticalCoordinateFormula_TermsAttribute Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6core/DimensionlessVerticalCoordinateFormula_TermsAttribute
Test purpose
Any Dimensionless Vertical Coordinate shall define the formula_terms attribute./req/CF-netCDF-1.6-
core/DimensionlessVerticalCoordinateFormula_TermsA ttribute: Any Dimensionless Vertical Coordinate shall define the formula_terms attribute.
Test method Test
Test
Open the CF-netCDF data and verify that any Dimensionless Vertical Coordinate has a formula_terms attribute.
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6core/TimeCoordinateUnitsAttribute Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-core/TimeCoordinateUnitsAttribute
Test purpose
For any Time Coordinate the units attribute values shall be units of time as listed in the file udunits.dat (e.g. day or (d), hour or (hr, h), minute or (min), and second or (sec, s) ).
Test method
Open the CF-netCDF data and verify that for any Time Coordinate the units attribute value is a unit of time as listed in the file udunits.dat (e.g. day or (d), hour or (hr, h), minute or (min), and second or (sec, s) ).
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6core/TimeCoordinateCalendarAttribute Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-core/TimeCoordinateCalendarAttribute
Test purpose
Any Time Coordinate shall define the calendar attribute In addition, the values currently defined for calendar are: gregorian or standard | proleptic_gregorian | noleap or 365_day | all_leap or 366_day | 360_day | julian | none.
Test method
Test
Open the CF-netCDF data and verify that any Time Coordinate has a calendar attribute. In addition, verify that the calendar attribute has one of the following values: gregorian or standard ; proleptic_gregorian ; noleap or 365_day ; all_leap or 366_day ; 360_day ; julian ; none.
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6-
67
OGC 11-165r2
core/TimeCoordinateNonstandardCalendar Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-core/TimeCoordinateNonstandardCalendar
Test purpose
Any Time Coordinate characterized by a nonstandard calendar shall define the month_lengths attribute to specify its calendar. In addition, the attribute value shall be for year: a vector of size 12, specifying the number of days in the months from January to December. In addition, for leap year two other attributes of the time axis shall be defined: leap_year and leap_month.
Test method
Test
Open the CF-netCDF data and verify that for any Time Coordinate characterized by a nonstandard calendar has the month_lengths attribute to specify its calendar. In addition, verify that the month_lengths attribute, for non-leap year, is a vector of size 12, specifying the number of days in the months from January to December. In addition, verify that for leap year two other attributes of the time axis are defined: leap_year and leap_month.
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6core/AuxiliaryCoordinateVariable Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-core/AuxiliaryCoordinateVariable
Test purpose
An Auxiliary Coordinate Variable shall be identified by the coordinates attribute defined by a netCDF Variable. In addition, the value of the coordinates attribute is a blank separated list of the names of Auxiliary Coordinate
Variables
Test method
Test
68
Open the CF-netCDF data and verify that any Auxiliary Coordinate Variable is associated to a netCDF Variable by the coordinates attribute characterizing the netCDF Variable. In addition, verify that the value of the coordinates attribute is a blank separated list of the names of Auxiliary Coordinate Variables.
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6core/ScalarCoordinateVariable Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-core/ScalarCoordinateVariable
Test purpose
A Scalar Coordinate Variable shall define a coordinate Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
which is single-valued. In addition, the Scalar Coordinate Variable name shall not match the name of any dimension in the netCDF dataset. Test method
Test
Open the CF-netCDF data and verify that any Scalar Coordinate Variable defines a coordinate which is singlevalued. In addition, verify that the Scalar Coordinate Variable name does not match the name of any dimension in the netCDF dataset.
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6core/HorizontalCRS Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-core/HorizontalCRS
Test purpose
For any CF Variable defined on a horizontal grid not defined on latitude and longitude dimensions, true latitude and longitude coordinates shall be supplied as Coordinate Variables and associated via the coordinates attribute. In addition: the attribute grid_mapping may be used to supply the description of the mapping between the given grid coordinate variables and the true latitude and longitude coordinates. In addition: the grid_mapping attribute takes a string value which is the name of a Grid Mapping Variable
Test method
Test
Open the CF-netCDF data and verify that for any CF Variable defined on a horizontal grid not defined on latitude and longitude dimensions, the CF Variable has a coordinates attribute which associates a couple of Coordinate Variables defining the true latitude and longitude coordinates. In addition, if the grid_mapping attribute is used to supply the description of the mapping between the given grid coordinate variables and the true latitude and longitude coordinates, verify that the grid_mapping attribute takes a string value which is the name of a Grid Mapping Variable.
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6core/GridMappingVariable Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-core/GridMappingVariable
Test purpose
Any Grid Mapping Variable shall define the grid_mapping_name attribute.
Test method
Open the CF-netCDF data and verify that any Grid Mapping Variable has a grid_mapping_name attribute.
69
OGC 11-165r2
Test
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6core/BoundaryVariable Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-core/BoundaryVariable
Test purpose
Any Boundary Variable shall define one more dimension than its associated Coordinate or Auxiliary Coordinate Variable. In addition, The additional dimension shall be the most rapidly varying one, and its size is the maximum number of cell vertices
Test method
Open the CF-netCDF data and verify that any Boundary Variable has one more dimension than its associated Coordinate or Auxiliary Coordinate Variable. In addition, verify that the additional dimension is the most rapidly varying one, and its size is the maximum number of cell vertices.
Test
Test
Test
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6core/CellMeasures Requireme nt
http://www.opengis.net/spec/netCDF_data-model/req/CF-netCDF1.6-core/CellMeasures
Test purpose
cell_measures attribute shall be a string attribute comprising a
Test method
Open the CF-netCDF data and verify that any cell_measures attribute is a string attribute comprising a list of blank-separated pairs of words of the form "measure: name".
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6core/MeasureVariable Requireme nt
http://www.opengis.net/spec/netCDF_data-model/req/CF-netCDF1.6-core/MeasureVariable
Test purpose
Measure Variable dimensions shall be the same as or a subset of the dimensions of the CF Variable to which they are related.
Test method
Open the CF-netCDF data and verify that the Measure Variable dimensions are the same as or a subset of the dimensions of the CF Variable to which they are related
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6core/CellMethods Requireme nt
70
list of blank-separated pairs of words of the form "measure: name".
http://www.opengis.net/spec/netCDF_data-model/req/CF-netCDF1.6-core/CellMethods Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
Test purpose
cell_methods attribute shall be a string attribute comprising a list
of blank-separated words of the form "name: method".
In addition, name can be: a Dimension of the variable (defining the attribute), a Scalar Coordinate Variable, a valid standard name, or the word "area". In addition, the value of method should be: point | sum | mean | maximum | minimum | mid_range | standard_deviation | variance | mode | median. Test method
Open the CF-netCDF data and verify that any cell_methods attribute is a string attribute comprising a list of blank-separated words of the form "name: method". In addition, verify that name is one of the followings: a Dimension of the variable (defining the attribute), a Scalar Coordinate Variable, a valid standard name, or the word "area". In addition, verify that the value of method is one of the followings: point; sum ; mean ; maximum ; minimum ; mid_range ; standard_deviation ; variance ; mode ; median.
71
OGC 11-165r2
A.3 CF-netCDF-1.6-DiscreteSampling conformance class This is the Discrete Sampling conformance class for this standard. There is a dependency on the core conformance class of this standard (see A.2).
Conformance Class http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6-DiscreteSampling Requirements
http://www.opengis.net/spec/netCDF_data-model/req/CF-netCDF-1.6DiscreteSampling
Dependency
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6-core
Test
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6DiscreteSampling/DistrictSamplingGeometriesModel
Test
Test
Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6DiscreteSampling/DistrictSamplingGeometriesModel
Test purpose
Any data instantiating a concrete CF-netCDF DistrictSamplingGeometry dataset shall conform with the UML diagrams in Figure 5 and Figure 6.
Test method
Open the CF-netCDF data and verify that it represents information using the entities and the relations shown in the UML diagrams in Figure 5 and Figure 6.
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6DiscreteSampling/FeatureCollection Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-DiscreteSampling/FeatureCollection
Test purpose
CF-netCDF Feature Collection shall contain Feature
Test method
Open the CF-netCDF data and verify that any Feature Collection contains Feature instances of the same type.
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6DiscreteSampling/Feature Requirement
72
instances of the same type.
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-DiscreteSampling/Feature Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
Test
Test
Test
Test purpose
CF-netCDF Dataset shall contain Feature Collection
Test method
Open the CF-netCDF data and verify that any Dataset contains Feature Collection variables of the same feature type.
variables of the same feature type.
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6DiscreteSampling/FeatureTypeDimension Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-DiscreteSampling/FeatureTypeDimension
Test purpose
Any CF-netCDF Feature Collection variable implementing a Feature type shall define the Dimensions specified in Table 2.
Test method
Open the CF-netCDF data and verify that any CF-netCDF Feature Collection variable implementing a Feature type defines the Dimensions specified in Table 2.
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6DiscreteSampling/MultidimensionalArray Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-DiscreteSampling/MultidimensionalArray
Test purpose
Any Multidimensional Array Feature Collection shall have both an Instance Dimension and an Element Dimension.
Test method
Open the CF-netCDF data and verify that any
Multidimensional Array Feature Collection has both an Instance Dimension and an Element Dimension.
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6DiscreteSampling/RaggedArray Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-DiscreteSampling/RaggedArray
Test purpose
Any Ragged Array Feature Collection shall have a Sample Dimension. In addition, the Sample Dimension is occupied by both an Instance Dimension and an Element Dimension.
Test method
Test
Open the CF-netCDF data and verify that any Ragged Array Feature Collection has a Sample Dimension. In addition, verify that the Sample Dimension is occupied by both an Instance Dimension and an Element Dimension.
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6-
73
OGC 11-165r2
DiscreteSampling/OrthogonalMultidimensionalArray
Test
Test
Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6DiscreteSampling/OrthogonalMultidimensionalArray
Test purpose
Any Feature instance of an Orthogonal
Test method
Open the CF-netCDF data and verify that any Feature instance of an Orthogonal Multidimensional Array Feature Collection has identical Coordinates along the Element Dimension.
Multidimensional Array Feature Collection shall have identical Coordinates along the Element Dimension.
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6DiscreteSampling/ ContiguousRaggedArray Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-DiscreteSampling/ ContiguousRaggedArray
Test purpose
Any Contiguous Ragged Array dataset shall have a Count Variable.
Test method
Open the CF-netCDF data and verify that any Contiguous Ragged Array dataset has a Count Variable.
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6DiscreteSampling/ContiguousRaggedArraySampleDimension Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6DiscreteSampling/ContiguousRaggedArraySampleDimension
Test purpose
Any Count Variable shall define the attribute sample_dimension. In addition, the attribute sample_dimension names the Sample Dimension being counted.
Test method
Test
74
Open the CF-netCDF data and verify that any Count Variable has the attribute sample_dimension. In addition, verify that the attribute sample_dimension names the Sample Dimension being counted.
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6DiscreteSampling/IndexedRaggedArray Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-DiscreteSampling/IndexedRaggedArray
Test purpose
Any Indexed Ragged Array dataset shall have an Index Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
Variable.
In addition, the Index Variable must be of type integer. In addition, the Index Variable must have the Sample Dimension as its single dimension. Test method
Open the CF-netCDF data and verify that any Indexed RaggedArray dataset has an Index Variable. In addition, verify that the Index Variable is of type integer. In addition, verify that the Index Variable has the Sample Dimension as its single dimension.
Test
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6DiscreteSampling/IndexedRaggedArrayInstanceDimension Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6DiscreteSampling/IndexedRaggedArrayInstanceDimension
Test purpose
Any Index Variable shall define the attribute instance_dimension. In addition, the attribute instance_dimension names the Instance Dimension characterizing the Instance Variables of the dataset
Test method
Open the CF-netCDF data and verify that any Index Variable has the attribute instance_dimension. In addition, verify that the attribute instance_dimension names the Instance Dimension characterizing the Instance Variables of the dataset.
Test
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6DiscreteSampling/Feature_type Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-DiscreteSampling/Feature_type
Test purpose
Any Ragged Array and Multidimensional Array dataset shall define an attribute feature_type. In addition, the attribute feature_type must be: point | timeSeries | trajectory | profile | timeSeriesProfile | trajectoryProfile.
Test method
Open the CF-netCDF data and verify that any Ragged Array and Multidimensional Array dataset has an attribute feature_type. In addition, verify that the attribute feature_type has one of the following values: point ;
75
OGC 11-165r2
timeSeries ; trajectory ; profile ; timeSeriesProfile ; trajectoryProfile.
Test
Test
Test
76
http://www.opengis.net/spec/netCDF_data-model/conf/CFnetCDF/FeatureCollectionCoordinates Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF/FeatureCollectionCoordinates
Test purpose
Any Feature Collection data variable shall define an attribute coordinates.
Test method
Open the CF-netCDF data and verify that any Feature Collection data variable has an attribute coordinates.
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6DiscreteSampling/Cf_role Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-DiscreteSampling/Cf_role
Test purpose
The attribute cf_role must be: timeseries_id | profile_id | trajectory_id.
Test method
Open the CF-netCDF data and verify that any attribute cf_role has one of the following values: timeseries_id ; profile_id ; trajectory_id.
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6DiscreteSampling/MissingData Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-DiscreteSampling/MissingData
Test purpose
Auxiliary Coordinate Variables characterizing Feature Collection shall define the attribute missing_values.
Test method
Open the CF-netCDF data and verify that any Auxiliary Coordinate Variables characterizing Feature Collection has the attribute missing_values.
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
A.4 CF-netCDF-1.6-ISOMapping conformance class This is the ISO Mapping conformance class for this standard. There is a dependency on the Discrete Sampling conformance class of this standard (see A.3).
Conformance Class http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6-ISOMapping Requirements
http://www.opengis.net/spec/netCDF_data-model/req/CF-netCDF-1.6ISOMapping
Dependency
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6DiscreteSampling
Test
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6ISOMapping/discreteGridPointCoverage Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-ISOMapping/discreteGridPointCoverage
Test purpose
Any group of CF-netCDF data variables that share the same set of spatial/temporal coordinate variables shall realize ISO19123:CV_DiscreteCoverage sub-types: ISO19123:CV_DiscreteGridPointCoverage or ISO19123:CV_DiscretePointCoverage. In addition, the ISO19123:CV_CoverageFunction shall not define any interpolation method.
Test method
Open the CF-netCDF data mapping onto ISO 19123 data model and verify that any group of CF-netCDF data variables that share the same set of spatial/temporal coordinate variables realizes one of the following ISO19123:CV_DiscreteCoverage sub-types: ISO19123:CV_DiscreteGridPointCoverage or ISO19123:CV_DiscretePointCoverage. In addition, verify that the related
ISO19123:CV_CoverageFunction does not define any
interpolation method.
Test
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6ISOMapping/CoverageDomain Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CF-
77
OGC 11-165r2
netCDF-1.6-ISOMapping/CoverageDomain Test purpose
The set of spatial/temporal Coordinate Variables, shared by CF-netCDF data Variables, shall realize either an
ISO19123:CV_DiscreteGridPointCoverage.CV_GridVa lueMatrix.CV_GridPoint.gridCoord or ISO19123:CV_PointValuePair.geometry.
Test method
Open the CF-netCDF data mapping onto ISO 19123 data model and verify that the set of spatial/temporal Coordinate Variables, shared by any CF-netCDF data Variables realizes either an
ISO19123:CV_DiscreteGridPointCoverage.CV_GridVa lueMatrix. CV_GridPoint.gridCoord or an ISO19123:CV_PointValuePair.geometry.
Test
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6ISOMapping/DatasetCS Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-ISOMapping/DatasetCS
Test purpose
The CF-netCDF Coordinate System type, which is comprised of a set of spatial/temporal coordinate variables shared by CF-netCDF data variables, shall realize
ISO19123:CV_DiscreteCoverage.SC_CRS.SC_Coordina teSystem or a subtype of it (i.e. ISO19123:CV_DiscreteGridPointCoverage.SC_CRS.SC _CoordinateSystem or ISO19123:CV_DiscretePointCoverage.SC_CRS.SC_Coo rdinateSystem).
Additionally, the spatial/temporal Coordinate Variables and its subtypes (i.e. Vertical Coordinate, Latitude Coordinate, Longitude Coordinate, Time Coordinate elements), and the Auxiliary Coordinate Variables shall realize the related set of
SC_CRS.SC_CoordinateSystem.SC_CoordinateSystemA xis
Test method
Open the CF-netCDF data mapping onto ISO 19123 data model and verify that the CF-netCDF Coordinate System type, which is comprised of a set of spatial/temporal coordinate variables shared by CF-netCDF data variables, realizes an
ISO19123:CV_DiscreteCoverage.SC_CRS.SC_Coordina teSystem or a subtype of it (i.e. ISO19123:CV_DiscreteGridPointCoverage.SC_CRS.SC _CoordinateSystem or ISO19123:CV_DiscretePointCoverage.SC_CRS.SC_Coo rdinateSystem).
78
Additionally, verify that the Coordinate System Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
spatial/temporal Coordinate Variables and its subtypes (i.e. Vertical Coordinate, Latitude Coordinate, Longitude Coordinate, Time Coordinate elements), and the Auxiliary Coordinate Variables realize the related set of SC_CRS.SC_CoordinateSystem.SC_CoordinateSystemA xis.
Test
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6ISOMapping/DatasetCRS Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-ISOMapping/DatasetCRS
Test purpose
The Grid Mapping Variable projection information characterizing a set of spatial/temporal coordinate variables, shared by CF-netCDF data variables, shall realize
ISO19123:CV_DiscreteCoverage.SC_CRS.SC_Coordina teSystem.type or a subtype of it.
Test method
Open the CF-netCDF data mapping onto ISO 19123 data model and verify that the Grid Mapping Variable projection information characterizing one or more spatial/temporal coordinate variables, shared by CF-netCDF data variables, realizes
ISO19123:CV_DiscreteCoverage.SC_CRS.SC_Coordina teSystem.type or a subtype of it.
Test
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6ISOMapping/DatasetRange Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-ISOMapping/DatasetRange
Test purpose
The CF-netCDF data Variables sharing the common set of spatial/temporal Coordinate Variables, shall realize one of the following objects: (a)
ISO19123:CV_DiscreteGridPointCoverage.CV_GridVa luesMatrix.values or a subtype of it;
(b)
ISO19123:CV_DiscretePointCoverage.CV_PointValue Pair.value
Additionally, the CF Variable data values generate the CV_GeometryValuePair record value(s): (a) CV_GridValueMatrix.values.record entry (i.e. AttributeName, Any); (b) CV_PointValuePair.value.record entry (i.e. AttributeName, Any).
79
OGC 11-165r2
Test method
Open the CF-netCDF data mapping onto ISO 19123 data model and verify that any CF-netCDF data Variables sharing a common set of spatial/temporal Coordinate Variables realize one of the following objects: (a)
ISO19123:CV_DiscreteGridPointCoverage.CV_GridVa luesMatrix.values or a subtype of it; (b) ISO19123:CV_DiscretePointCoverage.CV_PointValue Pair.value
Additionally, verify that the Variable data values generate one of the following CV_GeometryValuePair record value(s): (a) CV_GridValueMatrix.values.record entry (i.e. AttributeName, Any); (b) CV_PointValuePair.value.record entry (i.e. AttributeName, Any). Test
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6ISOMapping/DatasetRangeType Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-ISOMapping/DatasetRangeType
Test purpose
The CF-netCDF data Variables sharing a common set of spatial/temporal coordinate variables/auxiliary coordinate variables, shall realize one of the following objects: (a)
CV_DiscreteGridPointCoverage.RangeType.Attribut esType (i.e. AttributeName, TypeName) or a subtype of it;
(b)
CV_DiscretePointCoverage.RangeType.AttributesTy pe (i.e. AttributeName, TypeName) or a subtype of it.
Test method
Open the CF-netCDF data mapping onto ISO 19123 data model and verify that any CF-netCDF data Variables sharing a common set of spatial/temporal coordinate variables/auxiliary coordinate variables, realize one of the following objects: (a)
CV_DiscreteGridPointCoverage.RangeType.Attribut esType (i.e. AttributeName, TypeName) or a subtype of it;
(b)
CV_DiscretePointCoverage.RangeType.AttributesTy pe (i.e. AttributeName, TypeName) or a subtype of it.
Test
80
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6ISOMapping/DatasetParametricRangeValues Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-ISOMapping/DatasetParametricRangeValues
Test purpose
The CF-netCDF Auxiliary Coordinate Variables (part of the dataset shared coordinate system) which are not space or Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
time dimension, shall realize one of the following objects: (a)
ISO19123:CV_DiscreteGridPointCoverage.CV_GridVa luesMatrix.values or a subtype of it;
(b)
ISO19123:CV_DiscretePointCoverage.CV_PointValue Pair.value
Test method
Open the CF-netCDF data mapping onto ISO 19123 data model and verify that the CF-netCDF Auxiliary Coordinate Variables (part of the dataset shared coordinate system) which are not space or time dimension, contribute to realize one of the following objects: (a)
ISO19123:CV_DiscreteGridPointCoverage.CV_GridVa luesMatrix.values or a subtype of it; (b) ISO19123:CV_DiscretePointCoverage.CV_PointValue Pair.value
Test
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6ISOMapping/DatasetParametricRangeType Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-ISOMapping/DatasetParametricRangeType
Test purpose
The CF-netCDF Auxiliary Coordinate Variables (part of the dataset shared coordinate system) which are not space or time dimension, shall realize one of the following objects: (a)
CV_DiscreteGridPointCoverage.RangeType.Attribut esType (i.e. AttributeName, TypeName) or a subtype of it;
(b)
CV_DiscretePointCoverage.RangeType.AttributesTy pe (i.e. AttributeName, TypeName).
Test method
Open the CF-netCDF data mapping onto ISO 19123 data model and verify that the CF-netCDF Auxiliary Coordinate Variables (part of the dataset shared coordinate system) which are not space or time dimension, contribute to realize one of the following objects: (a)
CV_DiscreteGridPointCoverage.RangeType.Attribut esType (i.e. AttributeName, TypeName) or a subtype of it;
(b)
CV_DiscretePointCoverage.RangeType.AttributesTy pe (i.e. AttributeName, TypeName).
Test
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6ISOMapping/MeasureVariableMapping/RangeValues Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CF-
81
OGC 11-165r2
netCDF-1.6ISOMapping/MeasureVariableMapping/RangeValues Test purpose
Any CF-netCDF Measure Variable (characterising a CF Variable) shall realize one of the following objects: (a)
ISO19123:CV_DiscreteGridPointCoverage.CV_GridVa luesMatrix.values or a subtype of it;
(b)
ISO19123:CV_DiscretePointCoverage.CV_PointValue Pair.value
Test method
Open the CF-netCDF data mapping onto ISO 19123 data model and verify that any CF-netCDF Measure Variable (characterising a CF Variable) realizes one of the following objects: (a)
ISO19123:CV_DiscreteGridPointCoverage.CV_GridVa luesMatrix.values or a subtype of it; (b) ISO19123:CV_DiscretePointCoverage.CV_PointValue Pair.value.
Test
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6ISOMapping/MeasureVariableMapping/RangeType Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6ISOMapping/MeasureVariableMapping/RangeType
Test purpose
Any CF-netCDF Measure Variable (characterising a CF Variable) shall realize one of the following objects: (a)
CV_DiscreteGridPointCoverage.RangeType.Attribut esType (i.e. AttributeName, TypeName) or a subtype of it;
(b)
CV_DiscretePointCoverage.RangeType.AttributesTy pe (i.e. AttributeName, TypeName).
Test method
Open the CF-netCDF data mapping onto ISO 19123 data model and verify that any CF-netCDF Measure Variable (characterising a CF Variable) realizes one of the following objects: (a)
CV_DiscreteGridPointCoverage.RangeType.Attribut esType (i.e. AttributeName, TypeName) or a subtype of it;
(b)
CV_DiscretePointCoverage.RangeType.AttributesTy pe (i.e. AttributeName, TypeName).
Test
82
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
ISOMapping/DiscreteSamplingGeometriesMapping/RaggedArray Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6ISOMapping/DiscreteSamplingGeometriesMapping/RaggedArr ay
Test purpose
Any CF-netCDF Ragged Array shall realize the ISO19123:CV_DiscreteCoverage sub-type: ISO19123:CV_DiscreteGridPointCoverage
In addition, the ISO19123:CV_CoverageFunction shall not define any interpolation method. Test method
Open the CF-netCDF data mapping onto ISO 19123 data model and verify that any CF-netCDF Ragged Array realizes the ISO19123:CV_DiscreteCoverage sub-type: ISO19123:CV_DiscreteGridPointCoverage. In addition, verify that the related
ISO19123:CV_CoverageFunction does not define any
interpolation method.
Test
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6ISOMapping/DiscreteSamplingGeometriesMapping/MultidimensionalArray requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6ISOMapping/DiscreteSamplingGeometriesMapping/Multidimen sionalArray
Test purpose
Any CF-netCDF Multidimensional Array shall realize one of the following ISO19123:CV_DiscreteCoverage subtypes: ISO19123:CV_DiscreteGridPointCoverage or ISO19123:CV_DiscretePointCoverage. In addition, the ISO19123:CV_CoverageFunction shall not define any interpolation method.
Test method
Open the CF-netCDF data mapping onto ISO 19123 data model and verify that any CF-netCDF Multidimensional Array realizes one of the following ISO19123:CV_DiscreteCoverage sub-types: ISO19123:CV_DiscreteGridPointCoverage or ISO19123:CV_DiscretePointCoverage. In addition, verify that the related
ISO19123:CV_CoverageFunction does not define any
interpolation method.
Test
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6ISOMapping/MultidimensionalArrayFeatureCollectionMapping/RangeValues
83
OGC 11-165r2
Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6ISOMapping/MultidimensionalArrayFeatureCollectionMapping /RangeValues
Test purpose
Any CF-netCDF Multidimensional Array Feature Collection shall realize one of the following objects: (a)
ISO19123:CV_DiscreteGridPointCoverage.CV_GridVa luesMatrix.values or a subtype of it;
(b)
ISO19123:CV_DiscretePointCoverage.CV_PointValue Pair.value
Test method
Open the CF-netCDF data mapping onto ISO 19123 data model and verify that any CF-netCDF Multidimensional Array Feature Collection realizes one of the following objects: (a)
ISO19123:CV_DiscreteGridPointCoverage.CV_GridVa luesMatrix.values or a subtype of it; (b) ISO19123:CV_DiscretePointCoverage.CV_PointValue Pair.value.
Test
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6ISOMapping/ MultidimensionalArrayFeatureCollectionMapping/RangeType Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6-ISOMapping/ MultidimensionalArrayFeatureCollectionMapping/RangeType
Test purpose
Any CF-netCDF Multidimensional Array Feature Collection shall realize one of the following objects: (a)
CV_DiscreteGridPointCoverage.RangeType.Attribut esType (i.e. AttributeName, TypeName) or a subtype of it;
(b)
CV_DiscretePointCoverage.RangeType.AttributesTy pe (i.e. AttributeName, TypeName) or a subtype of it.
Test method
Open the CF-netCDF data mapping onto ISO 19123 data model and verify that any CF-netCDF Multidimensional Array Feature Collection realizes one of the following objects: (a)
CV_DiscreteGridPointCoverage.RangeType.Attribut esType (i.e. AttributeName, TypeName) or a subtype of it;
(b)
CV_DiscretePointCoverage.RangeType.AttributesTy pe (i.e. AttributeName, TypeName) or a subtype of it.
84
Copyright © 2013 Open Geospatial Consortium
OGC 11-165r2
Test
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6ISOMapping/RaggedArrayFeatureCollectionMapping/RangeValues Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6ISOMapping/RaggedArrayFeatureCollectionMapping/RangeVa lues
Test purpose
Any CF-netCDF Multidimensional Array Feature Collection shall realize an
ISO19123:CV_DiscretePointCoverage.CV_PointValue Pair.value or a subtype of it.
Test method
Open the CF-netCDF data mapping onto ISO 19123 data model and verify that any CF-netCDF Multidimensional Array Feature Collection realizes an
ISO19123:CV_DiscretePointCoverage.CV_PointValue Pair.value or a subtype of it.
Test
http://www.opengis.net/spec/netCDF_data-model/conf/CF-netCDF-1.6ISOMapping/RaggedArrayFeatureCollectionMapping/RangeType Requirement
http://www.opengis.net/spec/netCDF_data-model/req/CFnetCDF-1.6ISOMapping/RaggedArrayFeatureCollectionMapping/RangeTy pe
Test purpose
Any CF-netCDF Ragged Array Feature Collection shall realize an
ISO10123:CV_DiscretePointCoverage.RangeType.Att ributesType (i.e. AttributeName, TypeName) or a subtype
of it. Test method
Open the CF-netCDF data mapping onto ISO 19123 data model and verify that any CF-netCDF Ragged Array Feature Collection realizes an
ISO10123:CV_DiscretePointCoverage.Range Type.AttributesType (i.e. AttributeName, TypeName) or a subtype of it.
85
OGC 11-165r2
Annex B Revision History Date
Release
2010-08-09 1.0.0
Editor
Primary clauses modified All
2010-09-10 1.1.0 2011-05-25 2.0
Stefano Nativi and Ben Domenico Stefano Nativi Stefano Nativi
2011-08-09 2.1
Stefano Nativi
CF conventions
2012-03-03 2.2
Stefano Nativi
None
2012-08-12 3.0
Stefano Nativi
None
2012-12-27 3.1
Stefano Nativi
None
86
All CF conventions
Description Created Extended to Multi-point coverages Modified the CF convention data model and related sections to be compliant with version 1.5 Modified the CF convention data model and related sections to be compliant with version 1.6 It was added a table to outline the CF elements which are considered mandatory The normative abstract test suite was added. A revision of the entire document was done. Major editorial changes to fully comply with the OGC conformance and requirements editorial specifications
Copyright © 2013 Open Geospatial Consortium