Skip to content

Commit d866a1b

Browse files
committed
Draft for vector cubes
1 parent 222e4f3 commit d866a1b

File tree

3 files changed

+67
-4
lines changed

3 files changed

+67
-4
lines changed

CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
66

77
## [Unreleased]
88

9+
### Added
10+
11+
- A new Vector Cube Dimension
12+
913
## [v2.0.0] - 2021-07-26
1014

1115
### Added

README.md

+16-4
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ A spatial dimension in one of the horizontal (x or y) directions.
4646
| type | string | **REQUIRED.** Type of the dimension, always `spatial`. |
4747
| axis | string | **REQUIRED.** Axis of the spatial dimension (`x`, `y`). |
4848
| description | string | Detailed multi-line description to explain the dimension. [CommonMark 0.29](http://commonmark.org/) syntax MAY be used for rich text representation. |
49-
| extent | \[number] | **REQUIRED.** Extent (lower and upper bounds) of the dimension as two-dimensional array. Open intervals with `null` are not allowed. |
49+
| extent | \[number] | **REQUIRED.** Extent (lower and upper bounds) of the dimension as two-element array. Open intervals with `null` are not allowed. |
5050
| values | \[number] | Optionally, a set of all potential values. |
5151
| step | number\|null | The space between the values. Use `null` for irregularly spaced steps. |
5252
| reference_system | string\|number\|object | The spatial reference system for the data, specified as [numerical EPSG code](http://www.epsg-registry.org/), [WKT2 (ISO 19162) string](http://docs.opengeospatial.org/is/18-010r7/18-010r7.html) or [PROJJSON object](https://proj.org/specifications/projjson.html). Defaults to EPSG code 4326. |
@@ -60,7 +60,7 @@ A spatial dimension in vertical (z) direction.
6060
| type | string | **REQUIRED.** Type of the dimension, always `spatial`. |
6161
| axis | string | **REQUIRED.** Axis of the spatial dimension, always `z`. |
6262
| description | string | Detailed multi-line description to explain the dimension. [CommonMark 0.29](http://commonmark.org/) syntax MAY be used for rich text representation. |
63-
| extent | \[number\|null\] | If the dimension consists of [ordinal](https://en.wikipedia.org/wiki/Level_of_measurement#Ordinal_scale) values, the extent (lower and upper bounds) of the values as two-dimensional array. Use `null` for open intervals. |
63+
| extent | \[number\|null\] | If the dimension consists of [ordinal](https://en.wikipedia.org/wiki/Level_of_measurement#Ordinal_scale) values, the extent (lower and upper bounds) of the values as two-element array. Use `null` for open intervals. |
6464
| values | \[number\|string\] | A set of all potential values, especially useful for [nominal](https://en.wikipedia.org/wiki/Level_of_measurement#Nominal_level) values. |
6565
| step | number\|null | If the dimension consists of [interval](https://en.wikipedia.org/wiki/Level_of_measurement#Interval_scale) values, the space between the values. Use `null` for irregularly spaced steps. |
6666
| unit | string | The unit of measurement for the data, preferably compliant to [UDUNITS-2](https://ncics.org/portfolio/other-resources/udunits2/) units (singular). |
@@ -77,10 +77,22 @@ A temporal dimension based on the ISO 8601 standard. The temporal reference syst
7777
| ---------- | --------------- | ------------------------------------------------------------ |
7878
| type | string | **REQUIRED.** Type of the dimension, always `temporal`. |
7979
| description | string | Detailed multi-line description to explain the dimension. [CommonMark 0.29](http://commonmark.org/) syntax MAY be used for rich text representation. |
80-
| extent | \[string\|null] | **REQUIRED.** Extent (lower and upper bounds) of the dimension as two-dimensional array. The dates and/or times must be strings compliant to [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601). `null` is allowed for open date ranges. |
80+
| extent | \[string\|null] | **REQUIRED.** Extent (lower and upper bounds) of the dimension as two-element array. The dates and/or times must be strings compliant to [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601). `null` is allowed for open date ranges. |
8181
| values | \[string] | If the dimension consists of set of specific values they can be listed here. The dates and/or times must be strings compliant to [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601). |
8282
| step | string\|null | The space between the temporal instances as [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations), e.g. `P1D`. Use `null` for irregularly spaced steps. |
8383

84+
### Vector Dimension Object
85+
86+
A vector dimension that defines the spatial extent based on a geometry.
87+
88+
| Field Name | Type | Description |
89+
| ---------------- | -------------- | ------------------------------------------------------------ |
90+
| type | string | **REQUIRED.** Type of the dimension, always `vector`. |
91+
| description | string | Detailed multi-line description to explain the dimension. [CommonMark 0.29](http://commonmark.org/) syntax MAY be used for rich text representation. |
92+
| bbox | \[number] | **REQUIRED.** A single bounding box of the geometries as defined for [STAC Collections](https://github.com/radiantearth/stac-spec/blob/master/collection-spec/collection-spec.md#spatial-extent-object), but not nested. |
93+
| values | \[[GeoJSON Geometry Object](https://tools.ietf.org/html/rfc7946#section-3.1)] | Optionally, a set of all geometries. |
94+
| reference_system | string\|number\|object | The spatial reference system for the data, specified as [numerical EPSG code](http://www.epsg-registry.org/), [WKT2 (ISO 19162) string](http://docs.opengeospatial.org/is/18-010r7/18-010r7.html) or [PROJJSON object](https://proj.org/specifications/projjson.html). Defaults to EPSG code 4326. |
95+
8496
### Additional Dimension Object
8597

8698
An additional dimension that is not `spatial`, but may be `temporal` if the data is not compliant with ISO 8601 (see below).
@@ -89,7 +101,7 @@ An additional dimension that is not `spatial`, but may be `temporal` if the data
89101
| ---------------- | ----------------- | ------------------------------------------------------------ |
90102
| type | string | **REQUIRED.** Custom type of the dimension, never `spatial`. |
91103
| description | string | Detailed multi-line description to explain the dimension. [CommonMark 0.29](http://commonmark.org/) syntax MAY be used for rich text representation. |
92-
| extent | \[number\|null] | If the dimension consists of [ordinal](https://en.wikipedia.org/wiki/Level_of_measurement#Ordinal_scale) values, the extent (lower and upper bounds) of the values as two-dimensional array. Use `null` for open intervals. |
104+
| extent | \[number\|null] | If the dimension consists of [ordinal](https://en.wikipedia.org/wiki/Level_of_measurement#Ordinal_scale) values, the extent (lower and upper bounds) of the values as two-element array. Use `null` for open intervals. |
93105
| values | \[number\|string] | A set of all potential values, especially useful for [nominal](https://en.wikipedia.org/wiki/Level_of_measurement#Nominal_level) values. |
94106
| step | number\|null | If the dimension consists of [interval](https://en.wikipedia.org/wiki/Level_of_measurement#Interval_scale) values, the space between the values. Use `null` for irregularly spaced steps. |
95107
| unit | string | The unit of measurement for the data, preferably compliant to [UDUNITS-2](https://ncics.org/portfolio/other-resources/udunits2/) units (singular). |

json-schema/schema.json

+47
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,9 @@
193193
{
194194
"$ref": "#/definitions/vertical_spatial_dimension"
195195
},
196+
{
197+
"$ref": "#/definitions/vector_dimension"
198+
},
196199
{
197200
"$ref": "#/definitions/temporal_dimension"
198201
}
@@ -347,6 +350,50 @@
347350
}
348351
}
349352
},
353+
"vector_dimension": {
354+
"title": "Vector Dimension Object",
355+
"type": "object",
356+
"required": [
357+
"type",
358+
"extent"
359+
],
360+
"properties": {
361+
"type": {
362+
"type": "string",
363+
"const": "vector"
364+
},
365+
"description": {
366+
"$ref": "#/definitions/description"
367+
},
368+
"bbox": {
369+
"title": "Spatial extent",
370+
"type": "array",
371+
"oneOf": [
372+
{
373+
"minItems":4,
374+
"maxItems":4
375+
},
376+
{
377+
"minItems":6,
378+
"maxItems":6
379+
}
380+
],
381+
"items": {
382+
"type": "number"
383+
}
384+
},
385+
"values": {
386+
"type": "array",
387+
"minItems": 1,
388+
"items": {
389+
"$ref": "https://geojson.org/schema/Geometry.json"
390+
}
391+
},
392+
"reference_system": {
393+
"$ref": "#/definitions/reference_system_spatial"
394+
}
395+
}
396+
},
350397
"temporal_dimension": {
351398
"title": "Temporal Dimension Object",
352399
"type": "object",

0 commit comments

Comments
 (0)