id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc
18,Additions and Revisions to CF Grid Mapping Attributes (v2.0),pbentley,cf-conventions@…,"== 1. Title ==
Additions and revisions to CF grid mapping attributes to support the specification of coordinate reference system properties.
== 2. Moderator ==
Jonathan Gregory
== 3. Requirement ==
This submission is a follow-up proposal to the informative discussions that took place as part of [http://cf-pcmdi.llnl.gov/trac/ticket/9 CF Trac ticket #9]. Consequently the requirements remain as stated in that ticket, and can be paraphrased as follows:
There is a requirement for additional CF grid mapping attributes to be defined which can be used to provide a fuller description of the characteristics of the coordinate reference system (CRS), or systems, that form the basis of spatial coordinates within a netCDF file.
Based on the discussions arising from Trac ticket #9 it was concluded that further research needs to be undertaken in order to address the complexities of vertical datums and vertical coordinate systems. Accordingly the corresponding attributes have been dropped from this revised proposal. It is hoped that a domain expert within the CF community will be able to submit a separate proposal covering these topics.
== 4. Initial Statement of Technical Proposal ==
The following sections detail the proposed changes to the CF-1.0 specification. They hopefully represent a synthesis of the discussions and conclusions arising from Trac ticket #9.
=== 4.1. Additions and Revisions to Appendix F, Table F.1 ===
This section describes the new and revised grid mapping attribute definitions that are required to be added to Table F.1 in Appendix F of the CF specification. Attributes are listed in alphabetical order. Attribute names appearing in `normal typeface` are newly defined in this proposal. Attribute names appearing in ''`italic typeface`'' refer to existing CF attributes for which a revised definition is proposed.
'''Table F.1 Grid Mapping Attributes'''
|| '''Attribute''' || '''Definition''' ||
|| `crs_id` || Used to specify a unique identifier for the CRS. The identifier string should be a value taken from a controlled vocabulary maintained by a recognised authority. For the `crs_id` attribute the recommended vocabulary is the list of CRS URN definitions [OGC-URN] maintained and published by the Open Geospatial Consortium (OGC). These URNs refer to CRS entities realised in the [http://www.epsg.org/ OGP/EPSG database of geodetic parameters]. A list of OGC URNs corresponding to current grid mapping names appears at Table F.2. Example: “urn:ogc:def:crs:EPSG:6.3:4326”, which identifies the familiar 2D geographic CRS named “WGS 84” in the EPSG v6.3 database. ||
|| `crs_name` || Used to specify the well-known name of the CRS within which spatial coordinates are defined. The value of the `crs_name` attribute may also be taken from a controlled vocabulary such as the OGP/EPSG geodetic database referred to above. Otherwise a suitably informative, locally-defined name should be specified. Example: “OSGB 1936 / British National Grid”. ||
|| `crs_wkt` || Used to specify the well-known text string encoding of the CRS using the OGC WKT syntax, as defined in OGC document 06-103r3 [OGC-SFA1]. It is envisaged that this attribute typically will be written and read automatically by software agents rather than by human operators. Comparable non-CF attributes are already being used for this purpose by a number of third-party software packages (both commercial and open source). Inclusion of the `crs_wkt` attribute here is intended therefore to standardise this usage within the CF community. ||
|| `earth_radius` || Used to specify the radius, ''in metres'', of the spherical figure used to approximate the shape of the Earth. This attribute should be specified for those projected CRS's in which the X-Y cartesian coordinates have been derived using a spherical Earth approximation. If the cartesian coordinates were derived using the ellipsoid associated with the geodetic datum then this attribute should not be defined. Example: ""6371007” , which is the radius of the GRS 1980 Authalic Sphere. ||
|| `ellipsoid_name` || Used to specify the well-known name of the ellipsoidal figure associated with the geodetic datum and used to approximate the shape of the Earth. For coordinates based upon a spherical Earth approximation the value ""Sphere"" should be used. Example: “GRS 1980”. ||
|| `geodetic_datum_name` || Used to specify the well-known name of the geodetic datum against which geographic coordinates are referenced. For coordinates based upon a spherical Earth approximation the value ""Sphere"" is permissible. Example: “World Geodetic System 1984”. ||
|| `inverse_flattening` || Used to specify the ''inverse'' flattening (1/f) of the ellipsoidal figure associated with the geodetic datum and used to approximate the shape of the Earth. The flattening (f) of the ellipsoid is related to the semi-major and semi-minor axes by the formula f = (a-b)/a. The current attribute is used to specify the denominator of this fraction when the numerator is reduced to unity. In the case of a spherical Earth this attribute should be omitted or set to zero. Example: 298.257222101 for the GRS 1980 ellipsoid. (Note: By convention the dimensions of an ellipsoid are specified using either the semi-major and semi-minor axis lengths, or the semi-major axis length and the inverse flattening. If all three attributes are specified then the supplied values must be consistent with the aforementioned formula.) ||
|| `longitude_of_prime_meridian` || Specifies the longitude, with respect to Greenwich, of the prime meridian associated with the geodetic datum. The prime meridian defines the origin from which longitude values are determined. Not to be confused with the projection origin longitude (cf. `longitude_of_projection_origin`, a.k.a. central meridian) which defines the longitude of the map projection origin. Domain: -180.0 <= longitude_of_prime_meridian < 180.0 decimal degrees. Default = 0.0 ||
|| `perspective_point_height` || When applicable, records the the height, ''in metres'', of the map projection perspective point above the ellipsoid (or sphere). Used by perspective-type map projections, for example the Vertical Perspective Projection, which may be used to simulate the view from a Meteosat satellite. ||
|| `projection_name` || Used to specify the well-known name of the map projection operation employed to convert geographic coordinates to cartesian coordinates. It is recommended that this attribute is used to encode the familiar or vernacular name of the map projection operation in a human-readable manner so as to facilitate, for example, map labelling capabilities. Example: “UTM Zone 31N” (for which the corresponding CF grid mapping name is ""transverse_mercator""). ||
|| `semi_major_axis` || Specifies the length, ''in metres'', of the semi-major axis of the ellipsoidal figure associated with the geodetic datum and used to approximate the shape of the Earth. Commonly denoted using the symbol “a”. In the case of a spherical Earth approximation this attribute defines the radius of the Earth. See also the `inverse_flattening` attribute. ||
|| `semi_minor_axis` || Specifies the length, ''in metres'', of the semi-minor axis of the ellipsoidal figure associated with the geodetic datum and used to approximate the shape of the Earth. Commonly denoted using the symbol “b”. In the case of a spherical Earth approximation this attribute should be omitted (the preferred option) or else set equal to the value of the `semi_major_axis` attribute. See also the `inverse_flattening` attribute. ||
|| ''`standard_parallel`'' || Specifies the line, or lines, of latitude at which the developable map projection surface (plane, cone, or cylinder) touches the reference sphere or ellipsoid used to represent the Earth. Since there is zero scale distortion along a standard parallel it is also referred to as a ‘latitude of true scale’. In the situation where a conical developable surface intersects the reference ellipsoid there are two standard parallels, in which case this attribute can be used as a vector to record both latitude values, with the additional convention that the standard parallel nearest the pole (N or S) is provided first. Domain: -90.0 <= standard_parallel <= 90.0 decimal degrees. ||
----
=== 4.2. Insertion of Additional Grid Mapping Examples into Appendix F ===
The following examples of grid mapping definitions are required to be added to Appendix F.
'''Example F.9. 2D Latitude-Longitude Coordinate System (Spherical Earth)'''
This grid mapping defines the canonical 2D geographical coordinate system based upon latitude and longitude coordinates on a spherical Earth. If required, the Earth radius can be specified via the `semi_major_axis` attribute.
grid_mapping_name = ""lat_long_on_sphere""
{{{
dimensions:
lat = 18 ; // dummy values
lon = 36 ;
variables:
double lat(lat) ;
// conventional definition
double lon(lon) ;
// conventional definition
float temp(lat, lon) ;
temp:long_name = ""temperature"" ;
temp:units = ""K"" ;
temp:grid_mapping = ""crs"" ;
int crs ;
crs:grid_mapping_name = ""lat_long_on_sphere"" ;
crs:crs_id = ""urn:ogc:def:cs:EPSG:6.0:6422"" ; // EPSG ID 6422 == ""Ellipsoidal 2D CS""
crs:crs_name = ""Spherical 2D Coordinate System"" ;
crs:ellipsoid_name = ""Sphere"" ;
crs:semi_major_axis = 6371000.0 ;
crs:inverse_flattening = 0 ;
}}}
'''Example F.10. 3D Latitude-Longitude-Height Coordinate System (Spherical Earth)'''
This grid mapping defines the canonical 3D geographical coordinate system based upon latitude and longitude and height coordinates on a spherical Earth. If required, the Earth radius can be specified via the `semi_major_axis` attribute.
grid_mapping_name = ""lat_long_ht_on_sphere""
{{{
dimensions:
lat = 18 ; // dummy values
lon = 36 ;
ht = 50 ;
variables:
double lat(lat) ;
// conventional definition
double lon(lon) ;
// conventional definition
double ht(ht) ;
// conventional definition
float temp(ht, lat, lon) ;
temp:long_name = ""temperature"" ;
temp:units = ""K"" ;
temp:grid_mapping = ""crs"" ;
int crs ;
crs:grid_mapping_name = ""lat_long_ht_on_sphere"" ;
crs:crs_id = ""urn:ogc:def:cs:EPSG:6.0:6423"" ; // EPSG ID 6423 == ""Ellipsoidal 3D CS""
crs:crs_name = ""Spherical 3D Coordinate System"" ;
crs:ellipsoid_name = ""Sphere"" ;
crs:semi_major_axis = 6371000.0 ;
crs:inverse_flattening = 0 ;
}}}
'''Example F.11. Latitude-Longitude on the WGS 1984 Datum'''
This grid mapping defines the commonly-used CRS involving geodetic latitude and longitude coordinates - and potentially also ellipsoidal height - based upon the WGS 1984 geodetic datum.
grid_mapping_name = ""lat_long_wgs1984"" (2D case) or ""lat_long_ht_wgs1984"" (3D case)
{{{
dimensions:
lat = 18 ; // dummy values
lon = 36 ;
variables:
double lat(lat) ;
// conventional definition
double lon(lon) ;
// conventional definition
float temp(lat, lon) ;
temp:long_name = ""temperature"" ;
temp:units = ""K"" ;
temp:grid_mapping = ""crs"" ;
int crs ;
crs:grid_mapping_name = ""lat_long_wgs1984"" ;
crs:crs_id = ""urn:ogc:def:crs:EPSG:6.0:4326"" ; // Use EPSG ID 4979 for 3D CRS. ID 4326 refers to 2D CRS.
crs:crs_name = ""WGS 84"" ;
crs:geodetic_datum_name = ""World Geodetic System 1984"" ;
crs:longitude_of_prime_meridian = 0.0 ;
crs:ellipsoid_name = ""WGS 84"" ;
crs:semi_major_axis = 6378137.0 ;
crs:inverse_flattening = 298.257223563 ;
}}}
'''Example F.12. British National Grid (with CRS_WKT attribute)'''
This example illustrates the use of grid mapping attributes to provide a full description of the 2D projected CRS that forms the basis of the British National Grid reference system. It also demonstrates how the same information could be encoded - possibly in an automated fashion by software applications - in OGC WKT format using the `crs_wkt` attribute.
grid_mapping_name = ""british_national_grid""
{{{
dimensions:
lat = 648 ; // dummy values
lon = 648 ;
y = 18 ;
x = 36 ;
variables:
double x(x) ;
x:standard_name = ""projection_x_coordinate"" ;
x:long_name = ""x coordinate of projection"" ;
x:units = ""m"" ;
double y(y) ;
y:standard_name = ""projection_y_coordinate"" ;
y:long_name = ""y coordinate of projection"" ;
y:units = ""m"" ;
double lat(y, x) ;
// conventional definition
double lon(y, x) ;
// conventional definition
float temp(y, x) ;
temp:long_name = ""temperature"" ;
temp:units = ""K"" ;
temp:coordinates = ""lat lon"" ;
temp:grid_mapping = ""crs"" ;
int crs ;
crs:grid_mapping_name = ""british_national_grid"" ;
crs:crs_id = ""urn:ogc:def:crs:EPSG:6.0:27700"" ;
crs:crs_name = ""OSGB 1936 / British National Grid"" ;
crs:geodetic_datum_name = ""OSGB 1936"" ;
crs:longitude_of_prime_meridian = 0.0 ;
crs:ellipsoid_name = ""Airy 1830"" ;
crs:semi_major_axis = 6377563.396 ;
crs:semi_minor_axis = 6356256.910 ;
crs:inverse_flattening = 299.3249646 ;
crs:projection_name = ""British National Grid"" ;
crs:latitude_of_projection_origin = 49.0 ;
crs:longitude_of_projection_origin = -2.0 ;
crs:false_easting = 400000.0 ;
crs:false_northing = -100000.0 ;
crs:scale_factor_at_projection_origin = 0.9996012717 ;
crs:crs_wkt = ""[PROJCS ['OSGB 1936 / British National Grid',
GEOGCS ['OSGB 1936',
DATUM ['OSGB 1936', SPHEROID ['Airy 1830', 6377563.396, 299.3249646]],
PRIMEM ['Greenwich', 0], UNIT ['Degree', 0.0174532925199433]],
PROJECTION ['Transverse Mercator'],
PARAMETER ['False Easting', 400000], PARAMETER ['False Northing', -100000],
PARAMETER ['Central Meridian', -2.0], PARAMETER ['Scale Factor', 0.9996012717],
PARAMETER ['Latitude of Origin', 49.0],
UNIT ['Meter', 1.0]]"" ;
}}}
In this example the optional `crs_wkt` attribute is shown spread across multiple lines. In a netCDF file such an attribute value would, of course, appear as a single text string. Also, occurrences of the single-quote character would be replaced with double-quote characters.
'''Example F.13. Cartesian (X-Y) Coordinates based on the Vertical Perspective Projection'''
The following example demonstrates the use of grid mapping attributes to describe X-Y cartesian coordinates based on the vertical perspective projection. Such a CRS might be used, for example, to describe image data that simulates the view from a Meteosat satellite.
grid_mapping_name = ""vertical_perspective""
{{{
variables:
double x(x) ;
// conventional definition
double y(y) ;
// conventional definition
double lat(y, x) ;
// conventional definition
double lon(y, x) ;
// conventional definition
float temp(lat, lon) ;
temp:long_name = ""temperature"" ;
temp:units = ""K"" ;
temp:grid_mapping = ""crs"" ;
int crs ;
crs:grid_mapping_name = ""vertical_perspective"" ;
crs:crs_name = ""X-Y Coordinates based on Vertical Perspective Projection"" ; // Fabricated for this example.
crs:geodetic_datum_name = ""World Geodetic System 1984"" ;
crs:longitude_of_prime_meridian = 0.0 ;
crs:ellipsoid_name = ""WGS 84"" ;
crs:semi_major_axis = 6378137.0 ;
crs:inverse_flattening = 298.257223563 ;
crs:projection_name = ""Vertical Perspective"" ;
crs:latitude_of_projection_origin = 0.0 ; // Above the equator...
crs:longitude_of_projection_origin = 75.0 ; // ... and over the Indian Ocean.
crs:perspective_point_height = 36000000 ; // 36,000 km
crs:earth_radius = 6371007 ; // Indicates that the projection used a spherical Earth approximation.
}}}
The `crs_id` attribute is omitted from the above definition as, currently, a unique identifier for this map projection has yet to be assigned in the EPSG/OGP geodetic database.
----
=== 4.3. Addition of New Sub-Section F.1 to Appendix F ===
The following sub-section is required to be added to Appendix F. This sub-section is also required to be repeated (or paraphrased) as a new section entitled '''F. Grid Mapping Attributes''' appended to the [http://cf-pcmdi.llnl.gov/conformance/requirements_recommendations/ CF conformance document].
'''F.1. Recommended minimum set of grid mapping attributes'''
In order to achieve a basic level of consistency of specification it is proposed that, wherever practicable, a minimum
set of attribute values is employed to specify the CRS referenced by a netCDF variable. The recommended
minimum set of grid mapping attributes for describing 2D geographic and 2D projected coordinate reference systems
is given below.
''F.1.1. Recommended minimum set of attributes required to describe a 2D geographic CRS'':
{{{
grid_mapping_name
crs_id*
crs_name
geodetic_datum_name
ellipsoid_name
semi_major_axis
semi_minor_axis and/or inverse_flattening
longitude_of_prime_meridian
}}}
(* if known)
In the case of a 3D geographic CRS the third dimension (or axis) is height above or below the ellipsoid, in which case a further parameter – units of ellipsoidal height – is normally required. However, this parameter typically will be defined via the `units` attribute for the relevant coordinate variable (e.g. Z). Hence no separate attribute is defined here.
''F.1.2. Recommended minimum set of attributes required to describe a 2D projected CRS'':
{{{
grid_mapping_name
crs_id*
crs_name
geodetic_datum_name
ellipsoid_name
semi_major_axis
semi_minor_axis and/or inverse_flattening
longitude_of_prime_meridian
projection_name
latitude_of_projection_origin
longitude_of_projection_origin
earth_radius#
}}}
(* if known) [[br]]
(# if the map projection is based on a spherical figure of Earth)
Additional projection-specific attributes should be defined as required, e.g. `false_easting`, `false_northing`, `scale_factor_at_projection_origin`, and so on.
----
=== 4.4. Addition of New Sub-Section F.2 to Appendix F ===
The following sub-section is required to be added to Appendix F.
'''F.2 OGC CRS Identifiers corresponding to CF grid mapping definitions'''
Table F.2 lists the Open Geospatial Consortium (OGC) URNs for the coordinate reference systems, coordinate systems, and map projections (OGC 'coordinate operation methods') that correspond to the example grid mapping names illustrated in this version of the CF specification. Grid mapping names that are not currently associated with an equivalent OGC URN (e.g. ""rotated_latitude_longitude"") do not appear in Table F.2. It is noted that the majority of grid mapping names defined in CF-1.0 refer to OGC coordinate operation methods (i.e. map projections) rather than coordinate reference systems.
The values defined in the '''OGC URN Identifier''' column may be used, as and when appropriate, to define the `crs_id` grid mapping attribute. The OGC URN syntax is described in reference [OGC-URN].
'''Table F.2. OGC URNs corresponding to CF grid mapping names'''
|| '''CF Grid Mapping Name''' || '''OGC URN Identifier''' || '''OGC Object Type*''' ||
|| albers_conical_equal_area || urn:ogc:def:method:EPSG:6.0:9822 || Coordinate Operation Method ||
|| azimuthal_equidistant || urn:ogc:def:method:EPSG:6.0:9822 || Coordinate Operation Method ||
|| azimuthal_equalarea || urn:ogc:def:method:EPSG:6.0:9820 || Coordinate Operation Method ||
|| british_national_grid || urn:ogc:def:crs:EPSG:6.0:27700 || 2D Coordinate Reference System ||
|| lambert_conformal_conic (1SP) || urn:ogc:def:method:EPSG:6.0:9801 || Coordinate Operation Method ||
|| lambert_conformal_conic (2SP) || urn:ogc:def:method:EPSG:6.0:9802 || Coordinate Operation Method ||
|| lat_long_on_sphere || urn:ogc:def:cs:EPSG:6.0:6422 || 2D Coordinate System ||
|| lat_long_ht_on_sphere || urn:ogc:def:cs:EPSG:6.0:6423 || 3D Coordinate System ||
|| lat_long_wgs1984 || urn:ogc:def:crs:EPSG:6.0:4326 || 2D Coordinate Reference System ||
|| lat_long_ht_wgs1984 || urn:ogc:def:crs:EPSG:6.0:4979 || 3D Coordinate Reference System ||
|| polar_stereographic || urn:ogc:def:method:EPSG:6.0:9810 || Coordinate Operation Method ||
|| stereographic || urn:ogc:def:method:EPSG:6.0:9809 || Coordinate Operation Method ||
|| transverse_mercator || urn:ogc:def:method:EPSG:6.0:9807 || Coordinate Operation Method ||
(* OGC object types can be considered equivalent to like-named objects in the OGP/EPSG database.)
----
=== 4.5. Addition of References to Bibliography ===
The following bibliographic references are required to be appended to the CF bibliography chapter.
[OGC-SRC] Topic 2: Spatial Referencing by Coordinates. OGC Abstract Specification. OGC document 04-
046r3. 16 August 2004. (URL: http://www.opengeospatial.org/standards/as)
[OGC-SFA1] OpenGIS Implementation Specification for Geographic information - Simple feature access - Part
1: Common architecture. OGC document 06-103r3. 5 October 2006. (URL: http://www.opengeospatial.org/standards/sfa)
[OGC-URN] Definition Identifier URNs in OGC Namespace. OGC Best Practices Paper. OGC document 06-
023r1. 8 August 2007. (URL: http://www.opengeospatial.org/standards/bp)
----
== 5. Benefits ==
As per [http://cf-pcmdi.llnl.gov/trac/ticket/9 original Trac ticket #9].
== 6. Status Quo ==
As per [http://cf-pcmdi.llnl.gov/trac/ticket/9 original Trac ticket #9].
",enhancement,closed,medium,,cf-conventions,1.0,fixed,coordinates datums ellipsoids projections,