STAC#

Let’s use EOReader to create SpatioTemporal Asset Catalog (STAC) items.

Note: This is experimental for now, use it at your own risk !

Warning: You will need to install pystac[validation], folium and eodag (version != 2.6.0) to run this notebook

Imports#

# Imports
import os

import pystac
import geopandas as gpd
from tempfile import TemporaryDirectory
from shapely.geometry import mapping

from eodag import setup_logging
from eodag.api.core import EODataAccessGateway

from eoreader.reader import Reader

Create logger#

# Create logger
import logging
from sertit import logs

logger = logging.getLogger("eoreader")
logs.init_logger(logger)

Linking some data#

Let’s take 3 products covering approximately the same area (over DAX city in France):

  • One Landsat-8 OLI-TIRS collection 2

  • One Landsat-5 TM collection 2

  • One Sentinel-2 L1C

prod_folder = os.path.join("/home", "prods")
paths = [
    # Landsat-8 OLI-TIRS collection 2
    os.path.join(prod_folder, "LANDSATS_COL2", "LC08_L1TP_200030_20201220_20210310_02_T1.tar"),
    # Landsat-5 TM collection 2    
    os.path.join(prod_folder, "LANDSATS_COL2", "LT05_L1TP_200030_20111110_20200820_02_T1.tar"),
    # Sentinel-2 L2A
    os.path.join(prod_folder, "S2", "PB 02.07+", "S2A_MSIL1C_20191215T110441_N0208_R094_T30TXP_20191215T114155.SAFE"),
]

Create STAC catalog#

Create a STAC catalog and add 3 STAC items to it.

# Create the reader
reader = Reader()

# Work in a temporary directory
tmp = TemporaryDirectory()
# Create STAC catalog
catalog_path = os.path.join(tmp.name, "catalog.json")
catalog = pystac.Catalog(
    id='SERTIT_101',
    description="SERTIT's Catalog",
    title='SERTIT Catalog',
    href=catalog_path
)
# Add all the products into the STAC catalog
for path in paths:
    logger.info(f"*** {os.path.basename(path)} ***")

    # Open the product
    prod = reader.open(path, remove_tmp=True)

    # Get item
    item = prod.stac.create_item()

    # Add item to catalogue
    catalog.add_item(item)
2025-12-23 12:03:03,306 - [INFO] - *** LC08_L1TP_200030_20201220_20210310_02_T1.tar ***
'_vectorize' function is not lazy yet. Computing the raster.
2025-12-23 12:03:05,719 - [DEBUG] - Compute footprint for STAC Item for 20201220T104856_L8_200030_OLI_TIRS
2025-12-23 12:03:05,722 - [DEBUG] - Compute extent for STAC Item for 20201220T104856_L8_200030_OLI_TIRS
2025-12-23 12:03:05,724 - [DEBUG] - Creating STAC Item for 20201220T104856_L8_200030_OLI_TIRS
2025-12-23 12:03:05,725 - [DEBUG] - Add quicklook to STAC Item for 20201220T104856_L8_200030_OLI_TIRS
2025-12-23 12:03:05,726 - [WARNING] - No quicklook found in 20201220T104856_L8_200030_OLI_TIRS
2025-12-23 12:03:05,726 - [DEBUG] - Add EO extension to STAC Item for 20201220T104856_L8_200030_OLI_TIRS
2025-12-23 12:03:05,734 - [DEBUG] - Add PROJ extension to STAC Item for 20201220T104856_L8_200030_OLI_TIRS
2025-12-23 12:03:05,735 - [DEBUG] - Add VIEW extension to STAC Item for 20201220T104856_L8_200030_OLI_TIRS
2025-12-23 12:03:05,736 - [DEBUG] - Validate STAC Item for 20201220T104856_L8_200030_OLI_TIRS
2025-12-23 12:03:06,183 - [INFO] - *** LT05_L1TP_200030_20111110_20200820_02_T1.tar ***
'_vectorize' function is not lazy yet. Computing the raster.
2025-12-23 12:03:08,113 - [DEBUG] - Compute footprint for STAC Item for 20111110T103612_L5_200030_TM
2025-12-23 12:03:08,115 - [DEBUG] - Compute extent for STAC Item for 20111110T103612_L5_200030_TM
2025-12-23 12:03:08,116 - [DEBUG] - Creating STAC Item for 20111110T103612_L5_200030_TM
2025-12-23 12:03:08,117 - [DEBUG] - Add quicklook to STAC Item for 20111110T103612_L5_200030_TM
2025-12-23 12:03:08,117 - [DEBUG] - Add EO extension to STAC Item for 20111110T103612_L5_200030_TM
2025-12-23 12:03:08,122 - [DEBUG] - Add PROJ extension to STAC Item for 20111110T103612_L5_200030_TM
2025-12-23 12:03:08,122 - [DEBUG] - Add VIEW extension to STAC Item for 20111110T103612_L5_200030_TM
2025-12-23 12:03:08,122 - [DEBUG] - Validate STAC Item for 20111110T103612_L5_200030_TM
2025-12-23 12:03:08,146 - [INFO] - *** S2A_MSIL1C_20191215T110441_N0208_R094_T30TXP_20191215T114155.SAFE ***
2025-12-23 12:03:08,632 - [DEBUG] - Compute footprint for STAC Item for 20191215T110441_S2_T30TXP_L1C_114155
2025-12-23 12:03:08,634 - [DEBUG] - Compute extent for STAC Item for 20191215T110441_S2_T30TXP_L1C_114155
2025-12-23 12:03:08,635 - [DEBUG] - Creating STAC Item for 20191215T110441_S2_T30TXP_L1C_114155
2025-12-23 12:03:08,636 - [DEBUG] - Add quicklook to STAC Item for 20191215T110441_S2_T30TXP_L1C_114155
2025-12-23 12:03:08,756 - [DEBUG] - Add EO extension to STAC Item for 20191215T110441_S2_T30TXP_L1C_114155
2025-12-23 12:03:08,876 - [DEBUG] - Add PROJ extension to STAC Item for 20191215T110441_S2_T30TXP_L1C_114155
2025-12-23 12:03:08,876 - [DEBUG] - Add VIEW extension to STAC Item for 20191215T110441_S2_T30TXP_L1C_114155
2025-12-23 12:03:08,877 - [DEBUG] - Validate STAC Item for 20191215T110441_S2_T30TXP_L1C_114155
# Save catalog
catalog.describe()
catalog.normalize_and_save(tmp.name, catalog_type=pystac.CatalogType.SELF_CONTAINED)
* <Catalog id=SERTIT_101>
  * <Item id=20201220T104856_L8_200030_OLI_TIRS>
  * <Item id=20111110T103612_L5_200030_TM>
  * <Item id=20191215T110441_S2_T30TXP_L1C_114155>
list(catalog.get_items())[0]
<Item id=20201220T104856_L8_200030_OLI_TIRS>

Query the catalog#

EODAG is an opensource python library that implements STAC and allows you to query your local STAC catalog.
Look at here for a detailed tutorial.

# Create an EODAG custom STAC provider
dag = EODataAccessGateway()

