Discover Data via the STAC API¶
Datasets hosted at eodc are cataloged by making use of the STAC (SpatioTemporal Asset Catalog) specifications. The catalog service is available as STAC API via https://stac.eodc.eu/api/v1 to enable users to discover and search for datasets filtering by space, time and other attributes. In the following we will demonstrate the use of the STAC API and open-source Python libraries to run search queries against multiple STAC API instances.
Connecting to the eodc STAC catalogue¶
In this example, we are going to make use of a popular STAC client for Python, the pystac-client. The library is already installed in this environment, but can be manually installed anywhere else via pip install pystac-client.
try:
from pystac_client import Client
except ImportError:
%pip install pystac-client
from pystac_client import Client
try:
from IPython.display import Image
except ImportError:
%pip install IPython
from IPython.display import Image
try:
from rich.console import Console
except ImportError:
%pip install rich
from rich.console import Console
import rich.table
try:
import geopandas
except ImportError:
%pip install geopandas
import geopandas
eodc_catalog = Client.open(
"https://stac.eodc.eu/api/v1",
)
eodc_catalog.title
'EODC Data Catalogue'
Searching for collections¶
All data in the catalog is stored in so-called collections, which are named, for example, after the satellite mission.
for collection in eodc_catalog.get_collections():
print(collection)
<CollectionClient id=AI4SAR_SIG0>
<CollectionClient id=ASA_IMP_1P>
<CollectionClient id=ASA_IMS_1P>
<CollectionClient id=AUSTRIA_GROUND_MOTION>
<CollectionClient id=AUT_DEM>
<CollectionClient id=BOA_LANDSAT_8>
<CollectionClient id=BOA_SENTINEL_2>
<CollectionClient id=CGLS_SSM_1KM>
<CollectionClient id=climatedt>
<CollectionClient id=climatedt-austria>
<CollectionClient id=clms>
<CollectionClient id=clms-vpp>
<CollectionClient id=COP_DEM>
<CollectionClient id=CORINE_LAND_COVER>
<CollectionClient id=DOP_AUT_K_KLAGENFURT>
<CollectionClient id=DOP_AUT_K_OSTTIROL>
<CollectionClient id=DOP_AUT_K_TAMSWEG>
<CollectionClient id=DOP_AUT_K_VILLACH>
<CollectionClient id=DOP_AUT_K_WOLFSBERG>
<CollectionClient id=DOP_AUT_K_ZELL_AM_SEE>
<CollectionClient id=DOP_AUT_K_ZELTWEG>
<CollectionClient id=DOP_AUT_ST_BISCHOFSHOFEN>
<CollectionClient id=DOP_AUT_ST_GRAZ>
<CollectionClient id=DOP_AUT_ST_KLAGENFURT>
<CollectionClient id=DOP_AUT_ST_MARIAZELL>
<CollectionClient id=DOP_AUT_ST_MURTAL>
<CollectionClient id=DOP_AUT_ST_SUEDBURGENLAND>
<CollectionClient id=DOP_AUT_ST_VILLACH>
<CollectionClient id=DOP_AUT_ST_WINDISCHGARSTEN>
<CollectionClient id=DROUGHT_VULNERABILITY>
<CollectionClient id=DSM_AUT>
<CollectionClient id=ERS_ENVISAT_NRB>
<CollectionClient id=GFM>
<CollectionClient id=incal-hourly>
<CollectionClient id=INTRA_FIELD_CROP_GROWTH_POTENTIAL>
<CollectionClient id=RUCIO_SENTINEL2_MFCOVER>
<CollectionClient id=SAR_IMP_1P>
<CollectionClient id=SAR_IMS_1P>
<CollectionClient id=SENTINEL1_ALPS_WETSNOW>
<CollectionClient id=SENTINEL1_GMR0>
<CollectionClient id=SENTINEL1_GRD>
<CollectionClient id=SENTINEL1_GRD_COVERAGE>
<CollectionClient id=SENTINEL1_HPAR>
<CollectionClient id=Sentinel-1_Lacken_Extent>
<CollectionClient id=SENTINEL1_MPLIA>
<CollectionClient id=Sentinel-1_Reed_Extent>
<CollectionClient id=SENTINEL1_SCENE_GMR0>
<CollectionClient id=SENTINEL1_SIG0_20M>
<CollectionClient id=SENTINEL1_SLC>
<CollectionClient id=Sentinel-2-Greenness-Austria>
<CollectionClient id=SENTINEL2_GRI_L1C>
<CollectionClient id=SENTINEL2_L1C>
<CollectionClient id=SENTINEL2_L1C_COVERAGE>
<CollectionClient id=SENTINEL2_L2A>
<CollectionClient id=sentinel2-landsat8-l2f>
<CollectionClient id=SENTINEL2_MFCOVER>
<CollectionClient id=SENTINEL3_SRAL_L2>
<CollectionClient id=SENTINEL5P_DAILY_AUT>
<CollectionClient id=spartacus-daily>
<CollectionClient id=SSM-RT0-SIG0-R-EXTR>
<CollectionClient id=topo-dc-austria-dsm>
<CollectionClient id=topo-dc-austria-dtm>
<CollectionClient id=topo-dc-austria-ndsm>
<CollectionClient id=VEGETATION_CHANGE_AUSTRIA>
On static as well as dynamic catalogues we cann also make use of the links attributes which lets us quickly examinate, for instance, the number of available collections.
collections = list(eodc_catalog.get_collections())
print(f"The EODC STAC currently features {len(collections)} collections.")
The EODC STAC currently features 64 collections.
Individual collections can be searched for.
collection = eodc_catalog.get_collection("SENTINEL2_L1C")
collection
- type "Collection"
- id "SENTINEL2_L1C"
- stac_version "1.1.0"
- description "SENTINEL-2 is a wide-swath, high-resolution, multi-spectral imaging mission, supporting Copernicus Land Monitoring studies, including the monitoring of vegetation, soil and water cover, as well as observation of inland waterways and coastal areas. The SENTINEL-2 Multispectral Instrument (MSI) samples 13 spectral bands: four bands at 10 metres, six bands at 20 metres and three bands at 60 metres spatial resolution. The acquired data, mission coverage and high revisit frequency provides for the generation of geoinformation at local, regional, national and international scales. The data is designed to be modified and adapted by users interested in thematic areas such as: - spatial planning - agro-environmental monitoring - water monitoring - forest and vegetation monitoring - land carbon, - natural resource monitoring - global crop monitoring. [https://sentinels.copernicus.eu/web/sentinel/user-guides/sentinel-2-msi/overview](https://sentinels.copernicus.eu/web/sentinel/user-guides/sentinel-2-msi/overview) The Level-1C product is composed of 100x100 km2 tiles (ortho-images in UTM/WGS84 projection). The Level-1C product results from using a Digital Elevation Model (DEM) to project the image in cartographic geometry. Per-pixel radiometric measurements are provided in Top Of Atmosphere (TOA) reflectances along with the parameters to transform them into radiances. Level-1C products are resampled with a constant Ground Sampling Distance (GSD) of 10, 20 and 60 m depending on the native resolution of the different spectral bands. In Level-1C products, pixel coordinates refer to the upper left corner of the pixel. Level-1C products will additionally include Cloud Masks and ECMWF data (total column of ozone, total column of water vapour and mean sea level pressure). [https://sentinels.copernicus.eu/web/sentinel/user-guides/sentinel-2-msi/product-types/level-1c](https://sentinels.copernicus.eu/web/sentinel/user-guides/sentinel-2-msi/product-types/level-1c)."
links[] 11 items
0
- rel "items"
- href "https://stac.eodc.eu/api/v1/collections/SENTINEL2_L1C/items"
- type "application/geo+json"
1
- rel "parent"
- href "https://stac.eodc.eu/api/v1/"
- type "application/json"
2
- rel "root"
- href "https://stac.eodc.eu/api/v1"
- type "application/json"
- title "EODC Data Catalogue"
3
- rel "self"
- href "https://stac.eodc.eu/api/v1/collections/SENTINEL2_L1C"
- type "application/json"
4
- rel "items"
- href "https://stac.eodc.eu/ingestion/v1/collections/SENTINEL2_L1C/items"
- type "application/geo+json"
5
- rel "items"
- href "https://dev.stac.eodc.eu/ingestion/v1/collections/SENTINEL2_L1C/items"
- type "application/geo+json"
6
- rel "items"
- href "https://stac.eodc.eu/api/v1/collections/SENTINEL2_L1C/items"
- type "application/geo+json"
7
- rel "items"
- href "https://stac.eodc.eu/api/v1/collections/SENTINEL2_L1C/items"
- type "application/geo+json"
8
- rel "cite-as"
- href "https://doi.org/10.5270/S2_-d8we2fl"
- type "text/html;charset=UTF-8"
9
- rel "cite-as"
- href "https://doi.org/10.5270/S2_-742ikth"
- type "text/html;charset=UTF-8"
10
- rel "http://www.opengis.net/def/rel/ogc/1.0/queryables"
- href "https://stac.eodc.eu/api/v1/collections/SENTINEL2_L1C/queryables"
- type "application/schema+json"
- title "Queryables"
stac_extensions[] 8 items
- 0 "https://stac-extensions.github.io/sat/v1.0.0/schema.json"
- 1 "https://stac-extensions.github.io/eo/v1.0.0/schema.json"
- 2 "https://stac-extensions.github.io/projection/v1.1.0/schema.json"
- 3 "https://stac-extensions.github.io/alternate-assets/v1.1.0/schema.json"
- 4 "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json"
- 5 "https://stac-extensions.github.io/datacube/v2.0.0/schema.json"
- 6 "https://stac-extensions.github.io/timestamps/v1.0.0/schema.json"
- 7 "https://stac-extensions.github.io/processing/v1.1.0/schema.json"
item_assets
B01
roles[] 1 items
- 0 "data"
- title "Band 1 - Coastal aerosol - 60m"
alternate
dhus
- title "Location of the asset on the DHuS."
local
- title "Local file path of the asset."
- media_type "image/jp2"
B02
roles[] 1 items
- 0 "data"
- title "Band 2 - Blue - 10m"
alternate
dhus
- title "Location of the asset on the DHuS."
local
- title "Local file path of the asset."
- media_type "image/jp2"
B03
roles[] 1 items
- 0 "data"
- title "Band 3 - Green - 10m"
alternate
dhus
- title "Location of the asset on the DHuS."
local
- title "Local file path of the asset."
- media_type "image/jp2"
B04
roles[] 1 items
- 0 "data"
- title "Band 4 - Red - 10m"
alternate
dhus
- title "Location of the asset on the DHuS."
local
- title "Local file path of the asset."
- media_type "image/jp2"
B05
roles[] 1 items
- 0 "data"
- title "Band 5 - Vegetation red edge 1 - 20m"
alternate
dhus
- title "Location of the asset on the DHuS."
local
- title "Local file path of the asset."
- media_type "image/jp2"
B06
roles[] 1 items
- 0 "data"
- title "Band 6 - Vegetation red edge 2 - 20m"
alternate
dhus
- title "Location of the asset on the DHuS."
local
- title "Local file path of the asset."
- media_type "image/jp2"
B07
roles[] 1 items
- 0 "data"
- title "Band 7 - Vegetation red edge 3 - 20m"
alternate
dhus
- title "Location of the asset on the DHuS."
local
- title "Local file path of the asset."
- media_type "image/jp2"
B08
roles[] 1 items
- 0 "data"
- title "Band 8 - NIR - 10m"
alternate
dhus
- title "Location of the asset on the DHuS."
local
- title "Local file path of the asset."
- media_type "image/jp2"
B09
roles[] 1 items
- 0 "data"
- title "Band 9 - Water vapor - 60m"
alternate
dhus
- title "Location of the asset on the DHuS."
local
- title "Local file path of the asset."
- media_type "image/jp2"
B10
roles[] 1 items
- 0 "data"
- title "Band 10 - SWIR - Cirrus - 60m"
alternate
dhus
- title "Location of the asset on the DHuS."
local
- title "Local file path of the asset."
- media_type "image/jp2"
B11
roles[] 1 items
- 0 "data"
- title "Band 11 - SWIR (1.6) - 20m"
alternate
dhus
- title "Location of the asset on the DHuS."
local
- title "Local file path of the asset."
- media_type "image/jp2"
B12
roles[] 1 items
- 0 "data"
- title "Band 12 - SWIR (2.2) - 20m"
alternate
dhus
- title "Location of the asset on the DHuS."
local
- title "Local file path of the asset."
- media_type "image/jp2"
B8A
roles[] 1 items
- 0 "data"
- title "Band 8A - Vegetation red edge 4 - 20m"
alternate
dhus
- title "Location of the asset on the DHuS."
local
- title "Local file path of the asset."
- media_type "image/jp2"
visual
roles[] 1 items
- 0 "data"
- title "True color image"
- media_type "image/jp2"
safe-zip
roles[] 1 items
- 0 "data"
- title "ZIP Archive"
alternate
dhus
- title "Location of the asset on the DHuS."
local
- title "Local file path of the asset."
- media_type "application/zip"
- description "Entire product as a ZIP archive. Contains the SAFE archive and all other assets."
thumbnail
roles[] 1 items
- 0 "thumbnail"
- title "Preview Image"
alternate
dhus
- title "Location of the asset on the DHuS."
local
- title "Local file path of the asset."
- media_type "image/jp2"
- description "PVI Preview Image file provided in ground geometry. The preview image is a single file in JPEG2000 format with GML geo-location information; it contains 3 visiblebands (490nm, 560nm, 665nm) in ground geometry at 320m resolution and in display order (RGB)."
safe-manifest
roles[] 1 items
- 0 "metadata"
alternate
dhus
- title "Location of the asset on the DHuS."
local
- title "Local file path of the asset."
- media_type "application/xml"
thumbnail-png
roles[] 1 items
- 0 "thumbnail"
- title "Preview Image (converted)"
alternate
dhus
- title "Location of the asset on the DHuS."
local
- title "Local file path of the asset."
- media_type "image/png"
- description "PVI Preview Image in PNG format. Converted from JPEG2000 format on the fly using OpenCV."
granule-metadata
roles[] 1 items
- 0 "metadata"
alternate
dhus
- title "Location of the asset on the DHuS."
local
- title "Local file path of the asset."
- media_type "application/xml"
inspire-metadata
roles[] 1 items
- 0 "metadata"
alternate
dhus
- title "Location of the asset on the DHuS."
local
- title "Local file path of the asset."
- media_type "application/xml"
product-metadata
roles[] 1 items
- 0 "metadata"
alternate
dhus
- title "Location of the asset on the DHuS."
local
- title "Local file path of the asset."
- media_type "application/xml"
datastrip-metadata
roles[] 1 items
- 0 "metadata"
alternate
dhus
- title "Location of the asset on the DHuS."
local
- title "Local file path of the asset."
- media_type "application/xml"
cube:dimensions
x
- axis "x"
- type "spatial"
extent[] 2 items
- 0 -180.0
- 1 180.0
y
- axis "y"
- type "spatial"
extent[] 2 items
- 0 -90.0
- 1 90.0
time
- type "temporal"
extent
interval[] 1 items
0[] 2 items
- 0 "2015-07-04T00:00:00Z"
- 1 None
sci:publications[] 2 items
0
- doi "10.5270/S2_-d8we2fl"
- citation "Copernicus Sentinel-2 (processed by ESA), 2021, MSI Level-1C TOA Reflectance Product. Collection 0. European Space Agency"
1
- doi "10.5270/S2_-d8we2fl"
- citation "Copernicus Sentinel-2 (processed by ESA), 2021, MSI Level-1C TOA Reflectance Product. Collection 0. European Space Agency"
- title "Sentinel-2 MSI Products: Level-1C data"
extent
spatial
bbox[] 1 items
0[] 4 items
- 0 -180.0
- 1 -90.0
- 2 180.0
- 3 90.0
temporal
interval[] 1 items
0[] 2 items
- 0 "2015-07-04T00:00:00Z"
- 1 None
- license "proprietary"
keywords[] 5 items
- 0 "sentinel"
- 1 "copernicus"
- 2 "esa"
- 3 "imagery"
- 4 "reflectance"
providers[] 2 items
0
- name "ESA"
roles[] 3 items
- 0 "producer"
- 1 "processor"
- 2 "licensor"
- url "https://earth.esa.int/web/guest/home"
1
- name "EODC"
roles[] 1 items
- 0 "host"
- url "https://eodc.eu/"
summaries
gsd[] 3 items
- 0 10
- 1 20
- 2 60
eo:bands[] 13 items
0
- name "B01"
- common_name "coastal"
- description "Band 1 - Coastal aerosol"
- center_wavelength 0.443
- full_width_half_max 0.027
1
- name "B02"
- common_name "blue"
- description "Band 2 - Blue"
- center_wavelength 0.49
- full_width_half_max 0.098
2
- name "B03"
- common_name "green"
- description "Band 3 - Green"
- center_wavelength 0.56
- full_width_half_max 0.045
3
- name "B04"
- common_name "red"
- description "Band 4 - Red"
- center_wavelength 0.665
- full_width_half_max 0.038
4
- name "B05"
- common_name "rededge"
- description "Band 5 - Vegetation red edge 1"
- center_wavelength 0.704
- full_width_half_max 0.019
5
- name "B06"
- common_name "rededge"
- description "Band 6 - Vegetation red edge 2"
- center_wavelength 0.74
- full_width_half_max 0.018
6
- name "B07"
- common_name "rededge"
- description "Band 7 - Vegetation red edge 3"
- center_wavelength 0.783
- full_width_half_max 0.028
7
- name "B08"
- common_name "nir"
- description "Band 8 - NIR"
- center_wavelength 0.842
- full_width_half_max 0.145
8
- name "B8A"
- common_name "rededge"
- description "Band 8A - Vegetation red edge 4"
- center_wavelength 0.865
- full_width_half_max 0.033
9
- name "B09"
- description "Band 9 - Water vapor"
- center_wavelength 0.945
- full_width_half_max 0.026
10
- name "B10"
- description "Band 10 - SWIR - Cirrus"
- center_wavelength 1.3735
- full_width_half_max 0.075
11
- name "B11"
- common_name "swir16"
- description "Band 11 - SWIR (1.6)"
- center_wavelength 1.61
- full_width_half_max 0.143
12
- name "B12"
- common_name "swir22"
- description "Band 12 - SWIR (2.2)"
- center_wavelength 2.19
- full_width_half_max 0.242
platform[] 2 items
- 0 "sentinel-2a"
- 1 "sentinel-2b"
providers[] 2 items
0
- url "https://earth.esa.int/web/guest/home"
- name "ESA"
roles[] 3 items
- 0 "producer"
- 1 "processor"
- 2 "licensor"
1
- url "https://eodc.eu/"
- name "EODC"
roles[] 1 items
- 0 "host"
constellation[] 1 items
- 0 "sentinel-2"
s2:product_type[] 1 items
- 0 "S2MSI1C"
processing:level[] 1 items
- 0 "L2"
sci:publications[] 2 items
0
- doi "10.5270/S2_-d8we2fl"
- citation "Copernicus Sentinel-2 (processed by ESA), 2021, MSI Level-1C TOA Reflectance Product. Collection 0. European Space Agency"
1
- doi "10.5270/S2_-d8we2fl"
- citation "Copernicus Sentinel-2 (processed by ESA), 2021, MSI Level-1C TOA Reflectance Product. Collection 0. European Space Agency"
s2:processing_baseline[] 15 items
- 0 "02.02"
- 1 "02.04"
- 2 "02.05"
- 3 "02.06"
- 4 "02.07"
- 5 "02.08"
- 6 "02.09"
- 7 "02.10"
- 8 "02.11"
- 9 "02.12"
- 10 "02.13"
- 11 "02.14"
- 12 "03.00"
- 13 "03.01"
- 14 "04.00"
datetime
- minimum "2015-07-04T00:00:00Z"
- maximum "None"
published
- minimum "2023-06-01T08:46:54Z"
- maximum "None"
end_datetime
- minimum "2015-07-04T00:00:00Z"
- maximum "None"
eo:cloud_cover
- minimum 0
- maximum 100
start_datetime
- minimum "2015-07-04T00:00:00Z"
- maximum "None"
s2:mean_solar_zenith
- minimum 0
- maximum 360
s2:mean_solar_azimuth
- minimum 0
- maximum 360
s2:degraded_msi_data_percentage
- minimum 0
- maximum 100
raster:bands
spatial_resolution[] 3 items
- 0 10
- 1 20
- 2 60
assets
thumbnail
- href "https://objectstore.eodc.eu:2222/swift/v1/AUTH_68e13833a1624f43ba2cac01376a18af/thumbnails/SENTINEL2_L1C.png"
- type "image/png"
- title "SENTINEL2_L1C collection thumbnail."
roles[] 1 items
- 0 "thumbnail"
print(f"This collection contains data in the following temporal inteval: {collection.extent.temporal.to_dict()}")
This collection contains data in the following temporal inteval: {'interval': [['2015-07-04T00:00:00Z', None]]}
STAC Items¶
Simlarly to before, we can use the collection client instance to iterate over the items contained in the collection. The server must provide the /collections/<collection_id>/items endpoint to support this feature automatically. This can be useful to manually filter items or extract information programmatically. The get_all_items() method again returns an iterator.
items = collection.get_all_items()
Load 10 items with cloud cover less than 10%
items10 = []
for n, item in enumerate(items):
if len(items10) == 10:
break
cloud_cover = item.properties.get("eo:cloud_cover")
if cloud_cover < 10:
print(f"Append item {item.id} with {cloud_cover:.2f}% cloud cover")
items10.append(item)
Append item S2B_MSIL1C_20250120T120359_R066_T30VVQ_20250120T153429 with 0.00% cloud cover
Append item S2B_MSIL1C_20250120T120359_R066_T30VVP_20250120T153429 with 2.81% cloud cover
Append item S2B_MSIL1C_20250120T120359_R066_T30VVN_20250120T153429 with 0.00% cloud cover
Append item S2B_MSIL1C_20250120T120359_R066_T30VUQ_20250120T153429 with 8.88% cloud cover
Append item S2B_MSIL1C_20250120T120359_R066_T30VUP_20250120T153429 with 9.69% cloud cover
Append item S2B_MSIL1C_20250120T120359_R066_T30VUN_20250120T153429 with 9.39% cloud cover
Append item S2B_MSIL1C_20250120T120359_R066_T29VPK_20250120T153429 with 9.80% cloud cover
Append item S2B_MSIL1C_20250120T120359_R066_T29VPH_20250120T153429 with 8.96% cloud cover
Append item S2B_MSIL1C_20250120T120359_R066_T29VNK_20250120T153429 with 6.02% cloud cover
Append item S2B_MSIL1C_20250120T120359_R066_T29VNJ_20250120T153429 with 6.60% cloud cover
If the item provides a preview image we can look at it.
Image(url=items10[4].assets["thumbnail"].href, width=500)
Search for items in a collection with filter criterias¶
First we set the temporal and spatial extent.
There are two options for a spatial extent.
A polygon in GEOJSON
A bounding box (bbox)
console = Console()
time_range = "2023-05-01/2024-05-01"
# GEOJSON can be created on geojson.io
# Area around the Neusiedler See
area_of_interest = {
"coordinates": [
[
[
16.685331259653253,
48.001346032803355
],
[
16.621884871275512,
47.902601630022275
],
[
16.62588718725482,
47.81041047247777
],
[
16.664809254423375,
47.774602171781936
],
[
16.96808652311867,
47.76771348708101
],
[
16.963971948548988,
48.00956486424042
],
[
16.685331259653253,
48.001346032803355
]
]
],
"type": "Polygon"
}
# Bounding box of Austria
#bbox_aut = [9.25, 46.31, 17.46, 49.18]
We search for Sentinel-2 data, that matches our filter criteria
search = eodc_catalog.search(
collections=["SENTINEL2_L1C"],
intersects=area_of_interest,
#bbox = bbox_aut,
datetime=time_range
)
items_eodc = search.item_collection()
console.print(f"On eodc we found {search.matched()} items for the given search query")
On eodc we found 84 items for the given search query
df = geopandas.GeoDataFrame.from_features(items_eodc.to_dict(), crs="epsg:4326")
#print the first three rows of the dataframe
df.head(3)
| geometry | created | datetime | platform | grid:code | providers | s2:tile_id | instruments | view:azimuth | constellation | ... | s2:degraded_msi_data_percentage | s2:reflectance_conversion_factor | proj:code | published | deprecated | s2:mgrs_tile | s2:granule_id | cube:dimensions | processing:level | processing:facility | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | POLYGON ((17.64985 48.7214, 16.36028 48.74498,... | 2025-07-14T11:57:30.706907Z | 2024-03-10T09:57:29.024000Z | sentinel-2b | MGRS-33UXP | [{'url': 'https://earth.esa.int/web/guest/home... | S2B_OPER_MSI_L1C_TL_2BPS_20240310T120343_A0366... | [msi] | 287.541639 | sentinel-2 | ... | 0.0274 | 1.016055 | EPSG:32633 | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 1 | POLYGON ((17.24198 47.82959, 16.3366 47.84592,... | 2025-07-14T11:57:22.169453Z | 2024-03-10T09:57:29.024000Z | sentinel-2b | MGRS-33TXN | [{'url': 'https://earth.esa.int/web/guest/home... | S2B_OPER_MSI_L1C_TL_2BPS_20240310T120343_A0366... | [msi] | 287.066707 | sentinel-2 | ... | 0.0350 | 1.016055 | EPSG:32633 | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 2 | POLYGON ((16.36028 48.74498, 16.33433 47.75741... | 2025-07-08T21:01:59.407148Z | 2024-03-07T09:47:39.024000Z | sentinel-2b | MGRS-33UXP | [{'url': 'https://earth.esa.int/web/guest/home... | S2B_OPER_MSI_L1C_TL_2BPS_20240307T115148_A0365... | [msi] | 104.289009 | sentinel-2 | ... | 0.0213 | 1.017595 | EPSG:32633 | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
3 rows × 37 columns
Now we can select the item with the least (min) cloud cover. Data providers exposing STAC can make use of a number of STAC extensions. Some collections implement the so-called eo extension, which can be used to sort items by cloudiness.
selected_item = min(items_eodc, key=lambda item: item.properties["eo:cloud_cover"])
selected_item
- type "Feature"
- stac_version "1.1.0"
stac_extensions[] 10 items
- 0 "https://stac-extensions.github.io/mgrs/v1.0.0/schema.json"
- 1 "https://stac-extensions.github.io/grid/v1.1.0/schema.json"
- 2 "https://stac-extensions.github.io/raster/v1.1.0/schema.json"
- 3 "https://stac-extensions.github.io/eo/v1.1.0/schema.json"
- 4 "https://stac-extensions.github.io/projection/v2.0.0/schema.json"
- 5 "https://stac-extensions.github.io/archive/v1.0.0/schema.json#"
- 6 "https://stac-extensions.github.io/alternate-assets/v1.1.0/schema.json"
- 7 "https://stac-extensions.github.io/view/v1.0.0/schema.json"
- 8 "https://stac-extensions.github.io/sentinel-2/v1.0.0/schema.json"
- 9 "https://stac-extensions.github.io/sat/v1.0.0/schema.json"
- id "S2B_T33UXP_20240120T100235_L1C"
geometry
- type "Polygon"
coordinates[] 1 items
0[] 11 items
0[] 2 items
- 0 17.637563
- 1 48.721624
1[] 2 items
- 0 16.36027899999999
- 1 48.744984
2[] 2 items
- 0 16.33433099999999
- 1 47.75741
3[] 2 items
- 0 17.190649000000008
- 1 47.741986
4[] 2 items
- 0 17.24429699999999
- 1 47.86058
5[] 2 items
- 0 17.310108000000014
- 1 48.00551
6[] 2 items
- 0 17.375856999999996
- 1 48.150363
7[] 2 items
- 0 17.441575
- 1 48.295174
8[] 2 items
- 0 17.507522999999992
- 1 48.439961
9[] 2 items
- 0 17.573958000000005
- 1 48.584778
10[] 2 items
- 0 17.637563
- 1 48.721624
bbox[] 4 items
- 0 16.334331
- 1 47.741986
- 2 17.637563
- 3 48.744984
properties
- created "2025-05-22T15:27:30.328741Z"
- datetime "2024-01-20T10:02:39.024000Z"
- platform "sentinel-2b"
- grid:code "MGRS-33UXP"
providers[] 1 items
0
- url "https://earth.esa.int/web/guest/home"
- name "ESA"
roles[] 3 items
- 0 "producer"
- 1 "processor"
- 2 "licensor"
- s2:tile_id "S2B_OPER_MSI_L1C_TL_2BPS_20240120T104942_A035898_T33UXP_N05.10"
instruments[] 1 items
- 0 "msi"
- view:azimuth 287.60745868363176
- constellation "sentinel-2"
- mgrs:utm_zone 33
proj:centroid
- lat 48.27383
- lon 16.88797
- eo:cloud_cover 0.0
- s2:datatake_id "GS2B_20240120T100239_035898_N05.10"
- s2:product_uri "S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.SAFE"
- s2:datastrip_id "S2B_OPER_MSI_L1C_DS_2BPS_20240120T104942_S20240120T100235_N05.10"
- s2:product_type "S2MSI1C"
- sat:orbit_state "descending"
- mgrs:grid_square "XP"
- s2:datatake_type "INS-NOBS"
- view:sun_azimuth 166.170036826997
- mgrs:latitude_band "U"
- s2:generation_time "2024-01-20T10:49:42.000000Z"
- sat:relative_orbit 122
- view:sun_elevation 20.4657435669682
- view:incidence_angle 8.710793666441015
- s2:processing_baseline "05.10"
- s2:degraded_msi_data_percentage 0.0278
- s2:reflectance_conversion_factor 1.03349471572894
- proj:code "EPSG:32633"
links[] 5 items
0
- rel "collection"
- href "https://stac.eodc.eu/api/v1/collections/SENTINEL2_L1C"
- type "application/json"
1
- rel "parent"
- href "https://stac.eodc.eu/api/v1/collections/SENTINEL2_L1C"
- type "application/json"
2
- rel "root"
- href "https://stac.eodc.eu/api/v1"
- type "application/json"
- title "EODC Data Catalogue"
3
- rel "self"
- href "https://stac.eodc.eu/api/v1/collections/SENTINEL2_L1C/items/S2B_T33UXP_20240120T100235_L1C"
- type "application/geo+json"
4
- rel "license"
- href "https://sentinel.esa.int/documents/247904/690755/Sentinel_Data_Legal_Notice"
assets
nir
- href "https://data.eodc.eu/collections/SENTINEL2_L1C/items/S2B_T33UXP_20240120T100235_L1C/nir"
- type "image/jp2"
- title "NIR 1 - 10m"
- gsd 10
eo:bands[] 1 items
0
- name "B08"
- common_name "nir"
- center_wavelength 0.842
- full_width_half_max 0.145
alternate
local
- href "/eodc/products/copernicus.eu/s2b_prd_msil1c/2024/01/20/S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.zip"
- archive:href "S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.SAFE/GRANULE/L1C_T33UXP_A035898_20240120T100235/IMG_DATA/T33UXP_20240120T100239_B08.jp2"
- archive:type "image/jp2"
- archive:format "application/zip"
proj:bbox[] 4 items
- 0 600000.0
- 1 5290200.0
- 2 709800.0
- 3 5400000.0
proj:shape[] 2 items
- 0 10980
- 1 10980
raster:bands[] 1 items
0
- scale 0.0001
- nodata 0
- offset -0.1
- data_type "uint16"
- spatial_resolution 10
proj:transform[] 6 items
- 0 10.0
- 1 0.0
- 2 600000.0
- 3 0.0
- 4 -10.0
- 5 5400000.0
roles[] 2 items
- 0 "data"
- 1 "reflectance"
red
- href "https://data.eodc.eu/collections/SENTINEL2_L1C/items/S2B_T33UXP_20240120T100235_L1C/red"
- type "image/jp2"
- title "Red - 10m"
- gsd 10
eo:bands[] 1 items
0
- name "B04"
- common_name "red"
- center_wavelength 0.665
- full_width_half_max 0.038
alternate
local
- href "/eodc/products/copernicus.eu/s2b_prd_msil1c/2024/01/20/S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.zip"
- archive:href "S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.SAFE/GRANULE/L1C_T33UXP_A035898_20240120T100235/IMG_DATA/T33UXP_20240120T100239_B04.jp2"
- archive:type "image/jp2"
- archive:format "application/zip"
proj:bbox[] 4 items
- 0 600000.0
- 1 5290200.0
- 2 709800.0
- 3 5400000.0
proj:shape[] 2 items
- 0 10980
- 1 10980
raster:bands[] 1 items
0
- scale 0.0001
- nodata 0
- offset -0.1
- data_type "uint16"
- spatial_resolution 10
proj:transform[] 6 items
- 0 10.0
- 1 0.0
- 2 600000.0
- 3 0.0
- 4 -10.0
- 5 5400000.0
roles[] 2 items
- 0 "data"
- 1 "reflectance"
blue
- href "https://data.eodc.eu/collections/SENTINEL2_L1C/items/S2B_T33UXP_20240120T100235_L1C/blue"
- type "image/jp2"
- title "Blue - 10m"
- gsd 10
eo:bands[] 1 items
0
- name "B02"
- common_name "blue"
- center_wavelength 0.49
- full_width_half_max 0.098
alternate
local
- href "/eodc/products/copernicus.eu/s2b_prd_msil1c/2024/01/20/S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.zip"
- archive:href "S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.SAFE/GRANULE/L1C_T33UXP_A035898_20240120T100235/IMG_DATA/T33UXP_20240120T100239_B02.jp2"
- archive:type "image/jp2"
- archive:format "application/zip"
proj:bbox[] 4 items
- 0 600000.0
- 1 5290200.0
- 2 709800.0
- 3 5400000.0
proj:shape[] 2 items
- 0 10980
- 1 10980
raster:bands[] 1 items
0
- scale 0.0001
- nodata 0
- offset -0.1
- data_type "uint16"
- spatial_resolution 10
proj:transform[] 6 items
- 0 10.0
- 1 0.0
- 2 600000.0
- 3 0.0
- 4 -10.0
- 5 5400000.0
roles[] 2 items
- 0 "data"
- 1 "reflectance"
green
- href "https://data.eodc.eu/collections/SENTINEL2_L1C/items/S2B_T33UXP_20240120T100235_L1C/green"
- type "image/jp2"
- title "Green - 10m"
- gsd 10
eo:bands[] 1 items
0
- name "B03"
- common_name "green"
- center_wavelength 0.56
- full_width_half_max 0.045
alternate
local
- href "/eodc/products/copernicus.eu/s2b_prd_msil1c/2024/01/20/S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.zip"
- archive:href "S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.SAFE/GRANULE/L1C_T33UXP_A035898_20240120T100235/IMG_DATA/T33UXP_20240120T100239_B03.jp2"
- archive:type "image/jp2"
- archive:format "application/zip"
proj:bbox[] 4 items
- 0 600000.0
- 1 5290200.0
- 2 709800.0
- 3 5400000.0
proj:shape[] 2 items
- 0 10980
- 1 10980
raster:bands[] 1 items
0
- scale 0.0001
- nodata 0
- offset -0.1
- data_type "uint16"
- spatial_resolution 10
proj:transform[] 6 items
- 0 10.0
- 1 0.0
- 2 600000.0
- 3 0.0
- 4 -10.0
- 5 5400000.0
roles[] 2 items
- 0 "data"
- 1 "reflectance"
nir08
- href "https://data.eodc.eu/collections/SENTINEL2_L1C/items/S2B_T33UXP_20240120T100235_L1C/nir08"
- type "image/jp2"
- title "NIR 2 - 20m"
- gsd 20
eo:bands[] 1 items
0
- name "B8A"
- common_name "nir08"
- center_wavelength 0.865
- full_width_half_max 0.033
alternate
local
- href "/eodc/products/copernicus.eu/s2b_prd_msil1c/2024/01/20/S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.zip"
- archive:href "S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.SAFE/GRANULE/L1C_T33UXP_A035898_20240120T100235/IMG_DATA/T33UXP_20240120T100239_B8A.jp2"
- archive:type "image/jp2"
- archive:format "application/zip"
proj:bbox[] 4 items
- 0 600000.0
- 1 5290200.0
- 2 709800.0
- 3 5400000.0
proj:shape[] 2 items
- 0 5490
- 1 5490
raster:bands[] 1 items
0
- scale 0.0001
- nodata 0
- offset -0.1
- data_type "uint16"
- spatial_resolution 20
proj:transform[] 6 items
- 0 20.0
- 1 0.0
- 2 600000.0
- 3 0.0
- 4 -20.0
- 5 5400000.0
roles[] 2 items
- 0 "data"
- 1 "reflectance"
nir09
- href "https://data.eodc.eu/collections/SENTINEL2_L1C/items/S2B_T33UXP_20240120T100235_L1C/nir09"
- type "image/jp2"
- title "NIR 3 - 60m"
- gsd 60
eo:bands[] 1 items
0
- name "B09"
- common_name "nir09"
- center_wavelength 0.945
- full_width_half_max 0.026
alternate
local
- href "/eodc/products/copernicus.eu/s2b_prd_msil1c/2024/01/20/S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.zip"
- archive:href "S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.SAFE/GRANULE/L1C_T33UXP_A035898_20240120T100235/IMG_DATA/T33UXP_20240120T100239_B09.jp2"
- archive:type "image/jp2"
- archive:format "application/zip"
proj:bbox[] 4 items
- 0 600000.0
- 1 5290200.0
- 2 709800.0
- 3 5400000.0
proj:shape[] 2 items
- 0 1830
- 1 1830
raster:bands[] 1 items
0
- scale 0.0001
- nodata 0
- offset -0.1
- data_type "uint16"
- spatial_resolution 60
proj:transform[] 6 items
- 0 60.0
- 1 0.0
- 2 600000.0
- 3 0.0
- 4 -60.0
- 5 5400000.0
roles[] 2 items
- 0 "data"
- 1 "reflectance"
cirrus
- href "https://data.eodc.eu/collections/SENTINEL2_L1C/items/S2B_T33UXP_20240120T100235_L1C/cirrus"
- type "image/jp2"
- title "Cirrus - 60m"
- gsd 60
eo:bands[] 1 items
0
- name "B10"
- common_name "cirrus"
- center_wavelength 1.3735
- full_width_half_max 0.075
alternate
local
- href "/eodc/products/copernicus.eu/s2b_prd_msil1c/2024/01/20/S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.zip"
- archive:href "S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.SAFE/GRANULE/L1C_T33UXP_A035898_20240120T100235/IMG_DATA/T33UXP_20240120T100239_B10.jp2"
- archive:type "image/jp2"
- archive:format "application/zip"
proj:bbox[] 4 items
- 0 600000.0
- 1 5290200.0
- 2 709800.0
- 3 5400000.0
proj:shape[] 2 items
- 0 1830
- 1 1830
raster:bands[] 1 items
0
- scale 0.0001
- nodata 0
- offset -0.1
- data_type "uint16"
- spatial_resolution 60
proj:transform[] 6 items
- 0 60.0
- 1 0.0
- 2 600000.0
- 3 0.0
- 4 -60.0
- 5 5400000.0
roles[] 2 items
- 0 "data"
- 1 "reflectance"
swir16
- href "https://data.eodc.eu/collections/SENTINEL2_L1C/items/S2B_T33UXP_20240120T100235_L1C/swir16"
- type "image/jp2"
- title "SWIR 1.6μm - 20m"
- gsd 20
eo:bands[] 1 items
0
- name "B11"
- common_name "swir16"
- center_wavelength 1.61
- full_width_half_max 0.143
alternate
local
- href "/eodc/products/copernicus.eu/s2b_prd_msil1c/2024/01/20/S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.zip"
- archive:href "S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.SAFE/GRANULE/L1C_T33UXP_A035898_20240120T100235/IMG_DATA/T33UXP_20240120T100239_B11.jp2"
- archive:type "image/jp2"
- archive:format "application/zip"
proj:bbox[] 4 items
- 0 600000.0
- 1 5290200.0
- 2 709800.0
- 3 5400000.0
proj:shape[] 2 items
- 0 5490
- 1 5490
raster:bands[] 1 items
0
- scale 0.0001
- nodata 0
- offset -0.1
- data_type "uint16"
- spatial_resolution 20
proj:transform[] 6 items
- 0 20.0
- 1 0.0
- 2 600000.0
- 3 0.0
- 4 -20.0
- 5 5400000.0
roles[] 2 items
- 0 "data"
- 1 "reflectance"
swir22
- href "https://data.eodc.eu/collections/SENTINEL2_L1C/items/S2B_T33UXP_20240120T100235_L1C/swir22"
- type "image/jp2"
- title "SWIR 2.2μm - 20m"
- gsd 20
eo:bands[] 1 items
0
- name "B12"
- common_name "swir22"
- center_wavelength 2.19
- full_width_half_max 0.242
alternate
local
- href "/eodc/products/copernicus.eu/s2b_prd_msil1c/2024/01/20/S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.zip"
- archive:href "S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.SAFE/GRANULE/L1C_T33UXP_A035898_20240120T100235/IMG_DATA/T33UXP_20240120T100239_B12.jp2"
- archive:type "image/jp2"
- archive:format "application/zip"
proj:bbox[] 4 items
- 0 600000.0
- 1 5290200.0
- 2 709800.0
- 3 5400000.0
proj:shape[] 2 items
- 0 5490
- 1 5490
raster:bands[] 1 items
0
- scale 0.0001
- nodata 0
- offset -0.1
- data_type "uint16"
- spatial_resolution 20
proj:transform[] 6 items
- 0 20.0
- 1 0.0
- 2 600000.0
- 3 0.0
- 4 -20.0
- 5 5400000.0
roles[] 2 items
- 0 "data"
- 1 "reflectance"
visual
- href "https://data.eodc.eu/collections/SENTINEL2_L1C/items/S2B_T33UXP_20240120T100235_L1C/visual"
- type "image/jp2"
- title "True color image"
eo:bands[] 3 items
0
- name "B04"
- common_name "red"
- center_wavelength 0.665
- full_width_half_max 0.038
1
- name "B03"
- common_name "green"
- center_wavelength 0.56
- full_width_half_max 0.045
2
- name "B02"
- common_name "blue"
- center_wavelength 0.49
- full_width_half_max 0.098
alternate
local
- href "/eodc/products/copernicus.eu/s2b_prd_msil1c/2024/01/20/S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.zip"
- archive:href "S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.SAFE/GRANULE/L1C_T33UXP_A035898_20240120T100235/IMG_DATA/T33UXP_20240120T100239_TCI.jp2"
- archive:type "image/jp2"
- archive:format "application/zip"
proj:bbox[] 4 items
- 0 600000.0
- 1 5290200.0
- 2 709800.0
- 3 5400000.0
proj:shape[] 2 items
- 0 10980
- 1 10980
raster:bands[] 3 items
0
- nodata 0
- data_type "uint8"
- spatial_resolution 10
1
- nodata 0
- data_type "uint8"
- spatial_resolution 10
2
- nodata 0
- data_type "uint8"
- spatial_resolution 10
proj:transform[] 6 items
- 0 10.0
- 1 0.0
- 2 600000.0
- 3 0.0
- 4 -10.0
- 5 5400000.0
roles[] 1 items
- 0 "visual"
coastal
- href "https://data.eodc.eu/collections/SENTINEL2_L1C/items/S2B_T33UXP_20240120T100235_L1C/coastal"
- type "image/jp2"
- title "Coastal - 60m"
- gsd 60
eo:bands[] 1 items
0
- name "B01"
- common_name "coastal"
- center_wavelength 0.443
- full_width_half_max 0.027
alternate
local
- href "/eodc/products/copernicus.eu/s2b_prd_msil1c/2024/01/20/S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.zip"
- archive:href "S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.SAFE/GRANULE/L1C_T33UXP_A035898_20240120T100235/IMG_DATA/T33UXP_20240120T100239_B01.jp2"
- archive:type "image/jp2"
- archive:format "application/zip"
proj:bbox[] 4 items
- 0 600000.0
- 1 5290200.0
- 2 709800.0
- 3 5400000.0
proj:shape[] 2 items
- 0 1830
- 1 1830
raster:bands[] 1 items
0
- scale 0.0001
- nodata 0
- offset -0.1
- data_type "uint16"
- spatial_resolution 60
proj:transform[] 6 items
- 0 60.0
- 1 0.0
- 2 600000.0
- 3 0.0
- 4 -60.0
- 5 5400000.0
roles[] 2 items
- 0 "data"
- 1 "reflectance"
preview
- href "https://data.eodc.eu/collections/SENTINEL2_L1C/items/S2B_T33UXP_20240120T100235_L1C/preview"
- type "image/jp2"
alternate
local
- href "/eodc/products/copernicus.eu/s2b_prd_msil1c/2024/01/20/S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.zip"
- archive:href "S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.SAFE/GRANULE/L1C_T33UXP_A035898_20240120T100235/QI_DATA/T33UXP_20240120T100239_PVI.jp2"
- archive:type "image/jp2"
- archive:format "application/zip"
roles[] 1 items
- 0 "overview"
rededge1
- href "https://data.eodc.eu/collections/SENTINEL2_L1C/items/S2B_T33UXP_20240120T100235_L1C/rededge1"
- type "image/jp2"
- title "Red Edge 1 - 20m"
- gsd 20
eo:bands[] 1 items
0
- name "B05"
- common_name "rededge"
- center_wavelength 0.704
- full_width_half_max 0.019
alternate
local
- href "/eodc/products/copernicus.eu/s2b_prd_msil1c/2024/01/20/S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.zip"
- archive:href "S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.SAFE/GRANULE/L1C_T33UXP_A035898_20240120T100235/IMG_DATA/T33UXP_20240120T100239_B05.jp2"
- archive:type "image/jp2"
- archive:format "application/zip"
proj:bbox[] 4 items
- 0 600000.0
- 1 5290200.0
- 2 709800.0
- 3 5400000.0
proj:shape[] 2 items
- 0 5490
- 1 5490
raster:bands[] 1 items
0
- scale 0.0001
- nodata 0
- offset -0.1
- data_type "uint16"
- spatial_resolution 20
proj:transform[] 6 items
- 0 20.0
- 1 0.0
- 2 600000.0
- 3 0.0
- 4 -20.0
- 5 5400000.0
roles[] 2 items
- 0 "data"
- 1 "reflectance"
rededge2
- href "https://data.eodc.eu/collections/SENTINEL2_L1C/items/S2B_T33UXP_20240120T100235_L1C/rededge2"
- type "image/jp2"
- title "Red Edge 2 - 20m"
- gsd 20
eo:bands[] 1 items
0
- name "B06"
- common_name "rededge"
- center_wavelength 0.74
- full_width_half_max 0.018
alternate
local
- href "/eodc/products/copernicus.eu/s2b_prd_msil1c/2024/01/20/S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.zip"
- archive:href "S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.SAFE/GRANULE/L1C_T33UXP_A035898_20240120T100235/IMG_DATA/T33UXP_20240120T100239_B06.jp2"
- archive:type "image/jp2"
- archive:format "application/zip"
proj:bbox[] 4 items
- 0 600000.0
- 1 5290200.0
- 2 709800.0
- 3 5400000.0
proj:shape[] 2 items
- 0 5490
- 1 5490
raster:bands[] 1 items
0
- scale 0.0001
- nodata 0
- offset -0.1
- data_type "uint16"
- spatial_resolution 20
proj:transform[] 6 items
- 0 20.0
- 1 0.0
- 2 600000.0
- 3 0.0
- 4 -20.0
- 5 5400000.0
roles[] 2 items
- 0 "data"
- 1 "reflectance"
rededge3
- href "https://data.eodc.eu/collections/SENTINEL2_L1C/items/S2B_T33UXP_20240120T100235_L1C/rededge3"
- type "image/jp2"
- title "Red Edge 3 - 20m"
- gsd 20
eo:bands[] 1 items
0
- name "B07"
- common_name "rededge"
- center_wavelength 0.783
- full_width_half_max 0.028
alternate
local
- href "/eodc/products/copernicus.eu/s2b_prd_msil1c/2024/01/20/S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.zip"
- archive:href "S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.SAFE/GRANULE/L1C_T33UXP_A035898_20240120T100235/IMG_DATA/T33UXP_20240120T100239_B07.jp2"
- archive:type "image/jp2"
- archive:format "application/zip"
proj:bbox[] 4 items
- 0 600000.0
- 1 5290200.0
- 2 709800.0
- 3 5400000.0
proj:shape[] 2 items
- 0 5490
- 1 5490
raster:bands[] 1 items
0
- scale 0.0001
- nodata 0
- offset -0.1
- data_type "uint16"
- spatial_resolution 20
proj:transform[] 6 items
- 0 20.0
- 1 0.0
- 2 600000.0
- 3 0.0
- 4 -20.0
- 5 5400000.0
roles[] 2 items
- 0 "data"
- 1 "reflectance"
safe-zip
- href "https://data.eodc.eu/collections/SENTINEL2_L1C/items/S2B_T33UXP_20240120T100235_L1C/safe-zip"
- type "application/zip"
- title "ZIP Archive"
- description "Entire product as a ZIP archive. Contains the SAFE archive and all other assets."
alternate
local
- href "/eodc/products/copernicus.eu/s2b_prd_msil1c/2024/01/20/S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.zip"
roles[] 1 items
- 0 "data"
thumbnail
- href "https://data.eodc.eu/collections/SENTINEL2_L1C/items/S2B_T33UXP_20240120T100235_L1C/thumbnail"
- type "image/png"
- title "Preview Image (converted)"
- description "This asset represents a thumbnail image of the STAC item, providing a quick visual preview an example data variable."
roles[] 1 items
- 0 "thumbnail"
safe_manifest
- href "https://data.eodc.eu/collections/SENTINEL2_L1C/items/S2B_T33UXP_20240120T100235_L1C/safe_manifest"
- type "application/xml"
alternate
local
- href "/eodc/products/copernicus.eu/s2b_prd_msil1c/2024/01/20/S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.zip"
- archive:href "S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.SAFE/manifest.safe"
- archive:type "application/xml"
- archive:format "application/zip"
roles[] 1 items
- 0 "metadata"
granule_metadata
- href "https://data.eodc.eu/collections/SENTINEL2_L1C/items/S2B_T33UXP_20240120T100235_L1C/granule_metadata"
- type "application/xml"
alternate
local
- href "/eodc/products/copernicus.eu/s2b_prd_msil1c/2024/01/20/S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.zip"
- archive:href "S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.SAFE/GRANULE/L1C_T33UXP_A035898_20240120T100235/MTD_TL.xml"
- archive:type "application/xml"
- archive:format "application/zip"
roles[] 1 items
- 0 "metadata"
inspire_metadata
- href "https://data.eodc.eu/collections/SENTINEL2_L1C/items/S2B_T33UXP_20240120T100235_L1C/inspire_metadata"
- type "application/xml"
alternate
local
- href "/eodc/products/copernicus.eu/s2b_prd_msil1c/2024/01/20/S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.zip"
- archive:href "S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.SAFE/INSPIRE.xml"
- archive:type "application/xml"
- archive:format "application/zip"
roles[] 1 items
- 0 "metadata"
product_metadata
- href "https://data.eodc.eu/collections/SENTINEL2_L1C/items/S2B_T33UXP_20240120T100235_L1C/product_metadata"
- type "application/xml"
alternate
local
- href "/eodc/products/copernicus.eu/s2b_prd_msil1c/2024/01/20/S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.zip"
- archive:href "S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.SAFE/MTD_MSIL1C.xml"
- archive:type "application/xml"
- archive:format "application/zip"
roles[] 1 items
- 0 "metadata"
datastrip_metadata
- href "https://data.eodc.eu/collections/SENTINEL2_L1C/items/S2B_T33UXP_20240120T100235_L1C/datastrip_metadata"
- type "application/xml"
alternate
local
- href "/eodc/products/copernicus.eu/s2b_prd_msil1c/2024/01/20/S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.zip"
- archive:href "S2B_MSIL1C_20240120T100239_N0510_R122_T33UXP_20240120T104942.SAFE/DATASTRIP/DS_2BPS_20240120T104942_S20240120T100235/MTD_DS.xml"
- archive:type "application/xml"
- archive:format "application/zip"
roles[] 1 items
- 0 "metadata"
- collection "SENTINEL2_L1C"
Print the Thumbnail of the item
Image(url=selected_item.assets["thumbnail"].href, width=500)
Each STAC item has one or more Assets, which include links to actual files. So let’s print a list with all assets.
table = rich.table.Table(title="Assets in STAC Item")
table.add_column("Asset Key", style="cyan", no_wrap=True)
table.add_column("Description")
for asset_key, asset in selected_item.assets.items():
table.add_row(asset_key, asset.title)
console.print(table)
Assets in STAC Item ┏━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ Asset Key ┃ Description ┃ ┡━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩ │ B01 │ Coastal aerosol (band 1) - 60m │ │ B02 │ Blue (band 2) - 10m │ │ B03 │ Green (band 3) - 10m │ │ B04 │ Red (band 4) - 10m │ │ B05 │ Red edge 1 (band 5) - 20m │ │ B06 │ Red edge 2 (band 6) - 20m │ │ B07 │ Red edge 3 (band 7) - 20m │ │ B08 │ NIR 1 (band 8) - 10m │ │ B09 │ NIR 3 (band 9) - 60m │ │ B10 │ Cirrus (band 10) - 60m │ │ B11 │ SWIR 1 (band 11) - 20m │ │ B12 │ SWIR 2 (band 12) - 20m │ │ B8A │ NIR 2 (band 8A) - 20m │ │ visual │ │ │ preview │ Preview image found in Archive. │ │ safe-zip │ │ │ thumbnail │ Preview Image (converted) │ │ safe-manifest │ │ │ granule-metadata │ │ │ inspire-metadata │ │ │ product-metadata │ │ │ datastrip-metadata │ │ └────────────────────┴─────────────────────────────────┘