diff --git a/Cargo.toml b/Cargo.toml index ec37e9c39..6ae1dfa3c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,7 +7,7 @@ members = [ "stac-async", "stac-cli", "stac-server", - "stac-validate", + "stac-validate", "stac-arrow", ] default-members = [ "stac", diff --git a/scripts/create_geoparquet.py b/scripts/create_geoparquet.py new file mode 100644 index 000000000..642bddda0 --- /dev/null +++ b/scripts/create_geoparquet.py @@ -0,0 +1,29 @@ +import stac_geoparquet +import json +from pathlib import Path +from pyarrow import Table +from pystac_client import Client + +root = Path(__file__).parents[1] +examples = root / "stac-arrow" / "examples" +if not examples.is_dir(): + examples.mkdir(parents=True) + +client = Client.open("https://planetarycomputer.microsoft.com/api/stac/v1") +item_search = client.search( + max_items=10, + collections=["sentinel-2-l2a"], + intersects={ + "type": "Point", + "coordinates": [-105.10, 40.17], + "sortby": "-properties.datetime", + }, +) +items = list(item_search.items_as_dicts()) +batches = stac_geoparquet.arrow.parse_stac_items_to_arrow(items) +table = Table.from_batches(batches) +for version in ["1.0.0", "1.1.0"]: + path = examples / f"sentinel-2-l2a-{version}.parquet" + stac_geoparquet.arrow.to_parquet(table, path, schema_version=version) +with open(examples / "sentinel-2-l2a.json", "w") as f: + json.dump(items, f) diff --git a/scripts/requirements.in b/scripts/requirements.in index 2b7069c2d..f141cc08e 100644 --- a/scripts/requirements.in +++ b/scripts/requirements.in @@ -1 +1,4 @@ +pyarrow +pystac-client stac-api-validator +git+https://github.com/stac-utils/stac-geoparquet@e13f237 diff --git a/scripts/requirements.txt b/scripts/requirements.txt index 3a75ecb1f..e3693c4c7 100644 --- a/scripts/requirements.txt +++ b/scripts/requirements.txt @@ -6,10 +6,14 @@ attrs==23.2.0 # referencing certifi==2024.6.2 # via + # pyogrio + # pyproj # requests # stac-api-validator charset-normalizer==3.3.2 # via requests +ciso8601==2.3.1 + # via stac-geoparquet click==8.1.7 # via # stac-api-validator @@ -17,6 +21,10 @@ click==8.1.7 # stac-validator deepdiff==6.7.1 # via stac-api-validator +deltalake==0.18.1 + # via stac-geoparquet +geopandas==1.0.0 + # via stac-geoparquet idna==3.7 # via requests jsonschema==4.22.0 @@ -30,23 +38,55 @@ jsonschema-specifications==2023.12.1 more-itertools==8.14.0 # via stac-api-validator numpy==2.0.0 - # via shapely + # via + # geopandas + # pandas + # pyarrow + # pyogrio + # shapely ordered-set==4.1.0 # via deepdiff orjson==3.10.5 - # via pystac + # via + # pystac + # stac-geoparquet +packaging==24.1 + # via + # geopandas + # pyogrio + # stac-geoparquet +pandas==2.2.2 + # via + # geopandas + # stac-geoparquet +pyarrow==16.1.0 + # via + # deltalake + # stac-geoparquet +pyarrow-hotfix==0.6 + # via deltalake +pyogrio==0.9.0 + # via geopandas +pyproj==3.6.1 + # via + # geopandas + # stac-geoparquet pystac==1.10.1 # via # pystac-client # stac-api-validator + # stac-geoparquet pystac-client==0.7.7 # via stac-api-validator python-dateutil==2.9.0.post0 # via + # pandas # pystac # pystac-client python-dotenv==1.0.1 # via stac-check +pytz==2024.1 + # via pandas pyyaml==6.0.1 # via # stac-api-validator @@ -66,16 +106,23 @@ rpds-py==0.18.1 # jsonschema # referencing shapely==2.0.4 - # via stac-api-validator + # via + # geopandas + # stac-api-validator + # stac-geoparquet six==1.16.0 # via python-dateutil stac-api-validator==0.6.2 # via -r scripts/requirements.in stac-check==1.3.3 # via stac-api-validator +stac-geoparquet @ git+https://github.com/stac-utils/stac-geoparquet@e13f237be2aa341ceb21abb341fc47d8fe3efeda + # via -r scripts/requirements.in stac-validator==3.3.2 # via # stac-api-validator # stac-check +tzdata==2024.1 + # via pandas urllib3==2.2.2 # via requests diff --git a/stac-arrow/Cargo.toml b/stac-arrow/Cargo.toml new file mode 100644 index 000000000..11a110442 --- /dev/null +++ b/stac-arrow/Cargo.toml @@ -0,0 +1,17 @@ +[package] +name = "stac-arrow" +version = "0.1.0" +edition = "2021" + +[features] +parquet = ["geoarrow/parquet"] +parquet-compression = ["geoarrow/parquet_compression"] + +[dependencies] +arrow = "52" +arrow-cast = "52" +geoarrow = { git = "https://github.com/geoarrow/geoarrow-rs", rev = "6fd07d5555f03b113a5cd36c7bf71c1a7cec8579" } +geojson = "0.24" +serde_json = "1" +stac = { version = "0.7", path = "../stac" } +thiserror = "1" diff --git a/stac-arrow/examples/sentinel-2-l2a-1.0.0.parquet b/stac-arrow/examples/sentinel-2-l2a-1.0.0.parquet new file mode 100644 index 000000000..89197a28a Binary files /dev/null and b/stac-arrow/examples/sentinel-2-l2a-1.0.0.parquet differ diff --git a/stac-arrow/examples/sentinel-2-l2a-1.1.0.parquet b/stac-arrow/examples/sentinel-2-l2a-1.1.0.parquet new file mode 100644 index 000000000..d6fb235ba Binary files /dev/null and b/stac-arrow/examples/sentinel-2-l2a-1.1.0.parquet differ diff --git a/stac-arrow/examples/sentinel-2-l2a.json b/stac-arrow/examples/sentinel-2-l2a.json new file mode 100644 index 000000000..a12c0b1d0 --- /dev/null +++ b/stac-arrow/examples/sentinel-2-l2a.json @@ -0,0 +1 @@ +[{"id": "S2A_MSIL2A_20240621T173911_R098_T13TDE_20240622T022427", "bbox": [-105.3697845, 39.6593604, -104.8845569, 40.6507988], "type": "Feature", "links": [{"rel": "collection", "type": "application/json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/sentinel-2-l2a"}, {"rel": "parent", "type": "application/json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/sentinel-2-l2a"}, {"rel": "root", "type": "application/json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/"}, {"rel": "self", "type": "application/geo+json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/sentinel-2-l2a/items/S2A_MSIL2A_20240621T173911_R098_T13TDE_20240622T022427"}, {"rel": "license", "href": "https://sentinel.esa.int/documents/247904/690755/Sentinel_Data_Legal_Notice"}, {"rel": "preview", "href": "https://planetarycomputer.microsoft.com/api/data/v1/item/map?collection=sentinel-2-l2a&item=S2A_MSIL2A_20240621T173911_R098_T13TDE_20240622T022427", "title": "Map of item", "type": "text/html"}], "assets": {"AOT": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/21/S2A_MSIL2A_20240621T173911_N0510_R098_T13TDE_20240622T022427.SAFE/GRANULE/L2A_T13TDE_A046999_20240621T175026/IMG_DATA/R10m/T13TDE_20240621T173911_AOT_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Aerosol optical thickness (AOT)"}, "B01": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/21/S2A_MSIL2A_20240621T173911_N0510_R098_T13TDE_20240622T022427.SAFE/GRANULE/L2A_T13TDE_A046999_20240621T175026/IMG_DATA/R60m/T13TDE_20240621T173911_B01_60m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [1830, 1830], "proj:transform": [60.0, 0.0, 399960.0, 0.0, -60.0, 4500000.0], "gsd": 60.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 1 - Coastal aerosol - 60m", "eo:bands": [{"name": "B01", "common_name": "coastal", "description": "Band 1 - Coastal aerosol", "center_wavelength": 0.443, "full_width_half_max": 0.027}]}, "B02": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/21/S2A_MSIL2A_20240621T173911_N0510_R098_T13TDE_20240622T022427.SAFE/GRANULE/L2A_T13TDE_A046999_20240621T175026/IMG_DATA/R10m/T13TDE_20240621T173911_B02_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 2 - Blue - 10m", "eo:bands": [{"name": "B02", "common_name": "blue", "description": "Band 2 - Blue", "center_wavelength": 0.49, "full_width_half_max": 0.098}]}, "B03": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/21/S2A_MSIL2A_20240621T173911_N0510_R098_T13TDE_20240622T022427.SAFE/GRANULE/L2A_T13TDE_A046999_20240621T175026/IMG_DATA/R10m/T13TDE_20240621T173911_B03_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 3 - Green - 10m", "eo:bands": [{"name": "B03", "common_name": "green", "description": "Band 3 - Green", "center_wavelength": 0.56, "full_width_half_max": 0.045}]}, "B04": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/21/S2A_MSIL2A_20240621T173911_N0510_R098_T13TDE_20240622T022427.SAFE/GRANULE/L2A_T13TDE_A046999_20240621T175026/IMG_DATA/R10m/T13TDE_20240621T173911_B04_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 4 - Red - 10m", "eo:bands": [{"name": "B04", "common_name": "red", "description": "Band 4 - Red", "center_wavelength": 0.665, "full_width_half_max": 0.038}]}, "B05": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/21/S2A_MSIL2A_20240621T173911_N0510_R098_T13TDE_20240622T022427.SAFE/GRANULE/L2A_T13TDE_A046999_20240621T175026/IMG_DATA/R20m/T13TDE_20240621T173911_B05_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 5 - Vegetation red edge 1 - 20m", "eo:bands": [{"name": "B05", "common_name": "rededge", "description": "Band 5 - Vegetation red edge 1", "center_wavelength": 0.704, "full_width_half_max": 0.019}]}, "B06": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/21/S2A_MSIL2A_20240621T173911_N0510_R098_T13TDE_20240622T022427.SAFE/GRANULE/L2A_T13TDE_A046999_20240621T175026/IMG_DATA/R20m/T13TDE_20240621T173911_B06_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 6 - Vegetation red edge 2 - 20m", "eo:bands": [{"name": "B06", "common_name": "rededge", "description": "Band 6 - Vegetation red edge 2", "center_wavelength": 0.74, "full_width_half_max": 0.018}]}, "B07": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/21/S2A_MSIL2A_20240621T173911_N0510_R098_T13TDE_20240622T022427.SAFE/GRANULE/L2A_T13TDE_A046999_20240621T175026/IMG_DATA/R20m/T13TDE_20240621T173911_B07_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 7 - Vegetation red edge 3 - 20m", "eo:bands": [{"name": "B07", "common_name": "rededge", "description": "Band 7 - Vegetation red edge 3", "center_wavelength": 0.783, "full_width_half_max": 0.028}]}, "B08": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/21/S2A_MSIL2A_20240621T173911_N0510_R098_T13TDE_20240622T022427.SAFE/GRANULE/L2A_T13TDE_A046999_20240621T175026/IMG_DATA/R10m/T13TDE_20240621T173911_B08_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 8 - NIR - 10m", "eo:bands": [{"name": "B08", "common_name": "nir", "description": "Band 8 - NIR", "center_wavelength": 0.842, "full_width_half_max": 0.145}]}, "B09": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/21/S2A_MSIL2A_20240621T173911_N0510_R098_T13TDE_20240622T022427.SAFE/GRANULE/L2A_T13TDE_A046999_20240621T175026/IMG_DATA/R60m/T13TDE_20240621T173911_B09_60m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [1830, 1830], "proj:transform": [60.0, 0.0, 399960.0, 0.0, -60.0, 4500000.0], "gsd": 60.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 9 - Water vapor - 60m", "eo:bands": [{"name": "B09", "description": "Band 9 - Water vapor", "center_wavelength": 0.945, "full_width_half_max": 0.026}]}, "B11": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/21/S2A_MSIL2A_20240621T173911_N0510_R098_T13TDE_20240622T022427.SAFE/GRANULE/L2A_T13TDE_A046999_20240621T175026/IMG_DATA/R20m/T13TDE_20240621T173911_B11_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 11 - SWIR (1.6) - 20m", "eo:bands": [{"name": "B11", "common_name": "swir16", "description": "Band 11 - SWIR (1.6)", "center_wavelength": 1.61, "full_width_half_max": 0.143}]}, "B12": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/21/S2A_MSIL2A_20240621T173911_N0510_R098_T13TDE_20240622T022427.SAFE/GRANULE/L2A_T13TDE_A046999_20240621T175026/IMG_DATA/R20m/T13TDE_20240621T173911_B12_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 12 - SWIR (2.2) - 20m", "eo:bands": [{"name": "B12", "common_name": "swir22", "description": "Band 12 - SWIR (2.2)", "center_wavelength": 2.19, "full_width_half_max": 0.242}]}, "B8A": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/21/S2A_MSIL2A_20240621T173911_N0510_R098_T13TDE_20240622T022427.SAFE/GRANULE/L2A_T13TDE_A046999_20240621T175026/IMG_DATA/R20m/T13TDE_20240621T173911_B8A_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 8A - Vegetation red edge 4 - 20m", "eo:bands": [{"name": "B8A", "common_name": "rededge", "description": "Band 8A - Vegetation red edge 4", "center_wavelength": 0.865, "full_width_half_max": 0.033}]}, "SCL": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/21/S2A_MSIL2A_20240621T173911_N0510_R098_T13TDE_20240622T022427.SAFE/GRANULE/L2A_T13TDE_A046999_20240621T175026/IMG_DATA/R20m/T13TDE_20240621T173911_SCL_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Scene classfication map (SCL)"}, "WVP": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/21/S2A_MSIL2A_20240621T173911_N0510_R098_T13TDE_20240622T022427.SAFE/GRANULE/L2A_T13TDE_A046999_20240621T175026/IMG_DATA/R10m/T13TDE_20240621T173911_WVP_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Water vapour (WVP)"}, "visual": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/21/S2A_MSIL2A_20240621T173911_N0510_R098_T13TDE_20240622T022427.SAFE/GRANULE/L2A_T13TDE_A046999_20240621T175026/IMG_DATA/R10m/T13TDE_20240621T173911_TCI_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "True color image", "eo:bands": [{"name": "B04", "common_name": "red", "description": "Band 4 - Red", "center_wavelength": 0.665, "full_width_half_max": 0.038}, {"name": "B03", "common_name": "green", "description": "Band 3 - Green", "center_wavelength": 0.56, "full_width_half_max": 0.045}, {"name": "B02", "common_name": "blue", "description": "Band 2 - Blue", "center_wavelength": 0.49, "full_width_half_max": 0.098}]}, "preview": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/21/S2A_MSIL2A_20240621T173911_N0510_R098_T13TDE_20240622T022427.SAFE/GRANULE/L2A_T13TDE_A046999_20240621T175026/QI_DATA/T13TDE_20240621T173911_PVI.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["thumbnail"], "title": "Thumbnail"}, "safe-manifest": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/21/S2A_MSIL2A_20240621T173911_N0510_R098_T13TDE_20240622T022427.SAFE/manifest.safe", "type": "application/xml", "roles": ["metadata"], "title": "SAFE manifest"}, "granule-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/21/S2A_MSIL2A_20240621T173911_N0510_R098_T13TDE_20240622T022427.SAFE/GRANULE/L2A_T13TDE_A046999_20240621T175026/MTD_TL.xml", "type": "application/xml", "roles": ["metadata"], "title": "Granule metadata"}, "inspire-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/21/S2A_MSIL2A_20240621T173911_N0510_R098_T13TDE_20240622T022427.SAFE/INSPIRE.xml", "type": "application/xml", "roles": ["metadata"], "title": "INSPIRE metadata"}, "product-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/21/S2A_MSIL2A_20240621T173911_N0510_R098_T13TDE_20240622T022427.SAFE/MTD_MSIL2A.xml", "type": "application/xml", "roles": ["metadata"], "title": "Product metadata"}, "datastrip-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/21/S2A_MSIL2A_20240621T173911_N0510_R098_T13TDE_20240622T022427.SAFE/DATASTRIP/DS_MSFT_20240622T022428_S20240621T175026/MTD_DS.xml", "type": "application/xml", "roles": ["metadata"], "title": "Datastrip metadata"}, "tilejson": {"title": "TileJSON with default rendering", "href": "https://planetarycomputer.microsoft.com/api/data/v1/item/tilejson.json?collection=sentinel-2-l2a&item=S2A_MSIL2A_20240621T173911_R098_T13TDE_20240622T022427&assets=visual&asset_bidx=visual%7C1%2C2%2C3&nodata=0&format=png", "type": "application/json", "roles": ["tiles"]}, "rendered_preview": {"title": "Rendered preview", "rel": "preview", "href": "https://planetarycomputer.microsoft.com/api/data/v1/item/preview.png?collection=sentinel-2-l2a&item=S2A_MSIL2A_20240621T173911_R098_T13TDE_20240622T022427&assets=visual&asset_bidx=visual%7C1%2C2%2C3&nodata=0&format=png", "roles": ["overview"], "type": "image/png"}}, "geometry": {"type": "Polygon", "coordinates": [[[-105.3697845, 39.6593604], [-105.3311284, 39.787199], [-105.2874041, 39.9347115], [-105.2442672, 40.0823547], [-105.1993921, 40.2294485], [-105.1552062, 40.3767272], [-105.1104372, 40.5238217], [-105.0719119, 40.6499326], [-104.8845569, 40.6507988], [-104.8862201, 39.6615512], [-105.3697845, 39.6593604]]]}, "collection": "sentinel-2-l2a", "properties": {"datetime": "2024-06-21T17:39:11.024000Z", "platform": "Sentinel-2A", "proj:epsg": 32613, "instruments": ["msi"], "s2:mgrs_tile": "13TDE", "constellation": "Sentinel 2", "s2:granule_id": "S2A_OPER_MSI_L2A_TL_MSFT_20240622T022428_A046999_T13TDE_N05.10", "eo:cloud_cover": 0.492053, "s2:datatake_id": "GS2A_20240621T173911_046999_N05.10", "s2:product_uri": "S2A_MSIL2A_20240621T173911_N0510_R098_T13TDE_20240622T022427.SAFE", "s2:datastrip_id": "S2A_OPER_MSI_L2A_DS_MSFT_20240622T022428_S20240621T175026_N05.10", "s2:product_type": "S2MSI2A", "sat:orbit_state": "descending", "s2:datatake_type": "INS-NOBS", "s2:generation_time": "2024-06-22T02:24:27.827294Z", "sat:relative_orbit": 98, "s2:water_percentage": 2.635918, "s2:mean_solar_zenith": 22.4380145724687, "s2:mean_solar_azimuth": 132.835365404243, "s2:processing_baseline": "05.10", "s2:snow_ice_percentage": 0.0, "s2:vegetation_percentage": 32.914254, "s2:thin_cirrus_percentage": 0.279712, "s2:cloud_shadow_percentage": 0.278235, "s2:nodata_pixel_percentage": 73.943585, "s2:unclassified_percentage": 0.591398, "s2:dark_features_percentage": 0.061565, "s2:not_vegetated_percentage": 63.026577, "s2:degraded_msi_data_percentage": 0.0427, "s2:high_proba_clouds_percentage": 0.064176, "s2:reflectance_conversion_factor": 0.968670706626938, "s2:medium_proba_clouds_percentage": 0.148165, "s2:saturated_defective_pixel_percentage": 0.0}, "stac_extensions": ["https://stac-extensions.github.io/eo/v1.0.0/schema.json", "https://stac-extensions.github.io/sat/v1.0.0/schema.json", "https://stac-extensions.github.io/projection/v1.0.0/schema.json"], "stac_version": "1.0.0"}, {"id": "S2B_MSIL2A_20240619T174909_R141_T13TDE_20240620T000755", "bbox": [-106.1831726, 39.6557526, -104.8845569, 40.6507988], "type": "Feature", "links": [{"rel": "collection", "type": "application/json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/sentinel-2-l2a"}, {"rel": "parent", "type": "application/json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/sentinel-2-l2a"}, {"rel": "root", "type": "application/json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/"}, {"rel": "self", "type": "application/geo+json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/sentinel-2-l2a/items/S2B_MSIL2A_20240619T174909_R141_T13TDE_20240620T000755"}, {"rel": "license", "href": "https://sentinel.esa.int/documents/247904/690755/Sentinel_Data_Legal_Notice"}, {"rel": "preview", "href": "https://planetarycomputer.microsoft.com/api/data/v1/item/map?collection=sentinel-2-l2a&item=S2B_MSIL2A_20240619T174909_R141_T13TDE_20240620T000755", "title": "Map of item", "type": "text/html"}], "assets": {"AOT": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/19/S2B_MSIL2A_20240619T174909_N0510_R141_T13TDE_20240620T000755.SAFE/GRANULE/L2A_T13TDE_A038062_20240619T175216/IMG_DATA/R10m/T13TDE_20240619T174909_AOT_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Aerosol optical thickness (AOT)"}, "B01": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/19/S2B_MSIL2A_20240619T174909_N0510_R141_T13TDE_20240620T000755.SAFE/GRANULE/L2A_T13TDE_A038062_20240619T175216/IMG_DATA/R60m/T13TDE_20240619T174909_B01_60m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [1830, 1830], "proj:transform": [60.0, 0.0, 399960.0, 0.0, -60.0, 4500000.0], "gsd": 60.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 1 - Coastal aerosol - 60m", "eo:bands": [{"name": "B01", "common_name": "coastal", "description": "Band 1 - Coastal aerosol", "center_wavelength": 0.443, "full_width_half_max": 0.027}]}, "B02": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/19/S2B_MSIL2A_20240619T174909_N0510_R141_T13TDE_20240620T000755.SAFE/GRANULE/L2A_T13TDE_A038062_20240619T175216/IMG_DATA/R10m/T13TDE_20240619T174909_B02_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 2 - Blue - 10m", "eo:bands": [{"name": "B02", "common_name": "blue", "description": "Band 2 - Blue", "center_wavelength": 0.49, "full_width_half_max": 0.098}]}, "B03": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/19/S2B_MSIL2A_20240619T174909_N0510_R141_T13TDE_20240620T000755.SAFE/GRANULE/L2A_T13TDE_A038062_20240619T175216/IMG_DATA/R10m/T13TDE_20240619T174909_B03_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 3 - Green - 10m", "eo:bands": [{"name": "B03", "common_name": "green", "description": "Band 3 - Green", "center_wavelength": 0.56, "full_width_half_max": 0.045}]}, "B04": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/19/S2B_MSIL2A_20240619T174909_N0510_R141_T13TDE_20240620T000755.SAFE/GRANULE/L2A_T13TDE_A038062_20240619T175216/IMG_DATA/R10m/T13TDE_20240619T174909_B04_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 4 - Red - 10m", "eo:bands": [{"name": "B04", "common_name": "red", "description": "Band 4 - Red", "center_wavelength": 0.665, "full_width_half_max": 0.038}]}, "B05": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/19/S2B_MSIL2A_20240619T174909_N0510_R141_T13TDE_20240620T000755.SAFE/GRANULE/L2A_T13TDE_A038062_20240619T175216/IMG_DATA/R20m/T13TDE_20240619T174909_B05_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 5 - Vegetation red edge 1 - 20m", "eo:bands": [{"name": "B05", "common_name": "rededge", "description": "Band 5 - Vegetation red edge 1", "center_wavelength": 0.704, "full_width_half_max": 0.019}]}, "B06": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/19/S2B_MSIL2A_20240619T174909_N0510_R141_T13TDE_20240620T000755.SAFE/GRANULE/L2A_T13TDE_A038062_20240619T175216/IMG_DATA/R20m/T13TDE_20240619T174909_B06_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 6 - Vegetation red edge 2 - 20m", "eo:bands": [{"name": "B06", "common_name": "rededge", "description": "Band 6 - Vegetation red edge 2", "center_wavelength": 0.74, "full_width_half_max": 0.018}]}, "B07": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/19/S2B_MSIL2A_20240619T174909_N0510_R141_T13TDE_20240620T000755.SAFE/GRANULE/L2A_T13TDE_A038062_20240619T175216/IMG_DATA/R20m/T13TDE_20240619T174909_B07_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 7 - Vegetation red edge 3 - 20m", "eo:bands": [{"name": "B07", "common_name": "rededge", "description": "Band 7 - Vegetation red edge 3", "center_wavelength": 0.783, "full_width_half_max": 0.028}]}, "B08": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/19/S2B_MSIL2A_20240619T174909_N0510_R141_T13TDE_20240620T000755.SAFE/GRANULE/L2A_T13TDE_A038062_20240619T175216/IMG_DATA/R10m/T13TDE_20240619T174909_B08_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 8 - NIR - 10m", "eo:bands": [{"name": "B08", "common_name": "nir", "description": "Band 8 - NIR", "center_wavelength": 0.842, "full_width_half_max": 0.145}]}, "B09": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/19/S2B_MSIL2A_20240619T174909_N0510_R141_T13TDE_20240620T000755.SAFE/GRANULE/L2A_T13TDE_A038062_20240619T175216/IMG_DATA/R60m/T13TDE_20240619T174909_B09_60m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [1830, 1830], "proj:transform": [60.0, 0.0, 399960.0, 0.0, -60.0, 4500000.0], "gsd": 60.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 9 - Water vapor - 60m", "eo:bands": [{"name": "B09", "description": "Band 9 - Water vapor", "center_wavelength": 0.945, "full_width_half_max": 0.026}]}, "B11": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/19/S2B_MSIL2A_20240619T174909_N0510_R141_T13TDE_20240620T000755.SAFE/GRANULE/L2A_T13TDE_A038062_20240619T175216/IMG_DATA/R20m/T13TDE_20240619T174909_B11_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 11 - SWIR (1.6) - 20m", "eo:bands": [{"name": "B11", "common_name": "swir16", "description": "Band 11 - SWIR (1.6)", "center_wavelength": 1.61, "full_width_half_max": 0.143}]}, "B12": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/19/S2B_MSIL2A_20240619T174909_N0510_R141_T13TDE_20240620T000755.SAFE/GRANULE/L2A_T13TDE_A038062_20240619T175216/IMG_DATA/R20m/T13TDE_20240619T174909_B12_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 12 - SWIR (2.2) - 20m", "eo:bands": [{"name": "B12", "common_name": "swir22", "description": "Band 12 - SWIR (2.2)", "center_wavelength": 2.19, "full_width_half_max": 0.242}]}, "B8A": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/19/S2B_MSIL2A_20240619T174909_N0510_R141_T13TDE_20240620T000755.SAFE/GRANULE/L2A_T13TDE_A038062_20240619T175216/IMG_DATA/R20m/T13TDE_20240619T174909_B8A_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 8A - Vegetation red edge 4 - 20m", "eo:bands": [{"name": "B8A", "common_name": "rededge", "description": "Band 8A - Vegetation red edge 4", "center_wavelength": 0.865, "full_width_half_max": 0.033}]}, "SCL": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/19/S2B_MSIL2A_20240619T174909_N0510_R141_T13TDE_20240620T000755.SAFE/GRANULE/L2A_T13TDE_A038062_20240619T175216/IMG_DATA/R20m/T13TDE_20240619T174909_SCL_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Scene classfication map (SCL)"}, "WVP": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/19/S2B_MSIL2A_20240619T174909_N0510_R141_T13TDE_20240620T000755.SAFE/GRANULE/L2A_T13TDE_A038062_20240619T175216/IMG_DATA/R10m/T13TDE_20240619T174909_WVP_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Water vapour (WVP)"}, "visual": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/19/S2B_MSIL2A_20240619T174909_N0510_R141_T13TDE_20240620T000755.SAFE/GRANULE/L2A_T13TDE_A038062_20240619T175216/IMG_DATA/R10m/T13TDE_20240619T174909_TCI_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "True color image", "eo:bands": [{"name": "B04", "common_name": "red", "description": "Band 4 - Red", "center_wavelength": 0.665, "full_width_half_max": 0.038}, {"name": "B03", "common_name": "green", "description": "Band 3 - Green", "center_wavelength": 0.56, "full_width_half_max": 0.045}, {"name": "B02", "common_name": "blue", "description": "Band 2 - Blue", "center_wavelength": 0.49, "full_width_half_max": 0.098}]}, "preview": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/19/S2B_MSIL2A_20240619T174909_N0510_R141_T13TDE_20240620T000755.SAFE/GRANULE/L2A_T13TDE_A038062_20240619T175216/QI_DATA/T13TDE_20240619T174909_PVI.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["thumbnail"], "title": "Thumbnail"}, "safe-manifest": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/19/S2B_MSIL2A_20240619T174909_N0510_R141_T13TDE_20240620T000755.SAFE/manifest.safe", "type": "application/xml", "roles": ["metadata"], "title": "SAFE manifest"}, "granule-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/19/S2B_MSIL2A_20240619T174909_N0510_R141_T13TDE_20240620T000755.SAFE/GRANULE/L2A_T13TDE_A038062_20240619T175216/MTD_TL.xml", "type": "application/xml", "roles": ["metadata"], "title": "Granule metadata"}, "inspire-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/19/S2B_MSIL2A_20240619T174909_N0510_R141_T13TDE_20240620T000755.SAFE/INSPIRE.xml", "type": "application/xml", "roles": ["metadata"], "title": "INSPIRE metadata"}, "product-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/19/S2B_MSIL2A_20240619T174909_N0510_R141_T13TDE_20240620T000755.SAFE/MTD_MSIL2A.xml", "type": "application/xml", "roles": ["metadata"], "title": "Product metadata"}, "datastrip-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/19/S2B_MSIL2A_20240619T174909_N0510_R141_T13TDE_20240620T000755.SAFE/DATASTRIP/DS_MSFT_20240620T000756_S20240619T175216/MTD_DS.xml", "type": "application/xml", "roles": ["metadata"], "title": "Datastrip metadata"}, "tilejson": {"title": "TileJSON with default rendering", "href": "https://planetarycomputer.microsoft.com/api/data/v1/item/tilejson.json?collection=sentinel-2-l2a&item=S2B_MSIL2A_20240619T174909_R141_T13TDE_20240620T000755&assets=visual&asset_bidx=visual%7C1%2C2%2C3&nodata=0&format=png", "type": "application/json", "roles": ["tiles"]}, "rendered_preview": {"title": "Rendered preview", "rel": "preview", "href": "https://planetarycomputer.microsoft.com/api/data/v1/item/preview.png?collection=sentinel-2-l2a&item=S2B_MSIL2A_20240619T174909_R141_T13TDE_20240620T000755&assets=visual&asset_bidx=visual%7C1%2C2%2C3&nodata=0&format=png", "roles": ["overview"], "type": "image/png"}}, "geometry": {"type": "Polygon", "coordinates": [[[-106.1831726, 40.6447948], [-104.8845569, 40.6507988], [-104.8862201, 39.6615512], [-106.1661317, 39.6557526], [-106.1831726, 40.6447948]]]}, "collection": "sentinel-2-l2a", "properties": {"datetime": "2024-06-19T17:49:09.024000Z", "platform": "Sentinel-2B", "proj:epsg": 32613, "instruments": ["msi"], "s2:mgrs_tile": "13TDE", "constellation": "Sentinel 2", "s2:granule_id": "S2B_OPER_MSI_L2A_TL_MSFT_20240620T000756_A038062_T13TDE_N05.10", "eo:cloud_cover": 62.934071, "s2:datatake_id": "GS2B_20240619T174909_038062_N05.10", "s2:product_uri": "S2B_MSIL2A_20240619T174909_N0510_R141_T13TDE_20240620T000755.SAFE", "s2:datastrip_id": "S2B_OPER_MSI_L2A_DS_MSFT_20240620T000756_S20240619T175216_N05.10", "s2:product_type": "S2MSI2A", "sat:orbit_state": "descending", "s2:datatake_type": "INS-NOBS", "s2:generation_time": "2024-06-20T00:07:55.75933Z", "sat:relative_orbit": 141, "s2:water_percentage": 0.244339, "s2:mean_solar_zenith": 21.0503949804636, "s2:mean_solar_azimuth": 138.04300868478, "s2:processing_baseline": "05.10", "s2:snow_ice_percentage": 1.645658, "s2:vegetation_percentage": 15.45532, "s2:thin_cirrus_percentage": 0.001815, "s2:cloud_shadow_percentage": 1.26265, "s2:nodata_pixel_percentage": 0.0, "s2:unclassified_percentage": 3.60679, "s2:dark_features_percentage": 1.39319, "s2:not_vegetated_percentage": 13.457981, "s2:degraded_msi_data_percentage": 0.0474, "s2:high_proba_clouds_percentage": 53.212976, "s2:reflectance_conversion_factor": 0.968998948550148, "s2:medium_proba_clouds_percentage": 9.719278, "s2:saturated_defective_pixel_percentage": 0.0}, "stac_extensions": ["https://stac-extensions.github.io/eo/v1.0.0/schema.json", "https://stac-extensions.github.io/sat/v1.0.0/schema.json", "https://stac-extensions.github.io/projection/v1.0.0/schema.json"], "stac_version": "1.0.0"}, {"id": "S2B_MSIL2A_20240616T173909_R098_T13TDE_20240616T231824", "bbox": [-105.3673243, 39.6593716, -104.8845569, 40.6507988], "type": "Feature", "links": [{"rel": "collection", "type": "application/json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/sentinel-2-l2a"}, {"rel": "parent", "type": "application/json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/sentinel-2-l2a"}, {"rel": "root", "type": "application/json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/"}, {"rel": "self", "type": "application/geo+json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/sentinel-2-l2a/items/S2B_MSIL2A_20240616T173909_R098_T13TDE_20240616T231824"}, {"rel": "license", "href": "https://sentinel.esa.int/documents/247904/690755/Sentinel_Data_Legal_Notice"}, {"rel": "preview", "href": "https://planetarycomputer.microsoft.com/api/data/v1/item/map?collection=sentinel-2-l2a&item=S2B_MSIL2A_20240616T173909_R098_T13TDE_20240616T231824", "title": "Map of item", "type": "text/html"}], "assets": {"AOT": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/16/S2B_MSIL2A_20240616T173909_N0510_R098_T13TDE_20240616T231824.SAFE/GRANULE/L2A_T13TDE_A038019_20240616T174343/IMG_DATA/R10m/T13TDE_20240616T173909_AOT_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Aerosol optical thickness (AOT)"}, "B01": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/16/S2B_MSIL2A_20240616T173909_N0510_R098_T13TDE_20240616T231824.SAFE/GRANULE/L2A_T13TDE_A038019_20240616T174343/IMG_DATA/R60m/T13TDE_20240616T173909_B01_60m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [1830, 1830], "proj:transform": [60.0, 0.0, 399960.0, 0.0, -60.0, 4500000.0], "gsd": 60.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 1 - Coastal aerosol - 60m", "eo:bands": [{"name": "B01", "common_name": "coastal", "description": "Band 1 - Coastal aerosol", "center_wavelength": 0.443, "full_width_half_max": 0.027}]}, "B02": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/16/S2B_MSIL2A_20240616T173909_N0510_R098_T13TDE_20240616T231824.SAFE/GRANULE/L2A_T13TDE_A038019_20240616T174343/IMG_DATA/R10m/T13TDE_20240616T173909_B02_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 2 - Blue - 10m", "eo:bands": [{"name": "B02", "common_name": "blue", "description": "Band 2 - Blue", "center_wavelength": 0.49, "full_width_half_max": 0.098}]}, "B03": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/16/S2B_MSIL2A_20240616T173909_N0510_R098_T13TDE_20240616T231824.SAFE/GRANULE/L2A_T13TDE_A038019_20240616T174343/IMG_DATA/R10m/T13TDE_20240616T173909_B03_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 3 - Green - 10m", "eo:bands": [{"name": "B03", "common_name": "green", "description": "Band 3 - Green", "center_wavelength": 0.56, "full_width_half_max": 0.045}]}, "B04": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/16/S2B_MSIL2A_20240616T173909_N0510_R098_T13TDE_20240616T231824.SAFE/GRANULE/L2A_T13TDE_A038019_20240616T174343/IMG_DATA/R10m/T13TDE_20240616T173909_B04_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 4 - Red - 10m", "eo:bands": [{"name": "B04", "common_name": "red", "description": "Band 4 - Red", "center_wavelength": 0.665, "full_width_half_max": 0.038}]}, "B05": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/16/S2B_MSIL2A_20240616T173909_N0510_R098_T13TDE_20240616T231824.SAFE/GRANULE/L2A_T13TDE_A038019_20240616T174343/IMG_DATA/R20m/T13TDE_20240616T173909_B05_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 5 - Vegetation red edge 1 - 20m", "eo:bands": [{"name": "B05", "common_name": "rededge", "description": "Band 5 - Vegetation red edge 1", "center_wavelength": 0.704, "full_width_half_max": 0.019}]}, "B06": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/16/S2B_MSIL2A_20240616T173909_N0510_R098_T13TDE_20240616T231824.SAFE/GRANULE/L2A_T13TDE_A038019_20240616T174343/IMG_DATA/R20m/T13TDE_20240616T173909_B06_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 6 - Vegetation red edge 2 - 20m", "eo:bands": [{"name": "B06", "common_name": "rededge", "description": "Band 6 - Vegetation red edge 2", "center_wavelength": 0.74, "full_width_half_max": 0.018}]}, "B07": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/16/S2B_MSIL2A_20240616T173909_N0510_R098_T13TDE_20240616T231824.SAFE/GRANULE/L2A_T13TDE_A038019_20240616T174343/IMG_DATA/R20m/T13TDE_20240616T173909_B07_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 7 - Vegetation red edge 3 - 20m", "eo:bands": [{"name": "B07", "common_name": "rededge", "description": "Band 7 - Vegetation red edge 3", "center_wavelength": 0.783, "full_width_half_max": 0.028}]}, "B08": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/16/S2B_MSIL2A_20240616T173909_N0510_R098_T13TDE_20240616T231824.SAFE/GRANULE/L2A_T13TDE_A038019_20240616T174343/IMG_DATA/R10m/T13TDE_20240616T173909_B08_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 8 - NIR - 10m", "eo:bands": [{"name": "B08", "common_name": "nir", "description": "Band 8 - NIR", "center_wavelength": 0.842, "full_width_half_max": 0.145}]}, "B09": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/16/S2B_MSIL2A_20240616T173909_N0510_R098_T13TDE_20240616T231824.SAFE/GRANULE/L2A_T13TDE_A038019_20240616T174343/IMG_DATA/R60m/T13TDE_20240616T173909_B09_60m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [1830, 1830], "proj:transform": [60.0, 0.0, 399960.0, 0.0, -60.0, 4500000.0], "gsd": 60.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 9 - Water vapor - 60m", "eo:bands": [{"name": "B09", "description": "Band 9 - Water vapor", "center_wavelength": 0.945, "full_width_half_max": 0.026}]}, "B11": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/16/S2B_MSIL2A_20240616T173909_N0510_R098_T13TDE_20240616T231824.SAFE/GRANULE/L2A_T13TDE_A038019_20240616T174343/IMG_DATA/R20m/T13TDE_20240616T173909_B11_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 11 - SWIR (1.6) - 20m", "eo:bands": [{"name": "B11", "common_name": "swir16", "description": "Band 11 - SWIR (1.6)", "center_wavelength": 1.61, "full_width_half_max": 0.143}]}, "B12": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/16/S2B_MSIL2A_20240616T173909_N0510_R098_T13TDE_20240616T231824.SAFE/GRANULE/L2A_T13TDE_A038019_20240616T174343/IMG_DATA/R20m/T13TDE_20240616T173909_B12_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 12 - SWIR (2.2) - 20m", "eo:bands": [{"name": "B12", "common_name": "swir22", "description": "Band 12 - SWIR (2.2)", "center_wavelength": 2.19, "full_width_half_max": 0.242}]}, "B8A": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/16/S2B_MSIL2A_20240616T173909_N0510_R098_T13TDE_20240616T231824.SAFE/GRANULE/L2A_T13TDE_A038019_20240616T174343/IMG_DATA/R20m/T13TDE_20240616T173909_B8A_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 8A - Vegetation red edge 4 - 20m", "eo:bands": [{"name": "B8A", "common_name": "rededge", "description": "Band 8A - Vegetation red edge 4", "center_wavelength": 0.865, "full_width_half_max": 0.033}]}, "SCL": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/16/S2B_MSIL2A_20240616T173909_N0510_R098_T13TDE_20240616T231824.SAFE/GRANULE/L2A_T13TDE_A038019_20240616T174343/IMG_DATA/R20m/T13TDE_20240616T173909_SCL_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Scene classfication map (SCL)"}, "WVP": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/16/S2B_MSIL2A_20240616T173909_N0510_R098_T13TDE_20240616T231824.SAFE/GRANULE/L2A_T13TDE_A038019_20240616T174343/IMG_DATA/R10m/T13TDE_20240616T173909_WVP_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Water vapour (WVP)"}, "visual": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/16/S2B_MSIL2A_20240616T173909_N0510_R098_T13TDE_20240616T231824.SAFE/GRANULE/L2A_T13TDE_A038019_20240616T174343/IMG_DATA/R10m/T13TDE_20240616T173909_TCI_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "True color image", "eo:bands": [{"name": "B04", "common_name": "red", "description": "Band 4 - Red", "center_wavelength": 0.665, "full_width_half_max": 0.038}, {"name": "B03", "common_name": "green", "description": "Band 3 - Green", "center_wavelength": 0.56, "full_width_half_max": 0.045}, {"name": "B02", "common_name": "blue", "description": "Band 2 - Blue", "center_wavelength": 0.49, "full_width_half_max": 0.098}]}, "preview": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/16/S2B_MSIL2A_20240616T173909_N0510_R098_T13TDE_20240616T231824.SAFE/GRANULE/L2A_T13TDE_A038019_20240616T174343/QI_DATA/T13TDE_20240616T173909_PVI.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["thumbnail"], "title": "Thumbnail"}, "safe-manifest": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/16/S2B_MSIL2A_20240616T173909_N0510_R098_T13TDE_20240616T231824.SAFE/manifest.safe", "type": "application/xml", "roles": ["metadata"], "title": "SAFE manifest"}, "granule-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/16/S2B_MSIL2A_20240616T173909_N0510_R098_T13TDE_20240616T231824.SAFE/GRANULE/L2A_T13TDE_A038019_20240616T174343/MTD_TL.xml", "type": "application/xml", "roles": ["metadata"], "title": "Granule metadata"}, "inspire-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/16/S2B_MSIL2A_20240616T173909_N0510_R098_T13TDE_20240616T231824.SAFE/INSPIRE.xml", "type": "application/xml", "roles": ["metadata"], "title": "INSPIRE metadata"}, "product-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/16/S2B_MSIL2A_20240616T173909_N0510_R098_T13TDE_20240616T231824.SAFE/MTD_MSIL2A.xml", "type": "application/xml", "roles": ["metadata"], "title": "Product metadata"}, "datastrip-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/16/S2B_MSIL2A_20240616T173909_N0510_R098_T13TDE_20240616T231824.SAFE/DATASTRIP/DS_MSFT_20240616T231825_S20240616T174343/MTD_DS.xml", "type": "application/xml", "roles": ["metadata"], "title": "Datastrip metadata"}, "tilejson": {"title": "TileJSON with default rendering", "href": "https://planetarycomputer.microsoft.com/api/data/v1/item/tilejson.json?collection=sentinel-2-l2a&item=S2B_MSIL2A_20240616T173909_R098_T13TDE_20240616T231824&assets=visual&asset_bidx=visual%7C1%2C2%2C3&nodata=0&format=png", "type": "application/json", "roles": ["tiles"]}, "rendered_preview": {"title": "Rendered preview", "rel": "preview", "href": "https://planetarycomputer.microsoft.com/api/data/v1/item/preview.png?collection=sentinel-2-l2a&item=S2B_MSIL2A_20240616T173909_R098_T13TDE_20240616T231824&assets=visual&asset_bidx=visual%7C1%2C2%2C3&nodata=0&format=png", "roles": ["overview"], "type": "image/png"}}, "geometry": {"type": "Polygon", "coordinates": [[[-105.3673243, 39.6593716], [-105.3623088, 39.6769552], [-105.3181881, 39.8241397], [-105.2752143, 39.9717321], [-105.2313127, 40.1191027], [-105.1867844, 40.2663496], [-105.1419315, 40.4135801], [-105.0972244, 40.5608625], [-105.0699073, 40.6499419], [-104.8845569, 40.6507988], [-104.8862201, 39.6615512], [-105.3673243, 39.6593716]]]}, "collection": "sentinel-2-l2a", "properties": {"datetime": "2024-06-16T17:39:09.024000Z", "platform": "Sentinel-2B", "proj:epsg": 32613, "instruments": ["msi"], "s2:mgrs_tile": "13TDE", "constellation": "Sentinel 2", "s2:granule_id": "S2B_OPER_MSI_L2A_TL_MSFT_20240616T231825_A038019_T13TDE_N05.10", "eo:cloud_cover": 0.452612, "s2:datatake_id": "GS2B_20240616T173909_038019_N05.10", "s2:product_uri": "S2B_MSIL2A_20240616T173909_N0510_R098_T13TDE_20240616T231824.SAFE", "s2:datastrip_id": "S2B_OPER_MSI_L2A_DS_MSFT_20240616T231825_S20240616T174343_N05.10", "s2:product_type": "S2MSI2A", "sat:orbit_state": "descending", "s2:datatake_type": "INS-NOBS", "s2:generation_time": "2024-06-16T23:18:24.557710Z", "sat:relative_orbit": 98, "s2:water_percentage": 2.904897, "s2:mean_solar_zenith": 22.3357379420763, "s2:mean_solar_azimuth": 133.426204352714, "s2:processing_baseline": "05.10", "s2:snow_ice_percentage": 0.000104, "s2:vegetation_percentage": 32.499033, "s2:thin_cirrus_percentage": 0.0, "s2:cloud_shadow_percentage": 0.395676, "s2:nodata_pixel_percentage": 74.447626, "s2:unclassified_percentage": 0.502018, "s2:dark_features_percentage": 0.086425, "s2:not_vegetated_percentage": 63.159233, "s2:degraded_msi_data_percentage": 0.0001, "s2:high_proba_clouds_percentage": 0.122236, "s2:reflectance_conversion_factor": 0.969561726907061, "s2:medium_proba_clouds_percentage": 0.330377, "s2:saturated_defective_pixel_percentage": 0.0}, "stac_extensions": ["https://stac-extensions.github.io/eo/v1.0.0/schema.json", "https://stac-extensions.github.io/sat/v1.0.0/schema.json", "https://stac-extensions.github.io/projection/v1.0.0/schema.json"], "stac_version": "1.0.0"}, {"id": "S2A_MSIL2A_20240614T174911_R141_T13TDE_20240615T025902", "bbox": [-106.1831726, 39.6557526, -104.8845569, 40.6507988], "type": "Feature", "links": [{"rel": "collection", "type": "application/json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/sentinel-2-l2a"}, {"rel": "parent", "type": "application/json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/sentinel-2-l2a"}, {"rel": "root", "type": "application/json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/"}, {"rel": "self", "type": "application/geo+json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/sentinel-2-l2a/items/S2A_MSIL2A_20240614T174911_R141_T13TDE_20240615T025902"}, {"rel": "license", "href": "https://sentinel.esa.int/documents/247904/690755/Sentinel_Data_Legal_Notice"}, {"rel": "preview", "href": "https://planetarycomputer.microsoft.com/api/data/v1/item/map?collection=sentinel-2-l2a&item=S2A_MSIL2A_20240614T174911_R141_T13TDE_20240615T025902", "title": "Map of item", "type": "text/html"}], "assets": {"AOT": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/14/S2A_MSIL2A_20240614T174911_N0510_R141_T13TDE_20240615T025902.SAFE/GRANULE/L2A_T13TDE_A046899_20240614T175723/IMG_DATA/R10m/T13TDE_20240614T174911_AOT_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Aerosol optical thickness (AOT)"}, "B01": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/14/S2A_MSIL2A_20240614T174911_N0510_R141_T13TDE_20240615T025902.SAFE/GRANULE/L2A_T13TDE_A046899_20240614T175723/IMG_DATA/R60m/T13TDE_20240614T174911_B01_60m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [1830, 1830], "proj:transform": [60.0, 0.0, 399960.0, 0.0, -60.0, 4500000.0], "gsd": 60.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 1 - Coastal aerosol - 60m", "eo:bands": [{"name": "B01", "common_name": "coastal", "description": "Band 1 - Coastal aerosol", "center_wavelength": 0.443, "full_width_half_max": 0.027}]}, "B02": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/14/S2A_MSIL2A_20240614T174911_N0510_R141_T13TDE_20240615T025902.SAFE/GRANULE/L2A_T13TDE_A046899_20240614T175723/IMG_DATA/R10m/T13TDE_20240614T174911_B02_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 2 - Blue - 10m", "eo:bands": [{"name": "B02", "common_name": "blue", "description": "Band 2 - Blue", "center_wavelength": 0.49, "full_width_half_max": 0.098}]}, "B03": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/14/S2A_MSIL2A_20240614T174911_N0510_R141_T13TDE_20240615T025902.SAFE/GRANULE/L2A_T13TDE_A046899_20240614T175723/IMG_DATA/R10m/T13TDE_20240614T174911_B03_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 3 - Green - 10m", "eo:bands": [{"name": "B03", "common_name": "green", "description": "Band 3 - Green", "center_wavelength": 0.56, "full_width_half_max": 0.045}]}, "B04": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/14/S2A_MSIL2A_20240614T174911_N0510_R141_T13TDE_20240615T025902.SAFE/GRANULE/L2A_T13TDE_A046899_20240614T175723/IMG_DATA/R10m/T13TDE_20240614T174911_B04_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 4 - Red - 10m", "eo:bands": [{"name": "B04", "common_name": "red", "description": "Band 4 - Red", "center_wavelength": 0.665, "full_width_half_max": 0.038}]}, "B05": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/14/S2A_MSIL2A_20240614T174911_N0510_R141_T13TDE_20240615T025902.SAFE/GRANULE/L2A_T13TDE_A046899_20240614T175723/IMG_DATA/R20m/T13TDE_20240614T174911_B05_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 5 - Vegetation red edge 1 - 20m", "eo:bands": [{"name": "B05", "common_name": "rededge", "description": "Band 5 - Vegetation red edge 1", "center_wavelength": 0.704, "full_width_half_max": 0.019}]}, "B06": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/14/S2A_MSIL2A_20240614T174911_N0510_R141_T13TDE_20240615T025902.SAFE/GRANULE/L2A_T13TDE_A046899_20240614T175723/IMG_DATA/R20m/T13TDE_20240614T174911_B06_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 6 - Vegetation red edge 2 - 20m", "eo:bands": [{"name": "B06", "common_name": "rededge", "description": "Band 6 - Vegetation red edge 2", "center_wavelength": 0.74, "full_width_half_max": 0.018}]}, "B07": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/14/S2A_MSIL2A_20240614T174911_N0510_R141_T13TDE_20240615T025902.SAFE/GRANULE/L2A_T13TDE_A046899_20240614T175723/IMG_DATA/R20m/T13TDE_20240614T174911_B07_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 7 - Vegetation red edge 3 - 20m", "eo:bands": [{"name": "B07", "common_name": "rededge", "description": "Band 7 - Vegetation red edge 3", "center_wavelength": 0.783, "full_width_half_max": 0.028}]}, "B08": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/14/S2A_MSIL2A_20240614T174911_N0510_R141_T13TDE_20240615T025902.SAFE/GRANULE/L2A_T13TDE_A046899_20240614T175723/IMG_DATA/R10m/T13TDE_20240614T174911_B08_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 8 - NIR - 10m", "eo:bands": [{"name": "B08", "common_name": "nir", "description": "Band 8 - NIR", "center_wavelength": 0.842, "full_width_half_max": 0.145}]}, "B09": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/14/S2A_MSIL2A_20240614T174911_N0510_R141_T13TDE_20240615T025902.SAFE/GRANULE/L2A_T13TDE_A046899_20240614T175723/IMG_DATA/R60m/T13TDE_20240614T174911_B09_60m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [1830, 1830], "proj:transform": [60.0, 0.0, 399960.0, 0.0, -60.0, 4500000.0], "gsd": 60.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 9 - Water vapor - 60m", "eo:bands": [{"name": "B09", "description": "Band 9 - Water vapor", "center_wavelength": 0.945, "full_width_half_max": 0.026}]}, "B11": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/14/S2A_MSIL2A_20240614T174911_N0510_R141_T13TDE_20240615T025902.SAFE/GRANULE/L2A_T13TDE_A046899_20240614T175723/IMG_DATA/R20m/T13TDE_20240614T174911_B11_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 11 - SWIR (1.6) - 20m", "eo:bands": [{"name": "B11", "common_name": "swir16", "description": "Band 11 - SWIR (1.6)", "center_wavelength": 1.61, "full_width_half_max": 0.143}]}, "B12": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/14/S2A_MSIL2A_20240614T174911_N0510_R141_T13TDE_20240615T025902.SAFE/GRANULE/L2A_T13TDE_A046899_20240614T175723/IMG_DATA/R20m/T13TDE_20240614T174911_B12_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 12 - SWIR (2.2) - 20m", "eo:bands": [{"name": "B12", "common_name": "swir22", "description": "Band 12 - SWIR (2.2)", "center_wavelength": 2.19, "full_width_half_max": 0.242}]}, "B8A": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/14/S2A_MSIL2A_20240614T174911_N0510_R141_T13TDE_20240615T025902.SAFE/GRANULE/L2A_T13TDE_A046899_20240614T175723/IMG_DATA/R20m/T13TDE_20240614T174911_B8A_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 8A - Vegetation red edge 4 - 20m", "eo:bands": [{"name": "B8A", "common_name": "rededge", "description": "Band 8A - Vegetation red edge 4", "center_wavelength": 0.865, "full_width_half_max": 0.033}]}, "SCL": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/14/S2A_MSIL2A_20240614T174911_N0510_R141_T13TDE_20240615T025902.SAFE/GRANULE/L2A_T13TDE_A046899_20240614T175723/IMG_DATA/R20m/T13TDE_20240614T174911_SCL_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Scene classfication map (SCL)"}, "WVP": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/14/S2A_MSIL2A_20240614T174911_N0510_R141_T13TDE_20240615T025902.SAFE/GRANULE/L2A_T13TDE_A046899_20240614T175723/IMG_DATA/R10m/T13TDE_20240614T174911_WVP_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Water vapour (WVP)"}, "visual": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/14/S2A_MSIL2A_20240614T174911_N0510_R141_T13TDE_20240615T025902.SAFE/GRANULE/L2A_T13TDE_A046899_20240614T175723/IMG_DATA/R10m/T13TDE_20240614T174911_TCI_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "True color image", "eo:bands": [{"name": "B04", "common_name": "red", "description": "Band 4 - Red", "center_wavelength": 0.665, "full_width_half_max": 0.038}, {"name": "B03", "common_name": "green", "description": "Band 3 - Green", "center_wavelength": 0.56, "full_width_half_max": 0.045}, {"name": "B02", "common_name": "blue", "description": "Band 2 - Blue", "center_wavelength": 0.49, "full_width_half_max": 0.098}]}, "preview": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/14/S2A_MSIL2A_20240614T174911_N0510_R141_T13TDE_20240615T025902.SAFE/GRANULE/L2A_T13TDE_A046899_20240614T175723/QI_DATA/T13TDE_20240614T174911_PVI.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["thumbnail"], "title": "Thumbnail"}, "safe-manifest": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/14/S2A_MSIL2A_20240614T174911_N0510_R141_T13TDE_20240615T025902.SAFE/manifest.safe", "type": "application/xml", "roles": ["metadata"], "title": "SAFE manifest"}, "granule-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/14/S2A_MSIL2A_20240614T174911_N0510_R141_T13TDE_20240615T025902.SAFE/GRANULE/L2A_T13TDE_A046899_20240614T175723/MTD_TL.xml", "type": "application/xml", "roles": ["metadata"], "title": "Granule metadata"}, "inspire-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/14/S2A_MSIL2A_20240614T174911_N0510_R141_T13TDE_20240615T025902.SAFE/INSPIRE.xml", "type": "application/xml", "roles": ["metadata"], "title": "INSPIRE metadata"}, "product-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/14/S2A_MSIL2A_20240614T174911_N0510_R141_T13TDE_20240615T025902.SAFE/MTD_MSIL2A.xml", "type": "application/xml", "roles": ["metadata"], "title": "Product metadata"}, "datastrip-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/14/S2A_MSIL2A_20240614T174911_N0510_R141_T13TDE_20240615T025902.SAFE/DATASTRIP/DS_MSFT_20240615T025903_S20240614T175723/MTD_DS.xml", "type": "application/xml", "roles": ["metadata"], "title": "Datastrip metadata"}, "tilejson": {"title": "TileJSON with default rendering", "href": "https://planetarycomputer.microsoft.com/api/data/v1/item/tilejson.json?collection=sentinel-2-l2a&item=S2A_MSIL2A_20240614T174911_R141_T13TDE_20240615T025902&assets=visual&asset_bidx=visual%7C1%2C2%2C3&nodata=0&format=png", "type": "application/json", "roles": ["tiles"]}, "rendered_preview": {"title": "Rendered preview", "rel": "preview", "href": "https://planetarycomputer.microsoft.com/api/data/v1/item/preview.png?collection=sentinel-2-l2a&item=S2A_MSIL2A_20240614T174911_R141_T13TDE_20240615T025902&assets=visual&asset_bidx=visual%7C1%2C2%2C3&nodata=0&format=png", "roles": ["overview"], "type": "image/png"}}, "geometry": {"type": "Polygon", "coordinates": [[[-106.1831726, 40.6447948], [-104.8845569, 40.6507988], [-104.8862201, 39.6615512], [-106.1661317, 39.6557526], [-106.1831726, 40.6447948]]]}, "collection": "sentinel-2-l2a", "properties": {"datetime": "2024-06-14T17:49:11.024000Z", "platform": "Sentinel-2A", "proj:epsg": 32613, "instruments": ["msi"], "s2:mgrs_tile": "13TDE", "constellation": "Sentinel 2", "s2:granule_id": "S2A_OPER_MSI_L2A_TL_MSFT_20240615T025903_A046899_T13TDE_N05.10", "eo:cloud_cover": 81.975138, "s2:datatake_id": "GS2A_20240614T174911_046899_N05.10", "s2:product_uri": "S2A_MSIL2A_20240614T174911_N0510_R141_T13TDE_20240615T025902.SAFE", "s2:datastrip_id": "S2A_OPER_MSI_L2A_DS_MSFT_20240615T025903_S20240614T175723_N05.10", "s2:product_type": "S2MSI2A", "sat:orbit_state": "descending", "s2:datatake_type": "INS-NOBS", "s2:generation_time": "2024-06-15T02:59:02.590451Z", "sat:relative_orbit": 141, "s2:water_percentage": 0.256831, "s2:mean_solar_zenith": 21.0088883968482, "s2:mean_solar_azimuth": 138.843783933498, "s2:processing_baseline": "05.10", "s2:snow_ice_percentage": 0.932608, "s2:vegetation_percentage": 2.359159, "s2:thin_cirrus_percentage": 0.065235, "s2:cloud_shadow_percentage": 1.063852, "s2:nodata_pixel_percentage": 0.0, "s2:unclassified_percentage": 1.607506, "s2:dark_features_percentage": 0.004482, "s2:not_vegetated_percentage": 11.800425, "s2:degraded_msi_data_percentage": 1.7582, "s2:high_proba_clouds_percentage": 38.844511, "s2:reflectance_conversion_factor": 0.969978969051369, "s2:medium_proba_clouds_percentage": 43.06539, "s2:saturated_defective_pixel_percentage": 0.0}, "stac_extensions": ["https://stac-extensions.github.io/eo/v1.0.0/schema.json", "https://stac-extensions.github.io/sat/v1.0.0/schema.json", "https://stac-extensions.github.io/projection/v1.0.0/schema.json"], "stac_version": "1.0.0"}, {"id": "S2A_MSIL2A_20240611T173911_R098_T13TDE_20240612T022308", "bbox": [-105.37719863, 39.65932684, -104.88455693, 40.65079881], "type": "Feature", "links": [{"rel": "collection", "type": "application/json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/sentinel-2-l2a"}, {"rel": "parent", "type": "application/json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/sentinel-2-l2a"}, {"rel": "root", "type": "application/json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/"}, {"rel": "self", "type": "application/geo+json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/sentinel-2-l2a/items/S2A_MSIL2A_20240611T173911_R098_T13TDE_20240612T022308"}, {"rel": "license", "href": "https://sentinel.esa.int/documents/247904/690755/Sentinel_Data_Legal_Notice"}, {"rel": "preview", "href": "https://planetarycomputer.microsoft.com/api/data/v1/item/map?collection=sentinel-2-l2a&item=S2A_MSIL2A_20240611T173911_R098_T13TDE_20240612T022308", "title": "Map of item", "type": "text/html"}], "assets": {"AOT": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/11/S2A_MSIL2A_20240611T173911_N0510_R098_T13TDE_20240612T022308.SAFE/GRANULE/L2A_T13TDE_A046856_20240611T174951/IMG_DATA/R10m/T13TDE_20240611T173911_AOT_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Aerosol optical thickness (AOT)"}, "B01": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/11/S2A_MSIL2A_20240611T173911_N0510_R098_T13TDE_20240612T022308.SAFE/GRANULE/L2A_T13TDE_A046856_20240611T174951/IMG_DATA/R60m/T13TDE_20240611T173911_B01_60m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [1830, 1830], "proj:transform": [60.0, 0.0, 399960.0, 0.0, -60.0, 4500000.0], "gsd": 60.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 1 - Coastal aerosol - 60m", "eo:bands": [{"name": "B01", "common_name": "coastal", "description": "Band 1 - Coastal aerosol", "center_wavelength": 0.443, "full_width_half_max": 0.027}]}, "B02": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/11/S2A_MSIL2A_20240611T173911_N0510_R098_T13TDE_20240612T022308.SAFE/GRANULE/L2A_T13TDE_A046856_20240611T174951/IMG_DATA/R10m/T13TDE_20240611T173911_B02_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 2 - Blue - 10m", "eo:bands": [{"name": "B02", "common_name": "blue", "description": "Band 2 - Blue", "center_wavelength": 0.49, "full_width_half_max": 0.098}]}, "B03": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/11/S2A_MSIL2A_20240611T173911_N0510_R098_T13TDE_20240612T022308.SAFE/GRANULE/L2A_T13TDE_A046856_20240611T174951/IMG_DATA/R10m/T13TDE_20240611T173911_B03_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 3 - Green - 10m", "eo:bands": [{"name": "B03", "common_name": "green", "description": "Band 3 - Green", "center_wavelength": 0.56, "full_width_half_max": 0.045}]}, "B04": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/11/S2A_MSIL2A_20240611T173911_N0510_R098_T13TDE_20240612T022308.SAFE/GRANULE/L2A_T13TDE_A046856_20240611T174951/IMG_DATA/R10m/T13TDE_20240611T173911_B04_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 4 - Red - 10m", "eo:bands": [{"name": "B04", "common_name": "red", "description": "Band 4 - Red", "center_wavelength": 0.665, "full_width_half_max": 0.038}]}, "B05": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/11/S2A_MSIL2A_20240611T173911_N0510_R098_T13TDE_20240612T022308.SAFE/GRANULE/L2A_T13TDE_A046856_20240611T174951/IMG_DATA/R20m/T13TDE_20240611T173911_B05_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 5 - Vegetation red edge 1 - 20m", "eo:bands": [{"name": "B05", "common_name": "rededge", "description": "Band 5 - Vegetation red edge 1", "center_wavelength": 0.704, "full_width_half_max": 0.019}]}, "B06": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/11/S2A_MSIL2A_20240611T173911_N0510_R098_T13TDE_20240612T022308.SAFE/GRANULE/L2A_T13TDE_A046856_20240611T174951/IMG_DATA/R20m/T13TDE_20240611T173911_B06_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 6 - Vegetation red edge 2 - 20m", "eo:bands": [{"name": "B06", "common_name": "rededge", "description": "Band 6 - Vegetation red edge 2", "center_wavelength": 0.74, "full_width_half_max": 0.018}]}, "B07": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/11/S2A_MSIL2A_20240611T173911_N0510_R098_T13TDE_20240612T022308.SAFE/GRANULE/L2A_T13TDE_A046856_20240611T174951/IMG_DATA/R20m/T13TDE_20240611T173911_B07_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 7 - Vegetation red edge 3 - 20m", "eo:bands": [{"name": "B07", "common_name": "rededge", "description": "Band 7 - Vegetation red edge 3", "center_wavelength": 0.783, "full_width_half_max": 0.028}]}, "B08": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/11/S2A_MSIL2A_20240611T173911_N0510_R098_T13TDE_20240612T022308.SAFE/GRANULE/L2A_T13TDE_A046856_20240611T174951/IMG_DATA/R10m/T13TDE_20240611T173911_B08_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 8 - NIR - 10m", "eo:bands": [{"name": "B08", "common_name": "nir", "description": "Band 8 - NIR", "center_wavelength": 0.842, "full_width_half_max": 0.145}]}, "B09": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/11/S2A_MSIL2A_20240611T173911_N0510_R098_T13TDE_20240612T022308.SAFE/GRANULE/L2A_T13TDE_A046856_20240611T174951/IMG_DATA/R60m/T13TDE_20240611T173911_B09_60m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [1830, 1830], "proj:transform": [60.0, 0.0, 399960.0, 0.0, -60.0, 4500000.0], "gsd": 60.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 9 - Water vapor - 60m", "eo:bands": [{"name": "B09", "description": "Band 9 - Water vapor", "center_wavelength": 0.945, "full_width_half_max": 0.026}]}, "B11": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/11/S2A_MSIL2A_20240611T173911_N0510_R098_T13TDE_20240612T022308.SAFE/GRANULE/L2A_T13TDE_A046856_20240611T174951/IMG_DATA/R20m/T13TDE_20240611T173911_B11_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 11 - SWIR (1.6) - 20m", "eo:bands": [{"name": "B11", "common_name": "swir16", "description": "Band 11 - SWIR (1.6)", "center_wavelength": 1.61, "full_width_half_max": 0.143}]}, "B12": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/11/S2A_MSIL2A_20240611T173911_N0510_R098_T13TDE_20240612T022308.SAFE/GRANULE/L2A_T13TDE_A046856_20240611T174951/IMG_DATA/R20m/T13TDE_20240611T173911_B12_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 12 - SWIR (2.2) - 20m", "eo:bands": [{"name": "B12", "common_name": "swir22", "description": "Band 12 - SWIR (2.2)", "center_wavelength": 2.19, "full_width_half_max": 0.242}]}, "B8A": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/11/S2A_MSIL2A_20240611T173911_N0510_R098_T13TDE_20240612T022308.SAFE/GRANULE/L2A_T13TDE_A046856_20240611T174951/IMG_DATA/R20m/T13TDE_20240611T173911_B8A_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 8A - Vegetation red edge 4 - 20m", "eo:bands": [{"name": "B8A", "common_name": "rededge", "description": "Band 8A - Vegetation red edge 4", "center_wavelength": 0.865, "full_width_half_max": 0.033}]}, "SCL": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/11/S2A_MSIL2A_20240611T173911_N0510_R098_T13TDE_20240612T022308.SAFE/GRANULE/L2A_T13TDE_A046856_20240611T174951/IMG_DATA/R20m/T13TDE_20240611T173911_SCL_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Scene classfication map (SCL)"}, "WVP": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/11/S2A_MSIL2A_20240611T173911_N0510_R098_T13TDE_20240612T022308.SAFE/GRANULE/L2A_T13TDE_A046856_20240611T174951/IMG_DATA/R10m/T13TDE_20240611T173911_WVP_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Water vapour (WVP)"}, "visual": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/11/S2A_MSIL2A_20240611T173911_N0510_R098_T13TDE_20240612T022308.SAFE/GRANULE/L2A_T13TDE_A046856_20240611T174951/IMG_DATA/R10m/T13TDE_20240611T173911_TCI_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "True color image", "eo:bands": [{"name": "B04", "common_name": "red", "description": "Band 4 - Red", "center_wavelength": 0.665, "full_width_half_max": 0.038}, {"name": "B03", "common_name": "green", "description": "Band 3 - Green", "center_wavelength": 0.56, "full_width_half_max": 0.045}, {"name": "B02", "common_name": "blue", "description": "Band 2 - Blue", "center_wavelength": 0.49, "full_width_half_max": 0.098}]}, "preview": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/11/S2A_MSIL2A_20240611T173911_N0510_R098_T13TDE_20240612T022308.SAFE/GRANULE/L2A_T13TDE_A046856_20240611T174951/QI_DATA/T13TDE_20240611T173911_PVI.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["thumbnail"], "title": "Thumbnail"}, "safe-manifest": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/11/S2A_MSIL2A_20240611T173911_N0510_R098_T13TDE_20240612T022308.SAFE/manifest.safe", "type": "application/xml", "roles": ["metadata"], "title": "SAFE manifest"}, "granule-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/11/S2A_MSIL2A_20240611T173911_N0510_R098_T13TDE_20240612T022308.SAFE/GRANULE/L2A_T13TDE_A046856_20240611T174951/MTD_TL.xml", "type": "application/xml", "roles": ["metadata"], "title": "Granule metadata"}, "inspire-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/11/S2A_MSIL2A_20240611T173911_N0510_R098_T13TDE_20240612T022308.SAFE/INSPIRE.xml", "type": "application/xml", "roles": ["metadata"], "title": "INSPIRE metadata"}, "product-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/11/S2A_MSIL2A_20240611T173911_N0510_R098_T13TDE_20240612T022308.SAFE/MTD_MSIL2A.xml", "type": "application/xml", "roles": ["metadata"], "title": "Product metadata"}, "datastrip-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/11/S2A_MSIL2A_20240611T173911_N0510_R098_T13TDE_20240612T022308.SAFE/DATASTRIP/DS_MSFT_20240612T022309_S20240611T174951/MTD_DS.xml", "type": "application/xml", "roles": ["metadata"], "title": "Datastrip metadata"}, "tilejson": {"title": "TileJSON with default rendering", "href": "https://planetarycomputer.microsoft.com/api/data/v1/item/tilejson.json?collection=sentinel-2-l2a&item=S2A_MSIL2A_20240611T173911_R098_T13TDE_20240612T022308&assets=visual&asset_bidx=visual%7C1%2C2%2C3&nodata=0&format=png", "type": "application/json", "roles": ["tiles"]}, "rendered_preview": {"title": "Rendered preview", "rel": "preview", "href": "https://planetarycomputer.microsoft.com/api/data/v1/item/preview.png?collection=sentinel-2-l2a&item=S2A_MSIL2A_20240611T173911_R098_T13TDE_20240612T022308&assets=visual&asset_bidx=visual%7C1%2C2%2C3&nodata=0&format=png", "roles": ["overview"], "type": "image/png"}}, "geometry": {"type": "Polygon", "coordinates": [[[-105.3771986, 39.6593268], [-105.3594524, 39.7202116], [-105.3149455, 39.8672935], [-105.2723427, 40.014926], [-105.2280622, 40.1620385], [-105.1834624, 40.3091356], [-105.1388053, 40.4562464], [-105.0943175, 40.6035236], [-105.0800533, 40.649895], [-104.8845569, 40.6507988], [-104.8862201, 39.6615512], [-105.3771986, 39.6593268]]]}, "collection": "sentinel-2-l2a", "properties": {"datetime": "2024-06-11T17:39:11.024000Z", "platform": "Sentinel-2A", "proj:epsg": 32613, "instruments": ["msi"], "s2:mgrs_tile": "13TDE", "constellation": "Sentinel 2", "s2:granule_id": "S2A_OPER_MSI_L2A_TL_MSFT_20240612T022309_A046856_T13TDE_N05.10", "eo:cloud_cover": 0.144199, "s2:datatake_id": "GS2A_20240611T173911_046856_N05.10", "s2:product_uri": "S2A_MSIL2A_20240611T173911_N0510_R098_T13TDE_20240612T022308.SAFE", "s2:datastrip_id": "S2A_OPER_MSI_L2A_DS_MSFT_20240612T022309_S20240611T174951_N05.10", "s2:product_type": "S2MSI2A", "sat:orbit_state": "descending", "s2:datatake_type": "INS-NOBS", "s2:generation_time": "2024-06-12T02:23:08.622156Z", "sat:relative_orbit": 98, "s2:water_percentage": 2.960658, "s2:mean_solar_zenith": 22.3637595333151, "s2:mean_solar_azimuth": 134.325047531205, "s2:processing_baseline": "05.10", "s2:snow_ice_percentage": 0.000124, "s2:vegetation_percentage": 37.31589, "s2:thin_cirrus_percentage": 0.0, "s2:cloud_shadow_percentage": 0.095307, "s2:nodata_pixel_percentage": 73.337454, "s2:unclassified_percentage": 0.38475, "s2:dark_features_percentage": 0.058299, "s2:not_vegetated_percentage": 59.040773, "s2:degraded_msi_data_percentage": 0.0417, "s2:high_proba_clouds_percentage": 0.051617, "s2:reflectance_conversion_factor": 0.970674129168795, "s2:medium_proba_clouds_percentage": 0.092582, "s2:saturated_defective_pixel_percentage": 0.0}, "stac_extensions": ["https://stac-extensions.github.io/eo/v1.0.0/schema.json", "https://stac-extensions.github.io/sat/v1.0.0/schema.json", "https://stac-extensions.github.io/projection/v1.1.0/schema.json"], "stac_version": "1.0.0"}, {"id": "S2B_MSIL2A_20240609T174909_R141_T13TDE_20240609T231636", "bbox": [-106.18317261, 39.65575257, -104.88455693, 40.65079881], "type": "Feature", "links": [{"rel": "collection", "type": "application/json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/sentinel-2-l2a"}, {"rel": "parent", "type": "application/json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/sentinel-2-l2a"}, {"rel": "root", "type": "application/json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/"}, {"rel": "self", "type": "application/geo+json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/sentinel-2-l2a/items/S2B_MSIL2A_20240609T174909_R141_T13TDE_20240609T231636"}, {"rel": "license", "href": "https://sentinel.esa.int/documents/247904/690755/Sentinel_Data_Legal_Notice"}, {"rel": "preview", "href": "https://planetarycomputer.microsoft.com/api/data/v1/item/map?collection=sentinel-2-l2a&item=S2B_MSIL2A_20240609T174909_R141_T13TDE_20240609T231636", "title": "Map of item", "type": "text/html"}], "assets": {"AOT": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/09/S2B_MSIL2A_20240609T174909_N0510_R141_T13TDE_20240609T231636.SAFE/GRANULE/L2A_T13TDE_A037919_20240609T175226/IMG_DATA/R10m/T13TDE_20240609T174909_AOT_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Aerosol optical thickness (AOT)"}, "B01": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/09/S2B_MSIL2A_20240609T174909_N0510_R141_T13TDE_20240609T231636.SAFE/GRANULE/L2A_T13TDE_A037919_20240609T175226/IMG_DATA/R60m/T13TDE_20240609T174909_B01_60m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [1830, 1830], "proj:transform": [60.0, 0.0, 399960.0, 0.0, -60.0, 4500000.0], "gsd": 60.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 1 - Coastal aerosol - 60m", "eo:bands": [{"name": "B01", "common_name": "coastal", "description": "Band 1 - Coastal aerosol", "center_wavelength": 0.443, "full_width_half_max": 0.027}]}, "B02": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/09/S2B_MSIL2A_20240609T174909_N0510_R141_T13TDE_20240609T231636.SAFE/GRANULE/L2A_T13TDE_A037919_20240609T175226/IMG_DATA/R10m/T13TDE_20240609T174909_B02_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 2 - Blue - 10m", "eo:bands": [{"name": "B02", "common_name": "blue", "description": "Band 2 - Blue", "center_wavelength": 0.49, "full_width_half_max": 0.098}]}, "B03": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/09/S2B_MSIL2A_20240609T174909_N0510_R141_T13TDE_20240609T231636.SAFE/GRANULE/L2A_T13TDE_A037919_20240609T175226/IMG_DATA/R10m/T13TDE_20240609T174909_B03_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 3 - Green - 10m", "eo:bands": [{"name": "B03", "common_name": "green", "description": "Band 3 - Green", "center_wavelength": 0.56, "full_width_half_max": 0.045}]}, "B04": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/09/S2B_MSIL2A_20240609T174909_N0510_R141_T13TDE_20240609T231636.SAFE/GRANULE/L2A_T13TDE_A037919_20240609T175226/IMG_DATA/R10m/T13TDE_20240609T174909_B04_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 4 - Red - 10m", "eo:bands": [{"name": "B04", "common_name": "red", "description": "Band 4 - Red", "center_wavelength": 0.665, "full_width_half_max": 0.038}]}, "B05": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/09/S2B_MSIL2A_20240609T174909_N0510_R141_T13TDE_20240609T231636.SAFE/GRANULE/L2A_T13TDE_A037919_20240609T175226/IMG_DATA/R20m/T13TDE_20240609T174909_B05_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 5 - Vegetation red edge 1 - 20m", "eo:bands": [{"name": "B05", "common_name": "rededge", "description": "Band 5 - Vegetation red edge 1", "center_wavelength": 0.704, "full_width_half_max": 0.019}]}, "B06": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/09/S2B_MSIL2A_20240609T174909_N0510_R141_T13TDE_20240609T231636.SAFE/GRANULE/L2A_T13TDE_A037919_20240609T175226/IMG_DATA/R20m/T13TDE_20240609T174909_B06_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 6 - Vegetation red edge 2 - 20m", "eo:bands": [{"name": "B06", "common_name": "rededge", "description": "Band 6 - Vegetation red edge 2", "center_wavelength": 0.74, "full_width_half_max": 0.018}]}, "B07": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/09/S2B_MSIL2A_20240609T174909_N0510_R141_T13TDE_20240609T231636.SAFE/GRANULE/L2A_T13TDE_A037919_20240609T175226/IMG_DATA/R20m/T13TDE_20240609T174909_B07_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 7 - Vegetation red edge 3 - 20m", "eo:bands": [{"name": "B07", "common_name": "rededge", "description": "Band 7 - Vegetation red edge 3", "center_wavelength": 0.783, "full_width_half_max": 0.028}]}, "B08": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/09/S2B_MSIL2A_20240609T174909_N0510_R141_T13TDE_20240609T231636.SAFE/GRANULE/L2A_T13TDE_A037919_20240609T175226/IMG_DATA/R10m/T13TDE_20240609T174909_B08_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 8 - NIR - 10m", "eo:bands": [{"name": "B08", "common_name": "nir", "description": "Band 8 - NIR", "center_wavelength": 0.842, "full_width_half_max": 0.145}]}, "B09": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/09/S2B_MSIL2A_20240609T174909_N0510_R141_T13TDE_20240609T231636.SAFE/GRANULE/L2A_T13TDE_A037919_20240609T175226/IMG_DATA/R60m/T13TDE_20240609T174909_B09_60m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [1830, 1830], "proj:transform": [60.0, 0.0, 399960.0, 0.0, -60.0, 4500000.0], "gsd": 60.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 9 - Water vapor - 60m", "eo:bands": [{"name": "B09", "description": "Band 9 - Water vapor", "center_wavelength": 0.945, "full_width_half_max": 0.026}]}, "B11": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/09/S2B_MSIL2A_20240609T174909_N0510_R141_T13TDE_20240609T231636.SAFE/GRANULE/L2A_T13TDE_A037919_20240609T175226/IMG_DATA/R20m/T13TDE_20240609T174909_B11_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 11 - SWIR (1.6) - 20m", "eo:bands": [{"name": "B11", "common_name": "swir16", "description": "Band 11 - SWIR (1.6)", "center_wavelength": 1.61, "full_width_half_max": 0.143}]}, "B12": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/09/S2B_MSIL2A_20240609T174909_N0510_R141_T13TDE_20240609T231636.SAFE/GRANULE/L2A_T13TDE_A037919_20240609T175226/IMG_DATA/R20m/T13TDE_20240609T174909_B12_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 12 - SWIR (2.2) - 20m", "eo:bands": [{"name": "B12", "common_name": "swir22", "description": "Band 12 - SWIR (2.2)", "center_wavelength": 2.19, "full_width_half_max": 0.242}]}, "B8A": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/09/S2B_MSIL2A_20240609T174909_N0510_R141_T13TDE_20240609T231636.SAFE/GRANULE/L2A_T13TDE_A037919_20240609T175226/IMG_DATA/R20m/T13TDE_20240609T174909_B8A_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 8A - Vegetation red edge 4 - 20m", "eo:bands": [{"name": "B8A", "common_name": "rededge", "description": "Band 8A - Vegetation red edge 4", "center_wavelength": 0.865, "full_width_half_max": 0.033}]}, "SCL": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/09/S2B_MSIL2A_20240609T174909_N0510_R141_T13TDE_20240609T231636.SAFE/GRANULE/L2A_T13TDE_A037919_20240609T175226/IMG_DATA/R20m/T13TDE_20240609T174909_SCL_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Scene classfication map (SCL)"}, "WVP": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/09/S2B_MSIL2A_20240609T174909_N0510_R141_T13TDE_20240609T231636.SAFE/GRANULE/L2A_T13TDE_A037919_20240609T175226/IMG_DATA/R10m/T13TDE_20240609T174909_WVP_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Water vapour (WVP)"}, "visual": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/09/S2B_MSIL2A_20240609T174909_N0510_R141_T13TDE_20240609T231636.SAFE/GRANULE/L2A_T13TDE_A037919_20240609T175226/IMG_DATA/R10m/T13TDE_20240609T174909_TCI_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "True color image", "eo:bands": [{"name": "B04", "common_name": "red", "description": "Band 4 - Red", "center_wavelength": 0.665, "full_width_half_max": 0.038}, {"name": "B03", "common_name": "green", "description": "Band 3 - Green", "center_wavelength": 0.56, "full_width_half_max": 0.045}, {"name": "B02", "common_name": "blue", "description": "Band 2 - Blue", "center_wavelength": 0.49, "full_width_half_max": 0.098}]}, "preview": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/09/S2B_MSIL2A_20240609T174909_N0510_R141_T13TDE_20240609T231636.SAFE/GRANULE/L2A_T13TDE_A037919_20240609T175226/QI_DATA/T13TDE_20240609T174909_PVI.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["thumbnail"], "title": "Thumbnail"}, "safe-manifest": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/09/S2B_MSIL2A_20240609T174909_N0510_R141_T13TDE_20240609T231636.SAFE/manifest.safe", "type": "application/xml", "roles": ["metadata"], "title": "SAFE manifest"}, "granule-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/09/S2B_MSIL2A_20240609T174909_N0510_R141_T13TDE_20240609T231636.SAFE/GRANULE/L2A_T13TDE_A037919_20240609T175226/MTD_TL.xml", "type": "application/xml", "roles": ["metadata"], "title": "Granule metadata"}, "inspire-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/09/S2B_MSIL2A_20240609T174909_N0510_R141_T13TDE_20240609T231636.SAFE/INSPIRE.xml", "type": "application/xml", "roles": ["metadata"], "title": "INSPIRE metadata"}, "product-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/09/S2B_MSIL2A_20240609T174909_N0510_R141_T13TDE_20240609T231636.SAFE/MTD_MSIL2A.xml", "type": "application/xml", "roles": ["metadata"], "title": "Product metadata"}, "datastrip-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/09/S2B_MSIL2A_20240609T174909_N0510_R141_T13TDE_20240609T231636.SAFE/DATASTRIP/DS_MSFT_20240609T231637_S20240609T175226/MTD_DS.xml", "type": "application/xml", "roles": ["metadata"], "title": "Datastrip metadata"}, "tilejson": {"title": "TileJSON with default rendering", "href": "https://planetarycomputer.microsoft.com/api/data/v1/item/tilejson.json?collection=sentinel-2-l2a&item=S2B_MSIL2A_20240609T174909_R141_T13TDE_20240609T231636&assets=visual&asset_bidx=visual%7C1%2C2%2C3&nodata=0&format=png", "type": "application/json", "roles": ["tiles"]}, "rendered_preview": {"title": "Rendered preview", "rel": "preview", "href": "https://planetarycomputer.microsoft.com/api/data/v1/item/preview.png?collection=sentinel-2-l2a&item=S2B_MSIL2A_20240609T174909_R141_T13TDE_20240609T231636&assets=visual&asset_bidx=visual%7C1%2C2%2C3&nodata=0&format=png", "roles": ["overview"], "type": "image/png"}}, "geometry": {"type": "Polygon", "coordinates": [[[-106.1831726, 40.6447948], [-104.8845569, 40.6507988], [-104.8862201, 39.6615512], [-106.1661317, 39.6557526], [-106.1831726, 40.6447948]]]}, "collection": "sentinel-2-l2a", "properties": {"datetime": "2024-06-09T17:49:09.024000Z", "platform": "Sentinel-2B", "proj:epsg": 32613, "instruments": ["msi"], "s2:mgrs_tile": "13TDE", "constellation": "Sentinel 2", "s2:granule_id": "S2B_OPER_MSI_L2A_TL_MSFT_20240609T231637_A037919_T13TDE_N05.10", "eo:cloud_cover": 36.454591, "s2:datatake_id": "GS2B_20240609T174909_037919_N05.10", "s2:product_uri": "S2B_MSIL2A_20240609T174909_N0510_R141_T13TDE_20240609T231636.SAFE", "s2:datastrip_id": "S2B_OPER_MSI_L2A_DS_MSFT_20240609T231637_S20240609T175226_N05.10", "s2:product_type": "S2MSI2A", "sat:orbit_state": "descending", "s2:datatake_type": "INS-NOBS", "s2:generation_time": "2024-06-09T23:16:36.498569Z", "sat:relative_orbit": 141, "s2:water_percentage": 0.625851, "s2:mean_solar_zenith": 21.1336466884251, "s2:mean_solar_azimuth": 139.822969781232, "s2:processing_baseline": "05.10", "s2:snow_ice_percentage": 6.579041, "s2:vegetation_percentage": 25.721213, "s2:thin_cirrus_percentage": 0.0, "s2:cloud_shadow_percentage": 2.599441, "s2:nodata_pixel_percentage": 3.3e-05, "s2:unclassified_percentage": 2.115598, "s2:dark_features_percentage": 1.138749, "s2:not_vegetated_percentage": 24.765514, "s2:degraded_msi_data_percentage": 0.0134, "s2:high_proba_clouds_percentage": 26.030231, "s2:reflectance_conversion_factor": 0.971177730073193, "s2:medium_proba_clouds_percentage": 10.424361, "s2:saturated_defective_pixel_percentage": 0.0}, "stac_extensions": ["https://stac-extensions.github.io/eo/v1.0.0/schema.json", "https://stac-extensions.github.io/sat/v1.0.0/schema.json", "https://stac-extensions.github.io/projection/v1.1.0/schema.json"], "stac_version": "1.0.0"}, {"id": "S2B_MSIL2A_20240606T173909_R098_T13TDE_20240606T231827", "bbox": [-105.36889801, 39.65936445, -104.88455693, 40.65079881], "type": "Feature", "links": [{"rel": "collection", "type": "application/json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/sentinel-2-l2a"}, {"rel": "parent", "type": "application/json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/sentinel-2-l2a"}, {"rel": "root", "type": "application/json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/"}, {"rel": "self", "type": "application/geo+json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/sentinel-2-l2a/items/S2B_MSIL2A_20240606T173909_R098_T13TDE_20240606T231827"}, {"rel": "license", "href": "https://sentinel.esa.int/documents/247904/690755/Sentinel_Data_Legal_Notice"}, {"rel": "preview", "href": "https://planetarycomputer.microsoft.com/api/data/v1/item/map?collection=sentinel-2-l2a&item=S2B_MSIL2A_20240606T173909_R098_T13TDE_20240606T231827", "title": "Map of item", "type": "text/html"}], "assets": {"AOT": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/06/S2B_MSIL2A_20240606T173909_N0510_R098_T13TDE_20240606T231827.SAFE/GRANULE/L2A_T13TDE_A037876_20240606T174223/IMG_DATA/R10m/T13TDE_20240606T173909_AOT_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Aerosol optical thickness (AOT)"}, "B01": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/06/S2B_MSIL2A_20240606T173909_N0510_R098_T13TDE_20240606T231827.SAFE/GRANULE/L2A_T13TDE_A037876_20240606T174223/IMG_DATA/R60m/T13TDE_20240606T173909_B01_60m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [1830, 1830], "proj:transform": [60.0, 0.0, 399960.0, 0.0, -60.0, 4500000.0], "gsd": 60.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 1 - Coastal aerosol - 60m", "eo:bands": [{"name": "B01", "common_name": "coastal", "description": "Band 1 - Coastal aerosol", "center_wavelength": 0.443, "full_width_half_max": 0.027}]}, "B02": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/06/S2B_MSIL2A_20240606T173909_N0510_R098_T13TDE_20240606T231827.SAFE/GRANULE/L2A_T13TDE_A037876_20240606T174223/IMG_DATA/R10m/T13TDE_20240606T173909_B02_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 2 - Blue - 10m", "eo:bands": [{"name": "B02", "common_name": "blue", "description": "Band 2 - Blue", "center_wavelength": 0.49, "full_width_half_max": 0.098}]}, "B03": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/06/S2B_MSIL2A_20240606T173909_N0510_R098_T13TDE_20240606T231827.SAFE/GRANULE/L2A_T13TDE_A037876_20240606T174223/IMG_DATA/R10m/T13TDE_20240606T173909_B03_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 3 - Green - 10m", "eo:bands": [{"name": "B03", "common_name": "green", "description": "Band 3 - Green", "center_wavelength": 0.56, "full_width_half_max": 0.045}]}, "B04": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/06/S2B_MSIL2A_20240606T173909_N0510_R098_T13TDE_20240606T231827.SAFE/GRANULE/L2A_T13TDE_A037876_20240606T174223/IMG_DATA/R10m/T13TDE_20240606T173909_B04_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 4 - Red - 10m", "eo:bands": [{"name": "B04", "common_name": "red", "description": "Band 4 - Red", "center_wavelength": 0.665, "full_width_half_max": 0.038}]}, "B05": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/06/S2B_MSIL2A_20240606T173909_N0510_R098_T13TDE_20240606T231827.SAFE/GRANULE/L2A_T13TDE_A037876_20240606T174223/IMG_DATA/R20m/T13TDE_20240606T173909_B05_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 5 - Vegetation red edge 1 - 20m", "eo:bands": [{"name": "B05", "common_name": "rededge", "description": "Band 5 - Vegetation red edge 1", "center_wavelength": 0.704, "full_width_half_max": 0.019}]}, "B06": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/06/S2B_MSIL2A_20240606T173909_N0510_R098_T13TDE_20240606T231827.SAFE/GRANULE/L2A_T13TDE_A037876_20240606T174223/IMG_DATA/R20m/T13TDE_20240606T173909_B06_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 6 - Vegetation red edge 2 - 20m", "eo:bands": [{"name": "B06", "common_name": "rededge", "description": "Band 6 - Vegetation red edge 2", "center_wavelength": 0.74, "full_width_half_max": 0.018}]}, "B07": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/06/S2B_MSIL2A_20240606T173909_N0510_R098_T13TDE_20240606T231827.SAFE/GRANULE/L2A_T13TDE_A037876_20240606T174223/IMG_DATA/R20m/T13TDE_20240606T173909_B07_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 7 - Vegetation red edge 3 - 20m", "eo:bands": [{"name": "B07", "common_name": "rededge", "description": "Band 7 - Vegetation red edge 3", "center_wavelength": 0.783, "full_width_half_max": 0.028}]}, "B08": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/06/S2B_MSIL2A_20240606T173909_N0510_R098_T13TDE_20240606T231827.SAFE/GRANULE/L2A_T13TDE_A037876_20240606T174223/IMG_DATA/R10m/T13TDE_20240606T173909_B08_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 8 - NIR - 10m", "eo:bands": [{"name": "B08", "common_name": "nir", "description": "Band 8 - NIR", "center_wavelength": 0.842, "full_width_half_max": 0.145}]}, "B09": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/06/S2B_MSIL2A_20240606T173909_N0510_R098_T13TDE_20240606T231827.SAFE/GRANULE/L2A_T13TDE_A037876_20240606T174223/IMG_DATA/R60m/T13TDE_20240606T173909_B09_60m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [1830, 1830], "proj:transform": [60.0, 0.0, 399960.0, 0.0, -60.0, 4500000.0], "gsd": 60.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 9 - Water vapor - 60m", "eo:bands": [{"name": "B09", "description": "Band 9 - Water vapor", "center_wavelength": 0.945, "full_width_half_max": 0.026}]}, "B11": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/06/S2B_MSIL2A_20240606T173909_N0510_R098_T13TDE_20240606T231827.SAFE/GRANULE/L2A_T13TDE_A037876_20240606T174223/IMG_DATA/R20m/T13TDE_20240606T173909_B11_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 11 - SWIR (1.6) - 20m", "eo:bands": [{"name": "B11", "common_name": "swir16", "description": "Band 11 - SWIR (1.6)", "center_wavelength": 1.61, "full_width_half_max": 0.143}]}, "B12": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/06/S2B_MSIL2A_20240606T173909_N0510_R098_T13TDE_20240606T231827.SAFE/GRANULE/L2A_T13TDE_A037876_20240606T174223/IMG_DATA/R20m/T13TDE_20240606T173909_B12_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 12 - SWIR (2.2) - 20m", "eo:bands": [{"name": "B12", "common_name": "swir22", "description": "Band 12 - SWIR (2.2)", "center_wavelength": 2.19, "full_width_half_max": 0.242}]}, "B8A": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/06/S2B_MSIL2A_20240606T173909_N0510_R098_T13TDE_20240606T231827.SAFE/GRANULE/L2A_T13TDE_A037876_20240606T174223/IMG_DATA/R20m/T13TDE_20240606T173909_B8A_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 8A - Vegetation red edge 4 - 20m", "eo:bands": [{"name": "B8A", "common_name": "rededge", "description": "Band 8A - Vegetation red edge 4", "center_wavelength": 0.865, "full_width_half_max": 0.033}]}, "SCL": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/06/S2B_MSIL2A_20240606T173909_N0510_R098_T13TDE_20240606T231827.SAFE/GRANULE/L2A_T13TDE_A037876_20240606T174223/IMG_DATA/R20m/T13TDE_20240606T173909_SCL_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Scene classfication map (SCL)"}, "WVP": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/06/S2B_MSIL2A_20240606T173909_N0510_R098_T13TDE_20240606T231827.SAFE/GRANULE/L2A_T13TDE_A037876_20240606T174223/IMG_DATA/R10m/T13TDE_20240606T173909_WVP_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Water vapour (WVP)"}, "visual": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/06/S2B_MSIL2A_20240606T173909_N0510_R098_T13TDE_20240606T231827.SAFE/GRANULE/L2A_T13TDE_A037876_20240606T174223/IMG_DATA/R10m/T13TDE_20240606T173909_TCI_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "True color image", "eo:bands": [{"name": "B04", "common_name": "red", "description": "Band 4 - Red", "center_wavelength": 0.665, "full_width_half_max": 0.038}, {"name": "B03", "common_name": "green", "description": "Band 3 - Green", "center_wavelength": 0.56, "full_width_half_max": 0.045}, {"name": "B02", "common_name": "blue", "description": "Band 2 - Blue", "center_wavelength": 0.49, "full_width_half_max": 0.098}]}, "preview": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/06/S2B_MSIL2A_20240606T173909_N0510_R098_T13TDE_20240606T231827.SAFE/GRANULE/L2A_T13TDE_A037876_20240606T174223/QI_DATA/T13TDE_20240606T173909_PVI.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["thumbnail"], "title": "Thumbnail"}, "safe-manifest": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/06/S2B_MSIL2A_20240606T173909_N0510_R098_T13TDE_20240606T231827.SAFE/manifest.safe", "type": "application/xml", "roles": ["metadata"], "title": "SAFE manifest"}, "granule-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/06/S2B_MSIL2A_20240606T173909_N0510_R098_T13TDE_20240606T231827.SAFE/GRANULE/L2A_T13TDE_A037876_20240606T174223/MTD_TL.xml", "type": "application/xml", "roles": ["metadata"], "title": "Granule metadata"}, "inspire-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/06/S2B_MSIL2A_20240606T173909_N0510_R098_T13TDE_20240606T231827.SAFE/INSPIRE.xml", "type": "application/xml", "roles": ["metadata"], "title": "INSPIRE metadata"}, "product-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/06/S2B_MSIL2A_20240606T173909_N0510_R098_T13TDE_20240606T231827.SAFE/MTD_MSIL2A.xml", "type": "application/xml", "roles": ["metadata"], "title": "Product metadata"}, "datastrip-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/06/S2B_MSIL2A_20240606T173909_N0510_R098_T13TDE_20240606T231827.SAFE/DATASTRIP/DS_MSFT_20240606T231829_S20240606T174223/MTD_DS.xml", "type": "application/xml", "roles": ["metadata"], "title": "Datastrip metadata"}, "tilejson": {"title": "TileJSON with default rendering", "href": "https://planetarycomputer.microsoft.com/api/data/v1/item/tilejson.json?collection=sentinel-2-l2a&item=S2B_MSIL2A_20240606T173909_R098_T13TDE_20240606T231827&assets=visual&asset_bidx=visual%7C1%2C2%2C3&nodata=0&format=png", "type": "application/json", "roles": ["tiles"]}, "rendered_preview": {"title": "Rendered preview", "rel": "preview", "href": "https://planetarycomputer.microsoft.com/api/data/v1/item/preview.png?collection=sentinel-2-l2a&item=S2B_MSIL2A_20240606T173909_R098_T13TDE_20240606T231827&assets=visual&asset_bidx=visual%7C1%2C2%2C3&nodata=0&format=png", "roles": ["overview"], "type": "image/png"}}, "geometry": {"type": "Polygon", "coordinates": [[[-105.368898, 39.6593644], [-105.3358445, 39.7710775], [-105.2913527, 39.9183001], [-105.2486594, 40.0660528], [-105.2042329, 40.2132817], [-105.1596803, 40.3604153], [-105.115048, 40.5075221], [-105.071671, 40.6499337], [-104.8845569, 40.6507988], [-104.8862201, 39.6615512], [-105.368898, 39.6593644]]]}, "collection": "sentinel-2-l2a", "properties": {"datetime": "2024-06-06T17:39:09.024000Z", "platform": "Sentinel-2B", "proj:epsg": 32613, "instruments": ["msi"], "s2:mgrs_tile": "13TDE", "constellation": "Sentinel 2", "s2:granule_id": "S2B_OPER_MSI_L2A_TL_MSFT_20240606T231829_A037876_T13TDE_N05.10", "eo:cloud_cover": 0.011402, "s2:datatake_id": "GS2B_20240606T173909_037876_N05.10", "s2:product_uri": "S2B_MSIL2A_20240606T173909_N0510_R098_T13TDE_20240606T231827.SAFE", "s2:datastrip_id": "S2B_OPER_MSI_L2A_DS_MSFT_20240606T231829_S20240606T174223_N05.10", "s2:product_type": "S2MSI2A", "sat:orbit_state": "descending", "s2:datatake_type": "INS-NOBS", "s2:generation_time": "2024-06-06T23:18:27.971474Z", "sat:relative_orbit": 98, "s2:water_percentage": 3.048574, "s2:mean_solar_zenith": 22.5582888715204, "s2:mean_solar_azimuth": 135.394346561978, "s2:processing_baseline": "05.10", "s2:snow_ice_percentage": 0.000297, "s2:vegetation_percentage": 38.229129, "s2:thin_cirrus_percentage": 0.0, "s2:cloud_shadow_percentage": 0.000802, "s2:nodata_pixel_percentage": 74.335229, "s2:unclassified_percentage": 0.373116, "s2:dark_features_percentage": 0.051012, "s2:not_vegetated_percentage": 58.285666, "s2:degraded_msi_data_percentage": 0.0001, "s2:high_proba_clouds_percentage": 0.007304, "s2:reflectance_conversion_factor": 0.97200082757173, "s2:medium_proba_clouds_percentage": 0.004098, "s2:saturated_defective_pixel_percentage": 0.0}, "stac_extensions": ["https://stac-extensions.github.io/eo/v1.0.0/schema.json", "https://stac-extensions.github.io/sat/v1.0.0/schema.json", "https://stac-extensions.github.io/projection/v1.1.0/schema.json"], "stac_version": "1.0.0"}, {"id": "S2A_MSIL2A_20240604T174911_R141_T13TDE_20240605T022145", "bbox": [-106.18317261, 39.65575257, -104.88455693, 40.65079881], "type": "Feature", "links": [{"rel": "collection", "type": "application/json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/sentinel-2-l2a"}, {"rel": "parent", "type": "application/json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/sentinel-2-l2a"}, {"rel": "root", "type": "application/json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/"}, {"rel": "self", "type": "application/geo+json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/sentinel-2-l2a/items/S2A_MSIL2A_20240604T174911_R141_T13TDE_20240605T022145"}, {"rel": "license", "href": "https://sentinel.esa.int/documents/247904/690755/Sentinel_Data_Legal_Notice"}, {"rel": "preview", "href": "https://planetarycomputer.microsoft.com/api/data/v1/item/map?collection=sentinel-2-l2a&item=S2A_MSIL2A_20240604T174911_R141_T13TDE_20240605T022145", "title": "Map of item", "type": "text/html"}], "assets": {"AOT": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/04/S2A_MSIL2A_20240604T174911_N0510_R141_T13TDE_20240605T022145.SAFE/GRANULE/L2A_T13TDE_A046756_20240604T175439/IMG_DATA/R10m/T13TDE_20240604T174911_AOT_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Aerosol optical thickness (AOT)"}, "B01": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/04/S2A_MSIL2A_20240604T174911_N0510_R141_T13TDE_20240605T022145.SAFE/GRANULE/L2A_T13TDE_A046756_20240604T175439/IMG_DATA/R60m/T13TDE_20240604T174911_B01_60m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [1830, 1830], "proj:transform": [60.0, 0.0, 399960.0, 0.0, -60.0, 4500000.0], "gsd": 60.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 1 - Coastal aerosol - 60m", "eo:bands": [{"name": "B01", "common_name": "coastal", "description": "Band 1 - Coastal aerosol", "center_wavelength": 0.443, "full_width_half_max": 0.027}]}, "B02": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/04/S2A_MSIL2A_20240604T174911_N0510_R141_T13TDE_20240605T022145.SAFE/GRANULE/L2A_T13TDE_A046756_20240604T175439/IMG_DATA/R10m/T13TDE_20240604T174911_B02_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 2 - Blue - 10m", "eo:bands": [{"name": "B02", "common_name": "blue", "description": "Band 2 - Blue", "center_wavelength": 0.49, "full_width_half_max": 0.098}]}, "B03": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/04/S2A_MSIL2A_20240604T174911_N0510_R141_T13TDE_20240605T022145.SAFE/GRANULE/L2A_T13TDE_A046756_20240604T175439/IMG_DATA/R10m/T13TDE_20240604T174911_B03_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 3 - Green - 10m", "eo:bands": [{"name": "B03", "common_name": "green", "description": "Band 3 - Green", "center_wavelength": 0.56, "full_width_half_max": 0.045}]}, "B04": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/04/S2A_MSIL2A_20240604T174911_N0510_R141_T13TDE_20240605T022145.SAFE/GRANULE/L2A_T13TDE_A046756_20240604T175439/IMG_DATA/R10m/T13TDE_20240604T174911_B04_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 4 - Red - 10m", "eo:bands": [{"name": "B04", "common_name": "red", "description": "Band 4 - Red", "center_wavelength": 0.665, "full_width_half_max": 0.038}]}, "B05": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/04/S2A_MSIL2A_20240604T174911_N0510_R141_T13TDE_20240605T022145.SAFE/GRANULE/L2A_T13TDE_A046756_20240604T175439/IMG_DATA/R20m/T13TDE_20240604T174911_B05_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 5 - Vegetation red edge 1 - 20m", "eo:bands": [{"name": "B05", "common_name": "rededge", "description": "Band 5 - Vegetation red edge 1", "center_wavelength": 0.704, "full_width_half_max": 0.019}]}, "B06": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/04/S2A_MSIL2A_20240604T174911_N0510_R141_T13TDE_20240605T022145.SAFE/GRANULE/L2A_T13TDE_A046756_20240604T175439/IMG_DATA/R20m/T13TDE_20240604T174911_B06_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 6 - Vegetation red edge 2 - 20m", "eo:bands": [{"name": "B06", "common_name": "rededge", "description": "Band 6 - Vegetation red edge 2", "center_wavelength": 0.74, "full_width_half_max": 0.018}]}, "B07": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/04/S2A_MSIL2A_20240604T174911_N0510_R141_T13TDE_20240605T022145.SAFE/GRANULE/L2A_T13TDE_A046756_20240604T175439/IMG_DATA/R20m/T13TDE_20240604T174911_B07_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 7 - Vegetation red edge 3 - 20m", "eo:bands": [{"name": "B07", "common_name": "rededge", "description": "Band 7 - Vegetation red edge 3", "center_wavelength": 0.783, "full_width_half_max": 0.028}]}, "B08": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/04/S2A_MSIL2A_20240604T174911_N0510_R141_T13TDE_20240605T022145.SAFE/GRANULE/L2A_T13TDE_A046756_20240604T175439/IMG_DATA/R10m/T13TDE_20240604T174911_B08_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 8 - NIR - 10m", "eo:bands": [{"name": "B08", "common_name": "nir", "description": "Band 8 - NIR", "center_wavelength": 0.842, "full_width_half_max": 0.145}]}, "B09": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/04/S2A_MSIL2A_20240604T174911_N0510_R141_T13TDE_20240605T022145.SAFE/GRANULE/L2A_T13TDE_A046756_20240604T175439/IMG_DATA/R60m/T13TDE_20240604T174911_B09_60m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [1830, 1830], "proj:transform": [60.0, 0.0, 399960.0, 0.0, -60.0, 4500000.0], "gsd": 60.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 9 - Water vapor - 60m", "eo:bands": [{"name": "B09", "description": "Band 9 - Water vapor", "center_wavelength": 0.945, "full_width_half_max": 0.026}]}, "B11": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/04/S2A_MSIL2A_20240604T174911_N0510_R141_T13TDE_20240605T022145.SAFE/GRANULE/L2A_T13TDE_A046756_20240604T175439/IMG_DATA/R20m/T13TDE_20240604T174911_B11_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 11 - SWIR (1.6) - 20m", "eo:bands": [{"name": "B11", "common_name": "swir16", "description": "Band 11 - SWIR (1.6)", "center_wavelength": 1.61, "full_width_half_max": 0.143}]}, "B12": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/04/S2A_MSIL2A_20240604T174911_N0510_R141_T13TDE_20240605T022145.SAFE/GRANULE/L2A_T13TDE_A046756_20240604T175439/IMG_DATA/R20m/T13TDE_20240604T174911_B12_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 12 - SWIR (2.2) - 20m", "eo:bands": [{"name": "B12", "common_name": "swir22", "description": "Band 12 - SWIR (2.2)", "center_wavelength": 2.19, "full_width_half_max": 0.242}]}, "B8A": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/04/S2A_MSIL2A_20240604T174911_N0510_R141_T13TDE_20240605T022145.SAFE/GRANULE/L2A_T13TDE_A046756_20240604T175439/IMG_DATA/R20m/T13TDE_20240604T174911_B8A_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 8A - Vegetation red edge 4 - 20m", "eo:bands": [{"name": "B8A", "common_name": "rededge", "description": "Band 8A - Vegetation red edge 4", "center_wavelength": 0.865, "full_width_half_max": 0.033}]}, "SCL": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/04/S2A_MSIL2A_20240604T174911_N0510_R141_T13TDE_20240605T022145.SAFE/GRANULE/L2A_T13TDE_A046756_20240604T175439/IMG_DATA/R20m/T13TDE_20240604T174911_SCL_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Scene classfication map (SCL)"}, "WVP": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/04/S2A_MSIL2A_20240604T174911_N0510_R141_T13TDE_20240605T022145.SAFE/GRANULE/L2A_T13TDE_A046756_20240604T175439/IMG_DATA/R10m/T13TDE_20240604T174911_WVP_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Water vapour (WVP)"}, "visual": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/04/S2A_MSIL2A_20240604T174911_N0510_R141_T13TDE_20240605T022145.SAFE/GRANULE/L2A_T13TDE_A046756_20240604T175439/IMG_DATA/R10m/T13TDE_20240604T174911_TCI_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "True color image", "eo:bands": [{"name": "B04", "common_name": "red", "description": "Band 4 - Red", "center_wavelength": 0.665, "full_width_half_max": 0.038}, {"name": "B03", "common_name": "green", "description": "Band 3 - Green", "center_wavelength": 0.56, "full_width_half_max": 0.045}, {"name": "B02", "common_name": "blue", "description": "Band 2 - Blue", "center_wavelength": 0.49, "full_width_half_max": 0.098}]}, "preview": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/04/S2A_MSIL2A_20240604T174911_N0510_R141_T13TDE_20240605T022145.SAFE/GRANULE/L2A_T13TDE_A046756_20240604T175439/QI_DATA/T13TDE_20240604T174911_PVI.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["thumbnail"], "title": "Thumbnail"}, "safe-manifest": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/04/S2A_MSIL2A_20240604T174911_N0510_R141_T13TDE_20240605T022145.SAFE/manifest.safe", "type": "application/xml", "roles": ["metadata"], "title": "SAFE manifest"}, "granule-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/04/S2A_MSIL2A_20240604T174911_N0510_R141_T13TDE_20240605T022145.SAFE/GRANULE/L2A_T13TDE_A046756_20240604T175439/MTD_TL.xml", "type": "application/xml", "roles": ["metadata"], "title": "Granule metadata"}, "inspire-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/04/S2A_MSIL2A_20240604T174911_N0510_R141_T13TDE_20240605T022145.SAFE/INSPIRE.xml", "type": "application/xml", "roles": ["metadata"], "title": "INSPIRE metadata"}, "product-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/04/S2A_MSIL2A_20240604T174911_N0510_R141_T13TDE_20240605T022145.SAFE/MTD_MSIL2A.xml", "type": "application/xml", "roles": ["metadata"], "title": "Product metadata"}, "datastrip-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/04/S2A_MSIL2A_20240604T174911_N0510_R141_T13TDE_20240605T022145.SAFE/DATASTRIP/DS_MSFT_20240605T022146_S20240604T175439/MTD_DS.xml", "type": "application/xml", "roles": ["metadata"], "title": "Datastrip metadata"}, "tilejson": {"title": "TileJSON with default rendering", "href": "https://planetarycomputer.microsoft.com/api/data/v1/item/tilejson.json?collection=sentinel-2-l2a&item=S2A_MSIL2A_20240604T174911_R141_T13TDE_20240605T022145&assets=visual&asset_bidx=visual%7C1%2C2%2C3&nodata=0&format=png", "type": "application/json", "roles": ["tiles"]}, "rendered_preview": {"title": "Rendered preview", "rel": "preview", "href": "https://planetarycomputer.microsoft.com/api/data/v1/item/preview.png?collection=sentinel-2-l2a&item=S2A_MSIL2A_20240604T174911_R141_T13TDE_20240605T022145&assets=visual&asset_bidx=visual%7C1%2C2%2C3&nodata=0&format=png", "roles": ["overview"], "type": "image/png"}}, "geometry": {"type": "Polygon", "coordinates": [[[-106.1831726, 40.6447948], [-104.8845569, 40.6507988], [-104.8862201, 39.6615512], [-106.1661317, 39.6557526], [-106.1831726, 40.6447948]]]}, "collection": "sentinel-2-l2a", "properties": {"datetime": "2024-06-04T17:49:11.024000Z", "platform": "Sentinel-2A", "proj:epsg": 32613, "instruments": ["msi"], "s2:mgrs_tile": "13TDE", "constellation": "Sentinel 2", "s2:granule_id": "S2A_OPER_MSI_L2A_TL_MSFT_20240605T022146_A046756_T13TDE_N05.10", "eo:cloud_cover": 69.273108, "s2:datatake_id": "GS2A_20240604T174911_046756_N05.10", "s2:product_uri": "S2A_MSIL2A_20240604T174911_N0510_R141_T13TDE_20240605T022145.SAFE", "s2:datastrip_id": "S2A_OPER_MSI_L2A_DS_MSFT_20240605T022146_S20240604T175439_N05.10", "s2:product_type": "S2MSI2A", "sat:orbit_state": "descending", "s2:datatake_type": "INS-NOBS", "s2:generation_time": "2024-06-05T02:21:45.332632Z", "sat:relative_orbit": 141, "s2:water_percentage": 0.280633, "s2:mean_solar_zenith": 21.4084276471775, "s2:mean_solar_azimuth": 141.029998352685, "s2:processing_baseline": "05.10", "s2:snow_ice_percentage": 2.233705, "s2:vegetation_percentage": 5.829758, "s2:thin_cirrus_percentage": 0.04069, "s2:cloud_shadow_percentage": 1.031808, "s2:nodata_pixel_percentage": 0.0, "s2:unclassified_percentage": 4.235182, "s2:dark_features_percentage": 0.095972, "s2:not_vegetated_percentage": 17.019834, "s2:degraded_msi_data_percentage": 0.6477, "s2:high_proba_clouds_percentage": 49.067676, "s2:reflectance_conversion_factor": 0.972587533604178, "s2:medium_proba_clouds_percentage": 20.16474, "s2:saturated_defective_pixel_percentage": 0.0}, "stac_extensions": ["https://stac-extensions.github.io/eo/v1.0.0/schema.json", "https://stac-extensions.github.io/sat/v1.0.0/schema.json", "https://stac-extensions.github.io/projection/v1.1.0/schema.json"], "stac_version": "1.0.0"}, {"id": "S2A_MSIL2A_20240601T173911_R098_T13TDE_20240602T011352", "bbox": [-105.36866772, 39.65936549, -104.88455693, 40.65079881], "type": "Feature", "links": [{"rel": "collection", "type": "application/json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/sentinel-2-l2a"}, {"rel": "parent", "type": "application/json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/sentinel-2-l2a"}, {"rel": "root", "type": "application/json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/"}, {"rel": "self", "type": "application/geo+json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/sentinel-2-l2a/items/S2A_MSIL2A_20240601T173911_R098_T13TDE_20240602T011352"}, {"rel": "license", "href": "https://sentinel.esa.int/documents/247904/690755/Sentinel_Data_Legal_Notice"}, {"rel": "preview", "href": "https://planetarycomputer.microsoft.com/api/data/v1/item/map?collection=sentinel-2-l2a&item=S2A_MSIL2A_20240601T173911_R098_T13TDE_20240602T011352", "title": "Map of item", "type": "text/html"}], "assets": {"AOT": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/01/S2A_MSIL2A_20240601T173911_N0510_R098_T13TDE_20240602T011352.SAFE/GRANULE/L2A_T13TDE_A046713_20240601T174959/IMG_DATA/R10m/T13TDE_20240601T173911_AOT_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Aerosol optical thickness (AOT)"}, "B01": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/01/S2A_MSIL2A_20240601T173911_N0510_R098_T13TDE_20240602T011352.SAFE/GRANULE/L2A_T13TDE_A046713_20240601T174959/IMG_DATA/R60m/T13TDE_20240601T173911_B01_60m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [1830, 1830], "proj:transform": [60.0, 0.0, 399960.0, 0.0, -60.0, 4500000.0], "gsd": 60.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 1 - Coastal aerosol - 60m", "eo:bands": [{"name": "B01", "common_name": "coastal", "description": "Band 1 - Coastal aerosol", "center_wavelength": 0.443, "full_width_half_max": 0.027}]}, "B02": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/01/S2A_MSIL2A_20240601T173911_N0510_R098_T13TDE_20240602T011352.SAFE/GRANULE/L2A_T13TDE_A046713_20240601T174959/IMG_DATA/R10m/T13TDE_20240601T173911_B02_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 2 - Blue - 10m", "eo:bands": [{"name": "B02", "common_name": "blue", "description": "Band 2 - Blue", "center_wavelength": 0.49, "full_width_half_max": 0.098}]}, "B03": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/01/S2A_MSIL2A_20240601T173911_N0510_R098_T13TDE_20240602T011352.SAFE/GRANULE/L2A_T13TDE_A046713_20240601T174959/IMG_DATA/R10m/T13TDE_20240601T173911_B03_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 3 - Green - 10m", "eo:bands": [{"name": "B03", "common_name": "green", "description": "Band 3 - Green", "center_wavelength": 0.56, "full_width_half_max": 0.045}]}, "B04": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/01/S2A_MSIL2A_20240601T173911_N0510_R098_T13TDE_20240602T011352.SAFE/GRANULE/L2A_T13TDE_A046713_20240601T174959/IMG_DATA/R10m/T13TDE_20240601T173911_B04_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 4 - Red - 10m", "eo:bands": [{"name": "B04", "common_name": "red", "description": "Band 4 - Red", "center_wavelength": 0.665, "full_width_half_max": 0.038}]}, "B05": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/01/S2A_MSIL2A_20240601T173911_N0510_R098_T13TDE_20240602T011352.SAFE/GRANULE/L2A_T13TDE_A046713_20240601T174959/IMG_DATA/R20m/T13TDE_20240601T173911_B05_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 5 - Vegetation red edge 1 - 20m", "eo:bands": [{"name": "B05", "common_name": "rededge", "description": "Band 5 - Vegetation red edge 1", "center_wavelength": 0.704, "full_width_half_max": 0.019}]}, "B06": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/01/S2A_MSIL2A_20240601T173911_N0510_R098_T13TDE_20240602T011352.SAFE/GRANULE/L2A_T13TDE_A046713_20240601T174959/IMG_DATA/R20m/T13TDE_20240601T173911_B06_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 6 - Vegetation red edge 2 - 20m", "eo:bands": [{"name": "B06", "common_name": "rededge", "description": "Band 6 - Vegetation red edge 2", "center_wavelength": 0.74, "full_width_half_max": 0.018}]}, "B07": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/01/S2A_MSIL2A_20240601T173911_N0510_R098_T13TDE_20240602T011352.SAFE/GRANULE/L2A_T13TDE_A046713_20240601T174959/IMG_DATA/R20m/T13TDE_20240601T173911_B07_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 7 - Vegetation red edge 3 - 20m", "eo:bands": [{"name": "B07", "common_name": "rededge", "description": "Band 7 - Vegetation red edge 3", "center_wavelength": 0.783, "full_width_half_max": 0.028}]}, "B08": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/01/S2A_MSIL2A_20240601T173911_N0510_R098_T13TDE_20240602T011352.SAFE/GRANULE/L2A_T13TDE_A046713_20240601T174959/IMG_DATA/R10m/T13TDE_20240601T173911_B08_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 8 - NIR - 10m", "eo:bands": [{"name": "B08", "common_name": "nir", "description": "Band 8 - NIR", "center_wavelength": 0.842, "full_width_half_max": 0.145}]}, "B09": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/01/S2A_MSIL2A_20240601T173911_N0510_R098_T13TDE_20240602T011352.SAFE/GRANULE/L2A_T13TDE_A046713_20240601T174959/IMG_DATA/R60m/T13TDE_20240601T173911_B09_60m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [1830, 1830], "proj:transform": [60.0, 0.0, 399960.0, 0.0, -60.0, 4500000.0], "gsd": 60.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 9 - Water vapor - 60m", "eo:bands": [{"name": "B09", "description": "Band 9 - Water vapor", "center_wavelength": 0.945, "full_width_half_max": 0.026}]}, "B11": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/01/S2A_MSIL2A_20240601T173911_N0510_R098_T13TDE_20240602T011352.SAFE/GRANULE/L2A_T13TDE_A046713_20240601T174959/IMG_DATA/R20m/T13TDE_20240601T173911_B11_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 11 - SWIR (1.6) - 20m", "eo:bands": [{"name": "B11", "common_name": "swir16", "description": "Band 11 - SWIR (1.6)", "center_wavelength": 1.61, "full_width_half_max": 0.143}]}, "B12": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/01/S2A_MSIL2A_20240601T173911_N0510_R098_T13TDE_20240602T011352.SAFE/GRANULE/L2A_T13TDE_A046713_20240601T174959/IMG_DATA/R20m/T13TDE_20240601T173911_B12_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 12 - SWIR (2.2) - 20m", "eo:bands": [{"name": "B12", "common_name": "swir22", "description": "Band 12 - SWIR (2.2)", "center_wavelength": 2.19, "full_width_half_max": 0.242}]}, "B8A": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/01/S2A_MSIL2A_20240601T173911_N0510_R098_T13TDE_20240602T011352.SAFE/GRANULE/L2A_T13TDE_A046713_20240601T174959/IMG_DATA/R20m/T13TDE_20240601T173911_B8A_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 8A - Vegetation red edge 4 - 20m", "eo:bands": [{"name": "B8A", "common_name": "rededge", "description": "Band 8A - Vegetation red edge 4", "center_wavelength": 0.865, "full_width_half_max": 0.033}]}, "SCL": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/01/S2A_MSIL2A_20240601T173911_N0510_R098_T13TDE_20240602T011352.SAFE/GRANULE/L2A_T13TDE_A046713_20240601T174959/IMG_DATA/R20m/T13TDE_20240601T173911_SCL_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Scene classfication map (SCL)"}, "WVP": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/01/S2A_MSIL2A_20240601T173911_N0510_R098_T13TDE_20240602T011352.SAFE/GRANULE/L2A_T13TDE_A046713_20240601T174959/IMG_DATA/R10m/T13TDE_20240601T173911_WVP_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Water vapour (WVP)"}, "visual": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/01/S2A_MSIL2A_20240601T173911_N0510_R098_T13TDE_20240602T011352.SAFE/GRANULE/L2A_T13TDE_A046713_20240601T174959/IMG_DATA/R10m/T13TDE_20240601T173911_TCI_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "True color image", "eo:bands": [{"name": "B04", "common_name": "red", "description": "Band 4 - Red", "center_wavelength": 0.665, "full_width_half_max": 0.038}, {"name": "B03", "common_name": "green", "description": "Band 3 - Green", "center_wavelength": 0.56, "full_width_half_max": 0.045}, {"name": "B02", "common_name": "blue", "description": "Band 2 - Blue", "center_wavelength": 0.49, "full_width_half_max": 0.098}]}, "preview": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/01/S2A_MSIL2A_20240601T173911_N0510_R098_T13TDE_20240602T011352.SAFE/GRANULE/L2A_T13TDE_A046713_20240601T174959/QI_DATA/T13TDE_20240601T173911_PVI.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["thumbnail"], "title": "Thumbnail"}, "safe-manifest": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/01/S2A_MSIL2A_20240601T173911_N0510_R098_T13TDE_20240602T011352.SAFE/manifest.safe", "type": "application/xml", "roles": ["metadata"], "title": "SAFE manifest"}, "granule-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/01/S2A_MSIL2A_20240601T173911_N0510_R098_T13TDE_20240602T011352.SAFE/GRANULE/L2A_T13TDE_A046713_20240601T174959/MTD_TL.xml", "type": "application/xml", "roles": ["metadata"], "title": "Granule metadata"}, "inspire-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/01/S2A_MSIL2A_20240601T173911_N0510_R098_T13TDE_20240602T011352.SAFE/INSPIRE.xml", "type": "application/xml", "roles": ["metadata"], "title": "INSPIRE metadata"}, "product-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/01/S2A_MSIL2A_20240601T173911_N0510_R098_T13TDE_20240602T011352.SAFE/MTD_MSIL2A.xml", "type": "application/xml", "roles": ["metadata"], "title": "Product metadata"}, "datastrip-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/06/01/S2A_MSIL2A_20240601T173911_N0510_R098_T13TDE_20240602T011352.SAFE/DATASTRIP/DS_MSFT_20240602T011353_S20240601T174959/MTD_DS.xml", "type": "application/xml", "roles": ["metadata"], "title": "Datastrip metadata"}, "tilejson": {"title": "TileJSON with default rendering", "href": "https://planetarycomputer.microsoft.com/api/data/v1/item/tilejson.json?collection=sentinel-2-l2a&item=S2A_MSIL2A_20240601T173911_R098_T13TDE_20240602T011352&assets=visual&asset_bidx=visual%7C1%2C2%2C3&nodata=0&format=png", "type": "application/json", "roles": ["tiles"]}, "rendered_preview": {"title": "Rendered preview", "rel": "preview", "href": "https://planetarycomputer.microsoft.com/api/data/v1/item/preview.png?collection=sentinel-2-l2a&item=S2A_MSIL2A_20240601T173911_R098_T13TDE_20240602T011352&assets=visual&asset_bidx=visual%7C1%2C2%2C3&nodata=0&format=png", "roles": ["overview"], "type": "image/png"}}, "geometry": {"type": "Polygon", "coordinates": [[[-105.3686677, 39.6593655], [-105.3537369, 39.7105144], [-105.3095187, 39.8578349], [-105.2666207, 40.0055687], [-105.2222461, 40.1528783], [-105.1775695, 40.3000419], [-105.1329828, 40.4472176], [-105.0883397, 40.5943311], [-105.071238, 40.6499357], [-104.8845569, 40.6507988], [-104.8862201, 39.6615512], [-105.3686677, 39.6593655]]]}, "collection": "sentinel-2-l2a", "properties": {"datetime": "2024-06-01T17:39:11.024000Z", "platform": "Sentinel-2A", "proj:epsg": 32613, "instruments": ["msi"], "s2:mgrs_tile": "13TDE", "constellation": "Sentinel 2", "s2:granule_id": "S2A_OPER_MSI_L2A_TL_MSFT_20240602T011353_A046713_T13TDE_N05.10", "eo:cloud_cover": 4.230516, "s2:datatake_id": "GS2A_20240601T173911_046713_N05.10", "s2:product_uri": "S2A_MSIL2A_20240601T173911_N0510_R098_T13TDE_20240602T011352.SAFE", "s2:datastrip_id": "S2A_OPER_MSI_L2A_DS_MSFT_20240602T011353_S20240601T174959_N05.10", "s2:product_type": "S2MSI2A", "sat:orbit_state": "descending", "s2:datatake_type": "INS-NOBS", "s2:generation_time": "2024-06-02T01:13:52.283377Z", "sat:relative_orbit": 98, "s2:water_percentage": 2.737834, "s2:mean_solar_zenith": 22.9015892902032, "s2:mean_solar_azimuth": 136.670570819292, "s2:processing_baseline": "05.10", "s2:snow_ice_percentage": 0.000268, "s2:vegetation_percentage": 38.038999, "s2:thin_cirrus_percentage": 0.148753, "s2:cloud_shadow_percentage": 1.582143, "s2:nodata_pixel_percentage": 74.001986, "s2:unclassified_percentage": 0.630374, "s2:dark_features_percentage": 0.0615, "s2:not_vegetated_percentage": 52.718365, "s2:degraded_msi_data_percentage": 0.0427, "s2:high_proba_clouds_percentage": 2.314088, "s2:reflectance_conversion_factor": 0.973533269956102, "s2:medium_proba_clouds_percentage": 1.767675, "s2:saturated_defective_pixel_percentage": 0.0}, "stac_extensions": ["https://stac-extensions.github.io/eo/v1.0.0/schema.json", "https://stac-extensions.github.io/sat/v1.0.0/schema.json", "https://stac-extensions.github.io/projection/v1.1.0/schema.json"], "stac_version": "1.0.0"}, {"id": "S2B_MSIL2A_20240530T174909_R141_T13TDE_20240531T000206", "bbox": [-106.17987434, 39.65575257, -104.88533166, 40.45336554], "type": "Feature", "links": [{"rel": "collection", "type": "application/json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/sentinel-2-l2a"}, {"rel": "parent", "type": "application/json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/sentinel-2-l2a"}, {"rel": "root", "type": "application/json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/"}, {"rel": "self", "type": "application/geo+json", "href": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/sentinel-2-l2a/items/S2B_MSIL2A_20240530T174909_R141_T13TDE_20240531T000206"}, {"rel": "license", "href": "https://sentinel.esa.int/documents/247904/690755/Sentinel_Data_Legal_Notice"}, {"rel": "preview", "href": "https://planetarycomputer.microsoft.com/api/data/v1/item/map?collection=sentinel-2-l2a&item=S2B_MSIL2A_20240530T174909_R141_T13TDE_20240531T000206", "title": "Map of item", "type": "text/html"}], "assets": {"AOT": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/05/30/S2B_MSIL2A_20240530T174909_N0510_R141_T13TDE_20240531T000206.SAFE/GRANULE/L2A_T13TDE_A037776_20240530T180249/IMG_DATA/R10m/T13TDE_20240530T174909_AOT_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Aerosol optical thickness (AOT)"}, "B01": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/05/30/S2B_MSIL2A_20240530T174909_N0510_R141_T13TDE_20240531T000206.SAFE/GRANULE/L2A_T13TDE_A037776_20240530T180249/IMG_DATA/R60m/T13TDE_20240530T174909_B01_60m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [1830, 1830], "proj:transform": [60.0, 0.0, 399960.0, 0.0, -60.0, 4500000.0], "gsd": 60.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 1 - Coastal aerosol - 60m", "eo:bands": [{"name": "B01", "common_name": "coastal", "description": "Band 1 - Coastal aerosol", "center_wavelength": 0.443, "full_width_half_max": 0.027}]}, "B02": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/05/30/S2B_MSIL2A_20240530T174909_N0510_R141_T13TDE_20240531T000206.SAFE/GRANULE/L2A_T13TDE_A037776_20240530T180249/IMG_DATA/R10m/T13TDE_20240530T174909_B02_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 2 - Blue - 10m", "eo:bands": [{"name": "B02", "common_name": "blue", "description": "Band 2 - Blue", "center_wavelength": 0.49, "full_width_half_max": 0.098}]}, "B03": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/05/30/S2B_MSIL2A_20240530T174909_N0510_R141_T13TDE_20240531T000206.SAFE/GRANULE/L2A_T13TDE_A037776_20240530T180249/IMG_DATA/R10m/T13TDE_20240530T174909_B03_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 3 - Green - 10m", "eo:bands": [{"name": "B03", "common_name": "green", "description": "Band 3 - Green", "center_wavelength": 0.56, "full_width_half_max": 0.045}]}, "B04": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/05/30/S2B_MSIL2A_20240530T174909_N0510_R141_T13TDE_20240531T000206.SAFE/GRANULE/L2A_T13TDE_A037776_20240530T180249/IMG_DATA/R10m/T13TDE_20240530T174909_B04_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 4 - Red - 10m", "eo:bands": [{"name": "B04", "common_name": "red", "description": "Band 4 - Red", "center_wavelength": 0.665, "full_width_half_max": 0.038}]}, "B05": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/05/30/S2B_MSIL2A_20240530T174909_N0510_R141_T13TDE_20240531T000206.SAFE/GRANULE/L2A_T13TDE_A037776_20240530T180249/IMG_DATA/R20m/T13TDE_20240530T174909_B05_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 5 - Vegetation red edge 1 - 20m", "eo:bands": [{"name": "B05", "common_name": "rededge", "description": "Band 5 - Vegetation red edge 1", "center_wavelength": 0.704, "full_width_half_max": 0.019}]}, "B06": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/05/30/S2B_MSIL2A_20240530T174909_N0510_R141_T13TDE_20240531T000206.SAFE/GRANULE/L2A_T13TDE_A037776_20240530T180249/IMG_DATA/R20m/T13TDE_20240530T174909_B06_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 6 - Vegetation red edge 2 - 20m", "eo:bands": [{"name": "B06", "common_name": "rededge", "description": "Band 6 - Vegetation red edge 2", "center_wavelength": 0.74, "full_width_half_max": 0.018}]}, "B07": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/05/30/S2B_MSIL2A_20240530T174909_N0510_R141_T13TDE_20240531T000206.SAFE/GRANULE/L2A_T13TDE_A037776_20240530T180249/IMG_DATA/R20m/T13TDE_20240530T174909_B07_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 7 - Vegetation red edge 3 - 20m", "eo:bands": [{"name": "B07", "common_name": "rededge", "description": "Band 7 - Vegetation red edge 3", "center_wavelength": 0.783, "full_width_half_max": 0.028}]}, "B08": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/05/30/S2B_MSIL2A_20240530T174909_N0510_R141_T13TDE_20240531T000206.SAFE/GRANULE/L2A_T13TDE_A037776_20240530T180249/IMG_DATA/R10m/T13TDE_20240530T174909_B08_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 8 - NIR - 10m", "eo:bands": [{"name": "B08", "common_name": "nir", "description": "Band 8 - NIR", "center_wavelength": 0.842, "full_width_half_max": 0.145}]}, "B09": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/05/30/S2B_MSIL2A_20240530T174909_N0510_R141_T13TDE_20240531T000206.SAFE/GRANULE/L2A_T13TDE_A037776_20240530T180249/IMG_DATA/R60m/T13TDE_20240530T174909_B09_60m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [1830, 1830], "proj:transform": [60.0, 0.0, 399960.0, 0.0, -60.0, 4500000.0], "gsd": 60.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 9 - Water vapor - 60m", "eo:bands": [{"name": "B09", "description": "Band 9 - Water vapor", "center_wavelength": 0.945, "full_width_half_max": 0.026}]}, "B11": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/05/30/S2B_MSIL2A_20240530T174909_N0510_R141_T13TDE_20240531T000206.SAFE/GRANULE/L2A_T13TDE_A037776_20240530T180249/IMG_DATA/R20m/T13TDE_20240530T174909_B11_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 11 - SWIR (1.6) - 20m", "eo:bands": [{"name": "B11", "common_name": "swir16", "description": "Band 11 - SWIR (1.6)", "center_wavelength": 1.61, "full_width_half_max": 0.143}]}, "B12": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/05/30/S2B_MSIL2A_20240530T174909_N0510_R141_T13TDE_20240531T000206.SAFE/GRANULE/L2A_T13TDE_A037776_20240530T180249/IMG_DATA/R20m/T13TDE_20240530T174909_B12_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 12 - SWIR (2.2) - 20m", "eo:bands": [{"name": "B12", "common_name": "swir22", "description": "Band 12 - SWIR (2.2)", "center_wavelength": 2.19, "full_width_half_max": 0.242}]}, "B8A": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/05/30/S2B_MSIL2A_20240530T174909_N0510_R141_T13TDE_20240531T000206.SAFE/GRANULE/L2A_T13TDE_A037776_20240530T180249/IMG_DATA/R20m/T13TDE_20240530T174909_B8A_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Band 8A - Vegetation red edge 4 - 20m", "eo:bands": [{"name": "B8A", "common_name": "rededge", "description": "Band 8A - Vegetation red edge 4", "center_wavelength": 0.865, "full_width_half_max": 0.033}]}, "SCL": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/05/30/S2B_MSIL2A_20240530T174909_N0510_R141_T13TDE_20240531T000206.SAFE/GRANULE/L2A_T13TDE_A037776_20240530T180249/IMG_DATA/R20m/T13TDE_20240530T174909_SCL_20m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [5490, 5490], "proj:transform": [20.0, 0.0, 399960.0, 0.0, -20.0, 4500000.0], "gsd": 20.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Scene classfication map (SCL)"}, "WVP": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/05/30/S2B_MSIL2A_20240530T174909_N0510_R141_T13TDE_20240531T000206.SAFE/GRANULE/L2A_T13TDE_A037776_20240530T180249/IMG_DATA/R10m/T13TDE_20240530T174909_WVP_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "Water vapour (WVP)"}, "visual": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/05/30/S2B_MSIL2A_20240530T174909_N0510_R141_T13TDE_20240531T000206.SAFE/GRANULE/L2A_T13TDE_A037776_20240530T180249/IMG_DATA/R10m/T13TDE_20240530T174909_TCI_10m.tif", "proj:bbox": [399960.0, 4390200.0, 509760.0, 4500000.0], "proj:shape": [10980, 10980], "proj:transform": [10.0, 0.0, 399960.0, 0.0, -10.0, 4500000.0], "gsd": 10.0, "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["data"], "title": "True color image", "eo:bands": [{"name": "B04", "common_name": "red", "description": "Band 4 - Red", "center_wavelength": 0.665, "full_width_half_max": 0.038}, {"name": "B03", "common_name": "green", "description": "Band 3 - Green", "center_wavelength": 0.56, "full_width_half_max": 0.045}, {"name": "B02", "common_name": "blue", "description": "Band 2 - Blue", "center_wavelength": 0.49, "full_width_half_max": 0.098}]}, "preview": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/05/30/S2B_MSIL2A_20240530T174909_N0510_R141_T13TDE_20240531T000206.SAFE/GRANULE/L2A_T13TDE_A037776_20240530T180249/QI_DATA/T13TDE_20240530T174909_PVI.tif", "type": "image/tiff; application=geotiff; profile=cloud-optimized", "roles": ["thumbnail"], "title": "Thumbnail"}, "safe-manifest": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/05/30/S2B_MSIL2A_20240530T174909_N0510_R141_T13TDE_20240531T000206.SAFE/manifest.safe", "type": "application/xml", "roles": ["metadata"], "title": "SAFE manifest"}, "granule-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/05/30/S2B_MSIL2A_20240530T174909_N0510_R141_T13TDE_20240531T000206.SAFE/GRANULE/L2A_T13TDE_A037776_20240530T180249/MTD_TL.xml", "type": "application/xml", "roles": ["metadata"], "title": "Granule metadata"}, "inspire-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/05/30/S2B_MSIL2A_20240530T174909_N0510_R141_T13TDE_20240531T000206.SAFE/INSPIRE.xml", "type": "application/xml", "roles": ["metadata"], "title": "INSPIRE metadata"}, "product-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/05/30/S2B_MSIL2A_20240530T174909_N0510_R141_T13TDE_20240531T000206.SAFE/MTD_MSIL2A.xml", "type": "application/xml", "roles": ["metadata"], "title": "Product metadata"}, "datastrip-metadata": {"href": "https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/13/T/DE/2024/05/30/S2B_MSIL2A_20240530T174909_N0510_R141_T13TDE_20240531T000206.SAFE/DATASTRIP/DS_MSFT_20240531T000207_S20240530T180249/MTD_DS.xml", "type": "application/xml", "roles": ["metadata"], "title": "Datastrip metadata"}, "tilejson": {"title": "TileJSON with default rendering", "href": "https://planetarycomputer.microsoft.com/api/data/v1/item/tilejson.json?collection=sentinel-2-l2a&item=S2B_MSIL2A_20240530T174909_R141_T13TDE_20240531T000206&assets=visual&asset_bidx=visual%7C1%2C2%2C3&nodata=0&format=png", "type": "application/json", "roles": ["tiles"]}, "rendered_preview": {"title": "Rendered preview", "rel": "preview", "href": "https://planetarycomputer.microsoft.com/api/data/v1/item/preview.png?collection=sentinel-2-l2a&item=S2B_MSIL2A_20240530T174909_R141_T13TDE_20240531T000206&assets=visual&asset_bidx=visual%7C1%2C2%2C3&nodata=0&format=png", "roles": ["overview"], "type": "image/png"}}, "geometry": {"type": "Polygon", "coordinates": [[[-106.1798743, 40.4533655], [-106.1584285, 40.4494745], [-106.1582692, 40.449963], [-106.1578448, 40.4498861], [-106.1576077, 40.450614], [-106.1575958, 40.4506119], [-106.1573654, 40.4513178], [-106.1571429, 40.4512776], [-106.1567541, 40.4524702], [-105.9131494, 40.4066727], [-105.8683749, 40.3982419], [-105.8696327, 40.3944438], [-105.613885, 40.3441045], [-105.6135536, 40.3450835], [-105.6133298, 40.3450395], [-105.6125006, 40.3474932], [-105.5818083, 40.341112], [-105.3247347, 40.287493], [-105.3251766, 40.2862001], [-105.3250947, 40.2861825], [-105.3251048, 40.2861528], [-105.3249824, 40.2861264], [-105.3251197, 40.2857247], [-105.324936, 40.2856851], [-105.3254479, 40.2841874], [-105.0678627, 40.2290038], [-105.0678443, 40.2290576], [-105.0676816, 40.2290227], [-105.0668564, 40.2314274], [-104.963405, 40.2078531], [-104.9106305, 40.1957965], [-104.8853317, 40.1899883], [-104.8862201, 39.6615512], [-106.1661317, 39.6557526], [-106.1798743, 40.4533655]]]}, "collection": "sentinel-2-l2a", "properties": {"datetime": "2024-05-30T17:49:09.024000Z", "platform": "Sentinel-2B", "proj:epsg": 32613, "instruments": ["msi"], "s2:mgrs_tile": "13TDE", "constellation": "Sentinel 2", "s2:granule_id": "S2B_OPER_MSI_L2A_TL_MSFT_20240531T000207_A037776_T13TDE_N05.10", "eo:cloud_cover": 3.327963, "s2:datatake_id": "GS2B_20240530T174909_037776_N05.10", "s2:product_uri": "S2B_MSIL2A_20240530T174909_N0510_R141_T13TDE_20240531T000206.SAFE", "s2:datastrip_id": "S2B_OPER_MSI_L2A_DS_MSFT_20240531T000207_S20240530T180249_N05.10", "s2:product_type": "S2MSI2A", "sat:orbit_state": "descending", "s2:datatake_type": "INS-NOBS", "s2:generation_time": "2024-05-31T00:02:06.921951Z", "sat:relative_orbit": 141, "s2:water_percentage": 0.941905, "s2:mean_solar_zenith": 21.86155308336, "s2:mean_solar_azimuth": 142.301151990118, "s2:processing_baseline": "05.10", "s2:snow_ice_percentage": 17.931151, "s2:vegetation_percentage": 31.917599, "s2:thin_cirrus_percentage": 0.003153, "s2:cloud_shadow_percentage": 0.951584, "s2:nodata_pixel_percentage": 32.539642, "s2:unclassified_percentage": 1.204606, "s2:dark_features_percentage": 0.696654, "s2:not_vegetated_percentage": 43.028533, "s2:degraded_msi_data_percentage": 0.0096, "s2:high_proba_clouds_percentage": 1.936479, "s2:reflectance_conversion_factor": 0.974199318913975, "s2:medium_proba_clouds_percentage": 1.388331, "s2:saturated_defective_pixel_percentage": 0.0}, "stac_extensions": ["https://stac-extensions.github.io/eo/v1.0.0/schema.json", "https://stac-extensions.github.io/sat/v1.0.0/schema.json", "https://stac-extensions.github.io/projection/v1.1.0/schema.json"], "stac_version": "1.0.0"}] \ No newline at end of file diff --git a/stac-arrow/src/error.rs b/stac-arrow/src/error.rs new file mode 100644 index 000000000..533fe2a14 --- /dev/null +++ b/stac-arrow/src/error.rs @@ -0,0 +1,33 @@ +use thiserror::Error; + +/// Crate-specific error enum. +#[derive(Debug, Error)] +pub enum Error { + /// [arrow::error::ArrowError] + #[error(transparent)] + Arrow(#[from] arrow::error::ArrowError), + + /// The bounding box is not a mapping. + #[error("bbox is not a map: {0:?}")] + BBoxIsNotAMap(serde_json::Value), + + /// [geoarrow::error::GeoArrowError] + #[error(transparent)] + GeoArrow(#[from] geoarrow::error::GeoArrowError), + + /// An invalid bbox mapping. + #[error("invalid bbox mapping: {0:?}")] + InvalidBBoxMap(serde_json::Map), + + /// [std::io::Error] + #[error(transparent)] + Io(#[from] std::io::Error), + + /// [serde_json::Error] + #[error(transparent)] + SerdeJson(#[from] serde_json::Error), + + /// [stac::Error] + #[error(transparent)] + Stac(#[from] stac::Error), +} diff --git a/stac-arrow/src/json.rs b/stac-arrow/src/json.rs new file mode 100644 index 000000000..86064b5e6 --- /dev/null +++ b/stac-arrow/src/json.rs @@ -0,0 +1,498 @@ +//! Functions taken from [arrow-json +//! v51](https://github.com/apache/arrow-rs/blob/51.0.0/arrow-json/src/writer.rs). +//! +//! In particular, the `record_batches_to_json_rows` was deprecated and +//! subsequently removed in v52, but it turns out that's the functionality we +//! need to go to [Items](stac::Item). We've modified the functions to handle +//! geometries as well. + +use arrow::{ + array::{ + as_boolean_array, as_fixed_size_list_array, as_large_list_array, as_largestring_array, + as_list_array, as_map_array, as_string_array, Array, ArrayRef, AsArray, StructArray, + }, + datatypes::{ + ArrowPrimitiveType, DataType, Float16Type, Float32Type, Float64Type, Int16Type, Int32Type, + Int64Type, Int8Type, UInt16Type, UInt32Type, UInt64Type, UInt8Type, + }, + error::ArrowError, + json::JsonSerializable, + util::display::{ArrayFormatter, FormatOptions}, +}; +use geoarrow::{ + array::AsGeometryArray, datatypes::GeoDataType, schema::GeoSchemaExt, table::Table, + trait_::GeometryArrayAccessor, GeometryArrayTrait, +}; +use geojson::Geometry; +use serde_json::{Map, Value}; +use std::sync::Arc; + +macro_rules! set_column_by_array_type { + ($cast_fn:ident, $col_name:ident, $rows:ident, $array:ident, $explicit_nulls:ident) => { + let arr = $cast_fn($array); + $rows + .iter_mut() + .zip(arr.iter()) + .filter_map(|(maybe_row, maybe_value)| maybe_row.as_mut().map(|row| (row, maybe_value))) + .for_each(|(row, maybe_value)| { + if let Some(j) = maybe_value.map(Into::into) { + row.insert($col_name.to_string(), j); + } else if $explicit_nulls { + row.insert($col_name.to_string(), Value::Null); + } + }); + }; +} + +fn set_column_for_json_rows( + rows: &mut [Option>], + array: &ArrayRef, + col_name: &str, + explicit_nulls: bool, +) -> Result<(), ArrowError> { + match array.data_type() { + DataType::Int8 => { + set_column_by_primitive_type::(rows, array, col_name, explicit_nulls); + } + DataType::Int16 => { + set_column_by_primitive_type::(rows, array, col_name, explicit_nulls); + } + DataType::Int32 => { + set_column_by_primitive_type::(rows, array, col_name, explicit_nulls); + } + DataType::Int64 => { + set_column_by_primitive_type::(rows, array, col_name, explicit_nulls); + } + DataType::UInt8 => { + set_column_by_primitive_type::(rows, array, col_name, explicit_nulls); + } + DataType::UInt16 => { + set_column_by_primitive_type::(rows, array, col_name, explicit_nulls); + } + DataType::UInt32 => { + set_column_by_primitive_type::(rows, array, col_name, explicit_nulls); + } + DataType::UInt64 => { + set_column_by_primitive_type::(rows, array, col_name, explicit_nulls); + } + DataType::Float16 => { + set_column_by_primitive_type::(rows, array, col_name, explicit_nulls); + } + DataType::Float32 => { + set_column_by_primitive_type::(rows, array, col_name, explicit_nulls); + } + DataType::Float64 => { + set_column_by_primitive_type::(rows, array, col_name, explicit_nulls); + } + DataType::Null => { + if explicit_nulls { + rows.iter_mut() + .filter_map(|maybe_row| maybe_row.as_mut()) + .for_each(|row| { + row.insert(col_name.to_string(), Value::Null); + }); + } + } + DataType::Boolean => { + set_column_by_array_type!(as_boolean_array, col_name, rows, array, explicit_nulls); + } + DataType::Utf8 => { + set_column_by_array_type!(as_string_array, col_name, rows, array, explicit_nulls); + } + DataType::LargeUtf8 => { + set_column_by_array_type!(as_largestring_array, col_name, rows, array, explicit_nulls); + } + DataType::Date32 + | DataType::Date64 + | DataType::Timestamp(_, _) + | DataType::Time32(_) + | DataType::Time64(_) + | DataType::Duration(_) => { + let options = FormatOptions::default(); + let formatter = ArrayFormatter::try_new(array.as_ref(), &options)?; + let nulls = array.nulls(); + rows.iter_mut() + .enumerate() + .filter_map(|(idx, maybe_row)| maybe_row.as_mut().map(|row| (idx, row))) + .for_each(|(idx, row)| { + let maybe_value = nulls + .map(|x| x.is_valid(idx)) + .unwrap_or(true) + .then(|| formatter.value(idx).to_string().into()); + if let Some(j) = maybe_value { + row.insert(col_name.to_string(), j); + } else if explicit_nulls { + row.insert(col_name.to_string(), Value::Null); + } + }); + } + DataType::Struct(_) => { + let inner_objs = struct_array_to_jsonmap_array(array.as_struct(), explicit_nulls)?; + rows.iter_mut() + .zip(inner_objs) + .filter_map(|(maybe_row, maybe_obj)| maybe_row.as_mut().map(|row| (row, maybe_obj))) + .for_each(|(row, maybe_obj)| { + let json = if let Some(obj) = maybe_obj { + Value::Object(obj) + } else { + Value::Null + }; + row.insert(col_name.to_string(), json); + }); + } + DataType::List(_) => { + let listarr = as_list_array(array); + rows.iter_mut() + .zip(listarr.iter()) + .filter_map(|(maybe_row, maybe_value)| { + maybe_row.as_mut().map(|row| (row, maybe_value)) + }) + .try_for_each(|(row, maybe_value)| -> Result<(), ArrowError> { + let maybe_value = maybe_value + .map(|v| array_to_json_array_internal(&v, explicit_nulls).map(Value::Array)) + .transpose()?; + if let Some(j) = maybe_value { + row.insert(col_name.to_string(), j); + } else if explicit_nulls { + row.insert(col_name.to_string(), Value::Null); + } + Ok(()) + })?; + } + DataType::LargeList(_) => { + let listarr = as_large_list_array(array); + rows.iter_mut() + .zip(listarr.iter()) + .filter_map(|(maybe_row, maybe_value)| { + maybe_row.as_mut().map(|row| (row, maybe_value)) + }) + .try_for_each(|(row, maybe_value)| -> Result<(), ArrowError> { + let maybe_value = maybe_value + .map(|v| array_to_json_array_internal(&v, explicit_nulls).map(Value::Array)) + .transpose()?; + if let Some(j) = maybe_value { + row.insert(col_name.to_string(), j); + } else if explicit_nulls { + row.insert(col_name.to_string(), Value::Null); + } + Ok(()) + })?; + } + DataType::Dictionary(_, value_type) => { + let hydrated = arrow_cast::cast::cast(&array, value_type) + .expect("cannot cast dictionary to underlying values"); + set_column_for_json_rows(rows, &hydrated, col_name, explicit_nulls)?; + } + DataType::Map(_, _) => { + let maparr = as_map_array(array); + + let keys = maparr.keys(); + let values = maparr.values(); + + // Keys have to be strings to convert to json. + if !matches!(keys.data_type(), DataType::Utf8) { + return Err(ArrowError::JsonError(format!( + "data type {:?} not supported in nested map for json writer", + keys.data_type() + ))); + } + + let keys = keys.as_string::(); + let values = array_to_json_array_internal(values, explicit_nulls)?; + + let mut kv = keys.iter().zip(values); + + for (i, row) in rows + .iter_mut() + .enumerate() + .filter_map(|(i, maybe_row)| maybe_row.as_mut().map(|row| (i, row))) + { + if maparr.is_null(i) { + row.insert(col_name.to_string(), serde_json::Value::Null); + continue; + } + + let len = maparr.value_length(i) as usize; + let mut obj = serde_json::Map::new(); + + for (_, (k, v)) in (0..len).zip(&mut kv) { + obj.insert(k.expect("keys in a map should be non-null").to_string(), v); + } + + row.insert(col_name.to_string(), serde_json::Value::Object(obj)); + } + } + _ => { + return Err(ArrowError::JsonError(format!( + "data type {:?} not supported in nested map for json writer", + array.data_type() + ))) + } + } + Ok(()) +} + +fn set_column_by_primitive_type( + rows: &mut [Option>], + array: &ArrayRef, + col_name: &str, + explicit_nulls: bool, +) where + T: ArrowPrimitiveType, + T::Native: JsonSerializable, +{ + let primitive_arr = array.as_primitive::(); + + rows.iter_mut() + .zip(primitive_arr.iter()) + .filter_map(|(maybe_row, maybe_value)| maybe_row.as_mut().map(|row| (row, maybe_value))) + .for_each(|(row, maybe_value)| { + if let Some(j) = maybe_value.and_then(|v| v.into_json_value()) { + row.insert(col_name.to_string(), j); + } else if explicit_nulls { + row.insert(col_name.to_string(), Value::Null); + } + }); +} + +fn struct_array_to_jsonmap_array( + array: &StructArray, + explicit_nulls: bool, +) -> Result>>, ArrowError> { + let inner_col_names = array.column_names(); + + let mut inner_objs = (0..array.len()) + // Ensure we write nulls for struct arrays as nulls in JSON + // Instead of writing a struct with nulls + .map(|index| array.is_valid(index).then(Map::new)) + .collect::>>>(); + + for (j, struct_col) in array.columns().iter().enumerate() { + set_column_for_json_rows( + &mut inner_objs, + struct_col, + inner_col_names[j], + explicit_nulls, + )? + } + Ok(inner_objs) +} + +fn array_to_json_array_internal( + array: &dyn Array, + explicit_nulls: bool, +) -> Result, ArrowError> { + match array.data_type() { + DataType::Null => Ok(std::iter::repeat(Value::Null).take(array.len()).collect()), + DataType::Boolean => Ok(array + .as_boolean() + .iter() + .map(|maybe_value| match maybe_value { + Some(v) => v.into(), + None => Value::Null, + }) + .collect()), + + DataType::Utf8 => Ok(array + .as_string::() + .iter() + .map(|maybe_value| match maybe_value { + Some(v) => v.into(), + None => Value::Null, + }) + .collect()), + DataType::LargeUtf8 => Ok(array + .as_string::() + .iter() + .map(|maybe_value| match maybe_value { + Some(v) => v.into(), + None => Value::Null, + }) + .collect()), + DataType::Int8 => primitive_array_to_json::(array), + DataType::Int16 => primitive_array_to_json::(array), + DataType::Int32 => primitive_array_to_json::(array), + DataType::Int64 => primitive_array_to_json::(array), + DataType::UInt8 => primitive_array_to_json::(array), + DataType::UInt16 => primitive_array_to_json::(array), + DataType::UInt32 => primitive_array_to_json::(array), + DataType::UInt64 => primitive_array_to_json::(array), + DataType::Float16 => primitive_array_to_json::(array), + DataType::Float32 => primitive_array_to_json::(array), + DataType::Float64 => primitive_array_to_json::(array), + DataType::List(_) => as_list_array(array) + .iter() + .map(|maybe_value| match maybe_value { + Some(v) => Ok(Value::Array(array_to_json_array_internal( + &v, + explicit_nulls, + )?)), + None => Ok(Value::Null), + }) + .collect(), + DataType::LargeList(_) => as_large_list_array(array) + .iter() + .map(|maybe_value| match maybe_value { + Some(v) => Ok(Value::Array(array_to_json_array_internal( + &v, + explicit_nulls, + )?)), + None => Ok(Value::Null), + }) + .collect(), + DataType::FixedSizeList(_, _) => as_fixed_size_list_array(array) + .iter() + .map(|maybe_value| match maybe_value { + Some(v) => Ok(Value::Array(array_to_json_array_internal( + &v, + explicit_nulls, + )?)), + None => Ok(Value::Null), + }) + .collect(), + DataType::Struct(_) => { + let jsonmaps = struct_array_to_jsonmap_array(array.as_struct(), explicit_nulls)?; + let json_values = jsonmaps + .into_iter() + .map(|maybe_map| maybe_map.map(Value::Object).unwrap_or(Value::Null)) + .collect(); + Ok(json_values) + } + DataType::Map(_, _) => as_map_array(array) + .iter() + .map(|maybe_value| match maybe_value { + Some(v) => Ok(Value::Array(array_to_json_array_internal( + &v, + explicit_nulls, + )?)), + None => Ok(Value::Null), + }) + .collect(), + t => Err(ArrowError::JsonError(format!( + "data type {t:?} not supported" + ))), + } +} + +fn primitive_array_to_json(array: &dyn Array) -> Result, ArrowError> +where + T: ArrowPrimitiveType, + T::Native: JsonSerializable, +{ + Ok(array + .as_primitive::() + .iter() + .map(|maybe_value| match maybe_value { + Some(v) => v.into_json_value().unwrap_or(Value::Null), + None => Value::Null, + }) + .collect()) +} + +fn set_geometry_column_for_json_rows( + rows: &mut [Option>], + array: Arc, + col_name: &str, +) -> Result<(), ArrowError> { + match array.data_type() { + GeoDataType::Point(_) => set_column_by_geometry(rows, array.as_ref().as_point(), col_name), + GeoDataType::LineString(_) => { + set_column_by_geometry(rows, array.as_ref().as_line_string(), col_name) + } + GeoDataType::LargeLineString(_) => { + set_column_by_geometry(rows, array.as_ref().as_large_line_string(), col_name) + } + GeoDataType::Polygon(_) => { + set_column_by_geometry(rows, array.as_ref().as_polygon(), col_name) + } + GeoDataType::LargePolygon(_) => { + set_column_by_geometry(rows, array.as_ref().as_large_polygon(), col_name) + } + GeoDataType::MultiPoint(_) => { + set_column_by_geometry(rows, array.as_ref().as_multi_point(), col_name) + } + GeoDataType::LargeMultiPoint(_) => { + set_column_by_geometry(rows, array.as_ref().as_large_multi_point(), col_name) + } + GeoDataType::MultiLineString(_) => { + set_column_by_geometry(rows, array.as_ref().as_multi_line_string(), col_name) + } + GeoDataType::LargeMultiLineString(_) => { + set_column_by_geometry(rows, array.as_ref().as_large_multi_line_string(), col_name) + } + GeoDataType::MultiPolygon(_) => { + set_column_by_geometry(rows, array.as_ref().as_multi_polygon(), col_name) + } + GeoDataType::LargeMultiPolygon(_) => { + set_column_by_geometry(rows, array.as_ref().as_large_multi_polygon(), col_name) + } + GeoDataType::Mixed(_) => set_column_by_geometry(rows, array.as_ref().as_mixed(), col_name), + GeoDataType::LargeMixed(_) => { + set_column_by_geometry(rows, array.as_ref().as_large_mixed(), col_name) + } + GeoDataType::GeometryCollection(_) => { + set_column_by_geometry(rows, array.as_ref().as_geometry_collection(), col_name) + } + GeoDataType::LargeGeometryCollection(_) => set_column_by_geometry( + rows, + array.as_ref().as_large_geometry_collection(), + col_name, + ), + GeoDataType::Rect => set_column_by_geometry(rows, array.as_ref().as_rect(), col_name), + GeoDataType::WKB => set_column_by_geometry(rows, array.as_ref().as_wkb(), col_name), + GeoDataType::LargeWKB => { + set_column_by_geometry(rows, array.as_ref().as_large_wkb(), col_name) + } + } + Ok(()) +} + +fn set_column_by_geometry<'a>( + rows: &mut [Option>], + array: &impl GeometryArrayAccessor<'a>, + col_name: &str, +) { + rows.iter_mut() + .zip(array.as_ref().as_polygon().iter_geo()) + .filter_map(|(maybe_row, maybe_value)| { + maybe_row.as_mut().and_then(|row| { + maybe_value + .and_then(|value| serde_json::to_value(Geometry::from(&value)).ok()) + .map(|value| (row, value)) + }) + }) + .for_each(|(row, value)| { + row.insert(col_name.to_string(), value); + }) +} + +pub(crate) fn table_to_json_rows( + table: Table, +) -> Result>, crate::Error> { + let batches = table.batches(); + // TODO can we remove the option around the map? + let mut rows: Vec>> = std::iter::repeat(Some(Map::new())) + .take(batches.iter().map(|b| b.num_rows()).sum()) + .collect(); + + if !rows.is_empty() { + let schema = batches[0].schema(); + let geometry_column_indices = schema.as_ref().geometry_columns(); + let mut base = 0; + for batch in batches { + let row_count = batch.num_rows(); + let row_slice = &mut rows[base..base + batch.num_rows()]; + for (j, col) in batch.columns().iter().enumerate() { + let col_name = schema.field(j).name(); + if geometry_column_indices.contains(&j) { + let col = geoarrow::array::from_arrow_array(col, schema.field(j))?; + crate::json::set_geometry_column_for_json_rows(row_slice, col, col_name)? + } else { + crate::json::set_column_for_json_rows(row_slice, col, col_name, false)? + } + } + base += row_count; + } + } + Ok(rows.into_iter().map(|a| a.unwrap())) +} diff --git a/stac-arrow/src/lib.rs b/stac-arrow/src/lib.rs new file mode 100644 index 000000000..e30508d8f --- /dev/null +++ b/stac-arrow/src/lib.rs @@ -0,0 +1,12 @@ +mod error; +mod json; +#[cfg(feature = "parquet")] +mod parquet; +mod table; + +#[cfg(feature = "parquet")] +pub use parquet::read_parquet; +pub use {error::Error, table::table_to_items}; + +/// Crate-specific result type. +pub type Result = std::result::Result; diff --git a/stac-arrow/src/parquet.rs b/stac-arrow/src/parquet.rs new file mode 100644 index 000000000..d263908b7 --- /dev/null +++ b/stac-arrow/src/parquet.rs @@ -0,0 +1,35 @@ +use crate::Result; +use geoarrow::io::parquet::ParquetReaderOptions; +use stac::Item; +use std::{fs::File, path::Path}; + +/// Reads a [stac-geoparquet](https://github.com/stac-utils/stac-geoparquet) file from a path. +/// +/// # Examples +/// +/// ``` +/// let items = stac_arrow::read_parquet("examples/sentinel-2-l2a-1.0.0.parquet").unwrap(); +/// ``` +pub fn read_parquet(path: impl AsRef) -> Result> { + let file = File::open(path)?; + let options = ParquetReaderOptions::default(); // TODO make this configurable via a builder + let table = geoarrow::io::parquet::read_geoparquet(file, options)?; + crate::table_to_items(table) +} + +#[cfg(test)] +mod tests { + #[test] + #[cfg(feature = "parquet-compression")] + fn read_parquet_1_0_0() { + let items = super::read_parquet("examples/sentinel-2-l2a-1.0.0.parquet").unwrap(); + assert_eq!(items.len(), 10); + } + + #[test] + #[cfg(feature = "parquet-compression")] + fn read_parquet_1_1_0() { + let items = super::read_parquet("examples/sentinel-2-l2a-1.1.0.parquet").unwrap(); + assert_eq!(items.len(), 10); + } +} diff --git a/stac-arrow/src/table.rs b/stac-arrow/src/table.rs new file mode 100644 index 000000000..5b884a939 --- /dev/null +++ b/stac-arrow/src/table.rs @@ -0,0 +1,69 @@ +use crate::{Error, Result}; +use geoarrow::table::Table; +use serde_json::{Map, Value}; +use stac::{FlatItem, Item}; + +/// Converts a [geoarrow::table::Table] to a vector of [Items](stac::Item). +/// +/// # Examples +/// +/// ``` +/// # #[cfg(feature = "parquet-compression")] // Needed to read the parquet file +/// # { +/// let file = std::fs::File::open("examples/sentinel-2-l2a-1.1.0.parquet").unwrap(); +/// let table = geoarrow::io::parquet::read_geoparquet(file, Default::default()).unwrap(); +/// let items = stac_arrow::table_to_items(table).unwrap(); +/// assert_eq!(items.len(), 10); +/// # } +/// ``` +pub fn table_to_items(table: Table) -> Result> { + crate::json::table_to_json_rows(table)? + .map(|mut row| -> Result<_> { + if let Some(bbox) = bbox_to_vec(&row)? { + row.insert("bbox".to_string(), bbox.into()); + } + let flat_item: FlatItem = serde_json::from_value(Value::Object(row))?; + Item::try_from(flat_item).map_err(Error::from) + }) + .collect() +} + +fn bbox_to_vec(row: &Map) -> Result>> { + if let Some(bbox) = row.get("bbox") { + if let Value::Object(bbox) = bbox { + let xmin = bbox + .get("xmin") + .and_then(|xmin| xmin.as_f64()) + .ok_or_else(|| Error::InvalidBBoxMap(bbox.clone()))?; + let xmax = bbox + .get("xmax") + .and_then(|xmax| xmax.as_f64()) + .ok_or_else(|| Error::InvalidBBoxMap(bbox.clone()))?; + let ymin = bbox + .get("ymin") + .and_then(|ymin| ymin.as_f64()) + .ok_or_else(|| Error::InvalidBBoxMap(bbox.clone()))?; + let ymax = bbox + .get("ymax") + .and_then(|ymax| ymax.as_f64()) + .ok_or_else(|| Error::InvalidBBoxMap(bbox.clone()))?; + if let Some((zmin, zmax)) = + bbox.get("zmin") + .and_then(|zmin| zmin.as_f64()) + .and_then(|zmin| { + bbox.get("zmax") + .and_then(|zmax| zmax.as_f64()) + .map(|zmax| (zmin, zmax)) + }) + { + Ok(Some(vec![xmin, ymin, zmin, xmax, ymax, zmax])) + } else { + Ok(Some(vec![xmin, ymin, xmax, ymax])) + } + } else { + Err(Error::BBoxIsNotAMap(bbox.clone())) + } + } else { + Ok(None) + } +}