Download satellite data using s3 on CopPhil

The following example aims to present how to use s3 protocol in order to get data directly from object storage. It is divided into three main parts:

  • Data discovery - How to use query to get data from object storage

  • Download full Sentinel-2 product

  • Download selected Sentinel-2 bands from object storage

Prerequisites

No. 1 Access to CopPhil site

You need a CopPhil hosting account, available at https://infra.copphil.philsa.gov.ph.

No. 2 Access to JupyterLab

JupyterLab used in this article is available here: https://jupyter.infra.copphil.philsa.gov.ph/hub/login?next=%2Fhub%2F.

No. 3 Working knowledge of JupyterLab

See Download satellite data using API on CopPhil

No. 4 Using API

This is an introductory example of obtaining EODATA using API calls, in Python:

Download satellite data using API on CopPhil

No. 5 Information on Sentinel-2 mission

Page Sentinel-2 mission shows basic information on Sentinel-2 mission, which is used in this article as a source of information.

No. 6 Use Geo science kernel

Geo science kernel has preinstalled all of the Python libraries in this article:

Python 3 kernel and Geo science kernel in JupyterLab on CopPhil

No. 7 Have credentials to access EODATA ready To obtain the necessary credentials to access EODATA, follow this article:

How to get credentials to access EODATA on CopPhil

You can generate up to 200 different keys per account.

What We Are Going To Cover

  • Preparing your environment

  • Connecting with s3 storage - eodata

  • Search for the Sentinel-2 L2A products

    • Building a query

    • Extracting s3 path - urls to specific products and bands

  • Downloading full Sentinel-2 Level 2 product

  • Downloading individual bands from selected Sentinel-2 Level 2 product

  • Access individual bands without downloading

    • Download individual bands from all found Sentinel-2 Level 2 products

    • Access individual bands without downloading (multiple files)

  • Summary

Prepare your environment

Upload necessary python libraries.

# HTTP requests
import requests

# Interact with s3
import boto3

# JSON parser
import json

# file manipulation
import os
import glob

Connect with s3 storage - eodata

To access eodata, you must have a pair of credentials: access kay and secret key. These credentials are required to communicate with and use eodata storage. Use Prerequisite No. 7 to obtain these keys and enter them into the code.

If connection is successful, the following message will be printed.

Connection to bucket ’eodata’ successful. Objects found.

Here is the code:

access_key = 'your_access_key'
secret_key = 'your_secret_key'
host = 'http://eodata.infra.copphil.philsa.gov.ph'

# Initialize S3 resource
s3 = boto3.resource(
    's3',
    aws_access_key_id=access_key,
    aws_secret_access_key=secret_key,
    endpoint_url=host,
)

# Verify connection by accessing the 'eodata' bucket
bucket_name = 'eodata'
try:
    bucket = s3.Bucket(bucket_name)
    # Check if the bucket is accessible by listing its contents
    objects = list(bucket.objects.limit(1))  # Limit to 1 object for testing
    if objects:
        print(f"Connection to bucket '{bucket_name}' successful. Objects found.")
    else:
        print(f"Connection to bucket '{bucket_name}' successful, but no objects found.")
except Exception as e:
    print(f"Connection to bucket '{bucket_name}' failed:", e)

The output:

Connection to bucket 'eodata' successful. Objects found.

Search for the Sentinel-2 L2A products

Build a query

In order to find desired products it is needed to determinate some specific filters:

collection_name:

Sentinel-1, Sentinel-2 etc.

product_type

MSIL1C, MSIL2A

aoi

Extent (coordinates) of the area of interest (WGS84)

search_period_start

Time range - start date

search_period_end

Time range - end date - max_cloud_cover: maximum cloud cover (%) of the image

# base URL of the product catalogue
catalogue_odata_url = "https://catalogue.infra.copphil.philsa.gov.ph/odata/v1"

# search parameters
collection_name = "SENTINEL-2"
product_type = "S2MSI2A"
aoi = "POLYGON((120.962986 14.598416, 120.995964 14.599182, 120.999658 14.563436, 120.960348 14.567522, 120.962986 14.598416))"
search_period_start = "2024-01-01T00:00:00.000Z"
search_period_end = "2024-09-30T00:00:00.000Z"
max_cloud_cover = 20

