From c1068b9803828244b2ffe3072c72bd37d4eac119 Mon Sep 17 00:00:00 2001 From: Matthew Hanson Date: Thu, 15 Aug 2019 17:27:26 -0400 Subject: [PATCH 1/4] add single file STAC extension --- CHANGELOG.md | 2 +- extensions/README.md | 1 + extensions/single-file-stac/README.md | 30 + .../examples/example-search.json | 616 ++++++++++++++++++ .../single-file-stac/json-schema/schema.json | 38 ++ 5 files changed, 686 insertions(+), 1 deletion(-) create mode 100644 extensions/single-file-stac/README.md create mode 100644 extensions/single-file-stac/examples/example-search.json create mode 100644 extensions/single-file-stac/json-schema/schema.json diff --git a/CHANGELOG.md b/CHANGELOG.md index dd9480b17..62a63d98d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,7 +22,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - **stac_extensions**: Introduced this field for Items, Catalogs and Collections. - Property `summaries` have been added to catalogs and collections. - API Transaction extension supports optimistic locking through use of the ETag header. - +- [Single File Catalog extension](extensions/single-file-catalog/README.md) added as a format to have a set of Collections and Items in a single file. ## [v0.7.0] - 2019-05-06 diff --git a/extensions/README.md b/extensions/README.md index c52470e18..d35f112c1 100644 --- a/extensions/README.md +++ b/extensions/README.md @@ -55,6 +55,7 @@ An extension can add new fields to STAC entities (content extension), or can add | [Point Cloud](pointcloud/README.md) (`pc`) | Item | Provides a way to describe point cloud datasets. The point clouds can come from either active or passive sensors, and data is frequently acquired using tools such as LiDAR or coincidence-matched imagery. | *Proposal* | | [SAR](sar/README.md) (`sar`) | Item | Covers synthetic-aperture radar data that represents a snapshot of the earth for a single date and time. | *Proposal* | | [Scientific](scientific/README.md) (`sci`) | Item | Scientific metadata is considered to be data that indicate from which publication data originates and how the data itself should be cited or referenced. | *Proposal* | +| [Single File STAC](single-file-stac/README.md) (-) | Catloag +Collection +Item | An extension to provide a set of Collections and Items as a single file catalog. | *Proposal* | ## Third-party / vendor extensions diff --git a/extensions/single-file-stac/README.md b/extensions/single-file-stac/README.md new file mode 100644 index 000000000..32ec1d655 --- /dev/null +++ b/extensions/single-file-stac/README.md @@ -0,0 +1,30 @@ +# Single File STAC Specification + +**Extension [Maturity Classification](../README.md#extension-maturity): Proposal** + +An extension to provide a set of Collections and Items as a single file catalog. + +- [Example](examples/example.json) +- [JSON Schema](json-schema/schema.json) + +## Catalog fields + +A Single File STAC is a complete STAC catalog contained in a single file. It is sometimes useful to save a portion of a catalog (such as gained through a search) as single file so it is more portable than a set of linked files. + +A Single File STAC is an [ItemCollection Object](../../item-spec/itemcollection-spec.md). This GeoJSON FeatureCollection has Features which are Items, but the Collections are still needed. + +| Field Name | Type | Description | +| ------------------ | ------ | ------------------------------------------------------------ | +| collections | [Collection](../../collection-spec/collection-spec.md#collection-fields)] | An array of Collections that are used by any of the Items in the ItemCollection. +| search | [Search Object](#search-object) | An optional field containing a search endpoint and parameters used to generate this Single File STAC | + +## Search Object + +| Field Name | Type | Description | +| ------------------ | ------ | ------------------------------------------------------------ | +| endpoint | string | The root endpoint of a STAC API used for this search. +| parameters | map | A dictionary of all the parameters used for the search | + +## Implementations + +- [sat-search](https://github.com/sat-utils/sat-search) uses the Single File Catalog to save and load search results. diff --git a/extensions/single-file-stac/examples/example-search.json b/extensions/single-file-stac/examples/example-search.json new file mode 100644 index 000000000..47829d4e8 --- /dev/null +++ b/extensions/single-file-stac/examples/example-search.json @@ -0,0 +1,616 @@ +{ + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "id": "LC80370332018039LGN00", + "collection": "landsat-8-l1", + "bbox": [ + -112.21054, + 37.83042, + -109.4992, + 39.95532 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -111.6768167850251, + 39.952817693022276 + ], + [ + -109.5010938553632, + 39.55607811527241 + ], + [ + -110.03573868784865, + 37.83172334507642 + ], + [ + -112.20846353249907, + 38.236456540046845 + ], + [ + -111.6768167850251, + 39.952817693022276 + ] + ] + ] + }, + "properties": { + "datetime": "2018-02-08T18:02:15.719478+00:00", + "eo:sun_azimuth": 152.63804142, + "eo:sun_elevation": 31.82216637, + "eo:cloud_cover": 19, + "eo:row": "033", + "eo:column": "037", + "landsat:product_id": "LC08_L1TP_037033_20180208_20180221_01_T1", + "landsat:scene_id": "LC80370332018039LGN00", + "landsat:processing_level": "L1TP", + "landsat:tier": "T1", + "eo:epsg": 32612 + }, + "assets": { + "index": { + "type": "text/html", + "title": "HTML index page", + "href": "https://s3-us-west-2.amazonaws.com/landsat-pds/c1/L8/037/033/LC08_L1TP_037033_20180208_20180221_01_T1/index.html" + }, + "thumbnail": { + "title": "Thumbnail image", + "type": "image/jpeg", + "href": "https://s3-us-west-2.amazonaws.com/landsat-pds/c1/L8/037/033/LC08_L1TP_037033_20180208_20180221_01_T1/LC08_L1TP_037033_20180208_20180221_01_T1_thumb_large.jpg" + }, + "B1": { + "type": "image/x.geotiff", + "eo:bands": [ + 0 + ], + "title": "Band 1 (coastal)", + "href": "https://s3-us-west-2.amazonaws.com/landsat-pds/c1/L8/037/033/LC08_L1TP_037033_20180208_20180221_01_T1/LC08_L1TP_037033_20180208_20180221_01_T1_B1.TIF" + }, + "B2": { + "type": "image/x.geotiff", + "eo:bands": [ + 1 + ], + "title": "Band 2 (blue)", + "href": "https://s3-us-west-2.amazonaws.com/landsat-pds/c1/L8/037/033/LC08_L1TP_037033_20180208_20180221_01_T1/LC08_L1TP_037033_20180208_20180221_01_T1_B2.TIF" + }, + "B3": { + "type": "image/x.geotiff", + "eo:bands": [ + 2 + ], + "title": "Band 3 (green)", + "href": "https://s3-us-west-2.amazonaws.com/landsat-pds/c1/L8/037/033/LC08_L1TP_037033_20180208_20180221_01_T1/LC08_L1TP_037033_20180208_20180221_01_T1_B3.TIF" + }, + "B4": { + "type": "image/x.geotiff", + "eo:bands": [ + 3 + ], + "title": "Band 4 (red)", + "href": "https://s3-us-west-2.amazonaws.com/landsat-pds/c1/L8/037/033/LC08_L1TP_037033_20180208_20180221_01_T1/LC08_L1TP_037033_20180208_20180221_01_T1_B4.TIF" + }, + "B5": { + "type": "image/x.geotiff", + "eo:bands": [ + 4 + ], + "title": "Band 5 (nir)", + "href": "https://s3-us-west-2.amazonaws.com/landsat-pds/c1/L8/037/033/LC08_L1TP_037033_20180208_20180221_01_T1/LC08_L1TP_037033_20180208_20180221_01_T1_B5.TIF" + }, + "B6": { + "type": "image/x.geotiff", + "eo:bands": [ + 5 + ], + "title": "Band 6 (swir16)", + "href": "https://s3-us-west-2.amazonaws.com/landsat-pds/c1/L8/037/033/LC08_L1TP_037033_20180208_20180221_01_T1/LC08_L1TP_037033_20180208_20180221_01_T1_B6.TIF" + }, + "B7": { + "type": "image/x.geotiff", + "eo:bands": [ + 6 + ], + "title": "Band 7 (swir22)", + "href": "https://s3-us-west-2.amazonaws.com/landsat-pds/c1/L8/037/033/LC08_L1TP_037033_20180208_20180221_01_T1/LC08_L1TP_037033_20180208_20180221_01_T1_B7.TIF" + }, + "B8": { + "type": "image/x.geotiff", + "eo:bands": [ + 7 + ], + "title": "Band 8 (pan)", + "href": "https://s3-us-west-2.amazonaws.com/landsat-pds/c1/L8/037/033/LC08_L1TP_037033_20180208_20180221_01_T1/LC08_L1TP_037033_20180208_20180221_01_T1_B8.TIF" + }, + "B9": { + "type": "image/x.geotiff", + "eo:bands": [ + 8 + ], + "title": "Band 9 (cirrus)", + "href": "https://s3-us-west-2.amazonaws.com/landsat-pds/c1/L8/037/033/LC08_L1TP_037033_20180208_20180221_01_T1/LC08_L1TP_037033_20180208_20180221_01_T1_B9.TIF" + }, + "B10": { + "type": "image/x.geotiff", + "eo:bands": [ + 9 + ], + "title": "Band 10 (lwir)", + "href": "https://s3-us-west-2.amazonaws.com/landsat-pds/c1/L8/037/033/LC08_L1TP_037033_20180208_20180221_01_T1/LC08_L1TP_037033_20180208_20180221_01_T1_B10.TIF" + }, + "B11": { + "type": "image/x.geotiff", + "eo:bands": [ + 10 + ], + "title": "Band 11 (lwir)", + "href": "https://s3-us-west-2.amazonaws.com/landsat-pds/c1/L8/037/033/LC08_L1TP_037033_20180208_20180221_01_T1/LC08_L1TP_037033_20180208_20180221_01_T1_B11.TIF" + }, + "ANG": { + "title": "Angle coefficients file", + "type": "text/plain", + "href": "https://s3-us-west-2.amazonaws.com/landsat-pds/c1/L8/037/033/LC08_L1TP_037033_20180208_20180221_01_T1/LC08_L1TP_037033_20180208_20180221_01_T1_ANG.txt" + }, + "MTL": { + "title": "original metadata file", + "type": "text/plain", + "href": "https://s3-us-west-2.amazonaws.com/landsat-pds/c1/L8/037/033/LC08_L1TP_037033_20180208_20180221_01_T1/LC08_L1TP_037033_20180208_20180221_01_T1_MTL.txt" + }, + "BQA": { + "title": "Band quality data", + "type": "image/x.geotiff", + "href": "https://s3-us-west-2.amazonaws.com/landsat-pds/c1/L8/037/033/LC08_L1TP_037033_20180208_20180221_01_T1/LC08_L1TP_037033_20180208_20180221_01_T1_BQA.TIF" + } + }, + "links": [] + }, + { + "type": "Feature", + "id": "LC80340332018034LGN00", + "collection": "landsat-8-l1", + "bbox": [ + -107.6044, + 37.8096, + -104.86884, + 39.97508 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -107.03912158283073, + 39.975078807631036 + ], + [ + -104.87161559271382, + 39.548160703908025 + ], + [ + -105.43927721248009, + 37.81075859503169 + ], + [ + -107.60423259994965, + 38.24485405534073 + ], + [ + -107.03912158283073, + 39.975078807631036 + ] + ] + ] + }, + "properties": { + "datetime": "2018-02-03T17:43:44.623405+00:00", + "eo:sun_azimuth": 153.39513457, + "eo:sun_elevation": 30.41894816, + "eo:cloud_cover": 36, + "eo:row": "033", + "eo:column": "034", + "landsat:product_id": "LC08_L1TP_034033_20180203_20180220_01_T1", + "landsat:scene_id": "LC80340332018034LGN00", + "landsat:processing_level": "L1TP", + "landsat:tier": "T1", + "eo:epsg": 32613 + }, + "assets": { + "index": { + "type": "text/html", + "title": "HTML index page", + "href": "https://s3-us-west-2.amazonaws.com/landsat-pds/c1/L8/034/033/LC08_L1TP_034033_20180203_20180220_01_T1/index.html" + }, + "thumbnail": { + "title": "Thumbnail image", + "type": "image/jpeg", + "href": "https://s3-us-west-2.amazonaws.com/landsat-pds/c1/L8/034/033/LC08_L1TP_034033_20180203_20180220_01_T1/LC08_L1TP_034033_20180203_20180220_01_T1_thumb_large.jpg" + }, + "B1": { + "type": "image/x.geotiff", + "eo:bands": [ + 0 + ], + "title": "Band 1 (coastal)", + "href": "https://s3-us-west-2.amazonaws.com/landsat-pds/c1/L8/034/033/LC08_L1TP_034033_20180203_20180220_01_T1/LC08_L1TP_034033_20180203_20180220_01_T1_B1.TIF" + }, + "B2": { + "type": "image/x.geotiff", + "eo:bands": [ + 1 + ], + "title": "Band 2 (blue)", + "href": "https://s3-us-west-2.amazonaws.com/landsat-pds/c1/L8/034/033/LC08_L1TP_034033_20180203_20180220_01_T1/LC08_L1TP_034033_20180203_20180220_01_T1_B2.TIF" + }, + "B3": { + "type": "image/x.geotiff", + "eo:bands": [ + 2 + ], + "title": "Band 3 (green)", + "href": "https://s3-us-west-2.amazonaws.com/landsat-pds/c1/L8/034/033/LC08_L1TP_034033_20180203_20180220_01_T1/LC08_L1TP_034033_20180203_20180220_01_T1_B3.TIF" + }, + "B4": { + "type": "image/x.geotiff", + "eo:bands": [ + 3 + ], + "title": "Band 4 (red)", + "href": "https://s3-us-west-2.amazonaws.com/landsat-pds/c1/L8/034/033/LC08_L1TP_034033_20180203_20180220_01_T1/LC08_L1TP_034033_20180203_20180220_01_T1_B4.TIF" + }, + "B5": { + "type": "image/x.geotiff", + "eo:bands": [ + 4 + ], + "title": "Band 5 (nir)", + "href": "https://s3-us-west-2.amazonaws.com/landsat-pds/c1/L8/034/033/LC08_L1TP_034033_20180203_20180220_01_T1/LC08_L1TP_034033_20180203_20180220_01_T1_B5.TIF" + }, + "B6": { + "type": "image/x.geotiff", + "eo:bands": [ + 5 + ], + "title": "Band 6 (swir16)", + "href": "https://s3-us-west-2.amazonaws.com/landsat-pds/c1/L8/034/033/LC08_L1TP_034033_20180203_20180220_01_T1/LC08_L1TP_034033_20180203_20180220_01_T1_B6.TIF" + }, + "B7": { + "type": "image/x.geotiff", + "eo:bands": [ + 6 + ], + "title": "Band 7 (swir22)", + "href": "https://s3-us-west-2.amazonaws.com/landsat-pds/c1/L8/034/033/LC08_L1TP_034033_20180203_20180220_01_T1/LC08_L1TP_034033_20180203_20180220_01_T1_B7.TIF" + }, + "B8": { + "type": "image/x.geotiff", + "eo:bands": [ + 7 + ], + "title": "Band 8 (pan)", + "href": "https://s3-us-west-2.amazonaws.com/landsat-pds/c1/L8/034/033/LC08_L1TP_034033_20180203_20180220_01_T1/LC08_L1TP_034033_20180203_20180220_01_T1_B8.TIF" + }, + "B9": { + "type": "image/x.geotiff", + "eo:bands": [ + 8 + ], + "title": "Band 9 (cirrus)", + "href": "https://s3-us-west-2.amazonaws.com/landsat-pds/c1/L8/034/033/LC08_L1TP_034033_20180203_20180220_01_T1/LC08_L1TP_034033_20180203_20180220_01_T1_B9.TIF" + }, + "B10": { + "type": "image/x.geotiff", + "eo:bands": [ + 9 + ], + "title": "Band 10 (lwir)", + "href": "https://s3-us-west-2.amazonaws.com/landsat-pds/c1/L8/034/033/LC08_L1TP_034033_20180203_20180220_01_T1/LC08_L1TP_034033_20180203_20180220_01_T1_B10.TIF" + }, + "B11": { + "type": "image/x.geotiff", + "eo:bands": [ + 10 + ], + "title": "Band 11 (lwir)", + "href": "https://s3-us-west-2.amazonaws.com/landsat-pds/c1/L8/034/033/LC08_L1TP_034033_20180203_20180220_01_T1/LC08_L1TP_034033_20180203_20180220_01_T1_B11.TIF" + }, + "ANG": { + "title": "Angle coefficients file", + "type": "text/plain", + "href": "https://s3-us-west-2.amazonaws.com/landsat-pds/c1/L8/034/033/LC08_L1TP_034033_20180203_20180220_01_T1/LC08_L1TP_034033_20180203_20180220_01_T1_ANG.txt" + }, + "MTL": { + "title": "original metadata file", + "type": "text/plain", + "href": "https://s3-us-west-2.amazonaws.com/landsat-pds/c1/L8/034/033/LC08_L1TP_034033_20180203_20180220_01_T1/LC08_L1TP_034033_20180203_20180220_01_T1_MTL.txt" + }, + "BQA": { + "title": "Band quality data", + "type": "image/x.geotiff", + "href": "https://s3-us-west-2.amazonaws.com/landsat-pds/c1/L8/034/033/LC08_L1TP_034033_20180203_20180220_01_T1/LC08_L1TP_034033_20180203_20180220_01_T1_BQA.TIF" + } + }, + "links": [] + } + ], + "collections": [ + { + "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", + "earth observation", + "usgs" + ], + "version": "0.1.0", + "stac_version": "0.6.0", + "extent": { + "spatial": [ + -180, + -90, + 180, + 90 + ], + "temporal": [ + "2013-06-01", + null + ] + }, + "providers": [ + { + "name": "USGS", + "roles": [ + "producer" + ], + "url": "https://landsat.usgs.gov/" + }, + { + "name": "Planet Labs", + "roles": [ + "processor" + ], + "url": "https://github.com/landsat-pds/landsat_ingestor" + }, + { + "name": "AWS", + "roles": [ + "host" + ], + "url": "https://landsatonaws.com/" + }, + { + "name": "Development Seed", + "roles": [ + "processor" + ], + "url": "https://github.com/sat-utils/sat-api" + } + ], + "license": "PDDL-1.0", + "properties": { + "eo:gsd": 15, + "eo:platform": "landsat-8", + "eo:instrument": "OLI_TIRS", + "eo:off_nadir": 0, + "eo:bands": [ + { + "name": "B1", + "common_name": "coastal", + "gsd": 30, + "center_wavelength": 0.44, + "full_width_half_max": 0.02 + }, + { + "name": "B2", + "common_name": "blue", + "gsd": 30, + "center_wavelength": 0.48, + "full_width_half_max": 0.06 + }, + { + "name": "B3", + "common_name": "green", + "gsd": 30, + "center_wavelength": 0.56, + "full_width_half_max": 0.06 + }, + { + "name": "B4", + "common_name": "red", + "gsd": 30, + "center_wavelength": 0.65, + "full_width_half_max": 0.04 + }, + { + "name": "B5", + "common_name": "nir", + "gsd": 30, + "center_wavelength": 0.86, + "full_width_half_max": 0.03 + }, + { + "name": "B6", + "common_name": "swir16", + "gsd": 30, + "center_wavelength": 1.6, + "full_width_half_max": 0.08 + }, + { + "name": "B7", + "common_name": "swir22", + "gsd": 30, + "center_wavelength": 2.2, + "full_width_half_max": 0.2 + }, + { + "name": "B8", + "common_name": "pan", + "gsd": 15, + "center_wavelength": 0.59, + "full_width_half_max": 0.18 + }, + { + "name": "B9", + "common_name": "cirrus", + "gsd": 30, + "center_wavelength": 1.37, + "full_width_half_max": 0.02 + }, + { + "name": "B10", + "common_name": "lwir11", + "gsd": 100, + "center_wavelength": 10.9, + "full_width_half_max": 0.8 + }, + { + "name": "B11", + "common_name": "lwir12", + "gsd": 100, + "center_wavelength": 12, + "full_width_half_max": 1 + } + ] + }, + "assets": { + "index": { + "type": "text/html", + "title": "HTML index page" + }, + "thumbnail": { + "title": "Thumbnail image", + "type": "image/jpeg" + }, + "B1": { + "type": "image/x.geotiff", + "eo:bands": [ + 0 + ], + "title": "Band 1 (coastal)" + }, + "B2": { + "type": "image/x.geotiff", + "eo:bands": [ + 1 + ], + "title": "Band 2 (blue)" + }, + "B3": { + "type": "image/x.geotiff", + "eo:bands": [ + 2 + ], + "title": "Band 3 (green)" + }, + "B4": { + "type": "image/x.geotiff", + "eo:bands": [ + 3 + ], + "title": "Band 4 (red)" + }, + "B5": { + "type": "image/x.geotiff", + "eo:bands": [ + 4 + ], + "title": "Band 5 (nir)" + }, + "B6": { + "type": "image/x.geotiff", + "eo:bands": [ + 5 + ], + "title": "Band 6 (swir16)" + }, + "B7": { + "type": "image/x.geotiff", + "eo:bands": [ + 6 + ], + "title": "Band 7 (swir22)" + }, + "B8": { + "type": "image/x.geotiff", + "eo:bands": [ + 7 + ], + "title": "Band 8 (pan)" + }, + "B9": { + "type": "image/x.geotiff", + "eo:bands": [ + 8 + ], + "title": "Band 9 (cirrus)" + }, + "B10": { + "type": "image/x.geotiff", + "eo:bands": [ + 9 + ], + "title": "Band 10 (lwir)" + }, + "B11": { + "type": "image/x.geotiff", + "eo:bands": [ + 10 + ], + "title": "Band 11 (lwir)" + }, + "ANG": { + "title": "Angle coefficients file", + "type": "text/plain" + }, + "MTL": { + "title": "original metadata file", + "type": "text/plain" + }, + "BQA": { + "title": "Band quality data", + "type": "image/x.geotiff" + } + }, + "links": [ + { + "rel": "self", + "href": "https://n34f767n91.execute-api.us-east-1.amazonaws.com/prod/collections/landsat-8-l1" + }, + { + "rel": "parent", + "href": "https://n34f767n91.execute-api.us-east-1.amazonaws.com/prod/stac" + }, + { + "rel": "root", + "href": "https://n34f767n91.execute-api.us-east-1.amazonaws.com/prod/stac" + }, + { + "rel": "items", + "href": "https://n34f767n91.execute-api.us-east-1.amazonaws.com/prod/collections/landsat-8-l1/items" + } + ] + } + ], + "search": { + "endpoint": "https://sat-api.developmentseed.org/", + "parameters": { + "bbox": [ + -110, + 39.5, + -105, + 40.5 + ], + "collections": ["landsat-8-l1"], + "datetime": "2018-02-01/2018-02-10", + "query": { + "eo:cloud_cover": { + "lt": "50" + } + } + } + } +} \ No newline at end of file diff --git a/extensions/single-file-stac/json-schema/schema.json b/extensions/single-file-stac/json-schema/schema.json new file mode 100644 index 000000000..0bf24fdce --- /dev/null +++ b/extensions/single-file-stac/json-schema/schema.json @@ -0,0 +1,38 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "extension-single-file-stac.json#", + "title": "Single File STAC Extension", + "description": "Single File STAC Extension to combine Collections and Items in single file catalog", + "allOf": [ + { + "$ref": "../../../master/item-spec/json-schema/itemcollection.json" + }, + { + "$ref": "#/definitions/single-file-stac" + } + ], + "definitions": { + "collections": { + "type": "array", + "items": { + "$ref": "../../collection-spec/json-schema/collection.json" + } + }, + "search": { + "type": "object", + "required": [ + "endpoint" + ], + "properties": { + "endpoint": { + "title": "STAC compliant endpoint", + "type": "string" + }, + "parameters": { + "title": "Search parameters", + "type": "object" + } + } + } + } +} \ No newline at end of file From 815f960a5718e3bbe8e72f9febe580483427204a Mon Sep 17 00:00:00 2001 From: Matthew Hanson Date: Tue, 20 Aug 2019 10:44:01 -0400 Subject: [PATCH 2/4] single file stac - updated readmes --- extensions/README.md | 6 +----- extensions/single-file-stac/README.md | 6 ++++-- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/extensions/README.md b/extensions/README.md index 74d5bd6b5..abd10ad6c 100644 --- a/extensions/README.md +++ b/extensions/README.md @@ -54,12 +54,8 @@ An extension can add new fields to STAC entities (content extension), or can add | [Label](label/README.md) (`label`) | Item | Items that relate labeled AOIs with source imagery | *Proposal* | | [Point Cloud](pointcloud/README.md) (`pc`) | Item | Provides a way to describe point cloud datasets. The point clouds can come from either active or passive sensors, and data is frequently acquired using tools such as LiDAR or coincidence-matched imagery. | *Proposal* | | [SAR](sar/README.md) (`sar`) | Item | Covers synthetic-aperture radar data that represents a snapshot of the earth for a single date and time. | *Proposal* | -<<<<<<< HEAD -| [Scientific](scientific/README.md) (`sci`) | Item | Scientific metadata is considered to be data that indicate from which publication data originates and how the data itself should be cited or referenced. | *Proposal* | -| [Single File STAC](single-file-stac/README.md) (-) | Catloag +Collection +Item | An extension to provide a set of Collections and Items as a single file catalog. | *Proposal* | -======= | [Scientific](scientific/README.md) (`sci`) | Item +Collection | Scientific metadata is considered to be data that indicate from which publication data originates and how the data itself should be cited or referenced. | *Proposal* | ->>>>>>> a76d904270c4a369582b2319daa655e97d3f1b02 +| [Single File STAC](single-file-stac/README.md) (-) | Catalog +Collection +Item | An extension to provide a set of Collections and Items as a single file catalog. | *Proposal* | ## Third-party / vendor extensions diff --git a/extensions/single-file-stac/README.md b/extensions/single-file-stac/README.md index 32ec1d655..ef5d532b4 100644 --- a/extensions/single-file-stac/README.md +++ b/extensions/single-file-stac/README.md @@ -2,14 +2,16 @@ **Extension [Maturity Classification](../README.md#extension-maturity): Proposal** -An extension to provide a set of Collections and Items as a single file catalog. +An extension to provide a set of Collections and Items as a single file catalog. The single file is a self contained catalog that contains everything that would normally be in a linked set of STAC files. This format is useful to save a portion of a catalog, or when creating a small catalog from derived data that should remain portable. It is most useful for saving the results of a search from a STAC API, as the Items, Collections, and optionally the search parameters are all saved within the single file. Hierarchical links have no meaning in a single file STAC, and so, if present, should be removed when creating a single file catalog. + +The Items in the single file catalog should not be merged with the Collection properties (i.e., common properties). The Collections are all included in the file as well, so there is no need to duplicate the common properties for every Item in the catalog. - [Example](examples/example.json) - [JSON Schema](json-schema/schema.json) ## Catalog fields -A Single File STAC is a complete STAC catalog contained in a single file. It is sometimes useful to save a portion of a catalog (such as gained through a search) as single file so it is more portable than a set of linked files. +A Single File STAC is a complete STAC catalog contained in a single file. A Single File STAC is an [ItemCollection Object](../../item-spec/itemcollection-spec.md). This GeoJSON FeatureCollection has Features which are Items, but the Collections are still needed. From 7767baeb4bee0e5902a58baa06f679d55315a55b Mon Sep 17 00:00:00 2001 From: Matthew Hanson Date: Tue, 20 Aug 2019 11:01:57 -0400 Subject: [PATCH 3/4] single-file-stac ext: update readme --- extensions/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/README.md b/extensions/README.md index abd10ad6c..23fc03c37 100644 --- a/extensions/README.md +++ b/extensions/README.md @@ -55,7 +55,7 @@ An extension can add new fields to STAC entities (content extension), or can add | [Point Cloud](pointcloud/README.md) (`pc`) | Item | Provides a way to describe point cloud datasets. The point clouds can come from either active or passive sensors, and data is frequently acquired using tools such as LiDAR or coincidence-matched imagery. | *Proposal* | | [SAR](sar/README.md) (`sar`) | Item | Covers synthetic-aperture radar data that represents a snapshot of the earth for a single date and time. | *Proposal* | | [Scientific](scientific/README.md) (`sci`) | Item +Collection | Scientific metadata is considered to be data that indicate from which publication data originates and how the data itself should be cited or referenced. | *Proposal* | -| [Single File STAC](single-file-stac/README.md) (-) | Catalog +Collection +Item | An extension to provide a set of Collections and Items as a single file catalog. | *Proposal* | +| [Single File STAC](single-file-stac/README.md) (-) | ItemCollection | An extension to provide a set of Collections and Items as a single file catalog. | *Proposal* | ## Third-party / vendor extensions From ff67e2a68cdf827bae7e24bc3547a3383bc6e9a4 Mon Sep 17 00:00:00 2001 From: Matthew Hanson Date: Tue, 20 Aug 2019 11:02:43 -0400 Subject: [PATCH 4/4] single-file-stac: update changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 518785286..2f81e9904 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,7 +27,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - **stac_extensions**: Introduced this field for Items, Catalogs and Collections. - Property `summaries` have been added to catalogs and collections. - API Transaction extension supports optimistic locking through use of the ETag header. -- [Single File Catalog extension](extensions/single-file-catalog/README.md) added as a format to have a set of Collections and Items in a single file. +- [Single File Catalog extension](extensions/single-file-stac/README.md) added as a format to have a set of Collections and Items in a single file. - [Label extension](extensions/label/README.md) added with additional fields for describing labeled data, such as used for training data or from the output of a classification - Timestamp fields added to `Item`: `created` and `updated` to refer to the datetime the metadata file was created or updated. - Added Search Metadata API extension which adds fields to a response from a STAC API such as the number of items found and how many were returned.