Skip to content

Commit

Permalink
Merge pull request #412 from radiantearth/dev
Browse files Browse the repository at this point in the history
Dev to master for 0.6.2
  • Loading branch information
cholmes authored Mar 1, 2019
2 parents 8099a51 + e0eddec commit 612ee4f
Show file tree
Hide file tree
Showing 40 changed files with 1,586 additions and 60 deletions.
19 changes: 19 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,24 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).

## [v0.6.2] - 2019-03-01

### Fixed
- Fixed several examples and typos, improved descriptions
- Strictly checking the STAC version numbers in the JSON schemas
- Added missing required fields in Item JSON schema
- Changed `id` to `$id` in JSON schemas (draft-06 compatibility)

### Changed
- Extensions require examples and a JSON schema to get to the maturity level 'Pilot'
- Updated ISERV implementation

### Added
- Checksum extension
- Data Cube extension
- Point Cloud extension
- SAR extension

## [v0.6.1] - 2019-01-25

### Fixed
Expand Down Expand Up @@ -112,6 +130,7 @@ Thanks @hgs-msmith, @matthewhanson, @hgs-trutherford, @rouault, @joshfix, @alkam


[Unreleased]: https://github.com/radiantearth/stac-spec/compare/master...dev
[v0.6.2]: https://github.com/radiantearth/stac-spec/compare/v0.6.1...v0.6.2
[v0.6.1]: https://github.com/radiantearth/stac-spec/compare/v0.6.0...v0.6.1
[v0.6.0]: https://github.com/radiantearth/stac-spec/compare/v0.5.2...v0.6.0
[v0.5.2]: https://github.com/radiantearth/stac-spec/compare/v0.5.1...v0.5.2
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ The minimal amount is specified right now, but best practices should emerge with
## Current version and branches

