Skip to content

Commit

Permalink
Merge branch 'dev' into rephrase-stac-extensions
Browse files Browse the repository at this point in the history
  • Loading branch information
m-mohr committed Apr 15, 2021
2 parents 8617240 + 40dfb8b commit 9b438b6
Show file tree
Hide file tree
Showing 10 changed files with 72 additions and 31 deletions.
6 changes: 1 addition & 5 deletions .circleci/config.yml
Expand Up @@ -46,12 +46,8 @@ workflows:
- test_examples
- test_docs
- publish_schemas:
requires:
- test_examples
filters:
tags:
# All (future) tags
only: /^v.*/
branches:
# Only dev branch, not PRs
only: dev
ignore: /^((?!dev).)*$/
2 changes: 2 additions & 0 deletions CHANGELOG.md
Expand Up @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
### Changed

- Clarified that stac_extensions should also list extensions that are used in Collection summaries. ([#1077](https://github.com/radiantearth/stac-spec/issues/1077))
- The first extent in a Collection is always the overall extent, followed by more specific extents. ([#1064](https://github.com/radiantearth/stac-spec/issues/1064), [opengeospatial/ogcapi-features#520](https://github.com/opengeospatial/ogcapi-features/pull/520))

## [v1.0.0-rc.2] - 2021-03-30

Expand All @@ -23,6 +24,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.

### Fixed

- Examples
- Collection Assets were specified as required (only in written text, not in JSON Schema), but that was incorrectly copied over from the former `collection-assets` extension. Collection Assets are not required.
- Clarified that the values in summaries (both for ranges and sets of values) must follow the data type of the property they summarize. ([#1069](https://github.com/radiantearth/stac-spec/pull/1069))

Expand Down
2 changes: 1 addition & 1 deletion catalog-spec/json-schema/catalog-core.json
Expand Up @@ -22,7 +22,7 @@
"stac_version": {
"title": "STAC version",
"type": "string",
"const": "1.0.0-rc.1"
"const": "1.0.0-rc.2"
},
"stac_extensions": {
"title": "STAC extensions",
Expand Down
16 changes: 13 additions & 3 deletions collection-spec/collection-spec.md
Expand Up @@ -83,7 +83,7 @@ Collection's license(s) as a SPDX [License identifier](https://spdx.org/licenses

#### summaries

Collections are are *strongly recommended* to provide summaries of the values of fields that they can expect from the `properties`
Collections are *strongly recommended* to provide summaries of the values of fields that they can expect from the `properties`
of STAC Items contained in this Collection. This enables users to get a good sense of what the ranges and potential values of
different fields in the Collection are, without to inspect a number of Items (or crawl them exhaustively to get a definitive answer).
Summaries help to fully define Collections, especially if they don't link to any Items. They also give clients enough information to
Expand Down Expand Up @@ -142,7 +142,12 @@ The object describes the spatial extents of the Collection.
| ------- | ------------ | -------------------------------------------------------------------- |
| bbox | \[\[number]] | **REQUIRED.** Potential *spatial extents* covered by the Collection. |

**bbox**: Bounding Boxes of the assets represented by this Collection using either 2D or 3D geometries. Each outer array element can be a separate bounding box, but it is recommended to only use multiple bounding boxes if a union of them would then include a large uncovered area (e.g. the union of Germany and Chile).
**bbox**: Each outer array element can be a separate spatial extent describing the bounding Boxes of the assets represented by this Collection using either 2D or 3D geometries.

The first bounding box always describes the overall spatial extent of the data. All subsequent bounding boxes can be
used to provide a more precise description of the extent and identify clusters of data.
Clients only interested in the overall spatial extent will only need to access the first item in each array.
It is recommended to only use multiple bounding boxes if a union of them would then include a large uncovered area (e.g. the union of Germany and Chile).

The length of the inner array must be 2*n where n is the number of dimensions. The array contains all axes of the southwesterly most extent followed by all axes of the northeasterly most extent specified in Longitude/Latitude or Longitude/Latitude/Elevation based on [WGS 84](http://www.opengis.net/def/crs/OGC/1.3/CRS84). When using 3D geometries, the elevation of the southwesterly most extent is the minimum depth/height in meters and the elevation of the northeasterly most extent is the maximum.

Expand All @@ -156,7 +161,12 @@ The object describes the temporal extents of the Collection.
| -------- | ------------------ | --------------------------------------------------------------------- |
| interval | \[\[string\|null]] | **REQUIRED.** Potential *temporal extents* covered by the Collection. |

**interval**: Each outer array element can be a separate temporal extent, but it is recommended to only use multiple temporal extents if a union of them would then include a large uncovered time span (e.g. only having data for the years 2000, 2010 and 2020).
**interval**: Each outer array element can be a separate temporal extent.
The first time interval always describes the overall temporal extent of the data. All subsequent time intervals
can be used to provide a more precise description of the extent and identify clusters of data.
Clients only interested in the overall extent will only need to access the first item in each array.
It is recommended to only use multiple temporal extents if a union of them would then include a large
uncovered time span (e.g. only having data for the years 2000, 2010 and 2020).

Each inner array consists of exactly two dates and times. Each date and time MUST be formatted according to [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6). The temporal reference system is the Gregorian calendar.

Expand Down
6 changes: 6 additions & 0 deletions examples/catalog.json
Expand Up @@ -21,6 +21,12 @@
"type": "application/json",
"title": "Collection with no items (standalone)"
},
{
"rel": "item",
"href": "./collectionless-item.json",
"type": "application/json",
"title": "Collection with no items (standalone)"
},
{
"rel": "self",
"href": "https://raw.githubusercontent.com/radiantearth/stac-spec/v1.0.0-rc.2/examples/catalog.json",
Expand Down
13 changes: 3 additions & 10 deletions examples/collectionless-item.json
Expand Up @@ -71,22 +71,15 @@
"cs:sat_id": "CS3",
"cs:product_level": "LV1B"
},
"collection": "CS3",
"links": [
{
"rel": "collection",
"href": "./collection.json",
"type": "application/json",
"title": "Simple Example Collection"
},
{
"rel": "root",
"href": "./collection.json",
"href": "./catalog.json",
"type": "application/json"
},
{
"rel": "root",
"href": "./collection.json",
"rel": "parent",
"href": "./catalog.json",
"type": "application/json"
},
{
Expand Down
Expand Up @@ -219,6 +219,11 @@
"rel": "parent",
"href": "../collection.json",
"type": "application/json"
},
{
"rel": "collection",
"href": "../collection.json",
"type": "application/json"
}
],
"assets": {
Expand All @@ -242,7 +247,6 @@
"eo:bands": [
{
"name": "B8",
"common_name": "panchromatic",
"center_wavelength": 0.59,
"full_width_half_max": 0.18
}
Expand Down
4 changes: 2 additions & 2 deletions item-spec/item-spec.md
Expand Up @@ -63,7 +63,7 @@ inherited from GeoJSON.
| properties | [Properties Object](#properties-object) | **REQUIRED.** A dictionary of additional metadata for the Item. |
| links | \[[Link Object](#link-object)] | **REQUIRED.** List of link objects to resources and related URLs. A link with the `rel` set to `self` is strongly recommended. |
| assets | Map<string, [Asset Object](#asset-object)> | **REQUIRED.** Dictionary of asset objects that can be downloaded, each with a unique key. |
| collection | string | The `id` of the STAC Collection this Item references to (see [`collection` relation type](#relation-types)). This field is *required* if such a relation type is present. This field provides an easy way for a user to search for any Items that belong in a specified Collection. Must be a non-empty string. |
| collection | string | The `id` of the STAC Collection this Item references to (see [`collection` relation type](#relation-types)). This field is *required* if such a relation type is present and is *not allowed* otherwise. This field provides an easy way for a user to search for any Items that belong in a specified Collection. Must be a non-empty string. |

### Additional Field Information

Expand Down Expand Up @@ -182,7 +182,7 @@ This happens where there is not a clear official option, or where STAC uses an o
| self | STRONGLY RECOMMENDED. *Absolute* URL to the Item if it is available at a public URL. This is particularly useful when in a download package that includes metadata, so that the downstream user can know where the data has come from. |
| root | URL to the root STAC Catalog or Collection. |
| parent | URL to the parent STAC Catalog or Collection. |
| collection | STRONGLY RECOMMENDED. URL to a Collection. *Absolute* URLs should be used whenever possible. The referenced Collection is STRONGLY RECOMMENDED to implement the same STAC version as the Item. |
| collection | STRONGLY RECOMMENDED. URL to a Collection. *Absolute* URLs should be used whenever possible. The referenced Collection is STRONGLY RECOMMENDED to implement the same STAC version as the Item. A link with this `rel` type is *required* if the `collection` field in properties is present. |
| derived_from | URL to a STAC Item that was used as input data in the creation of this Item. |

A more complete list of potential `rel` types and their meaning in STAC can be found in the [Using Relation
Expand Down
44 changes: 37 additions & 7 deletions item-spec/json-schema/item.json
Expand Up @@ -93,7 +93,7 @@
"stac_version": {
"title": "STAC version",
"type": "string",
"const": "1.0.0-rc.1"
"const": "1.0.0-rc.2"
},
"stac_extensions": {
"title": "STAC extensions",
Expand Down Expand Up @@ -159,12 +159,42 @@
]
}
]
},
"collection": {
"title": "Collection ID",
"description": "The ID of the STAC Collection this Item references to.",
"type": "string",
"minLength": 1
}
},
"if": {
"properties": {
"links": {
"contains": {
"required": [
"rel"
],
"properties": {
"rel": {
"const": "collection"
}
}
}
}
}
},
"then": {
"required": [
"collection"
],
"properties": {
"collection": {
"title": "Collection ID",
"description": "The ID of the STAC Collection this Item references to.",
"type": "string",
"minLength": 1
}
}
},
"else": {
"properties": {
"collection": {
"not": {}
}
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions package.json
@@ -1,6 +1,6 @@
{
"name": "stac-spec",
"version": "1.0.0-rc.1",
"version": "1.0.0-rc.2",
"description": "STAC spec helpers to check the spec.",
"repository": "https://github.com/radiantearth/stac-spec",
"license": "Apache-2.0",
Expand All @@ -21,6 +21,6 @@
"remark-preset-lint-markdown-style-guide": "^3.0.0",
"remark-preset-lint-recommended": "^4.0.0",
"remark-validate-links": "^10.0.0",
"stac-node-validator": "^0.4.6"
"stac-node-validator": "^1.0.1"
}
}

0 comments on commit 9b438b6

Please sign in to comment.