diff --git a/_sources/extensions/raster/context.jsonld b/_sources/extensions/raster/context.jsonld new file mode 100644 index 0000000..33866b5 --- /dev/null +++ b/_sources/extensions/raster/context.jsonld @@ -0,0 +1,15 @@ +{ + "@context": { + "raster": "urn:stac:extensions/raster#", + "raster:bands": { + "@id": "raster:bands", + "@context": { + "@vocab": "raster" + } + }, + "raster:range": { + "@id": "raster:range", + "@container": "@list" + } + } +} \ No newline at end of file diff --git a/_sources/extensions/raster/context.jsonld.wip b/_sources/extensions/raster/context.jsonld.wip deleted file mode 100644 index 871fdda..0000000 --- a/_sources/extensions/raster/context.jsonld.wip +++ /dev/null @@ -1,22 +0,0 @@ -{ - "@context": { - "stac": "urn:stac:vocab#", - "raster": "urn:stac:extensions/raster#", - "sosa": "http://www.w3.org/ns/sosa/", - "qudt": "http://qudt.org/1.1/schema/qudt#", - "raster:bands": { - "@id": "raster:bands", - "@context": { - "aotk": "http://vocab.nerc.ac.uk/standard_name/atmosphere_optical_thickness_due_to_ambient_aerosol_particles/", - "grib:element": { - "@id": "sosa:observedProperty", - "@type": "@id", - "@context": { - "@base": "http://w3id.org/ogc/dev/stac-examples/bands/" - } - }, - "unit": "qudt:unit" - } - } - } -} \ No newline at end of file diff --git a/_sources/extensions/raster/examples/ex.json b/_sources/extensions/raster/examples/ex.json new file mode 100644 index 0000000..46fc408 --- /dev/null +++ b/_sources/extensions/raster/examples/ex.json @@ -0,0 +1,745 @@ +{ + "type": "Feature", + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/eo/v1.0.0/schema.json", + "https://stac-extensions.github.io/view/v1.0.0/schema.json", + "https://stac-extensions.github.io/projection/v1.0.0/schema.json", + "https://stac-extensions.github.io/raster/v1.1.0/schema.json" + ], + "id": "S2B_33SVB_20210221_0_L2A", + "bbox": [ + 13.86148243891681, + 36.95257399124932, + 15.111074610520053, + 37.94752813015372 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 13.876381589019879, + 36.95257399124932 + ], + [ + 13.86148243891681, + 37.942072015005024 + ], + [ + 15.111074610520053, + 37.94752813015372 + ], + [ + 15.109620666835209, + 36.95783951241028 + ], + [ + 13.876381589019879, + 36.95257399124932 + ] + ] + ] + }, + "properties": { + "datetime": "2021-02-21T10:00:17Z", + "platform": "sentinel-2b", + "constellation": "sentinel-2", + "instruments": [ + "msi" + ], + "gsd": 10, + "view:off_nadir": 0, + "proj:epsg": 32633, + "sentinel:utm_zone": 33, + "sentinel:latitude_band": "S", + "sentinel:grid_square": "VB", + "sentinel:sequence": "0", + "sentinel:product_id": "S2B_MSIL2A_20210221T095029_N0214_R079_T33SVB_20210221T115149", + "sentinel:data_coverage": 100, + "eo:cloud_cover": 21.22, + "sentinel:valid_cloud_cover": true + }, + "collection": "sentinel-s2-l2a-cogs", + "assets": { + "thumbnail": { + "title": "Thumbnail", + "type": "image/png", + "roles": [ + "thumbnail" + ], + "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/33/S/VB/2021/2/21/0/preview.jpg" + }, + "overview": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": [ + "overview" + ], + "gsd": 10, + "eo:bands": [ + { + "name": "B04", + "common_name": "red", + "center_wavelength": 0.6645, + "full_width_half_max": 0.038 + }, + { + "name": "B03", + "common_name": "green", + "center_wavelength": 0.56, + "full_width_half_max": 0.045 + }, + { + "name": "B02", + "common_name": "blue", + "center_wavelength": 0.4966, + "full_width_half_max": 0.098 + } + ], + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/33/S/VB/2021/2/S2B_33SVB_20210221_0_L2A/L2A_PVI.tif", + "proj:shape": [ + 343, + 343 + ], + "proj:transform": [ + 320, + 0, + 399960, + 0, + -320, + 4200000, + 0, + 0, + 1 + ] + }, + "info": { + "title": "Original JSON metadata", + "type": "application/json", + "roles": [ + "metadata" + ], + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/33/S/VB/2021/2/21/0/tileInfo.json" + }, + "metadata": { + "title": "Original XML metadata", + "type": "application/xml", + "roles": [ + "metadata" + ], + "href": "https://roda.sentinel-hub.com/sentinel-s2-l2a/tiles/33/S/VB/2021/2/21/0/metadata.xml" + }, + "visual": { + "title": "True color image", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": [ + "overview" + ], + "gsd": 10, + "eo:bands": [ + { + "name": "B04", + "common_name": "red", + "center_wavelength": 0.6645, + "full_width_half_max": 0.038 + }, + { + "name": "B03", + "common_name": "green", + "center_wavelength": 0.56, + "full_width_half_max": 0.045 + }, + { + "name": "B02", + "common_name": "blue", + "center_wavelength": 0.4966, + "full_width_half_max": 0.098 + } + ], + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/33/S/VB/2021/2/S2B_33SVB_20210221_0_L2A/TCI.tif", + "proj:shape": [ + 10980, + 10980 + ], + "proj:transform": [ + 10, + 0, + 399960, + 0, + -10, + 4200000, + 0, + 0, + 1 + ] + }, + "B01": { + "title": "Band 1 (coastal) BOA reflectance", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": [ + "data" + ], + "gsd": 60, + "eo:bands": [ + { + "name": "B01", + "common_name": "coastal", + "center_wavelength": 0.4439, + "full_width_half_max": 0.027 + } + ], + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/33/S/VB/2021/2/S2B_33SVB_20210221_0_L2A/B01.tif", + "proj:shape": [ + 1830, + 1830 + ], + "proj:transform": [ + 60, + 0, + 399960, + 0, + -60, + 4200000, + 0, + 0, + 1 + ], + "raster:bands": [ + { + "data_type": "uint16", + "spatial_resolution": 60, + "bits_per_sample": 15, + "nodata": 0, + "statistics": { + "minimum": 1, + "maximum": 20567, + "mean": 2339.4759595597, + "stddev": 3026.6973619954, + "valid_percent": 99.83 + } + } + ] + }, + "B02": { + "title": "Band 2 (blue) BOA reflectance", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": [ + "data" + ], + "gsd": 10, + "eo:bands": [ + { + "name": "B02", + "common_name": "blue", + "center_wavelength": 0.4966, + "full_width_half_max": 0.098 + } + ], + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/33/S/VB/2021/2/S2B_33SVB_20210221_0_L2A/B02.tif", + "proj:shape": [ + 10980, + 10980 + ], + "proj:transform": [ + 10, + 0, + 399960, + 0, + -10, + 4200000, + 0, + 0, + 1 + ], + "raster:bands": [ + { + "data_type": "uint16", + "spatial_resolution": 10, + "bits_per_sample": 15, + "nodata": 0, + "statistics": { + "minimum": 1, + "maximum": 19264, + "mean": 2348.069117847, + "stddev": 2916.5446249911, + "valid_percent": 99.99 + } + } + ] + }, + "B03": { + "title": "Band 3 (green) BOA reflectance", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": [ + "data" + ], + "gsd": 10, + "eo:bands": [ + { + "name": "B03", + "common_name": "green", + "center_wavelength": 0.56, + "full_width_half_max": 0.045 + } + ], + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/33/S/VB/2021/2/S2B_33SVB_20210221_0_L2A/B03.tif", + "proj:shape": [ + 10980, + 10980 + ], + "proj:transform": [ + 10, + 0, + 399960, + 0, + -10, + 4200000, + 0, + 0, + 1 + ], + "raster:bands": [ + { + "data_type": "uint16", + "spatial_resolution": 10, + "bits_per_sample": 15, + "nodata": 0, + "statistics": { + "minimum": 1, + "maximum": 18064, + "mean": 2384.4680007438, + "stddev": 2675.410513295, + "valid_percent": 99.999 + } + } + ] + }, + "B04": { + "title": "Band 4 (red) BOA reflectance", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": [ + "data" + ], + "gsd": 10, + "eo:bands": [ + { + "name": "B04", + "common_name": "red", + "center_wavelength": 0.6645, + "full_width_half_max": 0.038 + } + ], + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/33/S/VB/2021/2/S2B_33SVB_20210221_0_L2A/B04.tif", + "proj:shape": [ + 10980, + 10980 + ], + "proj:transform": [ + 10, + 0, + 399960, + 0, + -10, + 4200000, + 0, + 0, + 1 + ], + "raster:bands": [ + { + "data_type": "uint16", + "spatial_resolution": 10, + "bits_per_sample": 15, + "nodata": 0, + "statistics": { + "minimum": 1, + "maximum": 17200, + "mean": 2273.9667970732, + "stddev": 2618.272802792, + "valid_percent": 99.999 + } + } + ] + }, + "B05": { + "title": "Band 5 BOA reflectance", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": [ + "data" + ], + "gsd": 20, + "eo:bands": [ + { + "name": "B05", + "center_wavelength": 0.7039, + "full_width_half_max": 0.019 + } + ], + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/33/S/VB/2021/2/S2B_33SVB_20210221_0_L2A/B05.tif", + "proj:shape": [ + 5490, + 5490 + ], + "proj:transform": [ + 20, + 0, + 399960, + 0, + -20, + 4200000, + 0, + 0, + 1 + ], + "raster:bands": [ + { + "data_type": "uint16", + "spatial_resolution": 20, + "bits_per_sample": 15, + "nodata": 0, + "statistics": { + "minimum": 1, + "maximum": 16842, + "mean": 2634.1490243416, + "stddev": 2634.1490243416, + "valid_percent": 99.999 + } + } + ] + }, + "B06": { + "title": "Band 6 BOA reflectance", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": [ + "data" + ], + "gsd": 20, + "eo:bands": [ + { + "name": "B06", + "center_wavelength": 0.7402, + "full_width_half_max": 0.018 + } + ], + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/33/S/VB/2021/2/S2B_33SVB_20210221_0_L2A/B06.tif", + "proj:shape": [ + 5490, + 5490 + ], + "proj:transform": [ + 20, + 0, + 399960, + 0, + -20, + 4200000, + 0, + 0, + 1 + ], + "raster:bands": [ + { + "data_type": "uint16", + "spatial_resolution": 20, + "bits_per_sample": 15, + "nodata": 0, + "statistics": { + "minimum": 1, + "maximum": 16502, + "mean": 3329.8844628619, + "stddev": 2303.0096294469, + "valid_percent": 99.999 + } + } + ] + }, + "B07": { + "title": "Band 7 BOA reflectance", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": [ + "data" + ], + "gsd": 20, + "eo:bands": [ + { + "name": "B07", + "center_wavelength": 0.7825, + "full_width_half_max": 0.028 + } + ], + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/33/S/VB/2021/2/S2B_33SVB_20210221_0_L2A/B07.tif", + "proj:shape": [ + 5490, + 5490 + ], + "proj:transform": [ + 20, + 0, + 399960, + 0, + -20, + 4200000, + 0, + 0, + 1 + ] + }, + "B08": { + "title": "Band 8 (nir) BOA reflectance", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": [ + "data" + ], + "gsd": 10, + "eo:bands": [ + { + "name": "B08", + "common_name": "nir", + "center_wavelength": 0.8351, + "full_width_half_max": 0.145 + } + ], + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/33/S/VB/2021/2/S2B_33SVB_20210221_0_L2A/B08.tif", + "proj:shape": [ + 10980, + 10980 + ], + "proj:transform": [ + 10, + 0, + 399960, + 0, + -10, + 4200000, + 0, + 0, + 1 + ] + }, + "B8A": { + "title": "Band 8A BOA reflectance", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": [ + "data" + ], + "gsd": 20, + "eo:bands": [ + { + "name": "B8A", + "center_wavelength": 0.8648, + "full_width_half_max": 0.033 + } + ], + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/33/S/VB/2021/2/S2B_33SVB_20210221_0_L2A/B8A.tif", + "proj:shape": [ + 5490, + 5490 + ], + "proj:transform": [ + 20, + 0, + 399960, + 0, + -20, + 4200000, + 0, + 0, + 1 + ] + }, + "B09": { + "title": "Band 9 BOA reflectance", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": [ + "data" + ], + "gsd": 60, + "eo:bands": [ + { + "name": "B09", + "center_wavelength": 0.945, + "full_width_half_max": 0.026 + } + ], + "raster:bands": [ + { + "data_type": "uint16", + "spatial_resolution": 60, + "bits_per_sample": 15, + "nodata": "nan" + } + ], + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/33/S/VB/2021/2/S2B_33SVB_20210221_0_L2A/B09.tif", + "proj:shape": [ + 1830, + 1830 + ], + "proj:transform": [ + 60, + 0, + 399960, + 0, + -60, + 4200000, + 0, + 0, + 1 + ] + }, + "B11": { + "title": "Band 11 (swir16) BOA reflectance", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": [ + "data" + ], + "gsd": 20, + "eo:bands": [ + { + "name": "B11", + "common_name": "swir16", + "center_wavelength": 1.6137, + "full_width_half_max": 0.143 + } + ], + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/33/S/VB/2021/2/S2B_33SVB_20210221_0_L2A/B11.tif", + "proj:shape": [ + 5490, + 5490 + ], + "proj:transform": [ + 20, + 0, + 399960, + 0, + -20, + 4200000, + 0, + 0, + 1 + ] + }, + "B12": { + "title": "Band 12 (swir22) BOA reflectance", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": [ + "data" + ], + "gsd": 20, + "eo:bands": [ + { + "name": "B12", + "common_name": "swir22", + "center_wavelength": 2.22024, + "full_width_half_max": 0.242 + } + ], + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/33/S/VB/2021/2/S2B_33SVB_20210221_0_L2A/B12.tif", + "proj:shape": [ + 5490, + 5490 + ], + "proj:transform": [ + 20, + 0, + 399960, + 0, + -20, + 4200000, + 0, + 0, + 1 + ] + }, + "AOT": { + "title": "Aerosol Optical Thickness (AOT)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": [ + "data" + ], + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/33/S/VB/2021/2/S2B_33SVB_20210221_0_L2A/AOT.tif", + "proj:shape": [ + 1830, + 1830 + ], + "proj:transform": [ + 60, + 0, + 399960, + 0, + -60, + 4200000, + 0, + 0, + 1 + ] + }, + "WVP": { + "title": "Water Vapour (WVP)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": [ + "data" + ], + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/33/S/VB/2021/2/S2B_33SVB_20210221_0_L2A/WVP.tif", + "proj:shape": [ + 10980, + 10980 + ], + "proj:transform": [ + 10, + 0, + 399960, + 0, + -10, + 4200000, + 0, + 0, + 1 + ] + }, + "SCL": { + "title": "Scene Classification Map (SCL)", + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": [ + "data" + ], + "href": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/33/S/VB/2021/2/S2B_33SVB_20210221_0_L2A/SCL.tif", + "proj:shape": [ + 5490, + 5490 + ], + "proj:transform": [ + 20, + 0, + 399960, + 0, + -20, + 4200000, + 0, + 0, + 1 + ] + } + }, + "virtual:assets": { + "SIR": { + "title": "Shortwave Infra-red", + "raster:range": [ + 0, + 10000 + ], + "href": [ + "#B12", + "#B8A", + "#B04" + ] + } + }, + "links": [ + { + "type": "application/json", + "rel": "collection", + "href": "sentinel-s2-l2a-cogs.json" + } + ] +} \ No newline at end of file diff --git a/_sources/extensions/raster/examples/spec-example.json b/_sources/extensions/raster/examples/spec-example.json deleted file mode 100644 index c00fdce..0000000 --- a/_sources/extensions/raster/examples/spec-example.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "type": "Collection", - "stac_version": "1.0.0", - "stac_extensions": [ - "https://stac-extensions.github.io/eo/v1.0.0/schema.json", - "https://stac-extensions.github.io/projection/v1.0.0/schema.json", - "https://stac-extensions.github.io/view/v1.0.0/schema.json" - ], - "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", - "keywords": [ - "copernicus", - "esa", - "eu", - "msi", - "radiance", - "sentinel" - ], - "providers": [ - { - "name": "European Union/ESA/Copernicus", - "roles": [ - "producer", - "licensor" - ], - "url": "https://sentinel.esa.int/web/sentinel/user-guides/sentinel-2-msi" - } - ], - "extent": { - "spatial": { - "bbox": [ - [ - -180, - -56, - 180, - 83 - ] - ] - }, - "temporal": { - "interval": [ - [ - "2015-06-23T00:00:00Z", - null - ] - ] - } - }, - "assets": { - "metadata_iso_19139": { - "roles": [ - "metadata", - "iso-19139" - ], - "href": "https://storage.googleapis.com/open-cogs/stac-examples/sentinel-2-iso-19139.xml", - "title": "ISO 19139 metadata", - "type": "application/vnd.iso.19139+xml" - } - }, - "summaries": { - "datetime": { - "minimum": "2015-06-23T00:00:00Z", - "maximum": "2019-07-10T13:44:56Z" - }, - "platform": [ - "sentinel-2a", - "sentinel-2b" - ], - "constellation": [ - "sentinel-2" - ], - "instruments": [ - "msi" - ], - "view:off_nadir": { - "minimum": 0, - "maximum": 100 - }, - "view:sun_elevation": { - "minimum": 6.78, - "maximum": 89.9 - }, - "gsd": [ - 10, - 30, - 60 - ], - "proj:epsg": [ - 32601 - ], - "eo:bands": [ - { - "name": "B1", - "common_name": "coastal", - "center_wavelength": 4.439 - }, - { - "name": "B2", - "common_name": "blue", - "center_wavelength": 4.966 - } - ] - }, - "links": [ - { - "rel": "parent", - "href": "../catalog.json", - "type": "application/json", - "title": "Example Catalog" - }, - { - "rel": "root", - "href": "../catalog.json", - "type": "application/json", - "title": "Example Catalog" - }, - { - "rel": "license", - "href": "https://scihub.copernicus.eu/twiki/pub/SciHubWebPortal/TermsConditions/Sentinel_Data_Terms_and_Conditions.pdf", - "title": "Legal notice on the use of Copernicus Sentinel Data and Service Information" - } - ] -} \ No newline at end of file diff --git a/_sources/item/context.jsonld b/_sources/item/context.jsonld new file mode 100644 index 0000000..48e2180 --- /dev/null +++ b/_sources/item/context.jsonld @@ -0,0 +1,9 @@ +{ + "@context": { + "stac": "urn:stac:vocab#", + "assets": { + "@id": "stac:assets", + "@container": "@id" + } + } +} \ No newline at end of file diff --git a/build.sh b/build.sh index 3b25137..e797fa2 100644 --- a/build.sh +++ b/build.sh @@ -1,2 +1,2 @@ # Process building blocks -docker run --pull=always --rm --workdir /workspace -v "$(pwd):/workspace" ghcr.io/opengeospatial/bblocks-postprocess --clean true \ No newline at end of file +docker run --pull=always --rm --workdir /workspace -v "$(pwd):/workspace" ghcr.io/opengeospatial/bblocks-postprocess --clean true --base-url http://localhost:9090/register/ \ No newline at end of file