From 9ec7183e761d9bc26e29dd386af5bb2c500accfe Mon Sep 17 00:00:00 2001 From: Matthias Mohr Date: Fri, 5 Oct 2018 13:50:00 +0200 Subject: [PATCH 1/3] Implemented changes discussed in the last meeting (removing host, makring datasets required etc.) Related issues: #225, #194, #148, #136, #78, #36. --- catalog-spec/catalog-spec.md | 1 - dataset-spec/dataset-spec.md | 25 ++------- dataset-spec/examples/sentinel2.json | 1 + dataset-spec/json-schema/dataset.json | 52 ++++--------------- .../CBERS_4_MUX_20170528_090_084_L2.json | 6 +-- item-spec/examples/digitalglobe-sample.json | 6 +-- item-spec/examples/landsat8-sample.json | 5 +- item-spec/examples/planet-sample.json | 1 - item-spec/examples/sample-full.json | 4 +- item-spec/examples/sample.json | 7 ++- item-spec/examples/sentinel2-sample.json | 6 ++- item-spec/item-spec.md | 6 +-- item-spec/json-schema/stac-item.json | 35 ------------- validation/README.md | 2 +- 14 files changed, 33 insertions(+), 124 deletions(-) diff --git a/catalog-spec/catalog-spec.md b/catalog-spec/catalog-spec.md index 9ad2666d3..1bf9a5fd0 100644 --- a/catalog-spec/catalog-spec.md +++ b/catalog-spec/catalog-spec.md @@ -149,6 +149,5 @@ The following types are commonly used as `rel` types in the Link Object of a Dat | parent | URL to the parent [STAC Catalog](../catalog-spec/). Non-root catalogs should include a link to their parent. | | child | URL to a child [STAC Catalog](../catalog-spec/). | | item | URL to a [STAC Item](../item-spec/). | -| license | The license URL for the catalog SHOULD be specified if the `license` field is set to `proprietary`. If there is no public license URL available, it is RECOMMENDED to supplement the STAC catalog with the license text in a separate file and link to this file. | **Note:** A link to at least one `item` or `child` catalog is _required_. diff --git a/dataset-spec/dataset-spec.md b/dataset-spec/dataset-spec.md index 9805573c1..5586159ae 100644 --- a/dataset-spec/dataset-spec.md +++ b/dataset-spec/dataset-spec.md @@ -21,10 +21,9 @@ Implementations are encouraged, however, as good effort will be made to not chan | title | string | A short descriptive one-line title for the dataset. | | description | string | **REQUIRED.** Detailed multi-line description to fully explain the entity. [CommonMark 0.28](http://commonmark.org/) syntax MAY be used for rich text representation. | | keywords | [string] | List of keywords describing the dataset. | -| version | string | Version of the dataset. [Semantic Versioning (SemVer)](https://semver.org/) SHOULD be followed. | +| version | string | Version of the dataset. | | license | string | **REQUIRED.** Dataset's license(s) as a SPDX [License identifier](https://spdx.org/licenses/) or [expression](https://spdx.org/spdx-specification-21-web-version#h.jxpfx0ykyb60) or `proprietary` if the license is not on the SPDX license list. Proprietary licensed data SHOULD add a link to the license text, see the `license` relation type. | -| provider | [Provider Object] | A list of data providers, the organizations which influenced the content of the dataset. Providers should be listed in chronological order with the most recent provider being the last element of the list. | -| host | Host Object | Storage provider, the organization that hosts the dataset. | +| provider | [Provider Object] | A list of providers, which may include all organizations capturing or processing the data or the hosting provider. Providers should be listed in chronological order with the most recent provider being the last element of the list. | | extent | [Extent Object] | **REQUIRED.** Spatial and temporal extents. | | links | [Link Object] | **REQUIRED.** A list of references to other documents. | @@ -52,28 +51,14 @@ The coordinate reference system of the values is WGS84 longitude/latitude. ### Provider Object -The object provides information about a provider. A provider is any of the organizations that created or processed the content of the dataset and therefore influenced the data offered by this dataset. +The object provides information about a provider. A provider is any of the organizations that captured or processed the content of the dataset and therefore influenced the data offered by this dataset. May also include information about the final storage provider hosting the data. | Field Name | Type | Description | | ---------- | ------ | ------------------------------------------------------------ | | name | string | **REQUIRED.** The name of the organization or the individual. | +| type | string | The type of provider. Any of `producer`, `processor` or `host`. | | url | string | Homepage of the provider. | -### Host Object - -The objects provides information about the storage provider hosting the data. - -**Note:** The idea of storage profiles is currently [discussed](https://github.com/radiantearth/stac-spec/issues/148). Therefore, scheme, id and region may be removed from the final spec once this concept is introduced to STAC. - -| Field Name | Type | Description | -| -------------- | ------- | ------------------------------------------------------------ | -| name | string | **REQUIRED.** The name of the organization or the individual hosting the data. | -| description | string | Detailed description to explain the hosting details. [CommonMark 0.28](http://commonmark.org/) syntax MAY be used for rich text representation. | -| scheme | string | **REQUIRED.** The protocol/scheme used to access the data. Any of: `S3`, `GCS`, `URL`, `OTHER` | -| id | string | **REQUIRED.** Host-specific identifier such as an URL or asset id. | -| region | string | Provider specific region where the data is stored. | -| requester_pays | boolean | `true` if requester pays, `false` if host pays. Defaults to `false`. | - ### Link Object This object describes a relationship with another entity. Data providers are advised to be liberal with links. @@ -97,7 +82,7 @@ The following types are commonly used as `rel` types in the Link Object of a Dat | item | URL to a [STAC Item](../item-spec/). | | license | The license URL for the dataset SHOULD be specified if the `license` field is set to `proprietary`. If there is no public license URL available, it is RECOMMENDED to supplement the STAC catalog with the license text in a separate file and link to this file. | -**Note:** The [catalog specification](../catalog-spec/catalog-spec.md) requires a link to at least one `item` or `child` catalog. This is _not_ a requirement for datasets, but _recommended_. +**Note:** The [catalog specification](../catalog-spec/catalog-spec.md) requires a link to at least one `item` or `child` catalog. This is _not_ a requirement for datasets, but _strongly recommended_. ## Extensions diff --git a/dataset-spec/examples/sentinel2.json b/dataset-spec/examples/sentinel2.json index e1c5600cc..7dc6a6676 100644 --- a/dataset-spec/examples/sentinel2.json +++ b/dataset-spec/examples/sentinel2.json @@ -14,6 +14,7 @@ "provider": [ { "name": "European Union/ESA/Copernicus", + "type": "producer", "url": "https://sentinel.esa.int/web/sentinel/user-guides/sentinel-2-msi" } ], diff --git a/dataset-spec/json-schema/dataset.json b/dataset-spec/json-schema/dataset.json index d0a0c0a2c..becdbdf6b 100644 --- a/dataset-spec/json-schema/dataset.json +++ b/dataset-spec/json-schema/dataset.json @@ -45,9 +45,18 @@ "items": { "properties": { "name": { - "title": "Organization Name", + "title": "Organization name", "type": "string" }, + "type": { + "title": "Organization type", + "type": "string", + "enum": [ + "producer", + "processor", + "host" + ] + }, "url": { "title": "Organization homepage", "type": "string", @@ -56,47 +65,6 @@ } } }, - "host": { - "required": [ - "name", - "scheme", - "id" - ], - "properties": { - "name": { - "title": "Organization name", - "type": "string" - }, - "description": { - "title": "Description", - "type": "string" - }, - "scheme": { - "title": "Scheme", - "type": "string", - "enum": [ - "S3", - "GCS", - "URL", - "OTHER" - ] - }, - "id": { - "title": "Identifirer", - "type": "string" - }, - "region": { - "title": "Region", - "type": "string" - }, - "requester_pays": { - "title": "Requester Pays", - "type": "boolean", - "default": false - } - }, - "additionalProperties": true - }, "extent": { "title": "Extents", "type": "object", diff --git a/item-spec/examples/CBERS_4_MUX_20170528_090_084_L2.json b/item-spec/examples/CBERS_4_MUX_20170528_090_084_L2.json index 97155fe56..e112aca5a 100644 --- a/item-spec/examples/CBERS_4_MUX_20170528_090_084_L2.json +++ b/item-spec/examples/CBERS_4_MUX_20170528_090_084_L2.json @@ -38,8 +38,6 @@ }, "properties": { "datetime": "2017-05-28T09:01:17Z", - "provider": "INPE", - "eo:collection": "default", "eo:sun_azimuth": 66.2923, "eo:sun_elevation": 70.3079, "eo:off_nadir": -0.00744884, @@ -54,11 +52,11 @@ "href": "https://cbers-stac.s3.amazonaws.com/CBERS4/MUX/090/084/CBERS_4_MUX_20170528_090_084_L2.json" }, { - "rel": "catalog", + "rel": "parent", "href": "https://cbers-stac.s3.amazonaws.com/CBERS4/MUX/090/catalog.json" }, { - "rel": "collection", + "rel": "dataset", "href": "https://cbers-stac.s3.amazonaws.com/collections/CBERS_4_MUX_L2_collection.json" } ], diff --git a/item-spec/examples/digitalglobe-sample.json b/item-spec/examples/digitalglobe-sample.json index 60c5d0cdd..2cf7754ed 100644 --- a/item-spec/examples/digitalglobe-sample.json +++ b/item-spec/examples/digitalglobe-sample.json @@ -80,9 +80,7 @@ "dg:platform": "WORLDVIEW02", "dg:product_level": "LV1B", "dg:product": "WORLDVIEW02_LV1B", - "datetime": "2015-11-09T18:04:46.000Z", - "provider": "DigitalGlobe", - "license": "(C) COPYRIGHT 2016 DigitalGlobe, Inc., Longmont CO USA 80503" + "datetime": "2015-11-09T18:04:46.000Z" }, "links": [ { @@ -90,7 +88,7 @@ "href": "https://s3.amazonaws.com/digitalglobe-catalog-spec/collections/dg_worldview02_LV1B/103001004B316600_P002_MUL" }, { - "rel": "collection", + "rel": "dataset", "href": "https://s3.amazonaws.com/digitalglobe-catalog-spec/collections/dg_worldview02_LV1B.json" } ] diff --git a/item-spec/examples/landsat8-sample.json b/item-spec/examples/landsat8-sample.json index 427e352df..138ed525d 100644 --- a/item-spec/examples/landsat8-sample.json +++ b/item-spec/examples/landsat8-sample.json @@ -34,8 +34,6 @@ "properties": { "datetime": "2014-06-02T09:22:02Z", - "provider": "USGS", - "license": "PDDL-1.0", "c:id": "L1T", "c:name": "Landsat L1T", "c:description": "Landat 8 imagery that is radiometrically calibrated and orthorectified using ground points and Digital Elevation Model (DEM) data to correct relief displacement.", @@ -61,8 +59,7 @@ "links": [ { "rel":"self", "href": "http://landsat-pds.s3.amazonaws.com/L8/153/025/LC81530252014153LGN00/LC81530252014153LGN00.json"}, { "rel":"alternate", "href": "https://landsatonaws.com/L8/153/025/LC81530252014153LGN00", "type": "html"}, - { "rel":"catalog", "href": "http://landsat-pds.s3.amazonaws.com/L8/catalog.json"}, - { "rel":"collection", "href": "http://landsat-pds.s3.amazonaws.com/L8/L1T-collection.json"} + { "rel":"dataset", "href": "http://landsat-pds.s3.amazonaws.com/L8/L1T-collection.json"} ], "assets" :{ diff --git a/item-spec/examples/planet-sample.json b/item-spec/examples/planet-sample.json index 90858f810..0e62c699b 100644 --- a/item-spec/examples/planet-sample.json +++ b/item-spec/examples/planet-sample.json @@ -55,7 +55,6 @@ "id": "20171110_121030_1013", "properties": { "datetime": "2017-11-10T12:10:30.535417Z", - "provider": "Planet", "eo:cloud_cover": 23, "eo:gsd": 4, "eo:sun_azimuth": 101.8, diff --git a/item-spec/examples/sample-full.json b/item-spec/examples/sample-full.json index f03824a9e..f421c9fa5 100644 --- a/item-spec/examples/sample-full.json +++ b/item-spec/examples/sample-full.json @@ -18,8 +18,6 @@ }, "properties": { "datetime": "2016-05-03T13:22:30.040Z", - "provider": "http://www.cool-sat.com", - "license": "CC-BY-4.0", "eo:sun_azimuth": 168.7, "eo:cloud_cover": 0.12, "eo:off_nadir": 1.4, @@ -35,7 +33,7 @@ "links": [ {"rel": "self", "href": "http://cool-sat.com/catalog/CS3-20160503_132130_04/CS3-20160503_132130_04.json"}, {"rel": "thumbnail", "href":"thumbnail.png"}, - {"rel": "catalog", "href": "http://cool-sat.com/catalog/"}, + {"rel": "dataset", "href": "http://cool-sat.com/catalog/"}, {"rel": "acquisition", "href": "http://cool-sat.com/catalog/acquisitions/20160503_56"} ], "assets": { diff --git a/item-spec/examples/sample.json b/item-spec/examples/sample.json index 59210a54e..391f69f7e 100644 --- a/item-spec/examples/sample.json +++ b/item-spec/examples/sample.json @@ -17,12 +17,11 @@ ] }, "properties": { - "datetime": "2016-05-03T13:21:30.040Z", - "provider": "http://www.cool-sat.com", - "license": "CC-BY-4.0" + "datetime": "2016-05-03T13:21:30.040Z" }, "links": [ - { "rel": "self", "href": "http://cool-sat.com/catalog/CS3-20160503_132130_04/CS3-20160503_132130_04.json"} + { "rel": "self", "href": "http://cool-sat.com/catalog/CS3-20160503_132130_04/CS3-20160503_132130_04.json"}, + { "rel": "dataset", "href": "http://cool-sat.com/catalog.json"} ], "assets": { "analytic": { diff --git a/item-spec/examples/sentinel2-sample.json b/item-spec/examples/sentinel2-sample.json index c6dd98fb3..7de73481b 100644 --- a/item-spec/examples/sentinel2-sample.json +++ b/item-spec/examples/sentinel2-sample.json @@ -4,7 +4,11 @@ "links": [ { "rel": "self", - "href": "s3://sentinel-s2-l2a-catalog/tiles/35/V/MK/2018/6/5/0/catalog.json" + "href": "s3://sentinel-s2-l2a-catalog/tiles/35/V/MK/2018/6/5/0/sentinel2-sample.json" + }, + { + "rel": "dataset", + "href": "s3://sentinel-s2-l2a-catalog/catalog.json" } ], "bbox": [ diff --git a/item-spec/item-spec.md b/item-spec/item-spec.md index b859c6586..36c06f17a 100644 --- a/item-spec/item-spec.md +++ b/item-spec/item-spec.md @@ -64,8 +64,6 @@ custom fields. | Field Name | Type | Name | Description | | ---------- | ------ | ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | datetime | string | Date and Time | **REQUIRED.** The searchable date and time of the assets, in UTC. It is formatted according to [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6). | -| provider | string | Provider | Provider name | -| license | string | Data License | Items' license(s) as a SPDX [License identifier](https://spdx.org/licenses/) or [expression](https://spdx.org/spdx-specification-21-web-version#h.jxpfx0ykyb60) or `proprietary` if the license is not on the SPDX license list. Proprietary licensed data SHOULD add a link to the license text, see the `license` relation type. | **datetime** is likely the acquisition (in the case of single camera type captures) or the 'nominal' or representative time in the case of assets that are combined together. Though time can be a @@ -98,7 +96,7 @@ The following types are commonly used as `rel` types in the Link Object of an It | self | **REQUIRED.** _Absolute_ URL to the item file itself. This is required, to represent the location that the file can be found online. 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](../catalog-spec/) or [Dataset](../dataset-spec/). | | parent | URL to the parent [STAC Catalog](../catalog-spec/) or [Dataset](../dataset-spec/). | -| license | The license URL for the item SHOULD be specified if the `license` field is set to `proprietary`. If there is no public license URL available, it is RECOMMENDED to supplement the STAC catalog with the license text in a separate file and link to this file. | +| dataset | **REQUIRED.** URL to a [STAC Dataset](../dataset-spec/). | #### Relative vs Absolute links @@ -110,7 +108,7 @@ link is required to be absolute. #### Datasets -Items are *strongly recommended* to provide a link to a dataset definition. +Items are *required* to provide a link to a dataset definition. ### Asset Object diff --git a/item-spec/json-schema/stac-item.json b/item-spec/json-schema/stac-item.json index d4a1eb3b8..f4e82d274 100644 --- a/item-spec/json-schema/stac-item.json +++ b/item-spec/json-schema/stac-item.json @@ -64,22 +64,6 @@ "description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ", "type": "string", "format": "date-time" - }, - "provider": { - "title": "Provider", - "description": "Provider name and contact", - "oneOf": [ - { - "type": "string" - }, - { - "$ref": "#/definitions/entity" - } - ] - }, - "license": { - "title": "Data license", - "description": "Data license name based on SPDX License List" } } } @@ -118,25 +102,6 @@ "type": "string" } } - }, - "entity": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "email": { - "type": "string", - "format": "email" - }, - "phone": { - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" - } - } } } } \ No newline at end of file diff --git a/validation/README.md b/validation/README.md index f492836f2..825fd6430 100644 --- a/validation/README.md +++ b/validation/README.md @@ -53,5 +53,5 @@ This example runs the validation for the scientific extension, please change the To run the validation for an item file: ```bash -npm run validate_item -- -d ../item-spec/sample.json +npm run validate_item -- -d ../item-spec/examples/sample.json ``` From e8642cb011899771b2d69a692a662326e915c1ff Mon Sep 17 00:00:00 2001 From: m-mohr Date: Sat, 6 Oct 2018 13:09:43 +0200 Subject: [PATCH 2/3] Changed name to id in catalogs and datasets, introduces title to catalogs. --- catalog-spec/catalog-spec.md | 18 ++++-------------- catalog-spec/examples/catalog.json | 3 ++- catalog-spec/json-schema/catalog.json | 10 +++++++--- dataset-spec/dataset-spec.md | 4 ++-- dataset-spec/examples/sentinel2.json | 2 +- dataset-spec/json-schema/dataset.json | 4 ++-- extensions/scientific/example-merraclim.json | 3 +-- 7 files changed, 19 insertions(+), 25 deletions(-) diff --git a/catalog-spec/catalog-spec.md b/catalog-spec/catalog-spec.md index 1bf9a5fd0..1b4968725 100644 --- a/catalog-spec/catalog-spec.md +++ b/catalog-spec/catalog-spec.md @@ -24,17 +24,6 @@ incorporated. ## Catalog Definitions -There are two required element types of a Catalog: Catalog and Item. A STAC Catalog -points to [STAC Items](../item-spec/), or to other STAC catalogs. The top-most parent catalog is -called the "root" catalog. The root catalog generally defines information about the catalog as a -whole, such as name, description, licensing, contact information and so forth. However, it is -strongly recommended that a "root" catalog define metadata fields that apply to the entire `catalog` -(such that child catalogs and items simply inherit these field values). Catalogs below the root -generally have less information and serve to create a directory structure for categorizing and -grouping item data. The contents of a catalog are flexible and STAC makes no assumptions for where -or how catalog metadata is defined within a catalog. For example, a non-root catalog could redefine -or add different licensing or copyright terms. - STAC makes no formal distinction between a "root" catalog and the "child" catalogs. A root catalog is simply a top-most `catalog` (which has no parent). A nested `catalog` structure is useful (and recommended) for breaking up massive numbers of catalog items into logical groupings. For example, @@ -84,7 +73,8 @@ type files. In order to support multiple "root" catalogs, the recommended practi | Element | Type | Description | | ----------- | ------------- | ------------------------------------------------------------ | -| name | string | **REQUIRED.** Name for the catalog. | +| id | string | **REQUIRED.** Identifier for the catalog. | +| title | string | A short descriptive one-line title for the catalog. | | description | string | **REQUIRED.** Detailed multi-line description to fully explain the catalog. [CommonMark 0.28](http://commonmark.org/) syntax MAY be used for rich text representation. | | links | [Link Object] | **REQUIRED.** A list of references to other documents. | @@ -96,7 +86,7 @@ might look something like this: ```json { - "name": "NAIP", + "id": "NAIP", "description": "Catalog of NAIP Imagery", "links": [ { "rel": "self", "href": "https://www.fsa.usda.gov/naip/catalog.json" }, @@ -113,7 +103,7 @@ A typical '_child_' catalog could look similar: ```json { - "name": "NAIP", + "id": "NAIP", "description": "Catalog of NAIP Imagery - 30087", "links": [ { "rel": "self", "href": "https://www.fsa.usda.gov/naip/30087/catalog.json" }, diff --git a/catalog-spec/examples/catalog.json b/catalog-spec/examples/catalog.json index 1c23b900e..57cf149ee 100644 --- a/catalog-spec/examples/catalog.json +++ b/catalog-spec/examples/catalog.json @@ -1,5 +1,6 @@ { - "name": "Sample catalog", + "id": "sample", + "title": "Sample catalog", "description": "This is a very basic sample catalog.", "links": [ { diff --git a/catalog-spec/json-schema/catalog.json b/catalog-spec/json-schema/catalog.json index e7cd4354c..968ac3786 100644 --- a/catalog-spec/json-schema/catalog.json +++ b/catalog-spec/json-schema/catalog.json @@ -24,13 +24,17 @@ "title": "Catalog", "type": "object", "required": [ - "name", + "id", "description", "links" ], "properties": { - "name": { - "title": "Name", + "id": { + "title": "Identifier", + "type": "string" + }, + "title": { + "title": "Title", "type": "string" }, "description": { diff --git a/dataset-spec/dataset-spec.md b/dataset-spec/dataset-spec.md index b9c41e611..cd9fdfd6b 100644 --- a/dataset-spec/dataset-spec.md +++ b/dataset-spec/dataset-spec.md @@ -17,7 +17,7 @@ Implementations are encouraged, however, as good effort will be made to not chan | Element | Type | Description | | ----------- | ----------------- | ------------------------------------------------------------ | -| name | string | **REQUIRED.** Identifier for the dataset that is unique across the provider. | +| id | string | **REQUIRED.** Identifier for the dataset that is unique across the provider. | | title | string | A short descriptive one-line title for the dataset. | | description | string | **REQUIRED.** Detailed multi-line description to fully explain the entity. [CommonMark 0.28](http://commonmark.org/) syntax MAY be used for rich text representation. | | keywords | [string] | List of keywords describing the dataset. | @@ -82,7 +82,7 @@ The following types are commonly used as `rel` types in the Link Object of a Dat | item | URL to a [STAC Item](../item-spec/). | | license | The license URL for the dataset SHOULD be specified if the `license` field is set to `proprietary`. If there is no public license URL available, it is RECOMMENDED to supplement the STAC catalog with the license text in a separate file and link to this file. | | derived_from | URL to a STAC `Dataset` that was used as input data in the creation of this `Dataset`. See the note in [STAC Item](../item-spec/item-spec.md) for more info. | - + **Note:** The [catalog specification](../catalog-spec/catalog-spec.md) requires a link to at least one `item` or `child` catalog. This is _not_ a requirement for datasets, but _strongly recommended_. diff --git a/dataset-spec/examples/sentinel2.json b/dataset-spec/examples/sentinel2.json index 7dc6a6676..896402352 100644 --- a/dataset-spec/examples/sentinel2.json +++ b/dataset-spec/examples/sentinel2.json @@ -1,5 +1,5 @@ { - "name": "COPERNICUS/S2", + "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", "license": "proprietary", diff --git a/dataset-spec/json-schema/dataset.json b/dataset-spec/json-schema/dataset.json index becdbdf6b..33c1530d2 100644 --- a/dataset-spec/json-schema/dataset.json +++ b/dataset-spec/json-schema/dataset.json @@ -5,7 +5,7 @@ "description": "This object represents the dataset in a SpatioTemporal Asset Catalog.", "type": "object", "required": [ - "name", + "id", "description", "license", "extent", @@ -13,7 +13,7 @@ ], "additionalProperties": true, "properties": { - "name": { + "id": { "title": "Identifier", "type": "string" }, diff --git a/extensions/scientific/example-merraclim.json b/extensions/scientific/example-merraclim.json index 31870bbe4..270cdbc10 100644 --- a/extensions/scientific/example-merraclim.json +++ b/extensions/scientific/example-merraclim.json @@ -1,5 +1,5 @@ { - "name": "MERRAclim", + "id": "MERRAclim", "description": "MERRAclim, a high-resolution global dataset of remotely sensed bioclimatic variables for ecological modelling.", "keywords": [ "bioclimatic", @@ -7,7 +7,6 @@ "macroecology", "biogeography" ], - "homepage": "https://datadryad.org/resource/doi:10.5061/dryad.s2v81", "links": [ { "rel": "self", From 6e4383cb16ddab5d3e945bfaf50bdb64869c7144 Mon Sep 17 00:00:00 2001 From: m-mohr Date: Sat, 6 Oct 2018 13:28:38 +0200 Subject: [PATCH 3/3] Added more information on provider type and changed how datasets require their items to link back. --- dataset-spec/dataset-spec.md | 11 ++++++++--- item-spec/item-spec.md | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/dataset-spec/dataset-spec.md b/dataset-spec/dataset-spec.md index cd9fdfd6b..507d824ac 100644 --- a/dataset-spec/dataset-spec.md +++ b/dataset-spec/dataset-spec.md @@ -59,6 +59,12 @@ The object provides information about a provider. A provider is any of the organ | type | string | The type of provider. Any of `producer`, `processor` or `host`. | | url | string | Homepage of the provider. | +**type**: The type of the provider can be one of the following elements: + +* *producer*: The producer of the data is the provider that initially captured and processed the source data, e.g. ESA for Sentinel-2 data. +* *processor*: A processor is any provider who processed data to a derived product. +* *host*: The host is the actual provider offering the data on their storage. There should be no more than one host, specified as last element of the list. + ### Link Object This object describes a relationship with another entity. Data providers are advised to be liberal with links. @@ -79,12 +85,11 @@ The following types are commonly used as `rel` types in the Link Object of a Dat | root | URL to the root [STAC Catalog](../catalog-spec/) or Dataset. | | parent | URL to the parent [STAC Catalog](../catalog-spec/) or Dataset. | | child | URL to a child [STAC Catalog](../catalog-spec/) or Dataset. | -| item | URL to a [STAC Item](../item-spec/). | +| item | URL to a [STAC Item](../item-spec/). All items linked from a dataset MUST refer back to its dataset with the `dataset` relation type. | | license | The license URL for the dataset SHOULD be specified if the `license` field is set to `proprietary`. If there is no public license URL available, it is RECOMMENDED to supplement the STAC catalog with the license text in a separate file and link to this file. | | derived_from | URL to a STAC `Dataset` that was used as input data in the creation of this `Dataset`. See the note in [STAC Item](../item-spec/item-spec.md) for more info. | - -**Note:** The [catalog specification](../catalog-spec/catalog-spec.md) requires a link to at least one `item` or `child` catalog. This is _not_ a requirement for datasets, but _strongly recommended_. +**Note:** The [catalog specification](../catalog-spec/catalog-spec.md) requires a link to at least one `item` or `child` catalog. This is _not_ a requirement for datasets, but _recommended_. In contrast to catalogs, it is **required** that items linked from a dataset MUST refer back to its dataset with the `dataset` relation type. ## Extensions diff --git a/item-spec/item-spec.md b/item-spec/item-spec.md index cfec79cb9..b42fc4c88 100644 --- a/item-spec/item-spec.md +++ b/item-spec/item-spec.md @@ -113,7 +113,7 @@ link is required to be absolute. #### Datasets -Items are *required* to provide a link to a dataset definition. +Items are *strongly recommended* to provide a link to a dataset definition. It is important as datasets provide additional information about a set of items, for example the license and provider information and optionally any common information shared across all items. ### Asset Object