search_query = f"{catalogue_odata_url}/Products?$filter=Collection/Name eq '{collection_name}' and Attributes/OData.CSC.StringAttribute/any(att:att/Name eq 'productType' and att/OData.CSC.StringAttribute/Value eq '{product_type}' and Attributes/OData.CSC.DoubleAttribute/any(att:att/Name eq 'cloudCover' and att/OData.CSC.DoubleAttribute/Value le {max_cloud_cover})) and OData.CSC.Intersects(area=geography'SRID=4326;{aoi}') and ContentDate/Start gt {search_period_start} and ContentDate/Start lt {search_period_end}"


#search_query_cloud = f"{search_query} and Attributes/OData.CSC.DoubleAttribute/any(att:att/Name eq 'cloudCover' and att/OData.CSC.DoubleAttribute/Value le {max_cloud_cover})"
print(f"""\n{search_query.replace(' ', "%20")}\n""")

The output:

https://catalogue.infra.copphil.philsa.gov.ph/odata/v1/Products?$filter=Collection/Name%20eq%20’SENTINEL-2’%20and%20Attributes/OData.CSC.StringAttribute/any(att:att/Name%20eq%20’productType’%20and%20att/OData.CSC.StringAttribute/Value%20eq%20’S2MSI2A’%20and%20Attributes/OData.CSC.DoubleAttribute/any(att:att/Name%20eq%20’cloudCover’%20and%20att/OData.CSC.DoubleAttribute/Value%20le%2020))%20and%20OData.CSC.Intersects(area=geography’SRID=4326;POLYGON((120.962986%2014.598416,%20120.995964%2014.599182,%20120.999658%2014.563436,%20120.960348%2014.567522,%20120.962986%2014.598416))’)%20and%20ContentDate/Start%20gt%202024-01-01T00:00:00.000Z%20and%20ContentDate/Start%20lt%202024-09-30T00:00:00.000Z

Extract s3 path - urls to specific products and bands

Make a request using created query and parse it to extract s3 paths. s3 paths are some kind of urls/localization where files are stored. However, they do not represent physical file paths as they would on a traditional file system; rather, they serve as identifiers within s3’s flat object storage.

‘eodata’ part is removed from the path as it is a name of previous defined bucket.

products = requests.get(search_query).json()

path_list = []
for item in products['value']:
    path_s3 = item['S3Path'].replace('/eodata/', '', 1)
    path_list.append(path_s3)     #append each S3Path (path) to the list
    print(path_s3)                #print each S3Path (path) to the list
Sentinel-2/MSI/L2A/2024/04/16/S2A_MSIL2A_20240416T021611_N0510_R003_T51PTS_20240416T075854.SAFE
Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE
Sentinel-2/MSI/L2A/2024/03/02/S2B_MSIL2A_20240302T021609_N0510_R003_T51PTS_20240302T043128.SAFE
Sentinel-2/MSI/L2A/2024/04/21/S2B_MSIL2A_20240421T021529_N0510_R003_T51PTS_20240421T043611.SAFE
Sentinel-2/MSI/L2A/2024/02/11/S2B_MSIL2A_20240211T021829_N0510_R003_T51PTS_20240211T050012.SAFE
Sentinel-2/MSI/L2A/2024/03/07/S2A_MSIL2A_20240307T021541_N0510_R003_T51PTS_20240307T053851.SAFE

Download full Sentinel-2 Level 2 product

Creates a download directory based on the name of a specific product from the path_list, then iterates through all objects in an S3 bucket that match the specified product path, downloading each file to the designated local directory while preserving the original directory structure.

# Get a name
product_path = f'{path_list[1]}/'
product_name = product_path.split('/')[-2]

# Specify the download directory
download_dir = f"./{product_name}"

# Make sure the download directory exists
os.makedirs(download_dir, exist_ok=True)

