diff --git a/21-038.html b/21-038.html index 2b2a3bc2..a69b5291 100644 --- a/21-038.html +++ b/21-038.html @@ -1415,7 +1415,7 @@ @@ -1446,7 +1446,7 @@

I.  Abstract

matching a specify query (in combination with other building blocks defining queries, such as a filter defined using the OGC Common Query Language (CQL2).

-
+

II.  Keywords

The following are keywords to be used by search engines and document catalogues.

@@ -1468,7 +1468,7 @@

III.  Preface

IV.  Security considerations

No security considerations have been made for this document.

-
+

V.  Submitting Organizations

The following organizations submitted this Document to the Open Geospatial Consortium (OGC):

@@ -1535,41 +1535,45 @@

2.  Conformance

2.5.  Summary of conformance URIs

-

Table 1 — Conformance class URIs

Corresponding requirements classConformance class URI
Corehttp://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/core
Zone Data Retrievalhttp://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/data-retrieval
Zone Queryhttp://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/zone-query
Root DGGShttp://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/root-dggs
Collection DGGShttp://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/collection-dggs
Data subsettinghttp://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/data-subsetting
Data custom depthshttp://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/data-custom-depths
GeoJSON Datahttp://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/data-geojson
FG-JSON Datahttp://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/data-fgjson
GeoTIFF Datahttp://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/data-tiff
netCDF Datahttp://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/data-netcdf
CoverageJSON Datahttp://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/data-coveragejson
JPEG XL Datahttp://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/data-jpegxl
PNG Datahttp://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/data-png
JSON Zone Listhttp://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/zone-json
HTML Zone Listhttp://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/zone-html
64-bit Binary Zone Listhttp://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/zone-uint64
GeoJSON Zone Listhttp://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/zone-geojson
FG-JSON Zone Listhttp://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/zone-fgjson
GeoTIFF Zone Listhttp://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/zone-tiff
Operation IDshttp://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/operation-ids
+

Table 1 — Conformance class URIs

Corresponding requirements classConformance class URI
Corehttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/core
Zone Data Retrievalhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/data-retrieval
Zone Queryhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/zone-query
Filtering Zone Queries with CQL2https://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/cql2-query
Root DGGShttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/root-dggs
Collection DGGShttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/collection-dggs
Data subsettinghttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/data-subsetting
Data custom depthshttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/data-custom-depths
DGGS-JSON Datahttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/data-json
GeoJSON Datahttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/data-geojson
FG-JSON Datahttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/data-fgjson
GeoTIFF Datahttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/data-tiff
netCDF Datahttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/data-netcdf
CoverageJSON Datahttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/data-coveragejson
JPEG XL Datahttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/data-jpegxl
PNG Datahttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/data-png
JSON Zone Listhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/zone-json
HTML Zone Listhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/zone-html
64-bit Binary Zone Listhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/zone-uint64
GeoJSON Zone Listhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/zone-geojson
FG-JSON Zone Listhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/zone-fgjson
GeoTIFF Zone Listhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/zone-tiff
Operation IDshttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/conf/operation-ids

3.  Normative references

@@ -1623,19 +1627,77 @@

2.  Conformance

[SOURCE: ]

5.  Conventions

-

This sections provides details and examples for any conventions used in the document. Examples of conventions are symbols, abbreviations, use of XML schema, or special notes regarding how to read the document.

+

This section provides details of conventions used in this document.

5.1.  Identifiers

-

The normative provisions in this standard are denoted by the URI

+

The normative provisions in this standard are denoted by the URI https://www.opengis.net/spec/ogcapi-dggs-1/1.0.

+ +

All requirements and conformance tests that appear in this document are denoted by partial URIs which are relative to this base.

+
+ +

5.3.  Use of HTTPS

-

All requirements and conformance tests that appear in this document are denoted by partial URIs which are relative to this base.

+

For simplicity, the Maps API only refers to the HTTP protocol. This is not meant to exclude the use of HTTPS and simply is a shorthand notation for “HTTP or HTTPS.” +Following the recent push towards enhancing web security, public facing web servers are expected to use HTTPS rather than HTTP. +In the context of the OGC API — DGGS Standard, use of HTTPS provides a layer of security to prevent leaking of information related to users requesting dggs data or zones list for a particular geographical area, +which may be private or sensitive in nature (for example, their own location, or the location of endangered species).

-

6.  Requirement Class “Core”

-

6.1.  Overview

+

6.  Requirement Class “Core”

+

6.1.  Overview

The “Core” Requirement Class allows a client to list available DGGS for a given resource, retrieve additional information about a particular DGGS, and retrieve information about a particular DGGS zone.

@@ -1643,13 +1705,13 @@

6.  Requirement Class “Core”

The “Core” Requirement Class is the only mandatory Requirements Class, but an implementation with practical use is expected to additionally implement either the “Zone Data Retrieval” Requirement Class, the “Zone Query” Requirement Class, or both.

-

Requirements class 1

Target typeWeb API
Labelhttp://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/core
+

Requirements class 1

Target typeWeb API
Labelhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/core
-

6.2.  Requirements

+

6.2.  Requirements

-

6.2.1.  Listing available DGGS (…​/dggs)

+

6.2.1.  Listing available DGGRS (…​/dggs)

-

Requirement 1

Label/req/core/dggs-list
Statement

For retrieving the list of available discrete global grid reference systems:

+

Requirement 1

Label/req/core/dggrs-list
Statement

For retrieving the list of available discrete global grid reference systems:

A

The Implementation SHALL support an HTTP GET operation at a resource path ending with …​/dggs.

B

The Implementation SHALL support a JSON representation of this …​/dggs resource.

C

The …​/dggs resource SHALL include a dggs array property listing all discrete global grid reference systems supported by the Implementation.

@@ -1660,7 +1722,7 @@

6.  Requirement Class “Core”

6.2.2.  Discrete global grid reference system information (…​/dggs/{dggrsId})

-

Requirement 2

Label/req/core/dggs-info
Statement

For retrieving information for a particular available discrete global grid reference system:

+

Requirement 2

Label/req/core/dggrs-info
Statement

For retrieving information for a particular available discrete global grid reference system:

A

The Implementation SHALL support an HTTP GET operation at a resource path ending with …​/dggs/{dggrsId}.

B

The Implementation SHALL support a JSON representation of this …​/dggs/{dggrsId} resource.

C

The …​/dggs/{dggrsId} resource SHALL include an id property consistent with the {dggrsId} resource path parameter.

@@ -1669,7 +1731,7 @@

6.  Requirement Class “Core”

using the link relation type [ogc-rel:dggrs-definition]. The schema for that definition is likely to evolve in order to support describing a growing number of classes of DGGS. A first draft of this schema is available here.

-
F

The …​/dggs/{dggrsId} resource SHALL include a templated link in the linkTemplates array to request information for a particular zone using the link relation type [ogc-rel:dggs-zone-info].

+
F

The …​/dggs/{dggrsId} resource SHALL include a templated link in the linkTemplates array to request information for a particular zone using the link relation type [ogc-rel:dggrs-zone-info].

G

If the discrete global grid reference system (the combination of the discrete global grid and indexing system) is registered with an authority, the resource SHALL include uri property corresponding to that registered discrete global grid reference system.

H

If the discrete global grid reference system is based on a particular coordinate reference system, the resource shall specify that CRS in a crs property, preferably as a URI (if one is available).

I

The Implementation SHALL include a short title property identifying the discrete global grid reference system intended for display to a human.

@@ -1679,11 +1741,11 @@

6.  Requirement Class “Core”

6.2.3.  Retrieving zone information (…​/dggs/{dggrsId}/zones/{zoneId})

-

Requirement 3

Label/req/core/zone-info
Statement

For retrieving information for a particular DGGS zone:

+

Requirement 3

Label/req/core/zone-info
Statement

For retrieving information for a particular DGGS zone:

A

The Implementation SHALL support an HTTP GET operation at a resource path ending with …​/dggs/{dggrsId}/zones/{zoneId} providing information for a valid individual zones of the discrete global grid reference system.

B

The zone information resource SHALL support a JSON representation.

C

The zone information resource SHALL include an id property corresponding to the {zoneId} resource path parameter.

-
D

The zone information resource SHALL include a link back to the corresponding DGGS resource (…​/dggs) using the [ogc-rel:dggs] link relation type.

+
D

The zone information resource SHALL include a link back to the corresponding DGGS resource (…​/dggs) using the [ogc-rel:dggrs] link relation type.

Recommendation 1

Label/rec/core/zone-info
A

The zone information resource SHOULD include an areaMetersSquare property indicating the surface area of the zone in square meters.

@@ -1708,8 +1770,8 @@

6.  Requirement Class “Core”

-

7.  Requirement Class “Data Retrieval”

-

7.1.  Overview

+

7.  Requirement Class “Data Retrieval”

+

7.1.  Overview

The Data Retrieval conformance class allows to retrieve data from a specific Discrete Global Grid System (DGGS) in a particular indexing scheme from an individual zone. @@ -1725,9 +1787,9 @@

7.  Requirement Class “Data Retrieval”

in connection with OGC API — Processes — Part 3: Workflows & Chaining, the output of a processing workflow.

-

Requirements class 2

Target typeWeb API
Prerequisitehttp://www.opengis.net/spec/ogcapi-common-1/1.0/req/core
Labelhttp://www.opengis.net/spec/ogcapi-dggs-1/0.0/req/data-retrieval
+

Requirements class 2

Target typeWeb API
Prerequisitehttps://www.opengis.net/spec/ogcapi-common-1/1.0/req/core
Labelhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-retrieval
-

7.2.  Requirements

+

7.2.  Requirements

7.2.1.  Retrieving data from a zone (../dggs/{dggrsId}/zones/{zoneId}/data)

@@ -1737,8 +1799,8 @@

7.  Requirement Class “Data Retrieval”

Requirement 4

Label/req/data-retrieval/zone-data
Statement

For retrieving data for a single DGGS zone:

A

The operation SHALL support an HTTP GET operation at a resource path ending with …​/dggs/{dggrsId}/zones/{zoneId}/data.

-
B

The operation SHALL include a templated link to this resource path in the “Core” …​/dggs/{dggrsId} resource link templates, and regular link in the …​/dggs/{dggrsId}/zones/{zoneId} resource links -using the link relation type [ogc-rel:dggs-zone-data].

+
B

The operation SHALL include a templated link to this resource path in the “Core” …​/dggs/{dggrsId} resource link templates, and regular link in the …​/dggs/{dggrsId}/zones/{zoneId} resource links +using the link relation type [ogc-rel:dggrs-zone-data].

C

The response of the HTTP GET operation SHALL have a status code of 200.

D

The content of the response SHALL be a data packet corresponding precisely to the area covered by the DGGS zone.

E

The selection of an encoding for the response SHALL be consistent with HTTP content negotiation.

@@ -1750,8 +1812,8 @@

7.  Requirement Class “Data Retrieval”

-

8.  Requirement Class “Data Subsetting”

-

8.1.  Overview

+

8.  Requirement Class “Data Subsetting”

+

8.1.  Overview

The Data Subsetting requirements class extends the zone data retrieval requirements with the ability to subset data on additional dimensions beyond those defined by the discrete global grid reference systems (DGGRS), @@ -1759,9 +1821,9 @@

8.  Requirement Class “Data Subsetting”

such as atmospheric pressure levels. Two parameters are defined for this purpose: datetime (specifically for time) and subset (for any dimension, including time).

-

Requirements class 3

Target typeWeb API
Prerequisitehttp://www.opengis.net/spec/ogcapi-dggs-1/0.0/req/data-retrieval
Labelhttp://www.opengis.net/spec/ogcapi-dggs-1/0.0/req/data-subsetting
+

Requirements class 3

Target typeWeb API
Prerequisitehttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-retrieval
Labelhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-subsetting
-

8.2.  Requirements

+

8.2.  Requirements

8.2.1.  Parameter subset

@@ -1825,8 +1887,8 @@

8.  Requirement Class “Data Subsetting”

-

9.  Requirement Class “Data Custom Depths”

-

9.1.  Overview

+

9.  Requirement Class “Data Custom Depths”

+

9.1.  Overview

The Data Custom Depths requirements class extends the zone data retrieval requirements class allowing a client to customize which depths to include as part of a zone data response relative to the requested hierarchy level for which data is being requested. @@ -1834,9 +1896,9 @@

9.  Requirement Class “Data Custom Depths”

zone-depth query parameter. This depth customization ability can be restricted by the capability of the particular zone data response encoding negotiated.

-

Requirements class 4

Target typeWeb API
Prerequisitehttp://www.opengis.net/spec/ogcapi-dggs-1/0.0/req/data-retrieval
Labelhttp://www.opengis.net/spec/ogcapi-dggs-1/0.0/req/data-custom-depths
+

Requirements class 4

Target typeWeb API
Prerequisitehttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-retrieval
Labelhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-custom-depths
-

9.2.  Requirements

+

9.2.  Requirements

9.2.1.  Parameter zone-depth

@@ -1879,8 +1941,8 @@

9.  Requirement Class “Data Custom Depths”

-

10.  Requirement Class “Zone Query”

-

10.1.  Overview

+

10.  Requirement Class “Zone Query”

+

10.1.  Overview

The Zone Query conformance class allows to request the list of DGGS zones from a specific Discrete Global Grid System (DGGS) in a particular indexing scheme for which there is @@ -1893,9 +1955,9 @@

10.  Requirement Class “Zone Query”

in connection with OGC API — Processes — Part 3: Workflows & Chaining, the output of a processing workflow.

-

Requirements class 5

Target typeWeb API
Prerequisitehttp://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/core
Labelhttp://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-query
+

Requirements class 5

Target typeWeb API
Prerequisitehttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/core
Labelhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-query
-

10.2.  Requirements

+

10.2.  Requirements

10.2.1.  Listing zones (…​/dggs/{dggrsId}/zones)

@@ -1906,7 +1968,7 @@

10.  Requirement Class “Zone Query”

A

The Implementation SHALL support an HTTP GET operation at a resource path ending with …​/dggs/{dggrsId}/zones.

B

The Implementation SHALL include a link to this resource path in the “Core” …​/dggs/{dggrsId}` resource links -using the link relation type http://www.opengis.net/def/rel/ogc/1.0/dggs-zone-query.

+using the link relation type https://www.opengis.net/def/rel/ogc/1.0/dggs-zone-query.

C

The response of the HTTP GET operation SHALL have a status code of 200.

D

The content of the response SHALL be a list of zones fully covering where data is available (in the case where the resource is associated with a particular dataset), and @@ -1982,17 +2044,17 @@

10.  Requirement Class “Zone Query”

10.2.6.  Parameter bbox

-

Requirement 12

Label/req/zone-query/bbox
Statement

For specifying a spatial bounding box for which to return a list of DGGS zones:

+

Requirement 12

Label/req/zone-query/bbox
Statement

For specifying a spatial bounding box for which to return a list of DGGS zones:

A

The Implementation SHALL support a bbox query parameter for the zone query operation (resource path ending with …​/dggs/{dggrsId}/zones) with the characteristics defined in the OpenAPI Specification 3.0 fragment:

-
  bbox:
    name: bbox
    in: query
    description:
      Bounding box of the rendered map. The bounding box is provided as four or six coordinates

      * Lower left corner, coordinate axis 1
      * Lower left corner, coordinate axis 2
      * Minimum value, coordinate axis 3 (optional)
      * Upper right corner, coordinate axis 1
      * Upper right corner, coordinate axis 2
      * Maximum value, coordinate axis 3 (optional)

      The coordinate reference system and axis order of the values are indicated in the `bbox-crs` parameter or if the parameter is missing in http://www.opengis.net/def/crs/OGC/1.3/CRS84
    required: false
    schema:
      type: array
      oneOf:
      - minItems: 4
        maxItems: 4
      - minItems: 6
        maxItems: 6
      items:
        type: number
        format: double
    style: form
    explode: false
+
  bbox:
    name: bbox
    in: query
    description:
      Bounding box of the rendered map. The bounding box is provided as four or six coordinates

      * Lower left corner, coordinate axis 1
      * Lower left corner, coordinate axis 2
      * Minimum value, coordinate axis 3 (optional)
      * Upper right corner, coordinate axis 1
      * Upper right corner, coordinate axis 2
      * Maximum value, coordinate axis 3 (optional)

      The coordinate reference system and axis order of the values are indicated in the `bbox-crs` parameter or if the parameter is missing in https://www.opengis.net/def/crs/OGC/1.3/CRS84
    required: false
    schema:
      type: array
      oneOf:
      - minItems: 4
        maxItems: 4
      - minItems: 6
        maxItems: 6
      items:
        type: number
        format: double
    style: form
    explode: false
B

bbox SHALL be a comma separated list of four or six floating point numbers. If the bounding box consists of six numbers, the first three numbers are the coordinates of the lower bound corner of a three-dimensional bounding box and the last three are the coordinates of the upper bound corner. -The axis order is determined by the bbox-crs parameter value or longitude and latitude if the parameter is missing (http://www.opengis.net/def/crs/OGC/1.3/CRS84 axis order for a 2D bounding box, -http://www.opengis.net/def/crs/OGC/1.3/CRS84h for a 3D bounding box). -For example in http://www.opengis.net/def/crs/OGC/1.3/CRS84 the order is left_lon, lower_lat, right_lon, upper_lat.

+The axis order is determined by the bbox-crs parameter value or longitude and latitude if the parameter is missing (https://www.opengis.net/def/crs/OGC/1.3/CRS84 axis order for a 2D bounding box, +https://www.opengis.net/def/crs/OGC/1.3/CRS84h for a 3D bounding box). +For example in https://www.opengis.net/def/crs/OGC/1.3/CRS84 the order is left_lon, lower_lat, right_lon, upper_lat.

C

The returned list of zone IDs SHALL only contain zones inside or intersecting with the spatial extent of the geographical area of bounding box.

@@ -2001,8 +2063,8 @@

10.  Requirement Class “Zone Query”

Requirement 13

Label/req/zone-query/bbox-crs
Statement

For specifying the CRS in used for the bbox parameter using the bbox-crs parameter

A

The list of zones resource SHALL support a bbox-crs parameter specifying the CRS used for the bbox parameter.

-
B

For Earth centric data, the implementation SHALL support http://www.opengis.net/def/crs/OGC/1.3/CRS84 as a value.

-
C

If the bbox-crs is not indicated http://www.opengis.net/def/crs/OGC/1.3/CRS84 SHALL be assumed.

+
B

For Earth centric data, the implementation SHALL support https://www.opengis.net/def/crs/OGC/1.3/CRS84 as a value.

+
C

If the bbox-crs is not indicated https://www.opengis.net/def/crs/OGC/1.3/CRS84 SHALL be assumed.

D

The native CRS (storageCRS) SHALL be supported as a value. Other conformance classes may allow additional values (see crs parameter definition).

E

The CRS expressed as URIs or as safe CURIEs SHALL be supported.

F

If the bbox parameter is not used, the bbox-crs SHALL be ignored.

@@ -2024,13 +2086,13 @@

10.  Requirement Class “Zone Query”

F

The implementation SHALL return a 400 error status code if an axis name does not correspond to one of the axes of the Coordinate Reference System (CRS) of the data or an axis defined in the relevant extent property.

G

For a CRS where an axis can wrap around, such as subsetting across the dateline (anti-meridian) in a geographic CRS, a low value greater than high SHALL be supported to indicate an extent crossing that wrapping point.

-
H

The implementation SHALL interpret the coordinates as values for the named axis of the CRS specified in the subset-crs parameter value or in http://www.opengis.net/def/crs/OGC/1.3/CRS84 (http://www.opengis.net/def/crs/OGC/1.3/CRS84h for vertical dimension) if the subset-crs parameter is missing.

+
H

The implementation SHALL interpret the coordinates as values for the named axis of the CRS specified in the subset-crs parameter value or in https://www.opengis.net/def/crs/OGC/1.3/CRS84 (https://www.opengis.net/def/crs/OGC/1.3/CRS84h for vertical dimension) if the subset-crs parameter is missing.

I

If the subset parameter including any of the dimensions corresponding to those of the map bounding box is used with a bbox, the server SHALL return a 400 client error.

J

The implementation SHALL interpret multiple subset parameters, as if all dimension subsetting values were provided in a single subset parameter (comma separated). Example: subset=Lat(-90:90)&subset=Lon(-180:180) is equivalent to subset=Lat(-90:90),Lon(-180:180)

-

NOTE 1  A subset parameter for http://www.opengis.net/def/crs/OGC/1.3/CRS84 will read as subset=Lon(left_lon:right_lon),Lat(lower_lat:upper_lat).

+

NOTE 1  A subset parameter for https://www.opengis.net/def/crs/OGC/1.3/CRS84 will read as subset=Lon(left_lon:right_lon),Lat(lower_lat:upper_lat).

NOTE 2  When the interval values fall partially outside of the range of valid values defined by the CRS for the identified axis, the service is expected to return the non-empty portion of the resource resulting from the subset.

@@ -2042,8 +2104,8 @@

10.  Requirement Class “Zone Query”

Requirement 15

Label/req/zone-query/subset-crs
Statement

For specifying the CRS in used for the subset parameter using the subset-crs parameter

A

The zone listing operation SHALL support a parameter subset-crs with the characteristics identifying the CRS in which the subset parameter is specified with a URI or safe CURIE.

-
B

For Earth centric data, http://www.opengis.net/def/crs/OGC/1.3/CRS84 as a value SHALL be supported.

-
C

If the subset-crs is not indicated, http://www.opengis.net/def/crs/OGC/1.3/CRS84 SHALL be assumed.

+
B

For Earth centric data, https://www.opengis.net/def/crs/OGC/1.3/CRS84 as a value SHALL be supported.

+
C

If the subset-crs is not indicated, https://www.opengis.net/def/crs/OGC/1.3/CRS84 SHALL be assumed.

D

The native CRS (storageCRS) SHALL be supported as a value. Other requirements classes may allow additional values (see crs parameter definition).

E

CRSs expressed as URIs or as safe CURIEs SHALL be supported.

F

If no subset parameter referring to an axis of the CRS is used, the subset-crs SHALL be ignored.

@@ -2063,538 +2125,654 @@

10.  Requirement Class “Zone Query”

E

If a datetime parameter is specified requesting zone data where no temporal dimension applies, the implementation SHALL either ignore the parameter or return a 4xx client error.

+ + +
+

11.  Requirement Class “Filtering Zone Queries with CQL2”

+

11.1.  Overview

+ +

The Filtering Zone Queries with CQL2 conformance class defines a filter query parameter +where an OGC Common Query Language (CQL2) expression can be used to filter the list of returned zones, +for example based on the properties / fields of the data, per performing spatial and/or temporal intersections.

+ +

Requirements class 6

Target typeWeb API
Prerequisiteshttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-query
https://www.opengis.net/spec/cql2/1.0/req/cql2-text
Labelhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/cql2-query
+
+

11.2.  Requirements

+ +

11.2.1.  Parameter filter

+ +

The following requirements describe how a client can specify a filtering CQL2 expression querying a list of zones.

+ +

Requirement 17

Label/req/cql2-query/filter
Statement

For specifying a CQL2 expression filtering the zones returned from a zone query:

+
A

The Implementation SHALL support a filter query parameter specified using the CQL2-Text encoding of the OGC Common Query Language for the zone query +operation (resource path ending with …​/dggs/{dggrsId}/zones).

+
B

The list of returned zones SHALL only be those for which the CQL2 expression evaluates to true when considering the geometry and the data of the DGGS zones resource being queried.

+
+
-

11.  Requirement Class “Root DGGS”

-

11.1.  Overview

+

12.  Requirement Class “Root DGGS”

+

12.1.  Overview

-

The “Root DGGS” Requirement Class defines the availability of DGGS resources applying to a whole dataset or API, as defined by OGC API — Common — Part 1: Core.

+

The “Root DGGS” Requirement Class defines the availability of DGGS resources applying to a whole dataset or API, as defined by OGC API — Common — Part 1: Core.

-

Requirements class 6

Target typeWeb API
Prerequisitehttp://www.opengis.net/spec/ogcapi-common-1/1.0/req/core
Labelhttp://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/root-dggs
+

Requirements class 7

Target typeWeb API
Prerequisitehttps://www.opengis.net/spec/ogcapi-common-1/1.0/req/core
Labelhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/root-dggs
-

11.2.  Requirements

+

12.2.  Requirements

-

11.2.1.  Root DGGS (/dggs)

+

12.2.1.  Root DGGS (/dggs)

-

Requirement 17

Label/req/root-dggs/dggs
Statement

For API/dataset-wide DGGS resources:

-
A

The Implementation SHALL support DGGS resources for the dataset as a whole, for the “Core” requirement class, as well as any resources defined in additional supported requirements classes.

+

Requirement 18

Label/req/root-dggs/dggs
Statement

For API/dataset-wide DGGS resources:

+
A

The Implementation SHALL support DGGS resources for the dataset as a whole, for the “Core” requirement class, as well as any resources defined in additional supported requirements classes.

+
B

If the DGGS API allows querying or retrieving data from a dataset, the /dggs and /dggs/{dggrsId} resources SHALL include a link to the collection using the link relation type [ogc-rel:dataset].

-

12.  Requirement Class “Collection DGGS”

-

12.1.  Overview

+

13.  Requirement Class “Collection DGGS”

+

13.1.  Overview

-

The “Collection DGGS” Requirement Class defines the availability of DGGS resources applying to one or more collections of geospatial data, as defined by OGC API — Common — Part 2: Geospatial data.

+

The “Collection DGGS” Requirement Class defines the availability of DGGS resources applying to one or more collections of geospatial data, as defined by OGC API — Common — Part 2: Geospatial data.

-

Requirements class 7

Target typeWeb API
Prerequisitehttp://www.opengis.net/spec/ogcapi-common-2/1.0/req/collections
Labelhttp://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/collection-dggs
+

Requirements class 8

Target typeWeb API
Prerequisitehttps://www.opengis.net/spec/ogcapi-common-2/1.0/req/collections
Labelhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/collection-dggs
-

12.2.  Requirements

+

13.2.  Requirements

-

12.2.1.  Collection DGGS (/collections/{collectionId}/dggs)

+

13.2.1.  Collection DGGS (/collections/{collectionId}/dggs)

-

Requirement 18

Label/req/collection-dggs/dggs
Statement

For collection DGGS resources:

-
A

The Implementation SHALL support DGGS resources for at least one collection, for the “Core” requirement class, as well as any resources defined in additional supported requirements classes.

-
B

The /collections/{collectionId}/dggs and /collections/{collectionId}/dggs/{dggrsId} resources SHALL include a link to the collection using the link relation type [ogc-rel:geodata].

+

Requirement 19

Label/req/collection-dggs/dggs
Statement

For collection DGGS resources:

+
A

The Implementation SHALL support DGGS resources for at least one collection, for the “Core” requirement class, as well as any resources defined in additional supported requirements classes.

+
B

The /collections/{collectionId}/dggs and /collections/{collectionId}/dggs/{dggrsId} resources SHALL include a link to the collection using the link relation type [ogc-rel:geodata].

-
-

13.  Requirements Classes for Encodings of Zone data and Zone list

-

This standard does not mandate any particular encoding or format in which to return the ../dggs/zones and ../dggs/zones/{zoneId}/data resources. -DGGS Zone Data and Zone Lists can be encoded in any suitable data format. -However, it does define requirements class for encodings which are expected to be commonly supported in implementations of this standard. +

+

14.  Requirements Classes for Encodings of Zone data

+

This standard does not mandate any particular encoding or format in which to return the ../dggs/{dggrsId}/zones/{zoneId}/data resources. +DGGS Zone Data can be encoded in any suitable data format. +However, it does define requirements class for zone data encodings which are expected to be commonly supported in implementations of this standard. These requirements classes include:

-

- For zone data: -

-
  • GeoJSON Data

    -
  • -
  • FG-JSON Data

    -
  • -
  • GeoTIFF Data

    -
  • -
  • netCDF Data

    + -

    - For zone list: -

    - -

    13.1.  Media Types

    +

    14.1.  Media Types (for zone data)

    -

    A table of the media types used in the encoding requirements classes defined in this standard follows.

    +

    A table of the media types used in the encoding of the Zone Data requirements class defined in this standard follows.

    -

    Table 2 — Media Types used for encoding requirements classes

    Encodingmedia type
    GeoTIFF data or zone listimage/tiff; application=geotiff
    GeoJSON data or zone listapplication/geo+json
    JSON-FG data or zone listapplication/fg+json
    netCDF zone dataapplication/x-netcdf
    CoverageJSON zone dataapplication/prs.coverage+json
    PNG zone dataimage/png
    JPEG XL zone dataimage/jxl
    JSON zone dataapplication/json
    UB-JSON zone dataapplication/ubjson
    JSON zone listapplication/json
    HTML zone listtext/html
    Binary 64-bit zone listapplication/x-binary
    +

    Table 2 — Media Types used for zone data encoding requirements classes

    Encodingmedia type
    JSON zone dataapplication/json
    UB-JSON zone dataapplication/ubjson
    GeoJSON dataapplication/geo+json
    JSON-FG dataapplication/fg+json
    GeoTIFF dataimage/tiff; application=geotiff
    netCDF zone dataapplication/x-netcdf
    CoverageJSON zone dataapplication/prs.coverage+json
    PNG zone dataimage/png
    JPEG XL zone dataimage/jxl
    -

    13.2.  Zone data encodings

    +

    14.2.  Requirements Class “JSON Zone data encoding”

    -

    13.2.1.  Requirements Class “JSON Zone data encoding”

    +

    14.2.1.  Overview

    -

    13.2.1.1.  Overview

    +

    The JSON Zone Data encoding requirements class defines support for encoding a DGGS Zone data response in JSON, using a schema defined below named “DGGS-JSON”.

    -

    The JSON Zone Data encoding requirements class defines support for encoding a DGGS Zone data response according to JSON.

    +

    This encoding is intended to support one-to-one mapping of sub-zones values, for one or more zone depths, regardless of zone geometry type, in a human-readable format.

    -

    This encoding is intended to support one-to-one mapping of sub-zones values, for one or more zone depths, regardless of zone geometry type, in a human-readable format.

    +

    Values are encoded as a one-dimensional array following a sub-zone order defined by the DGGRS.

    -

    Values are encoded as a one-dimensional array following a sub-zone order defined by the DGGRS.

    +

    Example encodings follow:

    -

    Example encodings follow:

    +


    {
       “$schema” : “https://schemas.opengis.net/ogcapi/dggs/part1/1.0/openapi/schemas/dggs-json/schema”,
       “dggrs”: “https://www.opengis.net/def/dggrs/OGC/1.0/ISEA3H”,
       “zoneId”: “C0-2B-A”,
       “depths”: [ 0, 1 ],
       “schema”:
       {
          “$schema” : “https://json-schema.org/draft/2020-12/schema”,
          “$id” : “https://example.com/ogcapi/collections/climate/schema”,
          “title” : “Temperature”,
          “type”: “object”,
          “properties”:
          {
             “t”: {
                “type”: “number”,
                “title”: “air temperature in celsius”,
                “x-ogc-propertySeq” : 1,
                “x-ogc-definition”: “https://qudt.org/vocab/quantitykind/Temperature”,
                “x-ogc-unit”: “C”
             }
          }
       },
       “values”:
       {
          “t”: [
             {
                “depth”: 0,
                “shape”: { “count”: 1, “subZones”: 1 },
                “data”: [ 22.8 ]
             },
             {
                “depth”: 1,
                “shape”: { “count”: 7, “subZones”: 7 },
                “data”: [ 25.1, 25.8, 22.0, 23.1, 22.8, 20.0, 17.1 ]
             }
          ]
       }
    }

    Figure 6 — Example encoding for DGGS-JSON

    -


    {
       “$schema” : “https://schemas.opengis.net/ogcapi/dggs/part1/1.0/openapi/schemas/dggs-json/schema”,
       “dggrs”: “https://www.opengis.net/def/dggrs/OGC/1.0/ISEA3H”,
       “zoneId”: “C0-2B-A”,
       “depths”: [ 0, 1 ],
       “schema”:
       {
          “$schema” : “https://json-schema.org/draft/2020-12/schema”,
          “$id” : “https://example.com/ogcapi/collections/climate/schema”,
          “title” : “Temperature”,
          “type”: “object”,
          “properties”:
          {
             “t”: {
                “type”: “number”,
                “title”: “air temperature in celsius”,
                “x-ogc-propertySeq” : 1,
                “x-ogc-definition”: “https://qudt.org/vocab/quantitykind/Temperature”,
                “x-ogc-unit”: “C”
             }
          }
       },
       “values”:
       {
          “t”: [
             {
                “depth”: 0,
                “shape”: { “count”: 1, “subZones”: 1 },
                “data”: [ 22.8 ]
             },
             {
                “depth”: 1,
                “shape”: { “count”: 7, “subZones”: 7 },
                “data”: [ 25.1, 25.8, 22.0, 23.1, 22.8, 20.0, 17.1 ]
             }
          ]
       }
    }

    Figure 6 — Example encoding for DGGS-JSON

    +


    {
       “$schema” : “https://schemas.opengis.net/ogcapi/dggs/part1/1.0/openapi/schemas/dggs-json/schema”,
       “dggrs”: “https://www.opengis.net/def/dggrs/OGC/1.0/ISEA3H”,
       “zoneId”: “C0-2B-A”,
       “depths”: [ 0, 1 ],
       “schema”:
       {
          “$schema” : “https://json-schema.org/draft/2020-12/schema”,
          “$id” : “https://example.com/ogcapi/collections/climate/schema”,
          “title” : “Climate Variables”,
          “type”: “object”,
          “properties”:
          {
             “rh”: {
                “type”: “number”,
                “title”: “relative humidity”,
                “x-ogc-propertySeq” : 1,
                “x-ogc-definition”: “https://qudt.org/vocab/quantitykind/RelativeHumidity”
             },
             “t”: {
                “type”: “number”,
                “title”: “air temperature in celsius”,
                “x-ogc-propertySeq” : 2,
                “x-ogc-definition”: “https://qudt.org/vocab/quantitykind/Temperature”,
                “x-ogc-unit”: “C”
             },
             “ua”: {
                “type”: “number”,
                “title”: “Eastward wind”,
                “x-ogc-propertySeq” : 3,
                “x-ogc-definition”: “https://qudt.org/vocab/quantitykind/Speed”,
                “x-ogc-unit”: “m/s”
             },
             “va”: {
                “type”: “number”,
                “title”: “Northward wind”,
                “x-ogc-propertySeq” : 4,
                “x-ogc-definition”: “https://qudt.org/vocab/quantitykind/Speed”,
                “x-ogc-unit”: “m/s”
             }
          }
       },
       “dimensions” : [
          {
             “name”: “time”,
             “interval” : [ “2020-01-01”, “2020-03-31” ],
             “grid” : { “cellsCount” : 3, “resolution” : “P1M” }
          },
          {
             “name”: “pressure”,
             “definition”: “https://qudt.org/vocab/quantitykind/AtmosphericPressure”,
             “unit” : “hPa”,
             “interval” : [ 850.0, 50.0 ],
             “grid” : { “cellsCount” : 3, “coordinates” : [ 850.0, 250.0, 50.0 ] }
          }
       ],
       “values”:
       {
          “rh”: [
             {
                “depth”: 0,
                “shape”: { “count”: 9, “subZones”: 1, “dimensions”: { “pressure”: 3, “time”: 3 } },
                “data”: [
                   25.1, 25.8, 22.0,
                   23.1, 22.8, 20.0,
                   17.1, 12.8, 14.0,
                ]
             },
             {
                “depth”: 1,
                “shape”: { “count”: 63, “subZones”: 7, “dimensions”: { “pressure”: 3, “time”: 3 } },
                “data”: [
                   25.1, 25.8, 22.0, 23.1, 22.8, 20.0, 17.1, 12.8, 14.0,
                   25.1, 25.8, 22.0, 23.1, 22.8, 20.0, 17.1, 12.8, 14.0,
                   25.1, 25.8, 22.0, 23.1, 22.8, 20.0, 17.1, 12.8, 14.0,
                   25.1, 25.8, 22.0, 23.1, 22.8, 20.0, 17.1, 12.8, 14.0,
                   25.1, 25.8, 22.0, 23.1, 22.8, 20.0, 17.1, 12.8, 14.0,
                   25.1, 25.8, 22.0, 23.1, 22.8, 20.0, 17.1, 12.8, 14.0,
                   25.1, 25.8, 22.0, 23.1, 22.8, 20.0, 17.1, 12.8, 14.0,
                   25.1, 25.8, 22.0, 23.1, 22.8, 20.0, 17.1, 12.8, 14.0,
                   25.1, 25.8, 22.0, 23.1, 22.8, 20.0, 17.1, 12.8, 14.0
                ]
             }
          ],
          “t”: [ … ], “ua”: [ … ], “va”: [ … ]
       }
    }

    Figure 7 — A more complex example encoding for DGGS-JSON with more variables and additional dimensions beyond those of the DGGRS

    -


    {
       “$schema” : “https://schemas.opengis.net/ogcapi/dggs/part1/1.0/openapi/schemas/dggs-json/schema”,
       “dggrs”: “https://www.opengis.net/def/dggrs/OGC/1.0/ISEA3H”,
       “zoneId”: “C0-2B-A”,
       “depths”: [ 0, 1 ],
       “schema”:
       {
          “$schema” : “https://json-schema.org/draft/2020-12/schema”,
          “$id” : “https://example.com/ogcapi/collections/climate/schema”,
          “title” : “Climate Variables”,
          “type”: “object”,
          “properties”:
          {
             “rh”: {
                “type”: “number”,
                “title”: “relative humidity”,
                “x-ogc-propertySeq” : 1,
                “x-ogc-definition”: “https://qudt.org/vocab/quantitykind/RelativeHumidity”
             },
             “t”: {
                “type”: “number”,
                “title”: “air temperature in celsius”,
                “x-ogc-propertySeq” : 2,
                “x-ogc-definition”: “https://qudt.org/vocab/quantitykind/Temperature”,
                “x-ogc-unit”: “C”
             },
             “ua”: {
                “type”: “number”,
                “title”: “Eastward wind”,
                “x-ogc-propertySeq” : 3,
                “x-ogc-definition”: “https://qudt.org/vocab/quantitykind/Speed”,
                “x-ogc-unit”: “m/s”
             },
             “va”: {
                “type”: “number”,
                “title”: “Northward wind”,
                “x-ogc-propertySeq” : 4,
                “x-ogc-definition”: “https://qudt.org/vocab/quantitykind/Speed”,
                “x-ogc-unit”: “m/s”
             }
          }
       },
       “dimensions” : [
          {
             “name”: “time”,
             “interval” : [ “2020-01-01”, “2020-03-31” ],
             “grid” : { “cellsCount” : 3, “resolution” : “P1M” }
          },
          {
             “name”: “pressure”,
             “definition”: “https://qudt.org/vocab/quantitykind/AtmosphericPressure”,
             “unit” : “hPa”,
             “interval” : [ 850.0, 50.0 ],
             “grid” : { “cellsCount” : 3, “coordinates” : [ 850.0, 250.0, 50.0 ] }
          }
       ],
       “values”:
       {
          “rh”: [
             {
                “depth”: 0,
                “shape”: { “count”: 9, “subZones”: 1, “dimensions”: { “pressure”: 3, “time”: 3 } },
                “data”: [
                   25.1, 25.8, 22.0,
                   23.1, 22.8, 20.0,
                   17.1, 12.8, 14.0,
                ]
             },
             {
                “depth”: 1,
                “shape”: { “count”: 63, “subZones”: 7, “dimensions”: { “pressure”: 3, “time”: 3 } },
                “data”: [
                   25.1, 25.8, 22.0, 23.1, 22.8, 20.0, 17.1, 12.8, 14.0,
                   25.1, 25.8, 22.0, 23.1, 22.8, 20.0, 17.1, 12.8, 14.0,
                   25.1, 25.8, 22.0, 23.1, 22.8, 20.0, 17.1, 12.8, 14.0,
                   25.1, 25.8, 22.0, 23.1, 22.8, 20.0, 17.1, 12.8, 14.0,
                   25.1, 25.8, 22.0, 23.1, 22.8, 20.0, 17.1, 12.8, 14.0,
                   25.1, 25.8, 22.0, 23.1, 22.8, 20.0, 17.1, 12.8, 14.0,
                   25.1, 25.8, 22.0, 23.1, 22.8, 20.0, 17.1, 12.8, 14.0,
                   25.1, 25.8, 22.0, 23.1, 22.8, 20.0, 17.1, 12.8, 14.0,
                   25.1, 25.8, 22.0, 23.1, 22.8, 20.0, 17.1, 12.8, 14.0
                ]
             }
          ],
          “t”: [ … ], “ua”: [ … ], “va”: [ … ]
       }
    }

    Figure 7 — A more complex example encoding for DGGS-JSON with more variables and additional dimensions beyond those of the DGGRS

    +

    Requirements class 9: Requirements Class JSON Zone Data

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-json
    Target typeWeb API
    Conformance classConformance class A.9: https://www.opengis.net/spec/ogcapi-dggs/1.0/conf/data-json
    PrerequisitesJSON
    https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-retrieval
    -

    Requirements class 8: Requirements Class JSON Zone Data

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-json
    Target typeWeb API
    PrerequisitesJSON
    https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-retrieval
    - -

    Requirement 19

    Identifier/req/data-json/content
    A

    Every 200 response of the server for zone data with the media type application/json SHALL be a JSON document representing the data values for all selected fields for a single zone.

    -
    B

    The schema for the JSON document SHALL follow the JSON Schema for DGGS-JSON described below.

    -
    C

    Every zone depth requested using the zone-depth parameter SHALL be included in the response.

    -
    D

    At every depth, each individual value SHALL correspond exactly to the data sampled representative of that zone geometry.

    -
    E

    The list of data values SHALL follow the default zone order as specified by the Discrete Global Grid Reference System (for example based on a scanline or space-filling curved defined therein) for which the request is made.

    -
    F

    Null values SHALL use the null JSON value.

    +

    Requirement 20

    Identifier/req/data-json/content
    A

    Every 200 response of the server for zone data with the media type application/json SHALL be a JSON document representing the data values for all selected fields for a single zone.

    +
    B

    The schema for the JSON document SHALL follow the JSON Schema for DGGS-JSON described below.

    +
    C

    Every zone depth requested using the zone-depth parameter SHALL be included in the response.

    +
    D

    At every depth, each individual value SHALL correspond exactly to the data sampled representative of that zone geometry.

    +
    E

    The list of data values SHALL follow the default zone order as specified by the Discrete Global Grid Reference System (for example based on a scanline or space-filling curved defined therein) for which the request is made.

    +
    F

    Null values SHALL use the null JSON value.

    -


    {
       “$schema” : “https://json-schema.org/draft/2020-12/schema”,
       “$id” : “https://schemas.opengis.net/ogcapi/dggs/part1/1.0/openapi/schemas/dggs-json/schema”,
       “type”: “object”,
       “properties”:
       {
          “dggrs” : { “type”: “string”, “format”: “uri” },
          “zoneId” : { “type”: “string” },
          “depths” : { “type”: “array”, “items”: { “type”: “integer”, “minimum”: 0 } },
          “schema” : { “$ref”: “https://json-schema.org/draft/2020-12/schema” },
          “dimensions” :
          {
             “type”: “array”,
             “items”:
             {
                “type”: “object”,
                “properties”:
                {
                   “name”: { “type”: “string” },
                   “definition”: { “type”: “string”, “format”: “uri” },
                   “unit”: { “type”: “string” },
                   “unitLang”: { “type”: “string”, “format”: “uri” },
                   “grid”:
                   {
                      “type”: “object”,
                      “properties”:
                      {
                         “cellsCount” : { “type”: “integer” },
                         “resolution” : { },
                         “coordinates”: { “type”: “array” }
                      }
                   },
                   “interval”: { “type”: “array” }
                },
                “required”: [ “name”, “interval” ]
             }
          },
          “values” :
          {
             “additionalProperties”:
             {
                “type”: “array”,
                “items”:
                {
                   “type”: “object”,
                   “properties”:
                   {
                      “depth”: { “type”: “integer” },
                      “shape”:
                      {
                         “type”: “object”,
                         “properties”:
                         {
                            “count”: { “type”: “integer” },
                            “subZones”: { “type”: “integer” },
                            “dimensions”:
                            {
                               “type”: “object”,
                               “additionalProperties”: { “type”: “integer” }
                            }
                         },
                         “required”: [ “count”, “subZones” ]
                      },
                      “data”:
                      {
                         “type”: “array”,
                         “item”: “number”
                      }
                   }
                }
             }
          }
       },
       “required”: [ “dggrs”, “zoneId”, “depths”, “values” ]
    }

    Figure 8 — JSON Schema for DGGS-JSON

    +


    {
       “$schema” : “https://json-schema.org/draft/2020-12/schema”,
       “$id” : “https://schemas.opengis.net/ogcapi/dggs/part1/1.0/openapi/schemas/dggs-json/schema”,
       “type”: “object”,
       “properties”:
       {
          “dggrs” : { “type”: “string”, “format”: “uri” },
          “zoneId” : { “type”: “string” },
          “depths” : { “type”: “array”, “items”: { “type”: “integer”, “minimum”: 0 } },
          “schema” : { “$ref”: “https://json-schema.org/draft/2020-12/schema” },
          “dimensions” :
          {
             “type”: “array”,
             “items”:
             {
                “type”: “object”,
                “properties”:
                {
                   “name”: { “type”: “string” },
                   “definition”: { “type”: “string”, “format”: “uri” },
                   “unit”: { “type”: “string” },
                   “unitLang”: { “type”: “string”, “format”: “uri” },
                   “grid”:
                   {
                      “type”: “object”,
                      “properties”:
                      {
                         “cellsCount” : { “type”: “integer” },
                         “resolution” : { },
                         “coordinates”: { “type”: “array” }
                      }
                   },
                   “interval”: { “type”: “array” }
                },
                “required”: [ “name”, “interval” ]
             }
          },
          “values” :
          {
             “additionalProperties”:
             {
                “type”: “array”,
                “items”:
                {
                   “type”: “object”,
                   “properties”:
                   {
                      “depth”: { “type”: “integer” },
                      “shape”:
                      {
                         “type”: “object”,
                         “properties”:
                         {
                            “count”: { “type”: “integer” },
                            “subZones”: { “type”: “integer” },
                            “dimensions”:
                            {
                               “type”: “object”,
                               “additionalProperties”: { “type”: “integer” }
                            }
                         },
                         “required”: [ “count”, “subZones” ]
                      },
                      “data”:
                      {
                         “type”: “array”,
                         “item”: “number”
                      }
                   }
                }
             }
          }
       },
       “required”: [ “dggrs”, “zoneId”, “depths”, “values” ]
    }

    Figure 8 — JSON Schema for DGGS-JSON

    +

    14.3.  Requirements Class “UB-JSON Zone data encoding”

    -

    13.2.2.  Requirements Class “UB-JSON Zone data encoding”

    - -

    13.2.2.1.  Overview

    +

    14.3.1.  Overview

    -

    The UB-JSON Zone Data encoding requirements class defines support for encoding a DGGS Zone data response using the same JSON structure as the above JSON data requirement class, but using the binary UB-JSON encoding.

    +

    The UB-JSON Zone Data encoding requirements class defines support for encoding a DGGS Zone data response using the same JSON structure as the above JSON data requirement class, but using the binary UB-JSON encoding.

    -

    Requirements class 9: Requirements Class UB-JSON

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-ubjson
    Target typeWeb API
    Prerequisiteshttps://ubjson.org/
    https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-retrieval
    +

    Requirements class 10: Requirements Class UB-JSON

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-ubjson
    Target typeWeb API
    Prerequisiteshttps://ubjson.org/
    https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-retrieval
    -

    Requirement 20

    Identifier/req/data-ubjson/content
    A

    Every 200 response of the server for zone data with the media type application/ubjson SHALL be a Universal Binary JSON document representing the data values for all selected fields for a single zone.

    -
    B

    The schema for the UB-JSON document SHALL follow the same JSON Schema as for DGGS-JSON described above.

    -
    C

    Every zone depth requested using the zone-depth parameter SHALL be included in the response.

    -
    D

    At every depth, each individual value SHALL correspond exactly to the data sampled representative of that zone geometry.

    -
    E

    The list of data values SHALL follow the default zone order as specified by the Discrete Global Grid Reference System (for example based on a scanline or space-filling curved defined therein) for which the request is made.

    -
    F

    Null values SHALL use the null JSON value.

    +

    Requirement 21

    Identifier/req/data-ubjson/content
    A

    Every 200 response of the server for zone data with the media type application/ubjson SHALL be a Universal Binary JSON document representing the data values for all selected fields for a single zone.

    +
    B

    The schema for the UB-JSON document SHALL follow the same JSON Schema as for DGGS-JSON described above.

    +
    C

    Every zone depth requested using the zone-depth parameter SHALL be included in the response.

    +
    D

    At every depth, each individual value SHALL correspond exactly to the data sampled representative of that zone geometry.

    +
    E

    The list of data values SHALL follow the default zone order as specified by the Discrete Global Grid Reference System (for example based on a scanline or space-filling curved defined therein) for which the request is made.

    +
    F

    Null values SHALL use the null JSON value.

    +

    14.4.  Requirements Class “GeoTIFF Zone data encoding”

    -

    13.2.3.  Requirements Class “GeoTIFF Zone data encoding”

    +

    14.4.1.  Overview

    -

    13.2.3.1.  Overview

    +

    The GeoTIFF Zone Data encoding requirements class defines support for encoding a DGGS Zone data response according to the OGC GeoTIFF standard.

    -

    The GeoTIFF Zone Data encoding requirements class defines support for encoding a DGGS Zone data response according to the OGC GeoTIFF standard.

    +

    GeoTIFF is a commonly used format for representing 2-dimensional gridded coverages.

    -

    GeoTIFF is a commonly used format for representing 2-dimensional gridded coverages.

    +

    For a DGGS with non-rectangular zones (e.g., hexagonal zones), a GeoTIFF representation can be the minimal bounding rectangle of the zone shape, with NODATA values used outside the bounds of the zone.

    -

    For a DGGS with non-rectangular zones (e.g., hexagonal zones), a GeoTIFF representation can be the minimal bounding rectangle of the zone shape, with NODATA values used outside the bounds of the zone.

    +

    Requirements class 11: Requirements Class GeoTIFF Data

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-geotiff
    Target typeWeb API
    PrerequisitesTIFF V6.0
    GeoTIFF
    https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-retrieval
    -

    Requirements class 10: Requirements Class GeoTIFF Data

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-geotiff
    Target typeWeb API
    PrerequisitesTIFF V6.0
    GeoTIFF
    https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-retrieval
    - -

    Requirement 21

    Identifier/req/data-geotiff/content
    A

    Every 200 response of the server for zone data with the media type image/tiff SHALL be a TIFF image representing the data values for all selected fields for a single zone.

    -
    B

    If the TIFF encoding incorporates a GeoTIFF georeference, this information SHALL be consistent with the DGGRS Zone ID.

    -
    C

    If the zone geometry is not rectangular, the closest bounding rectangle SHALL be used for referencing the image.

    -
    D

    A distinct value for each sub-zone implied from the requested zone-depth SHALL correspond to at least one distinct cell value in the response.

    -
    E

    For implementations supporting Data Custom Depths, each depth of the requested zone depth pyramid SHALL be a separate image (overview) in the response.

    +

    Requirement 22

    Identifier/req/data-geotiff/content
    A

    Every 200 response of the server for zone data with the media type image/tiff SHALL be a TIFF image representing the data values for all selected fields for a single zone.

    +
    B

    If the TIFF encoding incorporates a GeoTIFF georeference, this information SHALL be consistent with the DGGRS Zone ID.

    +
    C

    If the zone geometry is not rectangular, the closest bounding rectangle SHALL be used for referencing the image.

    +
    D

    A distinct value for each sub-zone implied from the requested zone-depth SHALL correspond to at least one distinct cell value in the response.

    +
    E

    For implementations supporting Data Custom Depths, each depth of the requested zone depth pyramid SHALL be a separate image (overview) in the response.

    -

    Recommendation 4

    Identifier/rec/data-geotiff/null-values
    A

    Null values SHOULD be used for cells lying outside the zone geometry.

    +

    Recommendation 4

    Identifier/rec/data-geotiff/null-values
    A

    Null values SHOULD be used for cells lying outside the zone geometry.

    -

    Recommendation 5

    Identifier/rec/data-geotiff/crs
    A

    The CRS of the response SHOULD be consistent with either the DGGRS or the underlying geographic CRS (e.g., CRS84).

    +

    Recommendation 5

    Identifier/rec/data-geotiff/crs
    A

    The CRS of the response SHOULD be consistent with either the DGGRS or the underlying geographic CRS (e.g., CRS84).

    +

    14.5.  Requirements Class “GeoJSON Zone data encoding”

    -

    13.2.4.  Requirements Class “GeoJSON Zone data encoding”

    - -

    13.2.4.1.  Overview

    +

    14.5.1.  Overview

    -

    The GeoJSON Zone Data encoding requirements class defines support for encoding a DGGS Zone data response according to the GeoJSON specification.

    +

    The GeoJSON Zone Data encoding requirements class defines support for encoding a DGGS Zone data response according to the GeoJSON specification.

    -

    GeoJSON is a commonly used format for representing features with simple geometries and related properties. +

    GeoJSON is a commonly used format for representing features with simple geometries and related properties. GeoJSON is simple to understand and well supported by tools and software libraries. Since most Web developers are comfortable with using JSON-based formats, supporting GeoJSON is recommended for a vector representation of DGGS Zone data.

    -

    Requirements class 11: Requirements Class GeoJSON

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-geojson
    Target typeWeb API
    PrerequisitesGeoJSON
    https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-retrieval
    +

    Requirements class 12: Requirements Class GeoJSON

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-geojson
    Target typeWeb API
    Conformance classConformance class A.10: https://www.opengis.net/spec/ogcapi-dggs/1.0/conf/data-geojson
    PrerequisitesGeoJSON
    https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-retrieval
    -

    Requirement 22

    Identifier/req/data-geojson/content
    A

    Every 200 response of the server for zone data with the media type application/geo+json SHALL be a GeoJSON document representing the features, including their geometry and associated properties, for a single zone.

    -
    B

    Unless otherwise specified by a prior arrangement (for example, a crs output parameter), the coordinate reference system SHALL be CRS84(h) in longitude and latitude (and optional height above the WGS84 ellipsoid).

    -
    C

    Features whose geometry lie wholly outside of the zone geometry SHALL not be included in the response.

    +

    Requirement 23

    Identifier/req/data-geojson/content
    A

    Every 200 response of the server for zone data with the media type application/geo+json SHALL be a GeoJSON document representing the features, including their geometry and associated properties, for a single zone.

    +
    B

    Unless otherwise specified by a prior arrangement (for example, a crs output parameter), the coordinate reference system SHALL be CRS84(h) in longitude and latitude (and optional height above the WGS84 ellipsoid).

    +
    C

    Features whose geometry lie wholly outside of the zone geometry SHALL not be included in the response.

    -

    Recommendation 6

    Identifier/rec/data-geojson/clipping
    A

    For features partially inside of the zone geometry, the geometry included in the response SHOULD be clipped to the boundaries of the zone geometry.

    +

    Recommendation 6

    Identifier/rec/data-geojson/clipping
    A

    For features partially inside of the zone geometry, the geometry included in the response SHOULD be clipped to the boundaries of the zone geometry.

    -

    Recommendation 7

    Identifier/rec/data-geojson/generalization
    A

    The geometry of the features in the response SHOULD be generalized to the scale associated with the hierarchy level implied from the zone-depth relative to the requested zone.

    +

    Recommendation 7

    Identifier/rec/data-geojson/generalization
    A

    The geometry of the features in the response SHOULD be generalized to the scale associated with the hierarchy level implied from the zone-depth relative to the requested zone.

    -

    Recommendation 8

    Identifier/rec/data-geojson/omission
    A

    For datasets whose features have either a size (such as areal or linear feature) or other properties making some features irrelevant at lower hierarchy levels, such irrelevant features SHOULD +

    Recommendation 8

    Identifier/rec/data-geojson/omission
    A

    For datasets whose features have either a size (such as areal or linear feature) or other properties making some features irrelevant at lower hierarchy levels, such irrelevant features SHOULD be omitted from the response based on the hierarchy level implied from the zone-depth relative to the requested zone.

    +

    14.6.  Requirements Class “FG-JSON Zone data encoding”

    -

    13.2.5.  Requirements Class “FG-JSON Zone data encoding”

    +

    14.6.1.  Overview

    -

    13.2.5.1.  Overview

    +

    The FG-JSON Zone Data encoding requirements class defines support for encoding a DGGS Zone data response according to the FG JSON candidate Standard.

    -

    The FG-JSON Zone Data encoding requirements class defines support for encoding a DGGS Zone data response according to the FG JSON candidate Standard.

    - -

    FG JSON is an OGC format for representing features with simple geometries and related properties, with extending GeoJSON with greater flexibility. +

    FG JSON is an OGC format for representing features with simple geometries and related properties, with extending GeoJSON with greater flexibility. FG JSON is simple to understand and well supported by tools and software libraries. Since most Web developers are comfortable with using JSON-based formats, supporting FG JSON is recommended for a vector representation of DGGS Zone data.

    -

    Requirements class 12: Requirements Class FG-JSON Data

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-fgjson
    Target typeWeb API
    PrerequisitesOGC 21-045r1
    https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-retrieval
    +

    Requirements class 13: Requirements Class FG-JSON Data

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-fgjson
    Target typeWeb API
    Conformance classConformance class A.11: https://www.opengis.net/spec/ogcapi-dggs/1.0/conf/data-fgjson
    PrerequisitesOGC 21-045r1
    https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-retrieval
    -

    Requirement 23

    Identifier/req/data-fgjson/content
    A

    Every 200 response of the server for zone data with the media type application/fg+json SHALL be a Feature & Geometries JSON document representing the features, including their geometry and associated properties, for a single zone.

    -
    B

    Features whose geometry lie wholly outside of the zone geometry SHALL not be included in the response.

    +

    Requirement 24

    Identifier/req/data-fgjson/content
    A

    Every 200 response of the server for zone data with the media type application/fg+json SHALL be a Feature & Geometries JSON document representing the features, including their geometry and associated properties, for a single zone.

    +
    B

    Features whose geometry lie wholly outside of the zone geometry SHALL not be included in the response.

    -

    Recommendation 9

    Identifier/rec/data-fgjson/clipping
    A

    For features partially inside of the zone geometry, the geometry included in the response SHOULD be clipped to the boundaries of the zone geometry.

    +

    Recommendation 9

    Identifier/rec/data-fgjson/clipping
    A

    For features partially inside of the zone geometry, the geometry included in the response SHOULD be clipped to the boundaries of the zone geometry.

    -

    Recommendation 10

    Identifier/rec/data-fgjson/generalization
    A

    The geometry of the features in the response SHOULD be generalized to the scale associated with the hierarchy level implied from the zone-depth relative to the requested zone.

    +

    Recommendation 10

    Identifier/rec/data-fgjson/generalization
    A

    The geometry of the features in the response SHOULD be generalized to the scale associated with the hierarchy level implied from the zone-depth relative to the requested zone.

    -

    Recommendation 11

    Identifier/rec/data-fgjson/omission
    A

    For datasets whose features have either a size (such as areal or linear feature) or other properties making some features irrelevant at lower hierarchy levels, such irrelevant features SHOULD +

    Recommendation 11

    Identifier/rec/data-fgjson/omission
    A

    For datasets whose features have either a size (such as areal or linear feature) or other properties making some features irrelevant at lower hierarchy levels, such irrelevant features SHOULD be omitted from the response based on the hierarchy level implied from the zone-depth relative to the requested zone.

    -

    Recommendation 12

    Identifier/rec/data-fgjson/crs
    A

    The CRS of the response SHOULD be consistent with either the DGGRS or the underlying geographic CRS (e.g., CRS84).

    +

    Recommendation 12

    Identifier/rec/data-fgjson/crs
    A

    The CRS of the response SHOULD be consistent with either the DGGRS or the underlying geographic CRS (e.g., CRS84).

    +

    14.7.  Requirements Class “netCDF zone data encoding”

    -

    13.2.6.  Requirements Class “netCDF zone data encoding”

    - -

    13.2.6.1.  Overview

    +

    14.7.1.  Overview

    -

    The netCDF Zone Data encoding requirements class defines support for encoding a DGGS Zone data response according to the OGC netCDF standard.

    +

    The netCDF Zone Data encoding requirements class defines support for encoding a DGGS Zone data response according to the OGC netCDF standard.

    -

    Requirements class 13: Requirements Class NetCDF

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-netcdf
    Target typeWeb API
    PrerequisitesOGC Network Common Data Form (NetCDF) Core Encoding Standard version 1.0
    https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-retrieval
    +

    Requirements class 14: Requirements Class NetCDF

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-netcdf
    Target typeWeb API
    Conformance classConformance class A.13: https://www.opengis.net/spec/ogcapi-dggs/1.0/conf/data-netcdf
    PrerequisitesOGC Network Common Data Form (NetCDF) Core Encoding Standard version 1.0
    https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-retrieval
    -

    Requirement 24

    Identifier/req/data-netcdf/content
    A

    Every 200 response of the server for zone data with the media type application/netcdf SHALL be a netCDF file representing the data values for all selected fields for a single zone.

    -
    B

    If the netCDF encoding incorporates georeferencing information, this information SHALL be consistent with the DGGRS Zone ID.

    -
    C

    If the zone geometry is not rectilinear, the closest bounding rectangle (or volume) SHALL be used for referencing the data.

    -
    D

    A distinct value for each sub-zone implied from the requested zone-depth SHALL correspond to at least one distinct cell value in the response.

    +

    Requirement 25

    Identifier/req/data-netcdf/content
    A

    Every 200 response of the server for zone data with the media type application/netcdf SHALL be a netCDF file representing the data values for all selected fields for a single zone.

    +
    B

    If the netCDF encoding incorporates georeferencing information, this information SHALL be consistent with the DGGRS Zone ID.

    +
    C

    If the zone geometry is not rectilinear, the closest bounding rectangle (or volume) SHALL be used for referencing the data.

    +
    D

    A distinct value for each sub-zone implied from the requested zone-depth SHALL correspond to at least one distinct cell value in the response.

    -

    Recommendation 13

    Identifier/rec/data-netcdf/null-values
    A

    Null values SHOULD be used for cells lying outside the zone geometry.

    +

    Recommendation 13

    Identifier/rec/data-netcdf/null-values
    A

    Null values SHOULD be used for cells lying outside the zone geometry.

    -

    Recommendation 14

    Identifier/rec/data-netcdf/crs
    A

    The CRS of the response SHOULD be consistent with either the DGGRS or the underlying geographic CRS (e.g., CRS84).

    +

    Recommendation 14

    Identifier/rec/data-netcdf/crs
    A

    The CRS of the response SHOULD be consistent with either the DGGRS or the underlying geographic CRS (e.g., CRS84).

    +

    14.8.  Requirements Class “CoverageJSON zone data encoding”

    -

    13.2.7.  Requirements Class “CoverageJSON zone data encoding”

    +

    14.8.1.  Overview

    -

    13.2.7.1.  Overview

    +

    The CoverageJSON requirements class defines support for encoding a DGGS Zone data response according to the OGC CoverageJSON Community Standard.

    -

    The CoverageJSON requirements class defines support for encoding a DGGS Zone data response according to the OGC CoverageJSON Community Standard.

    +

    Requirements class 15: Requirements Class CoverageJSON Data

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-coveragejson
    Target typeWeb API
    Conformance classConformance class A.14: https://www.opengis.net/spec/ogcapi-dggs/1.0/conf/data-coveragejson
    PrerequisitesOGC 21-069r2
    https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-retrieval
    -

    Requirements class 14: Requirements Class CoverageJSON Data

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-coveragejson
    Target typeWeb API
    PrerequisitesOGC 21-069r2
    https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-retrieval
    - -

    Requirement 25

    Identifier/req/data-coveragejson/content
    A

    Every 200 response of the server for zone data with the media type application/prs.coverage+json SHALL be a CoverageJSON file representing the data values for all selected fields for a single zone.

    -
    B

    If the CoverageJSON encoding incorporates georeferencing information, this information SHALL be consistent with the DGGRS Zone ID.

    -
    C

    If the zone geometry is not rectilinear, the closest bounding rectangle (or volume) SHALL be used for referencing the data.

    -
    D

    A distinct value for each sub-zone implied from the requested zone-depth SHALL correspond to at least one distinct cell value in the response.

    +

    Requirement 26

    Identifier/req/data-coveragejson/content
    A

    Every 200 response of the server for zone data with the media type application/prs.coverage+json SHALL be a CoverageJSON file representing the data values for all selected fields for a single zone.

    +
    B

    If the CoverageJSON encoding incorporates georeferencing information, this information SHALL be consistent with the DGGRS Zone ID.

    +
    C

    If the zone geometry is not rectilinear, the closest bounding rectangle (or volume) SHALL be used for referencing the data.

    +
    D

    A distinct value for each sub-zone implied from the requested zone-depth SHALL correspond to at least one distinct cell value in the response.

    -

    Recommendation 15

    Identifier/rec/data-coveragejson/null-values
    A

    Null values SHOULD be used for cells lying outside the zone geometry.

    +

    Recommendation 15

    Identifier/rec/data-coveragejson/null-values
    A

    Null values SHOULD be used for cells lying outside the zone geometry.

    -

    Recommendation 16

    Identifier/rec/data-coveragejson/crs
    A

    The CRS of the response SHOULD be consistent with either the DGGRS or the underlying geographic CRS (e.g., CRS84).

    +

    Recommendation 16

    Identifier/rec/data-coveragejson/crs
    A

    The CRS of the response SHOULD be consistent with either the DGGRS or the underlying geographic CRS (e.g., CRS84).

    +

    14.9.  Requirements Class “JPEG-XL Zone data encoding”

    -

    13.2.8.  Requirements Class “JPEG-XL Zone data encoding”

    - -

    13.2.8.1.  Overview

    +

    14.9.1.  Overview

    -

    The JPEG XL Zone Data encoding requirements class defines support for encoding a DGGS Zone data response according to the JPEG XL ISO/IEC 18181 Standard.

    +

    The JPEG XL Zone Data encoding requirements class defines support for encoding a DGGS Zone data response according to the JPEG XL ISO/IEC 18181 Standard.

    -

    JPEG XL supports a large number of bands, image dimensions, and floating point values.

    +

    JPEG XL supports a large number of bands, image dimensions, and floating point values.

    -

    Requirements class 15: Requirements Class JPEG XL Data

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-jpegxl
    Target typeWeb API
    PrerequisitesISO/IEC 18181-1
    ISO/IEC 18181-2
    https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-retrieval
    +

    Requirements class 16: Requirements Class JPEG XL Data

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-jpegxl
    Target typeWeb API
    Conformance classConformance class A.15: https://www.opengis.net/spec/ogcapi-dggs/1.0/conf/data-jpegxl
    PrerequisitesISO/IEC 18181-1
    ISO/IEC 18181-2
    https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-retrieval
    -

    Requirement 26

    Identifier/req/data-jpegxl/content
    A

    Every 200 response of the server for zone data with the media type image/jxl SHALL be a JPEG XL image representing the data values for all selected fields for a single zone.

    -
    B

    If the zone geometry is not rectangular, the closest bounding rectangle SHALL be used for referencing the image.

    -
    C

    A distinct value for each sub-zone implied from the requested zone-depth SHALL correspond to at least one distinct cell value in the response.

    -
    D

    For implementations supporting Data Custom Depths, each depth of the requested zone depth pyramid SHALL be a separate image (overview) in the response.

    +

    Requirement 27

    Identifier/req/data-jpegxl/content
    A

    Every 200 response of the server for zone data with the media type image/jxl SHALL be a JPEG XL image representing the data values for all selected fields for a single zone.

    +
    B

    If the zone geometry is not rectangular, the closest bounding rectangle SHALL be used for referencing the image.

    +
    C

    A distinct value for each sub-zone implied from the requested zone-depth SHALL correspond to at least one distinct cell value in the response.

    +
    D

    For implementations supporting Data Custom Depths, each depth of the requested zone depth pyramid SHALL be a separate image (overview) in the response.

    -

    Recommendation 17

    Identifier/rec/data-jpegxl/null-values
    A

    Null values SHOULD be used for cells lying outside the zone geometry.

    +

    Recommendation 17

    Identifier/rec/data-jpegxl/null-values
    A

    Null values SHOULD be used for cells lying outside the zone geometry.

    -

    Recommendation 18

    Identifier/rec/data-jpegxl/crs
    A

    The CRS of the response SHOULD be consistent with either the DGGRS or the underlying geographic CRS (e.g., CRS84).

    +

    Recommendation 18

    Identifier/rec/data-jpegxl/crs
    A

    The CRS of the response SHOULD be consistent with either the DGGRS or the underlying geographic CRS (e.g., CRS84).

    +

    14.10.  Requirements Class “PNG Zone data encoding”

    -

    13.2.9.  Requirements Class “PNG Zone data encoding”

    +

    14.10.1.  Overview

    -

    13.2.9.1.  Overview

    +

    The PNG Zone Data encoding requirements class defines support for encoding a DGGS Zone data response according to the W3C Portable Network Graphics (PNG) Specification (ISO/IEC 15948:2003).

    -

    The PNG Zone Data encoding requirements class defines support for encoding a DGGS Zone data response according to the W3C Portable Network Graphics (PNG) Specification (ISO/IEC 15948:2003).

    - -

    Because PNG encoding is limited to an integer data values, this requirements class defines additional parameters and response headers allowing a client to request +

    Because PNG encoding is limited to an integer data values, this requirements class defines additional parameters and response headers allowing a client to request a specific scale factor and offset to be used to quantize data values, and allowing the implementation to inform the client of the scale factor and offset used for that quantization.

    -

    Requirements class 16: Requirements Class PNG Data

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-png
    Target typeWeb API
    PrerequisitesISO/IEC 15948
    https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-retrieval
    +

    Requirements class 17: Requirements Class PNG Data

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-png
    Target typeWeb API
    Conformance classConformance class A.16: https://www.opengis.net/spec/ogcapi-dggs/1.0/conf/data-png
    PrerequisitesISO/IEC 15948
    https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-retrieval
    -

    Requirement 27

    Identifier/req/data-png/content
    A

    Every 200 response of the server for zone data with the media type image/png SHALL be a PNG image representing the data values for all selected fields for a single zone.

    -
    B

    If the zone geometry is not rectangular, the closest bounding rectangle SHALL be used for referencing the image.

    -
    C

    A distinct value for each sub-zone implied from the requested zone-depth SHALL correspond to at least one distinct cell value in the response.

    -
    D

    For implementations supporting Data Custom Depths, each depth of the requested zone depth pyramid SHALL be a separate image (overview) in the response.

    +

    Requirement 28

    Identifier/req/data-png/content
    A

    Every 200 response of the server for zone data with the media type image/png SHALL be a PNG image representing the data values for all selected fields for a single zone.

    +
    B

    If the zone geometry is not rectangular, the closest bounding rectangle SHALL be used for referencing the image.

    +
    C

    A distinct value for each sub-zone implied from the requested zone-depth SHALL correspond to at least one distinct cell value in the response.

    +
    D

    For implementations supporting Data Custom Depths, each depth of the requested zone depth pyramid SHALL be a separate image (overview) in the response.

    -

    Recommendation 19

    Identifier/rec/data-png/null-values
    A

    Null values SHOULD be used for cells lying outside the zone geometry.

    +

    Recommendation 19

    Identifier/rec/data-png/null-values
    A

    Null values SHOULD be used for cells lying outside the zone geometry.

    -

    Recommendation 20

    Identifier/rec/data-png/crs
    A

    The CRS of the response SHOULD be consistent with either the DGGRS or the underlying geographic CRS (e.g., CRS84).

    +

    Recommendation 20

    Identifier/rec/data-png/crs
    A

    The CRS of the response SHOULD be consistent with either the DGGRS or the underlying geographic CRS (e.g., CRS84).

    - -

    13.3.  Zone list encodings

    +
    +
    +

    15.  Requirements Classes for Encodings of Zone list

    +

    This standard does not mandate any particular encoding or format in which to return the ../dggs/{dggrsId}/zones resources. +DGGS Zone Lists can be encoded in any suitable data format. +However, it does define requirements class for zone list encodings which are expected to be commonly supported in implementations of this standard. +These requirements classes include:

    + +

    15.1.  Media Types (for zone list)

    + +

    A table of the media types used in the zone list encoding requirements classes defined in this standard follows.

    -

    13.3.1.  Requirements Class “JSON zone list encoding”

    +

    Table 3 — Media Types used for zone list encoding requirements classes

    Encodingmedia type
    GeoTIFF zone listimage/tiff; application=geotiff
    GeoJSON zone listapplication/geo+json
    JSON-FG zone listapplication/fg+json
    JSON zone listapplication/json
    HTML zone listtext/html
    Binary 64-bit zone listapplication/x-binary
    +
    +

    15.2.  Requirements Class “JSON zone list encoding”

    -

    13.3.1.1.  Overview

    +

    15.2.1.  Overview

    -

    The JSON zone list encoding requirements class defines the ability to retrieve a JSON response for the DGGS zone list resource.

    +

    The JSON zone list encoding requirements class defines the ability to retrieve a JSON response for the DGGS zone list resource.

    -

    The response consists of a simple JSON object with a “zones” array property listing the zone identifiers as strings. +

    The response consists of a simple JSON object with a “zones” array property listing the zone identifiers as strings. The object can also include a “links” objects linking back to other resources of the DGGS.

    -

    This requirement class provides an easy to implement, reasonably efficient and interoperable mechanism to exchange lists of zone identifiers.

    +

    This requirement class provides an easy to implement, reasonably efficient and interoperable mechanism to exchange lists of zone identifiers.

    -

    Requirements class 17: Requirements Class JSON Zone List

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-json
    Target typeWeb API
    PrerequisitesJSON
    https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-query
    +

    Requirements class 18: Requirements Class JSON Zone List

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-json
    Target typeWeb API
    Conformance classConformance class A.17: https://www.opengis.net/spec/ogcapi-dggs/1.0/conf/zone-json
    PrerequisitesJSON
    https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-query
    -

    Requirement 28

    Identifier/req/zone-json/content
    A

    Every 200 response of the server for zone query with the media type application/json SHALL be a JSON document listing the textual identifiers for all zones matching the query.

    -
    B

    The schema for the JSON document SHALL follow the JSON Schema for DGGS Zone Query described below, where the zone identifiers are strings within a zones array property.

    +

    Requirement 29

    Identifier/req/zone-json/content
    A

    Every 200 response of the server for zone query with the media type application/json SHALL be a JSON document listing the textual identifiers for all zones matching the query.

    +
    B

    The schema for the JSON document SHALL follow the JSON Schema for DGGS Zone Query described below, where the zone identifiers are strings within a zones array property.

    -


    {
       "$schema" : "https://json-schema.org/draft/2020-12/schema",
       "$id" : "https://schemas.opengis.net/ogcapi/dggs/part1/1.0/openapi/schemas/dggs-core/dggs-zones.json",
       "type": "object",
       "required": [ "zones" ],
       "properties":
       {
          "zones" : { "type": "array", "items": { "type": "string" } },
          "links" :
          {
             "description": "Links to related resources. An `[ogc-rel:dggrs]` link to the Discrete Global Grid Reference System description resource and an `[ogc-rel:dggrs-definition]` link to the DGGRS definition (using the schema defined by https://github.com/opengeospatial/ogcapi-discrete-global-grid-systems/blob/master/openapi/schemas/dggs-core/dggrs-definition.yaml) are required. A `[ogc-rel:dggs-zone-data]` link to retrieve data from each of these DGGS zones should also be included if _DGGS Zone Data Retrieval_ is supported. An `[ogc-rel:geodata]` link should also be included for zone listing pertaining to a particular collection (for _Collection DGGS requirement class_)."
             "items": { "$ref" : "https://schemas.opengis.net/ogcapi/dggs/part1/1.0/openapi/schemas/common-core/link.yaml"
          }
       }
    }

    Figure 9 — JSON Schema for a DGGS Zone Query response

    +


    {
       "$schema" : "https://json-schema.org/draft/2020-12/schema",
       "$id" : "https://schemas.opengis.net/ogcapi/dggs/part1/1.0/openapi/schemas/dggs-core/dggs-zones.json",
       "type": "object",
       "required": [ "zones" ],
       "properties":
       {
          "zones" : { "type": "array", "items": { "type": "string" } },
          "links" :
          {
             "description": "Links to related resources. An `[ogc-rel:dggrs]` link to the Discrete Global Grid Reference System description resource and an `[ogc-rel:dggrs-definition]` link to the DGGRS definition (using the schema defined by https://github.com/opengeospatial/ogcapi-discrete-global-grid-systems/blob/master/openapi/schemas/dggs-core/dggrs-definition.yaml) are required. A `[ogc-rel:dggrs-zone-data]` link to retrieve data from each of these DGGS zones should also be included if _DGGS Zone Data Retrieval_ is supported. An `[ogc-rel:geodata]` link should also be included for zone listing pertaining to a particular collection (for _Collection DGGS requirement class_)."
             "items": { "$ref" : "https://schemas.opengis.net/ogcapi/dggs/part1/1.0/openapi/schemas/common-core/link.yaml"
          }
       }
    }

    Figure 9 — JSON Schema for a DGGS Zone Query response

    -

    Recommendation 21

    Identifier/rec/zone-json/zone-order
    A

    For responses where zones of multiple hierarchy levels are returned (when compact-zones is true, the zones SHOULD be listed with the coarser resolution level first (larger zones).

    +

    Recommendation 21

    Identifier/rec/zone-json/zone-order
    A

    For responses where zones of multiple hierarchy levels are returned (when compact-zones is true, the zones SHOULD be listed with the coarser resolution level first (larger zones).

    +

    15.3.  Requirements Class “HTML zone list encoding”

    -

    13.3.2.  Requirements Class “HTML zone list encoding”

    - -

    13.3.2.1.  Overview

    +

    15.3.1.  Overview

    -

    The HTML zone list encoding requirements class defines at a high level the ability to retrieve an HTML response for the DGGS zone list resource intended primarily for users accessing the API from a Web browser.

    +

    The HTML zone list encoding requirements class defines at a high level the ability to retrieve an HTML response for the DGGS zone list resource intended primarily for users accessing the API from a Web browser.

    -

    The exact content of the HTML response is not prescribed, leaving the flexibility for implementations to choose a preferred approach.

    +

    The exact content of the HTML response is not prescribed, leaving the flexibility for implementations to choose a preferred approach.

    -

    HTML is the core language of the World Wide Web. An API that supports HTML will support browsing the spatial resources with a web browser and will also enable search engines to crawl and index those resources.

    +

    HTML is the core language of the World Wide Web. An API that supports HTML will support browsing the spatial resources with a web browser and will also enable search engines to crawl and index those resources.

    -

    Requirements class 18: Requirements Class HTML Zone List

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-html
    Target typeWeb API
    Prerequisiteshttps://html.spec.whatwg.org/
    https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-query
    +

    Requirements class 19: Requirements Class HTML Zone List

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-html
    Target typeWeb API
    Conformance classConformance class A.18: https://www.opengis.net/spec/ogcapi-dggs/1.0/conf/zone-html
    Prerequisiteshttps://html.spec.whatwg.org/
    https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-query
    -

    Requirement 29

    Identifier/req/zone-html/content
    A

    Every 200 response of the server for zone query with the media type text/html SHALL be an HTML document listing the textual identifiers for all zones matching the query.

    +

    Requirement 30

    Identifier/req/zone-html/content
    A

    Every 200 response of the server for zone query with the media type text/html SHALL be an HTML document listing the textual identifiers for all zones matching the query.

    -

    Recommendation 22

    Identifier/rec/zone-html/zone-information
    A

    The implementation SHOULD include additional information for each zone ID, such as the area, bounding box and/or a preview of the data available for this zone.

    +

    Recommendation 22

    Identifier/rec/zone-html/zone-information
    A

    The implementation SHOULD include additional information for each zone ID, such as the area, bounding box and/or a preview of the data available for this zone.

    -

    Recommendation 23

    Identifier/rec/zone-html/zone-data
    A

    If the implementation also supports Zone Data Retrieval, the implementation SHOULD include a link for each zone to download the associated data .

    +

    Recommendation 23

    Identifier/rec/zone-html/zone-data
    A

    If the implementation also supports Zone Data Retrieval, the implementation SHOULD include a link for each zone to download the associated data .

    +

    15.4.  Requirements Class “Binary 64-bit integer zone list encoding”

    -

    13.3.3.  Requirements Class “Binary 64-bit integer zone list encoding”

    +

    15.4.1.  Overview

    -

    13.3.3.1.  Overview

    - -

    The binary 64-bit integer zone list encoding requirements class defines the ability to retrieve a binary response for the DGGS zone list resource for +

    The binary 64-bit integer zone list encoding requirements class defines the ability to retrieve a binary response for the DGGS zone list resource for DGGRS whose zone identifiers can be expressed as a single 64-bit integer.

    -

    The response consists of a 64-bit integer count of zones, followed by that count of zones, also 64-bit integers. +

    The response consists of a 64-bit integer count of zones, followed by that count of zones, also 64-bit integers. With compact zones and additional HTTP content encoding compression, this provides an optimal way to exchange DGGS zone lists.

    -

    Requirements class 19: Requirements Class 64-bit Binary Zone List

    Identifierhttp://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-uint64
    Target typeWeb API
    Prerequisitehttp://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-query
    +

    Requirements class 20: Requirements Class 64-bit Binary Zone List

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-uint64
    Target typeWeb API
    Conformance classConformance class A.19: https://www.opengis.net/spec/ogcapi-dggs/1.0/conf/zone-uint64
    Prerequisitehttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-query
    -

    Requirement 30

    Identifier/req/zone-uint64/content
    A

    Every 200 response of the server for zone query with the media type application/x-binary SHALL be a binary response consisting of a first 64-bit integer count defining the number of zones returned, followed by one 64-bit integer for each zone matching the query.

    -
    B

    The 64-bit integer identifiers SHALL be the one defined by the DGGRS.

    -
    C

    The endianness of the returned SHALL be little endian.

    -
    D

    If the DGGRS does not define a 64-bit integer identifier, a 406 “Not Acceptable” response SHALL be returned.

    +

    Requirement 31

    Identifier/req/zone-uint64/content
    A

    Every 200 response of the server for zone query with the media type application/x-binary SHALL be a binary response consisting of a first 64-bit integer count defining the number of zones returned, followed by one 64-bit integer for each zone matching the query.

    +
    B

    The 64-bit integer identifiers SHALL be the one defined by the DGGRS.

    +
    C

    The endianness of the returned SHALL be little endian.

    +
    D

    If the DGGRS does not define a 64-bit integer identifier, a 406 “Not Acceptable” response SHALL be returned.

    +

    15.5.  Requirements Class “GeoJSON zone list encoding”

    -

    13.3.4.  Requirements Class “GeoJSON zone list encoding”

    - -

    13.3.4.1.  Overview

    +

    15.5.1.  Overview

    -

    The GeoJSON zone list encoding requirements class defines support for encoding a DGGS Zone list response according to the GeoJSON specification.

    +

    The GeoJSON zone list encoding requirements class defines support for encoding a DGGS Zone list response according to the GeoJSON specification.

    -

    The response is a feature collection where each feature represents a zone in the list. +

    The response is a feature collection where each feature represents a zone in the list. The geometry of the zone shold be polygons or multipolygons (e.g., in the case of zone geometry which must be split on the anti-meridian or pole). The zone identifier is represented in the id field of each feature.

    -

    While not intended to efficiently exchange zone list, as the response carries the geometry of the zones which could easily be computed client-side which takes considerable bandwidth and is +

    While not intended to efficiently exchange zone list, as the response carries the geometry of the zones which could easily be computed client-side which takes considerable bandwidth and is not necessary for a DGGS client working natively with the same DGGRS, this requirement class provides an easy way to readily visualize the response in a variety of tools. This requirements class is therefore intended for convenience, demonstration and educational purposes.

    -

    Requirements class 20: Requirements Class GeoJSON Zone List

    Identifierhttp://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-geojson
    Target typeWeb API
    PrerequisitesGeoJSON
    http://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-query
    +

    Requirements class 21: Requirements Class GeoJSON Zone List

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-geojson
    Target typeWeb API
    Conformance classConformance class A.20: https://www.opengis.net/spec/ogcapi-dggs/1.0/conf/zone-geojson
    PrerequisitesGeoJSON
    https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-query
    -

    Requirement 31

    Identifier/req/zone-geojson/content
    A

    Every 200 response of the server for zone query with the media type application/geo+json SHALL be a GeoJSON document consisting of a FeatureCollection, where every Feature represents a single zone.

    -
    B

    Every feature SHALL have a zoneID property corresponding to the textual identifer of the zone.

    -
    C

    The geometry of each feature SHALL be the geometry of the zone.

    +

    Requirement 32

    Identifier/req/zone-geojson/content
    A

    Every 200 response of the server for zone query with the media type application/geo+json SHALL be a GeoJSON document consisting of a FeatureCollection, where every Feature represents a single zone.

    +
    B

    Every feature SHALL have a zoneID property corresponding to the textual identifer of the zone.

    +
    C

    The geometry of each feature SHALL be the geometry of the zone.

    -

    Recommendation 24

    Identifier/rec/zone-geojson/id
    A

    The Feature id SHOULD have the same value as the zoneID property or use the 64-bit integer identifier.

    +

    Recommendation 24

    Identifier/rec/zone-geojson/id
    A

    The Feature id SHOULD have the same value as the zoneID property or use the 64-bit integer identifier.

    -

    Recommendation 25

    Identifier/rec/zone-geojson/mid-points
    A

    For DGGRSs not in CRS84, the geometry SHOULD include intermediate points between the vertices of the zone geometry so as to accurately represent the shape of the zones.

    +

    Recommendation 25

    Identifier/rec/zone-geojson/mid-points
    A

    For DGGRSs not in CRS84, the geometry SHOULD include intermediate points between the vertices of the zone geometry so as to accurately represent the shape of the zones.

    +

    15.6.  Requirements Class “FG-JSON zone list encoding”

    -

    13.3.5.  Requirements Class “FG-JSON zone list encoding”

    +

    15.6.1.  Overview

    -

    13.3.5.1.  Overview

    +

    The FG-JSON zone list encoding requirements class defines support for encoding a DGGS Zone list response according to the FG-JSON specification.

    -

    The FG-JSON zone list encoding requirements class defines support for encoding a DGGS Zone list response according to the FG-JSON specification.

    - -

    The response is a feature collection where each feature represents a zone in the list. +

    The response is a feature collection where each feature represents a zone in the list. The geometry of the zone shold be polygons or multipolygons (e.g., in the case of zone geometry which must be split on the anti-meridian or pole). The zone identifier is represented in the id field of each feature.

    -

    While not intended to efficiently exchange zone list, as the response carries the geometry of the zones which could easily be computed client-side which takes considerable bandwidth and is +

    While not intended to efficiently exchange zone list, as the response carries the geometry of the zones which could easily be computed client-side which takes considerable bandwidth and is not necessary for a DGGS client working natively with the same DGGRS, this requirement class provides an easy way to readily visualize the response in a variety of tools. This requirements class is therefore intended for convenience, demonstration and educational purposes.

    -

    Requirements class 21: Requirements Class FG-JSON Zone List

    Identifierhttp://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-fgjson
    Target typeWeb API
    PrerequisitesOGC 21-045r1
    http://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-query
    +

    Requirements class 22: Requirements Class FG-JSON Zone List

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-fgjson
    Target typeWeb API
    Conformance classConformance class A.21: https://www.opengis.net/spec/ogcapi-dggs/1.0/conf/zone-fgjson
    PrerequisitesOGC 21-045r1
    https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-query
    -

    Requirement 32

    Identifier/req/zone-fgjson/content
    A

    Every 200 response of the server for zone query with the media type application/fg+json SHALL be a Features & Geometry JSON document consisting of a FeatureCollection, where every Feature represents a single zone.

    -
    B

    Every feature SHALL have a zoneID property corresponding to the textual identifer of the zone.

    -
    C

    The geometry of each feature SHALL be the geometry of the zone.

    +

    Requirement 33

    Identifier/req/zone-fgjson/content
    A

    Every 200 response of the server for zone query with the media type application/fg+json SHALL be a Features & Geometry JSON document consisting of a FeatureCollection, where every Feature represents a single zone.

    +
    B

    Every feature SHALL have a zoneID property corresponding to the textual identifer of the zone.

    +
    C

    The geometry of each feature SHALL be the geometry of the zone.

    -

    Recommendation 26

    Identifier/rec/zone-fgjson/id
    A

    The Feature id SHOULD have the same value as the zoneID property or use the 64-bit integer identifier.

    +

    Recommendation 26

    Identifier/rec/zone-fgjson/id
    A

    The Feature id SHOULD have the same value as the zoneID property or use the 64-bit integer identifier.

    -

    Recommendation 27

    Identifier/rec/zone-fgjson/mid-points
    A

    For DGGRSs not in CRS84, the geometry SHOULD include intermediate points between the vertices of the zone geometry so as to accurately represent the shape of the zones.

    +

    Recommendation 27

    Identifier/rec/zone-fgjson/mid-points
    A

    For DGGRSs not in CRS84, the geometry SHOULD include intermediate points between the vertices of the zone geometry so as to accurately represent the shape of the zones.

    +

    15.7.  Requirements Class “GeoTIFF zone list encoding”

    -

    13.3.6.  Requirements Class “GeoTIFF zone list encoding”

    - -

    13.3.6.1.  Overview

    +

    15.7.1.  Overview

    -

    The GeoTIFF zone list encoding requirements class defines support for encoding a DGGS Zone list response according to the OGC GeoTIFF standard, +

    The GeoTIFF zone list encoding requirements class defines support for encoding a DGGS Zone list response according to the OGC GeoTIFF standard, intended primarily for DGGS with rectangular zones.

    -

    The response is a 2D gridded coverage where each cell is a zone in the list, in the coordinate reference system of that DGGS.

    +

    The response is a 2D gridded coverage where each cell is a zone in the list, in the coordinate reference system of that DGGS.

    -

    For DGGS with non-rectangular zones, the resolution would need to be higher than a single pixel per the most detailed zone to be returned in order to be able to recognize the zone geometry, +

    For DGGS with non-rectangular zones, the resolution would need to be higher than a single pixel per the most detailed zone to be returned in order to be able to recognize the zone geometry, and would therefore be very sub-optimal. While for rectangular zones it would be easy to identify zones with a one-to-one correspondence, recognizing non-rectangular zones would be significantly more difficult.

    -

    While not intended to efficiently exchange zone list, this requirement class provides an easy way to readily visualize the response in a variety of tools. +

    While not intended to efficiently exchange zone list, this requirement class provides an easy way to readily visualize the response in a variety of tools. This requirements class is therefore intended for convenience, demonstration and educational purposes.

    -

    Requirements class 22: Requirements Class GeoTIFF Zone List

    Identifierhttp://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-geotiff
    Target typeWeb API
    PrerequisitesTIFF V6.0
    GeoTIFF
    http://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-query
    +

    Requirements class 23: Requirements Class GeoTIFF Zone List

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-geotiff
    Target typeWeb API
    PrerequisitesTIFF V6.0
    GeoTIFF
    https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-query
    -

    Requirement 33

    Identifier/req/zone-geotiff/content
    A

    Every 200 response of the server for zone query with the media type image/tiff SHALL be a GeoTIFF document representing the zones matching the query in a geo-referenced image +

    Requirement 34

    Identifier/req/zone-geotiff/content
    A

    Every 200 response of the server for zone query with the media type image/tiff SHALL be a GeoTIFF document representing the zones matching the query in a geo-referenced image where each zone corresponds to at least one pixel.

    -
    B

    The GeoTIFF SHALL be encoded as Pixel-Is-Area.

    +
    B

    The GeoTIFF SHALL be encoded as Pixel-Is-Area.

    -

    Recommendation 28

    Identifier/rec/zone-geotiff/crs
    A

    The CRS of the response SHOULD be consistent with either the DGGRS or the underlying geographic CRS (e.g., CRS84).

    +

    Recommendation 28

    Identifier/rec/zone-geotiff/crs
    A

    The CRS of the response SHOULD be consistent with either the DGGRS or the underlying geographic CRS (e.g., CRS84).

    -

    Recommendation 29

    Identifier/rec/zone-geotiff/values
    A

    The value of the pixel SHOULD be a 64-bit integer identifier representing the zone, if the DGGRS provides for such an identifier.

    +

    Recommendation 29

    Identifier/rec/zone-geotiff/values
    A

    The value of the pixel SHOULD be a 64-bit integer identifier representing the zone, if the DGGRS provides for such an identifier.

    -

    Recommendation 30

    Identifier/rec/zone-geotiff/non-rectilinear
    A

    For DGGRS where the zones do not correspond to a rectilinear structure, the resolution of the response image SHOULD be high enough so that the shape of the zone geometry is recognizable.

    +

    Recommendation 30

    Identifier/rec/zone-geotiff/non-rectilinear
    A

    For DGGRS where the zones do not correspond to a rectilinear structure, the resolution of the response image SHOULD be high enough so that the shape of the zone geometry is recognizable.

    -
    -

    14.  Requirements Class for API definition operation IDs

    -

    This standard does not mandate any particular API definition language, but if the API is described using a definition language supporting +

    16.  Requirements Class for API definition operation IDs

    +

    This standard does not mandate any particular API definition language, but if the API is described using a definition language supporting operation identifiers, such as OpenAPI 3.0, allowing to associate the functionality described in these requirements with an operation defined in the language, this requirement class defines how this is achieved.

    -

    14.1.  Overview

    +

    16.1.  Overview

    -

    Requirements class 23

    Target typeWeb API
    Prerequisitehttp://www.opengis.net/spec/ogcapi-common-1/0.0/req/landing-page
    Labelhttp://www.opengis.net/spec/ogcapi-dggs-1/0.0/req/operation-ids
    +

    Requirements class 24

    Target typeWeb API
    Prerequisitehttps://www.opengis.net/spec/ogcapi-common-1/1.0/req/landing-page
    Labelhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/operation-ids
    -

    14.2.  Requirements

    +

    16.2.  Requirements

    -

    14.2.1.  Operation IDs

    +

    16.2.1.  Operation IDs

    -

    Requirement 34

    Label/req/operation-ids/
    Statement

    For specifying the operation identifiers associated with the capabilities defined in OGC API — DGGS

    -
    A

    The API definition SHALL identify the supported operations defined in this Standard using the identifier suffixes defined in table Table 3.

    +

    Requirement 35

    Label/req/operation-ids/
    Statement

    For specifying the operation identifiers associated with the capabilities defined in OGC API — DGGS

    +
    A

    The API definition SHALL identify the supported operations defined in this Standard using the identifier suffixes defined in table Table 4.

    -

    Table 3 — API operation identifier suffixes

    OriginResourceOperation id suffixes
    With the origins described in this document
    DataSet4DGGRS List1.dataset.getDGGRSList
    DataSet4DGGRS Description1.dataset.getDGGRS
    DataSet4DGGRS Zones2.dataset.getDGGRSZones
    DataSet4DGGRS Zone Information1`.dataset.getDGGRSZoneInfo
    DataSet4DGGRS Zone Data3`.dataset.getDGGRSZoneData
    Collection5DGGRS List1.collection.getDGGRSList
    Collection5DGGRS Description1.collection.getDGGRS
    Collection5DGGRS Zones2.collection.getDGGRSZones
    Collection5DGGRS Zone Information1`.collection.getDGGRSZoneInfo
    Collection5DGGRS Zone Data3`.collection.getDGGRSZoneData
    With other potential origins6
    otherDGGRS List1#.getDGGRSList
    otherDGGRS Description1#.getDGGRS
    otherDGGRS Zones2#.getDGGRSZones
    otherDGGRS Zone Information1`#.getDGGRSZoneInfo
    otherDGGRS Zone Data3`#.getDGGRSZoneData
    1 The DGGRS List (…​/dggs), DGGRS Description (…​/dggs/{dggrsId}) and DGGRS Zone Information (…​/dggs/{dggrsId}/zones/{zoneId}) resources are defined in requirements class “Core”.
    2 The DGGRS Zones resource (…​/dggs/{dggrsId}/zones) is defined in the “Zone Query” requirements class.
    3 The DGGRS Zone Data resource (…​/dggs/{dggrsId}/zones/{zoneId}/data) is defined in the “Data Retrieval” requirements class.
    4 The DataSet origin is defined in requirements class “Root DGGS” and depends on OGC API — Common — Part 1: Core.
    5 The Collection origin is defined in requirements class “Collection DGGS” and depends on the Collections requirements class defined in OGC API — Common — Part 2: Geospatial data.
    6 ‘#’ represents an optional origin that could be defined in another relevant standard.
    +

    Table 4 — API operation identifier suffixes

    OriginResourceOperation id suffixes
    With the origins described in this document
    DataSet4DGGRS List1.dataset.getDGGRSList
    DataSet4DGGRS Description1.dataset.getDGGRS
    DataSet4DGGRS Zones2.dataset.getDGGRSZones
    DataSet4DGGRS Zone Information1`.dataset.getDGGRSZoneInfo
    DataSet4DGGRS Zone Data3`.dataset.getDGGRSZoneData
    Collection5DGGRS List1.collection.getDGGRSList
    Collection5DGGRS Description1.collection.getDGGRS
    Collection5DGGRS Zones2.collection.getDGGRSZones
    Collection5DGGRS Zone Information1`.collection.getDGGRSZoneInfo
    Collection5DGGRS Zone Data3`.collection.getDGGRSZoneData
    With other potential origins6
    otherDGGRS List1#.getDGGRSList
    otherDGGRS Description1#.getDGGRS
    otherDGGRS Zones2#.getDGGRSZones
    otherDGGRS Zone Information1`#.getDGGRSZoneInfo
    otherDGGRS Zone Data3`#.getDGGRSZoneData
    1 The DGGRS List (…​/dggs), DGGRS Description (…​/dggs/{dggrsId}) and DGGRS Zone Information (…​/dggs/{dggrsId}/zones/{zoneId}) resources are defined in requirements class “Core”.
    2 The DGGRS Zones resource (…​/dggs/{dggrsId}/zones) is defined in the “Zone Query” requirements class.
    3 The DGGRS Zone Data resource (…​/dggs/{dggrsId}/zones/{zoneId}/data) is defined in the “Data Retrieval” requirements class.
    4 The DataSet origin is defined in requirements class “Root DGGS” and depends on OGC API — Common — Part 1: Core.
    5 The Collection origin is defined in requirements class “Collection DGGS” and depends on the Collections requirements class defined in OGC API — Common — Part 2: Geospatial data.
    6 ‘#’ represents an optional origin that could be defined in another relevant standard.

    -

    Annex A
    (informative)
    Conformance Class Abstract Test Suite (Normative)

    -
    -

    NOTE  Ensure that there is a conformance class for each requirements class and a test for each requirement (identified by requirement name and number)

    -
    -

    A.1.  Conformance Class A

    +

    Annex A
    (normative)
    Conformance Class Abstract Test Suite (Normative)

    +

    A.1.  Conformance Class “Core”

    -

    A.1.1.  Requirement 1

    +

    Conformance class A.1

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs/1.0/conf/core
    Requirements classhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/core
    Target TypeWeb API
    Conformance testsAbstract test A.1-1: /req/core/dggrs-list
    Abstract test A.1-2: /req/core/dggrs-info
    Abstract test A.1-3: /req/core/zone-info
    -

    Requirement A.1

    Test purpose

    Verify that…​

    -
    Test method

    Inspect…​

    +

    A.1.1.  Abstract Test for Requirement Listing available DGGRS

    + +

    Abstract test A.1

    Identifier/conf/core/dggrs-list
    RequirementAbstract test A.1-1: /req/core/dggrs-list
    Test purpose

    Verify that the implementation supports listing the available DGGRS

    +
    Test method

    Given: +When: +Then:
    +- assert that
    +- assert that …​ .

    + +

    A.2.  Conformance Class “Data Retrieval”

    + +

    Conformance class A.2

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs/1.0/conf/data-retrieval
    Requirements classhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-retrieval
    Target TypeWeb API
    +
    +

    A.3.  Conformance Class “Zone Query”

    + +

    Conformance class A.3

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs/1.0/conf/zone-query
    Requirements classhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-query
    Target TypeWeb API
    +
    +

    A.4.  Conformance Class “Filtering Zone Queries with CQL2”

    + +

    Conformance class A.4

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs/1.0/conf/cql2-query
    Requirements classhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/cql2-query
    Target TypeWeb API
    +
    +

    A.5.  Conformance Class “Root DGGS”

    -

    A.1.2.  Requirement 2

    +

    Conformance class A.5

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs/1.0/conf/root-dggs
    Requirements classhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/root-dggs
    Target TypeWeb API
    +
    +

    A.6.  Conformance Class “Collection DGGS”

    + +

    Conformance class A.6

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs/1.0/conf/collection-dggs
    Requirements classhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/collection-dggs
    Target TypeWeb API
    +
    +

    A.7.  Conformance Class “Data Subsetting”

    + +

    Conformance class A.7

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs/1.0/conf/data-subsetting
    Requirements classhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-subsetting
    Target TypeWeb API
    +
    +

    A.8.  Conformance Class “Data Custom Depths”

    + +

    Conformance class A.8

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs/1.0/conf/data-custom-depths
    Requirements classhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-custom-depths
    Target TypeWeb API
    +
    +

    A.9.  Conformance Class “DGGS-JSON encoding for Zone Data”

    +

    Conformance class A.9

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs/1.0/conf/data-json
    Requirements classRequirements class 9: https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-json
    Target TypeWeb API
    +

    A.10.  Conformance Class “GeoJSON encoding for Zone Data”

    + +

    Conformance class A.10

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs/1.0/conf/data-geojson
    Requirements classRequirements class 12: https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-geojson
    Target TypeWeb API
    +
    +

    A.11.  Conformance Class “FG-JSON encoding for Zone Data”

    + +

    Conformance class A.11

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs/1.0/conf/data-fgjson
    Requirements classRequirements class 13: https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-fgjson
    Target TypeWeb API
    +
    +

    A.12.  Conformance Class “GeoTIFF encoding for Zone Data”

    + +

    Conformance class A.12

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs/1.0/conf/data-tiff
    Requirements classhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-tiff
    Target TypeWeb API
    +
    +

    A.13.  Conformance Class “netCDF encoding for Zone Data”

    + +

    Conformance class A.13

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs/1.0/conf/data-netcdf
    Requirements classRequirements class 14: https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-netcdf
    Target TypeWeb API
    +
    +

    A.14.  Conformance Class “CoverageJSON encoding for Zone Data”

    + +

    Conformance class A.14

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs/1.0/conf/data-coveragejson
    Requirements classRequirements class 15: https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-coveragejson
    Target TypeWeb API
    +
    +

    A.15.  Conformance Class “JPEG XL Encoding for Zone Data”

    + +

    Conformance class A.15

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs/1.0/conf/data-jpegxl
    Requirements classRequirements class 16: https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-jpegxl
    Target TypeWeb API
    +
    +

    A.16.  Conformance Class “PNG encoding for Zone Data”

    + +

    Conformance class A.16

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs/1.0/conf/data-png
    Requirements classRequirements class 17: https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/data-png
    Target TypeWeb API
    +
    +

    A.17.  Conformance Class “JSON encoding for Zone Data”

    + +

    Conformance class A.17

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs/1.0/conf/zone-json
    Requirements classRequirements class 18: https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-json
    Target TypeWeb API
    +
    +

    A.18.  Conformance Class “HTML encoding for Zone Listing”

    + +

    Conformance class A.18

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs/1.0/conf/zone-html
    Requirements classRequirements class 19: https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-html
    Target TypeWeb API
    +
    +

    A.19.  Conformance Class “Binary 64-bit integer encoding for Zone Listing”

    + +

    Conformance class A.19

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs/1.0/conf/zone-uint64
    Requirements classRequirements class 20: https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-uint64
    Target TypeWeb API
    +
    +

    A.20.  Conformance Class “GeoJSON encoding for Zone Listing”

    + +

    Conformance class A.20

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs/1.0/conf/zone-geojson
    Requirements classRequirements class 21: https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-geojson
    Target TypeWeb API
    +
    +

    A.21.  Conformance Class “FG-JSON encoding for Zone Listing”

    + +

    Conformance class A.21

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs/1.0/conf/zone-fgjson
    Requirements classRequirements class 22: https://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-fgjson
    Target TypeWeb API
    +
    +

    A.22.  Conformance Class “GeoTIFF encoding for Zone Listing”

    + +

    Conformance class A.22

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs/1.0/conf/zone-tiff
    Requirements classhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/zone-tiff
    Target TypeWeb API
    +
    +

    A.23.  Conformance Class “Operation IDs”

    + +

    Conformance class A.23

    Identifierhttps://www.opengis.net/spec/ogcapi-dggs/1.0/conf/operation-ids
    Requirements classhttps://www.opengis.net/spec/ogcapi-dggs-1/1.0/req/operation-ids
    Target TypeWeb API

    -
    -

    Annex B
    (informative)
    Title

    -
    -

    NOTE  Place other Annex material in sequential annexes beginning with “B” and leave final two annexes for the Revision History and Bibliography

    -
    +
    +

    Annex B
    (informative)
    Discrete Global Grid Reference System Definition

    +

    The following informative schema describes the expected response linked to by using the [ogc-rel:dggrs-definition] link relation +from the DGGRS description, as specified by the Core requirement class.

    +

    Note that this schema is preliminary, and a normative version may be defined by a later version of this standard +or by a future part of OGC Abstract Specification Topic 21. +Note that this schema may change to allow for better description of existing and new classes of DGGS.

    +

    The DGGRS definition consists of three main components:

    +
    • the definition of the hierarchy of discrete global grids (dggs), including any parameterization such as the spheroid or orientation, establishing both the topology as well as the geometry of every zone,

      +
    • +
    • the Zone Indexing Reference System (zirs), with textual identifiers being mandatory while 64-bit integer identifiers (which support the 64-bit integer zone list encoding requirement class) are optional,

      +
    • +
    • the sub-zone ordering (subZoneOrder), which allows for retrieving zone data using e.g., DGGS JSON at a zone-depth other than 0 (the values of sub-zones can be provided as a 1D array of values with a pre-established association to sub-zones).

      +
    • +
    +


    {
      “$schema”: “https://json-schema.org/draft/2019-09/schema”,
      “description”: “Discrete Global Grid System Reference System (DGGRS) Definition.”,
      “type”: “object”,
      “required”: [
        “dggs”,
        “zirs”,
        “subZoneOrder”
      ],
      “properties”: {
        “title”: {
          “type”: “string”
        },
        “description”: {
          “type”: “string”
        },
        “uri”: {
          “type”: “string”,
          “format”: “uri”,
          “description”: “The authoritative URI associated with this DGGRS definition”
        },
        “dggs”: {
          “type”: “object”,
          “description”: “The hierarchical series of Discrete Global Grid upon which this DGGRS is based, including any parameters.”,
          “properties”: {
            “definition”: {
              “description”: “The base definition of the hierarchical series of Discrete Global Grid, which may be parameterized.”,
              “type”: “object”,
              “required”: [
                “spatialDimensions”,
                “temporalDimensions”
              ],
              “properties”: {
                “crs”: {
                  “allOf”: [
                    {
                      “description”: “The native Coordinate Reference System (CRS) in which the geometry of the zones for this DGGS is defined.”
                    },
                    {
                      “anyOf”: [
                        {
                          “type”: “string”,
                          “format”: “uri”,
                          “example”: “EPSG:7789”
                        },
                        {
                          “$ref”: “../common-geodata/crs.yaml”
                        }
                      ]
                    }
                  ]
                },
                “basePolyhedron”: {
                  “type”: “string”,
                  “description”: “The Type/Class of Polyhedron used to construct the Discrete Global Grid System — if it is constructued using a Base Polyhedron.”,
                  “example”: “icosahedron”
                },
                “refinementRatio”: {
                  “description”: “The ratio of the area of zones between two consecutive hierarchy level (the ratio of child zones to parent zones, also called the aperture).”,
                  “example”: 9,
                  “type”: “integer”
                },
                “constraints”: {
                  “type”: “object”,
                  “properties”: {
                    “cellAxisAligned”: {
                      “description”: “Set to true if all edges of the geometry of all zones are aligned with one of the axis of the `crs`.”,
                      “type”: “boolean”,
                      “default”: false
                    },
                    “cellConformal”: {
                      “type”: “boolean”,
                      “default”: false
                    },
                    “cellEquiAngular”: {
                      “type”: “boolean”,
                      “default”: false
                    },
                    “cellEquiDistant”: {
                      “type”: “boolean”,
                      “default”: false
                    },
                    “cellEqualSized”: {
                      “description”: “Set to true if the area of all zones is the same for a particular zone geometry type of any specifc discrete global grid of the DGGS hierarchy.”,
                      “type”: “boolean”,
                      “default”: false
                    }
                  }
                },
                “spatialDimensions”: {
                  “description”: “Number of Spatial Dimensions defined by the Discrete Global Grid System.”,
                  “example”: 2,
                  “type”: “integer”
                },
                “temporalDimensions”: {
                  “description”: “Number of Temporal Dimensions defined by the Discrete Global Grid System.”,
                  “example”: 0,
                  “type”: “integer”
                },
                “zoneTypes”: {
                  “type”: “array”,
                  “items”: {
                    “type”: “string”,
                    “enum”: [
                      “triangle”,
                      “square”,
                      “hexagon”,
                      “pentagon”,
                      “rhombus”
                    ]
                  },
                  “example”: [
                    “hexagon”,
                    “pentagon”
                  ]
                },
                “refinementStrategy”: {
                  “description”: “The refinement strategy used by the Discrete Global Grid System”,
                  “type”: “array”,
                  “items”: {
                     “type”: “string”,
                     “enum”: [
                        “centredChildCell”,
                        “nestedChildCell”,
                        “nodeCentredChildCell”,
                        “edgeCentredChildCell”,
                        “faceCentredChildCell”,
                        “solidCentredChildCell”
                     ]
                  },
                  “example”: [ “nestedChildCell” ]
                }
              }
            },
            “parameters”: {
              “description”: “The optional parameters establishing a very specific Discrete Global Grid System, where each zone has a well-defined geometry.”,
              “type”: “object”,
              “properties”: {
                “ellipsoid”: {
                  “type”: “string”,
                  “format”: “uri”,
                  “description”: “Globe Reference System Identifier/Specification”,
                  “example”: [
                    “EPGS:7019”
                  ]
                },
                “orientation”: {
                  “type”: “object”,
                  “properties”: {
                    “latitude”: {
                      “description”: “Reference Latitude in decimal degrees to fix the orientation of the polyhedron.”,
                      “example”: 0,
                      “type”: “number”
                    },
                    “longitude”: {
                      “description”: “Reference Longitude in decimal degrees to fix the orientation of the polyhedron.”,
                      “example”: 0,
                      “type”: “number”
                    },
                    “description”: {
                      “type”: “string”
                    }
                  },
                  “required”: [
                    “longitude”,
                    “latitude”
                  ]
                }
              }
            }
          }
        },
        “zirs”: {
          “description”: “The Zone Identifier Reference System used for this Discrete Global Grid System Reference System.”,
          “type”: “object”,
          “required”: [
            “textZIRS”
          ],
          “properties”: {
            “textZIRS”: {
              “description”: “textual zone identifier indexing scheme”,
              “type”: “object”,
              “required”: [
                “description”
              ],
              “properties”: {
                “description”: {
                  “type”: “string”,
                  “examples”: [
                    “Topological Morton Code (Space Filling Curve) Identifier. With a Level 0 alphabetical identifier from ‘A’ to ‘S’ followed by a numeric reference from 1 to 9 for all subsequent levels representing the arrangement of child zones following a Morton (Z-code) subdivision of the parent zone. The length of the identifier represents the level of refinement.”,
                    “Universal Morton Code (Space Filling Curve) Identifier. An ellipsoidal bitwise concatenation of longitude and latitude direct position to form a direct Morton code. This can be used across multiple DGGS infrastructures to provide a common index structure that is fixed in nature regardless of the topological zone index used by each DGGS.”,
                    “An identifier comprised of three separate level, row and column components corresponding to an OGC 2D Tile Matrix Set tile identifier, where the individual component are represented by uppercase hexadecimal numbers separated by a hyphen.”,
                    “An identifier comprised of an uppercase hexadecimal letter representing a level (A for level 0, B for level 1…), followed by a number from 0 to 9 representing the root rhombus corresponding to the faces of an icosahedron, in a staircase order from the top-left to the bottom right of an ISEA planar projection after a 60 degrees clockwise rotation, followed by a hyphen, then by an uppercase hexadecimal number identifying a sub-zone starting to count from 0 in row-major order.”,
                    “An identifier comprised of an uppercase hexadecimal letter representing the ISEA9R level corresponding to the current even or immediate lower odd ISEA3H level (A for level 0, B for level 1…), followed by a number from 0 to 9 representing the root rhombus corresponding to the faces of an icosahedron, in a staircase order from the top-left to the bottom right of an ISEA planar projection after a 60 degrees clockwise rotation, followed by a hyphen, then by an uppercase hexadecimal number identifying a sub-zone starting to count from 0 in row-major order, followed by a second hyphen, then by a letter identifying a hexagonal or pentagonzal zone intersecting the sub-rhombus: A: even level regular zone B: even level North pole zone C: even level South pole zone D: odd level zone centered on rhombus vertex E: odd level zone top-right of rhombus vertex F: odd level zone bottom-right of rhombus vertex G: odd level North pole zone H: odd level South pole zone\n”
                  ]
                },
                “type”: {
                  “anyOf”: [
                    {
                      “type”: “string”
                    },
                    {
                      “type”: “string”,
                      “enum”: [
                        “hierarchicalConcatenation”,
                        “ogc2DTMSHexLevelRowCol”,
                        “levelRootFaceHexRowMajorSubZone”
                      ]
                    }
                  ]
                }
              }
            },
            “uint64ZIRS”: {
              “description”: “64-bit unsigned integer zone indexing scheme”,
              “type”: “object”,
              “required”: [
                “description”
              ],
              “properties”: {
                “description”: {
                  “type”: “string”,
                  “examples”: [
                    “A 64-bit integer with the 30 least significant bits corresponds to a column, the next 29 bits corresponding to a row, and the 5 most significant bits correspond to a level of an OGC 2D Tile Matrix Set identifier, with individual components using little endian.”,
                    “A 64-bit integer with the 3 least significant bits corresponding to a hexagonal or pentagonzal zone intersecting a sub-rhombus: 0: even level regular zone 1: even level North pole zone 2: even level South pole zone 3: odd level zone centered on rhombus vertex 4: odd level zone top-right of rhombus vertex 5: odd level zone bottom-right of rhombus vertex 6: odd level North pole zone 7: odd level South pole zone, the next 51 bits corresponding to a sub-rhombus index, the next 4 bits corresponding to a root rhombus, the next 5 bits corresponding to an associated ISEA9R level, and the last most significant bit always 0 for a valid zone identifier.\n”
                  ]
                },
                “type”: {
                  “anyOf”: [
                    {
                      “type”: “string”
                    },
                    {
                      “type”: “string”,
                      “enum”: [
                        “ogc2DTMSHexLevelRowCol”
                      ]
                    }
                  ]
                }
              }
            }
          }
        },
        “subZoneOrder”: {
          “description”: “The ordering used for this Discrete Global Grid System Reference System when encoding the values associated with sub-zones at any given depth relative to a parent zone.”,
          “type”: “object”,
          “required”: [
            “description”
          ],
          “properties”: {
            “description”: {
              “type”: “string”,
              “examples”: [
                “The zones are ordered in tightly packed scanlines. Considering the ISEA planar projection, for odd level parent, zones are ordered left to right along a scanline and scanlines are ordered from top to bottom. For an even level parent, zones are ordered top bottom right along a scanline and scanlines are ordered from left to right. For an odd depth, scanlines start along a hexagon edge, whereas for even depths, scanlines start on a hexagon vertex.”
              ]
            },
            “type”: {
              “anyOf”: [
                {
                  “type”: “string”
                },
                {
                  “type”: “string”,
                  “enum”: [
                    “scanline”,
                    “spiralFromCenter”,
                    “mortonCurve”,
                    “hilbertCurve”
                  ]
                }
              ]
            }
          }
        }
      }
    }
    +

    Figure B.1 — JSON Schema for the DGGRS Definition

    +

    The following example JSON DGGRS definition conforms to this schema. +This DGGRS is for an ISEA3H using a zone reference system based in part on its dual relationship with ISEA9R.

    +


    {
       “title”: “ISEA3H”,
       “description”: “An ISEA3H Discrete Global Grid Reference System using the standard ISEA orientation and WGS84 authalic sphere, a zone indexing system based on an ISEA9R, and scanline-based ordering”,
       “uri”: “https://www.opengis.net/def/dggrs/OGC/1.0/ISEA3H”,
       “links”: [ { “rel”: “describedby”, “href”: “https://portal.ogc.org/files/?artifact_id=107432” } ],
       “dggs”: {
          “definition”: {
             “spatialDimensions”: 2,
             “temporalDimensions”: 0,
             “crs”: “https://www.opengis.net/def/crs/OGC/0/ISEA”,
             “links”: [
                { “rel”: “related”, “href”: “https://doi.org/10.3138/27H7-8K88-4882-1752” },
                { “rel”: “related”, “href”: “https://proj.org/en/9.3/operations/projections/isea.html” },
             ],
             “basePolyhedron”: “icosahedron”,
             “refinementRatio”: 3,
             “refinementStrategy”: [ “nestedChildCell”, “nodeCentredChildCell” ],
             “constraints”: {
                “cellEqualSized”: true,
                “cellEquiAngular”: true,
                “cellEquiDistant”: true
             },
             “zoneTypes”: [ “hexagon”, “pentagon” ],
          },
          “parameters”: {
             “ellipsoid”: “Authalic sphere based on [EPSG:7030] (WGS84) — NOTE: No identifier defined yet? [ESPG:7048] exists for Authalic sphere based on GRS80 [EPSG:7019]”,
             “orientation”:
             {
                “description”: “Standard ISEA orientation with a single icosahedron vertex falling on land”,
                “latitude”: 58.28252559,
                “longitude”: 11.25
             }
          }
       },
       “zirs”: {
          “textZIRS”: {
             “description”: “An identifier comprised of an uppercase hexadecimal letter representing a level (A for level 0, B for level 1…), followed by a number from 0 to 9 representing the root rhombus corresponding to the faces of an icosahedron, in a staircase order from the top-left to the bottom right of an ISEA planar projection after a 60 degrees clockwise rotation, followed by a hyphen, then by an uppercase hexadecimal number identifying a sub-zone starting to count from 0 in row-major order.”,
             “type”: “levelRootFaceHexRowMajorSubZone”
          },
          “uint64ZIRS”: {
             “description”: “A 64-bit integer with the 3 least significant bits corresponding to a hexagonal or pentagonzal zone intersecting a sub-rhombus: 0: even level regular zone 1: even level North pole zone 2: even level South pole zone 3: odd level zone centered on rhombus vertex 4: odd level zone top-right of rhombus vertex 5: odd level zone bottom-right of rhombus vertex 6: odd level North pole zone 7: odd level South pole zone, the next 51 bits corresponding to a sub-rhombus index, the next 4 bits corresponding to a root rhombus, the next 5 bits corresponding to an associated ISEA9R level, and the last most significant bit always 0 for a valid zone identifier.”
          }
       },
       “subZoneOrder”: {
          “description”: “The zones are ordered in tightly packed scanlines. Considering the ISEA planar projection, for odd level parent, zones are ordered left to right along a scanline and scanlines are ordered from top to bottom. For an even level parent, zones are ordered top bottom right along a scanline and scanlines are ordered from left to right. For an odd depth, scanlines start along a hexagon edge, whereas for even depths, scanlines start on a hexagon vertex.”,
          “type”: “scanline”
       }
    }
    +

    Figure B.2 — DGGRS Definition for ISEA3H using indexing based on ISEA9R


    -

    Annex C
    (informative)
    Revision History

    +

    Annex C
    (informative)
    Revision History

    Table C.1

    @@ -2688,7 +2866,7 @@

    Annex C
    (informative)
    Revision


    -

    Bibliography

    +

    Bibliography

    [1]  OGC: OGC Web Service Common Implementation Specification, OGC 06-121r9

    [2]  OGC: OGC Testbed 12 Annex B: Architecture (2015).

    diff --git a/21-038.pdf b/21-038.pdf index 05db7cc4..90cc81ef 100644 Binary files a/21-038.pdf and b/21-038.pdf differ