diff --git a/CHANGELOG.md b/CHANGELOG.md index bac193b3e..25edbf0d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - URIs (usually found int properties like `href`, `url`) are now validated using the `iri-reference` format in JSON Schema (allows international characters in URIs) - Relaxed the regular expression for DOIs in the scientific extension ([#910](https://github.com/radiantearth/stac-spec/issues/910)) - The [Stats Object](collection-spec/collection-spec.md#stats-object) for Collection `summaries` changed `min` to `minimum` and `max` to `maximum` to align with JSON Schema. +- Moved examples from individual directories into a single /examples folder at the root, and evolved them to be more representative. - Made `summaries` to be *strongly recommended* - everyone should strive to implement them, as they are very useful. - `proj:geometry` allows all GeoJSON geometries instead of just a polygon. - `label:description` and `processing:lineage` allow CommonMark for rich-text representation ([#950](https://github.com/radiantearth/stac-spec/issues/950)) diff --git a/README.md b/README.md index add0aa2c5..4897ce27b 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ the specification takes place in the [issue tracker](https://github.com/radiante ## In this Repository -This repository contains the core specifications plus examples and validation schemas. Also included are a +This repository contains the core specifications plus [examples](examples/) and validation schemas. Also included are a few documents that provide more context and plans for the evolution of the specification. Each spec folder contains a README explaining the layout of the folder, the main specification document, examples, and validating schemas. And there is one more specification in the STAC 'family', which is @@ -68,6 +68,9 @@ In the context of STAC it is most likely a collection of STAC Items that is made It includes things like the spatial and temporal extent of the data, the license, keywords, etc. It enables discovery at a higher level than individual items, providing a simple way to describe sets of data. +**Examples:** The *[examples/](examples)* folder contains examples for all three specifications, linked together to form two +complete examples. Each spec and extension links in to highlight particular files that demonstrate key concepts. + **Extensions:** The *[extensions/](extensions/)* folder is where extensions live. Extensions can extend the functionality of the core spec or add fields for specific domains. Each extension has at least one *owner*. You can find extension owners in each extension's README or in the [`CODEOWNERS`](.github/CODEOWNERS) file. diff --git a/best-practices.md b/best-practices.md index f11573f62..9f1d07d7e 100644 --- a/best-practices.md +++ b/best-practices.md @@ -366,9 +366,17 @@ online location which makes more sense to refer to directly). This enables the f copied to another location and to still be valid. This also implies no `self` link, as that link must be absolute. * **Use Asset `href` links consistently**: The links to the actual assets are allowed to be either relative or absolute. There -are two types of 'self-contained catalogs'. The first is just the metadata, and use absolute href links to refer to the -online locations of the assets. The second uses relative href links for the assets, and includes them in the folder structure. -This enables offline use of a catalog, by including all the actual data. +are two types of 'self-contained catalogs'. + +#### Self-contained Metadata Only + +These consist of just the STAC metadata (Collection, Catalog and Item files), and uses absolute href +links to refer to the online locations of the assets. + +#### Self-contained with Assets + +These use relative href links for the assets, and includes them in the folder structure. +This enables offline use of a catalog, by including all the actual data, referenced locally. Self-contained catalogs tend to be used more as static catalogs, where they can be easily passed around. But often they will be generated by a more dynamic STAC service, enabling a subset of a catalog or a portion of a search criteria to be downloaded @@ -388,12 +396,18 @@ href's. We refer to a 'published catalog' as one that lives online in a stable location, and uses `self` links to establish its location and enable easy provenance tracking. There are two types of published catalogs: -* **Absolute Published Catalog** is a catalog that uses absolute links for everything, both in the `links` objects and in the +#### Absolute Published Catalog + +This is a catalog that uses absolute links for everything, both in the `links` objects and in the `asset` hrefs. It includes `self` links for every item. Generally these are implemented by dynamic catalogs, as it is quite easy for them to generate the proper links dynamically. But a static catalog that knows its published location could easily implement it. -* **Relative Published Catalog** is a self-contained catalog as described above, except it includes an absolute `self` link at -the root catalog, to identify its online location. This is designed so that a self-contained catalog can be 'published' online + +#### Relative Published Catalog + +This is a self-contained catalog as described above, except it includes an absolute `self` link at +the root catalog, to identify its online location. This is designed so that a self-contained catalog (of either type, with its +assets or just metadata) can be 'published' online by just adding one field (the self link) to its root catalog. All the other links should remain the same. The resulting catalog is no longer compliant with the self-contained catalog recommendations, but instead transforms into a 'relative published catalog'. With this, a client may resolve item and sub-catalog self links by traversing parent and root links, but requires reading diff --git a/catalog-spec/README.md b/catalog-spec/README.md index 41ee2ff40..9e4385780 100644 --- a/catalog-spec/README.md +++ b/catalog-spec/README.md @@ -20,9 +20,6 @@ specification contains an OpenAPI definition of the standard way to do this, at **The Specification:** The main Catalog specification is in *[catalog-spec.md](catalog-spec.md)*. It includes in depth explanation of the structures and fields. -**Examples:** For samples of how Catalogs can be implemented the *[examples/](examples/)* folder -contains a full sample catalog. - **Schemas:** The schemas to validate the core Catalog definition are found in the *[json-schema/](json-schema/)* folder. The primary one is *[catalog.json](json-schema/catalog.json)*. diff --git a/catalog-spec/catalog-spec.md b/catalog-spec/catalog-spec.md index aba9f826f..aa9453bec 100644 --- a/catalog-spec/catalog-spec.md +++ b/catalog-spec/catalog-spec.md @@ -10,9 +10,9 @@ Catalogs are not intended to be queried. Their purpose is discovery: to be brows by machines to build a search index. A Catalog can be represented in JSON format. Any JSON object that contains all the required fields is a valid STAC Catalog. -- [Examples](examples/) - - See a [minimal example](examples/catalog.json), as well a [fuller example](examples/catalog-items.json) - includes links to several items. +- [Examples](../examples/) + - See an example [catalog.json](../examples/catalog.json). The [collection.json](../examples/collection.json) is also a valid + catalog file, demonstrating linking to items (it is also a collection, so has additional fields) - [JSON Schema](json-schema/catalog.json) The [Catalog section of the Overview](../overview.md#catalog-overview) document provides background information on diff --git a/catalog-spec/examples/catalog-items.json b/catalog-spec/examples/catalog-items.json deleted file mode 100644 index 3404d1363..000000000 --- a/catalog-spec/examples/catalog-items.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "stac_version": "1.0.0-beta.2", - "id": "hurricane-harvey-0831", - "title": "Hurricane Harvey 08-31-2017", - "description": "Planet Scenes and Composites for Hurricane Harvey on Aug 31, 2017", - "links": [ - { - "rel": "self", - "href": "https://storage.googleapis.com/pdd-stac/disasters/hurricane-harvey/0831/catalog.json" - }, - { - "rel": "root", - "href": "../../catalog.json" - }, - { - "rel": "parent", - "href": "../catalog.json" - }, - { - "rel": "item", - "href": "20170831_172754_101c.json", - "title": "Planetscope Scene 20170831_172754_101c" - }, - { - "rel": "item", - "href": "20170831_195552_SS02.json", - "title": "SkySat Collect 20170831_195552_SS02" - }, - { - "rel": "item", - "href": "20170831_195425_SS02.json", - "title": "SkySat Collect 20170831_195425_SS02" - }, - { - "rel": "item", - "href": "20170831_162740_ssc1d1.json", - "title": "SkySat Collect 20170831_162740_ssc1d1" - }, - { - "rel": "item", - "href": "Houston-East-20170831-103f-100d-0f4f-RGB.json", - "title": "Houston East Composite August 31, 2017" - } - ] -} diff --git a/catalog-spec/examples/catalog.json b/catalog-spec/examples/catalog.json deleted file mode 100644 index 213ff412c..000000000 --- a/catalog-spec/examples/catalog.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "stac_version": "1.0.0-beta.2", - "id": "NAIP", - "description": "Catalog of NAIP Imagery", - "links": [ - { - "rel": "self", - "href": "https://www.fsa.usda.gov/naip/catalog.json" - }, - { - "rel": "child", - "href": "https://www.fsa.usda.gov/naip/30087/catalog.json" - }, - { - "rel": "root", - "href": "https://www.fsa.usda.gov/catalog.json" - } - ] -} diff --git a/collection-spec/README.md b/collection-spec/README.md index fa8d4c91c..d52e17794 100644 --- a/collection-spec/README.md +++ b/collection-spec/README.md @@ -20,8 +20,6 @@ properties and share higher level metadata. Others called it: dataset series (ES **The Specification:** The main STAC Collection specification is in *[collection-spec.md](collection-spec.md)*. It includes an overview and in depth explanation of the structures and fields. -**Examples:** For samples of how Collections can be implemented the *[examples/](examples/)* folder contains a sample collection. - **Schemas:** The schemas to validate the STAC Collection definition are found in the *[json-schema/](json-schema/)* folder. The primary one is *[collection.json](json-schema/collection.json)*. @@ -30,7 +28,7 @@ structures and fields. STAC Collections are defined for flexibility. They only require a handful of fields, and implementors are free to add most any JSON field or object that they want via extensions. This flexibility and extensibility is a design goal, so that it is quite easy to implement a collection and be able to adapt it to most any data model. -But it is expected that some more firm recommendations and even requirements will emerge, so that clients will be able to glean more meaningful information. In the meantime implementors are encouraged to do what makes sense for them, and to check out the [examples](examples/) and [other implementations](https://stacspec.org/#examples) for emerging best practices. +Implementors are encouraged to do what makes sense for them, and to check out the [examples](../examples/) and [other implementations](https://stacindex.org/catalogs) for current best practices. ## Collection Evolution diff --git a/collection-spec/collection-spec.md b/collection-spec/collection-spec.md index 4b49e1020..0d71bc79a 100644 --- a/collection-spec/collection-spec.md +++ b/collection-spec/collection-spec.md @@ -8,9 +8,11 @@ A STAC Collection can be represented in JSON format. Any JSON object that contai STAC Collections are meant to be compatible with *OGC API - Features* Collections, but please be aware that OAFeat Collections and STAC Collections originate from different specifications and despite the fact that we try to align them as much as possible be there may be subtle differences in the specifications. -* [Examples](examples/): - * Sentinel 2: A basic standalone example of a [Collection](examples/sentinel2.json) without items. - * Landsat 8: A [Collection](examples/landsat-collection.json) with corresponding Item [Item](../item-spec/examples/landsat8-sample.json). +* [Examples](../examples/): + * Sentinel 2: A basic standalone example of a [Collection](../examples/collection-only/collection.json) without items. + * Simple Example: A [Collection](../examples/collection.json) that links to 3 example items. + * Extension Collection: An additional [Collection](../examples/extensions-collection/collection.json), which is used to highlight + various [extension](../extensions) functionality, but serves as another example. * [JSON Schema](json-schema/collection.json) ## Collection fields diff --git a/collection-spec/examples/landsat-collection.json b/collection-spec/examples/landsat-collection.json deleted file mode 100644 index caa69e18f..000000000 --- a/collection-spec/examples/landsat-collection.json +++ /dev/null @@ -1,160 +0,0 @@ -{ - "stac_version": "1.0.0-beta.2", - "stac_extensions": [], - "id": "landsat-8-l1", - "title": "Landsat 8 L1", - "description": "Landat 8 imagery radiometrically calibrated and orthorectified using gound points and Digital Elevation Model (DEM) data to correct relief displacement.", - "keywords": [ - "landsat" - ], - "extent": { - "spatial": { - "bbox": [ - [ - -180, - -90, - 180, - 90 - ] - ] - }, - "temporal": { - "interval": [ - [ - "2013-06-01T00:00:00Z", - null - ] - ] - } - }, - "providers": [ - { - "name": "USGS", - "url": "https://landsat.usgs.gov/", - "roles": [ - "producer", - "licensor" - ] - }, - { - "name": "Planet Labs", - "url": "https://github.com/landsat-pds/landsat_ingestor", - "roles": [ - "processor" - ] - }, - { - "name": "AWS", - "url": "https://landsatonaws.com/", - "roles": [ - "host" - ] - }, - { - "name": "Development Seed", - "url": "https://developmentseed.org/", - "roles": [ - "processor" - ] - } - ], - "license": "PDDL-1.0", - "summaries": { - "platform": [ - "landsat-8" - ], - "instruments": [ - "oli", - "tirs" - ], - "gsd": [ - 30 - ], - "eo:bands": [ - { - "name": "B1", - "common_name": "coastal", - "center_wavelength": 0.44, - "full_width_half_max": 0.02 - }, - { - "name": "B2", - "common_name": "blue", - "center_wavelength": 0.48, - "full_width_half_max": 0.06 - }, - { - "name": "B3", - "common_name": "green", - "center_wavelength": 0.56, - "full_width_half_max": 0.06 - }, - { - "name": "B4", - "common_name": "red", - "center_wavelength": 0.65, - "full_width_half_max": 0.04 - }, - { - "name": "B5", - "common_name": "nir", - "center_wavelength": 0.86, - "full_width_half_max": 0.03 - }, - { - "name": "B6", - "common_name": "swir16", - "center_wavelength": 1.6, - "full_width_half_max": 0.08 - }, - { - "name": "B7", - "common_name": "swir22", - "center_wavelength": 2.2, - "full_width_half_max": 0.2 - }, - { - "name": "B8", - "common_name": "pan", - "center_wavelength": 0.59, - "full_width_half_max": 0.18 - }, - { - "name": "B9", - "common_name": "cirrus", - "center_wavelength": 1.37, - "full_width_half_max": 0.02 - }, - { - "name": "B10", - "common_name": "lwir11", - "center_wavelength": 10.9, - "full_width_half_max": 0.8 - }, - { - "name": "B11", - "common_name": "lwir12", - "center_wavelength": 12, - "full_width_half_max": 1 - } - ] - }, - "links": [ - { - "rel": "self", - "href": "https://landsat-stac.s3.amazonaws.com/landsat-8-l1/catalog.json" - }, - { - "rel": "parent", - "href": "https://landsat-stac.s3.amazonaws.com/catalog.json" - }, - { - "rel": "root", - "href": "https://landsat-stac.s3.amazonaws.com/catalog.json" - }, - { - "rel": "child", - "href": "https://landsat-stac.s3.amazonaws.com/landsat-8-l1/paths/catalog.json" - } - ] -} diff --git a/examples/README.md b/examples/README.md new file mode 100644 index 000000000..85b5f5a1d --- /dev/null +++ b/examples/README.md @@ -0,0 +1,89 @@ +# STAC Examples + +This directory contains various examples for all parts of the STAC specification. It is structured to be two valid STACs, meaning both [catalog.json](catalog.json) and [collection.json](collection.json) should successfully load in various tools. They do not follow *all* the [best practices](../best-practices.md) for STAC, mostly +due to the fact that they contrive examples to show the spec and we are hosting in GitHub. But we note below where they differ from an ideal catalog. + +The various fields are mostly fictional, to be able to demonstrate the various aspects of the spec as tersely as possible. To get a sense +of real world STAC implementations we recommend exploring the [stac-examples](http://github.com/stac-utils/stac-examples) repo, which +gathers in one place copies of STAC [Items](../item-spec/item-spec.md) and [Collection](../collection-spec/collection-spec.md) +from a number of different production catalogs that all follow good STAC practices. And you should also explore the various catalogs +listed on [STAC Index](http://stacindex.org), to see full catalogs in production. + +## Organization + +This directory contains two STAC implementations, both valid, but simplified a bit to be illustrative of the key concepts, so +they do not quite follow all the best practices. + +### Simple Collection + +This STAC implementation consists of three files, all contained at the root of the examples directory + +**[collection.json](collection.json)** is a minimal 'simple collection', that links to three items. + +**[simple-item.json](simple-item.json)** is the most minimal possible compliant Item record. Most all data will +include additional fields, as STAC is designed to be a minimal common subset. But it is useful for showing exactly what is +required. + +**[core-item.json](core-item.json)** is a more realistic example, for a hypothetical analytic image +acquisition from a satellite company called 'Remote Data'. It includes additional fields covering the [common +metadata](../item-spec/common-metadata.md). It also links to a variety of assets that is typical for +satellite imagery, as most providers include a number of complementary files. + +**[extended-item.json](extended-item.json)** is arguably an even more realistic example, as it includes a number of the +[extensions](../extensions/) that are commonly used, to demonstrate how implementations tend to start with the core, and add in +a number of the core extensions. + +**[collectionless-item.json](collectionless-item.json)** demonstrates the common metadata that is only used when an Item does not have +a collection. It is recommended to organize items in collections, but we wanted to show how this works. This is not technically in the +'simple collection' of this section, but it follows the same pattern, so is included here. + +### Nested Catalog + +This STAC implementation shows a common pattern, starting with a catalog that links to a number of distinct collections, which may +link down to a number of items. + +**[catalog.json](catalog.json)** is a minimal catalog implementation, linking to two other collections. + +**[collection-only/collection.json](collection-only/collection.json)** is a collection that does not link to any items. This +demonstrates how is is possible to make use of STAC Collections without needing items, to serve as nice summarizing metadata for +tools that work with full layers / collections. This example collection is based on real Sentinel-2 values, so is not quite fictional, +but should be taken as just an example. + +**[extensions-collection/collection.json](extensions-collection/collection.json)** contains a small number of items, that demonstrate +more functionality available in STAC [extensions](../extensions/). These are linked to directly from the individual extensions. These +items follow the recommendations for [Catalog Layout Best Practices](../best-practices.md#catalog-layout). + +## In Depth + +As mentioned above, the files in this examples directory form valid STAC implementations. They are all based on a +fictional remote sensing company called 'Remote Data', with a URL at remotedata.io. This domain has not been set up, so those links +will not work, but any valid data provider should provide valid links to their homepage. + +The examples use the `rd:` prefix to show how providers can use custom fields when there are not set fields. In the examples these +do not link to a schema which is completely valid, but it is recommended that providers do write a JSON schema that can validate +their custom fields (we will work to add an example schema for the `rd:` fields in the future). + +### Catalog Type + +One of the most important STAC Best Practices is to [use links consistently](../best-practices.md#use-of-links), following one of the +described 'catalog types'. The catalogs described here are [Relative Published Catalogs](../best-practices.md#relative-published-catalog), +that use absolute URL's to refer to their assets (so would be an example of a [Self-contained Metadata +Only](../best-practices.md#self-contained-metadata-only) catalog that is published). + +### Differences with STAC Best Practices + +One of the most important documents in this repository is the one about [best practices](../best-practices.md). It describes a number +of practical recommendations gained by people actually implementing STAC. The core spec is designed to be as flexible as possible, so +that it is not too rigid and unable to handle unanticipated needs. But we recommend following as many of the best practices as is +feasible, as it will help ensure various STAC tools work much better. The examples in this folder don't align with all the best +practices, mostly because they are meant to demonstrate things as tersely as possible, and also because they live directly inside +a github repository. As many people will look at these examples and take them as 'how things should be' we felt its important to +highlight where things here differ from the actual best practices. + +#### Catalog Layout + +Another important recommendations concerns the [layout of STAC catalogs](../best-practices.md#catalog-layout). This is important +for tools to be able to expect a certain layout, and most tools will follow the described layout. The simple collection that consists +of the collection.json and its 3 linked items violates this. This is done to be able to show item examples directly in the root of +the 'examples' folder, so people don't have to dig deep into folders to get a quick example. But a proper catalog layout would +put the items in sub-directories, along with their assets. diff --git a/examples/catalog.json b/examples/catalog.json new file mode 100644 index 000000000..9e407deb1 --- /dev/null +++ b/examples/catalog.json @@ -0,0 +1,29 @@ +{ + "id": "examples", + "stac_version": "1.0.0-beta.2", + "description": "This catalog is a simple demonstration of an example catalog that is used to organize a hierarchy of collections and their items.", + "links": [ + { + "rel": "root", + "href": "./catalog.json", + "type": "application/json" + }, + { + "rel": "child", + "href": "./extensions-collection/collection.json", + "type": "application/json", + "title": "Collection Demonstrating STAC Extensions" + }, + { + "rel": "child", + "href": "./collection-only/collection.json", + "type": "application/json", + "title": "Collection with no items (standalone)" + }, + { + "rel": "self", + "href": "https://raw.githubusercontent.com/radiantearth/stac-spec/v1.0.0-RC.1/examples/catalog.json", + "type": "application/json" + } + ] +} \ No newline at end of file diff --git a/collection-spec/examples/sentinel2.json b/examples/collection-only/collection.json similarity index 94% rename from collection-spec/examples/sentinel2.json rename to examples/collection-only/collection.json index 39c7a39ef..b922cbc7f 100644 --- a/collection-spec/examples/sentinel2.json +++ b/examples/collection-only/collection.json @@ -1,7 +1,7 @@ { "stac_version": "1.0.0-beta.2", "stac_extensions": [], - "id": "COPERNICUS/S2", + "id": "sentinel-2", "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", @@ -199,17 +199,13 @@ ] }, "links": [ - { - "rel": "self", - "href": "https://storage.cloud.google.com/earthengine-test/catalog/COPERNICUS_S2.json" - }, { "rel": "parent", - "href": "https://storage.cloud.google.com/earthengine-test/catalog/catalog.json" + "href": "../catalog.json" }, { "rel": "root", - "href": "https://storage.cloud.google.com/earthengine-test/catalog/catalog.json" + "href": "../catalog.json" }, { "rel": "license", @@ -217,4 +213,4 @@ "title": "Legal notice on the use of Copernicus Sentinel Data and Service Information" } ] -} +} \ No newline at end of file diff --git a/examples/collection.json b/examples/collection.json new file mode 100644 index 000000000..55890afab --- /dev/null +++ b/examples/collection.json @@ -0,0 +1,92 @@ +{ + "id": "simple-collection", + "stac_version": "1.0.0-beta.2", + "description": "A simple collection demonstrating core catalog fields with links to a couple of items", + "title": "Simple Example Collection", + "providers": [ + { + "name": "Remote Data, Inc", + "description": "Producers of awesome spatiotemporal assets", + "roles": [ + "producer", + "processor" + ], + "url": "http://remotedata.io" + } + ], + "extent": { + "spatial": { + "bbox": [ + [ + 172.911, + 1.343, + 172.955, + 1.3691 + ] + ] + }, + "temporal": { + "interval": [ + [ + "2020-12-11T09:06:43.312000Z", + "2020-12-14T18:02:31.437000Z" + ] + ] + } + }, + "license": "CC-BY-4.0", + "summaries": { + "platform": [ + "cool_sat2", + "cool_sat1" + ], + "constellation": [ + "ion" + ], + "instruments": [ + "cool_sensor_v1" + ], + "gsd": { + "minimum": 0.512, + "maximum": 0.7 + }, + "view:off_nadir": { + "minimum": 0, + "maximum": 15 + }, + "view:sun_elevation": { + "minimum": 6.78, + "maximum": 40 + } + }, + "links": [ + { + "rel": "root", + "href": "./collection.json", + "type": "application/json" + }, + { + "rel": "item", + "href": "./simple-item.json", + "type": "application/geo+json", + "title": "Simple Item" + }, + { + "rel": "item", + "href": "./core-item.json", + "type": "application/geo+json", + "title": "Core Item" + }, + { + "rel": "item", + "href": "./extended-item.json", + "type": "application/geo+json", + "title": "Extended Item" + }, + { + "rel": "self", + "href": "https://raw.githubusercontent.com/radiantearth/stac-spec/v1.0.0-RC.1/examples/collection.json", + "type": "application/json" + } + ] +} \ No newline at end of file diff --git a/item-spec/examples/sample-full.json b/examples/collectionless-item.json similarity index 73% rename from item-spec/examples/sample-full.json rename to examples/collectionless-item.json index f7f2f59ad..8b2e3aa09 100644 --- a/item-spec/examples/sample-full.json +++ b/examples/collectionless-item.json @@ -5,7 +5,7 @@ "view" ], "type": "Feature", - "id": "CS3-20160503_132131_05", + "id": "CS3-20160503_132131_08", "bbox": [ -122.59750209, 37.48803556, @@ -40,25 +40,26 @@ ] }, "properties": { - "datetime": "2016-05-03T13:22:30Z", - "title": "A CS3 item", - "license": "PDDL-1.0", + "title": "Full Item", + "description": "A sample STAC Item demonstrates an Item that does not have a collection, which is not recommended, but allowed by the spec.", + "datetime": null, + "start_datetime": "2016-05-03T13:22:30Z", + "end_datetime": "2016-05-03T13:27:30Z", + "created": "2016-05-04T00:00:01Z", + "updated": "2017-01-01T00:30:55Z", + "license": "various", "providers": [ { - "name": "CoolSat", + "name": "Remote Data, Inc", + "description": "Producers of awesome spatiotemporal assets", "roles": [ "producer", - "licensor" + "processor" ], - "url": "https://cool-sat.com/" + "url": "http://remotedata.it" } ], - "created": "2016-05-04T00:00:01Z", - "updated": "2017-01-01T00:30:55Z", - "view:sun_azimuth": 168.7, - "eo:cloud_cover": 0.12, - "view:off_nadir": 1.4, - "platform": "coolsat2", + "platform": "cool_sat2", "instruments": [ "cool_sensor_v1" ], @@ -73,25 +74,30 @@ "collection": "CS3", "links": [ { - "rel": "self", - "href": "http://cool-sat.com/catalog/CS3-20160503_132130_04/CS3-20160503_132130_04.json" + "rel": "collection", + "href": "./collection.json", + "type": "application/json", + "title": "Simple Example Collection" }, { "rel": "root", - "href": "http://cool-sat.com/catalog/catalog.json" + "href": "./collection.json", + "type": "application/json" }, { - "rel": "parent", - "href": "http://cool-sat.com/catalog/CS3-20160503_132130_04/catalog.json" - }, - { - "rel": "collection", - "href": "http://cool-sat.com/catalog/CS3-20160503_132130_04/catalog.json" + "rel": "root", + "href": "./collection.json", + "type": "application/json" }, { "rel": "alternate", "type": "text/html", "href": "http://cool-sat.com/catalog/CS3-20160503_132130_04/CS3-20160503_132130_04.html" + }, + { + "rel": "license", + "type": "text/html", + "href": "http://remotedata.io/license.html" } ], "assets": { diff --git a/examples/core-item.json b/examples/core-item.json new file mode 100644 index 000000000..3004df37d --- /dev/null +++ b/examples/core-item.json @@ -0,0 +1,117 @@ +{ + "stac_version": "1.0.0-beta.2", + "stac_extensions": [], + "type": "Feature", + "id": "20201211_223832_CS2", + "bbox": [ + 172.91173669923782, + 1.3438851951615003, + 172.95469614953714, + 1.3690476620161975 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 172.91173669923782, + 1.3438851951615003 + ], + [ + 172.95469614953714, + 1.3438851951615003 + ], + [ + 172.95469614953714, + 1.3690476620161975 + ], + [ + 172.91173669923782, + 1.3690476620161975 + ], + [ + 172.91173669923782, + 1.3438851951615003 + ] + ] + ] + }, + "properties": { + "title": "Core Item", + "description": "A sample STAC Item that includes examples of all common metadata", + "datetime": null, + "start_datetime": "2020-12-11T22:38:32.125Z", + "end_datetime": "2020-12-11T22:38:32.327Z", + "created": "2020-12-12T01:48:13.725Z", + "updated": "2020-12-12T01:48:13.725Z", + "platform": "cool_sat2", + "instruments": [ + "cool_sensor_v1" + ], + "constellation": "ion", + "mission": "collection 5624", + "gsd": 0.512 + }, + "collection": "simple-collection", + "links": [ + { + "rel": "collection", + "href": "./collection.json", + "type": "application/json", + "title": "Simple Example Collection" + }, + { + "rel": "root", + "href": "./collection.json", + "type": "application/json" + }, + { + "rel": "alternate", + "type": "text/html", + "href": "http://remotedata.io/catalog/20201211_223832_CS2/index.html" + } + ], + "assets": { + "analytic": { + "href": "https://storage.googleapis.com/open-cogs/stac-examples/20201211_223832_CS2_analytic.tif", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "title": "4-Band Analytic", + "roles": [ + "data" + ] + }, + "thumbnail": { + "href": "https://storage.googleapis.com/open-cogs/stac-examples/20201211_223832_CS2.jpg", + "title": "Thumbnail", + "type": "image/png", + "roles": [ + "thumbnail" + ] + }, + "visual": { + "href": "https://storage.googleapis.com/open-cogs/stac-examples/20201211_223832_CS2.tif", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "title": "3-Band Visual", + "roles": [ + "visual" + ] + }, + "udm": { + "href": "https://storage.googleapis.com/open-cogs/stac-examples/20201211_223832_CS2_analytic_udm.tif", + "title": "Unusable Data Mask", + "type": "image/tiff; application=geotiff;" + }, + "json-metadata": { + "href": "http://remotedata.io/catalog/20201211_223832_CS2/extended-metadata.json", + "title": "Extended Metadata", + "type": "application/json", + "roles": [ + "metadata" + ] + }, + "ephemeris": { + "href": "http://cool-sat.com/catalog/20201211_223832_CS2/20201211_223832_CS2.EPH", + "title": "Satellite Ephemeris Metadata" + } + } +} \ No newline at end of file diff --git a/examples/extended-item.json b/examples/extended-item.json new file mode 100644 index 000000000..eddee54f8 --- /dev/null +++ b/examples/extended-item.json @@ -0,0 +1,191 @@ +{ + "stac_version": "1.0.0-beta.2", + "stac_extensions": [ + "eo", + "projection", + "sat", + "view" + ], + "type": "Feature", + "id": "20201211_223832_CS2", + "bbox": [ + 172.91173669923782, + 1.3438851951615003, + 172.95469614953714, + 1.3690476620161975 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 172.91173669923782, + 1.3438851951615003 + ], + [ + 172.95469614953714, + 1.3438851951615003 + ], + [ + 172.95469614953714, + 1.3690476620161975 + ], + [ + 172.91173669923782, + 1.3690476620161975 + ], + [ + 172.91173669923782, + 1.3438851951615003 + ] + ] + ] + }, + "properties": { + "title": "Extended Item", + "description": "A sample STAC Item that includes a variety of examples from the stable extensions", + "datetime": "2020-12-11T22:38:32.125Z", + "created": "2020-12-12T01:48:13.725Z", + "updated": "2020-12-12T01:48:13.725Z", + "platform": "cool_sat2", + "instruments": [ + "cool_sensor_v1" + ], + "gsd": 0.66, + "eo:cloud_cover": 1.2, + "proj:epsg": 32659, + "proj:shape": [ + 5558, + 9559 + ], + "proj:transform": [ + 0.5, + 0, + 712710, + 0, + -0.5, + 151406, + 0, + 0, + 1 + ], + "sat:orbit_state": "ascending", + "sat:relative_orbit": 34523, + "view:sun_elevation": 54.9, + "view:off_nadir": 3.8, + "view:sun_azimuth": 135.7, + "rd:type": "scene", + "rd:anomalous_pixels": 0.14, + "rd:earth_sun_distance": 1.014156, + "rd:sat_id": "cool_sat2", + "rd:product_level": "LV3A" + }, + "collection": "simple-collection", + "links": [ + { + "rel": "collection", + "href": "./collection.json", + "type": "application/json", + "title": "Simple Example Collection" + }, + { + "rel": "root", + "href": "./collection.json", + "type": "application/json" + }, + { + "rel": "alternate", + "type": "text/html", + "href": "http://remotedata.io/catalog/20201211_223832_CS2/index.html" + } + ], + "assets": { + "analytic": { + "href": "https://storage.googleapis.com/open-cogs/stac-examples/20201211_223832_CS2_analytic.tif", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "title": "4-Band Analytic", + "roles": [ + "data" + ], + "eo:bands": [ + { + "name": "band1", + "common_name": "blue", + "center_wavelength": 470, + "full_width_half_max": 70 + }, + { + "name": "band2", + "common_name": "green", + "center_wavelength": 560, + "full_width_half_max": 80 + }, + { + "name": "band3", + "common_name": "red", + "center_wavelength": 645, + "full_width_half_max": 90 + }, + { + "name": "band4", + "common_name": "nir", + "center_wavelength": 800, + "full_width_half_max": 152 + } + ] + }, + "thumbnail": { + "href": "https://storage.googleapis.com/open-cogs/stac-examples/20201211_223832_CS2.jpg", + "title": "Thumbnail", + "type": "image/png", + "roles": [ + "thumbnail" + ] + }, + "visual": { + "href": "https://storage.googleapis.com/open-cogs/stac-examples/20201211_223832_CS2.tif", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "title": "3-Band Visual", + "roles": [ + "visual" + ], + "eo:bands": [ + { + "name": "band3", + "common_name": "red", + "center_wavelength": 645, + "full_width_half_max": 90 + }, + { + "name": "band2", + "common_name": "green", + "center_wavelength": 560, + "full_width_half_max": 80 + }, + { + "name": "band1", + "common_name": "blue", + "center_wavelength": 470, + "full_width_half_max": 70 + } + ] + }, + "udm": { + "href": "https://storage.googleapis.com/open-cogs/stac-examples/20201211_223832_CS2_analytic_udm.tif", + "title": "Unusable Data Mask", + "type": "image/tiff; application=geotiff;" + }, + "json-metadata": { + "href": "http://remotedata.io/catalog/20201211_223832_CS2/extended-metadata.json", + "title": "Extended Metadata", + "type": "application/json", + "roles": [ + "metadata" + ] + }, + "ephemeris": { + "href": "http://cool-sat.com/catalog/20201211_223832_CS2/20201211_223832_CS2.EPH", + "title": "Satellite Ephemeris Metadata" + } + } +} \ No newline at end of file diff --git a/examples/extensions-collection/collection.json b/examples/extensions-collection/collection.json new file mode 100644 index 000000000..83c8d1319 --- /dev/null +++ b/examples/extensions-collection/collection.json @@ -0,0 +1,65 @@ +{ + "id": "extensions-collection", + "stac_version": "1.0.0-beta.2", + "description": "A heterogenous collection containing deeper examples of various extensions", + "links": [ + { + "rel": "root", + "href": "../catalog.json", + "type": "application/json" + }, + { + "rel": "item", + "href": "./proj-example/proj-example.json", + "title": "Proj extension example" + }, + { + "rel": "license", + "href": "https://remotedata.io/license.html", + "title": "Remote Data License Terms" + }, + { + "rel": "parent", + "href": "../catalog.json", + "type": "application/json" + } + ], + "stac_extensions": [], + "title": "Collection of Extension Items", + "keywords": [ + "examples", + "sar", + "projection" + ], + "providers": [ + { + "name": "Remote Data, Inc.", + "roles": [ + "producer", + "licensor" + ], + "url": "https://remotedata.io" + } + ], + "extent": { + "spatial": { + "bbox": [ + [ + -180, + -56, + 180, + 83 + ] + ] + }, + "temporal": { + "interval": [ + [ + "2009-05-20T02:40:01.042784Z", + "2018-11-03T23:59:55.112875Z" + ] + ] + } + }, + "license": "PDDL-1.0" +} \ No newline at end of file diff --git a/examples/extensions-collection/proj-example/proj-example.json b/examples/extensions-collection/proj-example/proj-example.json new file mode 100644 index 000000000..3054d0bda --- /dev/null +++ b/examples/extensions-collection/proj-example/proj-example.json @@ -0,0 +1,278 @@ +{ + "type": "Feature", + "stac_version": "1.0.0-beta.2", + "id": "proj-example", + "properties": { + "datetime": "2018-10-01T01:08:32.033000Z", + "proj:epsg": 32614, + "proj:wkt2": "PROJCS[\"WGS 84 / UTM zone 14N\",GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\",-99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_northing\",0],AUTHORITY[\"EPSG\",\"32614\"],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]]", + "proj:projjson": { + "$schema": "https://proj.org/schemas/v0.2/projjson.schema.json", + "type": "ProjectedCRS", + "name": "WGS 84 / UTM zone 14N", + "base_crs": { + "name": "WGS 84", + "datum": { + "type": "GeodeticReferenceFrame", + "name": "World Geodetic System 1984", + "ellipsoid": { + "name": "WGS 84", + "semi_major_axis": 6378137, + "inverse_flattening": 298.257223563 + } + }, + "coordinate_system": { + "subtype": "ellipsoidal", + "axis": [ + { + "name": "Geodetic latitude", + "abbreviation": "Lat", + "direction": "north", + "unit": "degree" + }, + { + "name": "Geodetic longitude", + "abbreviation": "Lon", + "direction": "east", + "unit": "degree" + } + ] + }, + "id": { + "authority": "EPSG", + "code": 4326 + } + }, + "conversion": { + "name": "UTM zone 14N", + "method": { + "name": "Transverse Mercator", + "id": { + "authority": "EPSG", + "code": 9807 + } + }, + "parameters": [ + { + "name": "Latitude of natural origin", + "value": 0, + "unit": "degree", + "id": { + "authority": "EPSG", + "code": 8801 + } + }, + { + "name": "Longitude of natural origin", + "value": -99, + "unit": "degree", + "id": { + "authority": "EPSG", + "code": 8802 + } + }, + { + "name": "Scale factor at natural origin", + "value": 0.9996, + "unit": "unity", + "id": { + "authority": "EPSG", + "code": 8805 + } + }, + { + "name": "False easting", + "value": 500000, + "unit": "metre", + "id": { + "authority": "EPSG", + "code": 8806 + } + }, + { + "name": "False northing", + "value": 0, + "unit": "metre", + "id": { + "authority": "EPSG", + "code": 8807 + } + } + ] + }, + "coordinate_system": { + "subtype": "Cartesian", + "axis": [ + { + "name": "Easting", + "abbreviation": "E", + "direction": "east", + "unit": "metre" + }, + { + "name": "Northing", + "abbreviation": "N", + "direction": "north", + "unit": "metre" + } + ] + }, + "area": "World - N hemisphere - 102\u00b0W to 96\u00b0W - by country", + "bbox": { + "south_latitude": 0, + "west_longitude": -102, + "north_latitude": 84, + "east_longitude": -96 + }, + "id": { + "authority": "EPSG", + "code": 32614 + } + }, + "proj:geometry": { + "coordinates": [ + [ + [ + 169200, + 3712800 + ], + [ + 403200, + 3712800 + ], + [ + 403200, + 3951000 + ], + [ + 169200, + 3951000 + ], + [ + 169200, + 3712800 + ] + ] + ], + "type": "Polygon" + }, + "proj:bbox": [ + 169200, + 3712800, + 403200, + 3951000 + ], + "proj:centroid": { + "lat": 34.595302781575604, + "lon": -101.34448382627504 + }, + "proj:shape": [ + 8391, + 8311 + ], + "proj:transform": [ + 30, + 0, + 224985, + 0, + -30, + 6790215, + 0, + 0, + 1 + ] + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 152.52758, + 60.63437 + ], + [ + 149.1755, + 61.19016 + ], + [ + 148.13933, + 59.51584 + ], + [ + 151.33786, + 58.97792 + ], + [ + 152.52758, + 60.63437 + ] + ] + ] + }, + "links": [ + { + "rel": "root", + "href": "../../catalog.json", + "type": "application/json" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json" + } + ], + "assets": { + "B1": { + "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/107/018/LC08_L1TP_107018_20181001_20181001_01_RT/LC08_L1TP_107018_20181001_20181001_01_RT_B1.TIF", + "type": "image/tiff; application=geotiff", + "title": "Band 1 (coastal)", + "eo:bands": [ + { + "name": "B1", + "common_name": "coastal", + "center_wavelength": 0.44, + "full_width_half_max": 0.02 + } + ] + }, + "B8": { + "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/107/018/LC08_L1TP_107018_20181001_20181001_01_RT/LC08_L1TP_107018_20181001_20181001_01_RT_B8.TIF", + "type": "image/tiff; application=geotiff", + "title": "Band 8 (panchromatic)", + "eo:bands": [ + { + "name": "B8", + "common_name": "panchromatic", + "center_wavelength": 0.59, + "full_width_half_max": 0.18 + } + ], + "proj:shape": [ + 16781, + 16621 + ], + "proj:transform": [ + 15, + 0, + 224992.5, + 0, + -15, + 6790207.5, + 0, + 0, + 1 + ] + } + }, + "bbox": [ + 148.13933, + 59.51584, + 152.52758, + 60.63437 + ], + "stac_extensions": [ + "eo", + "projection" + ], + "collection": "landsat-8-l1" +} \ No newline at end of file diff --git a/examples/simple-item.json b/examples/simple-item.json new file mode 100644 index 000000000..38921081d --- /dev/null +++ b/examples/simple-item.json @@ -0,0 +1,74 @@ +{ + "stac_version": "1.0.0-beta.2", + "stac_extensions": [], + "type": "Feature", + "id": "20201211_223832_CS2", + "bbox": [ + 172.91173669923782, + 1.3438851951615003, + 172.95469614953714, + 1.3690476620161975 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 172.91173669923782, + 1.3438851951615003 + ], + [ + 172.95469614953714, + 1.3438851951615003 + ], + [ + 172.95469614953714, + 1.3690476620161975 + ], + [ + 172.91173669923782, + 1.3690476620161975 + ], + [ + 172.91173669923782, + 1.3438851951615003 + ] + ] + ] + }, + "properties": { + "datetime": "2020-12-11T22:38:32.125000Z", + "collection": "simple-collection" + }, + "links": [ + { + "rel": "collection", + "href": "./collection.json", + "type": "application/json", + "title": "Simple Example Collection" + }, + { + "rel": "root", + "href": "./collection.json", + "type": "application/json" + } + ], + "assets": { + "visual": { + "href": "https://storage.googleapis.com/open-cogs/stac-examples/20201211_223832_CS2.tif", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "title": "3-Band Visual", + "roles": [ + "visual" + ] + }, + "thumbnail": { + "href": "https://storage.googleapis.com/open-cogs/stac-examples/20201211_223832_CS2.jpg", + "title": "Thumbnail", + "type": "image/jpeg", + "roles": [ + "thumbnail" + ] + } + } +} \ No newline at end of file diff --git a/extensions/eo/README.md b/extensions/eo/README.md index 3b5530d41..d2d4a99c2 100644 --- a/extensions/eo/README.md +++ b/extensions/eo/README.md @@ -23,8 +23,7 @@ If the data has been collected by a satellite, it is strongly recommended to use For defining view geometry of data, it is strongly recommended to use the [`view` extension](../view/README.md). - Examples: - - [Landsat 8 with bands in assets](examples/example-landsat8.json) - - [Example with bands in Item properties](../../item-spec/examples/sample-full.json) + - [Example using bands and cloud_cover](../../examples/extended-item.json) - [Landsat 8 with bands in Item Asset Definition and Collection Summaries](../item-assets/examples/example-landsat8.json) - [JSON Schema](json-schema/schema.json) diff --git a/extensions/projection/README.md b/extensions/projection/README.md index 44bf4f131..8ac5bffa2 100644 --- a/extensions/projection/README.md +++ b/extensions/projection/README.md @@ -19,7 +19,7 @@ fields should be specified at the Item Asset level, while those Item Asset objec ## Examples -- [Example Landsat8](examples/example-landsat8.json) +- [Example Landsat8](../../examples/extensions-collection/proj-example/proj-example.json) ## Schema diff --git a/extensions/projection/examples/example-landsat8.json b/extensions/projection/examples/example-landsat8.json deleted file mode 100644 index ea99f9d56..000000000 --- a/extensions/projection/examples/example-landsat8.json +++ /dev/null @@ -1,272 +0,0 @@ -{ - "stac_version": "1.0.0-beta.2", - "stac_extensions": [ - "eo", - "projection" - ], - "id": "LC81530252014153LGN00", - "type": "Feature", - "collection": "landsat-8-l1", - "bbox": [ - 148.13933, - 59.51584, - 152.52758, - 60.63437 - ], - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 152.52758, - 60.63437 - ], - [ - 149.1755, - 61.19016 - ], - [ - 148.13933, - 59.51584 - ], - [ - 151.33786, - 58.97792 - ], - [ - 152.52758, - 60.63437 - ] - ] - ] - }, - "assets": { - "B1": { - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/107/018/LC08_L1TP_107018_20181001_20181001_01_RT/LC08_L1TP_107018_20181001_20181001_01_RT_B1.TIF", - "type": "image/tiff; application=geotiff", - "eo:bands": [ - { - "name": "B1", - "common_name": "coastal", - "center_wavelength": 0.44, - "full_width_half_max": 0.02 - } - ], - "title": "Band 1 (coastal)" - }, - "B8": { - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/107/018/LC08_L1TP_107018_20181001_20181001_01_RT/LC08_L1TP_107018_20181001_20181001_01_RT_B8.TIF", - "type": "image/tiff; application=geotiff", - "eo:bands": [ - { - "name": "B8", - "common_name": "panchromatic", - "center_wavelength": 0.59, - "full_width_half_max": 0.18 - } - ], - "title": "Band 8 (panchromatic)", - "proj:shape": [ - 16781, - 16621 - ], - "proj:transform": [ - 15, - 0, - 224992.5, - 0, - -15, - 6790207.5, - 0, - 0, - 1 - ] - } - }, - "properties": { - "datetime": "2018-10-01T01:08:32.033Z", - "proj:epsg": 32614, - "proj:wkt2": "PROJCS[\"WGS 84 / UTM zone 14N\",GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\",-99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_northing\",0],AUTHORITY[\"EPSG\",\"32614\"],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]]", - "proj:projjson": { - "$schema": "https://proj.org/schemas/v0.2/projjson.schema.json", - "type": "ProjectedCRS", - "name": "WGS 84 / UTM zone 14N", - "base_crs": { - "name": "WGS 84", - "datum": { - "type": "GeodeticReferenceFrame", - "name": "World Geodetic System 1984", - "ellipsoid": { - "name": "WGS 84", - "semi_major_axis": 6378137, - "inverse_flattening": 298.257223563 - } - }, - "coordinate_system": { - "subtype": "ellipsoidal", - "axis": [ - { - "name": "Geodetic latitude", - "abbreviation": "Lat", - "direction": "north", - "unit": "degree" - }, - { - "name": "Geodetic longitude", - "abbreviation": "Lon", - "direction": "east", - "unit": "degree" - } - ] - }, - "id": { - "authority": "EPSG", - "code": 4326 - } - }, - "conversion": { - "name": "UTM zone 14N", - "method": { - "name": "Transverse Mercator", - "id": { - "authority": "EPSG", - "code": 9807 - } - }, - "parameters": [ - { - "name": "Latitude of natural origin", - "value": 0, - "unit": "degree", - "id": { - "authority": "EPSG", - "code": 8801 - } - }, - { - "name": "Longitude of natural origin", - "value": -99, - "unit": "degree", - "id": { - "authority": "EPSG", - "code": 8802 - } - }, - { - "name": "Scale factor at natural origin", - "value": 0.9996, - "unit": "unity", - "id": { - "authority": "EPSG", - "code": 8805 - } - }, - { - "name": "False easting", - "value": 500000, - "unit": "metre", - "id": { - "authority": "EPSG", - "code": 8806 - } - }, - { - "name": "False northing", - "value": 0, - "unit": "metre", - "id": { - "authority": "EPSG", - "code": 8807 - } - } - ] - }, - "coordinate_system": { - "subtype": "Cartesian", - "axis": [ - { - "name": "Easting", - "abbreviation": "E", - "direction": "east", - "unit": "metre" - }, - { - "name": "Northing", - "abbreviation": "N", - "direction": "north", - "unit": "metre" - } - ] - }, - "area": "World - N hemisphere - 102°W to 96°W - by country", - "bbox": { - "south_latitude": 0, - "west_longitude": -102, - "north_latitude": 84, - "east_longitude": -96 - }, - "id": { - "authority": "EPSG", - "code": 32614 - } - }, - "proj:geometry": { - "coordinates": [ - [ - [ - 169200, - 3712800 - ], - [ - 403200, - 3712800 - ], - [ - 403200, - 3951000 - ], - [ - 169200, - 3951000 - ], - [ - 169200, - 3712800 - ] - ] - ], - "type": "Polygon" - }, - "proj:bbox": [ - 169200, - 3712800, - 403200, - 3951000 - ], - "proj:centroid": { - "lat": 34.595302781575604, - "lon": -101.34448382627504 - }, - "proj:shape": [ - 8391, - 8311 - ], - "proj:transform": [ - 30, - 0, - 224985, - 0, - -30, - 6790215, - 0, - 0, - 1 - ] - }, - "links": [ - { - "rel": "self", - "href": "https://odu9mlf7d6.execute-api.us-east-1.amazonaws.com/stage/search?id=LC08_L1TP_107018_20181001_20181001_01_RT" - } - ] -} diff --git a/extensions/sar/README.md b/extensions/sar/README.md index 9db95d8e5..f4e02a9ad 100644 --- a/extensions/sar/README.md +++ b/extensions/sar/README.md @@ -14,7 +14,8 @@ If the data has been collected by a satellite, it is strongly recommended to use To describe frame start and end times, use the [Date and Time Range fields](../../item-spec/common-metadata.md#date-and-time-range). -- [Examples](examples/) (for example [Sentinel-1](examples/sentinel1.json) and [Envisat](examples/envisat.json)) +- Examples: [Envisat](examples/sar-envisat-example.json) and + [Sentinel-1](examples/sentinel-1-example.json )) - [JSON Schema](json-schema/schema.json) ## Item Properties or Item Asset fields diff --git a/extensions/sar/examples/envisat.json b/extensions/sar/examples/sar-envisat-example.json similarity index 77% rename from extensions/sar/examples/envisat.json rename to extensions/sar/examples/sar-envisat-example.json index a679d803f..0404b39a6 100644 --- a/extensions/sar/examples/envisat.json +++ b/extensions/sar/examples/sar-envisat-example.json @@ -1,17 +1,31 @@ { - "stac_version": "1.0.0-beta.2", - "stac_extensions": [ - "sat", - "sar" - ], - "id": "ASA_GM1_1PNPDE20090520_023957_000001022079_00118_37747_3607", "type": "Feature", - "bbox": [ - 64.302468, - 114.587673, - 71.179088, - 128.611298 - ], + "stac_version": "1.0.0-beta.2", + "id": "sar-envisat-example", + "properties": { + "datetime": "2009-05-20T02:40:46.763325Z", + "start_datetime": "2009-05-20T02:40:01.042784Z", + "end_datetime": "2009-05-20T02:41:31.483865Z", + "platform": "envisat", + "constellation": "envisat", + "instruments": [ + "asar" + ], + "sat:orbit_state": "descending", + "sar:instrument_mode": "GM", + "sar:polarizations": [ + "HH" + ], + "sar:resolution_range": 1000, + "sar:resolution_azimuth": 1000, + "sar:pixel_spacing_range": 500, + "sar:pixel_spacing_azimuth": 500, + "sar:looks_range": 3, + "sar:looks_azimuth": 4, + "sar:frequency_band": "C", + "sar:center_frequency": 5.331, + "sar:product_type": "GM1_1P" + }, "geometry": { "type": "Polygon", "coordinates": [ @@ -39,33 +53,33 @@ ] ] }, - "properties": { - "datetime": "2009-05-20T02:40:46.763325Z", - "start_datetime": "2009-05-20T02:40:01.042784Z", - "end_datetime": "2009-05-20T02:41:31.483865Z", - "platform": "envisat", - "constellation": "envisat", - "instruments": [ - "asar" - ], - "sat:orbit_state": "descending", - "sar:instrument_mode": "GM", - "sar:polarizations": [ - "HH" - ], - "sar:resolution_range": 1000, - "sar:resolution_azimuth": 1000, - "sar:pixel_spacing_range": 500, - "sar:pixel_spacing_azimuth": 500, - "sar:looks_range": 3, - "sar:looks_azimuth": 4, - "sar:frequency_band": "C", - "sar:center_frequency": 5.331, - "sar:product_type": "GM1_1P" - }, + "links": [ + { + "rel": "about", + "href": "https://earth.esa.int/pub/ESA_DOC/ENVISAT/ASAR/asar.ProductHandbook.2_2.pdf", + "type": "application/pdf", + "title": "ASAR Product Handbook" + }, + { + "rel": "about", + "href": "https://earth.esa.int/web/sppa/mission-performance/esa-missions/envisat/asar/products-and-algorithms", + "type": "text/html", + "title": "ASAR Product and Algorithms" + }, + { + "rel": "root", + "href": "../../catalog.json", + "type": "application/json" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json" + } + ], "assets": { "product": { - "href": "ASA_GM1_1PNPDE20090520_023957_000001022079_00118_37747_3607.n1.gz", + "href": "../../../stac-spec/examples/collection-example-1/ASA_GM1_1PNPDE20090520_023957_000001022079_00118_37747_3607.n1.gz", "type": "application/gzip", "description": "Amplitude and Intensity. Intensity equals the square of the amplitude band", "sar:polarizations": [ @@ -74,18 +88,14 @@ ] } }, - "links": [ - { - "rel": "about", - "href": "https://earth.esa.int/pub/ESA_DOC/ENVISAT/ASAR/asar.ProductHandbook.2_2.pdf", - "title": "ASAR Product Handbook", - "type": "application/pdf" - }, - { - "rel": "about", - "href": "https://earth.esa.int/web/sppa/mission-performance/esa-missions/envisat/asar/products-and-algorithms", - "title": "ASAR Product and Algorithms", - "type": "text/html" - } + "bbox": [ + 64.302468, + 114.587673, + 71.179088, + 128.611298 + ], + "stac_extensions": [ + "sat", + "sar" ] -} +} \ No newline at end of file diff --git a/extensions/sar/examples/sentinel1.json b/extensions/sar/examples/sentinel-1-example.json similarity index 73% rename from extensions/sar/examples/sentinel1.json rename to extensions/sar/examples/sentinel-1-example.json index 501eb7ce7..8261984b8 100644 --- a/extensions/sar/examples/sentinel1.json +++ b/extensions/sar/examples/sentinel-1-example.json @@ -1,18 +1,38 @@ { + "type": "Feature", "stac_version": "1.0.0-beta.2", "stac_extensions": [ "file", "sar", "sat" ], - "id": "S1A_EW_GRDM_1SSH_20181103T235855_20181103T235955_024430_02AD5D_5616", - "type": "Feature", - "bbox": [ - -70.275032, - -64.72924, - -65.087479, - -51.105831 - ], + "id": "sentinel-1-example", + "properties": { + "datetime": "2018-11-03T23:58:55.617217Z", + "start_datetime": "2018-11-03T23:58:55.121559Z", + "end_datetime": "2018-11-03T23:59:55.112875Z", + "platform": "sentinel-1a", + "constellation": "sentinel-1", + "instruments": [ + "c-sar" + ], + "sat:orbit_state": "ascending", + "sat:relative_orbit": 33, + "sar:instrument_mode": "EW", + "sar:polarizations": [ + "HH" + ], + "sar:resolution_range": 50, + "sar:resolution_azimuth": 50, + "sar:pixel_spacing_range": 25, + "sar:pixel_spacing_azimuth": 25, + "sar:looks_range": 3, + "sar:looks_azimuth": 1, + "sar:looks_equivalent_number": 2.7, + "sar:frequency_band": "C", + "sar:center_frequency": 5.405, + "sar:product_type": "GRD" + }, "geometry": { "type": "Polygon", "coordinates": [ @@ -40,79 +60,57 @@ ] ] }, - "properties": { - "datetime": "2018-11-03T23:58:55.617217Z", - "start_datetime": "2018-11-03T23:58:55.121559Z", - "end_datetime": "2018-11-03T23:59:55.112875Z", - "platform": "sentinel-1a", - "constellation": "sentinel-1", - "instruments": [ - "c-sar" - ], - "sat:orbit_state": "ascending", - "sat:relative_orbit": 33, - "sar:instrument_mode": "EW", - "sar:polarizations": [ - "HH" - ], - "sar:resolution_range": 50, - "sar:resolution_azimuth": 50, - "sar:pixel_spacing_range": 25, - "sar:pixel_spacing_azimuth": 25, - "sar:looks_range": 3, - "sar:looks_azimuth": 1, - "sar:looks_equivalent_number": 2.7, - "sar:frequency_band": "C", - "sar:center_frequency": 5.405, - "sar:product_type": "GRD" - }, + "links": [ + { + "rel": "root", + "href": "../../catalog.json", + "type": "application/json" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json" + } + ], "assets": { "noises": { - "href": "./annotation/calibration/noise-s1a-ew-grd-hh-20181103t235855-20181103t235955-024430-02ad5d-001.xml", - "title": "Calibration Schema", + "href": "https://example.com/collections/sentinel-1/items/annotation/calibration/noise-s1a-ew-grd-hh-20181103t235855-20181103t235955-024430-02ad5d-001.xml", "type": "text/xml", + "title": "Calibration Schema", "file:checksum": "90e40210a30d1711e81a4b11ef67b28744321659" }, "calibrations": { - "href": "./annotation/calibration/calibration-s1a-ew-grd-hh-20181103t235855-20181103t235955-024430-02ad5d-001.xml", - "title": "Noise Schema", + "href": "https://example.com/collections/sentinel-1/items/annotation/calibration/calibration-s1a-ew-grd-hh-20181103t235855-20181103t235955-024430-02ad5d-001.xml", "type": "text/xml", + "title": "Noise Schema", "file:checksum": "90e402104fc5351af67db0b8f1746efe421a05e4" }, "products": { - "href": "./annotation/s1a-ew-grd-hh-20181103t235855-20181103t235955-024430-02ad5d-001.xml", - "title": "Product Schema", + "href": "https://example.com/collections/sentinel-1/items/annotation/s1a-ew-grd-hh-20181103t235855-20181103t235955-024430-02ad5d-001.xml", "type": "text/xml", + "title": "Product Schema", "file:checksum": "90e402107a7f2588a85362b9beea2a12d4514d45" }, "measurement": { - "href": "./measurement/s1a-ew-grd-hh-20181103t235855-20181103t235955-024430-02ad5d-001.tiff", - "title": "Measurements", + "href": "https://example.com/collections/sentinel-1/items/measurement/s1a-ew-grd-hh-20181103t235855-20181103t235955-024430-02ad5d-001.tiff", "type": "image/tiff", + "title": "Measurements", "sar:polarizations": [ "HH" ], "file:checksum": "90e40210163700a8a6501eccd00b6d3b44ddaed0" }, "thumbnail": { - "href": "./preview/quick-look.png", - "title": "Thumbnail", + "href": "https://example.com/collections/sentinel-1/items/preview/quick-look.png", "type": "image/png", + "title": "Thumbnail", "file:checksum": "90e40210f52acd32b09769d3b1871b420789456c" } }, - "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" - }, - { - "rel": "root", - "href": "https://example.com/collections" - } + "bbox": [ + -70.275032, + -64.72924, + -65.087479, + -51.105831 ] -} +} \ No newline at end of file diff --git a/item-spec/README.md b/item-spec/README.md index a56e801b8..b06e0ba62 100644 --- a/item-spec/README.md +++ b/item-spec/README.md @@ -14,10 +14,6 @@ See the [overview](../overview.md) document for more information on how all the **Common Metadata:** A set of commonly used metadata fields for STAC Items is listed in *[common-metadata.md](common-metadata.md)*. -**Examples:** For samples of how STAC Items can be implemented the *[examples/](examples/)* folder -contains a number of real world examples. See the [readme](examples/README.md) for additional -discussion of the examples. - **Schemas:** The schemas to validate the core Item definitions are found in the *[json-schema/](json-schema/)* folder. The *[item.json](json-schema/item.json)* validates items overall and the additional schemas validate the various groups of *[Common Metadata](common-metadata.md)*. diff --git a/item-spec/common-metadata.md b/item-spec/common-metadata.md index 0a0ae7357..960bb61c9 100644 --- a/item-spec/common-metadata.md +++ b/item-spec/common-metadata.md @@ -15,7 +15,7 @@ or [Collection Assets](../extensions/collection-assets/README.md). - [Provider Object](#provider-object) - [Instrument](#instrument) -Various *examples* are available in the folder [`examples`](examples/). +Various *examples* are available in the folder [`examples`](../examples/). *JSON Schemas* can be found in the folder [`json-schema`](json-schema/). By default, these fields are only included and validated against in the core [Item schema](json-schema/item.json). diff --git a/item-spec/examples/CBERS_4_MUX_20181029_177_106_L4.json b/item-spec/examples/CBERS_4_MUX_20181029_177_106_L4.json deleted file mode 100755 index aa9c54141..000000000 --- a/item-spec/examples/CBERS_4_MUX_20181029_177_106_L4.json +++ /dev/null @@ -1,102 +0,0 @@ -{ - "stac_version": "1.0.0-beta.2", - "stac_extensions": [ - "projection", - "view" - ], - "id": "CBERS_4_MUX_20181029_177_106_L4", - "type": "Feature", - "geometry": { - "type": "MultiPolygon", - "coordinates": [ - [ - [ - [ - -64.800142, - -5.815918 - ], - [ - -63.719133, - -5.979677 - ], - [ - -63.488049, - -4.915594 - ], - [ - -64.566931, - -4.752172 - ], - [ - -64.800142, - -5.815918 - ] - ] - ] - ] - }, - "bbox": [ - -64.803413, - -5.985958, - -63.485124, - -4.731829 - ], - "properties": { - "datetime": "2018-10-29T14:24:54Z", - "view:sun_azimuth": 111.113, - "view:sun_elevation": 65.8018, - "view:off_nadir": 0.00751271, - "proj:epsg": 32763, - "cbers:data_type": "L4", - "cbers:path": 177, - "cbers:row": 106 - }, - "collection": "CBERS_4_MUX", - "links": [ - { - "rel": "self", - "href": "https://cbers-stac-0-6.s3.amazonaws.com/CBERS4/MUX/177/106/CBERS_4_MUX_20181029_177_106_L4.json" - }, - { - "rel": "parent", - "href": "https://cbers-stac-0-6.s3.amazonaws.com/CBERS4/MUX/177/catalog.json" - }, - { - "rel": "collection", - "href": "https://cbers-stac-0-6.s3.amazonaws.com/collections/CBERS_4_MUX_collection.json" - } - ], - "assets": { - "thumbnail": { - "href": "https://s3.amazonaws.com/cbers-meta-pds/CBERS4/MUX/177/106/CBERS_4_MUX_20181029_177_106_L4/CBERS_4_MUX_20181029_177_106.jpg", - "type": "image/jpeg", - "roles": [ - "thumbnail" - ] - }, - "metadata": { - "href": "s3://cbers-pds/CBERS4/MUX/177/106/CBERS_4_MUX_20181029_177_106_L4/CBERS_4_MUX_20181029_177_106_L4_BAND6.xml", - "title": "INPE original metadata", - "type": "text/xml", - "roles": [ - "metadata" - ] - }, - "B5": { - "href": "s3://cbers-pds/CBERS4/MUX/177/106/CBERS_4_MUX_20181029_177_106_L4/CBERS_4_MUX_20181029_177_106_L4_BAND5.tif", - "type": "image/tiff; application=geotiff; profile=cloud-optimized" - }, - "B6": { - "href": "s3://cbers-pds/CBERS4/MUX/177/106/CBERS_4_MUX_20181029_177_106_L4/CBERS_4_MUX_20181029_177_106_L4_BAND6.tif", - "type": "image/tiff; application=geotiff; profile=cloud-optimized" - }, - "B7": { - "href": "s3://cbers-pds/CBERS4/MUX/177/106/CBERS_4_MUX_20181029_177_106_L4/CBERS_4_MUX_20181029_177_106_L4_BAND7.tif", - "type": "image/tiff; application=geotiff; profile=cloud-optimized" - }, - "B8": { - "href": "s3://cbers-pds/CBERS4/MUX/177/106/CBERS_4_MUX_20181029_177_106_L4/CBERS_4_MUX_20181029_177_106_L4_BAND8.tif", - "type": "image/tiff; application=geotiff; profile=cloud-optimized" - } - } -} \ No newline at end of file diff --git a/item-spec/examples/README.md b/item-spec/examples/README.md deleted file mode 100644 index c4e86271f..000000000 --- a/item-spec/examples/README.md +++ /dev/null @@ -1,68 +0,0 @@ -# STAC Item Examples - -## Overview - -This directory contains a number of samples and more 'real world' examples of how a STAC Item could be implemented. As of right -now none of these are actual production implementations - they are more adaptations of current catalogs to the STAC -specifications. In time these will evolve to be examples of truly real world implementations. - -This document also contains discussion of the various examples in this folder. - -## In this directory - -### Item Examples - -**[sample.json](sample.json)** is the most minimal possible compliant Item record. Most all data will -include additional fields, as STAC is designed to be a minimal common subset. But it is useful for showing exactly what is -required. - -**[sample-full.json](sample-full.json)** is a more realistic example, for a hypothetical analytic image -acquisition from a satellite company called 'cool sat'. It includes additional fields, including some from the Earth -Observation extension, as well as some vendor specific additions. It also links to a variety of assets that is typical for -satellite imagery, as most providers include a number of complementary files. - -**DigitalGlobe** The [DigitalGlobe sample](digitalglobe-sample.json) is taken from the proposed DigitalGlobe static catalog -[pull request](https://github.com/radiantearth/stac-spec/pull/33), with minor field updates to validate against the the -item specification. - -**Landsat8** The [Landsat8 sample](landsat8-sample.json) is meant to be an example of how an S3-based catalog like the -[Landsat on AWS](https://landsatonaws.com/) public data set could be a STAC static catalog. It includes the 'collection' -concept, which is explained more in the [/collection-spec/ folder](../../collection-spec/). - -**Planet** The [Planet sample](planet-sample.json) is an adaption of Planet's [Data API](https://www.planet.com/docs/reference/data-api/) -returned JSON, with minor tweaks to have it fit in to a STAC Item. - -**CBERS** The [CBERS sample](CBERS_4_MUX_20181029_177_106_L4.json) is copied from [CBERS static STAC catalog](https://cbers-stac-0-6.s3.amazonaws.com/catalog.json). - -## Example Discussion - -These examples demonstrate that there is a range of potential implementations of STAC Items. Most were made by adapting -the current implementations as minimally as possible. The hope is that there will emerge more consensus and best practices -on the things outside of the core fields, to increase interoperability. - -### Static Catalogs vs Catalog APIs - -The Planet example is likely the least 'static' of the examples, as it was taken from Planet's Data API and just added on a -few fields. DigitalGlobe's made a bit more changes to make it static, but still has that lineage. Landsat8 is -primarily made thinking about how they are laid out on Amazon Web Services. - -Catalog API's will tend to have more absolute links, while the static examples tend more towards relative links, representing -actual files that are next to them. Planet's API shows a set of 'activation' assets that present a workflow to enable the -data to be downloaded. This is not a desired end-state - ideally the data is more readily available in a Catalog API, or at least -has a better workflow - but it shows how the asset field can be adapted. - -### Asset definition - -Currently the additional metadata on assets is quite minimal - only a link is required. 'title' and 'type' are the only other specified -fields. - -### Permissions - -The Planet example has some small bits about 'permissions'. The DigitalGlobe catalog would have similar concerns. The core idea -would be that assets should provide links to the data, even if a user doesn't have permissions to actually access the data. - -### Prefixes - -The Landsat example shows an idea of using 'prefixes' like *eo:* or *l8:* to help differentiate metadata fields that -would be validated by different schemas. EO could be a shared earth observation schema. Using prefixes could also help point the -way towards JSON-LD type validation. diff --git a/item-spec/examples/datetimerange.json b/item-spec/examples/datetimerange.json deleted file mode 100644 index 915bfbcf3..000000000 --- a/item-spec/examples/datetimerange.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "stac_version": "1.0.0-beta.2", - "stac_extensions": [], - "type": "Feature", - "id": "half-moon-bay/video-2018-01-01-0001", - "bbox": [ - -122.44674682617188, - 37.45551035774642, - -122.41241455078125, - 37.47077095413427 - ], - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - -122.44674682617188, - 37.45551035774642 - ], - [ - -122.41241455078125, - 37.45551035774642 - ], - [ - -122.41241455078125, - 37.47077095413427 - ], - [ - -122.44674682617188, - 37.47077095413427 - ], - [ - -122.44674682617188, - 37.45551035774642 - ] - ] - ] - }, - "properties": { - "datetime": "2018-01-01T13:21:30Z", - "start_datetime": "2018-01-01T13:21:30Z", - "end_datetime": "2018-01-01T13:31:30Z" - }, - "links": [ - { - "rel": "self", - "href": "http://cool-drones.com/catalog/half-moon-bay/video-2018-01-01-0001.json" - } - ], - "assets": { - "video": { - "href": "http://cool-drones.com/catalog/half-moon-bay/video-2018-01-01-0001.mpeg", - "title": "10 minute drone video captured over Half Moon Bay, California, USA.", - "type": "video/mpeg" - }, - "thumbnail": { - "href": "http://cool-drones.com/catalog/half-moon-bay/video-2018-01-01-0001.jpg", - "type": "image/jpeg", - "title": "Thumbnail" - } - } -} diff --git a/item-spec/examples/digitalglobe-sample.json b/item-spec/examples/digitalglobe-sample.json deleted file mode 100644 index e052fa3c9..000000000 --- a/item-spec/examples/digitalglobe-sample.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "stac_version": "1.0.0-beta.2", - "stac_extensions": [ - "eo", - "projection", - "view" - ], - "id": "103001004B316600_P002_MUL", - "type": "Feature", - "bbox": [ - -105.161151214, - 39.0436821016, - -104.947574355, - 39.1750024943 - ], - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - -105.160846396, - 39.1656009422 - ], - [ - -104.947574355, - 39.1750024943 - ], - [ - -104.949890373, - 39.0512153242 - ], - [ - -105.161151214, - 39.0436821016 - ], - [ - -105.160846396, - 39.1656009422 - ] - ] - ] - }, - "assets": { - "multispectral_image": { - "href": "https://15NOV09180446-M1BS-056823192010_01_P002.TIF" - }, - "imd": { - "href": "https://15NOV09180446-M1BS-056823192010_01_P002.IMD" - }, - "imd_xml": { - "href": "https://15NOV09180446-M1BS-056823192010_01_P002.XML" - }, - "til": { - "href": "https://15NOV09180446-M1BS-056823192010_01_P002.TIL" - }, - "att": { - "href": "https://15NOV09180446-M1BS-056823192010_01_P002.ATT" - }, - "eph": { - "href": "https://15NOV09180446-M1BS-056823192010_01_P002.EPH" - }, - "geo": { - "href": "https://15NOV09180446-M1BS-056823192010_01_P002.GEO" - }, - "rpb": { - "href": "https://15NOV09180446-M1BS-056823192010_01_P002.RPB" - }, - "thumbnail": { - "href": "https://15NOV09180446-M1BS-056823192010_01_P002.JPG", - "roles": [ - "thumbnail" - ] - } - }, - "properties": { - "dg:feature_type": [ - "GBDXCatalogRecord", - "WV02", - "DigitalGlobeProduct", - "1BProduct" - ], - "view:sun_azimuth": 168.7, - "eo:cloud_cover": 50, - "view:off_nadir": 18.4, - "view:azimuth": 34.5, - "platform": "worldview02", - "view:sun_elevation": 33.4, - "gsd": 2.047, - "proj:epsg": null, - "dg:catalog_id": "103001004B316600", - "dg:soli": "056823192", - "dg:part": 2, - "dg:platform": "worldview02", - "dg:product_level": "LV1B", - "dg:product": "worldview02_lv1b", - "datetime": "2015-11-09T18:04:46Z" - }, - "collection": "dg_worldview02", - "links": [ - { - "rel": "self", - "href": "https://s3.amazonaws.com/digitalglobe-catalog-spec/collections/dg_worldview02_lv1b/103001004B316600_P002_MUL" - }, - { - "rel": "collection", - "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 deleted file mode 100644 index 853735b6a..000000000 --- a/item-spec/examples/landsat8-sample.json +++ /dev/null @@ -1,256 +0,0 @@ -{ - "stac_version": "1.0.0-beta.2", - "stac_extensions": [ - "eo", - "view" - ], - "id": "LC81530252014153LGN00", - "type": "Feature", - "bbox": [ - 49.16354, - 72.27502, - 51.36812, - 75.67662 - ], - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 51.33855, - 72.27502 - ], - [ - 51.36812, - 75.70821 - ], - [ - 49.19092, - 75.67662 - ], - [ - 49.16354, - 72.3964 - ], - [ - 51.33855, - 72.27502 - ] - ] - ] - }, - "collection": "landsat-8-l1", - "properties": { - "datetime": "2014-06-02T09:22:02Z", - "gsd": 30, - "platform": "landsat-8", - "instruments": [ - "oli", - "tirs" - ], - "eo:cloud_cover": 78, - "view:off_nadir": 0, - "view:azimuth": 0, - "view:sun_azimuth": 149.01607154, - "view:sun_elevation": 59.214247, - "landsat:path": 107, - "landsat:row": 18, - "landsat:earth_sun_distance": 1.014156, - "landsat:ground_control_points_verify": 114, - "landsat:geometric_rmse_model": 7.562, - "landsat:image_quality_tirs": 9, - "landsat:ground_control_points_model": 313, - "landsat:geometric_rmse_model_x": 5.96, - "landsat:geometric_rmse_model_y": 4.654, - "landsat:geometric_rmse_verify": 5.364, - "landsat:image_quality_oli": 9 - }, - "links": [ - { - "rel": "self", - "href": "https://landsat-stac.s3.amazonaws.com/landsat-8-l1/107/018/2018-10-01/LC81530252014153LGN00.json" - }, - { - "rel": "collection", - "href": "https://landsat-stac.s3.amazonaws.com/landsat-8-l1/catalog.json" - }, - { - "rel": "parent", - "href": "https://landsat-stac.s3.amazonaws.com/landsat-8-l1/107/018/catalog.json" - }, - { - "rel": "root", - "href": "https://landsat-stac.s3.amazonaws.com/catalog.json" - } - ], - "assets": { - "ANG": { - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/107/018/LC81530252014153LGN00/LC81530252014153LGN00_ANG.txt", - "title": "Angle coefficients file", - "type": "text/plain" - }, - "B1": { - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/107/018/LC81530252014153LGN00/LC81530252014153LGN00_B1.TIF", - "type": "image/tiff; application=geotiff", - "eo:bands": [ - { - "name": "B1", - "common_name": "coastal", - "center_wavelength": 0.44, - "full_width_half_max": 0.02 - } - ], - "title": "Band 1 (coastal)" - }, - "B2": { - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/107/018/LC81530252014153LGN00/LC81530252014153LGN00_B2.TIF", - "type": "image/tiff; application=geotiff", - "eo:bands": [ - { - "name": "B2", - "common_name": "blue", - "center_wavelength": 0.48, - "full_width_half_max": 0.06 - } - ], - "title": "Band 2 (blue)" - }, - "B3": { - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/107/018/LC81530252014153LGN00/LC81530252014153LGN00_B3.TIF", - "type": "image/tiff; application=geotiff", - "eo:bands": [ - { - "name": "B3", - "common_name": "green", - "center_wavelength": 0.56, - "full_width_half_max": 0.06 - } - ], - "title": "Band 3 (green)" - }, - "B4": { - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/107/018/LC81530252014153LGN00/LC81530252014153LGN00_B4.TIF", - "type": "image/tiff; application=geotiff", - "eo:bands": [ - { - "name": "B4", - "common_name": "red", - "center_wavelength": 0.65, - "full_width_half_max": 0.04 - } - ], - "title": "Band 4 (red)" - }, - "B5": { - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/107/018/LC81530252014153LGN00/LC81530252014153LGN00_B5.TIF", - "type": "image/tiff; application=geotiff", - "eo:bands": [ - { - "name": "B5", - "common_name": "nir", - "center_wavelength": 0.86, - "full_width_half_max": 0.03 - } - ], - "title": "Band 5 (nir)" - }, - "B6": { - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/107/018/LC81530252014153LGN00/LC81530252014153LGN00_B6.TIF", - "type": "image/tiff; application=geotiff", - "eo:bands": [ - { - "name": "B6", - "common_name": "swir16", - "center_wavelength": 1.6, - "full_width_half_max": 0.08 - } - ], - "title": "Band 6 (swir16)" - }, - "B7": { - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/107/018/LC81530252014153LGN00/LC81530252014153LGN00_B7.TIF", - "type": "image/tiff; application=geotiff", - "eo:bands": [ - { - "name": "B7", - "common_name": "swir22", - "center_wavelength": 2.2, - "full_width_half_max": 0.2 - } - ], - "title": "Band 7 (swir22)" - }, - "B8": { - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/107/018/LC81530252014153LGN00/LC81530252014153LGN00_B8.TIF", - "type": "image/tiff; application=geotiff", - "eo:bands": [ - { - "name": "B8", - "common_name": "pan", - "center_wavelength": 0.59, - "full_width_half_max": 0.18 - } - ], - "title": "Band 8 (pan)" - }, - "B9": { - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/107/018/LC81530252014153LGN00/LC81530252014153LGN00_B9.TIF", - "type": "image/tiff; application=geotiff", - "eo:bands": [ - { - "name": "B9", - "common_name": "cirrus", - "center_wavelength": 1.37, - "full_width_half_max": 0.02 - } - ], - "title": "Band 9 (cirrus)" - }, - "B10": { - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/107/018/LC81530252014153LGN00/LC81530252014153LGN00_B10.TIF", - "type": "image/tiff; application=geotiff", - "eo:bands": [ - { - "name": "B10", - "common_name": "lwir11", - "center_wavelength": 10.9, - "full_width_half_max": 0.8 - } - ], - "title": "Band 10 (lwir)" - }, - "B11": { - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/107/018/LC81530252014153LGN00/LC81530252014153LGN00_B11.TIF", - "type": "image/tiff; application=geotiff", - "eo:bands": [ - { - "name": "B11", - "common_name": "lwir12", - "center_wavelength": 12, - "full_width_half_max": 1 - } - ], - "title": "Band 11 (lwir)" - }, - "BQA": { - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/107/018/LC81530252014153LGN00/LC81530252014153LGN00_BQA.TIF", - "title": "Band quality data", - "type": "image/tiff; application=geotiff" - }, - "MTL": { - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/107/018/LC81530252014153LGN00/LC81530252014153LGN00_MTL.txt", - "title": "original metadata file", - "type": "text/plain" - }, - "thumbnail": { - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/107/018/LC81530252014153LGN00/LC81530252014153LGN00_thumb_large.jpg", - "title": "Thumbnail image", - "type": "image/jpeg" - }, - "index": { - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/107/018/LC81530252014153LGN00/index.html", - "type": "text/html", - "title": "HTML index page" - } - } -} diff --git a/item-spec/examples/planet-sample.json b/item-spec/examples/planet-sample.json deleted file mode 100644 index 741ed4e37..000000000 --- a/item-spec/examples/planet-sample.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "stac_version": "1.0.0-beta.2", - "stac_extensions": [ - "eo", - "view" - ], - "links": [ - { - "rel": "self", - "href": "https://api.planet.com/data/v1/item-types/PSScene4Band/items/20171110_121030_1013" - }, - { - "rel": "full-assets", - "href": "https://api.planet.com/data/v1/item-types/PSScene4Band/items/20171110_121030_1013/assets/" - } - ], - "bbox": [ - -38.9237469532665, - -13.169235186077524, - -38.671635567195025, - -13.048292073058748 - ], - "geometry": { - "coordinates": [ - [ - [ - -38.92116702540037, - -13.110092317731418 - ], - [ - -38.9112864728743, - -13.062487360866074 - ], - [ - -38.9110789705375, - -13.062527998574287 - ], - [ - -38.908213551271224, - -13.048292073058748 - ], - [ - -38.671635567195025, - -13.094581158659716 - ], - [ - -38.67642080836562, - -13.118491623177688 - ], - [ - -38.68693656624613, - -13.169235186077524 - ], - [ - -38.9237469532665, - -13.122881179500025 - ], - [ - -38.92116702540037, - -13.110092317731418 - ] - ] - ], - "type": "Polygon" - }, - "id": "20171110_121030_1013", - "properties": { - "datetime": "2017-11-10T12:10:30.535417Z", - "eo:cloud_cover": 23, - "gsd": 3.7, - "view:sun_azimuth": 101.8, - "view:sun_elevation": 58.8, - "view:off_nadir": 1, - "pl:acquired": "2017-11-10T12:10:30.535417Z", - "pl:anomalous_pixels": 0.14, - "pl:columns": 9111, - "pl:epsg_code": 32724, - "pl:ground_control": true, - "pl:instrument": "PS2", - "pl:item_type": "PSScene4Band", - "pl:origin_x": 508263, - "pl:origin_y": 8557524, - "pl:pixel_resolution": 3, - "pl:provider": "planetscope", - "pl:published": "2017-11-10T16:11:38Z", - "pl:quality_category": "standard", - "pl:rows": 4466, - "pl:satellite_id": "1013", - "pl:strip_id": "902639", - "pl:updated": "2017-11-11T11:17:33Z", - "pl:usable_data": 0, - "pl:view_angle": 1 - }, - "type": "Feature", - "assets": { - "thumbnail": { - "href": "https://api.planet.com/data/v1/item-types/PSScene4Band/items/20171110_121030_1013/thumb", - "title": "Thumbnail", - "status": "active", - "roles": [ - "thumbnail" - ] - }, - "analytic": { - "href": "https://api.planet.com/data/v1/assets/eyJpIjogIjIwMTcxMTEwXzEyMTAxMF8xMDEzIiwgImMiOiAiUFNTY2VuZTRCYW5kIiwgInQiOiAiYW5hbHl0aWMiLCAiY3QiOiAiaXRlbS10eXBlIn0", - "title": "PSScene4Band GeoTIFF (COG)", - "activate": "https://api.planet.com/data/v1/assets/eyJpIjogIjIwMTcxMTEwXzEtMTAzMF8xMDEzIiwgImMiOiAiUFNTY2VuZTRCYW5kIiwgInQiOiAiYW5hbHl0aWMiLCAiY3QiOiAiaXRlbS10eXBlIn0/activate", - "asset_type": "https://api.planet.com/data/v1/asset-types/analytic", - "_permissions": [ - "download" - ], - "md5_digest": null, - "status": "inactive" - }, - "analytic_xml": { - "href": "https://api.planet.com/data/v1/assets/NTY2VuZTReyJpIjogIjIwMTcxMTEwXzEyMTAxMF8xMDEzIiQiOiAiaXRlbS10ewgImMiOiAiUFbHl0aWMiLCAiY3XBlIn0", - "title": "PSScene4Band XML Metadata", - "activate": "https://api.planet.com/data/v1/assets/tMTAzMF8xMDEzIiwInQiOiAeyJpIjogIjIwMTcxMTEwXzEiYW5hbHl0aWMiLCAiY3gImMiOiAiUFNTY2VuZTRCYW5kIiwgQiOiAiaXRlbS10eXBlIn0/activate", - "asset_type": "https://api.planet.com/data/v1/asset-types/analytic_xml", - "_permissions": [ - "download" - ], - "md5_digest": null, - "status": "activating" - }, - "udm": { - "href": "https://api.planet.com/data/v1/assets/NTY2VuZTReyJpIzEyMTAxMF8xMDEzIiQiOiAiaXRlbTcxMTEwXAiUFbHl0S10ewgImMiOijogIjIwMaWMiLCAiY3XBlIn0", - "title": "PSScene4Band Unusable Data Mask", - "activate": "https://api.planet.com/data/v1/assets/tMTAzMF8xMDEzIiwInQiOiAeyJpIjogIjIgImMiOiAiUFwMTcxMTEwXzEiYW5hbHl0aWMiLCAiY3NTY2VuZTRCYW5kIiwgQiOiAiaXRlbS10eXBlIn0/activate", - "asset_type": "https://api.planet.com/data/v1/asset-types/udm", - "_permissions": [ - "download" - ], - "expires_at": "2017-11-26T06:41:41.467106", - "location": "https://api.planet.com/data/v1/download?token=eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOd01QTVVnMVQzaGFWTzBNdFBtb0pQamiJ6K3haZmsrNVZ4ZG415WeHExUEh6VkpNSFRGNVZUMVRpQ1pKcmdhcU5HeTBOR1JVS3dmWWFpZ255eExDTnRWUT09IiwiaXRlbV90eXBlX2lkIjoiUFNTY2VuZTRCYW5kIiwidG9rZW5fdHlwZSI6InR5cGVkLWl0ZW0iLCJleHAiOjE1MTE2Nzg1MDEsIml0ZW1faWQiOiIyMDE3MTEyMl8xMjExMjJfMTAzOSIsImFzc2V0X3R5cGUiOiJhbmFseXRpY19kbiJ9.HJAskK7QIeBIT_7fCumZ73vpECjN9J6rdAaKd9QBu2Z8gVixK2V_tIxg2mXBqJGJQxuVmAJw-SYoYeGmevWilA", - "md5_digest": "d860370a9468e39f97b2044bc5fd4bfe", - "status": "active" - } - } -} \ No newline at end of file diff --git a/item-spec/examples/sample.json b/item-spec/examples/sample.json deleted file mode 100644 index ba34ecbe9..000000000 --- a/item-spec/examples/sample.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "stac_version": "1.0.0-beta.2", - "stac_extensions": [], - "type": "Feature", - "id": "CS3-20160503_132130_04", - "bbox": [ - -122.59750209, - 37.48803556, - -122.2880486, - 37.613537207 - ], - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - -122.308150179, - 37.488035566 - ], - [ - -122.597502109, - 37.538869539 - ], - [ - -122.576687533, - 37.613537207 - ], - [ - -122.2880486, - 37.562818007 - ], - [ - -122.308150179, - 37.488035566 - ] - ] - ] - }, - "properties": { - "datetime": "2016-05-03T13:21:30.040Z", - "collection": "CS3" - }, - "links": [ - { - "rel": "self", - "href": "http://cool-sat.com/catalog/CS3-20160503_132130_04/CS3-20160503_132130_04.json" - }, - { - "rel": "collection", - "href": "http://cool-sat.com/catalog.json" - } - ], - "assets": { - "analytic": { - "href": "relative-path/to/analytic.tif", - "title": "4-Band Analytic" - }, - "thumbnail": { - "href": "http://cool-sat.com/catalog/CS3-20160503_132130_04/thumbnail.png", - "title": "Thumbnail", - "roles": [ - "thumbnail" - ] - } - } -} diff --git a/item-spec/examples/sentinel2-sample.json b/item-spec/examples/sentinel2-sample.json deleted file mode 100644 index 939cd8d8b..000000000 --- a/item-spec/examples/sentinel2-sample.json +++ /dev/null @@ -1,218 +0,0 @@ -{ - "stac_version": "1.0.0-beta.2", - "stac_extensions": [ - "view", - "projection" - ], - "type": "Feature", - "id": "S2A_OPER_MSI_L2A_TL_SGS__20180524T190423_A015250_T26SKD_N02.08", - "links": [ - { - "rel": "self", - "href": "s3://sentinel-s2-l2a-catalog/tiles/35/V/MK/2018/6/5/0/sentinel2-sample.json" - }, - { - "rel": "root", - "href": "s3://sentinel-s2-l2a-catalog/catalog.json" - }, - { - "rel": "collection", - "href": "s3://sentinel-s2-l2a-catalog/catalog.json" - } - ], - "bbox": [ - 25.0815883093, - 62.1306897126, - 27.1935425597, - 63.129387237 - ], - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - -105.160846396, - 39.1656009422 - ], - [ - -104.947574355, - 39.1750024943 - ], - [ - -104.949890373, - 39.0512153242 - ], - [ - -105.161151214, - 39.0436821016 - ], - [ - -105.160846396, - 39.1656009422 - ] - ] - ] - }, - "properties": { - "datetime": "2018-06-05T10:00:27Z", - "platform": "sentinel-2", - "gsd": 10, - "proj:epsg": 32635, - "eo:cloud_cover": 88.459539, - "view:sun_azimuth": 176.091667178268 - }, - "collection": "s2-l2a", - "assets": { - "metadata": { - "href": "s3://sentinel-s2-l2a/tiles/35/V/MK/2018/6/5/0/metadata.xml", - "title": "Tile metadata", - "type": "application/xml", - "roles": [ - "metadata" - ] - }, - "tileInfo": { - "href": "s3://sentinel-s2-l2a/tiles/35/V/MK/2018/6/5/0/tileInfo.json", - "title": "Tile info", - "type": "application/json" - }, - "productInfo": { - "href": "s3://sentinel-s2-l2a/tiles/35/V/MK/2018/6/5/0/productInfo.json", - "title": "Product info", - "type": "application/json" - }, - "thumbnail": { - "href": "s3://sentinel-s2-l2a/tiles/35/V/MK/2018/6/5/0/qi/L2A_PVI.jp2", - "title": "True color thumbnail", - "type": "image/jp2", - "roles": [ - "thumbnail" - ] - }, - "B02_10m": { - "href": "s3://sentinel-s2-l2a/tiles/35/V/MK/2018/6/5/0/R10m/B02.jp2", - "title": "Band 2 - Blue 0.490 (10m)", - "type": "image/jp2" - }, - "B03_10m": { - "href": "s3://sentinel-s2-l2a/tiles/35/V/MK/2018/6/5/0/R10m/B03.jp2", - "title": "Band 3 - Green 0.560 (10m)", - "type": "image/jp2" - }, - "B04_10m": { - "href": "s3://sentinel-s2-l2a/tiles/35/V/MK/2018/6/5/0/R10m/B04.jp2", - "title": "Band 4 - Red 0.665 (10m)", - "type": "image/jp2" - }, - "B08_10m": { - "href": "s3://sentinel-s2-l2a/tiles/35/V/MK/2018/6/5/0/R10m/B08.jp2", - "title": "Band 8 - NIR 0.842 (10m)", - "type": "image/jp2" - }, - "AOT_10m": { - "href": "s3://sentinel-s2-l2a/tiles/35/V/MK/2018/6/5/0/R10m/AOT.jp2", - "title": "Aerosol Optical Thickness (10m)", - "type": "image/jp2" - }, - "TCI_10m": { - "href": "s3://sentinel-s2-l2a/tiles/35/V/MK/2018/6/5/0/R10m/TCI.jp2", - "title": "True Color Image (10m)", - "type": "image/jp2" - }, - "WVP_10m": { - "href": "s3://sentinel-s2-l2a/tiles/35/V/MK/2018/6/5/0/R10m/WVP.jp2", - "title": "Water Vapor (10m)", - "type": "image/jp2" - }, - "B02_20m": { - "href": "s3://sentinel-s2-l2a/tiles/35/V/MK/2018/6/5/0/R20m/B02.jp2", - "title": "Band 2 - Blue 0.490 (20m)", - "type": "image/jp2", - "gsd": 20 - }, - "B03_20m": { - "href": "s3://sentinel-s2-l2a/tiles/35/V/MK/2018/6/5/0/R20m/B03.jp2", - "title": "Band 3 - Green 0.560 (20m)", - "type": "image/jp2", - "gsd": 20 - }, - "B04_20m": { - "href": "s3://sentinel-s2-l2a/tiles/35/V/MK/2018/6/5/0/R20m/B04.jp2", - "title": "Band 4 - Red 0.665 (20m)", - "type": "image/jp2", - "gsd": 20 - }, - "B05_20m": { - "href": "s3://sentinel-s2-l2a/tiles/35/V/MK/2018/6/5/0/R20m/B05.jp2", - "title": "Band 5 - Vegetation Red Edge 0.705 (20m)", - "type": "image/jp2", - "gsd": 20 - }, - "B06_20m": { - "href": "s3://sentinel-s2-l2a/tiles/35/V/MK/2018/6/5/0/R20m/B06.jp2", - "title": "Band 6 - Vegetation Red Edge 0.740 (20m)", - "type": "image/jp2", - "gsd": 20 - }, - "B07_20m": { - "href": "s3://sentinel-s2-l2a/tiles/35/V/MK/2018/6/5/0/R20m/B07.jp2", - "title": "Band 7 - Vegetation Red Edge 0.783 (20m)", - "type": "image/jp2", - "gsd": 20 - }, - "B8A_20m": { - "href": "s3://sentinel-s2-l2a/tiles/35/V/MK/2018/6/5/0/R20m/B8A.jp2", - "title": "Band 8A - Narrow NIR 0.865 (20m)", - "type": "image/jp2", - "gsd": 20 - }, - "B11_20m": { - "href": "s3://sentinel-s2-l2a/tiles/35/V/MK/2018/6/5/0/R20m/B11.jp2", - "title": "Band 11 - SWIR 1.610 (20m)", - "type": "image/jp2", - "gsd": 20 - }, - "B12_20m": { - "href": "s3://sentinel-s2-l2a/tiles/35/V/MK/2018/6/5/0/R20m/B12.jp2", - "title": "Band 12 - SWIR 2.190 (20m)", - "type": "image/jp2", - "gsd": 20 - }, - "AOT_20m": { - "href": "s3://sentinel-s2-l2a/tiles/35/V/MK/2018/6/5/0/R20m/AOT.jp2", - "title": "Aerosol Optical Thickness (20m)", - "type": "image/jp2", - "gsd": 20 - }, - "SCL_20m": { - "href": "s3://sentinel-s2-l2a/tiles/35/V/MK/2018/6/5/0/R20m/SCL.jp2", - "title": "Scene Classification (20m)", - "type": "image/jp2", - "gsd": 20 - }, - "TCI_20m": { - "href": "s3://sentinel-s2-l2a/tiles/35/V/MK/2018/6/5/0/R20m/TCI.jp2", - "title": "True Color Image (20m)", - "type": "image/jp2", - "gsd": 20 - }, - "WVP_20m": { - "href": "s3://sentinel-s2-l2a/tiles/35/V/MK/2018/6/5/0/R20m/WVP.jp2", - "title": "Water Vapor (20m)", - "type": "image/jp2", - "gsd": 20 - }, - "CLD_20m": { - "href": "s3://sentinel-s2-l2a/tiles/35/V/MK/2018/6/5/0/qi/CLD_20m.jp2", - "title": "Cloud (20m)", - "type": "image/jp2", - "gsd": 20 - }, - "SNW_20m": { - "href": "s3://sentinel-s2-l2a/tiles/35/V/MK/2018/6/5/0/qi/SNW_20m.jp2", - "title": "Snow (20m)", - "type": "image/jp2", - "gsd": 20 - } - } -} diff --git a/item-spec/item-spec.md b/item-spec/item-spec.md index 7097effb2..57a87bfa9 100644 --- a/item-spec/item-spec.md +++ b/item-spec/item-spec.md @@ -17,9 +17,9 @@ Items are represented in JSON format and are very flexible. Any JSON object that required fields is a valid STAC Item. - Examples: - - See the [minimal example](examples/sample.json), as well as a [more fleshed example](examples/sample-full.json) that contains a number of - current best practices. There are more real world inspired samples in the [examples/](examples/) folder. - - Real world [implementations](https://stacspec.org/#examples) are also available. + - See the [minimal example](../examples/simple-item.json), as well as a [more fleshed example](../examples/core-item.json) that contains a number of + current best practices. + - Real world [implementations](https://stacindex.org/catalogs) are also available. - [JSON Schema](json-schema/item.json) ## Item fields @@ -213,7 +213,7 @@ For example, `gsd` defined for an Item represents the best Ground Sample Distanc However, some assets may be lower resolution and thus have a higher `gsd`. The `eo:bands` field from the EO extension defines an array of spectral bands. However, it may be useful instead to specify the bands that are used in a particular asset. -For an example see the [sentinel2-sample](examples/sentinel2-sample.json). The Sentinel-2 overall `gsd` is 10m, because this is +For an example see the [sentinel2-sample](https://github.com/stac-utils/stac-examples/blob/main/sentinel2/sentinel2-sample.json). The Sentinel-2 overall `gsd` is 10m, because this is the best spatial resolution among all the bands and is defined in Item properties so it can be searched on. In the example Band 5 and others have a `gsd` of 20m, so that asset specifies the `gsd` as well, which overrides the Item `gsd` for this one asset. The example also includes reduced resolution versions of files included as assets, using `gsd` to represent