# Download each file from selected product
for obj in bucket.objects.filter(Prefix=product_path):
    target_path = os.path.join(download_dir, obj.key[len(product_path):])
    os.makedirs(os.path.dirname(target_path), exist_ok=True)

    print(f"Downloading {obj.key} to {target_path}")
    bucket.download_file(obj.key, target_path)
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/DATASTRIP/DS_2APS_20240426T075954_S20240426T022416/MTD_DS.xml to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/DATASTRIP/DS_2APS_20240426T075954_S20240426T022416/MTD_DS.xml
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/DATASTRIP/DS_2APS_20240426T075954_S20240426T022416/QI_DATA/FORMAT_CORRECTNESS.xml to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/DATASTRIP/DS_2APS_20240426T075954_S20240426T022416/QI_DATA/FORMAT_CORRECTNESS.xml
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/DATASTRIP/DS_2APS_20240426T075954_S20240426T022416/QI_DATA/GENERAL_QUALITY.xml to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/DATASTRIP/DS_2APS_20240426T075954_S20240426T022416/QI_DATA/GENERAL_QUALITY.xml
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/DATASTRIP/DS_2APS_20240426T075954_S20240426T022416/QI_DATA/GEOMETRIC_QUALITY.xml to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/DATASTRIP/DS_2APS_20240426T075954_S20240426T022416/QI_DATA/GEOMETRIC_QUALITY.xml
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/DATASTRIP/DS_2APS_20240426T075954_S20240426T022416/QI_DATA/RADIOMETRIC_QUALITY.xml to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/DATASTRIP/DS_2APS_20240426T075954_S20240426T022416/QI_DATA/RADIOMETRIC_QUALITY.xml
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/DATASTRIP/DS_2APS_20240426T075954_S20240426T022416/QI_DATA/SENSOR_QUALITY.xml to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/DATASTRIP/DS_2APS_20240426T075954_S20240426T022416/QI_DATA/SENSOR_QUALITY.xml
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/AUX_DATA/AUX_CAMSFO to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/AUX_DATA/AUX_CAMSFO
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/AUX_DATA/AUX_ECMWFT to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/AUX_DATA/AUX_ECMWFT
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R10m/T51PTS_20240426T021611_AOT_10m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R10m/T51PTS_20240426T021611_AOT_10m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R10m/T51PTS_20240426T021611_B02_10m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R10m/T51PTS_20240426T021611_B02_10m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R10m/T51PTS_20240426T021611_B03_10m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R10m/T51PTS_20240426T021611_B03_10m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R10m/T51PTS_20240426T021611_B04_10m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R10m/T51PTS_20240426T021611_B04_10m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R10m/T51PTS_20240426T021611_B08_10m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R10m/T51PTS_20240426T021611_B08_10m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R10m/T51PTS_20240426T021611_TCI_10m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R10m/T51PTS_20240426T021611_TCI_10m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R10m/T51PTS_20240426T021611_WVP_10m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R10m/T51PTS_20240426T021611_WVP_10m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R20m/T51PTS_20240426T021611_AOT_20m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R20m/T51PTS_20240426T021611_AOT_20m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R20m/T51PTS_20240426T021611_B01_20m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R20m/T51PTS_20240426T021611_B01_20m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R20m/T51PTS_20240426T021611_B02_20m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R20m/T51PTS_20240426T021611_B02_20m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R20m/T51PTS_20240426T021611_B03_20m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R20m/T51PTS_20240426T021611_B03_20m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R20m/T51PTS_20240426T021611_B04_20m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R20m/T51PTS_20240426T021611_B04_20m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R20m/T51PTS_20240426T021611_B05_20m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R20m/T51PTS_20240426T021611_B05_20m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R20m/T51PTS_20240426T021611_B06_20m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R20m/T51PTS_20240426T021611_B06_20m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R20m/T51PTS_20240426T021611_B07_20m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R20m/T51PTS_20240426T021611_B07_20m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R20m/T51PTS_20240426T021611_B11_20m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R20m/T51PTS_20240426T021611_B11_20m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R20m/T51PTS_20240426T021611_B12_20m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R20m/T51PTS_20240426T021611_B12_20m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R20m/T51PTS_20240426T021611_B8A_20m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R20m/T51PTS_20240426T021611_B8A_20m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R20m/T51PTS_20240426T021611_SCL_20m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R20m/T51PTS_20240426T021611_SCL_20m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R20m/T51PTS_20240426T021611_TCI_20m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R20m/T51PTS_20240426T021611_TCI_20m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R20m/T51PTS_20240426T021611_WVP_20m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R20m/T51PTS_20240426T021611_WVP_20m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R60m/T51PTS_20240426T021611_AOT_60m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R60m/T51PTS_20240426T021611_AOT_60m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R60m/T51PTS_20240426T021611_B01_60m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R60m/T51PTS_20240426T021611_B01_60m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R60m/T51PTS_20240426T021611_B02_60m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R60m/T51PTS_20240426T021611_B02_60m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R60m/T51PTS_20240426T021611_B03_60m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R60m/T51PTS_20240426T021611_B03_60m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R60m/T51PTS_20240426T021611_B04_60m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R60m/T51PTS_20240426T021611_B04_60m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R60m/T51PTS_20240426T021611_B05_60m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R60m/T51PTS_20240426T021611_B05_60m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R60m/T51PTS_20240426T021611_B06_60m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R60m/T51PTS_20240426T021611_B06_60m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R60m/T51PTS_20240426T021611_B07_60m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R60m/T51PTS_20240426T021611_B07_60m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R60m/T51PTS_20240426T021611_B09_60m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R60m/T51PTS_20240426T021611_B09_60m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R60m/T51PTS_20240426T021611_B11_60m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R60m/T51PTS_20240426T021611_B11_60m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R60m/T51PTS_20240426T021611_B12_60m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R60m/T51PTS_20240426T021611_B12_60m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R60m/T51PTS_20240426T021611_B8A_60m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R60m/T51PTS_20240426T021611_B8A_60m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R60m/T51PTS_20240426T021611_SCL_60m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R60m/T51PTS_20240426T021611_SCL_60m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R60m/T51PTS_20240426T021611_TCI_60m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R60m/T51PTS_20240426T021611_TCI_60m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R60m/T51PTS_20240426T021611_WVP_60m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R60m/T51PTS_20240426T021611_WVP_60m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/MTD_TL.xml to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/MTD_TL.xml
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/FORMAT_CORRECTNESS.xml to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/FORMAT_CORRECTNESS.xml
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/GENERAL_QUALITY.xml to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/GENERAL_QUALITY.xml
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/GEOMETRIC_QUALITY.xml to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/GEOMETRIC_QUALITY.xml
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/L2A_QUALITY.xml to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/L2A_QUALITY.xml
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_CLASSI_B00.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_CLASSI_B00.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_CLDPRB_20m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_CLDPRB_20m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_CLDPRB_60m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_CLDPRB_60m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_DETFOO_B01.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_DETFOO_B01.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_DETFOO_B02.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_DETFOO_B02.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_DETFOO_B03.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_DETFOO_B03.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_DETFOO_B04.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_DETFOO_B04.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_DETFOO_B05.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_DETFOO_B05.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_DETFOO_B06.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_DETFOO_B06.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_DETFOO_B07.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_DETFOO_B07.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_DETFOO_B08.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_DETFOO_B08.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_DETFOO_B09.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_DETFOO_B09.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_DETFOO_B10.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_DETFOO_B10.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_DETFOO_B11.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_DETFOO_B11.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_DETFOO_B12.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_DETFOO_B12.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_DETFOO_B8A.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_DETFOO_B8A.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_QUALIT_B01.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_QUALIT_B01.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_QUALIT_B02.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_QUALIT_B02.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_QUALIT_B03.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_QUALIT_B03.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_QUALIT_B04.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_QUALIT_B04.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_QUALIT_B05.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_QUALIT_B05.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_QUALIT_B06.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_QUALIT_B06.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_QUALIT_B07.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_QUALIT_B07.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_QUALIT_B08.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_QUALIT_B08.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_QUALIT_B09.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_QUALIT_B09.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_QUALIT_B10.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_QUALIT_B10.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_QUALIT_B11.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_QUALIT_B11.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_QUALIT_B12.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_QUALIT_B12.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_QUALIT_B8A.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_QUALIT_B8A.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_SNWPRB_20m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_SNWPRB_20m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_SNWPRB_60m.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/MSK_SNWPRB_60m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/SENSOR_QUALITY.xml to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/SENSOR_QUALITY.xml
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/T51PTS_20240426T021611_PVI.jp2 to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/QI_DATA/T51PTS_20240426T021611_PVI.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/HTML/UserProduct_index.html to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/HTML/UserProduct_index.html
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/HTML/UserProduct_index.xsl to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/HTML/UserProduct_index.xsl
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/HTML/banner_1.png to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/HTML/banner_1.png
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/HTML/banner_2.png to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/HTML/banner_2.png
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/HTML/banner_3.png to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/HTML/banner_3.png
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/HTML/star_bg.jpg to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/HTML/star_bg.jpg
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/INSPIRE.xml to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/INSPIRE.xml
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/MTD_MSIL2A.xml to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/MTD_MSIL2A.xml
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954-ql.jpg to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954-ql.jpg
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/manifest.safe to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/manifest.safe
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/rep_info/S2_PDI_Level-2A_Datastrip_Metadata.xsd to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/rep_info/S2_PDI_Level-2A_Datastrip_Metadata.xsd
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/rep_info/S2_PDI_Level-2A_Tile_Metadata.xsd to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/rep_info/S2_PDI_Level-2A_Tile_Metadata.xsd
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/rep_info/S2_User_Product_Level-2A_Metadata.xsd to ./S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/rep_info/S2_User_Product_Level-2A_Metadata.xsd