# Set EODAG logging level to WARNING
setup_logging(verbose=1)

# Add the custom STAC provider, exactly like in the tutorial mentioned above
dag.update_providers_config("""
stac_http_provider:
    search:
        type: StaticStacSearch
        api_endpoint: %s
    products:
        GENERIC_PRODUCT_TYPE:
            productType: '{productType}'
    download:
        type: HTTPDownload
        base_uri: %s
        flatten_top_dirs: True
        outputs_prefix: %s
""" % (catalog_path, tmp.name, tmp.name))

# Set the custom STAC provider as preferred
dag.set_preferred_provider("stac_http_provider")
# Query every product from inside the catalog
all_products = dag.search()
# Load an AOI
aoi_path = os.path.join("/home", "aois", "DAX.geojson")
aoi = gpd.read_file(aoi_path)
aoi_geojson = mapping(aoi.geometry.values[0])

# Query spatially with the AOI and temporally with a time period
query_args = {"start": "2020-05-01", "end": "2022-05-06", "geom": aoi.geometry.values[0]}
query_products = dag.search(**query_args)
query_products[0]
EOProduct
provider: 'usgs_satapi_aws',
product_type: 'L8_OLI_TIRS_C1L1',
properties["id"]: 'LC08_L1GT_105168_20200501_20200820_02_T2',
properties["startTimeFromAscendingNode"]: '2020-05-01T01:56:01.828949Z',
properties["completionTimeFromAscendingNode"]: None,
properties: (26){
productType: 'landsat-c2l1',
platformSerialIdentifier: 'LANDSAT_8',
instrument: 'OLI,TIRS',
title: 'LC08_L1GT_105168_20200501_20200820_02_T2',
creationDate: '2022-07-06T18:25:01.550Z',
modificationDate: '2025-09-24T15:26:59.149Z',
startTimeFromAscendingNode: '2020-05-01T01:56:01.828949Z',
illuminationAzimuthAngle: -106.12051554,
illuminationElevationAngle: -67.03744234,
id: 'LC08_L1GT_105168_20200501_20200820_02_T2',
downloadLink: 'https://landsatlook.usgs.gov/stac-server/collections/landsat-c2l1/items/LC08_L1GT_105168_20200501_20200820_02_T2',
thumbnail: 'https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_thumb_small.jpeg',
storageStatus: 'ONLINE',
awsProductId: 'LC08_L1GT_105168_20200501_20200820_02_T2',
view:off_nadir: 0,
landsat:cloud_cover_land: -1,
landsat:wrs_type: 2,
landsat:wrs_path: 105,
landsat:wrs_row: 168,
landsat:scene_id: 'LC81051682020122LGN00',
landsat:collection_category: 'T2',
landsat:collection_number: '02',
landsat:correction: 'L1GT',
proj:epsg: 32622,
proj:shape: [7821 , 7731 ],
proj:transform: [30 , 0 , 221985 , 0 , -30 , -2439285 ],
}
assets: (23)
'ANG.txt':  { 'roles': '['auxiliary']',  'type': 'text/plain',  'title': 'ANG.txt',  ... } {
title: 'ANG.txt',
description: 'Collection 2 Level-1 Angle Coefficients File (ANG)',
type: 'text/plain',
roles: ['auxiliary' ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_ANG.txt',
file:checksum: '134042105fa9f08f9af5d399f53014782242e0df0c4ac37c3c0bfeef51495da796e7f0ffe7a85ffbb36f28b81c44710bad77b6c63d9ffb3a559d894f80ba94f2db48',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'B1.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'B1.TIF',  ... } {
title: 'B1.TIF',
description: 'Collection 2 Level-1 Coastal/Aerosol Band (B1) Top of Atmosphere Radiance',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
eo:bands: [{ 'name': 'B1' , 'common_name': 'coastal' , 'gsd': 30 , 'center_wavelength': 0.44 } ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_B1.TIF',
file:checksum: '1340a4d85cbfc9e749868b39f5dd68013ecc017213c3f59293b9e92ae587e1f5ef59e1f3e7d2f26ccb1146ab889d19d7acecc526bc041310ab8e5c2541683bd67447',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'B10.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'B10.TIF',  ... } {
title: 'B10.TIF',
description: 'Collection 2 Level-1 Thermal Infrared Band 10.9 (B10) Top of Atmosphere Radiance',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
eo:bands: [{ 'name': 'B10' , 'common_name': 'lwir11' , 'gsd': 100 , 'center_wavelength': 10.9 } ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_B10.TIF',
file:checksum: '134041c33e87ab088d1b34cd19ea92fc6ad8ef9349ce06fae187b8b3a6a479ecf552ec4e7c4e6aa5f5f46578a22603c613836cbb3cc4cd8de228fd09df48b2623c66',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'B11.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'B11.TIF',  ... } {
title: 'B11.TIF',
description: 'Collection 2 Level-1 Thermal Infrared Band 12.0 (B11) Top of Atmosphere Radiance',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
eo:bands: [{ 'name': 'B11' , 'common_name': 'lwir12' , 'gsd': 100 , 'center_wavelength': 12.01 } ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_B11.TIF',
file:checksum: '1340a81b970a82ef597dcb2d7f0590c292069ed1fa22327e9dcb2b2c1fb3fcd40538b41517cec318ac3f2bf5b4b797d7db3bdf837f5273ca956ddd456198bc747da6',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'B2.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'B2.TIF',  ... } {
title: 'B2.TIF',
description: 'Collection 2 Level-1 Blue Band (B2) Top of Atmosphere Radiance',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
eo:bands: [{ 'name': 'B2' , 'common_name': 'blue' , 'gsd': 30 , 'center_wavelength': 0.48 } ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_B2.TIF',
file:checksum: '1340133f19a44d017bed9af7af9d07fbd2575b4bd74f0c55d2fd527e6b9cb3aa27c8bda538749cba31d7c281e62a1fc71aff127ede354bc66503ed6d7261330ab4e9',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'B3.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'B3.TIF',  ... } {
title: 'B3.TIF',
description: 'Collection 2 Level-1 Green Band (B3) Top of Atmosphere Radiance',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
eo:bands: [{ 'name': 'B3' , 'common_name': 'green' , 'gsd': 30 , 'center_wavelength': 0.56 } ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_B3.TIF',
file:checksum: '1340521acf8aab52a6f233669e24049878536a4c9c203eaef6f91b7e9d3e9d1b4c1991ba5f1d6897305e5abb1282475e6881b6851d56204658afb6a6e0347d389a80',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'B4.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'B4.TIF',  ... } {
title: 'B4.TIF',
description: 'Collection 2 Level-1 Red Band (B4) Top of Atmosphere Radiance',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
eo:bands: [{ 'name': 'B4' , 'common_name': 'red' , 'gsd': 30 , 'center_wavelength': 0.66 } ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_B4.TIF',
file:checksum: '1340c0a38d5c4299349caee824919b9c93d0b823c2c20ce2f8d0fcf1e7ecb113d4d0698b20e8aa7f44f9d85fbe70c869ebd25c7febf2b5e8ac13308fe443b092cc76',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'B5.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'B5.TIF',  ... } {
title: 'B5.TIF',
description: 'Collection 2 Level-1 Near Infrared Band 0.8 (B5) Top of Atmosphere Radiance',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
eo:bands: [{ 'name': 'B5' , 'common_name': 'nir08' , 'gsd': 30 , 'center_wavelength': 0.87 } ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_B5.TIF',
file:checksum: '1340a2b40831a2d08a8e150645784b1ab9361cfaf173bc2658fecc8231b821bbeecd4292d99c25b2aa526d4da9f8f2901f701aca1fa9e3c13c49d285f052d1a2da21',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'B6.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'B6.TIF',  ... } {
title: 'B6.TIF',
description: 'Collection 2 Level-1 Short-wave Infrared Band 1.6 (B6) Top of Atmosphere Radiance',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
eo:bands: [{ 'name': 'B6' , 'common_name': 'swir16' , 'gsd': 30 , 'center_wavelength': 1.61 } ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_B6.TIF',
file:checksum: '13407427e7689a00f11316140add30dccc28933a45787e89ee1e46fe8cc27615efcf32934923a3c4ee405c2c153d902fae5dbb89003b320ab77673ef37a8a25f516f',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'B7.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'B7.TIF',  ... } {
title: 'B7.TIF',
description: 'Collection 2 Level-1 Short-wave Infrared Band 2.2 (B7) Top of Atmosphere Radiance',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
eo:bands: [{ 'name': 'B7' , 'common_name': 'swir22' , 'gsd': 30 , 'center_wavelength': 2.2 } ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_B7.TIF',
file:checksum: '134098069772bd5fdb1e44930585674124eb8e2428b64370acf7d003568f163d88e53bfb97c8b9bbe1eea1904a801f5149b3a4f98e329354abb075b8fb836f1b248d',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'B8.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'B8.TIF',  ... } {
title: 'B8.TIF',
description: 'Collection 2 Level-1 Panchromatic Band (B8) Top of Atmosphere Radiance',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
eo:bands: [{ 'name': 'B8' , 'common_name': 'pan' , 'gsd': 15 , 'center_wavelength': 0.59 } ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_B8.TIF',
file:checksum: '134026a854e4ac91fb47cd4962e5a329c26e1e0799f733249598b7f76f0800ff0f4e6731a06a699335028e34458ca1c320690d1d5bc0b55d79e2d0b2aea7d09bbe22',
proj:shape: [15641 , 15461 ],
proj:transform: [15 , 0 , 221992.5 , 0 , -15 , -2439292.5 ],
storage:platform: 'AWS',
storage:requester_pays: True,
}
'B9.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'B9.TIF',  ... } {
title: 'B9.TIF',
description: 'Collection 2 Level-1 Cirrus Band (B9) Top of Atmosphere Radiance',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
eo:bands: [{ 'name': 'B9' , 'common_name': 'cirrus' , 'gsd': 30 , 'center_wavelength': 1.37 } ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_B9.TIF',
file:checksum: '1340d22ec6ba961756ca39f1732bf5e18c1ef19270b1b7d050bf4539632d9528129c22147c2ac2fa7c163e89d1de3b71c2fe4e46c0f80d0117daffa5b45dcac158ad',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'MTL.json':  { 'roles': '['metadata']',  'type': 'application/json',  'title': 'MTL.json',  ... } {
title: 'MTL.json',
description: 'Collection 2 Level-1 Product Metadata File (json)',
type: 'application/json',
roles: ['metadata' ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_MTL.json',
file:checksum: '1340bab895bd0a721edcb56f17bc9a64be0e89dc4ebba136f53553e20da12a5a3ee1cda450a5ebf9f7d7c84c6c985fce19f91b9c454ec999468ac383cebda7261500',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'MTL.txt':  { 'roles': '['auxiliary']',  'type': 'text/plain',  'title': 'MTL.txt',  ... } {
title: 'MTL.txt',
description: 'Collection 2 Level-1 Product Metadata File (MTL)',
type: 'text/plain',
roles: ['auxiliary' ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_MTL.txt',
file:checksum: '13402e919d48a71746f83df70086b57715afc1bedbf03adc37909a6fdbc3104efcf3be72586cc7212c5fc99af99aef0ee83af3e5ae70d46f786c8e746577a32f56ee',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'MTL.xml':  { 'roles': '['metadata']',  'type': 'application/xml',  'title': 'MTL.xml',  ... } {
title: 'MTL.xml',
description: 'Collection 2 Level-1 Product Metadata File (xml)',
type: 'application/xml',
roles: ['metadata' ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_MTL.xml',
file:checksum: '13401e045ec59654297d181967e9e61efac52870ef5383b1e3e10ac14891dea16ff68f7bbcddf91ddc6aeaa4b787773bd07cd99bc4fbb9bc778166357b224edb1c99',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'QA_PIXEL.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'QA_PIXEL.TIF',  ... } {
title: 'QA_PIXEL.TIF',
description: 'Collection 2 Level-1 Quality Assessment Band (QA_PIXEL) Top of Atmosphere Radiance',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_QA_PIXEL.TIF',
classification:bitfields: [{ 'name': 'fill' , 'description': 'Corresponding pixels in L1 image bands are fill' , 'offset': 0 , 'length': 1 , 'classes': [{ 'name': 'not_fill' , 'description': 'L1 image band pixels are not fill' , 'value': 0 } ,
{ 'name': 'fill' , 'description': 'L1 image band pixels are fill' , 'value': 1 } ]
}
,
{ 'name': 'dilated' , 'description': 'Dilated cloud' , 'offset': 1 , 'length': 1 , 'classes': [{ 'name': 'not_dilated' , 'description': 'Cloud is not dilated or no cloud' , 'value': 0 } ,
{ 'name': 'dilated' , 'description': 'Cloud dilation' , 'value': 1 } ]
}
,
{ 'name': 'cirrus' , 'description': 'Cirrus mask' , 'offset': 2 , 'length': 1 , 'classes': [{ 'name': 'not_cirrus' , 'description': 'No confidence level set or low confidence cirrus' , 'value': 0 } ,
{ 'name': 'cirrus' , 'description': 'High confidence cirrus' , 'value': 1 } ]
}
,
{ 'name': 'cloud' , 'description': 'Cloud mask' , 'offset': 3 , 'length': 1 , 'classes': [{ 'name': 'not_cloud' , 'description': 'Cloud confidence is not high' , 'value': 0 } ,
{ 'name': 'cloud' , 'description': 'High confidence cloud' , 'value': 1 } ]
}
,
{ 'name': 'shadow' , 'description': 'Cloud shadow mask' , 'offset': 4 , 'length': 1 , 'classes': [{ 'name': 'not_shadow' , 'description': 'Cloud shadow confidence is not high' , 'value': 0 } ,
{ 'name': 'shadow' , 'description': 'High confidence cloud shadow' , 'value': 1 } ]
}
,
{ 'name': 'snow' , 'description': 'Snow/Ice mask' , 'offset': 5 , 'length': 1 , 'classes': [{ 'name': 'not_snow' , 'description': 'Snow/Ice confidence is not high' , 'value': 0 } ,
{ 'name': 'snow' , 'description': 'High confidence snow cover' , 'value': 1 } ]
}
,
{ 'name': 'clear' , 'description': 'Cloud or dilated cloud bits set' , 'offset': 6 , 'length': 1 , 'classes': [{ 'name': 'not_clear' , 'description': 'Cloud or dilated cloud bits are set' , 'value': 0 } ,
{ 'name': 'clear' , 'description': 'Cloud and dilated cloud bits are not set' , 'value': 1 } ]
}
,
{ 'name': 'water' , 'description': 'Water mask' , 'offset': 7 , 'length': 1 , 'classes': [{ 'name': 'not_water' , 'description': 'Land or cloud' , 'value': 0 } ,
{ 'name': 'water' , 'description': 'Water' , 'value': 1 } ]
}
,
{ 'name': 'cloud_confidence' , 'description': 'Cloud confidence levels' , 'offset': 8 , 'length': 2 , 'classes': [{ 'name': 'not_set' , 'description': 'No confidence level set' , 'value': 0 } ,
{ 'name': 'low' , 'description': 'Low confidence cloud' , 'value': 1 } ,
{ 'name': 'medium' , 'description': 'Medium confidence cloud' , 'value': 2 } ,
{ 'name': 'high' , 'description': 'High confidence cloud' , 'value': 3 } ]
}
,
{ 'name': 'shadow_confidence' , 'description': 'Cloud shadow confidence levels' , 'offset': 10 , 'length': 2 , 'classes': [{ 'name': 'not_set' , 'description': 'No confidence level set' , 'value': 0 } ,
{ 'name': 'low' , 'description': 'Low confidence cloud shadow' , 'value': 1 } ,
{ 'name': 'reserved' , 'description': 'Reserved - value not used' , 'value': 2 } ,
{ 'name': 'high' , 'description': 'High confidence cloud shadow' , 'value': 3 } ]
}
,
{ 'name': 'snow_confidence' , 'description': 'Snow/Ice confidence levels' , 'offset': 12 , 'length': 2 , 'classes': [{ 'name': 'not_set' , 'description': 'No confidence level set' , 'value': 0 } ,
{ 'name': 'low' , 'description': 'Low confidence snow/ice' , 'value': 1 } ,
{ 'name': 'reserved' , 'description': 'Reserved - value not used' , 'value': 2 } ,
{ 'name': 'high' , 'description': 'High confidence snow/ice' , 'value': 3 } ]
}
,
{ 'name': 'cirrus_confidence' , 'description': 'Cirrus confidence levels' , 'offset': 14 , 'length': 2 , 'classes': [{ 'name': 'not_set' , 'description': 'No confidence level set' , 'value': 0 } ,
{ 'name': 'low' , 'description': 'Low confidence cirrus' , 'value': 1 } ,
{ 'name': 'reserved' , 'description': 'Reserved - value not used' , 'value': 2 } ,
{ 'name': 'high' , 'description': 'High confidence cirrus' , 'value': 3 } ]
}
],
file:checksum: '1340ea77060f66c67b43bfa491e80fae06f4bc56757969a0aa3eabc905657881ec9f41a3211514b781d01e0a17d777120374914f9edc65f96e7789f2b042a8796c5b',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'QA_RADSAT.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'QA_RADSAT.TIF',  ... } {
title: 'QA_RADSAT.TIF',
description: 'Radiometric Saturation Quality Assessment Band Top of Atmosphere Radiance',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_QA_RADSAT.TIF',
classification:bitfields: [{ 'name': 'band1' , 'description': 'Band 1 radiometric saturation' , 'offset': 0 , 'length': 1 , 'classes': [{ 'name': 'not_saturated' , 'description': 'Band 1 is not saturated' , 'value': 0 } ,
{ 'name': 'saturated' , 'description': 'Band 1 is saturated' , 'value': 1 } ]
}
,
{ 'name': 'band2' , 'description': 'Band 2 radiometric saturation' , 'offset': 1 , 'length': 1 , 'classes': [{ 'name': 'not_saturated' , 'description': 'Band 2 is not saturated' , 'value': 0 } ,
{ 'name': 'saturated' , 'description': 'Band 2 is saturated' , 'value': 1 } ]
}
,
{ 'name': 'band3' , 'description': 'Band 3 radiometric saturation' , 'offset': 2 , 'length': 1 , 'classes': [{ 'name': 'not_saturated' , 'description': 'Band 3 is not saturated' , 'value': 0 } ,
{ 'name': 'saturated' , 'description': 'Band 3 is saturated' , 'value': 1 } ]
}
,
{ 'name': 'band4' , 'description': 'Band 4 radiometric saturation' , 'offset': 3 , 'length': 1 , 'classes': [{ 'name': 'not_saturated' , 'description': 'Band 4 is not saturated' , 'value': 0 } ,
{ 'name': 'saturated' , 'description': 'Band 4 is saturated' , 'value': 1 } ]
}
,
{ 'name': 'band5' , 'description': 'Band 5 radiometric saturation' , 'offset': 4 , 'length': 1 , 'classes': [{ 'name': 'not_saturated' , 'description': 'Band 5 is not saturated' , 'value': 0 } ,
{ 'name': 'saturated' , 'description': 'Band 5 is saturated' , 'value': 1 } ]
}
,
{ 'name': 'band6' , 'description': 'Band 6 radiometric saturation' , 'offset': 5 , 'length': 1 , 'classes': [{ 'name': 'not_saturated' , 'description': 'Band 6 is not saturated' , 'value': 0 } ,
{ 'name': 'saturated' , 'description': 'Band 6 is saturated' , 'value': 1 } ]
}
,
{ 'name': 'band7' , 'description': 'Band 7 radiometric saturation' , 'offset': 6 , 'length': 1 , 'classes': [{ 'name': 'not_saturated' , 'description': 'Band 7 is not saturated' , 'value': 0 } ,
{ 'name': 'saturated' , 'description': 'Band 7 is saturated' , 'value': 1 } ]
}
,
{ 'name': 'unused' , 'description': 'Unused bit' , 'offset': 7 , 'length': 1 , 'classes': [{ 'name': 'unused' , 'description': 'Unused bit' , 'value': 0 } ] } ,
{ 'name': 'band9' , 'description': 'Band 9 radiometric saturation' , 'offset': 8 , 'length': 1 , 'classes': [{ 'name': 'not_saturated' , 'description': 'Band 9 is not saturated' , 'value': 0 } ,
{ 'name': 'saturated' , 'description': 'Band 9 is saturated' , 'value': 1 } ]
}
,
{ 'name': 'unused' , 'description': 'Unused bit' , 'offset': 9 , 'length': 1 , 'classes': [{ 'name': 'unused' , 'description': 'Unused bit' , 'value': 0 } ] } ,
{ 'name': 'unused' , 'description': 'Unused bit' , 'offset': 10 , 'length': 1 , 'classes': [{ 'name': 'unused' , 'description': 'Unused bit' , 'value': 0 } ] } ,
{ 'name': 'occlusion' , 'description': 'Terrain not visible from sensor due to intervening terrain' , 'offset': 11 , 'length': 1 , 'classes': [{ 'name': 'not_occluded' , 'description': 'Terrain is not occluded' , 'value': 0 } ,
{ 'name': 'occluded' , 'description': 'Terrain is occluded' , 'value': 1 } ]
}
,
{ 'name': 'unused' , 'description': 'Unused bit' , 'offset': 12 , 'length': 1 , 'classes': [{ 'name': 'unused' , 'description': 'Unused bit' , 'value': 0 } ] } ,
{ 'name': 'unused' , 'description': 'Unused bit' , 'offset': 13 , 'length': 1 , 'classes': [{ 'name': 'unused' , 'description': 'Unused bit' , 'value': 0 } ] } ,
{ 'name': 'unused' , 'description': 'Unused bit' , 'offset': 14 , 'length': 1 , 'classes': [{ 'name': 'unused' , 'description': 'Unused bit' , 'value': 0 } ] } ,
{ 'name': 'unused' , 'description': 'Unused bit' , 'offset': 15 , 'length': 1 , 'classes': [{ 'name': 'unused' , 'description': 'Unused bit' , 'value': 0 } ] } ],
file:checksum: '134065e432222f4a91d286b931d127bd6a4184d0077df54326b617902fca0602f6155a3ed6b26aa88bad89756fb2ac41b4464be65eb6f13caf2a8c544ce57be8d288',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'SAA.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'SAA.TIF',  ... } {
title: 'SAA.TIF',
description: 'Collection 2 Level-1 Solar Azimuth Angle Band',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_SAA.TIF',
file:checksum: '1340b44c747a66e9cd7cbc04b305a422e597a0a99746f78eee51f7d59516db684db1220162618367a39f95192ac0691803703c8d51e42246c32610fa96cdb2095abd',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'SZA.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'SZA.TIF',  ... } {
title: 'SZA.TIF',
description: 'Collection 2 Level-1 Solar Zenith Angle Band',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_SZA.TIF',
file:checksum: '134064cd276d442289830e0d35c9601dd7569d092edbaa0d8dfc701ab829deb3c4b1747aa40f6ee54cb0f34345fa08733156c97aa5e29f6fcba45f0024dfa73df511',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'VAA.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'VAA.TIF',  ... } {
title: 'VAA.TIF',
description: 'Collection 2 Level-1 Sensor Azimuth Angle Band',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_VAA.TIF',
file:checksum: '13400606943c891e61210bb7cdf27d9cd5b752d2c98cc5cdb1d7e1e8d76ce6f4d3e9f467c85776b882e54ec4edca9d0d365be45fb8b2aa6981f3102b0e25052e2372',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'VZA.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'VZA.TIF',  ... } {
title: 'VZA.TIF',
description: 'Collection 2 Level-1 Sensor Zenith Angle Band',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_VZA.TIF',
file:checksum: '13400ae7dadc247f1762a88b677b16690a9c08405605bd18e7c3b9d7e7355de0df7ceba0e1e3d5394437b8117bb2695da02277cd6207f150e64b4fb418568ebbcf85',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'thumb_large.jpeg':  { 'roles': '['auxiliary']',  'type': 'image/jpeg',  'title': 'thumb_large.jpeg',  ... } {
title: 'thumb_large.jpeg',
type: 'image/jpeg',
roles: ['auxiliary' ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_thumb_large.jpeg',
file:checksum: '134073876f5167788cf2c581fd638eaf6245059f75c4606c96b57752fc5cc0a88bb84ef1fe11e28028b1c1edcb8120dc097544b06c31cdb4675d28f55d93a479fb4f',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'thumb_small.jpeg':  { 'roles': '['auxiliary']',  'type': 'image/jpeg',  'title': 'thumb_small.jpeg',  ... } {
title: 'thumb_small.jpeg',
type: 'image/jpeg',
roles: ['auxiliary' ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_thumb_small.jpeg',
file:checksum: '13404ab33b9b4a8a3782a2b680914778c73fba34dbd6b8517cc0031daaa0aab44027f68eca9778ff28bce0c2ed1bb81480f3f0a9db71151c624d72c1dc391426b7d6',
storage:platform: 'AWS',
storage:requester_pays: True,
}
geometry
thumbnail
query_products[0].assets
AssetsDict (23)
'ANG.txt':  { 'roles': '['auxiliary']',  'type': 'text/plain',  'title': 'ANG.txt',  ... } {
title: 'ANG.txt',
description: 'Collection 2 Level-1 Angle Coefficients File (ANG)',
type: 'text/plain',
roles: ['auxiliary' ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_ANG.txt',
file:checksum: '134042105fa9f08f9af5d399f53014782242e0df0c4ac37c3c0bfeef51495da796e7f0ffe7a85ffbb36f28b81c44710bad77b6c63d9ffb3a559d894f80ba94f2db48',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'B1.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'B1.TIF',  ... } {
title: 'B1.TIF',
description: 'Collection 2 Level-1 Coastal/Aerosol Band (B1) Top of Atmosphere Radiance',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
eo:bands: [{ 'name': 'B1' , 'common_name': 'coastal' , 'gsd': 30 , 'center_wavelength': 0.44 } ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_B1.TIF',
file:checksum: '1340a4d85cbfc9e749868b39f5dd68013ecc017213c3f59293b9e92ae587e1f5ef59e1f3e7d2f26ccb1146ab889d19d7acecc526bc041310ab8e5c2541683bd67447',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'B10.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'B10.TIF',  ... } {
title: 'B10.TIF',
description: 'Collection 2 Level-1 Thermal Infrared Band 10.9 (B10) Top of Atmosphere Radiance',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
eo:bands: [{ 'name': 'B10' , 'common_name': 'lwir11' , 'gsd': 100 , 'center_wavelength': 10.9 } ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_B10.TIF',
file:checksum: '134041c33e87ab088d1b34cd19ea92fc6ad8ef9349ce06fae187b8b3a6a479ecf552ec4e7c4e6aa5f5f46578a22603c613836cbb3cc4cd8de228fd09df48b2623c66',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'B11.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'B11.TIF',  ... } {
title: 'B11.TIF',
description: 'Collection 2 Level-1 Thermal Infrared Band 12.0 (B11) Top of Atmosphere Radiance',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
eo:bands: [{ 'name': 'B11' , 'common_name': 'lwir12' , 'gsd': 100 , 'center_wavelength': 12.01 } ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_B11.TIF',
file:checksum: '1340a81b970a82ef597dcb2d7f0590c292069ed1fa22327e9dcb2b2c1fb3fcd40538b41517cec318ac3f2bf5b4b797d7db3bdf837f5273ca956ddd456198bc747da6',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'B2.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'B2.TIF',  ... } {
title: 'B2.TIF',
description: 'Collection 2 Level-1 Blue Band (B2) Top of Atmosphere Radiance',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
eo:bands: [{ 'name': 'B2' , 'common_name': 'blue' , 'gsd': 30 , 'center_wavelength': 0.48 } ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_B2.TIF',
file:checksum: '1340133f19a44d017bed9af7af9d07fbd2575b4bd74f0c55d2fd527e6b9cb3aa27c8bda538749cba31d7c281e62a1fc71aff127ede354bc66503ed6d7261330ab4e9',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'B3.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'B3.TIF',  ... } {
title: 'B3.TIF',
description: 'Collection 2 Level-1 Green Band (B3) Top of Atmosphere Radiance',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
eo:bands: [{ 'name': 'B3' , 'common_name': 'green' , 'gsd': 30 , 'center_wavelength': 0.56 } ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_B3.TIF',
file:checksum: '1340521acf8aab52a6f233669e24049878536a4c9c203eaef6f91b7e9d3e9d1b4c1991ba5f1d6897305e5abb1282475e6881b6851d56204658afb6a6e0347d389a80',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'B4.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'B4.TIF',  ... } {
title: 'B4.TIF',
description: 'Collection 2 Level-1 Red Band (B4) Top of Atmosphere Radiance',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
eo:bands: [{ 'name': 'B4' , 'common_name': 'red' , 'gsd': 30 , 'center_wavelength': 0.66 } ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_B4.TIF',
file:checksum: '1340c0a38d5c4299349caee824919b9c93d0b823c2c20ce2f8d0fcf1e7ecb113d4d0698b20e8aa7f44f9d85fbe70c869ebd25c7febf2b5e8ac13308fe443b092cc76',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'B5.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'B5.TIF',  ... } {
title: 'B5.TIF',
description: 'Collection 2 Level-1 Near Infrared Band 0.8 (B5) Top of Atmosphere Radiance',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
eo:bands: [{ 'name': 'B5' , 'common_name': 'nir08' , 'gsd': 30 , 'center_wavelength': 0.87 } ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_B5.TIF',
file:checksum: '1340a2b40831a2d08a8e150645784b1ab9361cfaf173bc2658fecc8231b821bbeecd4292d99c25b2aa526d4da9f8f2901f701aca1fa9e3c13c49d285f052d1a2da21',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'B6.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'B6.TIF',  ... } {
title: 'B6.TIF',
description: 'Collection 2 Level-1 Short-wave Infrared Band 1.6 (B6) Top of Atmosphere Radiance',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
eo:bands: [{ 'name': 'B6' , 'common_name': 'swir16' , 'gsd': 30 , 'center_wavelength': 1.61 } ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_B6.TIF',
file:checksum: '13407427e7689a00f11316140add30dccc28933a45787e89ee1e46fe8cc27615efcf32934923a3c4ee405c2c153d902fae5dbb89003b320ab77673ef37a8a25f516f',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'B7.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'B7.TIF',  ... } {
title: 'B7.TIF',
description: 'Collection 2 Level-1 Short-wave Infrared Band 2.2 (B7) Top of Atmosphere Radiance',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
eo:bands: [{ 'name': 'B7' , 'common_name': 'swir22' , 'gsd': 30 , 'center_wavelength': 2.2 } ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_B7.TIF',
file:checksum: '134098069772bd5fdb1e44930585674124eb8e2428b64370acf7d003568f163d88e53bfb97c8b9bbe1eea1904a801f5149b3a4f98e329354abb075b8fb836f1b248d',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'B8.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'B8.TIF',  ... } {
title: 'B8.TIF',
description: 'Collection 2 Level-1 Panchromatic Band (B8) Top of Atmosphere Radiance',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
eo:bands: [{ 'name': 'B8' , 'common_name': 'pan' , 'gsd': 15 , 'center_wavelength': 0.59 } ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_B8.TIF',
file:checksum: '134026a854e4ac91fb47cd4962e5a329c26e1e0799f733249598b7f76f0800ff0f4e6731a06a699335028e34458ca1c320690d1d5bc0b55d79e2d0b2aea7d09bbe22',
proj:shape: [15641 , 15461 ],
proj:transform: [15 , 0 , 221992.5 , 0 , -15 , -2439292.5 ],
storage:platform: 'AWS',
storage:requester_pays: True,
}
'B9.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'B9.TIF',  ... } {
title: 'B9.TIF',
description: 'Collection 2 Level-1 Cirrus Band (B9) Top of Atmosphere Radiance',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
eo:bands: [{ 'name': 'B9' , 'common_name': 'cirrus' , 'gsd': 30 , 'center_wavelength': 1.37 } ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_B9.TIF',
file:checksum: '1340d22ec6ba961756ca39f1732bf5e18c1ef19270b1b7d050bf4539632d9528129c22147c2ac2fa7c163e89d1de3b71c2fe4e46c0f80d0117daffa5b45dcac158ad',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'MTL.json':  { 'roles': '['metadata']',  'type': 'application/json',  'title': 'MTL.json',  ... } {
title: 'MTL.json',
description: 'Collection 2 Level-1 Product Metadata File (json)',
type: 'application/json',
roles: ['metadata' ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_MTL.json',
file:checksum: '1340bab895bd0a721edcb56f17bc9a64be0e89dc4ebba136f53553e20da12a5a3ee1cda450a5ebf9f7d7c84c6c985fce19f91b9c454ec999468ac383cebda7261500',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'MTL.txt':  { 'roles': '['auxiliary']',  'type': 'text/plain',  'title': 'MTL.txt',  ... } {
title: 'MTL.txt',
description: 'Collection 2 Level-1 Product Metadata File (MTL)',
type: 'text/plain',
roles: ['auxiliary' ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_MTL.txt',
file:checksum: '13402e919d48a71746f83df70086b57715afc1bedbf03adc37909a6fdbc3104efcf3be72586cc7212c5fc99af99aef0ee83af3e5ae70d46f786c8e746577a32f56ee',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'MTL.xml':  { 'roles': '['metadata']',  'type': 'application/xml',  'title': 'MTL.xml',  ... } {
title: 'MTL.xml',
description: 'Collection 2 Level-1 Product Metadata File (xml)',
type: 'application/xml',
roles: ['metadata' ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_MTL.xml',
file:checksum: '13401e045ec59654297d181967e9e61efac52870ef5383b1e3e10ac14891dea16ff68f7bbcddf91ddc6aeaa4b787773bd07cd99bc4fbb9bc778166357b224edb1c99',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'QA_PIXEL.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'QA_PIXEL.TIF',  ... } {
title: 'QA_PIXEL.TIF',
description: 'Collection 2 Level-1 Quality Assessment Band (QA_PIXEL) Top of Atmosphere Radiance',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_QA_PIXEL.TIF',
classification:bitfields: [{ 'name': 'fill' , 'description': 'Corresponding pixels in L1 image bands are fill' , 'offset': 0 , 'length': 1 , 'classes': [{ 'name': 'not_fill' , 'description': 'L1 image band pixels are not fill' , 'value': 0 } ,
{ 'name': 'fill' , 'description': 'L1 image band pixels are fill' , 'value': 1 } ]
}
,
{ 'name': 'dilated' , 'description': 'Dilated cloud' , 'offset': 1 , 'length': 1 , 'classes': [{ 'name': 'not_dilated' , 'description': 'Cloud is not dilated or no cloud' , 'value': 0 } ,
{ 'name': 'dilated' , 'description': 'Cloud dilation' , 'value': 1 } ]
}
,
{ 'name': 'cirrus' , 'description': 'Cirrus mask' , 'offset': 2 , 'length': 1 , 'classes': [{ 'name': 'not_cirrus' , 'description': 'No confidence level set or low confidence cirrus' , 'value': 0 } ,
{ 'name': 'cirrus' , 'description': 'High confidence cirrus' , 'value': 1 } ]
}
,
{ 'name': 'cloud' , 'description': 'Cloud mask' , 'offset': 3 , 'length': 1 , 'classes': [{ 'name': 'not_cloud' , 'description': 'Cloud confidence is not high' , 'value': 0 } ,
{ 'name': 'cloud' , 'description': 'High confidence cloud' , 'value': 1 } ]
}
,
{ 'name': 'shadow' , 'description': 'Cloud shadow mask' , 'offset': 4 , 'length': 1 , 'classes': [{ 'name': 'not_shadow' , 'description': 'Cloud shadow confidence is not high' , 'value': 0 } ,
{ 'name': 'shadow' , 'description': 'High confidence cloud shadow' , 'value': 1 } ]
}
,
{ 'name': 'snow' , 'description': 'Snow/Ice mask' , 'offset': 5 , 'length': 1 , 'classes': [{ 'name': 'not_snow' , 'description': 'Snow/Ice confidence is not high' , 'value': 0 } ,
{ 'name': 'snow' , 'description': 'High confidence snow cover' , 'value': 1 } ]
}
,
{ 'name': 'clear' , 'description': 'Cloud or dilated cloud bits set' , 'offset': 6 , 'length': 1 , 'classes': [{ 'name': 'not_clear' , 'description': 'Cloud or dilated cloud bits are set' , 'value': 0 } ,
{ 'name': 'clear' , 'description': 'Cloud and dilated cloud bits are not set' , 'value': 1 } ]
}
,
{ 'name': 'water' , 'description': 'Water mask' , 'offset': 7 , 'length': 1 , 'classes': [{ 'name': 'not_water' , 'description': 'Land or cloud' , 'value': 0 } ,
{ 'name': 'water' , 'description': 'Water' , 'value': 1 } ]
}
,
{ 'name': 'cloud_confidence' , 'description': 'Cloud confidence levels' , 'offset': 8 , 'length': 2 , 'classes': [{ 'name': 'not_set' , 'description': 'No confidence level set' , 'value': 0 } ,
{ 'name': 'low' , 'description': 'Low confidence cloud' , 'value': 1 } ,
{ 'name': 'medium' , 'description': 'Medium confidence cloud' , 'value': 2 } ,
{ 'name': 'high' , 'description': 'High confidence cloud' , 'value': 3 } ]
}
,
{ 'name': 'shadow_confidence' , 'description': 'Cloud shadow confidence levels' , 'offset': 10 , 'length': 2 , 'classes': [{ 'name': 'not_set' , 'description': 'No confidence level set' , 'value': 0 } ,
{ 'name': 'low' , 'description': 'Low confidence cloud shadow' , 'value': 1 } ,
{ 'name': 'reserved' , 'description': 'Reserved - value not used' , 'value': 2 } ,
{ 'name': 'high' , 'description': 'High confidence cloud shadow' , 'value': 3 } ]
}
,
{ 'name': 'snow_confidence' , 'description': 'Snow/Ice confidence levels' , 'offset': 12 , 'length': 2 , 'classes': [{ 'name': 'not_set' , 'description': 'No confidence level set' , 'value': 0 } ,
{ 'name': 'low' , 'description': 'Low confidence snow/ice' , 'value': 1 } ,
{ 'name': 'reserved' , 'description': 'Reserved - value not used' , 'value': 2 } ,
{ 'name': 'high' , 'description': 'High confidence snow/ice' , 'value': 3 } ]
}
,
{ 'name': 'cirrus_confidence' , 'description': 'Cirrus confidence levels' , 'offset': 14 , 'length': 2 , 'classes': [{ 'name': 'not_set' , 'description': 'No confidence level set' , 'value': 0 } ,
{ 'name': 'low' , 'description': 'Low confidence cirrus' , 'value': 1 } ,
{ 'name': 'reserved' , 'description': 'Reserved - value not used' , 'value': 2 } ,
{ 'name': 'high' , 'description': 'High confidence cirrus' , 'value': 3 } ]
}
],
file:checksum: '1340ea77060f66c67b43bfa491e80fae06f4bc56757969a0aa3eabc905657881ec9f41a3211514b781d01e0a17d777120374914f9edc65f96e7789f2b042a8796c5b',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'QA_RADSAT.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'QA_RADSAT.TIF',  ... } {
title: 'QA_RADSAT.TIF',
description: 'Radiometric Saturation Quality Assessment Band Top of Atmosphere Radiance',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_QA_RADSAT.TIF',
classification:bitfields: [{ 'name': 'band1' , 'description': 'Band 1 radiometric saturation' , 'offset': 0 , 'length': 1 , 'classes': [{ 'name': 'not_saturated' , 'description': 'Band 1 is not saturated' , 'value': 0 } ,
{ 'name': 'saturated' , 'description': 'Band 1 is saturated' , 'value': 1 } ]
}
,
{ 'name': 'band2' , 'description': 'Band 2 radiometric saturation' , 'offset': 1 , 'length': 1 , 'classes': [{ 'name': 'not_saturated' , 'description': 'Band 2 is not saturated' , 'value': 0 } ,
{ 'name': 'saturated' , 'description': 'Band 2 is saturated' , 'value': 1 } ]
}
,
{ 'name': 'band3' , 'description': 'Band 3 radiometric saturation' , 'offset': 2 , 'length': 1 , 'classes': [{ 'name': 'not_saturated' , 'description': 'Band 3 is not saturated' , 'value': 0 } ,
{ 'name': 'saturated' , 'description': 'Band 3 is saturated' , 'value': 1 } ]
}
,
{ 'name': 'band4' , 'description': 'Band 4 radiometric saturation' , 'offset': 3 , 'length': 1 , 'classes': [{ 'name': 'not_saturated' , 'description': 'Band 4 is not saturated' , 'value': 0 } ,
{ 'name': 'saturated' , 'description': 'Band 4 is saturated' , 'value': 1 } ]
}
,
{ 'name': 'band5' , 'description': 'Band 5 radiometric saturation' , 'offset': 4 , 'length': 1 , 'classes': [{ 'name': 'not_saturated' , 'description': 'Band 5 is not saturated' , 'value': 0 } ,
{ 'name': 'saturated' , 'description': 'Band 5 is saturated' , 'value': 1 } ]
}
,
{ 'name': 'band6' , 'description': 'Band 6 radiometric saturation' , 'offset': 5 , 'length': 1 , 'classes': [{ 'name': 'not_saturated' , 'description': 'Band 6 is not saturated' , 'value': 0 } ,
{ 'name': 'saturated' , 'description': 'Band 6 is saturated' , 'value': 1 } ]
}
,
{ 'name': 'band7' , 'description': 'Band 7 radiometric saturation' , 'offset': 6 , 'length': 1 , 'classes': [{ 'name': 'not_saturated' , 'description': 'Band 7 is not saturated' , 'value': 0 } ,
{ 'name': 'saturated' , 'description': 'Band 7 is saturated' , 'value': 1 } ]
}
,
{ 'name': 'unused' , 'description': 'Unused bit' , 'offset': 7 , 'length': 1 , 'classes': [{ 'name': 'unused' , 'description': 'Unused bit' , 'value': 0 } ] } ,
{ 'name': 'band9' , 'description': 'Band 9 radiometric saturation' , 'offset': 8 , 'length': 1 , 'classes': [{ 'name': 'not_saturated' , 'description': 'Band 9 is not saturated' , 'value': 0 } ,
{ 'name': 'saturated' , 'description': 'Band 9 is saturated' , 'value': 1 } ]
}
,
{ 'name': 'unused' , 'description': 'Unused bit' , 'offset': 9 , 'length': 1 , 'classes': [{ 'name': 'unused' , 'description': 'Unused bit' , 'value': 0 } ] } ,
{ 'name': 'unused' , 'description': 'Unused bit' , 'offset': 10 , 'length': 1 , 'classes': [{ 'name': 'unused' , 'description': 'Unused bit' , 'value': 0 } ] } ,
{ 'name': 'occlusion' , 'description': 'Terrain not visible from sensor due to intervening terrain' , 'offset': 11 , 'length': 1 , 'classes': [{ 'name': 'not_occluded' , 'description': 'Terrain is not occluded' , 'value': 0 } ,
{ 'name': 'occluded' , 'description': 'Terrain is occluded' , 'value': 1 } ]
}
,
{ 'name': 'unused' , 'description': 'Unused bit' , 'offset': 12 , 'length': 1 , 'classes': [{ 'name': 'unused' , 'description': 'Unused bit' , 'value': 0 } ] } ,
{ 'name': 'unused' , 'description': 'Unused bit' , 'offset': 13 , 'length': 1 , 'classes': [{ 'name': 'unused' , 'description': 'Unused bit' , 'value': 0 } ] } ,
{ 'name': 'unused' , 'description': 'Unused bit' , 'offset': 14 , 'length': 1 , 'classes': [{ 'name': 'unused' , 'description': 'Unused bit' , 'value': 0 } ] } ,
{ 'name': 'unused' , 'description': 'Unused bit' , 'offset': 15 , 'length': 1 , 'classes': [{ 'name': 'unused' , 'description': 'Unused bit' , 'value': 0 } ] } ],
file:checksum: '134065e432222f4a91d286b931d127bd6a4184d0077df54326b617902fca0602f6155a3ed6b26aa88bad89756fb2ac41b4464be65eb6f13caf2a8c544ce57be8d288',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'SAA.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'SAA.TIF',  ... } {
title: 'SAA.TIF',
description: 'Collection 2 Level-1 Solar Azimuth Angle Band',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_SAA.TIF',
file:checksum: '1340b44c747a66e9cd7cbc04b305a422e597a0a99746f78eee51f7d59516db684db1220162618367a39f95192ac0691803703c8d51e42246c32610fa96cdb2095abd',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'SZA.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'SZA.TIF',  ... } {
title: 'SZA.TIF',
description: 'Collection 2 Level-1 Solar Zenith Angle Band',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_SZA.TIF',
file:checksum: '134064cd276d442289830e0d35c9601dd7569d092edbaa0d8dfc701ab829deb3c4b1747aa40f6ee54cb0f34345fa08733156c97aa5e29f6fcba45f0024dfa73df511',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'VAA.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'VAA.TIF',  ... } {
title: 'VAA.TIF',
description: 'Collection 2 Level-1 Sensor Azimuth Angle Band',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_VAA.TIF',
file:checksum: '13400606943c891e61210bb7cdf27d9cd5b752d2c98cc5cdb1d7e1e8d76ce6f4d3e9f467c85776b882e54ec4edca9d0d365be45fb8b2aa6981f3102b0e25052e2372',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'VZA.TIF':  { 'roles': '['data']',  'type': 'image/vnd.stac.geotiff; cloud-optimized=true',  'title': 'VZA.TIF',  ... } {
title: 'VZA.TIF',
description: 'Collection 2 Level-1 Sensor Zenith Angle Band',
type: 'image/vnd.stac.geotiff; cloud-optimized=true',
roles: ['data' ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_VZA.TIF',
file:checksum: '13400ae7dadc247f1762a88b677b16690a9c08405605bd18e7c3b9d7e7355de0df7ceba0e1e3d5394437b8117bb2695da02277cd6207f150e64b4fb418568ebbcf85',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'thumb_large.jpeg':  { 'roles': '['auxiliary']',  'type': 'image/jpeg',  'title': 'thumb_large.jpeg',  ... } {
title: 'thumb_large.jpeg',
type: 'image/jpeg',
roles: ['auxiliary' ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_thumb_large.jpeg',
file:checksum: '134073876f5167788cf2c581fd638eaf6245059f75c4606c96b57752fc5cc0a88bb84ef1fe11e28028b1c1edcb8120dc097544b06c31cdb4675d28f55d93a479fb4f',
storage:platform: 'AWS',
storage:requester_pays: True,
}
'thumb_small.jpeg':  { 'roles': '['auxiliary']',  'type': 'image/jpeg',  'title': 'thumb_small.jpeg',  ... } {
title: 'thumb_small.jpeg',
type: 'image/jpeg',
roles: ['auxiliary' ],
href: 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2020/105/168/LC08_L1GT_105168_20200501_20200820_02_T2/LC08_L1GT_105168_20200501_20200820_02_T2_thumb_small.jpeg',
file:checksum: '13404ab33b9b4a8a3782a2b680914778c73fba34dbd6b8517cc0031daaa0aab44027f68eca9778ff28bce0c2ed1bb81480f3f0a9db71151c624d72c1dc391426b7d6',
storage:platform: 'AWS',
storage:requester_pays: True,
}

Display the results#

We can use folium to display the results geometry over a map.

import folium

# Create a map zoomed over the search area
fmap = folium.Map((43.2, -1.05), zoom_start=7)

# Add a layer green layer for the query over the AOI
folium.GeoJson(
    data=all_products.as_geojson_object(),
    tooltip = "All products stored in the catalog",
    style_function=lambda x: {'color': 'green'}
).add_to(fmap)

# Add a layer green layer for the query over the AOI
folium.GeoJson(
    data=query_products.as_geojson_object(),
    tooltip = "Retrieved products with the query",
    style_function=lambda x: {'color': 'red'}
).add_to(fmap)

# Add a layer blue layer for the AOI
folium.GeoJson(
    data=aoi_geojson,
    tooltip = "DAX AOI",
    style_function=lambda x: {'color': 'blue'}
).add_to(fmap)

fmap
Make this Notebook Trusted to load map: File -> Trust Notebook
# Clean the tmp directory
tmp.cleanup()