The [master branch](https://github.com/radiantearth/stac-spec/tree/master) is the 'stable' version of the spec. It is currently version
**0.6.1** of the specification. The
**0.6.2** of the specification. The
[dev](https://github.com/radiantearth/stac-spec/tree/dev) branch is where active development takes place, and may have inconsistent examples.
Whenever dev stabilizes a release is cut and we merge dev in to master. So master should be stable at any given time.
It is possible that there may be small releases in quick succession, especially if they are nice improvements that do
Expand Down
4 changes: 2 additions & 2 deletions api-spec/STAC-query.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
openapi: 3.0.1
info:
title: The SpatioTemporal Asset Catalog API (standalone)
version: 0.6.1
version: 0.6.2
description: >-
This is an OpenAPI definition of the core SpatioTemporal Asset Catalog API
specification. Any service that implements this endpoint to allow search of
Expand Down Expand Up @@ -361,7 +361,7 @@ components:
properties:
stac_version:
type: string
example: 0.6.1
example: 0.6.2
id:
type: string
example: naip
Expand Down
4 changes: 2 additions & 2 deletions api-spec/STAC-standalone.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
openapi: 3.0.1
info:
title: The SpatioTemporal Asset Catalog API (standalone)
version: 0.6.1
version: 0.6.2
description: >-
This is an OpenAPI definition of the core SpatioTemporal Asset Catalog API
specification. Any service that implements this endpoint to allow search of
Expand Down Expand Up @@ -329,7 +329,7 @@ components:
properties:
stac_version:
type: string
example: 0.6.1
example: 0.6.2
id:
type: string
example: naip
Expand Down
6 changes: 3 additions & 3 deletions api-spec/WFS3core+STAC.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
openapi: 3.0.1
info:
title: The SpatioTemporal Asset Catalog API + WFS3
version: 0.6.1
version: 0.6.2
description: >-
This is an OpenAPI definition of the core SpatioTemporal Asset Catalog API
specification. Any service that implements this endpoint to allow search of
Expand Down Expand Up @@ -488,7 +488,7 @@ components:
properties:
stac_version:
type: string
example: 0.6.1
example: 0.6.2
id:
type: string
example: naip
Expand Down Expand Up @@ -749,7 +749,7 @@ components:
- 'http://www.opengis.net/def/crs/OGC/1.3/CRS84'
stac_version:
type: string
example: 0.6.1
example: 0.6.2
id:
description: 'identifier of the collection used, for example, in URIs'
type: string
Expand Down
2 changes: 1 addition & 1 deletion api-spec/definitions/STAC-collections.fragment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ components:
properties:
stac_version:
type: string
example: 0.6.1
example: 0.6.2
id:
description: 'identifier of the collection used, for example, in URIs'
type: string
Expand Down
4 changes: 2 additions & 2 deletions api-spec/definitions/STAC-standalone.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
openapi: 3.0.1
info:
title: The SpatioTemporal Asset Catalog API (standalone)
version: 0.6.1
version: 0.6.2
description: >-
This is an OpenAPI definition of the core SpatioTemporal Asset Catalog API
specification. Any service that implements this endpoint to allow search of
Expand Down Expand Up @@ -327,7 +327,7 @@ components:
properties:
stac_version:
type: string
example: 0.6.1
example: 0.6.2
id:
type: string
example: naip
Expand Down
4 changes: 2 additions & 2 deletions catalog-spec/catalog-spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ might look something like this:

```json
{
"stac_version": "0.6.1",
"stac_version": "0.6.2",
"id": "NAIP",
"description": "Catalog of NAIP Imagery",
"links": [
Expand All @@ -178,7 +178,7 @@ A typical '_child_' sub-catalog could look similar:

```json
{
"stac_version": "0.6.1",
"stac_version": "0.6.2",
"id": "NAIP",
"description": "Catalog of NAIP Imagery - 30087",
"links": [
Expand Down
2 changes: 1 addition & 1 deletion catalog-spec/examples/catalog.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"stac_version": "0.6.1",
"stac_version": "0.6.2",
"id": "sample",
"title": "Sample catalog",
"description": "This is a very basic sample catalog.",
Expand Down
5 changes: 3 additions & 2 deletions catalog-spec/json-schema/catalog.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "http://json-schema.org/draft-06/schema#",
"id": "catalog.json#",
"$id": "catalog.json#",
"definitions": {
"link": {
"type": "object",
Expand Down Expand Up @@ -39,7 +39,8 @@
"properties": {
"stac_version": {
"title": "STAC version",
"type": "string"
"type": "string",
"const": "0.6.2"
},
"id": {
"title": "Identifier",
Expand Down
2 changes: 1 addition & 1 deletion collection-spec/collection-spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ be aware of their differences by reading both specifications.
| spatial | [number] | **REQUIRED.** Potential *spatial extent* covered by the collection. |
| temporal | [string\|null] | **REQUIRED.** Potential *temporal extent* covered by the collection. A list of two timestamps, which MUST be formatted according to [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6). Open date ranges are supported by setting either the start or the end time to `null`. Example for data from the beginning of 2019 until now: `["2009-01-01T00:00:00Z", null]`. |

**temporal** - The bounding box is provided as four or six numbers, depending on whether the coordinate reference system includes a vertical axis (height or depth):
**spatial**: The bounding box is provided as four or six numbers, depending on whether the coordinate reference system includes a vertical axis (height or depth):

- Lower left corner, coordinate axis 1 (west)
- Lower left corner, coordinate axis 2 (south)
Expand Down
2 changes: 1 addition & 1 deletion collection-spec/examples/sentinel2.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"stac_version": "0.6.1",
"stac_version": "0.6.2",
"id": "COPERNICUS/S2",
"title": "Sentinel-2 MSI: MultiSpectral Instrument, Level-1C",
"description": "Sentinel-2 is a wide-swath, high-resolution, multi-spectral\nimaging mission supporting Copernicus Land Monitoring studies,\nincluding the monitoring of vegetation, soil and water cover,\nas well as observation of inland waterways and coastal areas.\n\nThe Sentinel-2 data contain 13 UINT16 spectral bands representing\nTOA reflectance scaled by 10000. See the [Sentinel-2 User Handbook](https://sentinel.esa.int/documents/247904/685211/Sentinel-2_User_Handbook)\nfor details. In addition, three QA bands are present where one\n(QA60) is a bitmask band with cloud mask information. For more\ndetails, [see the full explanation of how cloud masks are computed.](https://sentinel.esa.int/web/sentinel/technical-guides/sentinel-2-msi/level-1c/cloud-masks)\n\nEach Sentinel-2 product (zip archive) may contain multiple\ngranules. Each granule becomes a separate Earth Engine asset.\nEE asset ids for Sentinel-2 assets have the following format:\nCOPERNICUS/S2/20151128T002653_20151128T102149_T56MNN. Here the\nfirst numeric part represents the sensing date and time, the\nsecond numeric part represents the product generation date and\ntime, and the final 6-character string is a unique granule identifier\nindicating its UTM grid reference (see [MGRS](https://en.wikipedia.org/wiki/Military_Grid_Reference_System)).\n\nFor more details on Sentinel-2 radiometric resoltuon, [see this page](https://earth.esa.int/web/sentinel/user-guides/sentinel-2-msi/resolutions/radiometric).\n",
Expand Down
5 changes: 3 additions & 2 deletions collection-spec/json-schema/collection.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "http://json-schema.org/draft-06/schema#",
"id": "collection.json#",
"$id": "collection.json#",
"title": "STAC Collection Specification",
"description": "This object represents Collections in a SpatioTemporal Asset Catalog.",
"type": "object",
Expand All @@ -16,7 +16,8 @@
"properties": {
"stac_version": {
"title": "STAC version",
"type": "string"
"type": "string",
"const": "0.6.2"
},
"id": {
"title": "Identifier",
Expand Down
15 changes: 9 additions & 6 deletions extensions/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ maturity classification, so that STAC spec users can easily get a sense of how m
on the extension.

| Maturity Classification | Min Impl # | Description | Stability |
| ----------------------- | ----------- | ----------- | --------- |
| ----------------------- | ----------- | ----------- | --------- |
| Proposal | 0 | An idea put forward by a community member to gather feedback | Not stable - breaking changes almost guaranteed as implementors try out the idea. |
| Pilot | 1 | Idea is fleshed out and implemented in one or more catalogs. Additional implementations encouraged to help give feedback | Approaching stability - breaking changes are not anticipated but can easily come from additional feedback |
| Pilot | 1 | Idea is fleshed out, with examples and a JSON schema, and implemented in one or more catalogs. Additional implementations encouraged to help give feedback | Approaching stability - breaking changes are not anticipated but can easily come from additional feedback |
| Candidate | 3 | A number of implementors are using it and are standing behind it as a solid extension. Can generally count on an extension at this maturity level | Mostly stable, breaking changes require a new version and minor changes are unlikely. |
| Stable | 6 | Highest current level of maturity. The community of extension maintainers commits to a STAC review process for any changes, which are not made lightly. | Completely stable, all changes require a new version number and review process. |
| Deprecated | N/A | A previous extension that has likely been superceded by a newer one or did not work out for some reason. | DO NOT USE, is not supported |
Expand All @@ -45,12 +45,16 @@ stable for over a year and are used in twenty or more implementations.

| Extension Name (Prefix) | Scope | Description | Maturity |
| ------------------------------------------------------------ | ---------------- | ------------------------------------------------------------ | -------- |
| [Checksum](checksum/README.md) (`checksum`) | Item +Catalog +Collection | Provides a way to specify file checksums for assets and links in Items, Catalogs and Collections. | *Proposal* |
| [Commons](commons/README.md) (-) | Item +Collection | Provides a way to specify data fields in a collection that are common across the STAC Items in that collection, so that each does not need to repeat all the same information. | *Proposal* |
| [Data Cube](datacube/README.md) (`cube`) | Item | Data Cube related metadata, especially to describe their dimensions. | *Proposal* |
| [Datetime Range](datetime-range//README.md) (`dtr`) | Item | An extension to provide datetime ranges with a start and an end datetime stamp in a consistent way. | *Proposal* |
| [EO](eo//README.md) (`eo`) | Item | Covers electro-optical data that represents a snapshot of the earth for a single date and time. It could consist of multiple spectral bands, for example visible bands, infrared bands, red edge bands and panchromatic bands. The extension provides common fields like bands, cloud cover, off nadir, sun angle + elevation, gsd and more. | *Pilot* |
| [EO](eo/README.md) (`eo`) | Item | Covers electro-optical data that represents a snapshot of the earth for a single date and time. It could consist of multiple spectral bands, for example visible bands, infrared bands, red edge bands and panchromatic bands. The extension provides common fields like bands, cloud cover, off nadir, sun angle + elevation, gsd and more. | *Pilot* |
| [Point Cloud](pointcloud/README.md) (`pc`) | Item | Provides a way to describe point cloud datasets. The point clouds can come from either active or passive sensors, and data is frequently acquired using tools such as LiDAR or coincidence-matched imagery. | *Proposal* |
| [SAR](sar/README.md) (`sar`) | Item | Covers synthetic-aperture radar data that represents a snapshot of the earth for a single date and time. | *Proposal* |
| [Single Item](single-item/README.md) (`item`) | Item | Provides a way to specify several fields in individual Items that usually reside on the collection-level such as license and providers. | *Proposal* |
| [Scientific](scientific//README.md) (`sci`) | Item | Scientific metadata is considered to be data that indicate from which publication a collection originates and how the collection itself should be cited or referenced. | *Proposal* |
| [Transaction](transaction//README.md) | API | Provides an API extension to support the creation, editing, and deleting of items on a specific WFS3 collection. | *Pilot* |
| [Scientific](scientific/README.md) (`sci`) | Item | Scientific metadata is considered to be data that indicate from which publication a collection originates and how the collection itself should be cited or referenced. | *Proposal* |
| [Transaction](transaction/README.md) | API | Provides an API extension to support the creation, editing, and deleting of items on a specific WFS3 collection. | *Pilot* |

## Third-party / vendor extensions

Expand All @@ -73,7 +77,6 @@ extension, please get in touch through the referenced issues:

- [Drone content Extension](https://github.com/radiantearth/stac-spec/issues/149)
- [Full Motion Video Content Extension](https://github.com/radiantearth/stac-spec/issues/156)
- [Point Cloud Extension](https://github.com/radiantearth/stac-spec/issues/157)
- [Storage Extensions](https://github.com/radiantearth/stac-spec/issues/148)

## Extending STAC
Expand Down
32 changes: 32 additions & 0 deletions extensions/checksum/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Checksum Extension Specification (`checksum`)

**Extension [Maturity Classification](../README.md#extension-maturity): Proposal**

Provides a way to specify MD5, SHA1, SHA2 and SHA3 file checksums for assets and links in STAC Items, STAC Catalogs and STAC Collections.

- [Example](example-sentinel1.json)
- [JSON Schema](schema.json)

## `Link Object` and `Asset Object` fields

| Field Name | Type | Description |
| ------------- | ------ | ------------------------------------------------------------ |
| checksum:md5 | string | [MD5 message-digest algorithm](https://en.wikipedia.org/wiki/MD5) 128-bit checksum for the corresponding file, encoded as hexadecimal string. |
| checksum:sha1 | string | [SHA-1 (Secure Hash Algorithm 1)](https://en.wikipedia.org/wiki/SHA-1) 160-bit checksum for the corresponding file, encoded as hexadecimal string. |
| checksum:sha2 | string | [SHA-2 (Secure Hash Algorithm 2)](https://en.wikipedia.org/wiki/SHA-2) checksum for the corresponding file with varying sizes of 224, 256, 384 or 512 bits, encoded as hexadecimal string. |
| checksum:sha3 | string | [SHA-3 (Secure Hash Algorithm 3)](https://en.wikipedia.org/wiki/SHA-3) checksum for the corresponding file with varying bit sizes, encoded as hexadecimal string. |

### Examples

Checksum for a text file with file content `test`.

| Field Name | Example |
| ------------------------ | ------------------------------------------------------------ |
| checksum:md5 | `098f6bcd4621d373cade4e832627b4f6` |
| checksum:sha1 | `a94a8fe5ccb19ba61c4c0873d391e987982fbbd3` |
| checksum:sha2 (256 bits) | `9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08` |
| checksum:sha3 (256 bits) | `36f028580bb02cc8272a9a020f4200e346e276ae664e45ee80745574e2f5ab80` |

## Implementations

None yet, still in proposal stage.
70 changes: 70 additions & 0 deletions extensions/checksum/example-sentinel1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
{
"id": "S1A_EW_GRDM_1SSH_20181103T235855_20181103T235955_024430_02AD5D_5616",
"type": "Feature",
"bbox": [-70.275032,-64.72924,-65.087479,-51.105831],
"geometry": {
"type": "Polygon",
"coordinates": [
[
[-67.071648,-64.72924],
[-65.087479,-56.674374],
[-68.033211,-51.105831],
[-70.275032,-59.805672],
[-67.071648,-64.72924]
]
]
},
"properties": {
"datetime": "2018-11-03T23:58:55Z"
},
"assets": {
"noises": {
"href": "./annotation/calibration/noise-s1a-ew-grd-hh-20181103t235855-20181103t235955-024430-02ad5d-001.xml",
"title": "Calibration Schema",
"type": "text/xml",
"checksum:md5": "a30d1711e81a4b11ef67b28744321659"
},
"calibrations": {
"href": "./annotation/calibration/calibration-s1a-ew-grd-hh-20181103t235855-20181103t235955-024430-02ad5d-001.xml",
"title": "Noise Schema",
"type": "text/xml",
"checksum:md5": "4fc5351af67db0b8f1746efe421a05e4"
},
"products": {
"href": "./annotation/s1a-ew-grd-hh-20181103t235855-20181103t235955-024430-02ad5d-001.xml",
"title": "Product Schema",
"type": "text/xml",
"checksum:md5": "7a7f2588a85362b9beea2a12d4514d45"
},
"measurement": {
"href": "./measurement/s1a-ew-grd-hh-20181103t235855-20181103t235955-024430-02ad5d-001.tiff",
"title": "Measurements",
"type": "image/tiff",
"sar:bands": [
0
],
"checksum:md5": "163700a8a6501eccd00b6d3b44ddaed0"
},
"thumbnail": {
"href": "./preview/quick-look.png",
"title": "Thumbnail",
"type": "image/png"
}
},
"links": [
{
"rel": "self",
"href": "https://example.com/collections/sentinel-1/items/S1A_EW_GRDM_1SSH_20181103T235855_20181103T235955_024430_02AD5D_5616"
},
{
"rel": "parent",
"href": "https://example.com/collections/sentinel-1",
"checksum:sha1": "6D97123FD2C02DEC9A1B6D3B13136DBE600CF966"
},
{
"rel": "root",
"href": "https://example.com/collections",
"checksum:sha1": "FA4B9D69FDDDC7C1BE7BED9440621400B383B43F"
}
]
}
Loading

0 comments on commit 612ee4f

Please sign in to comment.