Download individual bands from selected Sentinel-2 Level 2 product

When you are a user granted with an access to s3, it is even better not to download full product. Access to eodata allows you to search for and download specific bands.

Download individual Sentinel-2 band files (B04 and B08 at 10m resolution) from a specific S2L2A product.

product_path = f'{path_list[1]}/'
product_name = product_path.split('/')[-2]

# Specify the download directory
download_dir = "./download"

# Make sure the download directory exists
os.makedirs(download_dir, exist_ok=True)

# Iterate over objects in the bucket with the specified prefix
for obj in bucket.objects.filter(Prefix=product_path):
    # Download only B04 and B08 bands at 10m resolution
    if "IMG_DATA/R10m/" in obj.key and ("_B04_10m.jp2" in obj.key or "_B08_10m.jp2" in obj.key):
        # Construct the full local path
        target_path = os.path.join(download_dir, obj.key[len(product_path):])
        os.makedirs(os.path.dirname(target_path), exist_ok=True)

        print(f"Downloading {obj.key} to {target_path}")
        bucket.download_file(obj.key, target_path)

# Find red and NIR bands in all subdirectories
red_band_files = glob.glob(os.path.join(download_dir, "**", "*B04_10m.jp2"), recursive=True)
nir_band_files = glob.glob(os.path.join(download_dir, "**", "*B08_10m.jp2"), recursive=True)

