Coordinate reference system
How to read coordinates and heights (ISO 19111): the horizontal system, the vertical system that heights refer to and the epoch of the coordinates. A crs names its system by a registry code, or holds the full definition of the system. Coordinates are in GeoJSON order (x, y) for every system: easting then northing, or longitude then latitude. When a record has no crs, coordinates are WGS 84 longitude and latitude (EPSG:4326).
https://opendevelopmentstandards.org/schema/1.0.0-rc.2/core/Crs.json
Fields
epsgCodewhole numberat least 1The EPSG code of the horizontal system, for example 4326 or 32612. It means the same as a
codeofEPSG:and this number.codetextmatches ^[A-Z][A-Z0-9_]*:[A-Za-z0-9_.-]+$The code of the system in a registry, as
<authority>:<code>, such asEPSG:3400orESRI:102184. The code of a compound system names the horizontal system and the vertical system together.nametextnot emptyThe name of the system, as its registry or its definition writes it, such as
NAD83(CSRS) / Alberta 10-TM (Forest).wkttextnot emptyThe full definition of the system as WKT 2 (ISO 19162). Use it when no registry holds the system, such as a site grid.
projjsonobject with any keysThe full definition of the system as PROJJSON.
verticalDatumOne ofthe codes belowThe datum that absolute heights refer to.
EGM96- Earth Gravitational Model 1996 geoid.
EGM2008- Earth Gravitational Model 2008 geoid.
WGS84- Heights above the WGS 84 ellipsoid.
NAVD88- North American Vertical Datum of 1988.
CGVD2013- Canadian Geodetic Vertical Datum of 2013.
AHD- Australian Height Datum.
local- A local datum; the record says which in its description.
verticalCodetextmatches ^[A-Z][A-Z0-9_]*:[A-Za-z0-9_.-]+$The code of the vertical system that absolute heights refer to, as
<authority>:<code>, such asEPSG:6647for CGVD2013(CGG2013) heights. Use it whenverticalDatumdoes not list the system, or to name the geoid model.coordinateEpochnumberThe date that the coordinates are true for, as a decimal year, such as 2010.0 (ISO 19111, coordinate epoch). A system that is not fixed to the ground, such as WGS 84 or ITRF2020, needs it: the ground moves in such a system by centimetres each year.
zonetextThe zone, when the system has zones and its code does not name one (for example 12N).
- At least one of
epsgCode,code,wktorprojjson.
Forms
A value of this schema takes one of these forms.
Links
Held by Records that embed this one, with their field that holds it.
- GeometryDatatypecrsA point, a line, an area, or several of one kind. The first and last positions of a polygon ring are the same. GeoJSON has no curves, surfaces or solids: a shape that has them keeps its original.
- LocationDatatypecrsOne place, as a point with the heights that matter for it. A location can also state the place in other ways, such as a legal land description or a distance along a line, and a place that has no coordinates has only those. Coordinates are in GeoJSON order (x, y): longitude then latitude…
- OriginalDatatypecrsThe dataset that a GeoJSON shape was converted from, with the layer and the feature in it, and what the conversion changed. GeoJSON cannot hold curves, surfaces or solids, so the original stays the exact shape and the GeoJSON is the shape that every reader can read.
- ValueDatatypecrsAn amount with its unit and uncertainty. A list amount can lie along axes (a spectrum, a time series, a profile, a grid), and a large amount can sit in a File. Measured, calculated and set values all use it.
Examples
An id that another example defines opens that record.
Example 5
{
"name": "Site grid",
"wkt": "ENGCRS[\"Site grid\",EDATUM[\"Site datum\"],CS[Cartesian,2],AXIS[\"east (E)\",east],AXIS[\"north (N)\",north],LENGTHUNIT[\"metre\",1]]"
}Show 4 more examplesHide the other examples
Example 1
{
"epsgCode": 4326,
"verticalDatum": "CGVD2013"
}Example 2
{
"epsgCode": 32612
}Example 3
{
"code": "EPSG:4617",
"name": "NAD83(CSRS)",
"verticalDatum": "CGVD2013",
"verticalCode": "EPSG:6647",
"coordinateEpoch": 2010
}Example 4
{
"code": "ESRI:102184"
}Changes and file
Changes
- 0.1.0 First version.
Schema file
Show the JSON SchemaHide the JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://opendevelopmentstandards.org/schema/1.0.0-rc.2/core/Crs.json",
"title": "Coordinate reference system",
"description": "How to read coordinates and heights (ISO 19111): the horizontal system, the vertical system that heights refer to and the epoch of the coordinates. A crs names its system by a registry code, or holds the full definition of the system. Coordinates are in GeoJSON order (x, y) for every system: easting then northing, or longitude then latitude. When a record has no crs, coordinates are WGS 84 longitude and latitude (EPSG:4326).",
"type": "object",
"properties": {
"epsgCode": {
"type": "integer",
"minimum": 1,
"description": "The EPSG code of the horizontal system, for example 4326 or 32612. It means the same as a `code` of `EPSG:` and this number."
},
"code": {
"type": "string",
"pattern": "^[A-Z][A-Z0-9_]*:[A-Za-z0-9_.-]+$",
"description": "The code of the system in a registry, as `<authority>:<code>`, such as `EPSG:3400` or `ESRI:102184`. The code of a compound system names the horizontal system and the vertical system together."
},
"name": {
"type": "string",
"minLength": 1,
"description": "The name of the system, as its registry or its definition writes it, such as `NAD83(CSRS) / Alberta 10-TM (Forest)`."
},
"wkt": {
"type": "string",
"minLength": 1,
"description": "The full definition of the system as WKT 2 (ISO 19162). Use it when no registry holds the system, such as a site grid."
},
"projjson": {
"type": "object",
"x-ods-open": true,
"description": "The full definition of the system as PROJJSON."
},
"verticalDatum": {
"type": "string",
"enum": [
"EGM96",
"EGM2008",
"WGS84",
"NAVD88",
"CGVD2013",
"AHD",
"local"
],
"description": "The datum that absolute heights refer to.",
"x-ods-options": [
{
"value": "EGM96",
"title": "EGM96",
"description": "Earth Gravitational Model 1996 geoid."
},
{
"value": "EGM2008",
"title": "EGM2008",
"description": "Earth Gravitational Model 2008 geoid."
},
{
"value": "WGS84",
"title": "WGS 84 ellipsoid",
"description": "Heights above the WGS 84 ellipsoid."
},
{
"value": "NAVD88",
"title": "NAVD 88",
"description": "North American Vertical Datum of 1988."
},
{
"value": "CGVD2013",
"title": "CGVD2013",
"description": "Canadian Geodetic Vertical Datum of 2013."
},
{
"value": "AHD",
"title": "AHD",
"description": "Australian Height Datum."
},
{
"value": "local",
"title": "Local",
"description": "A local datum; the record says which in its description."
}
]
},
"verticalCode": {
"type": "string",
"pattern": "^[A-Z][A-Z0-9_]*:[A-Za-z0-9_.-]+$",
"description": "The code of the vertical system that absolute heights refer to, as `<authority>:<code>`, such as `EPSG:6647` for CGVD2013(CGG2013) heights. Use it when `verticalDatum` does not list the system, or to name the geoid model."
},
"coordinateEpoch": {
"type": "number",
"description": "The date that the coordinates are true for, as a decimal year, such as 2010.0 (ISO 19111, coordinate epoch). A system that is not fixed to the ground, such as WGS 84 or ITRF2020, needs it: the ground moves in such a system by centimetres each year."
},
"zone": {
"type": "string",
"description": "The zone, when the system has zones and its code does not name one (for example 12N)."
}
},
"anyOf": [
{
"properties": {
"epsgCode": true
},
"required": [
"epsgCode"
]
},
{
"properties": {
"code": true
},
"required": [
"code"
]
},
{
"properties": {
"wkt": true
},
"required": [
"wkt"
]
},
{
"properties": {
"projjson": true
},
"required": [
"projjson"
]
}
],
"patternProperties": {
"^x-": {}
},
"unevaluatedProperties": false,
"examples": [
{
"epsgCode": 4326,
"verticalDatum": "CGVD2013"
},
{
"epsgCode": 32612
},
{
"code": "EPSG:4617",
"name": "NAD83(CSRS)",
"verticalDatum": "CGVD2013",
"verticalCode": "EPSG:6647",
"coordinateEpoch": 2010
},
{
"code": "ESRI:102184"
},
{
"name": "Site grid",
"wkt": "ENGCRS[\"Site grid\",EDATUM[\"Site datum\"],CS[Cartesian,2],AXIS[\"east (E)\",east],AXIS[\"north (N)\",north],LENGTHUNIT[\"metre\",1]]"
}
],
"x-ods-status": "draft",
"x-ods-kind": "datatype",
"x-ods-module": "core",
"x-ods-changes": {
"0.1.0": "First version."
}
}