From f24e584fa1ab2f86c7052c64e17042d090b350ee Mon Sep 17 00:00:00 2001 From: Chris Little Date: Wed, 17 Jun 2026 14:20:49 +0100 Subject: [PATCH 1/6] Revise Temporal Reference Systems section Added Temporal CRS to definition of Temporal Reference Systems. --- standard/clause_specification_text.adoc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/standard/clause_specification_text.adoc b/standard/clause_specification_text.adoc index 754892406..ea0831c95 100644 --- a/standard/clause_specification_text.adoc +++ b/standard/clause_specification_text.adoc @@ -409,9 +409,14 @@ Example of a vertical CRS, here representing height above the NAVD88 datum in me //### 6.2. Temporal Reference Systems ==== Temporal Reference Systems -Time is referenced by a temporal reference system (temporal RS). In the current version of this Community Standard, only a string-based notation for time values is defined. Future versions of this Community Standard may allow for alternative notations, such as recording time values as numeric offsets from a given temporal datum (e.g. “days since 1970-01-01”). +Time is referenced by a temporal reference system (temporal RS). A Temporal Reference System may be Calendar based, using dat-time specified with strings, or may be a Temporal Coordinate Reference System, using numeric values rather than strings. +In the orignal version, V1.0, of this Community Standard, only a string-based notation for time values is defined. -- A temporal RS object MUST have a member `"type"`. The only currently defined value of it is `"TemporalRS"`. +This version, v1.0.1, of the Community Standard allows for the alternative notation, allowing the recording of time values as numeric offsets from a given temporal datum (e.g. “days since 1970-01-01”). + +The temporal datum, also know as an epoch, for both kinds of Temporal Reference Systems is always specified as a calendar based string. + +- A temporal RS object MUST have a member `"type"`. The only currently defined values are `"TemporalRS"` or `"TemporalCRS"`. - A temporal RS object MUST have a member `"calendar"` with value `"Gregorian"` or a URI. - If the Gregorian calendar is used, then `"calendar"` MUST have the value `"Gregorian"` and cannot be a URI. - A temporal RS object MAY have a member `"timeScale"` with a URI as value. From ecc29b3a1747631e9894c5b4bfc49121125db85f Mon Sep 17 00:00:00 2001 From: Chris Little Date: Wed, 17 Jun 2026 14:40:49 +0100 Subject: [PATCH 2/6] Add example for Temporal Coordinate Reference System Added example for Temporal Coordinate Reference System with JSON representation. --- standard/clause_specification_text.adoc | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/standard/clause_specification_text.adoc b/standard/clause_specification_text.adoc index ea0831c95..337b8b7ea 100644 --- a/standard/clause_specification_text.adoc +++ b/standard/clause_specification_text.adoc @@ -432,7 +432,7 @@ The temporal datum, also know as an epoch, for both kinds of Temporal Reference a client SHOULD interpret those dates in that reduced precision. - If `"type"` is `"TemporalRS"` and `"calendar"` is `"Gregorian"`, then the above lexical representation MUST be used. -Example: +Example of a calendar based Temporal Reference System: [%unnumbered%] ```json @@ -442,6 +442,22 @@ Example: } ``` +Example of a Temporal Coordinate Reference System: + +[%unnumbered%] +```json +{ + "type": "TemporalCRS", + "description": "Unix Time in Seconds, not milliseconds" + "calendar": "Gregorian" + "epoch": "http://www.opengis.net/def/datum/OGC/0/UnixTimeDatum" + "id": "http://www.opengis.net/def/axis/OGC/0/seconds" +} +``` +The value of the `"type"` member MUST be "TemporalCRS" +- The object MAY have an `"id"` member, whose value MUST be a string and SHOULD be a common identifier for the reference system. +- The object MAY have a `"description"` member, where the value MUST be an i18n object, but no standardised content is interpreted from this description. + [[identifier_based_reference_systems]] //### 6.3. Identifier-based Reference Systems ==== Identifier-based Reference Systems From 09bc0b1abcb7f7e5c2e4217b2ea5e7c3290e25b5 Mon Sep 17 00:00:00 2001 From: Chris Little Date: Wed, 24 Jun 2026 14:58:39 +0100 Subject: [PATCH 3/6] Enhance geospatial CRS descriptions for separate datums Improved clarity in the description of geospatial coordinate reference systems and possible datums. Added examples for geographic and projected CRSs. --- standard/clause_specification_text.adoc | 27 +++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/standard/clause_specification_text.adoc b/standard/clause_specification_text.adoc index 337b8b7ea..da523401a 100644 --- a/standard/clause_specification_text.adoc +++ b/standard/clause_specification_text.adoc @@ -329,8 +329,8 @@ Reference system objects are used to provide information about how to interpret [[geospatial_coordinate_reference_systems]] //### 6.1. Geospatial Coordinate Reference Systems -==== Geospatial Coordinate Reference Systems -Geospatial coordinate reference systems (CRSs) link coordinate values to the Earth. +==== Geospatial Coordinate Reference Systemn +Geospatial coordinate reference systems (CRSs) link coordinate values to the Earth. The fixed, stable, position on the Earth for anchoring the CRS is called a `datum`. A CRS definition may have a specific datum included, so that the CRS is complete. Other CRS definitions may rely on a separate datum definition that has to be specified explicitly. For example, if long term precision and accuracy of coordinates are required, the datum may be defined as fixed to a specific continental tectonic plate. //#### 6.1.1 Geographic Coordinate Reference Systems ===== Geographic Coordinate Reference Systems @@ -339,6 +339,7 @@ Geographic CRSs anchor coordinate values to an ellipsoidal approximation of the - The value of the `"type"` member MUST be "GeographicCRS" - The object MAY have an `"id"` member, whose value MUST be a string and SHOULD be a common identifier for the reference system. + - The object MAY have a `"datum"` member if the identified reference system definition does not specify a datum. - The object MAY have a `"description"` member, where the value MUST be an i18n object, but no standardized content is interpreted from this description. Note that sometimes (e.g. for numerical model data) the exact CRS may not be known or may be undefined. In this case the `"id"` may be omitted, but the `"type"` still indicates that this is a geographic CRS. Therefore clients can still use geodetic longitude, geodetic latitude (and maybe height) axes, even if they cannot accurately georeference the information. @@ -364,6 +365,16 @@ Example of a three-dimensional geographic CRS (latitude-longitude-height): "id": "http://www.opengis.net/def/crs/EPSG/0/4979" } ``` +Example of a two-dimensional geographic CRS (longitude-latitude) with an different datum: + +[%unnumbered%] +```json +{ + "type": "GeographicCRS", + "id": "http://www.opengis.net/def/crs/OGC/1.3/CRS84", + "datum": "http://www.opengis.net/def/crs/OGC/1.3/CRS84" +} +``` //#### 6.1.2 Projected Coordinate Reference Systems ===== Projected Coordinate Reference Systems @@ -372,6 +383,7 @@ Projected CRSs use two coordinates to denote positions on a Cartesian plane, whi - The value of the `"type"` member MUST be "ProjectedCRS" - The object MAY have an `"id"` member, whose value MUST be a string and SHOULD be a common identifier for the reference system. + - The object MAY have a `"datum"` member if the identified reference system definition does not specify a datum. - The object MAY have a `"description"` member, where the value MUST be an i18n object, but no standardized content is interpreted from this description. If a Coverage conforms to one of the defined <> then the coordinate identifier `"x"` is used to denote easting and `"y"` is used for northing. @@ -385,6 +397,17 @@ Example of a projected CRS using the http://spatialreference.org/ref/epsg/osgb-1 "id": "http://www.opengis.net/def/crs/EPSG/0/27700" } ``` +Example of a projected CRS using ta separate datum: + +[%unnumbered%] +```json +{ + "type": "ProjectedCRS", + "id": "http://www.opengis.net/def/crs/EPSG/0/27700", + "datum": "http://www.opengis.net/def/crs/OGC/1.3/CRS84" +} +``` + //#### 6.1.3 Vertical Coordinate Reference Systems ===== Vertical Coordinate Reference Systems From 8755d680e26108b914ab4a8686f6b0211c59283e Mon Sep 17 00:00:00 2001 From: Chris Little Date: Wed, 24 Jun 2026 17:31:15 +0100 Subject: [PATCH 4/6] temporal reference systems documentation Corrected typos and improved clarity in the documentation regarding temporal reference systems. --- standard/clause_specification_text.adoc | 53 ++++++++++++++++++------- 1 file changed, 38 insertions(+), 15 deletions(-) diff --git a/standard/clause_specification_text.adoc b/standard/clause_specification_text.adoc index da523401a..6213f7e6c 100644 --- a/standard/clause_specification_text.adoc +++ b/standard/clause_specification_text.adoc @@ -329,8 +329,8 @@ Reference system objects are used to provide information about how to interpret [[geospatial_coordinate_reference_systems]] //### 6.1. Geospatial Coordinate Reference Systems -==== Geospatial Coordinate Reference Systemn -Geospatial coordinate reference systems (CRSs) link coordinate values to the Earth. The fixed, stable, position on the Earth for anchoring the CRS is called a `datum`. A CRS definition may have a specific datum included, so that the CRS is complete. Other CRS definitions may rely on a separate datum definition that has to be specified explicitly. For example, if long term precision and accuracy of coordinates are required, the datum may be defined as fixed to a specific continental tectonic plate. +==== Geospatial Coordinate Reference Systems +Geospatial Coordinate Reference Systems (CRSs) link coordinate values to the Earth. The fixed, stable, position on the Earth for anchoring the CRS is called a `datum`. A CRS definition may have a specific datum included, so that the CRS is complete. Other CRS definitions may rely on a separate datum definition that has to be specified explicitly. For example, if long term precision and accuracy of coordinates are required, the datum may be defined as fixed to a specific continental tectonic plate. //#### 6.1.1 Geographic Coordinate Reference Systems ===== Geographic Coordinate Reference Systems @@ -365,7 +365,7 @@ Example of a three-dimensional geographic CRS (latitude-longitude-height): "id": "http://www.opengis.net/def/crs/EPSG/0/4979" } ``` -Example of a two-dimensional geographic CRS (longitude-latitude) with an different datum: +Example of a two-dimensional geographic CRS (longitude-latitude) with a different datum: [%unnumbered%] ```json @@ -397,7 +397,7 @@ Example of a projected CRS using the http://spatialreference.org/ref/epsg/osgb-1 "id": "http://www.opengis.net/def/crs/EPSG/0/27700" } ``` -Example of a projected CRS using ta separate datum: +Example of a projected CRS using a separate datum: [%unnumbered%] ```json @@ -408,7 +408,6 @@ Example of a projected CRS using ta separate datum: } ``` - //#### 6.1.3 Vertical Coordinate Reference Systems ===== Vertical Coordinate Reference Systems @@ -416,6 +415,7 @@ Vertical CRSs use a single coordinate to denote some measure of height or depth, - The value of the `"type"` member MUST be "VerticalCRS" - The object MAY have an `"id"` member, whose value MUST be a string and SHOULD be a common identifier for the reference system. +- The object MAY have a `"datum"` member if the identified reference system definition does not specify a datum. - The object MAY have a `"description"` member, where the value MUST be an i18n object, but no standardised content is interpreted from this description. Example of a vertical CRS, here representing height above the NAVD88 datum in metres: @@ -432,10 +432,10 @@ Example of a vertical CRS, here representing height above the NAVD88 datum in me //### 6.2. Temporal Reference Systems ==== Temporal Reference Systems -Time is referenced by a temporal reference system (temporal RS). A Temporal Reference System may be Calendar based, using dat-time specified with strings, or may be a Temporal Coordinate Reference System, using numeric values rather than strings. -In the orignal version, V1.0, of this Community Standard, only a string-based notation for time values is defined. +Time is referenced by a Temporal Reference System (TemporalRS). A Temporal Reference System may be calendar-based, using date-time specified with strings, or may be a Temporal Coordinate Reference System (TemporalCRS), using numeric values rather than strings. +In the original version, V1.0, of this Community Standard, only a string-based notation for time values was defined. -This version, v1.0.1, of the Community Standard allows for the alternative notation, allowing the recording of time values as numeric offsets from a given temporal datum (e.g. “days since 1970-01-01”). +This version, V1.0.1, of the Community Standard allows for the alternative notation, allowing the recording of time values as numeric offsets from a given fixed temporal datum (e.g. “days since 1970-01-01”). The temporal datum, also know as an epoch, for both kinds of Temporal Reference Systems is always specified as a calendar based string. @@ -455,7 +455,12 @@ The temporal datum, also know as an epoch, for both kinds of Temporal Reference a client SHOULD interpret those dates in that reduced precision. - If `"type"` is `"TemporalRS"` and `"calendar"` is `"Gregorian"`, then the above lexical representation MUST be used. -Example of a calendar based Temporal Reference System: +//#### 6.2.1 Temporal calendar-based Reference Systems +===== Temporal, calendar-based, Reference Systems + +A Temporal Reference System used a calendar-based string notation to specify a date-time with respect to an epoch. + +Example of a calendar-based Temporal Reference System: [%unnumbered%] ```json @@ -464,6 +469,15 @@ Example of a calendar based Temporal Reference System: "calendar": "Gregorian" } ``` +//#### 6.2.2 Temporal Coordinate Reference Systems +===== Temporal Coordinate Reference Systems + +Temporal CRSs use a single coordinate with numerical values to denote some measure of time using a single unit of time. + +The value of the `"type"` member MUST be "TemporalCRS" +- The object MAY have an `"id"` member, whose value MUST be a string and SHOULD be a common identifier for the reference system. +- The object MAY have a `"datum"` member if the identified Temporal Coordinate Reference System definition does not specify a datum. +- The object MAY have a `"description"` member, where the value MUST be an i18n object, but no standardised content is interpreted from this description. Example of a Temporal Coordinate Reference System: @@ -471,15 +485,24 @@ Example of a Temporal Coordinate Reference System: ```json { "type": "TemporalCRS", - "description": "Unix Time in Seconds, not milliseconds" + "id": "http://www.opengis.net/def/axis/OGC/0/UnixTime", + "description": "Unix Time in milliseconds since 1970-01-01", + "calendar": "Gregorian" + } +``` + +Example of a Temporal Coordinate Reference System with a separate datum/epoch: + +[%unnumbered%] +```json +{ + "type": "TemporalCRS", + "id": "http://www.opengis.net/def/axis/OGC/0/seconds", + "datum": "http://www.opengis.net/def/datum/OGC/0/UnixTimeDatum", + "description": "Unix Time in Seconds, not milliseconds", "calendar": "Gregorian" - "epoch": "http://www.opengis.net/def/datum/OGC/0/UnixTimeDatum" - "id": "http://www.opengis.net/def/axis/OGC/0/seconds" } ``` -The value of the `"type"` member MUST be "TemporalCRS" -- The object MAY have an `"id"` member, whose value MUST be a string and SHOULD be a common identifier for the reference system. -- The object MAY have a `"description"` member, where the value MUST be an i18n object, but no standardised content is interpreted from this description. [[identifier_based_reference_systems]] //### 6.3. Identifier-based Reference Systems From 8c662343ada86939e4109181127be04d55cf4912 Mon Sep 17 00:00:00 2001 From: Chris Little Date: Wed, 24 Jun 2026 20:03:51 +0100 Subject: [PATCH 5/6] Update CRS examples --- standard/clause_specification_text.adoc | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/standard/clause_specification_text.adoc b/standard/clause_specification_text.adoc index 6213f7e6c..6e0545dab 100644 --- a/standard/clause_specification_text.adoc +++ b/standard/clause_specification_text.adoc @@ -365,14 +365,15 @@ Example of a three-dimensional geographic CRS (latitude-longitude-height): "id": "http://www.opengis.net/def/crs/EPSG/0/4979" } ``` -Example of a two-dimensional geographic CRS (longitude-latitude) with a different datum: +Example of a two-dimensional geographic CRS (longitude-latitude) that needs a separate datum: [%unnumbered%] ```json { "type": "GeographicCRS", - "id": "http://www.opengis.net/def/crs/OGC/1.3/CRS84", - "datum": "http://www.opengis.net/def/crs/OGC/1.3/CRS84" + "id": "https://epsg.io/4277", + "datum": "https://epsg.io/6277-datum", + "description": "UK National Grid with the 1936 datum" } ``` @@ -395,6 +396,7 @@ Example of a projected CRS using the http://spatialreference.org/ref/epsg/osgb-1 { "type": "ProjectedCRS", "id": "http://www.opengis.net/def/crs/EPSG/0/27700" + "description": "British National Grid, United Kingdom Ordnance Survey" } ``` Example of a projected CRS using a separate datum: @@ -403,8 +405,9 @@ Example of a projected CRS using a separate datum: ```json { "type": "ProjectedCRS", - "id": "http://www.opengis.net/def/crs/EPSG/0/27700", - "datum": "http://www.opengis.net/def/crs/OGC/1.3/CRS84" + "id": "https://epsg.io/7706", + "datum": "https://epsg.io/6167-datum", + "description": "A moving platform grid with the New Zealand Geodetic Datum valid from March 2000" } ``` @@ -425,6 +428,7 @@ Example of a vertical CRS, here representing height above the NAVD88 datum in me { "type": "VerticalCRS", "id": "http://www.opengis.net/def/crs/EPSG/0/5703" + "description": "North American Vertical Datum 1988" } ``` @@ -486,7 +490,7 @@ Example of a Temporal Coordinate Reference System: { "type": "TemporalCRS", "id": "http://www.opengis.net/def/axis/OGC/0/UnixTime", - "description": "Unix Time in milliseconds since 1970-01-01", + "description": "Unix Time in Seconds since 1970-01-01T00:00 UTC", "calendar": "Gregorian" } ``` @@ -497,9 +501,9 @@ Example of a Temporal Coordinate Reference System with a separate datum/epoch: ```json { "type": "TemporalCRS", - "id": "http://www.opengis.net/def/axis/OGC/0/seconds", - "datum": "http://www.opengis.net/def/datum/OGC/0/UnixTimeDatum", - "description": "Unix Time in Seconds, not milliseconds", + "id": "http://www.opengis.net/def/cs/OGC/0/Days", + "datum": "http://www.opengis.net/def/datum/OGC/0/TruncatedJulianDateDatum", + "description": "Julian Days, counted from an epoch of 1968-05-24T00:00 UTC", "calendar": "Gregorian" } ``` From df0ce6ae7dd5e79a72adcc2124c06a0e47b555f4 Mon Sep 17 00:00:00 2001 From: Chris Little Date: Wed, 24 Jun 2026 22:15:47 +0100 Subject: [PATCH 6/6] Change CRS URLs to HTTPS and fix text formatting Updated URLs to use HTTPS and corrected hyphenation in text. --- standard/clause_specification_text.adoc | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/standard/clause_specification_text.adoc b/standard/clause_specification_text.adoc index 6e0545dab..42d81af39 100644 --- a/standard/clause_specification_text.adoc +++ b/standard/clause_specification_text.adoc @@ -352,7 +352,7 @@ Example of a two-dimensional geographic CRS (longitude-latitude): ```json { "type": "GeographicCRS", - "id": "http://www.opengis.net/def/crs/OGC/1.3/CRS84" + "id": "https://www.opengis.net/def/crs/OGC/1.3/CRS84" } ``` @@ -362,7 +362,7 @@ Example of a three-dimensional geographic CRS (latitude-longitude-height): ```json { "type": "GeographicCRS", - "id": "http://www.opengis.net/def/crs/EPSG/0/4979" + "id": "https://www.opengis.net/def/crs/EPSG/0/4979" } ``` Example of a two-dimensional geographic CRS (longitude-latitude) that needs a separate datum: @@ -395,7 +395,7 @@ Example of a projected CRS using the http://spatialreference.org/ref/epsg/osgb-1 ```json { "type": "ProjectedCRS", - "id": "http://www.opengis.net/def/crs/EPSG/0/27700" + "id": "https://www.opengis.net/def/crs/EPSG/0/27700" "description": "British National Grid, United Kingdom Ordnance Survey" } ``` @@ -427,7 +427,7 @@ Example of a vertical CRS, here representing height above the NAVD88 datum in me ```json { "type": "VerticalCRS", - "id": "http://www.opengis.net/def/crs/EPSG/0/5703" + "id": "https://www.opengis.net/def/crs/EPSG/0/5703" "description": "North American Vertical Datum 1988" } ``` @@ -441,7 +441,7 @@ In the original version, V1.0, of this Community Standard, only a string-based n This version, V1.0.1, of the Community Standard allows for the alternative notation, allowing the recording of time values as numeric offsets from a given fixed temporal datum (e.g. “days since 1970-01-01”). -The temporal datum, also know as an epoch, for both kinds of Temporal Reference Systems is always specified as a calendar based string. +The temporal datum, also know as an epoch, for both kinds of Temporal Reference Systems is always specified as a calendar-based string. - A temporal RS object MUST have a member `"type"`. The only currently defined values are `"TemporalRS"` or `"TemporalCRS"`. - A temporal RS object MUST have a member `"calendar"` with value `"Gregorian"` or a URI. @@ -462,7 +462,7 @@ The temporal datum, also know as an epoch, for both kinds of Temporal Reference //#### 6.2.1 Temporal calendar-based Reference Systems ===== Temporal, calendar-based, Reference Systems -A Temporal Reference System used a calendar-based string notation to specify a date-time with respect to an epoch. +A Temporal Reference System uses a calendar-based string notation to specify a date-time with respect to an epoch. Example of a calendar-based Temporal Reference System: @@ -473,6 +473,7 @@ Example of a calendar-based Temporal Reference System: "calendar": "Gregorian" } ``` + //#### 6.2.2 Temporal Coordinate Reference Systems ===== Temporal Coordinate Reference Systems