if red_band_files and nir_band_files:
    red_band_path = red_band_files[0]
    nir_band_path = nir_band_files[0]
    print(f"Red band path: {red_band_path}")
    print(f"NIR band path: {nir_band_path}")
else:
    print("Error: One or both of the band files (B04 and B08) were not found in the download directory.")
Downloading Sentinel-2/MSI/L2A/2024/03/07/S2A_MSIL2A_20240307T021541_N0510_R003_T51PTS_20240307T053851.SAFE/GRANULE/L2A_T51PTS_A045474_20240307T022802/IMG_DATA/R10m/T51PTS_20240307T021541_B04_10m.jp2 to ./download/GRANULE/L2A_T51PTS_A045474_20240307T022802/IMG_DATA/R10m/T51PTS_20240307T021541_B04_10m.jp2
Downloading Sentinel-2/MSI/L2A/2024/03/07/S2A_MSIL2A_20240307T021541_N0510_R003_T51PTS_20240307T053851.SAFE/GRANULE/L2A_T51PTS_A045474_20240307T022802/IMG_DATA/R10m/T51PTS_20240307T021541_B08_10m.jp2 to ./download/GRANULE/L2A_T51PTS_A045474_20240307T022802/IMG_DATA/R10m/T51PTS_20240307T021541_B08_10m.jp2
Red band path: ./download/GRANULE/L2A_T51PTS_A045474_20240307T022802/IMG_DATA/R10m/T51PTS_20240307T021541_B04_10m.jp2
NIR band path: ./download/GRANULE/L2A_T51PTS_A045474_20240307T022802/IMG_DATA/R10m/T51PTS_20240307T021541_B08_10m.jp2

Access individual bands without downloading

In fact, data does not have to be downloaded. You can just find a desired data and put it into variable. Then, it is possible to work with the data as if it was stored in your local environment.

# Set the product path and name
product_path = f'{path_list[1]}/'
product_name = product_path.split('/')[-2]

# Initialize lists to store paths of the desired band files
red_band_files = []
nir_band_files = []

# Iterate over objects in the bucket with the specified prefix
for obj in bucket.objects.filter(Prefix=product_path):
    # Check for B04 and B08 bands at 10m resolution
    if "IMG_DATA/R10m/" in obj.key and ("_B04_10m.jp2" in obj.key or "_B08_10m.jp2" in obj.key):
        # Construct the target path (without downloading)
        target_path = obj.key  # Use the S3 object key directly

        # Add the target path to the appropriate list
        if "_B04_10m.jp2" in obj.key:
            red_band_files.append(target_path)
        elif "_B08_10m.jp2" in obj.key:
            nir_band_files.append(target_path)

