Changes to Access to EPSG definitions from the OGC Definitions Server

Any software implementors that access EPSG Coordinate Reference System (CRS) definitions through the OGC Definitions Server should read this blog post.

Publishing of EPSG CRS definitions through the OGC Definitions Server is enabled by the IOGP Geodetic Registry API (epsg.org). The IOGP Geodetic Registry API is undergoing an upgrade that will require some changes to both the data model and the interface through which EPSG definitions are retrieved from the OGC Definitions Server.

IOGP will take the legacy IOGP Geodetic Registry API offline in September, 2020. A related announcement is at https://epsg.org

Therefore, OGC is planning to reconfigure the OGC Definitions Server to support the upgraded IOGP Geodetic Registry API by then or soon after.

A proposed mapping from the current OGC URIs to the current EPSG URNs and new EPSG URIs is shown below.

OGC Syntax

Current EPSG URN Syntax

Future EPSG URI Syntax

Notes

http://www.opengis.net/def/

http://www.epsg-registry.org/export.htm?gml=urn:ogc:def:...

http://apps.epsg.org/def/

1, 2, 11, 12, 13

...area/EPSG/0/[code]

...area:EPSG::[code]

...extent/EPSG/0/[code]/gml

3

...axis/EPSG/0/[code]

 

 

4

...axis-name/EPSG/0/[code]

...axis-name:EPSG::[code]

...axis-name/EPSG/0/[code]/gml

 

...change-request/EPSG/0/[code]

...change-request:EPSG::[code]

...change-request/EPSG/0/[code]/gml

 

...coordinateOperation/EPSG/0/[code]

...coordinateOperation:EPSG::[code]

...coordinateOperation/EPSG/0/[code]/gml

 

 

 

...coordinateOperation/EPSG/0/[code]/wkt

2

...crs/EPSG/0/[code]

...crs:EPSG::[code]

...crs/EPSG/0/[code]/gml

5

 

 

...crs/EPSG/0/[code]/wkt

2

...crs-compound/EPSG/0/[code]

 

 

6

...cs/EPSG/0/[code]

...cs:EPSG::[code]

...cs/EPSG/0/[code]/gml

7

...datum/EPSG/0/[code]

...datum:EPSG::[code]

...datum/EPSG/0/[code]/gml

8

...deprecation/EPSG/0/[code]

...deprecation:EPSG::[code]

 

9

...ellipsoid/EPSG/0/[code]

...ellipsoid:EPSG::[code]

...ellipsoid/EPSG/0/[code]/gml

 

...meridian/EPSG/0/[code]

...meridian:EPSG::[code]

...meridian/EPSG/0/[code]/gml

 

...method/EPSG/0/[code]

...method:EPSG::[code]

...method/EPSG/0/[code]/gml

 

...naming-system/EPSG/0/[code]

...naming-system:EPSG::[code]

...naming-system/EPSG/0/[code]/gml

 

...parameter/EPSG/0/[code]

...parameter:EPSG::[code]

...parameter/EPSG/0/[code]/gml

 

...supersession/EPSG/0/[code]

...supersession:EPSG::[code]

 

10

...uom/EPSG/0/[code]

...uom:EPSG::[code]

…uom/EPSG/0/[code]/gml

 

...version-history/EPSG/0/[code]

...version-history:EPSG::[code]

 

 

 Notes:

  1. EPSG supports a request for only the current version, i.e. version being /0. A request for any other version will return a 404 'not found' error message.
  2. EPSG returns GML for all object types and can also return WKT in accordance with OGC 18-010r7 (ISO 19162:2019) for CRSs, Coordinate Transformations, Point Motion Operations and Concatenated Operations. The OGC URI syntax is extended with /gml or /wkt to indicate the encoding. A request omitting this encoding extension will return GML. The only objectTypes that support both gml and wkt are coordinateOperation and crs.
  3. In the new EPSG model, Area is renamed Extent to accord with ISO 19115 (Metadata) and ISO 19136 (GML).
  4. Coordinate Axis is implemented in the EPSG registry as an intersection table; the information is returned as part of a coordinate system definition.
  5. The EPSG model has been extended to include derived projected CRSs. When a code that is for a derived projected CRS code is submitted , the appropriate information will be returned.
  6. EPSG returns compound CRSs through a request where objectType=crs.
  7. The EPSG model has been extended to include ordinal coordinate systems. When a code that is for an ordinal cs is submitted , the appropriate information will be returned.
  8. The EPSG model has been extended to include dynamic datums and datum ensembles. When a code that is for a dynamic datums or a datum ensemble is submitted , the appropriate information will be returned.
  9. Deprecation is implemented in EPSG as an association; information is returned as metadata for the deprecated object.
  10. Supersession is implemented in EPSG as an association; information is returned as metadata for the superseded object.
  11. Where an object does not exist (no code for that object type), EPSG returns a 404 error code.
  12. Where the endpoint is invalid EPSG returns a 400 error code signifying a bad request. Example: http://apps.epsg.org/def/datum/epsg/0/6326/wkt (WKT for datum objects is not supported. WKT for datums is included within the WKT for a crs object).
  13. The new EPSG URI will become effective when the new registry becomes the host for the master EPSG Dataset.

If you have any questions or comments about how this change will affect your access to EPSG CRS definitions through the OGC Definitions Server, then please feel free to contact the OGC Naming Authority (OGC-NA [at] lists.opengeospatial.org).