Coordinate reference system

DatatypeDraftv1.0.0-rc.2

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

  • epsgCode
    whole numberat least 1

    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
    textmatches ^[A-Z][A-Z0-9_]*:[A-Za-z0-9_.-]+$

    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
    textnot empty

    The name of the system, as its registry or its definition writes it, such as NAD83(CSRS) / Alberta 10-TM (Forest).

  • wkt
    textnot empty

    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
    object with any keys

    The full definition of the system as PROJJSON.

  • verticalDatum
    One ofthe codes below

    The 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.
  • verticalCode
    textmatches ^[A-Z][A-Z0-9_]*:[A-Za-z0-9_.-]+$

    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
    number

    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
    text

    The zone, when the system has zones and its code does not name one (for example 12N).

  • At least one of epsgCode, code, wkt or projjson.

Forms

A value of this schema takes one of these forms.

Links

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 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

  1. 0.1.0 First version.

Schema file

Show 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."
  }
}