# Output the paths of the found band files
if red_band_files and nir_band_files:
    red_band_path = red_band_files[0]  # Get the first red band path
    nir_band_path = nir_band_files[0]  # Get the first NIR band path
    print(f"Red band path: {red_band_path}")
    print(f"NIR band path: {nir_band_path}")
else:
    print("Error: One or both of the band files (B04 and B08) were not found.")
Red band path: Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R10m/T51PTS_20240426T021611_B04_10m.jp2
NIR band path: Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R10m/T51PTS_20240426T021611_B08_10m.jp2

Download individual bands from all found Sentinel-2 Level 2 products

Download Red and NIR bands from all products which fitted to query requirements.

product_path = f'{path_list[1]}/'

# Specify the download directory
download_dir = "./download"

# Make sure the download directory exists
os.makedirs(download_dir, exist_ok=True)


# Define specific band names
desired_bands = ['B04_10m.jp2', 'B08_10m.jp2']
resolution = '10m'

# Iterate over each path in path_list
for product_path in path_list:
    product_name = product_path.split('/')[-1]
    download_dir = os.path.join(main_download_dir, product_name)  # Create product-specific download directory
    os.makedirs(download_dir, exist_ok=True)

    # Download only the specified bands
    for obj in bucket.objects.filter(Prefix=product_path):
        if f"IMG_DATA/R{resolution}/" in obj.key:
            for band in desired_bands:
                if band in obj.key:  # Check if the current object's key contains the desired band
                    target_path = os.path.join(download_dir, obj.key[len(product_path):].lstrip('/'))  # Adjust target path
                    os.makedirs(os.path.dirname(target_path), exist_ok=True)  # Create target directory
                    print(f"Downloading {obj.key} to {target_path}")
                    bucket.download_file(obj.key, target_path)
Downloading Sentinel-2/MSI/L2A/2024/02/11/S2B_MSIL2A_20240211T021829_N0510_R003_T51PTS_20240211T050012.SAFE/GRANULE/L2A_T51PTS_A036208_20240211T023001/IMG_DATA/R10m/T51PTS_20240211T021829_B04_10m.jp2 to ./download/S2B_MSIL2A_20240211T021829_N0510_R003_T51PTS_20240211T050012.SAFE/GRANULE/L2A_T51PTS_A036208_20240211T023001/IMG_DATA/R10m/T51PTS_20240211T021829_B04_10m.jp2
Downloading Sentinel-2/MSI/L2A/2024/02/11/S2B_MSIL2A_20240211T021829_N0510_R003_T51PTS_20240211T050012.SAFE/GRANULE/L2A_T51PTS_A036208_20240211T023001/IMG_DATA/R10m/T51PTS_20240211T021829_B08_10m.jp2 to ./download/S2B_MSIL2A_20240211T021829_N0510_R003_T51PTS_20240211T050012.SAFE/GRANULE/L2A_T51PTS_A036208_20240211T023001/IMG_DATA/R10m/T51PTS_20240211T021829_B08_10m.jp2
Downloading Sentinel-2/MSI/L2A/2024/03/07/S2A_MSIL2A_20240307T021541_N0510_R003_T51PTS_20240307T053851.SAFE/GRANULE/L2A_T51PTS_A045474_20240307T022802/IMG_DATA/R10m/T51PTS_20240307T021541_B04_10m.jp2 to ./download/S2A_MSIL2A_20240307T021541_N0510_R003_T51PTS_20240307T053851.SAFE/GRANULE/L2A_T51PTS_A045474_20240307T022802/IMG_DATA/R10m/T51PTS_20240307T021541_B04_10m.jp2
Downloading Sentinel-2/MSI/L2A/2024/03/07/S2A_MSIL2A_20240307T021541_N0510_R003_T51PTS_20240307T053851.SAFE/GRANULE/L2A_T51PTS_A045474_20240307T022802/IMG_DATA/R10m/T51PTS_20240307T021541_B08_10m.jp2 to ./download/S2A_MSIL2A_20240307T021541_N0510_R003_T51PTS_20240307T053851.SAFE/GRANULE/L2A_T51PTS_A045474_20240307T022802/IMG_DATA/R10m/T51PTS_20240307T021541_B08_10m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/16/S2A_MSIL2A_20240416T021611_N0510_R003_T51PTS_20240416T075854.SAFE/GRANULE/L2A_T51PTS_A046046_20240416T022539/IMG_DATA/R10m/T51PTS_20240416T021611_B04_10m.jp2 to ./download/S2A_MSIL2A_20240416T021611_N0510_R003_T51PTS_20240416T075854.SAFE/GRANULE/L2A_T51PTS_A046046_20240416T022539/IMG_DATA/R10m/T51PTS_20240416T021611_B04_10m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/16/S2A_MSIL2A_20240416T021611_N0510_R003_T51PTS_20240416T075854.SAFE/GRANULE/L2A_T51PTS_A046046_20240416T022539/IMG_DATA/R10m/T51PTS_20240416T021611_B08_10m.jp2 to ./download/S2A_MSIL2A_20240416T021611_N0510_R003_T51PTS_20240416T075854.SAFE/GRANULE/L2A_T51PTS_A046046_20240416T022539/IMG_DATA/R10m/T51PTS_20240416T021611_B08_10m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/21/S2B_MSIL2A_20240421T021529_N0510_R003_T51PTS_20240421T043611.SAFE/GRANULE/L2A_T51PTS_A037209_20240421T022759/IMG_DATA/R10m/T51PTS_20240421T021529_B04_10m.jp2 to ./download/S2B_MSIL2A_20240421T021529_N0510_R003_T51PTS_20240421T043611.SAFE/GRANULE/L2A_T51PTS_A037209_20240421T022759/IMG_DATA/R10m/T51PTS_20240421T021529_B04_10m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/21/S2B_MSIL2A_20240421T021529_N0510_R003_T51PTS_20240421T043611.SAFE/GRANULE/L2A_T51PTS_A037209_20240421T022759/IMG_DATA/R10m/T51PTS_20240421T021529_B08_10m.jp2 to ./download/S2B_MSIL2A_20240421T021529_N0510_R003_T51PTS_20240421T043611.SAFE/GRANULE/L2A_T51PTS_A037209_20240421T022759/IMG_DATA/R10m/T51PTS_20240421T021529_B08_10m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R10m/T51PTS_20240426T021611_B04_10m.jp2 to ./download/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R10m/T51PTS_20240426T021611_B04_10m.jp2
Downloading Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R10m/T51PTS_20240426T021611_B08_10m.jp2 to ./download/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R10m/T51PTS_20240426T021611_B08_10m.jp2
Downloading Sentinel-2/MSI/L2A/2024/03/02/S2B_MSIL2A_20240302T021609_N0510_R003_T51PTS_20240302T043128.SAFE/GRANULE/L2A_T51PTS_A036494_20240302T022745/IMG_DATA/R10m/T51PTS_20240302T021609_B04_10m.jp2 to ./download/S2B_MSIL2A_20240302T021609_N0510_R003_T51PTS_20240302T043128.SAFE/GRANULE/L2A_T51PTS_A036494_20240302T022745/IMG_DATA/R10m/T51PTS_20240302T021609_B04_10m.jp2
Downloading Sentinel-2/MSI/L2A/2024/03/02/S2B_MSIL2A_20240302T021609_N0510_R003_T51PTS_20240302T043128.SAFE/GRANULE/L2A_T51PTS_A036494_20240302T022745/IMG_DATA/R10m/T51PTS_20240302T021609_B08_10m.jp2 to ./download/S2B_MSIL2A_20240302T021609_N0510_R003_T51PTS_20240302T043128.SAFE/GRANULE/L2A_T51PTS_A036494_20240302T022745/IMG_DATA/R10m/T51PTS_20240302T021609_B08_10m.jp2

Access individual bands without downloading (multiple files)

Iterate through the all products which fitted to query requirements to extract Red and NIR bands from each one.

# Specify the product path
product_path = f'{path_list[1]}/'

# Define specific band names
desired_bands = ['B04_10m.jp2', 'B08_10m.jp2']
resolution = '10m'

# Initialize lists to store paths of the desired band files
red_band_files = []
nir_band_files = []

# Iterate over each path in path_list
for product_path in path_list:
    product_name = product_path.split('/')[-1]

    # Iterate over objects in the bucket with the specified prefix
    for obj in bucket.objects.filter(Prefix=product_path):
        if f"IMG_DATA/R{resolution}/" in obj.key:
            for band in desired_bands:
                if band in obj.key:  # Check if the current object's key contains the desired band
                    target_path = obj.key  # Use the S3 object key directly

                    # Add the target path to the appropriate list
                    if band == 'B04_10m.jp2':
                        red_band_files.append(target_path)
                    elif band == 'B08_10m.jp2':
                        nir_band_files.append(target_path)

red_band_files, nir_band_files
(['Sentinel-2/MSI/L2A/2024/04/16/S2A_MSIL2A_20240416T021611_N0510_R003_T51PTS_20240416T075854.SAFE/GRANULE/L2A_T51PTS_A046046_20240416T022539/IMG_DATA/R10m/T51PTS_20240416T021611_B04_10m.jp2',
  'Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R10m/T51PTS_20240426T021611_B04_10m.jp2',
  'Sentinel-2/MSI/L2A/2024/03/02/S2B_MSIL2A_20240302T021609_N0510_R003_T51PTS_20240302T043128.SAFE/GRANULE/L2A_T51PTS_A036494_20240302T022745/IMG_DATA/R10m/T51PTS_20240302T021609_B04_10m.jp2',
  'Sentinel-2/MSI/L2A/2024/04/21/S2B_MSIL2A_20240421T021529_N0510_R003_T51PTS_20240421T043611.SAFE/GRANULE/L2A_T51PTS_A037209_20240421T022759/IMG_DATA/R10m/T51PTS_20240421T021529_B04_10m.jp2',
  'Sentinel-2/MSI/L2A/2024/02/11/S2B_MSIL2A_20240211T021829_N0510_R003_T51PTS_20240211T050012.SAFE/GRANULE/L2A_T51PTS_A036208_20240211T023001/IMG_DATA/R10m/T51PTS_20240211T021829_B04_10m.jp2',
  'Sentinel-2/MSI/L2A/2024/03/07/S2A_MSIL2A_20240307T021541_N0510_R003_T51PTS_20240307T053851.SAFE/GRANULE/L2A_T51PTS_A045474_20240307T022802/IMG_DATA/R10m/T51PTS_20240307T021541_B04_10m.jp2'],
 ['Sentinel-2/MSI/L2A/2024/04/16/S2A_MSIL2A_20240416T021611_N0510_R003_T51PTS_20240416T075854.SAFE/GRANULE/L2A_T51PTS_A046046_20240416T022539/IMG_DATA/R10m/T51PTS_20240416T021611_B08_10m.jp2',
  'Sentinel-2/MSI/L2A/2024/04/26/S2A_MSIL2A_20240426T021611_N0510_R003_T51PTS_20240426T075954.SAFE/GRANULE/L2A_T51PTS_A046189_20240426T022416/IMG_DATA/R10m/T51PTS_20240426T021611_B08_10m.jp2',
  'Sentinel-2/MSI/L2A/2024/03/02/S2B_MSIL2A_20240302T021609_N0510_R003_T51PTS_20240302T043128.SAFE/GRANULE/L2A_T51PTS_A036494_20240302T022745/IMG_DATA/R10m/T51PTS_20240302T021609_B08_10m.jp2',
  'Sentinel-2/MSI/L2A/2024/04/21/S2B_MSIL2A_20240421T021529_N0510_R003_T51PTS_20240421T043611.SAFE/GRANULE/L2A_T51PTS_A037209_20240421T022759/IMG_DATA/R10m/T51PTS_20240421T021529_B08_10m.jp2',
  'Sentinel-2/MSI/L2A/2024/02/11/S2B_MSIL2A_20240211T021829_N0510_R003_T51PTS_20240211T050012.SAFE/GRANULE/L2A_T51PTS_A036208_20240211T023001/IMG_DATA/R10m/T51PTS_20240211T021829_B08_10m.jp2',
  'Sentinel-2/MSI/L2A/2024/03/07/S2A_MSIL2A_20240307T021541_N0510_R003_T51PTS_20240307T053851.SAFE/GRANULE/L2A_T51PTS_A045474_20240307T022802/IMG_DATA/R10m/T51PTS_20240307T021541_B08_10m.jp2'])

Summary

The notebook introduced how to download access data using s3. Now, you even know how to deal with data without downloading it.