STAC API#
Overview#
This notebook explains the use of the STAC API interface with GeoJSON response format. It uses the pystac [RD17] and pystac_client [RD18] libraries to access the interface. The visualisation of search results is borrowed from the ODC notebook available at [RD19]. Examples using curl on the command-line are provided as well.
URL_LANDING_PAGE = 'https://catalog.maap.eo.esa.int/catalogue/'
Access landing page#
The landing page provides access to collections (rel=”data”), child catalogs (rel=”child”) and the STAC item search endpoint (rel=”search”).
Get the catalogue landing page with links to other resources and available collections.
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/
from pystac_client import Client
api = Client.open(URL_LANDING_PAGE)
# show as a dictionary
api.to_dict()
{'type': 'Catalog',
'id': 'fedeo',
'stac_version': '1.1.0',
'description': 'MAAP Catalogue provides interoperable access, following ISO/OGC interface guidelines, to Earth Observation metadata',
'links': [{'rel': 'self',
'href': 'https://catalog.maap.eo.esa.int/catalogue/',
'type': 'application/json'},
{'rel': 'search',
'href': 'https://catalog.maap.eo.esa.int/catalogue/api?httpAccept=application/opensearchdescription%2Bxml',
'type': 'application/opensearchdescription+xml',
'title': 'OpenSearch Description Document'},
{'rel': 'service-desc',
'href': 'https://catalog.maap.eo.esa.int/catalogue/api?httpAccept=application/vnd.oai.openapi%2Bjson;version=3.0',
'type': 'application/vnd.oai.openapi+json;version=3.0',
'title': 'OpenAPI definition in JSON format'},
{'rel': 'data',
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections',
'type': 'application/json',
'title': 'Metadata about the feature collections'},
{'rel': 'data',
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections',
'type': 'application/ld+json',
'title': 'Metadata about the feature collections'},
{'rel': 'data',
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections',
'type': 'application/rdf+xml',
'title': 'Metadata about the feature collections'},
{'rel': 'data',
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections',
'type': 'text/turtle',
'title': 'Metadata about the feature collections'},
{'rel': 'conformance',
'href': 'https://catalog.maap.eo.esa.int/catalogue/conformance',
'type': 'application/json',
'title': 'OGC conformance classes implemented by this API'},
{'rel': 'service-doc',
'href': 'https://catalog.maap.eo.esa.int/doc/index.html',
'type': 'text/html',
'title': 'API Documentation (Jupyter)'},
{'rel': 'service-doc',
'href': 'http://petstore.swagger.io/?url=https://catalog.maap.eo.esa.int/catalogue/api',
'type': 'text/html',
'title': 'API documentation in Swagger.io format'},
{'rel': 'search',
'href': 'https://catalog.maap.eo.esa.int/catalogue/search',
'type': 'application/geo+json',
'title': 'STAC Search',
'method': 'GET'},
{'rel': 'search',
'href': 'https://catalog.maap.eo.esa.int/catalogue/search',
'type': 'application/geo+json',
'title': 'STAC Search',
'method': 'POST'},
{'rel': 'child',
'href': 'https://catalog.maap.eo.esa.int/catalogue/series',
'type': 'application/json',
'title': 'Collections'},
{'rel': 'child',
'href': 'https://catalog.maap.eo.esa.int/catalogue/services',
'type': 'application/json',
'title': 'Services'},
{'rel': 'root',
'href': 'https://catalog.maap.eo.esa.int/catalogue/',
'type': 'application/json',
'title': 'MAAP Catalogue'}],
'extent': {'spatial': {'bbox': [[-180, -90, 180, 90]]},
'temporal': {'interval': [[None, None]]}},
'license': 'other',
'conformsTo': ['http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/core',
'http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/oas30',
'http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/geojson',
'http://www.opengis.net/spec/ogcapi_common-2/1.0/conf/collections',
'http://www.opengis.net/spec/ogcapi-common-2/1.0/conf/simple-query',
'http://www.opengis.net/spec/ogcapi-records-1/1.0/req/cql-filter',
'http://www.opengis.net/spec/ogcapi-features-3/1.0/conf/features-filter',
'http://www.opengis.net/spec/ogcapi-features-3/1.0/conf/filter',
'https://api.stacspec.org/v1.0.0/core',
'https://api.stacspec.org/v1.0.0/ogcapi-features',
'https://api.stacspec.org/v1.0.0/collections',
'https://api.stacspec.org/v1.0.0-rc.1/collection-search',
'https://api.stacspec.org/v1.0.0-rc.1/collection-search#filter',
'https://api.stacspec.org/v1.0.0-rc.1/collection-search#free-text',
'https://api.stacspec.org/v1.0.0-rc.1/collection-search#sort',
'https://api.stacspec.org/v1.0.0/item-search',
'https://api.stacspec.org/v1.0.0-rc.3/item-search#filter',
'http://www.opengis.net/spec/cql2/1.0/conf/cql2-text',
'http://www.opengis.net/spec/cql2/1.0/conf/basic-cql2',
'http://www.opengis.net/spec/cql2/1.0/conf/cql2-json',
'http://www.opengis.net/spec/cql2/1.0/conf/advanced-comparison-operators',
'https://api.stacspec.org/v1.0.0/item-search#sort',
'https://api.stacspec.org/v1.0.0/ogcapi-features#sort',
'https://api.stacspec.org/v1.0.0/ogcapi-features#sort',
'https://api.stacspec.org/v1.0.0/item-search#fields',
'https://api.stacspec.org/v1.0.0/ogcapi-features#fields',
'https://api.stacspec.org/v1.0.0-rc.1/collection-search#fields'],
'title': 'MAAP Catalogue'}
# Get catalog title and description
print("Title\t\t:", api.title)
print("Description\t:", api.description)
print("Search link\t:", api.get_search_link())
Title : MAAP Catalogue
Description : MAAP Catalogue provides interoperable access, following ISO/OGC interface guidelines, to Earth Observation metadata
Search link : <Link rel=search target=https://catalog.maap.eo.esa.int/catalogue/search>
Collection Search#
The API implements the STAC API Collection Search Extension [RD25].
Available collections can be retrieved from the landing page using a paging mechanism (with rel=”next” links). It requires the compliance class to be present. As pystac_client does not support collection search, the requests library is used in the examples.
The collection endpoint is available as rel=’data’ link at JSONPath $.links[?(@.rel==’data’)]. Alternatively, collections can be found by traversing the root catalog (i.e. landing page) and following the rel=’child’ links recursively. Searchable collections have type: ‘Collection’ and do not have year/month/day information in their id. E.g. PROBA.CHRIS.1A is a searchable collection, while PROBA.CHRIS.1A-2022 or PROBA.CHRIS.1A-2022-12 or PROBA.CHRIS.1A-2022-12-06 cannot be used for STAC Item Search. This limitation may be relaxed in future versions.
from jsonpath_ng.ext import parse
response = requests.get(URL_LANDING_PAGE)
data = json.loads(response.text)
expression = parse("$.links[?(@.rel == 'data')].href")
r = expression.find(data)
r[0].value
'https://catalog.maap.eo.esa.int/catalogue/collections'
# retrieve /collections response
response = requests.get(r[0].value)
data = json.loads(response.text)
jstr = json.dumps(data, indent=3)
md("```json\n" + jstr + "\n```\n")
{
"collections": [
{
"extent": {
"spatial": {
"bbox": [
[
-180,
-90,
180,
90
]
]
},
"temporal": {
"interval": [
[
null,
null
]
]
}
},
"stac_version": "1.0.0",
"license": "various",
"itemType": "feature",
"description": "Metadata records representing EO datasets (a.k.a. EO products)",
"links": [
{
"rel": "self",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/datasets",
"type": "application/json"
},
{
"rel": "root",
"href": "https://catalog.maap.eo.esa.int/catalogue/",
"type": "application/json",
"title": "MAAP Catalogue"
},
{
"rel": "parent",
"href": "https://catalog.maap.eo.esa.int/catalogue/",
"type": "application/json",
"title": "MAAP Catalogue"
},
{
"rel": "items",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/datasets/items",
"type": "application/geo+json",
"title": "Datasets"
},
{
"rel": "alternate",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/datasets?httpAccept=text/html",
"type": "text/html",
"title": "Self as HTML"
},
{
"rel": "alternate",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/datasets?httpAccept=application/ld%2Bjson",
"type": "application/ld+json",
"title": "Self as JSON-LD"
},
{
"rel": "describedBy",
"href": "http://schemas.opengis.net/eo-geojson/1.0/eo-geojson-schema.json",
"type": "application/schema+json",
"title": "JSON schema for items belonging to this collection"
}
],
"id": "datasets",
"title": "EO Products",
"type": "Collection"
},
{
"extent": {
"spatial": {
"bbox": [
[
-180,
-90,
180,
90
]
]
},
"temporal": {
"interval": [
[
null,
null
]
]
}
},
"stac_version": "1.0.0",
"license": "various",
"itemType": "feature",
"description": "Metadata records representing EO services and applications",
"links": [
{
"rel": "self",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/services",
"type": "application/json"
},
{
"rel": "root",
"href": "https://catalog.maap.eo.esa.int/catalogue/",
"type": "application/json",
"title": "MAAP Catalogue"
},
{
"rel": "parent",
"href": "https://catalog.maap.eo.esa.int/catalogue/",
"type": "application/json",
"title": "MAAP Catalogue"
},
{
"rel": "items",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/services/items",
"type": "application/geo+json",
"title": "Services and applications"
},
{
"rel": "alternate",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/services?httpAccept=text/html",
"type": "text/html",
"title": "Self as HTML"
},
{
"rel": "alternate",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/services?httpAccept=application/ld%2Bjson",
"type": "application/ld+json",
"title": "Self as JSON-LD"
},
{
"rel": "http://www.opengis.net/def/rel/ogc/1.0/queryables",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/services/queryables",
"type": "application/schema+json",
"title": "Queryables for services"
},
{
"rel": "describedBy",
"href": "http://schemas.opengis.net/eopad-geojson/1.0/eopad-geojson-schema.json",
"type": "application/schema+json",
"title": "JSON schema for items belonging to this collection"
}
],
"id": "services",
"title": "EO services and applications",
"type": "Collection"
},
{
"extent": {
"spatial": {
"bbox": [
[
-180,
-90,
180,
90
]
]
},
"temporal": {
"interval": [
[
"2016-06-01T00:00:00.000Z",
null
]
]
}
},
"stac_version": "1.0.0",
"keywords": [
"DIF10",
"EARTH SCIENCE>ATMOSPHERE",
"EARTH SCIENCE>SUN-EARTH INTERACTIONS>IONOSPHERE/MAGNETOSPHERE DYNAMICS",
"EARTH SCIENCE>ATMOSPHERE>WEATHER EVENTS",
"EARTH SCIENCE>OCEANS",
"Spire",
"AIRSAFE",
"SENSE",
"STRATOS",
"Atmosphere",
"Ionosphere and Magnetosphere Dynamics",
"Weather Events",
"Oceans",
"Sun-synchronous",
"500 km",
"Imaging Spectrometers/Radiometers"
],
"description": "The data collected by Spire from it's 100 satellites launched into Low Earth Orbit (LEO) has a diverse range of applications, from analysis of global trade patterns and commodity flows to aircraft routing to weather forecasting. The data also provides interesting research opportunities on topics as varied as ocean currents and GNSS-based planetary boundary layer height.\rThe following products can be requested:\r\rGNSS Polarimetric Radio Occultation (STRATOS)\rNovel Polarimetric Radio Occultation (PRO) measurements collected by three Spire satellites are available over 15-May-2023 to 30-November-2023. PRO differ from regular RO (described below) in that the H and V polarizations of the signal are available, as opposed to only Right-Handed Circularly Polarized (RHCP) signals in regular RO. The differential phase shift between H and V correlates with the presence of hydrometeors (ice crystals, rain, snow, etc.). When combined, the H and V information provides the same information on atmospheric thermodynamic properties as RO: temperature, humidity, and pressure, based on the signal\u2019s bending angle. Various levels of the products are provided. \r \rGNSS Reflectometry (STRATOS)\rGNSS Reflectometry (GNSS-R) is a technique to measure Earth\u2019s surface properties using reflections of GNSS signals in the form of a bistatic radar. Spire collects two types of GNSS-R data: Near-Nadir incidence LHCP reflections collected by the Spire GNSS-R satellites, and Grazing-Angle GNSS-R (i.e., low elevation angle) RHCP reflections collected by the Spire GNSS-RO satellites. The Near-Nadir GNSS-R collects DDM (Delay Doppler Map) reflectivity measurements. These are used to compute ocean wind / wave conditions and soil moisture over land. The Grazing-Angle GNSS-R collects 50 Hz reflectivity and additionally carrier phase observations. These are used for altimetry and characterization of smooth surfaces (such as ice and inland water). Derived Level 1 and Level 2 products are available, as well as some special Level 0 raw intermediate frequency (IF) data. \rHistorical grazing angle GNSS-R data are available from May 2019 to the present, while near-nadir GNSS-R data are available from December 2020 to the present.\r\rName\tTemporal coverage\tSpatial coverage\tDescription\tData format and content\tApplication\rPolarimetric Radio Occultation (PRO) measurements\t15-May-2023 to 30-November-2023\tGlobal\tPRO measurements observe the properties of GNSS signals as they pass through by Earth's atmosphere, similar to regular RO measurements. The polarization state of the signals is recorded separately for H and V polarizations to provide information on the anisotropy of hydrometeors along the propagation path. \tleoOrb.sp3. This file contains the estimated position, velocity and receiver clock error of a given Spire satellite after processing of the POD observation file\tPRO measurements add a sensitivity to ice and precipitation content alongside the traditional RO measurements of the atmospheric temperature, pressure, and water vapor.\r\t\t\t\tproObs. Level 0 - Raw open loop carrier phase measurements at 50 Hz sampling for both linear polarization components (horizontal and vertical) of the occulted GNSS signal.\t\r\t\t\t\th(v)(c)atmPhs. Level 1B - Atmospheric excess phase delay computed for each individual linear polarization component (hatmPhs, vatmPhs) and for the combined (\u201cH\u201d + \u201cV\u201d) signal (catmPhs). Also contains values for signal-to-noise ratio, transmitter and receiver positions and open loop model information.\t\r\t\t\t\tpolPhs. Level 1C - Combines the information from the hatmPhs and vatmPhs files while removing phase continuities due to phase wrapping and navigation bit modulation.\t\r\t\t\t\tpatmPrf. Level 2 - Bending angle, dry refractivity, and dry temperature as a function of mean sea level altitude and impact parameter derived from the \u201ccombined\u201d excess phase delay (catmPhs)\t\rNear-Nadir GNSS Reflectometry (NN GNSS-R) measurements \t25-January-2024 to 24-July-2024\tGlobal\tTracks of surface reflections as observed by the near-nadir pointing GNSS-R antennas, based on Delay Doppler Maps (DDMs).\tgbrRCS.nc. Level 1B - Along-track calibrated bistatic radar cross-sections measured by Spire conventional GNSS-R satellites.\tNN GNSS-R measurements are used to measure ocean surface winds and characterize land surfaces for applications such as soil moisture, freeze/thaw monitoring, flooding detection, inland water body delineation, sea ice classification, etc.\r\t\t\t\tgbrNRCS.nc. Level 1B - Along-track calibrated bistatic and normalized radar cross-sections measured by Spire conventional GNSS-R satellites.\t\r\t\t\t\tgbrSSM.nc. Level 2 - Along-track SNR, reflectivity, and retrievals of soil moisture (and associated uncertainties) and probability of frozen ground.\t\r\t\t\t\tgbrOcn.nc. Level 2 - Along-track retrievals of mean square slope (MSS) of the sea surface, wind speed, sigma0, and associated uncertainties.\t\rGrazing angle GNSS Reflectometry (GA GNSS-R) measurements\t25-January-2024 to 24-July-2024\tGlobal\tTracks of surface reflections as observed by the limb-facing RO antennas, based on open-loop tracking outputs: 50 Hz collections of accumulated I/Q observations.\tgrzRfl.nc. Level 1B - Along-track SNR, reflectivity, phase delay (with respect to an open loop model) and low-level observables and bistatic radar geometries such as receiver, specular reflection, and the transmitter locations.\tGA GNSS-R measurements are used to 1) characterize land surfaces for applications such as sea ice classification, freeze/thaw monitoring, inland water body detection and delineation, etc., and 2) measure relative altimetry with dm-level precision for inland water bodies, river slopes, sea ice freeboard, etc., but also water vapor characterization from delay based on tropospheric delays.\r\t\t\t\tgrzIce.nc. Level 2 - Along-track water vs sea ice classification, along with sea ice type classification.\t\r\t\t\t\tgrzAlt.nc. Level 2 - Along-track phase-delay, ionosphere-corrected altimetry, tropospheric delay, and ancillary models (mean sea surface, tides).\t\r\rAdditionally, the following products (better detailed in the ToA) can be requested but the acceptance is not guaranteed and shall be evaluated on a case-by-case basis: \rOther STRATOS measurements: profiles of the Earth\u2019s atmosphere and ionosphere, from December 2018\rADS-B Data Stream: monthly subscription to global ADS-B satellite data, available from December 2018\rAIS messages: AIS messages observed from Spire satellites (S-AIS) and terrestrial from partner sensor stations (T-AIS), monthly subscription available from June 2016\r\rThe products are available as part of the Spire provision with worldwide coverage.\rAll details about the data provision, data access conditions and quota assignment procedure are described in the _$$Terms of Applicability$$ https://earth.esa.int/eogateway/documents/20142/37627/SPIRE-Terms-Of-Applicability.pdf/0dd8b3e8-05fe-3312-6471-a417c6503639 .",
"collection": "EOP:ESA:EARTH-ONLINE",
"type": "Collection",
"title": "Spire live and historical data",
"version": "8.0",
"license": "various",
"assets": {
"metadata_iso_19139": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/Spire.live.and.historical.data?httpAccept=application/vnd.iso.19139%2Bxml",
"title": "ISO 19139 metadata",
"type": "application/vnd.iso.19139+xml"
},
"metadata_iso_19139_2": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/Spire.live.and.historical.data?httpAccept=application/vnd.iso.19139-2%2Bxml",
"title": "ISO 19139-2 metadata",
"type": "application/vnd.iso.19139-2+xml"
},
"metadata_dif_10": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/Spire.live.and.historical.data?httpAccept=application/dif10%2Bxml",
"title": "DIF-10 metadata",
"type": "application/dif10+xml"
},
"metadata_ogc_17_084r1": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/Spire.live.and.historical.data?mode=owc",
"title": "OGC 17-084r1 metadata",
"type": "application/geo+json;profile=\"http://www.opengis.net/spec/eoc-geojson/1.0\""
},
"metadata_iso_191115_3": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/Spire.live.and.historical.data?httpAccept=application/vnd.iso.19115-3%2Bxml",
"title": "ISO 19115-3 metadata",
"type": "application/vnd.iso.19115-3+xml"
}
},
"links": [
{
"rel": "self",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/Spire.live.and.historical.data",
"type": "application/json"
},
{
"rel": "root",
"href": "https://catalog.maap.eo.esa.int/catalogue/",
"type": "application/json",
"title": "MAAP Catalogue"
},
{
"rel": "parent",
"href": "https://catalog.maap.eo.esa.int/catalogue/",
"title": "collections",
"type": "application/json"
},
{
"rel": "license",
"href": "https://earth.esa.int/eogateway/documents/20142/1560778/ESA-Third-Party-Missions-Terms-and-Conditions.pdf",
"type": "application/pdf",
"title": "Specific restrictions to the use of data may apply for TPMs according to the terms of applicability valid for each mission. Utilisation of this data is subject to ESA's Earth Observation Terms and Conditions."
},
{
"rel": "describedby",
"href": "https://earth.esa.int/eogateway/documents/20142/37627/Spire-Product-Guide.pdf",
"type": "application/pdf",
"title": "Spire Product Guide - Product Description"
},
{
"rel": "describedby",
"href": "https://earth.esa.int/documents/d/earth-online/spire-terms-of-applicability",
"type": "application/pdf",
"title": "Spire Terms of Applicability - Access Guide"
},
{
"rel": "describedby",
"href": "https://esatellus.service-now.com/csp?id=esa_simple_request",
"type": "text/html",
"title": "Get Help? - ESA Earth Observation User Services Portal"
},
{
"rel": "alternate",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/Spire.live.and.historical.data?httpAccept=application/ld%2Bjson;profile=https://schema.org",
"type": "application/ld+json;profile=\"https://schema.org\"",
"title": "JSON-LD (schema.org) metadata"
},
{
"rel": "alternate",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/Spire.live.and.historical.data?httpAccept=application/ld%2Bjson",
"type": "application/ld+json;profile=\"http://data.europa.eu/930/\"",
"title": "JSON-LD (GeoDCAT-AP) metadata"
}
],
"id": "Spire.live.and.historical.data",
"updated": "2025-04-24T10:31:46Z",
"stac_extensions": [
"https://stac-extensions.github.io/version/v1.2.0/schema.json"
],
"providers": [
{
"roles": [
"producer"
],
"name": "ESA/ESRIN",
"url": "http://www.esa.int"
},
{
"roles": [
"host"
],
"name": "ESA EO Catalogue"
}
],
"summaries": {
"instruments": [
"STRATOS"
],
"platform": [
"Spire"
]
}
},
{
"extent": {
"spatial": {
"bbox": [
[
-180,
-90,
180,
90
]
]
},
"temporal": {
"interval": [
[
"2010-04-08T00:00:00.000Z",
null
]
]
}
},
"stac_version": "1.0.0",
"sci:doi": "10.5270/CR2-120cf4c",
"keywords": [
"DIF10",
"EARTH SCIENCE>OCEANS",
"EARTH SCIENCE>CRYOSPHERE>SNOW/ICE",
"CRYOSAT-2",
"SIRAL",
"Oceans",
"Snow and Ice",
"Inclined, non-sun-synchronous",
"FDM",
"LRM",
"SAR",
"SARIn",
"GRD",
"GOP",
"IOP",
"Radar Altimeters",
"CryoSat-2"
],
"description": "CryoSat's primary payload is the SAR/Interferometric Radar Altimeter (SIRAL) (https://earth.esa.int/eogateway/instruments/siral) which has extended capabilities to meet the measurement requirements for ice-sheet elevation and sea-ice freeboard. CryoSat also carries three star trackers for measuring the orientation of the baseline. In addition, a radio receiver called Doppler Orbit and Radio Positioning Integration by Satellite (DORIS) and a small laser retroreflector ensures that CryoSat's position will be accurately tracked. More detailed information on CryoSat instruments is available on the CryoSat mission page. The following CryoSat datasets are available and distributed to registered users: Level 1B and L2 Ice products: FDM, LRM, SAR and SARIn Consolidated Level 2 (GDR): (LRM+SAR+SARIN) consolidated ice products over an orbit Intermediate Level 2 Ice products: LRM, SAR and SARIn L1b and L2 Ocean Products: GOP and IOP CryoTEMPO EOLIS Point Products CryoTEMPO EOLIS Gridded Products Detailed information concerning each of the above datasets is available in the CryoSat Products Overview (https://earth.esa.int/eogateway/missions/cryosat/products) and in the news item: CryoSat Ocean Products now open to scientific community (https://earth.esa.int/web/guest/missions/esa-operational-eo-missions/cryosat/news/-/asset_publisher/47bD/content/cryosat-ocean-products-now-open-to-scientific-community). CryoSat Level 1B altimetric products contain time and geo-location information as well as SIRAL measurements in engineering units. Calibration corrections are included and have been applied to the window delay computations. In Offline products, geophysical corrections are computed from Analysis Auxiliary Data Files (ADFs), whereas in FDM products corrections are computed for Forecast ADFs. All corrections are included in the data products and therefore the range can be calculated by taking into account the surface type. The Offline Level 2 LRM, SAR and SARIn ice altimetric products are generated 30 days after data acquisition and are principally dedicated to glaciologists working on sea-ice and land-ice areas. The Level 2 FDM products are near-real time ocean products, generated 2-3 hours after data acquisition, and fulfill the needs of some ocean operational services. Level 2 products contain the time of measurement, the geo-location and the height of the surface. IOP and GOP are outputs of the CryoSat Ocean Processor. These products are dedicated to the study of ocean surfaces, and provided specifically for the needs of the oceanographic community. IOP are generated 2-3 days after data sensing acquisition and use the DORIS Preliminary Orbit. GOP are typically generated 30 days after data sensing acquisition and use the DORIS Precise Orbit. Geophysical corrections are computed from the Analysis ADFs, however following the oceanographic convention the corrections are available but not directly applied to the range (as for FDM). The CryoSat ThEMatic PrOducts (Cryo-TEMPO) projects aim to deliver a new paradigm of simplified, harmonized, and agile CryoSat-2 products, that are easily accessible to new communities of non-altimeter experts and end users. The Cryo-TEMPO datasets include dedicated products over five thematic areas, covering Sea Ice, Land Ice, Polar Ocean, Coastal Ocean and Inland Water, together with a novel SWATH product (CryoTEMPO-EOLIS) that exploits CryoSat's SARIn mode over ice sheet margins. The standard Cryo-TEMPO products include fully-traceable uncertainties and use rapidly evolving, state-of-the-art processing dedicated to each thematic area. Throughout the project, the products will be constantly evolved, and validated by a group of Thematic Users, thus ensuring optimal relevance and impact for the intended target communities. More information on the Cryo-TEMPO products can be found on the Project Website (http://cryosat.mssl.ucl.ac.uk/tempo/index.html). The CryoTEMPO-EOLIS swath product exploits CryoSat's SARIn mode and the novel Swath processing technique to deliver increased spatial and temporal coverage of time-dependent elevation over land ice, a critical metric for tracking ice mass trends in support to a wide variety of end-users. The CryoTEMPO-EOLIS swath product exploits CryoSat's SARIn mode and the novel Swath processing technique to deliver increased spatial and temporal coverage of time-dependent elevation over land ice, a critical metric for tracking ice mass trends in support to a wide variety of end-users.The dataset consists of systematic reprocessing of the entire CryoSat archive to generate new L2-Swath products, increasing data sampling by 1 to 2 orders of magnitude compared with the operational L2 ESA product. In addition, the EOLIS dataset is joined with the ESA L2 Point-Of-Closest-Approach to generate monthly DEM (Digital Elevation Model) products. This dataset will further the ability of the community to analyse and understand trends across the Greenland Ice Sheet margin, Antarctica and several mountain glaciers and ice caps around the world.",
"sci:citation": "European Space Agency, L1b NOP-IOP-GOP SAR, Version Baseline C.",
"collection": "EOP:ESA:EARTH-ONLINE",
"type": "Collection",
"title": "CryoSat products",
"version": "5.0",
"license": "various",
"assets": {
"enclosure_10": {
"roles": [
"data"
],
"href": "ftp://explorer:cryo2s@t@science-pds.cryosat.esa.int/.indexfiles/SIR_LRM_2_/",
"type": "text/html",
"title": "Cryosat FTP - Cryosat FTP"
},
"enclosure_11": {
"roles": [
"data"
],
"href": "ftp://explorer:cryo2s@t@science-pds.cryosat.esa.int/.indexfiles/SIR_LRMI2_/",
"type": "text/html",
"title": "Cryosat FTP - Cryosat FTP"
},
"enclosure_12": {
"roles": [
"data"
],
"href": "ftp://explorer:cryo2s@t@science-pds.cryosat.esa.int/.indexfiles/SIR_SAR_1B/",
"type": "text/html",
"title": "Cryosat FTP - Cryosat FTP"
},
"enclosure_13": {
"roles": [
"data"
],
"href": "ftp://explorer:cryo2s@t@science-pds.cryosat.esa.int/.indexfiles/SIR_SAR_2_/",
"type": "text/html",
"title": "Cryosat FTP - Cryosat FTP"
},
"metadata_iso_19139": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/CryoSat.products?httpAccept=application/vnd.iso.19139%2Bxml",
"title": "ISO 19139 metadata",
"type": "application/vnd.iso.19139+xml"
},
"metadata_dif_10": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/CryoSat.products?httpAccept=application/dif10%2Bxml",
"title": "DIF-10 metadata",
"type": "application/dif10+xml"
},
"metadata_iso_191115_3": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/CryoSat.products?httpAccept=application/vnd.iso.19115-3%2Bxml",
"title": "ISO 19115-3 metadata",
"type": "application/vnd.iso.19115-3+xml"
},
"enclosure_3": {
"roles": [
"data"
],
"href": "ftp://explorer:cryo2s@t@science-pds.cryosat.esa.int/.indexfiles/SIR_GOPM1B/",
"type": "text/html",
"title": "Cryosat FTP - Cryosat FTP"
},
"enclosure_4": {
"roles": [
"data"
],
"href": "ftp://explorer:cryo2s@t@science-pds.cryosat.esa.int/.indexfiles/SIR_GOPM_2/",
"type": "text/html",
"title": "Cryosat FTP - Cryosat FTP"
},
"enclosure_1": {
"roles": [
"data"
],
"href": "ftp://explorer:cryo2s@t@science-pds.cryosat.esa.int/.indexfiles/SIR_GDR_2/",
"type": "text/html",
"title": "Cryosat FTP - Cryosat FTP"
},
"enclosure_2": {
"roles": [
"data"
],
"href": "ftp://explorer:cryo2s@t@science-pds.cryosat.esa.int/.indexfiles/SIR_GOP_2_/",
"type": "text/html",
"title": "Cryosat FTP - Cryosat FTP"
},
"metadata_iso_19139_2": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/CryoSat.products?httpAccept=application/vnd.iso.19139-2%2Bxml",
"title": "ISO 19139-2 metadata",
"type": "application/vnd.iso.19139-2+xml"
},
"enclosure_18": {
"roles": [
"data"
],
"href": "ftp://explorer:cryo2s@t@science-pds.cryosat.esa.int/.indexfiles/SIR1SAR_FR/",
"type": "text/html",
"title": "Cryosat FTP - Cryosat FTP"
},
"enclosure_19": {
"roles": [
"data"
],
"href": "ftp://explorer:cryo2s@t@science-pds.cryosat.esa.int/.indexfiles/SIR_SIN_FR/",
"type": "text/html",
"title": "Cryosat FTP - Cryosat FTP"
},
"enclosure_9": {
"roles": [
"data"
],
"href": "ftp://explorer:cryo2s@t@science-pds.cryosat.esa.int/.indexfiles/SIR_LRM_1B/",
"type": "text/html",
"title": "Cryosat FTP - Cryosat FTP"
},
"enclosure_7": {
"roles": [
"data"
],
"href": "ftp://explorer:cryo2s@t@science-pds.cryosat.esa.int/.indexfiles/SIR_GOPR1B/",
"type": "text/html",
"title": "Cryosat FTP - Cryosat FTP"
},
"enclosure_14": {
"roles": [
"data"
],
"href": "ftp://explorer:cryo2s@t@science-pds.cryosat.esa.int/.indexfiles/SIR_SARI2_/",
"type": "text/html",
"title": "Cryosat FTP - Cryosat FTP"
},
"enclosure_8": {
"roles": [
"data"
],
"href": "ftp://explorer:cryo2s@t@science-pds.cryosat.esa.int/.indexfiles/SIR_GOPR_2/",
"type": "text/html",
"title": "Cryosat FTP - Cryosat FTP"
},
"enclosure_15": {
"roles": [
"data"
],
"href": "ftp://explorer:cryo2s@t@science-pds.cryosat.esa.int/.indexfiles/SIR_SIN_1B/",
"type": "text/html",
"title": "Cryosat FTP - Cryosat FTP"
},
"metadata_ogc_17_084r1": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/CryoSat.products?mode=owc",
"title": "OGC 17-084r1 metadata",
"type": "application/geo+json;profile=\"http://www.opengis.net/spec/eoc-geojson/1.0\""
},
"enclosure_5": {
"roles": [
"data"
],
"href": "ftp://explorer:cryo2s@t@science-pds.cryosat.esa.int/.indexfiles/SIR_GOPN1B/",
"type": "text/html",
"title": "Cryosat FTP - Cryosat FTP"
},
"enclosure_16": {
"roles": [
"data"
],
"href": "ftp://explorer:cryo2s@t@science-pds.cryosat.esa.int/.indexfiles/SIR_SIN_2_/",
"type": "text/html",
"title": "Cryosat FTP - Cryosat FTP"
},
"enclosure_6": {
"roles": [
"data"
],
"href": "ftp://explorer:cryo2s@t@science-pds.cryosat.esa.int/.indexfiles/SIR_GOPN_2/",
"type": "text/html",
"title": "Cryosat FTP - Cryosat FTP"
},
"enclosure_17": {
"roles": [
"data"
],
"href": "ftp://explorer:cryo2s@t@science-pds.cryosat.esa.int/.indexfiles/SIR_SINI2_/",
"type": "text/html",
"title": "Cryosat FTP - Cryosat FTP"
}
},
"links": [
{
"rel": "cite-as",
"href": "https://doi.org/10.5270/CR2-120cf4c",
"type": "text/html",
"title": "Landing page"
},
{
"rel": "self",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/CryoSat.products",
"type": "application/json"
},
{
"rel": "root",
"href": "https://catalog.maap.eo.esa.int/catalogue/",
"type": "application/json",
"title": "MAAP Catalogue"
},
{
"rel": "parent",
"href": "https://catalog.maap.eo.esa.int/catalogue/",
"title": "collections",
"type": "application/json"
},
{
"rel": "items",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/CryoSat.products/items?parentIdentifier=EOP:ESA:EARTH-ONLINE",
"type": "application/geo+json",
"title": "Datasets search for the series CryoSat.products"
},
{
"rel": "http://www.opengis.net/def/rel/ogc/1.0/queryables",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/CryoSat.products/queryables?parentIdentifier=EOP:ESA:EARTH-ONLINE",
"type": "application/schema+json",
"title": "Queryables for CryoSat.products"
},
{
"rel": "license",
"href": "https://earth.esa.int/eogateway/documents/20142/1564626/Terms-and-Conditions-for-the-use-of-ESA-Data.pdf",
"type": "application/pdf",
"title": "The access and use of CryoSat products are regulated by the\u00a0ESA's Data Policy and subject to the acceptance of the specific\u00a0Terms & Conditions Users accessing CryoSat products are intrinsically acknowledging and accepting the above."
},
{
"rel": "search",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/CryoSat.products/api",
"type": "application/opensearchdescription+xml",
"title": "OpenSearch Description Document"
},
{
"rel": "describedby",
"href": "https://earth.esa.int/eogateway/search?category=tools+and+toolboxes&mission=cryosat&tools_type=analysis%2Cprocessing%2Cvisualisation%2Cother",
"type": "text/html",
"title": "Cryosat Software Tools - Software Tools"
},
{
"rel": "describedby",
"href": "https://esatellus.service-now.com/csp?id=esa_simple_request",
"type": "text/html",
"title": "Get Help? - ESA Earth Observation User Services Portal"
},
{
"rel": "alternate",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/CryoSat.products?httpAccept=application/ld%2Bjson;profile=https://schema.org",
"type": "application/ld+json;profile=\"https://schema.org\"",
"title": "JSON-LD (schema.org) metadata"
},
{
"rel": "alternate",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/CryoSat.products?httpAccept=application/ld%2Bjson",
"type": "application/ld+json;profile=\"http://data.europa.eu/930/\"",
"title": "JSON-LD (GeoDCAT-AP) metadata"
}
],
"id": "CryoSat.products",
"updated": "2025-04-24T10:30:13Z",
"stac_extensions": [
"https://stac-extensions.github.io/version/v1.2.0/schema.json",
"https://stac-extensions.github.io/scientific/v1.0.0/schema.json"
],
"providers": [
{
"roles": [
"producer"
],
"name": "ESA/ESRIN",
"url": "http://www.esa.int"
},
{
"roles": [
"host"
],
"name": "ESA EO Catalogue"
}
],
"summaries": {
"proj:code": [
"EPSG:4326"
],
"instruments": [
"SIRAL"
],
"platform": [
"CryoSat-2"
]
}
},
{
"extent": {
"spatial": {
"bbox": [
[
-180,
-90,
180,
90
]
]
},
"temporal": {
"interval": [
[
"2012-10-01T00:00:00.000Z",
null
]
]
}
},
"stac_version": "1.0.0",
"keywords": [
"DIF10",
"EARTH SCIENCE>AGRICULTURE",
"EARTH SCIENCE>AGRICULTURE>FOREST SCIENCE>AFFORESTATION/REFORESTATION",
"EARTH SCIENCE>AGRICULTURE>AGRICULTURAL PLANT SCIENCE>CROP/PLANT YIELDS",
"EARTH SCIENCE>AGRICULTURE>FOREST SCIENCE>FOREST FIRE SCIENCE",
"EARTH SCIENCE>LAND SURFACE>LANDSCAPE",
"EARTH SCIENCE>LAND SURFACE>TOPOGRAPHY",
"EARTH SCIENCE>ATMOSPHERE>WEATHER EVENTS",
"SPOT-6",
"SPOT-7",
"NAOMI",
"Orthoimagery",
"Agriculture",
"Afforestation/Reforestation",
"Crops and Yields",
"Forest Fires",
"Landscape",
"Topography",
"Weather Events",
"VIS (0.40 - 0.75 \u00b5m)",
"NIR (0.75 - 1.30 \u00b5m)",
"SWIR (1.3 - 3.0 \u00b5m)",
"Sun-synchronous",
"Very High Resolution - VHR (0 - 5m)",
"High Resolution - HR (5 - 20 m)",
"832 km for SPOT-1 to 5, 694 km for SPOT-6 and 7",
"60 km",
"Cameras",
"SPOT 6",
"SPOT 7"
],
"description": "The SPOT 6 and 7 satellites ensure data continuity with the no longer operational SPOT 5 satellite and provide an archive of very high resolution optical acquisition as well as the possibility to task the satellites for new acquisitions.\rFollowing the completion of the SPOT 7 mission in March 2023, new acquisition tasking is only available for the SPOT 6 satellite.\rThe ortho-products are automatically generated by the SPOT 6 and 7 ground segment, based on SRTM database or Reference3D when available. The projection available for SPOT 6 and 7 ortho-products is UTM, datum WGS84.\rBands combinations:\r\u2022\tPanchromatic: black&white image at 1.5 m resolution\r\u2022\tPansharpened: 3-bands or 4 bands colour image at 1.5 m resolution\r\u2022\tMultispectral: 4 bands image at 6m resolution \r\u2022\tBundle: 1.5 m panchromatic image and 6 m multispectral image, co-registered.\rGeometric processing levels:\r\u2022\tPrimary: The Primary product is the processing level closest to the natural image acquired by the sensor. This product restores perfect collection conditions: the sensor is placed in rectilinear geometry, and the image is clear of all radiometric distortion.\r\u2022\tOrtho: The Ortho product is a georeferenced image in Earth geometry, corrected from acquisition and terrain off-nadir effects. Available in MONO acquisition mode only.\rAcquisition modes:\r\u2022\tMono\r\u2022\tStereo\r\u2022\tTristero\r\rTo complement the traditional and fully customised ordering and download of selected SPOT, Pleiades or Pleiades Neo images in a variety of data formats, you can also subscribe to the OneAtlas Living Library package where the entire OneAtlas optical archive of ortho images is updated on a daily basis and made available for streaming or download.\rThe Living Library consist of\r\u2022\tless-than-18-months-old imagery\r\u2022\ta curation of SPOT images with no cloud cover and less than 30\u00b0 incidence angle\r\u2022\tPl\u00e9iades images acquired worldwide with maximum 15% cloud cover and 30\u00b0 Incidence Angle\r\u2022\tPl\u00e9iades Neo premium imagery selection with 2% cloud cover and 30\u00b0 incidence angle\rThese are the available subscription packages (to be consumed withing one year from the activation) \rOneAtlas Living Library subscription package 1: up to 230 km2 Pleiades Neo or 430 km2 Pleiades or 1.500 km2 SPOT in download, up to 500 km2 Pleiades Neo or 2.000 km2 Pleiades or 7.500 km2 SPOT in streaming\rOneAtlas Living Library subscription package 2: up to 654 km2 Pleiades Neo or 1.214 km2 Pleiades or 4.250 km2 SPOT in download, up to 1417 km2 Pleiades Neo or 5.666 km2 Pleiades or 21.250 km2 SPOT in streaming\rOneAtlas Living Library subscription package 3: up to 1.161 km2 Pleiades Neo or 2.156 km2 Pleiades or 7.545 km2 SPOT in download, up to 2.515 km2 Pleiades Neo or 10.060 km2 Pleiades or 37.723 km2 SPOT in streaming\rAs per ESA policy, very high-resolution imagery of conflict areas cannot be provided.",
"collection": "EOP:ESA:EARTH-ONLINE",
"type": "Collection",
"title": "SPOT-6 to 7 full archive and tasking",
"version": "9.0",
"license": "various",
"assets": {
"metadata_iso_19139": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/SPOT67fullarchiveandtasking1?httpAccept=application/vnd.iso.19139%2Bxml",
"title": "ISO 19139 metadata",
"type": "application/vnd.iso.19139+xml"
},
"metadata_iso_19139_2": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/SPOT67fullarchiveandtasking1?httpAccept=application/vnd.iso.19139-2%2Bxml",
"title": "ISO 19139-2 metadata",
"type": "application/vnd.iso.19139-2+xml"
},
"metadata_dif_10": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/SPOT67fullarchiveandtasking1?httpAccept=application/dif10%2Bxml",
"title": "DIF-10 metadata",
"type": "application/dif10+xml"
},
"metadata_ogc_17_084r1": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/SPOT67fullarchiveandtasking1?mode=owc",
"title": "OGC 17-084r1 metadata",
"type": "application/geo+json;profile=\"http://www.opengis.net/spec/eoc-geojson/1.0\""
},
"metadata_iso_191115_3": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/SPOT67fullarchiveandtasking1?httpAccept=application/vnd.iso.19115-3%2Bxml",
"title": "ISO 19115-3 metadata",
"type": "application/vnd.iso.19115-3+xml"
}
},
"links": [
{
"rel": "self",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/SPOT67fullarchiveandtasking1",
"type": "application/json"
},
{
"rel": "root",
"href": "https://catalog.maap.eo.esa.int/catalogue/",
"type": "application/json",
"title": "MAAP Catalogue"
},
{
"rel": "parent",
"href": "https://catalog.maap.eo.esa.int/catalogue/",
"title": "collections",
"type": "application/json"
},
{
"rel": "license",
"href": "http://inspire.ec.europa.eu/metadata-codelist/LimitationsOnPublicAccess/INSPIRE_Directive_Article13_1a",
"type": "application/x-binary",
"title": "Other Constraints"
},
{
"rel": "license",
"href": "https://earth.esa.int/eogateway/documents/20142/1560778/ESA-Third-Party-Missions-Terms-and-Conditions.pdf",
"type": "application/pdf",
"title": "Utilisation of this data is subject to ESA's Earth Observation Terms and Conditions"
},
{
"rel": "describedby",
"href": "https://www.intelligence-airbusds.com/imagery/constellation/",
"type": "text/html",
"title": "Airbus Constellation portal - Website"
},
{
"rel": "describedby",
"href": "https://earth.esa.int/eogateway/documents/20142/37627/SPOT-6-7-imagery-user-guide.pdf",
"type": "application/pdf",
"title": "SPOT 6&7 Imagery User Guide - Product Specification"
},
{
"rel": "describedby",
"href": "https://www.intelligence-airbusds.com/imagery/constellation/pleiades-neo/how-to-order/",
"type": "text/html",
"title": "OneAtlas How to Order - Data Access Information"
},
{
"rel": "describedby",
"href": "https://www.intelligence-airbusds.com/en/4871-geostore-ordering",
"type": "text/html",
"title": "GeoStore Catalogue - Catalogue"
},
{
"rel": "describedby",
"href": "https://oneatlas.airbus.com/",
"type": "text/html",
"title": "OneAtlas Quick guide - Data Access Information"
},
{
"rel": "describedby",
"href": "https://oneatlas.airbus.com/",
"type": "text/html",
"title": "OneAtlas Catalogue - Catalogue"
},
{
"rel": "describedby",
"href": "https://earth.esa.int/eogateway/documents/20142/37627/SPOT-Pleiades-data-terms-of-applicability.pdf",
"type": "application/pdf",
"title": "Terms of Applicability - Access Guide"
},
{
"rel": "describedby",
"href": "https://earth.esa.int/eogateway/search?text=sentinel+toolbox+2",
"type": "text/html",
"title": "SPOT Software Tools - Software Tools"
},
{
"rel": "describedby",
"href": "https://esatellus.service-now.com/csp?id=esa_simple_request",
"type": "text/html",
"title": "Get Help? - ESA Earth Observation User Services Portal"
},
{
"rel": "alternate",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/SPOT67fullarchiveandtasking1?httpAccept=application/ld%2Bjson;profile=https://schema.org",
"type": "application/ld+json;profile=\"https://schema.org\"",
"title": "JSON-LD (schema.org) metadata"
},
{
"rel": "alternate",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/SPOT67fullarchiveandtasking1?httpAccept=application/ld%2Bjson",
"type": "application/ld+json;profile=\"http://data.europa.eu/930/\"",
"title": "JSON-LD (GeoDCAT-AP) metadata"
}
],
"id": "SPOT67fullarchiveandtasking1",
"updated": "2025-04-24T10:24:04Z",
"stac_extensions": [
"https://stac-extensions.github.io/version/v1.2.0/schema.json",
"https://stac-extensions.github.io/processing/v1.2.0/schema.json"
],
"providers": [
{
"roles": [
"producer"
],
"name": "ESA/ESRIN",
"url": "https://www.esa.int"
},
{
"roles": [
"host"
],
"name": "ESA EO Catalogue"
}
],
"summaries": {
"processing:level": [
"L1A",
"L1B",
"L2A",
"L3"
],
"instruments": [
"NAOMI",
"NAOMI"
],
"platform": [
"SPOT 6",
"SPOT 7"
]
}
},
{
"extent": {
"spatial": {
"bbox": [
[
-180,
-84,
180,
84
]
]
},
"temporal": {
"interval": [
[
"2013-11-13T00:00:00.000Z",
null
]
]
}
},
"stac_version": "1.0.0",
"keywords": [
"DIF10",
"EARTH SCIENCE>LAND SURFACE",
"EARTH SCIENCE>HUMAN DIMENSIONS>NATURAL HAZARDS",
"SkySat",
"SkySat Camera",
"Land Surface",
"Mapping and Cartography",
"Natural Hazards and Disaster Risk",
"VIS (0.40 - 0.75 \u00b5m)",
"NIR (0.75 - 1.30 \u00b5m)",
"Sun-synchronous",
"Very High Resolution - VHR (0 - 5m)",
"475-575 km",
"8 km at nadir for SkySat-1 to -2, 5.9 km at nadir for SkySat-3 to -15, 5.5 km at nadir for SkySat-16 to -21",
"Imaging Spectrometers/Radiometers"
],
"description": "The SkySat Level 1 Basic Scene, Level 3B Ortho Scene and Level 3B Consolidated full archive and new tasking products are available as part of the Planet imagery offer.\rThe SkySat Basic Scene product is uncalibrated and in a raw digital number format, not corrected for any geometric distortions inherent to the imaging process. Rational Polynomial Coefficients (RPCs) are provided to enable orthorectification by the user.\r\u2022\tBasic Panchromatic Scene product \u2013 unorthorectified, radiometrically corrected, panchromatic (PAN) imagery.\r\u2022\tBasic Panchromatic DN Scene product \u2013 unorthorectified, panchromatic (PAN) imagery.\r\u2022\tBasic L1A Panchromatic DN Scene product \u2013 unorthorectified, pre-super resolution, panchromatic (PAN) imagery.\r\u2022\tBasic Analytic Scene product \u2013 unorthorectified, radiometrically corrected, 4-band multispectral (BGR-NIR) imagery.\r\u2022\tBasic Analytic DN Scene product \u2013 unorthorectified, 4-band multispectral (BGR-NIR) imagery.\rBasic Scene Product Components and Format\rProduct Components and Format\t\u2022\tImage File (GeoTIFF format)\r\u2022\tMetadata File (JSON format)\r\u2022\tRational Polynomial Coefficients (Text File)\r\u2022\tUDM File (GeoTIFF format)\rImage Configurations\t\u2022\t1-band Panchromatic/Panchromatic DN Image (PAN)\r\u2022\t4-band Analytic/Analytic DN Image (Blue, Green, Red, NIR)\rGround Sampling Distance (nadir)\t\u2022\tSkySat-1 & -2: 0.86 m (PAN), 1.0 m (MS)\r\u2022\tSkySat-3 to -15: 0.65 m (PAN), 0.8 m (MS). 0.72 m (PAN) and 1.0 m (MS) for data acquired prior to 30/06/2020\r\u2022\tSkySat-16 to -21: 0.57 m (PAN), 0.75 m (MS)\rGeolocation Accuracy\t<50 m RMSE\r\rThe SkySat Ortho Scene product is sensor- and geometrically-corrected (using DEMs with a post spacing of 30 \u2013 90 m) and is projected to a cartographic map projection; the accuracy of the product varies from region-to-region based on available GCPs.\r\u2022\tOrtho Panchromatic Scene product \u2013 orthorectified, radiometrically corrected, panchromatic (PAN) imagery.\r\u2022\tOrtho Panchromatic DN Scene product \u2013 orthorectified, panchromatic (PAN), uncalibrated digital number imagery.\r\u2022\tOrtho Analytic Scene product \u2013 orthorectified, 4-band multispectral (BGR-NIR) imagery. Radiometric corrections are applied to correct for any sensor artifacts and transformation to top-of-atmosphere radiance.\r\u2022\tOrtho Analytic DN Scene product \u2013 orthorectified, 4-band multispectral (BGR-NIR), uncalibrated digital number imagery. Radiometric corrections are applied to correct for any sensor artifacts.\r\u2022\tOrtho Pansharpened Multispectral Scene product \u2013 orthorectified, pansharpened, 4-band (BGR-NIR) imagery.\r\u2022\tOrtho Visual Scene product \u2013 orthorectified, pansharpened, colour-corrected (using a colour curve) 3-band (RGB) imagery.\rOrtho Scene Product Components and Format\rProduct Components and Format\t\u2022\tImage File (GeoTIFF format)\r\u2022\tMetadata File (JSON format)\r\u2022\tRational Polynomial Coefficients (Text File)\r\u2022\tUDM File (GeoTIFF format)\rImage Configurations\t\u2022\t1-band Panchromatic/Panchromatic DN Image (PAN)\r\u2022\t4-band Analytic/Analytic DN Image (Blue, Green, Red, NIR)\r\u2022\t4-band Pansharpened Multispectral Image (Blue, Green, Red, NIR)\r\u2022\t3-band Pansharpened (Visual) Image (Red, Green, Blue)\rOrthorectified Pixel Size\t50 cm\rProjection\tUTM WGS84\rGeolocation Accuracy\t<10 m RMSE\r\rThe SkySat Ortho Collect product is created by composing SkySat Ortho Scene products along an imaging strip into segments typically unifying ~60 individual SkySat Ortho Scenes, resulting in an image with a footprint of approximately 20 km x 5.9 km. The products may contain artifacts resulting from the composing process, particular offsets in areas of stitched source scenes.\r\rAs per ESA policy, very high-resolution imagery of conflict areas cannot be provided.",
"collection": "EOP:ESA:EARTH-ONLINE",
"type": "Collection",
"title": "SkySat Full Archive and New Tasking",
"version": "10.0",
"license": "various",
"assets": {
"metadata_iso_19139": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/SkySat.Full.Archive.and.New.Tasking?httpAccept=application/vnd.iso.19139%2Bxml",
"title": "ISO 19139 metadata",
"type": "application/vnd.iso.19139+xml"
},
"metadata_iso_19139_2": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/SkySat.Full.Archive.and.New.Tasking?httpAccept=application/vnd.iso.19139-2%2Bxml",
"title": "ISO 19139-2 metadata",
"type": "application/vnd.iso.19139-2+xml"
},
"metadata_dif_10": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/SkySat.Full.Archive.and.New.Tasking?httpAccept=application/dif10%2Bxml",
"title": "DIF-10 metadata",
"type": "application/dif10+xml"
},
"metadata_ogc_17_084r1": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/SkySat.Full.Archive.and.New.Tasking?mode=owc",
"title": "OGC 17-084r1 metadata",
"type": "application/geo+json;profile=\"http://www.opengis.net/spec/eoc-geojson/1.0\""
},
"metadata_iso_191115_3": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/SkySat.Full.Archive.and.New.Tasking?httpAccept=application/vnd.iso.19115-3%2Bxml",
"title": "ISO 19115-3 metadata",
"type": "application/vnd.iso.19115-3+xml"
}
},
"links": [
{
"rel": "self",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/SkySat.Full.Archive.and.New.Tasking",
"type": "application/json"
},
{
"rel": "root",
"href": "https://catalog.maap.eo.esa.int/catalogue/",
"type": "application/json",
"title": "MAAP Catalogue"
},
{
"rel": "parent",
"href": "https://catalog.maap.eo.esa.int/catalogue/",
"title": "collections",
"type": "application/json"
},
{
"rel": "license",
"href": "https://earth.esa.int/eogateway/documents/20142/1560778/ESA-Third-Party-Missions-Terms-and-Conditions.pdf",
"type": "application/pdf",
"title": "Specific restrictions to the use of data may apply for TPMs according to the terms of applicability valid for each mission. Utilisation of this data is subject to ESA's Earth Observation Terms and Conditions"
},
{
"rel": "describedby",
"href": "https://www.planet.com/products/#satellite-imagery",
"type": "text/html",
"title": "Planet products - Web site"
},
{
"rel": "describedby",
"href": "https://earth.esa.int/eogateway/documents/d/earth-online/planet-combined-imagery-product-specs",
"type": "application/pdf",
"title": "Planet Imagery Product Specifications - Product Specifications"
},
{
"rel": "describedby",
"href": "https://developers.planet.com/docs/apps/explorer/",
"type": "application/pdf",
"title": "Planet Explorer User Guide - User Manual"
},
{
"rel": "describedby",
"href": "https://earth.esa.int/eogateway/documents/20142/37627/SkySat-tasking-request-form.pdf/075f845e-13bd-36e2-4743-3aeb2053c61c",
"type": "application/pdf",
"title": "SkySat Tasking Request Form - Access guide"
},
{
"rel": "describedby",
"href": "https://earth.esa.int/eogateway/documents/20142/37627/Access-to-ESAs-Planet-Missions-Terms-of-Applicability.pdf/91fdeed4-2efe-1bed-8058-1dddb6e14fa6",
"type": "application/pdf",
"title": "Planet Terms of Applicability - Access guide"
},
{
"rel": "describedby",
"href": "https://earth.esa.int/eogateway/tools/sentinel-2-toolbox",
"type": "text/html",
"title": "SKYSAT Software Tools - Software Tools"
},
{
"rel": "describedby",
"href": "https://esatellus.service-now.com/csp?id=esa_simple_request",
"type": "text/html",
"title": "Get Help? - ESA Earth Observation User Services Portal"
},
{
"rel": "alternate",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/SkySat.Full.Archive.and.New.Tasking?httpAccept=application/ld%2Bjson;profile=https://schema.org",
"type": "application/ld+json;profile=\"https://schema.org\"",
"title": "JSON-LD (schema.org) metadata"
},
{
"rel": "alternate",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/SkySat.Full.Archive.and.New.Tasking?httpAccept=application/ld%2Bjson",
"type": "application/ld+json;profile=\"http://data.europa.eu/930/\"",
"title": "JSON-LD (GeoDCAT-AP) metadata"
}
],
"id": "SkySat.Full.Archive.and.New.Tasking",
"updated": "2025-04-24T10:30:42Z",
"stac_extensions": [
"https://stac-extensions.github.io/version/v1.2.0/schema.json",
"https://stac-extensions.github.io/processing/v1.2.0/schema.json"
],
"providers": [
{
"roles": [
"producer"
],
"name": "ESA/ESRIN",
"url": "https://www.esa.int"
},
{
"roles": [
"host"
],
"name": "ESA EO Catalogue"
}
],
"summaries": {
"processing:level": [
"L3",
"L1A",
"L1B"
],
"instruments": [
"SkySat Camera"
],
"platform": [
"SkySat"
]
}
},
{
"extent": {
"spatial": {
"bbox": [
[
-180,
-90,
180,
90
]
]
},
"temporal": {
"interval": [
[
"2016-06-22T00:00:00.000Z",
null
]
]
}
},
"stac_version": "1.0.0",
"keywords": [
"DIF10",
"EARTH SCIENCE>LAND SURFACE",
"EARTH SCIENCE>HUMAN DIMENSIONS>NATURAL HAZARDS",
"PlanetScope",
"Orthoimagery",
"Land Surface",
"Mapping and Cartography",
"Natural Hazards and Disaster Risk",
"VIS (0.40 - 0.75 \u00b5m)",
"NIR (0.75 - 1.30 \u00b5m)",
"Sun-synchronous",
"Very High Resolution - VHR (0 - 5m)",
"475 km (reference)",
"25 km",
"Imaging Spectrometers/Radiometers",
"PlanetScope Camera"
],
"description": "The PlanetScope Level 1B Basic Scene and Level 3B Ortho Scene full archive products are available as part of Planet imagery offer.\r\rThe Unrectified Asset: PlanetScope Basic Analytic Radiance (TOAR) product is a Scaled Top of Atmosphere Radiance (at sensor) and sensor corrected product, without correction for any geometric distortions inherent in the imaging processes and is not mapped to a cartographic projection. The imagery data is accompanied by Rational Polynomial Coefficients (RPCs) to enable orthorectification by the user.\rThis kind of product is designed for users with advanced image processing and geometric correction capabilities.\r\rBasic Scene Product Components and Format\rProduct Components\t\rImage File (GeoTIFF format)\rMetadata File (XML format)\rRational Polynomial Coefficients (XML format)\rThumbnail File (GeoTIFF format)\rUnusable Data Mask UDM File (GeoTIFF format)\rUsable Data Mask UDM2 File (GeoTIFF format)\rBands\t4-band multispectral image (blue, green, red, near-infrared) or 8-band (coastal-blue, blue, green I, green, yellow, red, Rededge, near-infrared)\rGround Sampling Distance\tApproximate, satellite altitude dependent\rDove-C: 3.0 m-4.1 m\rDove-R: 3.0 m-4.1 m\rSuperDove: 3.7 m-4.2 m\rAccuracy\t<10 m RMSE\r \r\rThe Rectified assets: The PlanetScope Ortho Scene product is radiometrically-, sensor- and geometrically- corrected and is projected to a UTM/WGS84 cartographic map projection. The geometric correction uses fine Digital Elevation Models (DEMs) with a post spacing of between 30 and 90 metres.\rOrtho Scene Product Components and Format\rProduct Components\t\rImage File (GeoTIFF format)\rMetadata File (XML format)\rThumbnail File (GeoTIFF format)\rUnusable Data Mask UDM File (GeoTIFF format)\rUsable Data Mask UDM2 File (GeoTIFF format)\rBands\t3-band natural colour (red, green, blue) or 4-band multispectral image (blue, green, red, near-infrared) or 8-band (coastal-blue, blue, green I, green, yellow, red, RedEdge, near-infrared)\rGround Sampling Distance\tApproximate, satellite altitude dependent\rDove-C: 3.0 m-4.1 m\rDove-R: 3.0 m-4.1 m\rSuperDove: 3.7 m-4.2 m\rProjection\tUTM WGS84\rAccuracy\t<10 m RMSE\r \r\rPlanetScope Ortho Scene product is available in the following: \r\rPlanetScope Visual Ortho Scene product is orthorectified and colour-corrected (using a colour curve) 3-band RGB Imagery. This correction attempts to optimise colours as seen by the human eye providing images as they would look if viewed from the perspective of the satellite.\rPlanetScope Surface Reflectance product is orthorectified, 4-band BGRN or 8-band Coastal Blue, Blue, Green I, Green, Yellow, Red, RedEdge, NIR Imagery with geometric, radiometric and corrected for surface reflection. This data is optimal for value-added image processing such as land cover classifications.\rPlanetScope Analytic Ortho Scene Surface Reflectance product is orthorectified, 4-band BGRN or 8-band Coastal Blue, Blue, Green I, Green, Yellow, Red, RedEdge, NIR Imagery with geometric, radiometric and calibrated to top of atmosphere radiance.\r\rAs per ESA policy, very high-resolution imagery of conflict areas cannot be provided.",
"collection": "EOP:ESA:EARTH-ONLINE",
"type": "Collection",
"title": "PlanetScope Full Archive",
"version": "8.0",
"license": "various",
"assets": {
"metadata_iso_19139": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/PlanetScope.Full.Archive?httpAccept=application/vnd.iso.19139%2Bxml",
"title": "ISO 19139 metadata",
"type": "application/vnd.iso.19139+xml"
},
"metadata_iso_19139_2": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/PlanetScope.Full.Archive?httpAccept=application/vnd.iso.19139-2%2Bxml",
"title": "ISO 19139-2 metadata",
"type": "application/vnd.iso.19139-2+xml"
},
"metadata_dif_10": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/PlanetScope.Full.Archive?httpAccept=application/dif10%2Bxml",
"title": "DIF-10 metadata",
"type": "application/dif10+xml"
},
"metadata_ogc_17_084r1": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/PlanetScope.Full.Archive?mode=owc",
"title": "OGC 17-084r1 metadata",
"type": "application/geo+json;profile=\"http://www.opengis.net/spec/eoc-geojson/1.0\""
},
"metadata_iso_191115_3": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/PlanetScope.Full.Archive?httpAccept=application/vnd.iso.19115-3%2Bxml",
"title": "ISO 19115-3 metadata",
"type": "application/vnd.iso.19115-3+xml"
}
},
"links": [
{
"rel": "self",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/PlanetScope.Full.Archive",
"type": "application/json"
},
{
"rel": "root",
"href": "https://catalog.maap.eo.esa.int/catalogue/",
"type": "application/json",
"title": "MAAP Catalogue"
},
{
"rel": "parent",
"href": "https://catalog.maap.eo.esa.int/catalogue/",
"title": "collections",
"type": "application/json"
},
{
"rel": "license",
"href": "http://inspire.ec.europa.eu/metadata-codelist/LimitationsOnPublicAccess/INSPIRE_Directive_Article13_1a",
"type": "application/x-binary",
"title": "Other Constraints"
},
{
"rel": "license",
"href": "https://earth.esa.int/eogateway/documents/20142/1560778/ESA-Third-Party-Missions-Terms-and-Conditions.pdf",
"type": "application/pdf",
"title": "Specific restrictions to the use of data may apply for TPMs according to the terms of applicability valid for each mission. Utilisation of this data is subject to ESA's Earth Observation Terms and Conditions"
},
{
"rel": "describedby",
"href": "https://www.planet.com/products/#satellite-imagery",
"type": "text/html",
"title": "Planet products - Catalogue"
},
{
"rel": "describedby",
"href": "https://earth.esa.int/eogateway/documents/d/earth-online/planet-combined-imagery-product-specs",
"type": "application/pdf",
"title": "Planet Imagery Product Specifications - Product Specifications"
},
{
"rel": "describedby",
"href": "https://developers.planet.com/docs/apps/explorer/",
"type": "application/pdf",
"title": "Planet Explorer User Guide - User Manual"
},
{
"rel": "describedby",
"href": "https://www.planet.com/explorer/",
"type": "text/html",
"title": "Planet Explorer Catalogue - Catalogue"
},
{
"rel": "describedby",
"href": "https://earth.esa.int/eogateway/documents/20142/37627/Access-to-ESAs-Planet-Missions-Terms-of-Applicability.pdf",
"type": "application/pdf",
"title": "Planet Terms of Applicability - Access Guide"
},
{
"rel": "describedby",
"href": "https://earth.esa.int/eogateway/tools/sentinel-2-toolbox",
"type": "text/html",
"title": "PLANETSCOPE Software Tools - Software Tools"
},
{
"rel": "describedby",
"href": "https://esatellus.service-now.com/csp?id=esa_simple_request",
"type": "text/html",
"title": "Get Help? - ESA Earth Observation User Services Portal"
},
{
"rel": "alternate",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/PlanetScope.Full.Archive?httpAccept=application/ld%2Bjson;profile=https://schema.org",
"type": "application/ld+json;profile=\"https://schema.org\"",
"title": "JSON-LD (schema.org) metadata"
},
{
"rel": "alternate",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/PlanetScope.Full.Archive?httpAccept=application/ld%2Bjson",
"type": "application/ld+json;profile=\"http://data.europa.eu/930/\"",
"title": "JSON-LD (GeoDCAT-AP) metadata"
}
],
"id": "PlanetScope.Full.Archive",
"updated": "2025-04-24T10:25:01Z",
"stac_extensions": [
"https://stac-extensions.github.io/version/v1.2.0/schema.json",
"https://stac-extensions.github.io/processing/v1.2.0/schema.json"
],
"providers": [
{
"roles": [
"producer"
],
"name": "ESA/ESRIN",
"url": "http://www.esa.int"
},
{
"roles": [
"host"
],
"name": "ESA EO Catalogue"
}
],
"summaries": {
"processing:level": [
"L1B",
"L3A",
"L3B"
],
"instruments": [
"PlanetScope Camera"
],
"platform": [
"PlanetScope"
]
}
},
{
"extent": {
"spatial": {
"bbox": [
[
-180,
-90,
180,
90
]
]
},
"temporal": {
"interval": [
[
"2002-08-02T00:00:00.000Z",
"2012-04-08T00:00:00.000Z"
]
]
}
},
"stac_version": "1.0.0",
"sci:doi": "10.5270/EN1-42e99a2",
"keywords": [
"DIF10",
"EARTH SCIENCE>ATMOSPHERE",
"EARTH SCIENCE>ATMOSPHERE>ATMOSPHERIC CHEMISTRY",
"EARTH SCIENCE>ATMOSPHERE>ATMOSPHERIC RADIATION",
"EARTH SCIENCE>CLIMATE INDICATORS",
"EARTH SCIENCE>CLIMATE INDICATORS>ATMOSPHERIC/OCEAN INDICATORS",
"EARTH SCIENCE>OCEANS",
"ENVISAT",
"SCIAMACHY",
"Orthoimagery",
"Atmosphere",
"Atmospheric Chemistry",
"Atmospheric Radiation",
"Climate",
"Atmospheric Indicators",
"Oceans",
"Sun-synchronous",
"800 km",
"5 - 1150 km",
"Spectrometers",
"Envisat"
],
"description": "This Envisat SCIAMACHY Level 2 Total column densities and stratospheric profiles v7.1 dataset is generated from the full mission reprocessing campaign completed in 2023 under the _$$ESA FDR4ATMOS project$$ https://atmos.eoc.dlr.de/FDR4ATMOS/ . \rIt provides atmospheric columnar distributions and stratospheric profiles for various trace gases based on the Level 1b version 10 products.\r\rThis SCIAMACHY Level 2 dataset contains total column densities of O3, NO2, OClO, H2O, SO2, BrO, CO, HCHO, CHOCHO and CH4 retrieved from Nadir measurements. Additionally, cloud parameters (fractional coverage, top height, optical thickness) and an aerosol absorption indicator are enclosed. Stratospheric profiles of O3, NO2, and BrO are derived from limb measurements, along with flagging information for different cloud-types. Tropospheric NO2 and BrO columns are retrieved combining limb and nadir measurements. \r\rThis SCIAMACHY Level 2 dataset version 7.1 replaces the previous version 6.01. Users are strongly encouraged to make use of the new datasets for optimal results.\r\rFor limb O3 profiles, a separate product derived from the previous Version 6 processor is provided distinctly -> _$$SCIAMACHY Level 2 - Limb Ozone [SCI_LIMBO3]$$ https://earth.esa.int/eogateway/catalog/envisat-sciamachy-ozone-stratospheric-profiles-sci_limbo3 . This is because the V7.1 limb ozone data is unsuitable for long-term change studies due to its divergent behavior from earlier processor versions, particularly from 2009 onwards. This divergence stems from residual deficiencies in the Level 1, resulting in a vertical oscillating pattern in the drift and bias profiles. In contrast, Version 6 limb ozone data does not exhibit these oscillations in bias and drift. Further details on this issue can be found in the _$$latest README$$ https://earth.esa.int/documents/d/earth-online/rmf_0014_sci_____2p_l2v7-1 file.\rThe new products are conveniently formatted in NetCDF. Free standard tools, such as _$$Panoply$$ https://www.giss.nasa.gov/tools/panoply/ , can be used to read NetCDF data. \rPanoply is sourced and updated by external entities. For further details, please consult our _$$Terms and Conditions page$$ https://earth.esa.int/eogateway/terms-and-conditions .\r\rPlease refer to the _$$README$$ https://earth.esa.int/documents/d/earth-online/rmf_0014_sci_____2p_l2v7-1 file for essential guidance before using the data.",
"sci:citation": "European Space Agency, 2024, Envisat SCIAMACHY Level 2 [SCI_____2P]. Version 7.1.",
"collection": "EOP:ESA:EARTH-ONLINE",
"type": "Collection",
"title": "Envisat SCIAMACHY Level 2 [SCI_____2P]",
"version": "2.0",
"license": "various",
"assets": {
"metadata_iso_19139": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/SCIAMACHYLevel2?httpAccept=application/vnd.iso.19139%2Bxml",
"title": "ISO 19139 metadata",
"type": "application/vnd.iso.19139+xml"
},
"metadata_iso_19139_2": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/SCIAMACHYLevel2?httpAccept=application/vnd.iso.19139-2%2Bxml",
"title": "ISO 19139-2 metadata",
"type": "application/vnd.iso.19139-2+xml"
},
"metadata_dif_10": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/SCIAMACHYLevel2?httpAccept=application/dif10%2Bxml",
"title": "DIF-10 metadata",
"type": "application/dif10+xml"
},
"metadata_ogc_17_084r1": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/SCIAMACHYLevel2?mode=owc",
"title": "OGC 17-084r1 metadata",
"type": "application/geo+json;profile=\"http://www.opengis.net/spec/eoc-geojson/1.0\""
},
"metadata_iso_191115_3": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/SCIAMACHYLevel2?httpAccept=application/vnd.iso.19115-3%2Bxml",
"title": "ISO 19115-3 metadata",
"type": "application/vnd.iso.19115-3+xml"
}
},
"links": [
{
"rel": "cite-as",
"href": "https://doi.org/10.5270/EN1-42e99a2",
"type": "text/html",
"title": "Landing page"
},
{
"rel": "self",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/SCIAMACHYLevel2",
"type": "application/json"
},
{
"rel": "root",
"href": "https://catalog.maap.eo.esa.int/catalogue/",
"type": "application/json",
"title": "MAAP Catalogue"
},
{
"rel": "parent",
"href": "https://catalog.maap.eo.esa.int/catalogue/",
"title": "collections",
"type": "application/json"
},
{
"rel": "license",
"href": "http://inspire.ec.europa.eu/metadata-codelist/LimitationsOnPublicAccess/INSPIRE_Directive_Article13_1a",
"type": "application/x-binary",
"title": "Other Constraints"
},
{
"rel": "license",
"href": "https://earth.esa.int/eogateway/documents/20142/1564626/Terms-and-Conditions-for-the-use-of-ESA-Data.pdf",
"type": "application/pdf",
"title": "Utilisation of this data is subject to ESA's Earth Observation Terms and Conditions."
},
{
"rel": "alternate",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/SCIAMACHYLevel2?httpAccept=application/ld%2Bjson;profile=https://schema.org",
"type": "application/ld+json;profile=\"https://schema.org\"",
"title": "JSON-LD (schema.org) metadata"
},
{
"rel": "alternate",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/SCIAMACHYLevel2?httpAccept=application/ld%2Bjson",
"type": "application/ld+json;profile=\"http://data.europa.eu/930/\"",
"title": "JSON-LD (GeoDCAT-AP) metadata"
}
],
"id": "SCIAMACHYLevel2",
"updated": "2025-04-24T10:24:02Z",
"stac_extensions": [
"https://stac-extensions.github.io/version/v1.2.0/schema.json",
"https://stac-extensions.github.io/processing/v1.2.0/schema.json",
"https://stac-extensions.github.io/scientific/v1.0.0/schema.json"
],
"providers": [
{
"roles": [
"producer"
],
"name": "ESA/ESRIN",
"url": "https://earth.esa.int"
},
{
"roles": [
"host"
],
"name": "ESA EO Catalogue"
}
],
"summaries": {
"processing:level": [
"L2"
],
"instruments": [
"SCIAMACHY"
],
"platform": [
"Envisat"
]
}
},
{
"extent": {
"spatial": {
"bbox": [
[
-180,
-90,
180,
90
]
]
},
"temporal": {
"interval": [
[
"1995-07-01T00:00:00.000Z",
"2015-12-31T00:00:00.000Z"
]
]
}
},
"stac_version": "1.0.0",
"sci:doi": "10.57780/esa-1268efe",
"keywords": [
"DIF10",
"EARTH SCIENCE>ATMOSPHERE",
"EARTH SCIENCE>ATMOSPHERE>ATMOSPHERIC CHEMISTRY",
"EARTH SCIENCE>ATMOSPHERE>ATMOSPHERIC RADIATION",
"EARTH SCIENCE>ATMOSPHERE>ATMOSPHERIC TEMPERATURE",
"EARTH SCIENCE>CLIMATE INDICATORS",
"ERS-2",
"GOME",
"Orthoimagery",
"Atmosphere",
"Atmospheric Chemistry",
"Atmospheric Radiation",
"Atmospheric Temperature",
"Climate",
"Sun-synchronous",
"GDP 5.0",
"782 to 785 km",
"5 km",
"Spectrometers"
],
"description": "The GOME Total Column Water Vapour (TCWV) Climate product was generated by the Max Planck Institute for Chemistry (MPIC), and the German Aerospace Center (DLR) within the ESA GOME-Evolution project. It is a Level 3 type product containing homogenized time-series of the global distribution of TCWV spanning over more than two decades (1995-2015). The data is provided as single netCDF file, containing monthly mean TCWV (units kg/m2) with 1-degree resolution, and is based on measurements from the satellite instruments ERS-2 GOME, Envisat SCIAMACHY, and MetOp-A GOME-2. Details are available in the paper by Beirle et al, 2018,. Please also consult the GOME TCWV Product Quality Readme file before using the data. (https://earth.esa.int/eogateway/documents/20142/37627/GOME-TCWV-Product-sQuality-Readme-File.pdf)",
"sci:citation": "European Space Agency, 2018, GOME Total Column Water Vapour Climate product. Version 2.2.",
"collection": "EOP:ESA:EARTH-ONLINE",
"type": "Collection",
"title": "GOME Total Column Water Vapour Climate product",
"version": "4.0",
"license": "various",
"assets": {
"metadata_iso_19139": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/GOME_Evl_ClimateProd_TCWV?httpAccept=application/vnd.iso.19139%2Bxml",
"title": "ISO 19139 metadata",
"type": "application/vnd.iso.19139+xml"
},
"metadata_iso_19139_2": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/GOME_Evl_ClimateProd_TCWV?httpAccept=application/vnd.iso.19139-2%2Bxml",
"title": "ISO 19139-2 metadata",
"type": "application/vnd.iso.19139-2+xml"
},
"metadata_dif_10": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/GOME_Evl_ClimateProd_TCWV?httpAccept=application/dif10%2Bxml",
"title": "DIF-10 metadata",
"type": "application/dif10+xml"
},
"metadata_ogc_17_084r1": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/GOME_Evl_ClimateProd_TCWV?mode=owc",
"title": "OGC 17-084r1 metadata",
"type": "application/geo+json;profile=\"http://www.opengis.net/spec/eoc-geojson/1.0\""
},
"metadata_iso_191115_3": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/GOME_Evl_ClimateProd_TCWV?httpAccept=application/vnd.iso.19115-3%2Bxml",
"title": "ISO 19115-3 metadata",
"type": "application/vnd.iso.19115-3+xml"
}
},
"links": [
{
"rel": "cite-as",
"href": "https://doi.org/10.57780/esa-1268efe",
"type": "text/html",
"title": "Landing page"
},
{
"rel": "self",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/GOME_Evl_ClimateProd_TCWV",
"type": "application/json"
},
{
"rel": "root",
"href": "https://catalog.maap.eo.esa.int/catalogue/",
"type": "application/json",
"title": "MAAP Catalogue"
},
{
"rel": "parent",
"href": "https://catalog.maap.eo.esa.int/catalogue/",
"title": "collections",
"type": "application/json"
},
{
"rel": "license",
"href": "http://inspire.ec.europa.eu/metadata-codelist/LimitationsOnPublicAccess/INSPIRE_Directive_Article13_1a",
"type": "application/x-binary",
"title": "Other Constraints"
},
{
"rel": "license",
"href": "https://earth.esa.int/eogateway/documents/20142/1564626/Terms-and-Conditions-for-the-use-of-ESA-Data.pdf",
"type": "application/pdf",
"title": "Utilisation of this data is subject to ESA's Earth Observation Terms and Conditions"
},
{
"rel": "describedby",
"href": "https://earth.esa.int/eogateway/documents/20142/37627/GOME-Data-Processor-DLFE-638-PSD-4B.pdf",
"type": "application/pdf",
"title": "GOME TCWV Climate product Technical Documents - Product Specifications"
},
{
"rel": "describedby",
"href": "https://earth.esa.int/eogateway/documents/20142/37627/GOME-Level1-to-2-Algorithms-Description-DLFE-841-GDP-L12.pdf",
"type": "application/pdf",
"title": "GOME Level 1 to 2 Algorithms Description - Technical Note"
},
{
"rel": "describedby",
"href": "https://earth.esa.int/eogateway/documents/20142/37627/Algorithm-Theoretical-Basis-Document-for_GOME-Total-Column-Densities-of-Ozone-And-Nitrogen-Dioxid.pdf",
"type": "application/pdf",
"title": "Algorithm Theoretical Basis Document for GOME Total Column Densities of Ozone and Nitrogen Dioxide - Technical Note"
},
{
"rel": "describedby",
"href": "https://earth.esa.int/eogateway/documents/20142/37627/GOME-Disclaimer-2004-DLFE-640.pdf",
"type": "application/pdf",
"title": "Disclaimer for GOME Level-1 and Level-2 Data Products - Technical Note"
},
{
"rel": "describedby",
"href": "https://earth.esa.int/eogateway/documents/20142/37627/GOME-Software-Databases-For-Level1-to-2-Processing-DLFE-843-GDP-DB.pdf",
"type": "application/pdf",
"title": "GOME Software Databases for Level 1 to 2 Processing - Technical Note"
},
{
"rel": "describedby",
"href": "https://earth.esa.int/eogateway/documents/20142/37627/Data-Validation-Report-for-ERS-2-GOME-Data-Processor-upgrade-to-version4.0-DLFE-641.pdf",
"type": "application/pdf",
"title": "Delta Validation Report for ERS-2 GOME Data Processor upgrade toversion 4.0 - Technical Note"
},
{
"rel": "describedby",
"href": "https://earth.esa.int/eogateway/documents/20142/37627/GOME-Data-Processor-DLFE-656-DLR-GOME-SUM-gdp01-ex-4.pdf",
"type": "application/pdf",
"title": "GOME Data Processor Extraction Software - User Manual"
},
{
"rel": "describedby",
"href": "https://earth.esa.int/eogateway/search?category=Document+library&filter=gome",
"type": "text/html",
"title": "More GOME Documents - Other"
},
{
"rel": "describedby",
"href": "https://earth.esa.int/eogateway/instruments/gome/products-information",
"type": "text/html",
"title": "Documentation related to GOME data quality - Other"
},
{
"rel": "describedby",
"href": "https://esatellus.service-now.com/csp?id=esa_simple_request",
"type": "text/html",
"title": "Get Help? - ESA Earth Observation User Services Portal"
},
{
"rel": "alternate",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/GOME_Evl_ClimateProd_TCWV?httpAccept=application/ld%2Bjson;profile=https://schema.org",
"type": "application/ld+json;profile=\"https://schema.org\"",
"title": "JSON-LD (schema.org) metadata"
},
{
"rel": "alternate",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/GOME_Evl_ClimateProd_TCWV?httpAccept=application/ld%2Bjson",
"type": "application/ld+json;profile=\"http://data.europa.eu/930/\"",
"title": "JSON-LD (GeoDCAT-AP) metadata"
}
],
"id": "GOME_Evl_ClimateProd_TCWV",
"updated": "2025-04-24T10:24:03Z",
"stac_extensions": [
"https://stac-extensions.github.io/version/v1.2.0/schema.json",
"https://stac-extensions.github.io/processing/v1.2.0/schema.json",
"https://stac-extensions.github.io/scientific/v1.0.0/schema.json"
],
"providers": [
{
"roles": [
"producer"
],
"name": "ESA/ESRIN",
"url": "http://www.esa.int"
},
{
"roles": [
"host"
],
"name": "ESA EO Catalogue"
}
],
"summaries": {
"processing:level": [
"L2",
"L3"
],
"instruments": [
"GOME"
],
"platform": [
"ERS-2"
]
}
},
{
"extent": {
"spatial": {
"bbox": [
[
-180,
-90,
180,
90
]
]
},
"temporal": {
"interval": [
[
"2009-08-01T00:00:00.000Z",
null
]
]
}
},
"stac_version": "1.0.0",
"keywords": [
"DIF10",
"EARTH SCIENCE>BIOSPHERE>VEGETATION",
"EARTH SCIENCE>AGRICULTURE",
"EARTH SCIENCE>BIOSPHERE>ECOSYSTEMS>TERRESTRIAL ECOSYSTEMS>FORESTS",
"Deimos-1",
"SLIM-6",
"Orthoimagery",
"Vegetation",
"Agriculture",
"Forestry",
"VIS (0.40 - 0.75 \u00c2\u00b5m)",
"NIR (0.75 - 1.30 \u00c2\u00b5m)",
"Sun-synchronous",
"Medium Resolution - MR (20 - 500 m)",
"663 km",
"625 km",
"Cameras",
"GEOSAT-1",
"SLIM6"
],
"description": "GEOSAT-1 full archive and new tasking products are available at 22 m resolution in two processing levels.\r\rL1R (Basic Geopositioned): All 3 spectral channels combined into a band-registered image. Geopositioned product based on sensor model. Coefficients derived from satellite orientation parameters coming from telemetry and appended to metadata\rL1T (L1R orthorectified): Orthorectified to sub-pixel accuracy (10 metres RMS error approximately) with respect to Landsat ETM+ reference data and hole-filled seamless SRTM DEM data V3, 2006 (90 m)\rGEOSAT-1 products are provided in DIMAP format. The image products are delivered in the TIFF and GeoTIFF image formats by default. All products can be provided in False Colours (R,G,NIR) or Natural Colours (R, G, Synthetic Blue).\r\rAll details about the data provision, data access conditions and quota assignment procedure are described into the Terms of Applicability available in Resources section.\r\rThe list of available archived data can be retrieved using the GEOSAT catalogue (https://catalogue.geosat.space/cscda/extcat/)\rAll details about the data provision, data access conditions and quota assignment procedure are described into the Terms of Applicability available in Resources section. \r\rThe list of available archived data can be retrieved using the Deimos catalogue (http://www.deimos-imaging.com/catalogue).",
"collection": "EOP:ESA:EARTH-ONLINE",
"type": "Collection",
"title": "GEOSAT-1 full archive and tasking",
"version": "6.0",
"license": "various",
"assets": {
"metadata_iso_19139": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/Geosat-1.Full.archive.and.tasking?httpAccept=application/vnd.iso.19139%2Bxml",
"title": "ISO 19139 metadata",
"type": "application/vnd.iso.19139+xml"
},
"metadata_iso_19139_2": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/Geosat-1.Full.archive.and.tasking?httpAccept=application/vnd.iso.19139-2%2Bxml",
"title": "ISO 19139-2 metadata",
"type": "application/vnd.iso.19139-2+xml"
},
"metadata_dif_10": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/Geosat-1.Full.archive.and.tasking?httpAccept=application/dif10%2Bxml",
"title": "DIF-10 metadata",
"type": "application/dif10+xml"
},
"metadata_ogc_17_084r1": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/Geosat-1.Full.archive.and.tasking?mode=owc",
"title": "OGC 17-084r1 metadata",
"type": "application/geo+json;profile=\"http://www.opengis.net/spec/eoc-geojson/1.0\""
},
"metadata_iso_191115_3": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/Geosat-1.Full.archive.and.tasking?httpAccept=application/vnd.iso.19115-3%2Bxml",
"title": "ISO 19115-3 metadata",
"type": "application/vnd.iso.19115-3+xml"
}
},
"links": [
{
"rel": "self",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/Geosat-1.Full.archive.and.tasking",
"type": "application/json"
},
{
"rel": "root",
"href": "https://catalog.maap.eo.esa.int/catalogue/",
"type": "application/json",
"title": "MAAP Catalogue"
},
{
"rel": "parent",
"href": "https://catalog.maap.eo.esa.int/catalogue/",
"title": "collections",
"type": "application/json"
},
{
"rel": "license",
"href": "http://inspire.ec.europa.eu/metadata-codelist/LimitationsOnPublicAccess/INSPIRE_Directive_Article13_1a",
"type": "application/x-binary",
"title": "Other Constraints"
},
{
"rel": "license",
"href": "https://earth.esa.int/eogateway/documents/20142/1560778/ESA-Third-Party-Missions-Terms-and-Conditions.pdf",
"type": "application/pdf",
"title": "Specific restrictions to the use of data may apply for TPMs according to the terms of applicability valid for each mission. Utilisation of this data is subject to ESA's Earth Observation Terms and Conditions"
},
{
"rel": "describedby",
"href": "https://earth.esa.int/eogateway/search?text=GEOSAT-1-Imagery-User-Guide.pdf",
"type": "application/pdf",
"title": "Geosat 1-2 Software Tools - Product Guide"
},
{
"rel": "alternate",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/Geosat-1.Full.archive.and.tasking?httpAccept=application/ld%2Bjson;profile=https://schema.org",
"type": "application/ld+json;profile=\"https://schema.org\"",
"title": "JSON-LD (schema.org) metadata"
},
{
"rel": "alternate",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/Geosat-1.Full.archive.and.tasking?httpAccept=application/ld%2Bjson",
"type": "application/ld+json;profile=\"http://data.europa.eu/930/\"",
"title": "JSON-LD (GeoDCAT-AP) metadata"
}
],
"id": "Geosat-1.Full.archive.and.tasking",
"updated": "2025-04-24T10:24:04Z",
"stac_extensions": [
"https://stac-extensions.github.io/version/v1.2.0/schema.json",
"https://stac-extensions.github.io/processing/v1.2.0/schema.json"
],
"providers": [
{
"roles": [
"producer"
],
"name": "ESA/ESRIN",
"url": "https://earth.esa.int"
},
{
"roles": [
"host"
],
"name": "ESA EO Catalogue"
}
],
"summaries": {
"processing:level": [
"L1"
],
"instruments": [
"SLIM6"
],
"platform": [
"GEOSAT-1"
]
}
}
],
"numberReturned": 10,
"links": [
{
"rel": "self",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections",
"type": "application/json",
"title": "This document"
},
{
"rel": "next",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections?startRecord=11",
"type": "application/json",
"title": "Next results"
},
{
"rel": "http://www.opengis.net/def/rel/ogc/1.0/queryables",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/queryables",
"type": "application/schema+json",
"title": "Queryables for collection search"
},
{
"rel": "alternate",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections?httpAccept=application/atom%2Bxml",
"type": "application/atom+xml"
},
{
"rel": "alternate",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections?httpAccept=application/geo%2Bjson;profile=http://www.opengis.net/spec/ogcapi-features-1/1.0",
"type": "application/geo+json;profile=\"http://www.opengis.net/spec/ogcapi-features-1/1.0\""
},
{
"rel": "alternate",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections?mode=owc",
"type": "application/geo+json;profile=\"http://www.opengis.net/spec/os-geojson/1.0\""
}
],
"numberMatched": 423
}
The link with rel=”http://www.opengis.net/def/rel/ogc/1.0/queryables” provides access to the list of filter criteria available for collection search. It returns a Queryables object in JSON Schema format.
from jsonpath_ng.ext import parse
expression = parse("$.links[?(@.rel == 'http://www.opengis.net/def/rel/ogc/1.0/queryables')].href")
r = expression.find(data)
r[0].value
'https://catalog.maap.eo.esa.int/catalogue/collections/queryables'
# Get queryables response and list parameters alphabetically.
response = requests.get(r[0].value)
data = json.loads(response.text)
df = pd.DataFrame(data['properties'].items(),columns=['key','value'])
df['type'] = df.apply(lambda row : row['value']['type'], axis = 1)
df
| key | value | type | |
|---|---|---|---|
| 0 | processing:level | {'description': 'The processing level applied ... | string |
| 1 | sci:doi | {'description': 'Digital Object Identifier ide... | string |
| 2 | format | {'description': 'Product encoding formats', 't... | string |
| 3 | description | {'description': 'Free text search term', 'titl... | string |
| 4 | externalId | {'description': 'Search by external identifier... | string |
| 5 | collection | {'description': 'The parent of the entry in a ... | string |
| 6 | title | {'description': 'A name given to the resource'... | string |
| 7 | otherConstraint | {'description': 'Other restrictions and legal ... | string |
| 8 | platform | {'description': 'The platform short name', 'ti... | string |
| 9 | datetime | {'description': 'Temporal interval to search',... | string |
| 10 | instruments | {'description': 'The instrument (e.g. MERIS, A... | string |
| 11 | useLimitation | {'description': 'A string identifying informin... | string |
| 12 | offering | {'description': 'Related service offering', 't... | string |
| 13 | id | {'description': 'Item identifier', 'title': 'I... | string |
| 14 | updated | {'format': 'date-time', 'description': 'The da... | string |
| 15 | providers | {'description': 'The name of the organization ... | string |
| 16 | classifiedAs | {'format': 'uri', 'description': 'Keyword URI ... | string |
# Get queryables response and list parameters alphabetically.
response = requests.get(r[0].value)
data = json.loads(response.text)
df = pd.DataFrame(data['properties'].items(),columns=['key','value'])
df['type'] = df.apply(lambda row : row['value']['type'], axis = 1)
df['format'] = df.apply(lambda row : row['value']['format'] if 'format' in row['value'] else '-' , axis = 1)
df.drop('value',axis=1).sort_values(by=['key'])
| key | type | format | |
|---|---|---|---|
| 16 | classifiedAs | string | uri |
| 5 | collection | string | - |
| 9 | datetime | string | - |
| 3 | description | string | - |
| 4 | externalId | string | - |
| 2 | format | string | - |
| 13 | id | string | - |
| 10 | instruments | string | - |
| 12 | offering | string | - |
| 7 | otherConstraint | string | - |
| 8 | platform | string | - |
| 0 | processing:level | string | - |
| 15 | providers | string | - |
| 1 | sci:doi | string | - |
| 6 | title | string | - |
| 14 | updated | string | date-time |
| 11 | useLimitation | string | - |
URL_LANDING_PAGE
'https://catalog.maap.eo.esa.int/catalogue/'
The STAC API Collection Search Extension [RD25] allows retrieving the collections at the /collections endpoint.
List available collections using curl:
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections
Search by free text#
Example: 1.1
Search collections by free text (
q).
value = 'Biomass'
from pystac_client import Client
api = Client.open(URL_LANDING_PAGE)
results = api.collection_search(
q = value
)
print(f"{results.matched()} collections found.")
35 collections found.
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections \
--data-urlencode "q=Biomass"
data = results.collection_list_as_dict()
df = pd.json_normalize(data, record_path=['collections'])
df[['id', 'keywords']]
| id | keywords | |
|---|---|---|
| 0 | C2734289572-ORNL_CLOUD | NaN |
| 1 | BiomassSimulated | [EARTH SCIENCE > BIOSPHERE > ECOSYSTEMS > TERR... |
| 2 | BiomassLevel1b | [EARTH SCIENCE > BIOSPHERE > ECOSYSTEMS > TERR... |
| 3 | BiomassAuxRest | [EARTH SCIENCE > BIOSPHERE > ECOSYSTEMS > TERR... |
| 4 | BiomassCalVal10 | [Afforestation/Reforestation, EARTH SCIENCE > ... |
| 5 | BiomassLevel2aIOC | [EARTH SCIENCE > BIOSPHERE > ECOSYSTEMS > TERR... |
| 6 | sentinel-3-olci-2-lfr-ntc | [Sentinel, Copernicus, ESA, Satellite, Global,... |
| 7 | sentinel-3-olci-2-lfr-nrt | [Sentinel, Copernicus, ESA, Satellite, Global,... |
| 8 | C3495301468-ORNL_CLOUD | NaN |
| 9 | C2756302505-ORNL_CLOUD | NaN |
| 10 | C3043630107-ORNL_CLOUD | NaN |
| 11 | C2813390180-ORNL_CLOUD | NaN |
| 12 | C3495301474-ORNL_CLOUD | NaN |
| 13 | BiomassLevel2b | [EARTH SCIENCE > BIOSPHERE > ECOSYSTEMS > TERR... |
| 14 | BiomassLevel1a | [EARTH SCIENCE > BIOSPHERE > ECOSYSTEMS > TERR... |
| 15 | CCIBiomassV5.01 | [ESA, CCI, orthoimagery, EARTH SCIENCE>BIOSPHE... |
| 16 | BiomassLevel2bIOC | [EARTH SCIENCE > BIOSPHERE > ECOSYSTEMS > TERR... |
| 17 | BiomassAuxIOC | [EARTH SCIENCE > BIOSPHERE > ECOSYSTEMS > TERR... |
| 18 | BiomassLevel1aIOC_TEST | [EARTH SCIENCE > BIOSPHERE > ECOSYSTEMS > TERR... |
| 19 | BiomassLevel0IOC | [EARTH SCIENCE > BIOSPHERE > ECOSYSTEMS > TERR... |
| 20 | BiomassLevel0 | [EARTH SCIENCE > BIOSPHERE > ECOSYSTEMS > TERR... |
| 21 | sentinel-3-olci-2-lrr-ntc | [Sentinel, Copernicus, ESA, Satellite, Global,... |
| 22 | C3327359101-FEDEO | NaN |
| 23 | C3327359400-FEDEO | NaN |
| 24 | C2883623174-ORNL_CLOUD | NaN |
| 25 | C2792577683-ORNL_CLOUD | NaN |
| 26 | BiomassLevel2a | [EARTH SCIENCE > BIOSPHERE > ECOSYSTEMS > TERR... |
| 27 | BiomassLevel1aIOC | [EARTH SCIENCE > BIOSPHERE > ECOSYSTEMS > TERR... |
| 28 | BiomassLevel1bIOC | [EARTH SCIENCE > BIOSPHERE > ECOSYSTEMS > TERR... |
| 29 | C2237824918-ORNL_CLOUD | NaN |
| 30 | C3495301460-ORNL_CLOUD | NaN |
| 31 | BiomassLevel1cIOC | [EARTH SCIENCE > BIOSPHERE > ECOSYSTEMS > TERR... |
| 32 | BiomassAux | [EARTH SCIENCE > BIOSPHERE > ECOSYSTEMS > TERR... |
| 33 | BiomassLevel1c | [EARTH SCIENCE > BIOSPHERE > ECOSYSTEMS > TERR... |
| 34 | sentinel-3-olci-2-lrr-nrt | [Sentinel, Copernicus, ESA, Satellite, Global,... |
Search by title#
Example: 1.2
Search collections by title (
filterandtitle).
# CQL2 Basic only supports "=" operator for strings, thus complete title has to be provided.
# Future versions may support "Advanced Comparison Operators".
value = "Biomass Level 1A"
results = api.collection_search(
filter="title='" + value + "'"
)
print(f"{results.matched()} collections found.")
1 collections found.
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections \
--data-urlencode "filter=title='Biomass Level 1A'" \
--data-urlencode "filter-lang=cql2-text"
data = results.collection_list_as_dict()
df = pd.json_normalize(data, record_path=['collections'])
df[['id', 'title']]
| id | title | |
|---|---|---|
| 0 | BiomassLevel1a | Biomass Level 1A |
data['collections'][0]
{'extent': {'spatial': {'bbox': [[-180, -90, 180, 90]]},
'temporal': {'interval': [['2024-07-31T00:00:00.000Z', None]]}},
'stac_version': '1.0.0',
'keywords': ['EARTH SCIENCE > BIOSPHERE > ECOSYSTEMS > TERRESTRIAL ECOSYSTEMS',
'EARTH SCIENCE > AGRICULTURE > FOREST SCIENCE > AFFORESTATION/REFORESTATION',
'Forestry',
'Afforestation/Reforestation',
'Imaging Radars',
'Biomass',
'P-SAR',
'ESA_open_and_free',
'PUBLIC'],
'created': '2023-02-16T00:00:00.00Z',
'description': 'Biomass Level 1A Products',
'collection': 'EOP:ESA:MAAP',
'type': 'Collection',
'title': 'Biomass Level 1A',
'themes': [{'concepts': [{'id': 'PUBLIC',
'url': 'http://publications.europa.eu/resource/authority/access-right/PUBLIC'}],
'scheme': 'http://publications.europa.eu/resource/authority/access-right'},
{'concepts': [{'id': 'ESA_open_and_free',
'url': 'https://maap.eo.esa.int/metadata-codelist/access-right/ESA_open_and_free'}],
'scheme': 'https://maap.eo.esa.int/metadata-codelist/access-right'}],
'license': 'various',
'assets': {'metadata_iso_19139': {'roles': ['metadata'],
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a?httpAccept=application/vnd.iso.19139%2Bxml',
'title': 'ISO 19139 metadata',
'type': 'application/vnd.iso.19139+xml'},
'metadata_iso_19139_2': {'roles': ['metadata'],
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a?httpAccept=application/vnd.iso.19139-2%2Bxml',
'title': 'ISO 19139-2 metadata',
'type': 'application/vnd.iso.19139-2+xml'},
'metadata_dif_10': {'roles': ['metadata'],
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a?httpAccept=application/dif10%2Bxml',
'title': 'DIF-10 metadata',
'type': 'application/dif10+xml'},
'metadata_ogc_17_084r1': {'roles': ['metadata'],
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a?mode=owc',
'title': 'OGC 17-084r1 metadata',
'type': 'application/geo+json;profile="http://www.opengis.net/spec/eoc-geojson/1.0"'},
'metadata_iso_191115_3': {'roles': ['metadata'],
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a?httpAccept=application/vnd.iso.19115-3%2Bxml',
'title': 'ISO 19115-3 metadata',
'type': 'application/vnd.iso.19115-3+xml'}},
'links': [{'rel': 'self',
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a',
'type': 'application/json'},
{'rel': 'root',
'href': 'https://catalog.maap.eo.esa.int/catalogue/',
'type': 'application/json',
'title': 'MAAP Catalogue'},
{'rel': 'parent',
'href': 'https://catalog.maap.eo.esa.int/catalogue/',
'title': 'collections',
'type': 'application/json'},
{'rel': 'items',
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/items',
'type': 'application/geo+json',
'title': 'Datasets search for the series BiomassLevel1a'},
{'rel': 'http://www.opengis.net/def/rel/ogc/1.0/queryables',
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/queryables',
'type': 'application/schema+json',
'title': 'Queryables for BiomassLevel1a'},
{'rel': 'license',
'href': 'https://earth.esa.int/eogateway/documents/d/earth-online/esa-eo-data-policy',
'type': 'application/x-binary',
'title': "Access to and use of BIOMASS products are governed by the ESA's Data Policy and require acceptance of the specific Terms & Conditions. By accessing Biomass products, users inherently acknowledge and agree to these terms."},
{'rel': 'search',
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/api',
'type': 'application/opensearchdescription+xml',
'title': 'OpenSearch Description Document'},
{'rel': 'describedby',
'href': 'https://esatellus.service-now.com/csp?id=esa_simple_request',
'title': 'Get Help? - ESA TellUS Help Page'},
{'rel': 'alternate',
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a?httpAccept=application/ld%2Bjson;profile=https://schema.org',
'type': 'application/ld+json;profile="https://schema.org"',
'title': 'JSON-LD (schema.org) metadata'},
{'rel': 'alternate',
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a?httpAccept=application/ld%2Bjson',
'type': 'application/ld+json;profile="http://data.europa.eu/930/"',
'title': 'JSON-LD (GeoDCAT-AP) metadata'}],
'id': 'BiomassLevel1a',
'updated': '2023-02-16T00:00:00.00Z',
'stac_extensions': ['https://stac-extensions.github.io/processing/v1.2.0/schema.json',
'https://stac-extensions.github.io/themes/v1.0.0/schema.json',
'https://stac-extensions.github.io/sar/v1.3.0/schema.json'],
'providers': [{'roles': ['producer'],
'name': 'ESA/ESRIN',
'url': 'https://www.esa.int'},
{'roles': ['host'],
'name': 'ESA MAAP',
'url': 'https://catalog.maap.eo.esa.int/catalogue/'}],
'summaries': {'processing:level': ['L1A'],
'proj:code': ['EPSG:4326'],
'instruments': ['P-SAR'],
'platform': ['Biomass'],
'sar:polarizations': ['HH, HV, VH, VV']}}
Search by platform#
Example: 1.3
Search collections by platform (
filterandplatform).
value = "Biomass"
results = api.collection_search(
filter="platform='" + value + "'"
)
print(f"{results.matched()} collections found.")
22 collections found.
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections \
--data-urlencode "filter=platform='Biomass'" \
--data-urlencode "filter-lang=cql2-text"
data = results.collection_list_as_dict()
df = pd.json_normalize(data, record_path=['collections'])
df[['id', 'title', 'summaries.platform']]
| id | title | summaries.platform | |
|---|---|---|---|
| 0 | BiomassSimulated | Biomass Simulated data | [Biomass] |
| 1 | BiomassLevel1b | Biomass Level 1B | [Biomass] |
| 2 | BiomassAuxRest | Biomass Auxiliary Restricted | [Biomass] |
| 3 | BiomassCalVal10 | Biomass Cal/Val | [Biomass] |
| 4 | BiomassLevel2aIOC | Biomass Level 2A (IOC) | [Biomass] |
| 5 | sentinel-3-olci-2-lfr-ntc | Sentinel-3 OLCI Land Full Resolution (NTC) | [sentinel-3a, sentinel-3b] |
| 6 | sentinel-3-olci-2-lfr-nrt | Sentinel-3 OLCI Land Full Resolution (NRT) | [sentinel-3a, sentinel-3b] |
| 7 | BiomassLevel2b | Biomass Level 2B | [Biomass] |
| 8 | BiomassLevel1a | Biomass Level 1A | [Biomass] |
| 9 | BiomassLevel2bIOC | Biomass Level 2B (IOC) | [Biomass] |
| 10 | BiomassAuxIOC | Biomass Auxiliary (IOC) | [Biomass] |
| 11 | BiomassLevel1aIOC_TEST | Biomass Level 0 (IOC) | [Biomass] |
| 12 | BiomassLevel0IOC | Biomass Level 0 (IOC) | [Biomass] |
| 13 | BiomassLevel0 | Biomass Level 0 | [Biomass] |
| 14 | sentinel-3-olci-2-lrr-ntc | Sentinel-3 OLCI Land Reduced Resolution (NTC) | [sentinel-3a, sentinel-3b] |
| 15 | BiomassLevel2a | Biomass Level 2A | [Biomass] |
| 16 | BiomassLevel1aIOC | Biomass Level 1A (IOC) | [Biomass] |
| 17 | BiomassLevel1bIOC | Biomass Level 1B (IOC) | [Biomass] |
| 18 | BiomassLevel1cIOC | Biomass Level 1C (IOC) | [Biomass] |
| 19 | BiomassAux | Biomass Auxiliary | [Biomass] |
| 20 | BiomassLevel1c | Biomass Level 1C | [Biomass] |
| 21 | sentinel-3-olci-2-lrr-nrt | Sentinel-3 OLCI Land Reduced Resolution (NRT) | [sentinel-3a, sentinel-3b] |
Search by organisation#
Example: 1.4
Search collections by organisation (
filter,organisationName).
URL = URL_LANDING_PAGE + "collections"+ "?filter=organisationName='ESA/ESRIN'"
value = 'ESA/ESRIN'
results = api.collection_search(
filter="organisationName='" + value + "'",
max_collections = 10
)
print(f"{results.matched()} collections found.")
377 collections found.
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections \
--data-urlencode "filter=organisationName='ESA/ESRIN'" \
--data-urlencode "filter-lang=cql2-text"
data = results.collection_list_as_dict()
df = pd.json_normalize(data, record_path=['collections'])
df[['title', 'providers']]
| title | providers | |
|---|---|---|
| 0 | Spire live and historical data | [{'roles': ['producer'], 'name': 'ESA/ESRIN', ... |
| 1 | CryoSat products | [{'roles': ['producer'], 'name': 'ESA/ESRIN', ... |
| 2 | SPOT-6 to 7 full archive and tasking | [{'roles': ['producer'], 'name': 'ESA/ESRIN', ... |
| 3 | SkySat Full Archive and New Tasking | [{'roles': ['producer'], 'name': 'ESA/ESRIN', ... |
| 4 | PlanetScope Full Archive | [{'roles': ['producer'], 'name': 'ESA/ESRIN', ... |
| 5 | Envisat SCIAMACHY Level 2 [SCI_____2P] | [{'roles': ['producer'], 'name': 'ESA/ESRIN', ... |
| 6 | GOME Total Column Water Vapour Climate product | [{'roles': ['producer'], 'name': 'ESA/ESRIN', ... |
| 7 | GEOSAT-1 full archive and tasking | [{'roles': ['producer'], 'name': 'ESA/ESRIN', ... |
| 8 | Atmospheric Thematic Data Product [MWR_TDPATM] | [{'roles': ['producer'], 'name': 'ESA/ESRIN', ... |
| 9 | SMOS L3 Daily Wind Speed | [{'roles': ['producer'], 'name': 'ESA/ESRIN', ... |
Search by bounding box#
Example: 1.5
Search collections by bounding box (
bbox).
results = api.collection_search(
bbox = "14.90,37.700,14.99,37.780",
max_collections = 10
)
print(f"{results.matched()} collections found.")
392 collections found.
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections \
--data-urlencode "bbox=14.9,37.7,14.99,37.78"
data = results.collection_list_as_dict()
df = pd.json_normalize(data, record_path=['collections'])
df[['id', 'extent.spatial.bbox']]
| id | extent.spatial.bbox | |
|---|---|---|
| 0 | Spire.live.and.historical.data | [[-180, -90, 180, 90]] |
| 1 | CryoSat.products | [[-180, -90, 180, 90]] |
| 2 | SPOT67fullarchiveandtasking1 | [[-180, -90, 180, 90]] |
| 3 | SkySat.Full.Archive.and.New.Tasking | [[-180, -84, 180, 84]] |
| 4 | PlanetScope.Full.Archive | [[-180, -90, 180, 90]] |
| 5 | SCIAMACHYLevel2 | [[-180, -90, 180, 90]] |
| 6 | GOME_Evl_ClimateProd_TCWV | [[-180, -90, 180, 90]] |
| 7 | Geosat-1.Full.archive.and.tasking | [[-180, -90, 180, 90]] |
| 8 | TDPforAtmosphere | [[-180, -90, 180, 90]] |
| 9 | L3SW_Open | [[-180, -90, 180, 90]] |
Search by temporal extent#
Example: 1.6
Search collections by temporal extent (
datetimewith closed range).
results = api.collection_search(
datetime = '2002-01-01T00:00:00.000Z/2003-12-31T23:59:59.999Z',
max_collections = 10
)
print(f"{results.matched()} collections found.")
84 collections found.
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections \
--data-urlencode "datetime=2002-01-01T00:00:00.000Z/2003-12-31T23:59:59.999Z"
data = results.collection_list_as_dict()
df = pd.json_normalize(data, record_path=['collections'])
df[['id', 'extent.temporal.interval']]
| id | extent.temporal.interval | |
|---|---|---|
| 0 | SCIAMACHYLevel2 | [[2002-08-02T00:00:00.000Z, 2012-04-08T00:00:0... |
| 1 | GOME_Evl_ClimateProd_TCWV | [[1995-07-01T00:00:00.000Z, 2015-12-31T00:00:0... |
| 2 | TDPforAtmosphere | [[1991-08-03T00:00:00.000Z, 2012-04-08T23:59:5... |
| 3 | AVHRRLocalAreaCoverageImagery10 | [[1981-01-01T00:00:00.000Z, 2020-12-31T00:00:0... |
| 4 | ENVISAT.ASA.APP_1P | [[2002-11-15T00:00:00.000Z, 2012-04-08T00:00:0... |
| 5 | SCIAMACHYLevel1 | [[2002-08-02T00:00:00.000Z, 2012-04-08T23:59:5... |
| 6 | TDPforSeaice | [[1991-08-03T00:00:00.000Z, 2012-04-08T23:59:5... |
| 7 | ERS.UWI | [[1991-08-01T00:00:00.000Z, 2011-07-04T23:59:5... |
| 8 | ENVISAT.ASA.WSM_1P | [[2002-10-28T00:00:00.000Z, 2012-04-08T00:00:0... |
| 9 | MER.RR__1P | [[2002-04-29T00:00:00.000Z, 2012-04-08T00:00:0... |
Example: 1.7
Search collections by temporal extent (
datetimewith open range).
results = api.collection_search(
datetime = '../2001-12-31T23:59:59.999Z',
max_collections = 10
)
print(f"{results.matched()} collections found.")
58 collections found.
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections \
--data-urlencode "datetime=../2001-12-31T23:59:59.999Z"
data = results.collection_list_as_dict()
df = pd.json_normalize(data, record_path=['collections'])
df[['id', 'extent.temporal.interval']]
| id | extent.temporal.interval | |
|---|---|---|
| 0 | GOME_Evl_ClimateProd_TCWV | [[1995-07-01T00:00:00.000Z, 2015-12-31T00:00:0... |
| 1 | TDPforAtmosphere | [[1991-08-03T00:00:00.000Z, 2012-04-08T23:59:5... |
| 2 | AVHRRLocalAreaCoverageImagery10 | [[1981-01-01T00:00:00.000Z, 2020-12-31T00:00:0... |
| 3 | TDPforSeaice | [[1991-08-03T00:00:00.000Z, 2012-04-08T23:59:5... |
| 4 | ERS.UWI | [[1991-08-01T00:00:00.000Z, 2011-07-04T23:59:5... |
| 5 | LandsatTMCloudFree | [[1986-09-18T00:00:00.000Z, 1995-09-24T00:00:0... |
| 6 | ESA_Orthorectified_Map_oriented_Level1_products | [[1987-09-08T00:00:00.000Z, 1993-08-20T00:00:0... |
| 7 | IRS-1.archive | [[1996-06-25T00:00:00.000Z, 2004-10-28T00:00:0... |
| 8 | ERS_SAR_Envisat_ASAR_Pyrenees_mountains_L1_IM_AP | [[1991-08-04T00:00:00.000Z, 2012-04-07T00:00:0... |
| 9 | SeaSat.ESA.archive | [[1978-07-13T00:00:00.000Z, 1978-10-10T00:00:0... |
Example: 1.8
Search collections by temporal extent (
datetimewith single date).
results = api.collection_search(
datetime = '2002-12-31T23:59:59.999Z',
max_collections = 10
)
print(f"{results.matched()} collections found.")
82 collections found.
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections \
--data-urlencode "datetime=2002-12-31T23:59:59.999Z"
data = results.collection_list_as_dict()
df = pd.json_normalize(data, record_path=['collections'])
df[['id', 'extent.temporal.interval']]
| id | extent.temporal.interval | |
|---|---|---|
| 0 | SCIAMACHYLevel2 | [[2002-08-02T00:00:00.000Z, 2012-04-08T00:00:0... |
| 1 | GOME_Evl_ClimateProd_TCWV | [[1995-07-01T00:00:00.000Z, 2015-12-31T00:00:0... |
| 2 | TDPforAtmosphere | [[1991-08-03T00:00:00.000Z, 2012-04-08T23:59:5... |
| 3 | AVHRRLocalAreaCoverageImagery10 | [[1981-01-01T00:00:00.000Z, 2020-12-31T00:00:0... |
| 4 | ENVISAT.ASA.APP_1P | [[2002-11-15T00:00:00.000Z, 2012-04-08T00:00:0... |
| 5 | SCIAMACHYLevel1 | [[2002-08-02T00:00:00.000Z, 2012-04-08T23:59:5... |
| 6 | TDPforSeaice | [[1991-08-03T00:00:00.000Z, 2012-04-08T23:59:5... |
| 7 | ERS.UWI | [[1991-08-01T00:00:00.000Z, 2011-07-04T23:59:5... |
| 8 | ENVISAT.ASA.WSM_1P | [[2002-10-28T00:00:00.000Z, 2012-04-08T00:00:0... |
| 9 | MER.RR__1P | [[2002-04-29T00:00:00.000Z, 2012-04-08T00:00:0... |
Get by identifier#
Example: 1.9
Get collections by identifier (
ids).
URL = URL_LANDING_PAGE + 'collections?ids=' + COLLECTION_ID6_MAAP + ',' + COLLECTION_ID9_MAAP
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections \
--data-urlencode "ids=BiomassLevel1a,BiomassLevel2a"
response = requests.get(URL)
data = json.loads(response.text)
df = pd.json_normalize(data, record_path=['collections'])
df[['id', 'title', 'extent.temporal.interval']]
| id | title | extent.temporal.interval | |
|---|---|---|---|
| 0 | BiomassLevel1a | Biomass Level 1A | [[2024-07-31T00:00:00.000Z, None]] |
| 1 | BiomassLevel2a | Biomass Level 2A | [[2024-07-31T00:00:00.000Z, None]] |
Example: 1.10
Get collection by identifier.
The collection metadata for BiomassLevel1a, is available at at https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a. This corresponds to one of the many representations available using content-negotiation.
URL = URL_LANDING_PAGE + 'collections/' + COLLECTION_ID6_MAAP
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a
id: BiomassLevel1a
title: Biomass Level 1A
| 0 | |
|---|---|
| extent | {'spatial': {'bbox': [[-180, -90, 180, 90]]}, ... |
| stac_version | 1.0.0 |
| keywords | [EARTH SCIENCE > BIOSPHERE > ECOSYSTEMS > TERR... |
| created | 2023-02-16T00:00:00.00Z |
| description | Biomass Level 1A Products |
| collection | EOP:ESA:MAAP |
| type | Collection |
| title | Biomass Level 1A |
| themes | [{'concepts': [{'id': 'PUBLIC', 'url': 'http:/... |
| license | other |
| assets | {'metadata_iso_19139': {'roles': ['metadata'],... |
| links | [{'rel': 'self', 'href': 'https://catalog.maap.eo.esa.int... |
| item_assets | {'metadata_ogc_10_157r4': {'roles': ['metadata... |
| id | BiomassLevel1a |
| updated | 2023-02-16T00:00:00.00Z |
| stac_extensions | [https://stac-extensions.github.io/processing/... |
| providers | [{'roles': ['producer'], 'name': 'ESA/ESRIN', ... |
| summaries | {'processing:level': ['LL1A'], 'proj:code': ['... |
jstr = json.dumps(data, indent=3)
md("```json\n" + jstr + "\n```\n")
{
"extent": {
"spatial": {
"bbox": [
[
-180,
-90,
180,
90
]
]
},
"temporal": {
"interval": [
[
"2024-07-31T00:00:00.000Z",
null
]
]
}
},
"stac_version": "1.0.0",
"keywords": [
"EARTH SCIENCE > BIOSPHERE > ECOSYSTEMS > TERRESTRIAL ECOSYSTEMS",
"EARTH SCIENCE > AGRICULTURE > FOREST SCIENCE > AFFORESTATION/REFORESTATION",
"Forestry",
"Afforestation/Reforestation",
"Imaging Radars",
"Biomass",
"P-SAR",
"ESA_open_and_free",
"PUBLIC"
],
"created": "2023-02-16T00:00:00.00Z",
"description": "Biomass Level 1A Products",
"collection": "EOP:ESA:MAAP",
"type": "Collection",
"title": "Biomass Level 1A",
"themes": [
{
"concepts": [
{
"id": "PUBLIC",
"url": "http://publications.europa.eu/resource/authority/access-right/PUBLIC"
}
],
"scheme": "http://publications.europa.eu/resource/authority/access-right"
},
{
"concepts": [
{
"id": "ESA_open_and_free",
"url": "https://maap.eo.esa.int/metadata-codelist/access-right/ESA_open_and_free"
}
],
"scheme": "https://maap.eo.esa.int/metadata-codelist/access-right"
}
],
"license": "other",
"assets": {
"metadata_iso_19139": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a?httpAccept=application/vnd.iso.19139%2Bxml",
"title": "ISO 19139 metadata",
"type": "application/vnd.iso.19139+xml"
},
"metadata_iso_19139_2": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a?httpAccept=application/vnd.iso.19139-2%2Bxml",
"title": "ISO 19139-2 metadata",
"type": "application/vnd.iso.19139-2+xml"
},
"metadata_dif_10": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a?httpAccept=application/dif10%2Bxml",
"title": "DIF-10 metadata",
"type": "application/dif10+xml"
},
"metadata_ogc_17_084r1": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a?mode=owc",
"title": "OGC 17-084r1 metadata",
"type": "application/geo+json;profile=\"http://www.opengis.net/spec/eoc-geojson/1.0\""
},
"metadata_iso_191115_3": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a?httpAccept=application/vnd.iso.19115-3%2Bxml",
"title": "ISO 19115-3 metadata",
"type": "application/vnd.iso.19115-3+xml"
}
},
"links": [
{
"rel": "self",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a",
"type": "application/json"
},
{
"rel": "root",
"href": "https://catalog.maap.eo.esa.int/catalogue/",
"type": "application/json",
"title": "MAAP Catalogue"
},
{
"rel": "parent",
"href": "https://catalog.maap.eo.esa.int/catalogue/",
"title": "collections",
"type": "application/json"
},
{
"rel": "items",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/items",
"type": "application/geo+json",
"title": "Datasets search for the series BiomassLevel1a"
},
{
"rel": "http://www.opengis.net/def/rel/ogc/1.0/queryables",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/queryables",
"type": "application/schema+json",
"title": "Queryables for BiomassLevel1a"
},
{
"rel": "license",
"href": "https://earth.esa.int/eogateway/documents/d/earth-online/esa-eo-data-policy",
"type": "application/x-binary",
"title": "Access to and use of BIOMASS products are governed by the ESA's Data Policy and require acceptance of the specific Terms & Conditions. By accessing Biomass products, users inherently acknowledge and agree to these terms."
},
{
"rel": "search",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/api",
"type": "application/opensearchdescription+xml",
"title": "OpenSearch Description Document"
},
{
"rel": "describedby",
"href": "https://esatellus.service-now.com/csp?id=esa_simple_request",
"title": "Get Help? - ESA TellUS Help Page"
},
{
"rel": "alternate",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a?httpAccept=application/ld%2Bjson;profile=https://schema.org",
"type": "application/ld+json;profile=\"https://schema.org\"",
"title": "JSON-LD (schema.org) metadata"
},
{
"rel": "alternate",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a?httpAccept=application/ld%2Bjson",
"type": "application/ld+json;profile=\"http://data.europa.eu/930/\"",
"title": "JSON-LD (GeoDCAT-AP) metadata"
}
],
"item_assets": {
"metadata_ogc_10_157r4": {
"roles": [
"metadata"
],
"title": "OGC 10-157r4 metadata",
"type": "application/gml+xml;profile=\"http://www.opengis.net/spec/EOMPOM/1.1\""
},
"metadata_ogc_17_003r2": {
"roles": [
"metadata"
],
"title": "OGC 17-003r2 metadata",
"type": "application/geo+json;profile=\"http://www.opengis.net/spec/eo-geojson/1.0\""
},
"metadata_iso_19139": {
"roles": [
"metadata"
],
"title": "ISO 19139 metadata",
"type": "application/vnd.iso.19139+xml"
}
},
"id": "BiomassLevel1a",
"updated": "2023-02-16T00:00:00.00Z",
"stac_extensions": [
"https://stac-extensions.github.io/processing/v1.2.0/schema.json",
"https://stac-extensions.github.io/themes/v1.0.0/schema.json",
"https://stac-extensions.github.io/sar/v1.3.0/schema.json"
],
"providers": [
{
"roles": [
"producer"
],
"name": "ESA/ESRIN",
"url": "https://www.esa.int"
},
{
"roles": [
"host"
],
"name": "ESA MAAP",
"url": "https://catalog.maap.eo.esa.int/catalogue/"
}
],
"summaries": {
"processing:level": [
"LL1A"
],
"proj:code": [
"EPSG:4326"
],
"instruments": [
"P-SAR"
],
"platform": [
"Biomass"
],
"sar:polarizations": [
"HH, HV, VH, VV"
]
}
}
Search by DOI#
Example: 1.11
Search collections by DOI (
filterwithdoi).
# ESA Biomass CCI
value = '10.5285/bf535053562141c6bb7ad831f5998d77'
results = api.collection_search(
filter="doi='" + value + "'"
)
print(f"{results.matched()} collections found.")
1 collections found.
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections \
--data-urlencode "filter=doi='10.5285/bf535053562141c6bb7ad831f5998d77'" \
--data-urlencode "filter-lang=cql2-text"
data = results.collection_list_as_dict()
df = pd.json_normalize(data, record_path=['collections'])
df[['id', 'title']]
| id | title | |
|---|---|---|
| 0 | CCIBiomassV5.01 | CCI Biomass V5.01 |
Search by concept#
Example: 1.12
Search collections by concept URI (
filterwithclassifiedAs).
Collection metadata includes platform, instrument and science keywords, including the URI of these concepts expressed in the ESA thesauri and NASA GCMD thesauri. The URI of these concepts can be used as search parameter.
In the current version of the software, the following concept URIs are supported:
ESA thesaurus platform URI
ESA thesaurus instrument URI
ESA thesaurus earth topic URI
GCMD platform URI
GCMD instrument URI
GCMD science keyword URI
# Vegetation
# concept_uri = 'https://earth.esa.int/concept/3bf4cc22-5dad-5652-8575-8347564c4a0c'
# Forestry
concept_uri = 'https://earth.esa.int/concept/80694ace-7a2a-50b0-9c22-4a4b45c985a1'
results = api.collection_search(
filter="classifiedAs='" + concept_uri + "'",
max_collections = 10
)
print(f"{results.matched()} collections found.")
43 collections found.
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections \
--data-urlencode "filter=classifiedAs='https://earth.esa.int/concept/80694ace-7a2a-50b0-9c22-4a4b45c985a1'" \
--data-urlencode "filter-lang=cql2-text"
data = results.collection_list_as_dict()
df = pd.json_normalize(data, record_path=['collections'])
df[['id', 'title']]
| id | title | |
|---|---|---|
| 0 | Geosat-1.Full.archive.and.tasking | GEOSAT-1 full archive and tasking |
| 1 | Landsat8.Collection2.European.Coverage | Landsat 8 Collection 2 European Coverage |
| 2 | ALOS.AVNIR-2.L1C | ALOS AVNIR-2 L1C |
| 3 | BiomassSimulated | Biomass Simulated data |
| 4 | BiomassLevel1b | Biomass Level 1B |
| 5 | BiomassAuxRest | Biomass Auxiliary Restricted |
| 6 | BiomassCalVal10 | Biomass Cal/Val |
| 7 | BiomassLevel2aIOC | Biomass Level 2A (IOC) |
| 8 | WorldView-4.full.archive | WorldView-4 full archive |
| 9 | PleiadesNeoESAArchive10 | Pleiades Neo ESA Archive |
# Concept defining P-SAR
concept_uri = 'https://earth.esa.int/concept/1dacc3db-07df-5d93-869a-6bb256f01e51'
results = api.collection_search(
filter="classifiedAs='" + concept_uri + "'",
max_collections = 10
)
print(f"{results.matched()} collections found.")
18 collections found.
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections \
--data-urlencode "filter=classifiedAs='https://earth.esa.int/concept/1dacc3db-07df-5d93-869a-6bb256f01e51'" \
--data-urlencode "filter-lang=cql2-text"
data = results.collection_list_as_dict()
df = pd.json_normalize(data, record_path=['collections'])
df[['id', 'title']]
| id | title | |
|---|---|---|
| 0 | BiomassSimulated | Biomass Simulated data |
| 1 | BiomassLevel1b | Biomass Level 1B |
| 2 | BiomassAuxRest | Biomass Auxiliary Restricted |
| 3 | BiomassCalVal10 | Biomass Cal/Val |
| 4 | BiomassLevel2aIOC | Biomass Level 2A (IOC) |
| 5 | BiomassLevel2b | Biomass Level 2B |
| 6 | BiomassLevel1a | Biomass Level 1A |
| 7 | BiomassLevel2bIOC | Biomass Level 2B (IOC) |
| 8 | BiomassAuxIOC | Biomass Auxiliary (IOC) |
| 9 | BiomassLevel1aIOC_TEST | Biomass Level 0 (IOC) |
Search by modification date#
Example: 1.13
Search collections by modificationDate (
filterwithmodificationDate).
results = api.collection_search(
filter="updated > TIMESTAMP('2024-06-01T09:54:34.651Z')",
max_collections = 10
)
print(f"{results.matched()} collections found.")
376 collections found.
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections \
--data-urlencode "filter=updated > TIMESTAMP('2024-06-01T09:54:34.651Z')" \
--data-urlencode "filter-lang=cql2-text"
data = results.collection_list_as_dict()
df = pd.json_normalize(data, record_path=['collections'])
df[['id', 'updated', 'title']]
| id | updated | title | |
|---|---|---|---|
| 0 | Spire.live.and.historical.data | 2025-04-24T10:31:46Z | Spire live and historical data |
| 1 | CryoSat.products | 2025-04-24T10:30:13Z | CryoSat products |
| 2 | SPOT67fullarchiveandtasking1 | 2025-04-24T10:24:04Z | SPOT-6 to 7 full archive and tasking |
| 3 | SkySat.Full.Archive.and.New.Tasking | 2025-04-24T10:30:42Z | SkySat Full Archive and New Tasking |
| 4 | PlanetScope.Full.Archive | 2025-04-24T10:25:01Z | PlanetScope Full Archive |
| 5 | SCIAMACHYLevel2 | 2025-04-24T10:24:02Z | Envisat SCIAMACHY Level 2 [SCI_____2P] |
| 6 | GOME_Evl_ClimateProd_TCWV | 2025-04-24T10:24:03Z | GOME Total Column Water Vapour Climate product |
| 7 | Geosat-1.Full.archive.and.tasking | 2025-04-24T10:24:04Z | GEOSAT-1 full archive and tasking |
| 8 | TDPforAtmosphere | 2025-04-24T10:30:41Z | Atmospheric Thematic Data Product [MWR_TDPATM] |
| 9 | L3SW_Open | 2025-04-24T10:25:23Z | SMOS L3 Daily Wind Speed |
Collection properties#
Collection identification#
# Use first collection from response
results = api.collection_search(
q = COLLECTION_ID6_MAAP
)
print(f"{results.matched()} collections found.")
data = results.collection_list_as_dict()
data = data['collections'][0]
1 collections found.
jstr = json.dumps(data, indent=3)
md("```json\n" + jstr + "\n```\n")
{
"extent": {
"spatial": {
"bbox": [
[
-180,
-90,
180,
90
]
]
},
"temporal": {
"interval": [
[
"2024-07-31T00:00:00.000Z",
null
]
]
}
},
"stac_version": "1.0.0",
"keywords": [
"EARTH SCIENCE > BIOSPHERE > ECOSYSTEMS > TERRESTRIAL ECOSYSTEMS",
"EARTH SCIENCE > AGRICULTURE > FOREST SCIENCE > AFFORESTATION/REFORESTATION",
"Forestry",
"Afforestation/Reforestation",
"Imaging Radars",
"Biomass",
"P-SAR",
"ESA_open_and_free",
"PUBLIC"
],
"created": "2023-02-16T00:00:00.00Z",
"description": "Biomass Level 1A Products",
"collection": "EOP:ESA:MAAP",
"type": "Collection",
"title": "Biomass Level 1A",
"themes": [
{
"concepts": [
{
"id": "PUBLIC",
"url": "http://publications.europa.eu/resource/authority/access-right/PUBLIC"
}
],
"scheme": "http://publications.europa.eu/resource/authority/access-right"
},
{
"concepts": [
{
"id": "ESA_open_and_free",
"url": "https://maap.eo.esa.int/metadata-codelist/access-right/ESA_open_and_free"
}
],
"scheme": "https://maap.eo.esa.int/metadata-codelist/access-right"
}
],
"license": "various",
"assets": {
"metadata_iso_19139": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a?httpAccept=application/vnd.iso.19139%2Bxml",
"title": "ISO 19139 metadata",
"type": "application/vnd.iso.19139+xml"
},
"metadata_iso_19139_2": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a?httpAccept=application/vnd.iso.19139-2%2Bxml",
"title": "ISO 19139-2 metadata",
"type": "application/vnd.iso.19139-2+xml"
},
"metadata_dif_10": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a?httpAccept=application/dif10%2Bxml",
"title": "DIF-10 metadata",
"type": "application/dif10+xml"
},
"metadata_ogc_17_084r1": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a?mode=owc",
"title": "OGC 17-084r1 metadata",
"type": "application/geo+json;profile=\"http://www.opengis.net/spec/eoc-geojson/1.0\""
},
"metadata_iso_191115_3": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a?httpAccept=application/vnd.iso.19115-3%2Bxml",
"title": "ISO 19115-3 metadata",
"type": "application/vnd.iso.19115-3+xml"
}
},
"links": [
{
"rel": "self",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a",
"type": "application/json"
},
{
"rel": "root",
"href": "https://catalog.maap.eo.esa.int/catalogue/",
"type": "application/json",
"title": "MAAP Catalogue"
},
{
"rel": "parent",
"href": "https://catalog.maap.eo.esa.int/catalogue/",
"title": "collections",
"type": "application/json"
},
{
"rel": "items",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/items",
"type": "application/geo+json",
"title": "Datasets search for the series BiomassLevel1a"
},
{
"rel": "http://www.opengis.net/def/rel/ogc/1.0/queryables",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/queryables",
"type": "application/schema+json",
"title": "Queryables for BiomassLevel1a"
},
{
"rel": "license",
"href": "https://earth.esa.int/eogateway/documents/d/earth-online/esa-eo-data-policy",
"type": "application/x-binary",
"title": "Access to and use of BIOMASS products are governed by the ESA's Data Policy and require acceptance of the specific Terms & Conditions. By accessing Biomass products, users inherently acknowledge and agree to these terms."
},
{
"rel": "search",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/api",
"type": "application/opensearchdescription+xml",
"title": "OpenSearch Description Document"
},
{
"rel": "describedby",
"href": "https://esatellus.service-now.com/csp?id=esa_simple_request",
"title": "Get Help? - ESA TellUS Help Page"
},
{
"rel": "alternate",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a?httpAccept=application/ld%2Bjson;profile=https://schema.org",
"type": "application/ld+json;profile=\"https://schema.org\"",
"title": "JSON-LD (schema.org) metadata"
},
{
"rel": "alternate",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a?httpAccept=application/ld%2Bjson",
"type": "application/ld+json;profile=\"http://data.europa.eu/930/\"",
"title": "JSON-LD (GeoDCAT-AP) metadata"
}
],
"id": "BiomassLevel1a",
"updated": "2023-02-16T00:00:00.00Z",
"stac_extensions": [
"https://stac-extensions.github.io/processing/v1.2.0/schema.json",
"https://stac-extensions.github.io/themes/v1.0.0/schema.json",
"https://stac-extensions.github.io/sar/v1.3.0/schema.json"
],
"providers": [
{
"roles": [
"producer"
],
"name": "ESA/ESRIN",
"url": "https://www.esa.int"
},
{
"roles": [
"host"
],
"name": "ESA MAAP",
"url": "https://catalog.maap.eo.esa.int/catalogue/"
}
],
"summaries": {
"processing:level": [
"L1A"
],
"proj:code": [
"EPSG:4326"
],
"instruments": [
"P-SAR"
],
"platform": [
"Biomass"
],
"sar:polarizations": [
"HH, HV, VH, VV"
]
}
}
# use stac_client class for STAC collection
c = Collection.from_dict(data)
print("id\t\t:", c.id)
print("title\t\t:", c.title)
print("description\t:", c.description)
print("keywords\t:", c.keywords)
print("spatial extent\t:", c.extent.spatial)
print("temporal extent\t:", c.extent.temporal)
id : BiomassLevel1a
title : Biomass Level 1A
description : Biomass Level 1A Products
keywords : ['EARTH SCIENCE > BIOSPHERE > ECOSYSTEMS > TERRESTRIAL ECOSYSTEMS', 'EARTH SCIENCE > AGRICULTURE > FOREST SCIENCE > AFFORESTATION/REFORESTATION', 'Forestry', 'Afforestation/Reforestation', 'Imaging Radars', 'Biomass', 'P-SAR', 'ESA_open_and_free', 'PUBLIC']
spatial extent : <pystac.collection.SpatialExtent object at 0x00000248B347E150>
temporal extent : <pystac.collection.TemporalExtent object at 0x00000248B3593EC0>
The collection id (id) is to be used as collections parameter for a corresponding STAC item (granule) search. It can also be used in the ids parameter when searching collections by identifier.
Collection DOI#
Not all collections have a digital object identifier assigned. if they do, then it is available as sci:doi property. This value can be used for searching collections by DOI. Collections with DOI, typically also contain a link with rel=”cite-as” referring to their landing page.
try:
print(data['sci:doi'])
except:
print("Not available")
Not available
Collection geometry#
Geometry information for a collection is included in the JSON response at the path $.extent.spatial.
data['extent']['spatial']
{'bbox': [[-180, -90, 180, 90]]}
Collection temporal extent#
The JSON response element provides temporal information for a collection, i.e. the start time and end time at the path $.extent.temporal. The end time may be absent indicating that the collection is not completed.
try:
print(data['extent']['temporal'])
except:
print("Not available")
{'interval': [['2024-07-31T00:00:00.000Z', None]]}
Collection assets#
Collections provide access to a dictionary with assets. The roles attribute indicates the purpose of the asset. The href attribute provides the URL to access the asset. Collection assets may include thumbnail (when available), search interfaces, and various metadata formats.
The table below list some frequently used metadata formats and their corresponding media type (type).
Format |
type |
|---|---|
application/vnd.iso.19139+xml |
|
application/vnd.iso.19139-2+xml |
|
application/vnd.iso.19115-3+xml |
|
application/vnd.iso.19157-2+xml |
# Show assets of the collection (GeoJSON)
jstr = json.dumps(data['assets'], indent=3)
md("```json\n" + jstr + "\n```\n")
{
"metadata_iso_19139": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a?httpAccept=application/vnd.iso.19139%2Bxml",
"title": "ISO 19139 metadata",
"type": "application/vnd.iso.19139+xml"
},
"metadata_iso_19139_2": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a?httpAccept=application/vnd.iso.19139-2%2Bxml",
"title": "ISO 19139-2 metadata",
"type": "application/vnd.iso.19139-2+xml"
},
"metadata_dif_10": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a?httpAccept=application/dif10%2Bxml",
"title": "DIF-10 metadata",
"type": "application/dif10+xml"
},
"metadata_ogc_17_084r1": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a?mode=owc",
"title": "OGC 17-084r1 metadata",
"type": "application/geo+json;profile=\"http://www.opengis.net/spec/eoc-geojson/1.0\""
},
"metadata_iso_191115_3": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a?httpAccept=application/vnd.iso.19115-3%2Bxml",
"title": "ISO 19115-3 metadata",
"type": "application/vnd.iso.19115-3+xml"
}
}
# Display assets belonging to the collection
c = Collection.from_dict(data)
assets = c.assets
df = pd.DataFrame(columns=['roles', 'title', 'type'])
for key in assets:
ndf = pd.DataFrame({
'roles': assets[key].roles,
'type': assets[key].media_type,
'title': assets[key].title,
# 'href': assets[key].href
}, index = [0])
df = pd.concat([df, ndf], ignore_index=True)
df
| roles | title | type | |
|---|---|---|---|
| 0 | metadata | ISO 19139 metadata | application/vnd.iso.19139+xml |
| 1 | metadata | ISO 19139-2 metadata | application/vnd.iso.19139-2+xml |
| 2 | metadata | DIF-10 metadata | application/dif10+xml |
| 3 | metadata | OGC 17-084r1 metadata | application/geo+json;profile="http://www.openg... |
| 4 | metadata | ISO 19115-3 metadata | application/vnd.iso.19115-3+xml |
Collection links#
Collections provide access to additional resources via links. The rel attribute indicates the purpose of the resource. The href attribute provides the URL to access the resource. Collection assets may include thumbnail (when available), search interfaces, and various metadata formats.
# Display links belonging to the collection
links = c.links
df = pd.DataFrame(columns=['rel', 'title', 'type'])
for link in links:
ndf = pd.DataFrame({ 'rel': link.rel,'type': link.media_type, 'title': link.title }, index = [0])
df = pd.concat([df, ndf], ignore_index=True)
df
| rel | title | type | |
|---|---|---|---|
| 0 | self | None | application/json |
| 1 | root | MAAP Catalogue | application/json |
| 2 | parent | collections | application/json |
| 3 | items | Datasets search for the series BiomassLevel1a | application/geo+json |
| 4 | http://www.opengis.net/def/rel/ogc/1.0/queryables | Queryables for BiomassLevel1a | application/schema+json |
| 5 | license | Access to and use of BIOMASS products are gove... | application/x-binary |
| 6 | search | OpenSearch Description Document | application/opensearchdescription+xml |
| 7 | describedby | Get Help? - ESA TellUS Help Page | None |
| 8 | alternate | JSON-LD (schema.org) metadata | application/ld+json;profile="https://schema.org" |
| 9 | alternate | JSON-LD (GeoDCAT-AP) metadata | application/ld+json;profile="http://data.europ... |
Of particular importance is the link providing access to the list of filter criteria available for granule search within this collection. This link provides access to a Queryables object in JSON Schema format.
links = c.get_links(rel = 'http://www.opengis.net/def/rel/ogc/1.0/queryables', media_type = 'application/schema+json' )
links[0].href
'https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/queryables'
response = requests.get(links[0].href)
data = json.loads(response.text)
df = pd.DataFrame(data['properties'].items(),columns=['key','value'])
df['type'] = df.apply(lambda row : row['value']['type'], axis = 1)
df['format'] = df.apply(lambda row : row['value']['format'] if 'format' in row['value'] else '-' , axis = 1)
df.drop('value',axis=1).sort_values(by=['key'])
| key | type | format | |
|---|---|---|---|
| 12 | completionTimeFromAscendingNode | number | - |
| 17 | created | string | date-time |
| 6 | datetime | string | - |
| 2 | eofeos:global_coverage_id | string | - |
| 5 | eofeos:major_cycle_id | string | - |
| 29 | eofeos:mission_phase | string | - |
| 26 | eofeos:orbit_drift_flag | string | - |
| 0 | eofeos:repeat_cycle_id | string | - |
| 11 | eopf:datatake_id | integer | - |
| 28 | eopf:instrument_mode | string | - |
| 19 | externalId | string | - |
| 34 | frame | string | - |
| 13 | id | string | - |
| 7 | instruments | string | - |
| 4 | platform | string | - |
| 18 | polarisationChannels | string | - |
| 27 | processing:datetime | string | date-time |
| 1 | processing:facility | string | - |
| 16 | processing:level | string | - |
| 14 | processing:software | string | - |
| 30 | processingMode | string | - |
| 33 | product:acquisition_type | string | - |
| 3 | product:type | string | - |
| 9 | productionStatus | string | - |
| 20 | published | string | - |
| 25 | q | string | - |
| 23 | sar:observation_direction | string | - |
| 24 | sar:polarizations | string | - |
| 31 | sat:absolute_orbit | integer | - |
| 8 | sat:orbit_state | string | - |
| 10 | startTimeFromAscendingNode | number | - |
| 21 | swathIdentifier | string | - |
| 15 | track | string | - |
| 32 | updated | string | date-time |
| 22 | version | string | - |
Granule Search#
Access landing page#
The landing page provides access to collections (rel=”data”), child catalogs (rel=”child”) and the STAC item search endpoint (rel=”search”).
from pystac_client import Client
api = Client.open(URL_LANDING_PAGE)
# show as a dictionary
api.to_dict()
{'type': 'Catalog',
'id': 'fedeo',
'stac_version': '1.1.0',
'description': 'MAAP Catalogue provides interoperable access, following ISO/OGC interface guidelines, to Earth Observation metadata',
'links': [{'rel': 'self',
'href': 'https://catalog.maap.eo.esa.int/catalogue/',
'type': 'application/json'},
{'rel': 'search',
'href': 'https://catalog.maap.eo.esa.int/catalogue/api?httpAccept=application/opensearchdescription%2Bxml',
'type': 'application/opensearchdescription+xml',
'title': 'OpenSearch Description Document'},
{'rel': 'service-desc',
'href': 'https://catalog.maap.eo.esa.int/catalogue/api?httpAccept=application/vnd.oai.openapi%2Bjson;version=3.0',
'type': 'application/vnd.oai.openapi+json;version=3.0',
'title': 'OpenAPI definition in JSON format'},
{'rel': 'data',
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections',
'type': 'application/json',
'title': 'Metadata about the feature collections'},
{'rel': 'data',
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections',
'type': 'application/ld+json',
'title': 'Metadata about the feature collections'},
{'rel': 'data',
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections',
'type': 'application/rdf+xml',
'title': 'Metadata about the feature collections'},
{'rel': 'data',
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections',
'type': 'text/turtle',
'title': 'Metadata about the feature collections'},
{'rel': 'conformance',
'href': 'https://catalog.maap.eo.esa.int/catalogue/conformance',
'type': 'application/json',
'title': 'OGC conformance classes implemented by this API'},
{'rel': 'service-doc',
'href': 'https://catalog.maap.eo.esa.int/doc/index.html',
'type': 'text/html',
'title': 'API Documentation (Jupyter)'},
{'rel': 'service-doc',
'href': 'http://petstore.swagger.io/?url=https://catalog.maap.eo.esa.int/catalogue/api',
'type': 'text/html',
'title': 'API documentation in Swagger.io format'},
{'rel': 'search',
'href': 'https://catalog.maap.eo.esa.int/catalogue/search',
'type': 'application/geo+json',
'title': 'STAC Search',
'method': 'GET'},
{'rel': 'search',
'href': 'https://catalog.maap.eo.esa.int/catalogue/search',
'type': 'application/geo+json',
'title': 'STAC Search',
'method': 'POST'},
{'rel': 'child',
'href': 'https://catalog.maap.eo.esa.int/catalogue/series',
'type': 'application/json',
'title': 'Collections'},
{'rel': 'child',
'href': 'https://catalog.maap.eo.esa.int/catalogue/services',
'type': 'application/json',
'title': 'Services'},
{'rel': 'root',
'href': 'https://catalog.maap.eo.esa.int/catalogue/',
'type': 'application/json',
'title': 'MAAP Catalogue'}],
'extent': {'spatial': {'bbox': [[-180, -90, 180, 90]]},
'temporal': {'interval': [[None, None]]}},
'license': 'other',
'conformsTo': ['http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/core',
'http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/oas30',
'http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/geojson',
'http://www.opengis.net/spec/ogcapi_common-2/1.0/conf/collections',
'http://www.opengis.net/spec/ogcapi-common-2/1.0/conf/simple-query',
'http://www.opengis.net/spec/ogcapi-records-1/1.0/req/cql-filter',
'http://www.opengis.net/spec/ogcapi-features-3/1.0/conf/features-filter',
'http://www.opengis.net/spec/ogcapi-features-3/1.0/conf/filter',
'https://api.stacspec.org/v1.0.0/core',
'https://api.stacspec.org/v1.0.0/ogcapi-features',
'https://api.stacspec.org/v1.0.0/collections',
'https://api.stacspec.org/v1.0.0-rc.1/collection-search',
'https://api.stacspec.org/v1.0.0-rc.1/collection-search#filter',
'https://api.stacspec.org/v1.0.0-rc.1/collection-search#free-text',
'https://api.stacspec.org/v1.0.0-rc.1/collection-search#sort',
'https://api.stacspec.org/v1.0.0/item-search',
'https://api.stacspec.org/v1.0.0-rc.3/item-search#filter',
'http://www.opengis.net/spec/cql2/1.0/conf/cql2-text',
'http://www.opengis.net/spec/cql2/1.0/conf/basic-cql2',
'http://www.opengis.net/spec/cql2/1.0/conf/cql2-json',
'http://www.opengis.net/spec/cql2/1.0/conf/advanced-comparison-operators',
'https://api.stacspec.org/v1.0.0/item-search#sort',
'https://api.stacspec.org/v1.0.0/ogcapi-features#sort',
'https://api.stacspec.org/v1.0.0/ogcapi-features#sort',
'https://api.stacspec.org/v1.0.0/item-search#fields',
'https://api.stacspec.org/v1.0.0/ogcapi-features#fields',
'https://api.stacspec.org/v1.0.0-rc.1/collection-search#fields'],
'title': 'MAAP Catalogue'}
The STAC granule search endpoint can be found in the landing page (rel=”search”). When performing searches, the collections to be searched are specified using their id. You can find the id by browsing the catalogue/collection hierarchy or via a collection search.
# Get STAC granule search link to be used.
print("Search link\t:", api.get_search_link())
Search link : <Link rel=search target=https://catalog.maap.eo.esa.int/catalogue/search>
Search by geometry#
Collections support granule search with the intersects [RD11] search parameter.
Example: 2.1
Search granules by geometry {intersects} [RD11] and
GETmethod. Geometry parameter can be provided as dictionary or string.
aoi_as_dict: Dict[str, Any] = {
"type": "Polygon",
"coordinates": [
[
[
113.5606,
4.039703
],
[
114.09912,
3.923761
],
[
114.22494,
4.50623
],
[
113.68626,
4.622398
],
[
113.5606,
4.039703
]
]
]
}
from pystac_client import Client
api = Client.open(URL_LANDING_PAGE)
results = api.search(
method = 'GET',
max_items = 2,
collections=[COLLECTION_ID6_MAAP],
intersects = aoi_as_dict,
datetime=['2015-01-01T00:00:00Z', '2018-01-02T00:00:00Z']
)
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/search \
--data-urlencode "datetime=2015-01-01T00:00:00Z/2018-01-02T00:00:00Z" \
--data-urlencode "collections=BiomassLevel1a" \
--data-urlencode "intersects={\"type\":\"Polygon\",\"coordinates\":[[[113.5606,4.039703],[114.09912,3.923761],[114.22494,4.50623],[113.68626,4.622398],[113.5606,4.039703]]]}"
The total number of results available is reported in the numberMatched property.
2 items found.
# Show search response (GeoJSON)
data = results.item_collection_as_dict()
jstr = json.dumps(data, indent=3)
md("```json\n" + jstr + "\n```\n")
{
"type": "FeatureCollection",
"features": [
{
"stac_version": "1.0.0",
"assets": {
"quicklook_1": {
"roles": [
"overview"
],
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/preview/bio_s1_scs__1s_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_ql.png",
"type": "image/png",
"title": "preview"
},
"thumbnail": {
"roles": [
"thumbnail"
],
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/public/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP.BI.PNG",
"type": "image/png",
"title": "Preview"
},
"product": {
"file:local_path": "BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP.ZIP",
"alternate:name": "HTTPS",
"roles": [
"data",
"metadata",
"archive"
],
"href": "https://catalog.maap.eo.esa.int/data/zipper/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP",
"auth:refs": [
"oidc"
],
"published": "2017-01-08T10:37:00.748Z",
"title": "Zipped product",
"type": "application/zip"
},
"metadata_ogc_10_157r4": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/items/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP?httpAccept=application/gml%2Bxml&recordSchema=om",
"title": "OGC 10-157r4 metadata",
"type": "application/gml+xml;profile=\"http://www.opengis.net/spec/EOMPOM/1.1\""
},
"metadata_ogc_17_003r2": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/items/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP?mode=owc",
"title": "OGC 17-003r2 metadata",
"type": "application/geo+json;profile=\"http://www.opengis.net/spec/eo-geojson/1.0\""
},
"metadata_iso_19139": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/items/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP?httpAccept=application/vnd.iso.19139%2Bxml",
"title": "ISO 19139 metadata",
"type": "application/vnd.iso.19139+xml"
},
"quicklook": {
"roles": [
"overview"
],
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/preview/bio_s1_scs__1s_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_map.kmz",
"type": "application/vnd.google-earth.kmz",
"title": "preview"
}
},
"bbox": [
113.5606,
3.923761,
114.22494,
4.622398
],
"geometry": {
"coordinates": [
[
[
113.5606,
4.039703
],
[
114.09912,
3.923761
],
[
114.22494,
4.50623
],
[
113.68626,
4.622398
],
[
113.5606,
4.039703
]
]
],
"type": "Polygon"
},
"links": [
{
"rel": "self",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/items/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP",
"type": "application/geo+json;profile=\"https://stacspec.org\""
},
{
"rel": "collection",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a",
"type": "application/json",
"title": "BiomassLevel1a"
},
{
"rel": "parent",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a",
"type": "application/json",
"title": "BiomassLevel1a"
},
{
"rel": "describedBy",
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/annotation/navigation/bio_s1_scs__1s_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_att.xml",
"type": "text/xml",
"title": "navigation"
},
{
"rel": "describedBy",
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/annotation/navigation/bio_s1_scs__1s_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_orb.xml",
"type": "text/xml",
"title": "navigation"
},
{
"rel": "describedBy",
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/annotation/bio_s1_scs__1s_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_annot.xml",
"type": "text/xml",
"title": "annotation"
},
{
"rel": "describedBy",
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/annotation/bio_s1_scs__1s_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_lut.nc",
"type": "application/x-netcdf",
"title": "annotation"
},
{
"rel": "describedBy",
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/measurement/bio_s1_scs__1s_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_i.vrt",
"type": "application/xml",
"title": "measurement"
},
{
"rel": "describedBy",
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/measurement/bio_s1_scs__1s_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_i_abs.tiff",
"type": "image/tiff",
"title": "measurement"
},
{
"rel": "describedBy",
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/measurement/bio_s1_scs__1s_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_i_phase.tiff",
"type": "image/tiff",
"title": "measurement"
},
{
"rel": "describedBy",
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/schema/bio-aux-attitude.xsd",
"type": "text/xml",
"title": "schema"
},
{
"rel": "describedBy",
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/schema/bio-aux-orbit.xsd",
"type": "text/xml",
"title": "schema"
},
{
"rel": "describedBy",
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/schema/bio-common-types.xsd",
"type": "text/xml",
"title": "schema"
},
{
"rel": "describedBy",
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/schema/bio-l1-annotations.xsd",
"type": "text/xml",
"title": "schema"
},
{
"rel": "describedBy",
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/schema/bio-l1-overlay-support.xsd",
"type": "text/xml",
"title": "schema"
},
{
"rel": "describedBy",
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/schema/bio-l1-overlay.xsd",
"type": "text/xml",
"title": "schema"
},
{
"rel": "describedBy",
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/schema/bio-l1-vrt.xsd",
"type": "text/xml",
"title": "schema"
},
{
"rel": "describedBy",
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/schema/bio-l1ab-main-annotation.xsd",
"type": "text/xml",
"title": "schema"
},
{
"rel": "via",
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/bio_s1_scs__1s_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_01_d10gnp.xml",
"type": "application/gml+xml;profile=\\\"http://www.opengis.net/spec/EOMPOM/1.1\\\"",
"title": "OGC 10-157r4 metadata"
},
{
"rel": "alternate",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/items/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP?httpAccept=application/ld%2Bjson;profile=https://schema.org",
"type": "application/ld+json;profile=\"https://schema.org\"",
"title": "JSON-LD (schema.org) metadata"
},
{
"rel": "alternate",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/items/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP?httpAccept=application/ld%2Bjson",
"type": "application/ld+json;profile=\"http://data.europa.eu/930/\"",
"title": "JSON-LD (GeoDCAT-AP) metadata"
}
],
"id": "BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP",
"collection": "BiomassLevel1a",
"type": "Feature",
"stac_extensions": [
"https://stac-extensions.github.io/authentication/v1.1.0/schema.json",
"https://stac-extensions.github.io/alternate-assets/v1.2.0/schema.json",
"https://stac-extensions.github.io/file/v2.1.0/schema.json",
"https://stac-extensions.github.io/projection/v2.0.0/schema.json",
"https://stac-extensions.github.io/processing/v1.2.0/schema.json",
"https://cs-si.github.io/eopf-stac-extension/v1.2.0/schema.json",
"https://eof-eos.io.esa.int/stac-extension/v0.1.0/schema.json",
"https://stac-extensions.github.io/sar/v1.3.0/schema.json",
"https://stac-extensions.github.io/sat/v1.0.0/schema.json",
"https://stac-extensions.github.io/product/v1.0.0/schema.json",
"https://stac-extensions.github.io/grid/v1.1.0/schema.json",
"https://stac-extensions.github.io/timestamps/v1.1.0/schema.json"
],
"properties": {
"eofeos:repeat_cycle_id": "3",
"start_datetime": "2017-01-08T10:36:51.170Z",
"end_datetime": "2017-01-08T10:37:00.748Z",
"processing:facility": "Biomass CPF",
"product:type": "S1_SCS__1S",
"eofeos:global_coverage_id": "1",
"sat:anx_datetime": "2017-01-08T09:49:14.328Z",
"title": "BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP",
"platform": "Biomass",
"eofeos:major_cycle_id": "1",
"datetime": "2017-01-08T10:36:51.170Z",
"instruments": [
"P-SAR"
],
"constellation": "Biomass",
"sat:orbit_state": "descending",
"eopf:datatake_id": "871208",
"processing:software": {
"Biomass L1 Processor": "3.0.1"
},
"eopf:instrument_configuration_id": 0,
"grid:code": "WRS-18-151",
"processing:level": "L1A",
"proj:code": "EPSG:4326",
"created": "2025-01-13T08:39:10.954Z",
"published": "2017-01-08T10:37:00.748Z",
"version": "01",
"sar:observation_direction": "left",
"sar:polarizations": [
"HH",
"HV",
"VH",
"VV"
],
"auth:schemes": {
"http": {
"type": "http"
},
"oidc": {
"openIdConnectUrl": "https://iam.preop.esa-maap.org/realms/esa-maap/.well-known/openid-configuration",
"type": "openIdConnect"
}
},
"sar:instrument_mode": "SM",
"eofeos:orbit_drift_flag": false,
"processing:datetime": "2024-12-17T14:38:13Z",
"eofeos:mission_phase": "INTERFEROMETRIC",
"updated": "2025-12-15T17:28:15Z",
"sat:absolute_orbit": 106,
"product:acquisition_type": "nominal"
}
},
{
"stac_version": "1.0.0",
"assets": {
"quicklook_1": {
"roles": [
"overview"
],
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/preview/bio_s1_scs__1m_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_ql.png",
"type": "image/png",
"title": "preview"
},
"thumbnail": {
"roles": [
"thumbnail"
],
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/public/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0.BI.PNG",
"type": "image/png",
"title": "Preview"
},
"product": {
"file:local_path": "BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0.ZIP",
"alternate:name": "HTTPS",
"roles": [
"data",
"metadata",
"archive"
],
"href": "https://catalog.maap.eo.esa.int/data/zipper/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0",
"auth:refs": [
"oidc"
],
"published": "2017-01-08T10:37:00.748Z",
"title": "Zipped product",
"type": "application/zip"
},
"metadata_ogc_10_157r4": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/items/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0?httpAccept=application/gml%2Bxml&recordSchema=om",
"title": "OGC 10-157r4 metadata",
"type": "application/gml+xml;profile=\"http://www.opengis.net/spec/EOMPOM/1.1\""
},
"metadata_ogc_17_003r2": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/items/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0?mode=owc",
"title": "OGC 17-003r2 metadata",
"type": "application/geo+json;profile=\"http://www.opengis.net/spec/eo-geojson/1.0\""
},
"metadata_iso_19139": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/items/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0?httpAccept=application/vnd.iso.19139%2Bxml",
"title": "ISO 19139 metadata",
"type": "application/vnd.iso.19139+xml"
},
"quicklook": {
"roles": [
"overview"
],
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/preview/bio_s1_scs__1m_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_map.kmz",
"type": "application/vnd.google-earth.kmz",
"title": "preview"
}
},
"bbox": [
113.5606,
3.923761,
114.22494,
4.622398
],
"geometry": {
"coordinates": [
[
[
113.5606,
4.039703
],
[
114.09912,
3.923761
],
[
114.22494,
4.50623
],
[
113.68626,
4.622398
],
[
113.5606,
4.039703
]
]
],
"type": "Polygon"
},
"links": [
{
"rel": "self",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/items/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0",
"type": "application/geo+json;profile=\"https://stacspec.org\""
},
{
"rel": "collection",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a",
"type": "application/json",
"title": "BiomassLevel1a"
},
{
"rel": "parent",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a",
"type": "application/json",
"title": "BiomassLevel1a"
},
{
"rel": "describedBy",
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/annotation/navigation/bio_s1_scs__1m_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_att.xml",
"type": "text/xml",
"title": "navigation"
},
{
"rel": "describedBy",
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/annotation/navigation/bio_s1_scs__1m_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_orb.xml",
"type": "text/xml",
"title": "navigation"
},
{
"rel": "describedBy",
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/annotation/bio_s1_scs__1m_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_annot.xml",
"type": "text/xml",
"title": "annotation"
},
{
"rel": "describedBy",
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/annotation/bio_s1_scs__1m_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_lut.nc",
"type": "application/x-netcdf",
"title": "annotation"
},
{
"rel": "describedBy",
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/schema/bio-aux-attitude.xsd",
"type": "text/xml",
"title": "schema"
},
{
"rel": "describedBy",
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/schema/bio-aux-orbit.xsd",
"type": "text/xml",
"title": "schema"
},
{
"rel": "describedBy",
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/schema/bio-common-types.xsd",
"type": "text/xml",
"title": "schema"
},
{
"rel": "describedBy",
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/schema/bio-l1-annotations.xsd",
"type": "text/xml",
"title": "schema"
},
{
"rel": "describedBy",
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/schema/bio-l1-overlay-support.xsd",
"type": "text/xml",
"title": "schema"
},
{
"rel": "describedBy",
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/schema/bio-l1-overlay.xsd",
"type": "text/xml",
"title": "schema"
},
{
"rel": "describedBy",
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/schema/bio-l1ab-main-annotation.xsd",
"type": "text/xml",
"title": "schema"
},
{
"rel": "via",
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/bio_s1_scs__1m_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_01_d10go0.xml",
"type": "application/gml+xml;profile=\\\"http://www.opengis.net/spec/EOMPOM/1.1\\\"",
"title": "OGC 10-157r4 metadata"
},
{
"rel": "alternate",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/items/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0?httpAccept=application/ld%2Bjson;profile=https://schema.org",
"type": "application/ld+json;profile=\"https://schema.org\"",
"title": "JSON-LD (schema.org) metadata"
},
{
"rel": "alternate",
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/items/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0?httpAccept=application/ld%2Bjson",
"type": "application/ld+json;profile=\"http://data.europa.eu/930/\"",
"title": "JSON-LD (GeoDCAT-AP) metadata"
}
],
"id": "BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0",
"collection": "BiomassLevel1a",
"type": "Feature",
"stac_extensions": [
"https://stac-extensions.github.io/authentication/v1.1.0/schema.json",
"https://stac-extensions.github.io/alternate-assets/v1.2.0/schema.json",
"https://stac-extensions.github.io/file/v2.1.0/schema.json",
"https://stac-extensions.github.io/projection/v2.0.0/schema.json",
"https://stac-extensions.github.io/processing/v1.2.0/schema.json",
"https://cs-si.github.io/eopf-stac-extension/v1.2.0/schema.json",
"https://eof-eos.io.esa.int/stac-extension/v0.1.0/schema.json",
"https://stac-extensions.github.io/sar/v1.3.0/schema.json",
"https://stac-extensions.github.io/sat/v1.0.0/schema.json",
"https://stac-extensions.github.io/product/v1.0.0/schema.json",
"https://stac-extensions.github.io/grid/v1.1.0/schema.json",
"https://stac-extensions.github.io/timestamps/v1.1.0/schema.json"
],
"properties": {
"eofeos:repeat_cycle_id": "3",
"start_datetime": "2017-01-08T10:36:51.170Z",
"end_datetime": "2017-01-08T10:37:00.748Z",
"processing:facility": "Biomass CPF",
"product:type": "S1_SCS__1M",
"eofeos:global_coverage_id": "1",
"sat:anx_datetime": "2017-01-08T09:49:14.328Z",
"title": "BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0",
"platform": "Biomass",
"eofeos:major_cycle_id": "1",
"datetime": "2017-01-08T10:36:51.170Z",
"instruments": [
"P-SAR"
],
"constellation": "Biomass",
"sat:orbit_state": "descending",
"eopf:datatake_id": "871208",
"processing:software": {
"Biomass L1 Processor": "3.0.1"
},
"eopf:instrument_configuration_id": 0,
"grid:code": "WRS-18-151",
"processing:level": "L1A",
"proj:code": "EPSG:4326",
"created": "2025-01-13T08:37:27.822Z",
"published": "2017-01-08T10:37:00.748Z",
"version": "01",
"sar:observation_direction": "left",
"sar:polarizations": [
"HH",
"HV",
"VH",
"VV"
],
"auth:schemes": {
"http": {
"type": "http"
},
"oidc": {
"openIdConnectUrl": "https://iam.preop.esa-maap.org/realms/esa-maap/.well-known/openid-configuration",
"type": "openIdConnect"
}
},
"sar:instrument_mode": "SM",
"eofeos:orbit_drift_flag": false,
"processing:datetime": "2024-12-17T14:38:24Z",
"eofeos:mission_phase": "INTERFEROMETRIC",
"updated": "2025-12-15T17:28:15Z",
"sat:absolute_orbit": 106,
"product:acquisition_type": "nominal"
}
}
]
}
Example: 2.2
Search granules by geometry {intersects} [RD11] and
POSTmethod. Geometry parameter can be provided as dictionary or string.
# same request with POST
from pystac_client import Client
api = Client.open(URL_LANDING_PAGE)
results = api.search(
method = 'POST',
max_items = 2,
collections=[COLLECTION_ID6_MAAP],
# intersects = json.dumps(aoi_as_dict),
intersects = aoi_as_dict,
datetime=['2015-01-01T00:00:00Z', '2018-01-02T00:00:00Z']
)
curl -X POST https://catalog.maap.eo.esa.int/catalogue/search \
--header 'Content-Type: application/json' \
--data-raw '{
"datetime": "2015-01-01T00:00:00Z/2018-01-02T00:00:00Z",
"collections": ["BiomassLevel1a"],
"intersects": {"type":"Polygon","coordinates":[[[113.5606,4.039703],[114.09912,3.923761],[114.22494,4.50623],[113.68626,4.622398],[113.5606,4.039703]]]}
}'
print(f"{results.matched()} items found.")
assert results.matched() > 0
2 items found.
results.item_collection_as_dict()
{'type': 'FeatureCollection',
'features': [{'stac_version': '1.0.0',
'assets': {'quicklook_1': {'roles': ['overview'],
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/preview/bio_s1_scs__1s_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_ql.png',
'type': 'image/png',
'title': 'preview'},
'thumbnail': {'roles': ['thumbnail'],
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/public/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP.BI.PNG',
'type': 'image/png',
'title': 'Preview'},
'product': {'file:local_path': 'BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP.ZIP',
'alternate:name': 'HTTPS',
'roles': ['data', 'metadata', 'archive'],
'href': 'https://catalog.maap.eo.esa.int/data/zipper/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP',
'auth:refs': ['oidc'],
'published': '2017-01-08T10:37:00.748Z',
'title': 'Zipped product',
'type': 'application/zip'},
'metadata_ogc_10_157r4': {'roles': ['metadata'],
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/items/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP?httpAccept=application/gml%2Bxml&recordSchema=om',
'title': 'OGC 10-157r4 metadata',
'type': 'application/gml+xml;profile="http://www.opengis.net/spec/EOMPOM/1.1"'},
'metadata_ogc_17_003r2': {'roles': ['metadata'],
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/items/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP?mode=owc',
'title': 'OGC 17-003r2 metadata',
'type': 'application/geo+json;profile="http://www.opengis.net/spec/eo-geojson/1.0"'},
'metadata_iso_19139': {'roles': ['metadata'],
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/items/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP?httpAccept=application/vnd.iso.19139%2Bxml',
'title': 'ISO 19139 metadata',
'type': 'application/vnd.iso.19139+xml'},
'quicklook': {'roles': ['overview'],
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/preview/bio_s1_scs__1s_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_map.kmz',
'type': 'application/vnd.google-earth.kmz',
'title': 'preview'}},
'bbox': [113.5606, 3.923761, 114.22494, 4.622398],
'geometry': {'coordinates': [[[113.5606, 4.039703],
[114.09912, 3.923761],
[114.22494, 4.50623],
[113.68626, 4.622398],
[113.5606, 4.039703]]],
'type': 'Polygon'},
'links': [{'rel': 'self',
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/items/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP',
'type': 'application/geo+json;profile="https://stacspec.org"'},
{'rel': 'collection',
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a',
'type': 'application/json',
'title': 'BiomassLevel1a'},
{'rel': 'parent',
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a',
'type': 'application/json',
'title': 'BiomassLevel1a'},
{'rel': 'describedBy',
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/annotation/navigation/bio_s1_scs__1s_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_att.xml',
'type': 'text/xml',
'title': 'navigation'},
{'rel': 'describedBy',
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/annotation/navigation/bio_s1_scs__1s_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_orb.xml',
'type': 'text/xml',
'title': 'navigation'},
{'rel': 'describedBy',
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/annotation/bio_s1_scs__1s_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_annot.xml',
'type': 'text/xml',
'title': 'annotation'},
{'rel': 'describedBy',
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/annotation/bio_s1_scs__1s_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_lut.nc',
'type': 'application/x-netcdf',
'title': 'annotation'},
{'rel': 'describedBy',
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/measurement/bio_s1_scs__1s_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_i.vrt',
'type': 'application/xml',
'title': 'measurement'},
{'rel': 'describedBy',
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/measurement/bio_s1_scs__1s_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_i_abs.tiff',
'type': 'image/tiff',
'title': 'measurement'},
{'rel': 'describedBy',
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/measurement/bio_s1_scs__1s_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_i_phase.tiff',
'type': 'image/tiff',
'title': 'measurement'},
{'rel': 'describedBy',
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/schema/bio-aux-attitude.xsd',
'type': 'text/xml',
'title': 'schema'},
{'rel': 'describedBy',
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/schema/bio-aux-orbit.xsd',
'type': 'text/xml',
'title': 'schema'},
{'rel': 'describedBy',
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/schema/bio-common-types.xsd',
'type': 'text/xml',
'title': 'schema'},
{'rel': 'describedBy',
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/schema/bio-l1-annotations.xsd',
'type': 'text/xml',
'title': 'schema'},
{'rel': 'describedBy',
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/schema/bio-l1-overlay-support.xsd',
'type': 'text/xml',
'title': 'schema'},
{'rel': 'describedBy',
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/schema/bio-l1-overlay.xsd',
'type': 'text/xml',
'title': 'schema'},
{'rel': 'describedBy',
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/schema/bio-l1-vrt.xsd',
'type': 'text/xml',
'title': 'schema'},
{'rel': 'describedBy',
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/schema/bio-l1ab-main-annotation.xsd',
'type': 'text/xml',
'title': 'schema'},
{'rel': 'via',
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP/bio_s1_scs__1s_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_01_d10gnp.xml',
'type': 'application/gml+xml;profile=\\"http://www.opengis.net/spec/EOMPOM/1.1\\"',
'title': 'OGC 10-157r4 metadata'},
{'rel': 'alternate',
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/items/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP?httpAccept=application/ld%2Bjson;profile=https://schema.org',
'type': 'application/ld+json;profile="https://schema.org"',
'title': 'JSON-LD (schema.org) metadata'},
{'rel': 'alternate',
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/items/BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP?httpAccept=application/ld%2Bjson',
'type': 'application/ld+json;profile="http://data.europa.eu/930/"',
'title': 'JSON-LD (GeoDCAT-AP) metadata'}],
'id': 'BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP',
'collection': 'BiomassLevel1a',
'type': 'Feature',
'stac_extensions': ['https://stac-extensions.github.io/authentication/v1.1.0/schema.json',
'https://stac-extensions.github.io/alternate-assets/v1.2.0/schema.json',
'https://stac-extensions.github.io/file/v2.1.0/schema.json',
'https://stac-extensions.github.io/projection/v2.0.0/schema.json',
'https://stac-extensions.github.io/processing/v1.2.0/schema.json',
'https://cs-si.github.io/eopf-stac-extension/v1.2.0/schema.json',
'https://eof-eos.io.esa.int/stac-extension/v0.1.0/schema.json',
'https://stac-extensions.github.io/sar/v1.3.0/schema.json',
'https://stac-extensions.github.io/sat/v1.0.0/schema.json',
'https://stac-extensions.github.io/product/v1.0.0/schema.json',
'https://stac-extensions.github.io/grid/v1.1.0/schema.json',
'https://stac-extensions.github.io/timestamps/v1.1.0/schema.json'],
'properties': {'eofeos:repeat_cycle_id': '3',
'start_datetime': '2017-01-08T10:36:51.170Z',
'end_datetime': '2017-01-08T10:37:00.748Z',
'processing:facility': 'Biomass CPF',
'product:type': 'S1_SCS__1S',
'eofeos:global_coverage_id': '1',
'sat:anx_datetime': '2017-01-08T09:49:14.328Z',
'title': 'BIO_S1_SCS__1S_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GNP',
'platform': 'Biomass',
'eofeos:major_cycle_id': '1',
'datetime': '2017-01-08T10:36:51.170Z',
'instruments': ['P-SAR'],
'constellation': 'Biomass',
'sat:orbit_state': 'descending',
'eopf:datatake_id': '871208',
'processing:software': {'Biomass L1 Processor': '3.0.1'},
'eopf:instrument_configuration_id': 0,
'grid:code': 'WRS-18-151',
'processing:level': 'L1A',
'proj:code': 'EPSG:4326',
'created': '2025-01-13T08:39:10.954Z',
'published': '2017-01-08T10:37:00.748Z',
'version': '01',
'sar:observation_direction': 'left',
'sar:polarizations': ['HH', 'HV', 'VH', 'VV'],
'auth:schemes': {'http': {'type': 'http'},
'oidc': {'openIdConnectUrl': 'https://iam.preop.esa-maap.org/realms/esa-maap/.well-known/openid-configuration',
'type': 'openIdConnect'}},
'sar:instrument_mode': 'SM',
'eofeos:orbit_drift_flag': False,
'processing:datetime': '2024-12-17T14:38:13Z',
'eofeos:mission_phase': 'INTERFEROMETRIC',
'updated': '2025-12-15T17:28:15Z',
'sat:absolute_orbit': 106,
'product:acquisition_type': 'nominal'}},
{'stac_version': '1.0.0',
'assets': {'quicklook_1': {'roles': ['overview'],
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/preview/bio_s1_scs__1m_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_ql.png',
'type': 'image/png',
'title': 'preview'},
'thumbnail': {'roles': ['thumbnail'],
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/public/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0.BI.PNG',
'type': 'image/png',
'title': 'Preview'},
'product': {'file:local_path': 'BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0.ZIP',
'alternate:name': 'HTTPS',
'roles': ['data', 'metadata', 'archive'],
'href': 'https://catalog.maap.eo.esa.int/data/zipper/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0',
'auth:refs': ['oidc'],
'published': '2017-01-08T10:37:00.748Z',
'title': 'Zipped product',
'type': 'application/zip'},
'metadata_ogc_10_157r4': {'roles': ['metadata'],
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/items/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0?httpAccept=application/gml%2Bxml&recordSchema=om',
'title': 'OGC 10-157r4 metadata',
'type': 'application/gml+xml;profile="http://www.opengis.net/spec/EOMPOM/1.1"'},
'metadata_ogc_17_003r2': {'roles': ['metadata'],
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/items/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0?mode=owc',
'title': 'OGC 17-003r2 metadata',
'type': 'application/geo+json;profile="http://www.opengis.net/spec/eo-geojson/1.0"'},
'metadata_iso_19139': {'roles': ['metadata'],
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/items/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0?httpAccept=application/vnd.iso.19139%2Bxml',
'title': 'ISO 19139 metadata',
'type': 'application/vnd.iso.19139+xml'},
'quicklook': {'roles': ['overview'],
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/preview/bio_s1_scs__1m_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_map.kmz',
'type': 'application/vnd.google-earth.kmz',
'title': 'preview'}},
'bbox': [113.5606, 3.923761, 114.22494, 4.622398],
'geometry': {'coordinates': [[[113.5606, 4.039703],
[114.09912, 3.923761],
[114.22494, 4.50623],
[113.68626, 4.622398],
[113.5606, 4.039703]]],
'type': 'Polygon'},
'links': [{'rel': 'self',
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/items/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0',
'type': 'application/geo+json;profile="https://stacspec.org"'},
{'rel': 'collection',
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a',
'type': 'application/json',
'title': 'BiomassLevel1a'},
{'rel': 'parent',
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a',
'type': 'application/json',
'title': 'BiomassLevel1a'},
{'rel': 'describedBy',
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/annotation/navigation/bio_s1_scs__1m_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_att.xml',
'type': 'text/xml',
'title': 'navigation'},
{'rel': 'describedBy',
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/annotation/navigation/bio_s1_scs__1m_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_orb.xml',
'type': 'text/xml',
'title': 'navigation'},
{'rel': 'describedBy',
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/annotation/bio_s1_scs__1m_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_annot.xml',
'type': 'text/xml',
'title': 'annotation'},
{'rel': 'describedBy',
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/annotation/bio_s1_scs__1m_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_lut.nc',
'type': 'application/x-netcdf',
'title': 'annotation'},
{'rel': 'describedBy',
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/schema/bio-aux-attitude.xsd',
'type': 'text/xml',
'title': 'schema'},
{'rel': 'describedBy',
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/schema/bio-aux-orbit.xsd',
'type': 'text/xml',
'title': 'schema'},
{'rel': 'describedBy',
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/schema/bio-common-types.xsd',
'type': 'text/xml',
'title': 'schema'},
{'rel': 'describedBy',
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/schema/bio-l1-annotations.xsd',
'type': 'text/xml',
'title': 'schema'},
{'rel': 'describedBy',
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/schema/bio-l1-overlay-support.xsd',
'type': 'text/xml',
'title': 'schema'},
{'rel': 'describedBy',
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/schema/bio-l1-overlay.xsd',
'type': 'text/xml',
'title': 'schema'},
{'rel': 'describedBy',
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/schema/bio-l1ab-main-annotation.xsd',
'type': 'text/xml',
'title': 'schema'},
{'rel': 'via',
'href': 'https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/08/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0/bio_s1_scs__1m_20170108t103651_20170108t103700_i_g01_m01_c03_t018_f151_01_d10go0.xml',
'type': 'application/gml+xml;profile=\\"http://www.opengis.net/spec/EOMPOM/1.1\\"',
'title': 'OGC 10-157r4 metadata'},
{'rel': 'alternate',
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/items/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0?httpAccept=application/ld%2Bjson;profile=https://schema.org',
'type': 'application/ld+json;profile="https://schema.org"',
'title': 'JSON-LD (schema.org) metadata'},
{'rel': 'alternate',
'href': 'https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/items/BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0?httpAccept=application/ld%2Bjson',
'type': 'application/ld+json;profile="http://data.europa.eu/930/"',
'title': 'JSON-LD (GeoDCAT-AP) metadata'}],
'id': 'BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0',
'collection': 'BiomassLevel1a',
'type': 'Feature',
'stac_extensions': ['https://stac-extensions.github.io/authentication/v1.1.0/schema.json',
'https://stac-extensions.github.io/alternate-assets/v1.2.0/schema.json',
'https://stac-extensions.github.io/file/v2.1.0/schema.json',
'https://stac-extensions.github.io/projection/v2.0.0/schema.json',
'https://stac-extensions.github.io/processing/v1.2.0/schema.json',
'https://cs-si.github.io/eopf-stac-extension/v1.2.0/schema.json',
'https://eof-eos.io.esa.int/stac-extension/v0.1.0/schema.json',
'https://stac-extensions.github.io/sar/v1.3.0/schema.json',
'https://stac-extensions.github.io/sat/v1.0.0/schema.json',
'https://stac-extensions.github.io/product/v1.0.0/schema.json',
'https://stac-extensions.github.io/grid/v1.1.0/schema.json',
'https://stac-extensions.github.io/timestamps/v1.1.0/schema.json'],
'properties': {'eofeos:repeat_cycle_id': '3',
'start_datetime': '2017-01-08T10:36:51.170Z',
'end_datetime': '2017-01-08T10:37:00.748Z',
'processing:facility': 'Biomass CPF',
'product:type': 'S1_SCS__1M',
'eofeos:global_coverage_id': '1',
'sat:anx_datetime': '2017-01-08T09:49:14.328Z',
'title': 'BIO_S1_SCS__1M_20170108T103651_20170108T103700_I_G01_M01_C03_T018_F151_01_D10GO0',
'platform': 'Biomass',
'eofeos:major_cycle_id': '1',
'datetime': '2017-01-08T10:36:51.170Z',
'instruments': ['P-SAR'],
'constellation': 'Biomass',
'sat:orbit_state': 'descending',
'eopf:datatake_id': '871208',
'processing:software': {'Biomass L1 Processor': '3.0.1'},
'eopf:instrument_configuration_id': 0,
'grid:code': 'WRS-18-151',
'processing:level': 'L1A',
'proj:code': 'EPSG:4326',
'created': '2025-01-13T08:37:27.822Z',
'published': '2017-01-08T10:37:00.748Z',
'version': '01',
'sar:observation_direction': 'left',
'sar:polarizations': ['HH', 'HV', 'VH', 'VV'],
'auth:schemes': {'http': {'type': 'http'},
'oidc': {'openIdConnectUrl': 'https://iam.preop.esa-maap.org/realms/esa-maap/.well-known/openid-configuration',
'type': 'openIdConnect'}},
'sar:instrument_mode': 'SM',
'eofeos:orbit_drift_flag': False,
'processing:datetime': '2024-12-17T14:38:24Z',
'eofeos:mission_phase': 'INTERFEROMETRIC',
'updated': '2025-12-15T17:28:15Z',
'sat:absolute_orbit': 106,
'product:acquisition_type': 'nominal'}}]}
Search by bounding box#
The geometry parameter can be provided as Python list or tuple.
Example: 2.3
Search granules by bounding box {bbox} list [RD11]. Geometry parameter is provided as Python list.
from pystac_client import Client
api = Client.open(URL_LANDING_PAGE)
results = api.search(
method = 'GET',
max_items=10,
collections=[COLLECTION_ID6_MAAP],
bbox = [108.0, -4.66, 119.0, 8.05], # Borneo
# datetime=['2015-01-01T00:00:00Z', '2022-01-02T00:00:00Z']
)
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/search \
--data-urlencode "bbox=108.0,-4.66,119.0,8.05" \
--data-urlencode "collections=BiomassLevel1a"
33 items found.
Example: 2.4
Search granules by bounding box {bbox} [RD11]. Geometry parameter is provided as Python tuple.
# x, y = (14.95, 37.74) # Center point of query (Mount Etna)
x, y = (4.38, 51.25) # Center point of query (Antwerp harbour)
r = 0.1
box = (x - r, y - r, x + r, y + r)
from pystac_client import Client
api = Client.open(URL_LANDING_PAGE)
results = api.search(
method = 'GET',
max_items=10,
collections=[COLLECTION_ID1],
bbox = box
)
Same request using curl.
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/search \
--data-urlencode "bbox=4.28,51.15,4.4799999999999995,51.35" \
--data-urlencode "collections=PROBA.CHRIS.1A"
8 items found.
Search by temporal extent#
Example: 2.6
Search granules by date range (datetime) [RD01].
from pystac_client import Client
api = Client.open(URL_LANDING_PAGE)
results = api.search(
method = 'GET',
max_items = 50,
collections=[COLLECTION_ID6_MAAP],
datetime=['2017-01-01T00:00:00Z', '2017-05-30T00:00:00Z']
)
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/search \
--data-urlencode "datetime=2017-01-01T00:00:00Z/2017-05-30T00:00:00Z" \
--data-urlencode "collections=BiomassLevel1a"
display_date_distribution(results, "datetime")
Example: 2.7
Search granules by open-ended date range (datetime) [RD01].
from pystac_client import Client
api = Client.open(URL_LANDING_PAGE)
results = api.search(
method = 'GET',
max_items = 50,
collections=[COLLECTION_ID6_MAAP],
datetime=['2017-02-01T00:00:00Z', None]
)
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/search \
--data-urlencode "datetime=2017-02-01T00:00:00Z/.." \
--data-urlencode "collections=BiomassLevel1a"
print(f"{results.matched()} items found.")
21 items found.
display_value_distribution(results, 'product:type')
Search by identifier#
Example: 2.8
Search granule by identifier (ids) [RD01].
granule_id1
'BIO_S1_SCS__1M_20170206T222634_20170206T222658_I_G01_M02_C01_T010_F309_01_CT1I4R'
from pystac_client import Client
api = Client.open(URL_LANDING_PAGE)
results = api.search(
method = 'GET',
collections=[COLLECTION_ID6_MAAP],
ids=[granule_id1]
)
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/search \
--data-urlencode "ids=BIO_S1_SCS__1M_20170206T222634_20170206T222658_I_G01_M02_C01_T010_F309_01_CT1I4R" \
--data-urlencode "collections=BiomassLevel1a"
1 items found.
| 0 | |
|---|---|
| geometry | POLYGON ((111.22745 -1.507788, 110.689896 -1.6... |
| eofeos:repeat_cycle_id | 1 |
| start_datetime | 2017-02-06T22:26:34.168Z |
| end_datetime | 2017-02-06T22:26:58.234Z |
| processing:facility | Biomass CPF |
| product:type | S1_SCS__1M |
| eofeos:global_coverage_id | 1 |
| sat:anx_datetime | 2017-02-06T20:49:04.860Z |
| title | BIO_S1_SCS__1M_20170206T222634_20170206T222658... |
| platform | Biomass |
| eofeos:major_cycle_id | 2 |
| datetime | 2017-02-06T22:26:34.168Z |
| instruments | [P-SAR] |
| constellation | Biomass |
| sat:orbit_state | ascending |
| eopf:datatake_id | 4413145 |
| processing:software | {'Biomass L1 Processor': '2.2.2'} |
| eopf:instrument_configuration_id | 0 |
| grid:code | WRS-10-309 |
| processing:level | L1A |
| proj:code | EPSG:4326 |
| created | 2025-01-09T10:14:25.707Z |
| published | 2017-02-06T22:26:58.234Z |
| version | 01 |
| sar:observation_direction | left |
| sar:polarizations | [HH, HV, VH, VV] |
| auth:schemes | {'http': {'type': 'http'}, 'oidc': {'openIdCon... |
| sar:instrument_mode | SM |
| eofeos:orbit_drift_flag | False |
| processing:datetime | 2024-07-15T15:38:51Z |
| eofeos:mission_phase | INTERFEROMETRIC |
| updated | 2025-12-15T17:28:15Z |
| sat:absolute_orbit | 538 |
| product:acquisition_type | nominal |
Example: 2.9
Search granule by identifier (
ids) [RD01] without specifying collection.
from pystac_client import Client
api = Client.open(URL_LANDING_PAGE)
results = api.search(
method = 'GET',
ids=[granule_id1]
)
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/search \
--data-urlencode "ids=BIO_S1_SCS__1M_20170206T222634_20170206T222658_I_G01_M02_C01_T010_F309_01_CT1I4R"
print(f"{results.matched()} items found.")
assert results.matched() == 1
1 items found.
Search with filter#
Example: 2.10
Search granules with filter {filter} [RD01]. Available filters are advertised in
Queryablesobject at /collections/{id}/queryables.
url = URL_LANDING_PAGE + "collections/" + COLLECTION_ID6_MAAP + "/queryables"
url
'https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/queryables'
# Get queryables response and list parameters alphabetically.
response = requests.get(url)
data = json.loads(response.text)
jstr = json.dumps(data, indent=3)
md("```json\n" + jstr + "\n```\n")
# df = pd.DataFrame(data['properties'].items(),columns=['key','value'])
# df['type'] = df.apply(lambda row : row['value']['type'], axis = 1)
# df
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"description": "Queryable names for the STAC API Item Search filter.",
"type": "object",
"title": "Queryables for BiomassLevel1a collection",
"properties": {
"eofeos:repeat_cycle_id": {
"description": "Repeat cycle identifier. Each Major Cycle is split into repeat cycles, depending on Mission Phase or Orbit Control moment. Values are mission-specific.",
"title": "Repeat cycle id",
"type": "string",
"enum": [
"1",
"2",
"3"
]
},
"processing:facility": {
"description": "The processing center (e.g. PDHS-E, PDHS-K, DPA, F-ACRI)",
"title": "Processing center",
"type": "string",
"enum": [
"Biomass CPF"
]
},
"eofeos:global_coverage_id": {
"description": "Global coverage identifier. Each Phase of the mission is split in different Global Coverages. Values are mission-specific.",
"title": "Global coverage id",
"type": "string",
"enum": [
"1"
]
},
"product:type": {
"description": "A string identifying the entry type",
"title": "Product type",
"type": "string",
"enum": [
"S1_SCS__1M",
"S1_SCS__1S",
"S2_SCS__1M",
"S2_SCS__1S",
"S3_SCS__1M",
"S3_SCS__1S"
]
},
"platform": {
"description": "The platform short name",
"title": "Platform",
"type": "string",
"enum": [
"Biomass"
]
},
"eofeos:major_cycle_id": {
"description": "Major cycle identifier. Each Global Coverage is split into multiple Major cycles. Values are mission-specific.",
"title": "Major cycle id",
"type": "string",
"enum": [
"1",
"2",
"3",
"4",
"5",
"6",
"7"
]
},
"datetime": {
"description": "Temporal interval to search",
"title": "Datetime",
"type": "string"
},
"instruments": {
"description": "The instrument (e.g. MERIS, AATSR, ASAR, HRVIR. SAR)",
"title": "Instrument",
"type": "string",
"enum": [
"P-SAR"
]
},
"sat:orbit_state": {
"description": "The acquisition orbit direction",
"title": "Orbit direction",
"type": "string",
"enum": [
"ASCENDING",
"DESCENDING"
]
},
"productionStatus": {
"description": "The status of the entry",
"title": "Production status",
"type": "string",
"enum": [
"ARCHIVED"
]
},
"startTimeFromAscendingNode": {
"description": "Start time of acquisition in milliseconds from ascending node date",
"title": "Start time from ascending node",
"type": "number"
},
"eopf:datatake_id": {
"description": "Datatake identification",
"title": "Data take id",
"type": "integer"
},
"completionTimeFromAscendingNode": {
"description": "Completion time of acquisition in milliseconds from ascending node date",
"title": "Completion time from ascending node",
"type": "number"
},
"id": {
"description": "Item identifier",
"title": "Item ID",
"type": "string"
},
"processing:software": {
"description": "The processor software name",
"title": "Processor name",
"type": "string",
"enum": [
"Biomass L1 Processor"
]
},
"track": {
"description": "The orbit track",
"title": "Track",
"type": "string"
},
"processing:level": {
"description": "The processing level applied to the entry",
"title": "Processing level",
"type": "string",
"enum": [
"L1A"
]
},
"created": {
"format": "date-time",
"description": "The date when the metadata item was ingested for the first time (i.e. inserted) in the catalogue",
"title": "Creation date",
"type": "string"
},
"polarisationChannels": {
"description": "Polarisation channel transmit/receive configuration: horizontal, vertical",
"title": "Polarisation channels",
"type": "string",
"enum": [
"HH, HV, VH, VV"
]
},
"externalId": {
"description": "Search by external identifier",
"title": "External identifiers",
"type": "string"
},
"published": {
"description": "The time when the result became available (e.g. if postprocessing or laboratory analysis is required, it might be different to the phenomenonTime). dateTime in ISO 8601 format (CCYY-MM- DDThh:mm[:ss[.cc]]Z)",
"title": "Availability time",
"type": "string"
},
"swathIdentifier": {
"description": "Swath identifier (e.g. Envisat ASAR has 7 distinct swaths (I1,I2,I3...I7) that correspond to precise incidence angles for the sensor). Value list can be retrieved with codeSpace",
"title": "Swath identifier",
"type": "string",
"enum": [
"S1",
"S2",
"S3"
]
},
"version": {
"description": "The version of the product",
"title": "Product version",
"type": "string",
"enum": [
"01"
]
},
"sar:observation_direction": {
"description": "Antenna look direction",
"title": "Antenna look direction",
"type": "string",
"enum": [
"LEFT",
"RIGHT"
]
},
"sar:polarizations": {
"description": "Polarisation mode",
"title": "Polarisation mode",
"type": "string",
"enum": [
"Q"
]
},
"q": {
"description": "Free text search term",
"title": "API Records Query",
"type": "string"
},
"eofeos:orbit_drift_flag": {
"description": "Orbit drift flag. Indicates if the product was generated during a moment where there were no active orbit control measures",
"title": "Orbit drift flag",
"type": "string",
"enum": [
"false"
]
},
"processing:datetime": {
"format": "date-time",
"description": "A date interval requesting entries processed within a given time interval",
"title": "Processing date",
"type": "string"
},
"eopf:instrument_mode": {
"description": "The sensor mode",
"title": "Sensor mode",
"type": "string",
"enum": [
"SM"
]
},
"eofeos:mission_phase": {
"description": "Mission phase, each one has a specific objective for the mission. Values are mission-specific.",
"title": "Mission phase",
"type": "string",
"enum": [
"INTERFEROMETRIC"
]
},
"processingMode": {
"description": "Processing mode. Often referred to as real time, near real time etc",
"title": "Processing mode",
"type": "string",
"enum": [
"OPERATIONAL"
]
},
"sat:absolute_orbit": {
"description": "The acquisition orbit number",
"title": "Orbit number",
"type": "integer"
},
"updated": {
"format": "date-time",
"description": "The date when the metadata item was last modified (i.e. updated) in the catalogue",
"title": "Modification date",
"type": "string"
},
"product:acquisition_type": {
"description": "Used to distinguish at a high level the appropriateness of the acquisition for \"general\" use, whether the product is a nominal acquisition, special calibration product or other",
"title": "Acquisition type",
"type": "string",
"enum": [
"NOMINAL"
]
},
"frame": {
"description": "The orbit frame",
"title": "Frame",
"type": "string"
}
},
"$id": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/queryables"
}
from pystac_client import Client
api = Client.open(URL_LANDING_PAGE)
results = api.search(
method = 'GET',
max_items=10,
collections=[COLLECTION_ID6_MAAP],
# bbox = [14.90, 37.700, 14.99, 37.780], # Mount Etna
bbox = [108.0, -4.66, 119.0, 8.05], # Borneo
# datetime=['2015-01-01T00:00:00Z', '2022-01-02T00:00:00Z'],
datetime=['2017-01-01T00:00:00Z', '2017-05-30T00:00:00Z'],
filter="product:type='S1_SCS__1M' and instruments='P-SAR'"
)
Same request with curl.
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/search \
--data-urlencode "bbox=108.0,-4.66,119.0,8.05" \
--data-urlencode "datetime=2017-01-01T00:00:00Z/2017-05-30T00:00:00Z" \
--data-urlencode "collections=BiomassLevel1a" \
--data-urlencode "filter=product:type='S1_SCS__1M' and instruments='P-SAR'" \
--data-urlencode "filter-lang=cql2-text"
8 items found.
display_value_distribution(results, 'product:type')
Search by cloud cover#
Example: 2.11
Search granules by cloud cover (
filterandeo:cloud_cover) [RD01]. Available filters are advertised inQueryablesobject at /collections/{id}/queryables.
from pystac_client import Client
api = Client.open(URL_LANDING_PAGE)
results = api.search(
method = 'GET',
max_items=50,
collections=[COLLECTION_ID3_CLOUDS],
filter="eo:cloud_cover < 10"
)
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/search \
--data-urlencode "collections=IKONOS.ESA.archive" \
--data-urlencode "filter=eo:cloud_cover < 10" \
--data-urlencode "filter-lang=cql2-text"
246 items found.
# Display cloud-cover values as histogram to show that range is taken into account
stac_json = results.item_collection_as_dict()
gdf = gpd.GeoDataFrame.from_features(stac_json)
try:
_ = gdf[['title','eo:cloud_cover']].hist()
except:
print("eo:cloud_cover information is not available.")
# fails if properties are not in the metadata.
try:
# _ = gdf[['view:sun_elevation','view:incidence_angle','view:sun_azimuth']].plot.hist(alpha=0.7)
_ = gdf[['view:sun_elevation','view:sun_azimuth']].plot.hist(alpha=0.7)
except:
print("acquisition angle information is not available.")
# gdf
# display_value_distribution(results, 'sat:orbit_state')
display_value_distribution(results, 'product:type')
Search by modification date#
Example: 2.12
Search granules by modification date (
filterwithupdated).
api = Client.open(URL_LANDING_PAGE)
results = api.search(
method = "GET",
max_items = 10,
filter="updated > TIMESTAMP('2025-02-10T09:54:34.651Z')",
collections = [ COLLECTION_ID6_MAAP ]
)
print(f"{results.matched()} granules found.")
33 granules found.
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/search \
--data-urlencode "collections=BiomassLevel1a" \
--data-urlencode "filter=updated > TIMESTAMP('2025-02-10T09:54:34.651Z')" \
--data-urlencode "filter-lang=cql2-text"
data = results.item_collection_as_dict()
df = pd.json_normalize(data, record_path=['features'])
df[['id', 'properties.updated', 'collection']]
| id | properties.updated | collection | |
|---|---|---|---|
| 0 | BIO_S1_SCS__1S_20170108T103651_20170108T103700... | 2025-12-15T17:28:15Z | BiomassLevel1a |
| 1 | BIO_S2_SCS__1S_20170110T222200_20170110T222221... | 2025-12-15T17:28:15Z | BiomassLevel1a |
| 2 | BIO_S1_SCS__1M_20170206T222634_20170206T222658... | 2025-12-15T17:28:15Z | BiomassLevel1a |
| 3 | BIO_S3_SCS__1S_20170228T104258_20170228T104319... | 2025-12-15T17:28:15Z | BiomassLevel1a |
| 4 | BIO_S1_SCS__1M_20170705T221635_20170705T221656... | 2025-12-15T17:28:15Z | BiomassLevel1a |
| 5 | BIO_S1_SCS__1M_20170108T103717_20170108T103738... | 2025-12-15T17:32:19Z | BiomassLevel1a |
| 6 | BIO_S2_SCS__1M_20170110T222114_20170110T222124... | 2025-12-15T17:28:15Z | BiomassLevel1a |
| 7 | BIO_S2_SCS__1M_20170110T222200_20170110T222221... | 2025-12-15T17:28:15Z | BiomassLevel1a |
| 8 | BIO_S1_SCS__1S_20170108T103717_20170108T103738... | 2025-12-15T17:28:15Z | BiomassLevel1a |
| 9 | BIO_S3_SCS__1M_20170228T104245_20170228T104300... | 2025-12-15T17:28:15Z | BiomassLevel1a |
Search multiple collections#
Example: 2.13
Search granules in multiple collections {collections} [RD01].
api = Client.open(URL_LANDING_PAGE)
results = api.search(
method = 'GET',
max_items=10,
collections=[COLLECTION_ID6_MAAP, COLLECTION_ID9_MAAP],
bbox = [108.0, -4.66, 119.0, 8.05] # Borneo
# bbox = [13.90, 36.700, 15.99, 38.780], # Mount Etna (large)
)
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/search \
--data-urlencode "bbox=108.0,-4.66,119.0,8.05" \
--data-urlencode "collections=BiomassLevel1a,BiomassLevel2a"
print(f"{results.matched()} items found.")
42 items found.
results = api.search(
method = 'GET',
max_items=10,
collections=[COLLECTION_ID9_MAAP],
bbox = [108.0, -4.66, 119.0, 8.05] # Borneo
# bbox = [13.90, 36.700, 15.99, 38.780], # Mount Etna (large)
)
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/search \
--data-urlencode "bbox=108.0,-4.66,119.0,8.05" \
--data-urlencode "collections=BiomassLevel2a"
print(f"{results.matched()} items found.")
9 items found.
Example: 2.13
Search granules in multiple collections {collections} [RD01] using
POST.
from pystac_client import Client
api = Client.open(URL_LANDING_PAGE)
results = api.search(
method = 'POST',
max_items=50,
collections=[COLLECTION_ID6_MAAP, COLLECTION_ID9_MAAP],
bbox = [108.0, -4.66, 119.0, 8.05] # Borneo
# bbox = [13.90, 36.700, 15.99, 38.780] # Mount Etna (large)
)
curl -X POST https://catalog.maap.eo.esa.int/catalogue/search \
--header 'Content-Type: application/json' \
--data-raw '{
"bbox": "108.0,-4.66,119.0,8.05",
"collections": ["BiomassLevel1a", "BiomassLevel2a"]
}'
print(f"{results.matched()} items found.")
42 items found.
Granule properties#
Granules are returned via item links in the Catalog or Collection objects, or via the STAC API (Feature).
An item is a GeoJSON Feature and the encoding is derived from the original OGC 17-003r2 encoding
according to a documented mapping.
The properties available include attributes from STAC extensions as well:
Assets#
Granules provide access to a dictionary with assets. The roles attribute indicates the purpose of the asset. The href attribute provides the URL to access the asset. Granule assets include thumbnail (when available), a data download link (equivalent to the rel=enclosure), and various metadata formats.
The table below list some frequently used metadata formats and their corresponding media type (type).
Format |
type |
|---|---|
application/vnd.iso.19139+xml |
|
application/vnd.iso.19139-2+xml |
|
application/vnd.iso.19115-3+xml |
|
application/gml+xml;profile=http://www.opengis.net/spec/EOMPOM/1.1 |
|
application/geo+json;profile=http://www.opengis.net/spec/eo-geojson/1.0 |
# Show assets of first search result (GeoJSON)
data = results.item_collection_as_dict()
jstr = json.dumps(data['features'][1]['assets'], indent=3)
md("```json\n" + jstr + "\n```\n")
{
"quicklook_1": {
"roles": [
"overview"
],
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/10/BIO_S2_SCS__1S_20170110T222200_20170110T222221_I_G01_M01_C01_T011_F001_01_CT15EC/BIO_S2_SCS__1S_20170110T222200_20170110T222221_I_G01_M01_C01_T011_F001_01_CT15EC/preview/bio_s2_scs__1s_20170110t222200_20170110t222221_i_g01_m01_c01_t011_f001_ql.png",
"type": "image/png",
"title": "preview"
},
"thumbnail": {
"roles": [
"thumbnail"
],
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/10/BIO_S2_SCS__1S_20170110T222200_20170110T222221_I_G01_M01_C01_T011_F001_01_CT15EC/public/BIO_S2_SCS__1S_20170110T222200_20170110T222221_I_G01_M01_C01_T011_F001_01_CT15EC.BI.PNG",
"type": "image/png",
"title": "Preview"
},
"product": {
"file:local_path": "BIO_S2_SCS__1S_20170110T222200_20170110T222221_I_G01_M01_C01_T011_F001_01_CT15EC.ZIP",
"alternate:name": "HTTPS",
"roles": [
"data",
"metadata",
"archive"
],
"href": "https://catalog.maap.eo.esa.int/data/zipper/cat-pre-data-02/BiomassLevel1a/2017/01/10/BIO_S2_SCS__1S_20170110T222200_20170110T222221_I_G01_M01_C01_T011_F001_01_CT15EC/BIO_S2_SCS__1S_20170110T222200_20170110T222221_I_G01_M01_C01_T011_F001_01_CT15EC",
"auth:refs": [
"oidc"
],
"published": "2017-01-10T22:22:21.003Z",
"title": "Zipped product",
"type": "application/zip"
},
"metadata_ogc_10_157r4": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/items/BIO_S2_SCS__1S_20170110T222200_20170110T222221_I_G01_M01_C01_T011_F001_01_CT15EC?httpAccept=application/gml%2Bxml&recordSchema=om",
"title": "OGC 10-157r4 metadata",
"type": "application/gml+xml;profile=\"http://www.opengis.net/spec/EOMPOM/1.1\""
},
"metadata_ogc_17_003r2": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/items/BIO_S2_SCS__1S_20170110T222200_20170110T222221_I_G01_M01_C01_T011_F001_01_CT15EC?mode=owc",
"title": "OGC 17-003r2 metadata",
"type": "application/geo+json;profile=\"http://www.opengis.net/spec/eo-geojson/1.0\""
},
"metadata_iso_19139": {
"roles": [
"metadata"
],
"href": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/items/BIO_S2_SCS__1S_20170110T222200_20170110T222221_I_G01_M01_C01_T011_F001_01_CT15EC?httpAccept=application/vnd.iso.19139%2Bxml",
"title": "ISO 19139 metadata",
"type": "application/vnd.iso.19139+xml"
},
"quicklook": {
"roles": [
"overview"
],
"href": "https://catalog.maap.eo.esa.int/data/cat-pre-data-02/BiomassLevel1a/2017/01/10/BIO_S2_SCS__1S_20170110T222200_20170110T222221_I_G01_M01_C01_T011_F001_01_CT15EC/BIO_S2_SCS__1S_20170110T222200_20170110T222221_I_G01_M01_C01_T011_F001_01_CT15EC/preview/bio_s2_scs__1s_20170110t222200_20170110t222221_i_g01_m01_c01_t011_f001_map.kmz",
"type": "application/vnd.google-earth.kmz",
"title": "preview"
}
}
df = pd.DataFrame(columns=['roles', 'title', 'type'])
# Display assets belonging to first item in results
for item in results.items():
assets = item.assets
for key in assets:
try:
ndf = pd.DataFrame({
'roles': str(assets[key].roles),
'type': assets[key].media_type,
'title': assets[key].title,
# 'href': assets[key].href
}, index = [0])
df = pd.concat([df, ndf], ignore_index=True)
except:
pass
break
df
| roles | title | type | |
|---|---|---|---|
| 0 | ['overview'] | preview | image/png |
| 1 | ['thumbnail'] | Preview | image/png |
| 2 | ['data', 'metadata', 'archive'] | Zipped product | application/zip |
| 3 | ['metadata'] | OGC 10-157r4 metadata | application/gml+xml;profile="http://www.opengi... |
| 4 | ['metadata'] | OGC 17-003r2 metadata | application/geo+json;profile="http://www.openg... |
| 5 | ['metadata'] | ISO 19139 metadata | application/vnd.iso.19139+xml |
| 6 | ['overview'] | preview | application/vnd.google-earth.kmz |
Advanced topics#
Conformance classes#
The conformance classes supported by the STAC interface are advertised in the conformsTo property of the landing page.
[
"http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/core",
"http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/oas30",
"http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/geojson",
"http://www.opengis.net/spec/ogcapi_common-2/1.0/conf/collections",
"http://www.opengis.net/spec/ogcapi-common-2/1.0/conf/simple-query",
"http://www.opengis.net/spec/ogcapi-records-1/1.0/req/cql-filter",
"http://www.opengis.net/spec/ogcapi-features-3/1.0/conf/features-filter",
"http://www.opengis.net/spec/ogcapi-features-3/1.0/conf/filter",
"https://api.stacspec.org/v1.0.0/core",
"https://api.stacspec.org/v1.0.0/ogcapi-features",
"https://api.stacspec.org/v1.0.0/collections",
"https://api.stacspec.org/v1.0.0-rc.1/collection-search",
"https://api.stacspec.org/v1.0.0-rc.1/collection-search#filter",
"https://api.stacspec.org/v1.0.0-rc.1/collection-search#free-text",
"https://api.stacspec.org/v1.0.0-rc.1/collection-search#sort",
"https://api.stacspec.org/v1.0.0/item-search",
"https://api.stacspec.org/v1.0.0-rc.3/item-search#filter",
"http://www.opengis.net/spec/cql2/1.0/conf/cql2-text",
"http://www.opengis.net/spec/cql2/1.0/conf/basic-cql2",
"http://www.opengis.net/spec/cql2/1.0/conf/cql2-json",
"http://www.opengis.net/spec/cql2/1.0/conf/advanced-comparison-operators",
"https://api.stacspec.org/v1.0.0/item-search#sort",
"https://api.stacspec.org/v1.0.0/ogcapi-features#sort",
"https://api.stacspec.org/v1.0.0/ogcapi-features#sort",
"https://api.stacspec.org/v1.0.0/item-search#fields",
"https://api.stacspec.org/v1.0.0/ogcapi-features#fields",
"https://api.stacspec.org/v1.0.0-rc.1/collection-search#fields"
]
Additional search parameters#
Additional search parameters beyond the STAC search parameters can be used to filter collection search results. The available parameters for collection search are advertised at https://catalog.maap.eo.esa.int/catalogue/collections/queryables and represented as a JSON Schema.
URL_QUERYABLES = URL_LANDING_PAGE + 'collections/queryables'
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections/queryables
response = requests.get(URL_QUERYABLES)
data = json.loads(response.text)
df = pd.DataFrame(data['properties'].items(),columns=['key','value'])
df['type'] = df.apply(lambda row : row['value']['type'], axis = 1)
df['format'] = df.apply(lambda row : row['value']['format'] if 'format' in row['value'] else '-' , axis = 1)
df.drop('value',axis=1).sort_values(by=['key'])
| key | type | format | |
|---|---|---|---|
| 16 | classifiedAs | string | uri |
| 5 | collection | string | - |
| 9 | datetime | string | - |
| 3 | description | string | - |
| 4 | externalId | string | - |
| 2 | format | string | - |
| 13 | id | string | - |
| 10 | instruments | string | - |
| 12 | offering | string | - |
| 7 | otherConstraint | string | - |
| 8 | platform | string | - |
| 0 | processing:level | string | - |
| 15 | providers | string | - |
| 1 | sci:doi | string | - |
| 6 | title | string | - |
| 14 | updated | string | date-time |
| 11 | useLimitation | string | - |
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"description": "Queryable names for the STAC API Collection Search filter.",
"type": "object",
"title": "Queryables for the STAC API",
"properties": {
"processing:level": {
"description": "The processing level applied to the entry",
"title": "Processing level",
"type": "string",
"enum": [
"l0",
"l1",
"l1.5",
"l1a",
"l1b",
"l1b+",
"l1c",
"l1d",
"l1g",
"l1gt",
"l1r",
"l1t",
"l2",
"l2a",
"l2b",
"l2c",
"l3",
"l3a",
"l3b",
"l4",
"level 0",
"level 1",
"level 1.5",
"level 1a",
"level 1b",
"level 1b+",
"level 1c",
"level 1d",
"level 1g",
"level 1gt",
"level 1r",
"level 1t",
"level 2",
"level 2a",
"level 2b",
"level 2c",
"level 3",
"level 3a",
"level 3b",
"level 4",
"level-a",
"level-a+",
"multiple"
]
},
"sci:doi": {
"description": "Digital Object Identifier identifying the product (see http://www.doi.org)",
"title": "Doi",
"type": "string",
"enum": [
"10.48550/arXiv.2310.04423",
"10.5270/AL1-5e400fd",
"10.5270/AL1-a06d3ac",
"10.5270/AL1-b459f4e",
"10.5270/AL1-d9cfa6d",
"10.5270/AL1-d9d4874",
"10.5270/AVH-f1i8784",
"10.5270/CR2-120cf4c",
"10.5270/DM1-w9tup3r",
"10.5270/EN1-179289a",
"10.5270/EN1-42e99a2",
"10.5270/EN1-4c37krv",
"10.5270/EN1-5eab12a",
"10.5270/EN1-61d6y63",
"10.5270/EN1-77pi5sd",
"10.5270/EN1-88oasur",
"10.5270/EN1-a1rc3jf",
"10.5270/EN1-c8hgqx4",
"10.5270/EN1-cu4a5e3",
"10.5270/EN1-d9ryw7t",
"10.5270/EN1-eqvj8vs",
"10.5270/EN1-opsw96m",
"10.5270/EN1-q74d24h",
"10.5270/EN1-ttqbj6p",
"10.5270/EN1-u55aesn",
"10.5270/EN1-ueksx4q",
"10.5270/EN1-vqoj1gs",
"10.5270/EN1-w5xkqmx",
"10.5270/EN1-x542no0",
"10.5270/ER2-ua38y2m",
"10.5270/ER2-uw3eflc",
"10.5270/ERS-0p2cu8d",
"10.5270/ERS-7c3qhyo",
"10.5270/ERS-suu0xfp",
"10.5270/ESA-6615b19",
"10.5270/ESA-852456e",
"10.5270/ESA-86e26dc",
"10.5270/ESA-a36265c",
"10.5270/ESA-c26d993",
"10.5270/IK2-5dwhs28",
"10.5270/JE1-408s1ur",
"10.5270/JE1-64xxf7c",
"10.5270/JE1-cerzmcu",
"10.5270/KO2-2ijzzay",
"10.5270/OD1-010f2d4",
"10.5270/QB2-ftu9xmh",
"10.5270/SE1-99j66hv",
"10.5270/esa-02d6cbf",
"10.5270/esa-2d07033",
"10.5270/esa-2eb13ab",
"10.5270/esa-4427c33",
"10.5270/esa-6mxo3sr",
"10.5270/esa-6riial9",
"10.5270/esa-79a176b",
"10.5270/esa-7c37033",
"10.5270/esa-7nc8pjp",
"10.5270/esa-8sfucze",
"10.5270/esa-8xb8scs",
"10.5270/esa-a681fe7",
"10.5270/esa-d69ulft",
"10.5270/esa-e3e68ff",
"10.5270/esa-ht6sxz7",
"10.5270/esa-iboli84",
"10.5270/esa-j340roh",
"10.5270/esa-jfhe2um",
"10.5270/esa-l8g67jw",
"10.5270/esa-otce9j2",
"10.5270/esa-qoe849q",
"10.5285/bf535053562141c6bb7ad831f5998d77",
"10.57780/AL1-5f3877f",
"10.57780/EN1-394f962",
"10.57780/EN1-4a94d2e",
"10.57780/EN1-89061a2",
"10.57780/EN1-a0f1eee",
"10.57780/EN1-b655562",
"10.57780/EN1-dfd0eaa",
"10.57780/SM1-857c3d7",
"10.57780/al1-36b29e9",
"10.57780/eca-224d95c",
"10.57780/eca-5828141",
"10.57780/en1-2d5de29",
"10.57780/ers-2607327",
"10.57780/ers-af99f2b",
"10.57780/ers-b781bc0",
"10.57780/ers-ee9aba7",
"10.57780/esa-1268efe",
"10.57780/esa-38f62f7",
"10.57780/esa-5018efb",
"10.57780/esa-53b8e3f",
"10.57780/esa-62845f6",
"10.57780/esa-6f8593e",
"10.57780/esa-6fc121d",
"10.57780/esa-76f3d32",
"10.57780/esa-80e19f0",
"10.57780/esa-8d039fa",
"10.57780/esa-97d2b7",
"10.57780/esa-b435dfa",
"10.57780/esa-b667eb7",
"10.57780/esa-c9d5673",
"10.57780/esa-f9d597e",
"10.57780/sm1-4f787c3",
"10.57780/sm1-5ebe10b",
"10.57780/sm1-fbf89e0"
]
},
"format": {
"description": "Product encoding formats",
"title": "Format",
"type": "string"
},
"description": {
"description": "Free text search term",
"title": "Query",
"type": "string"
},
"externalId": {
"description": "Search by external identifier",
"title": "External identifiers",
"type": "string"
},
"collection": {
"description": "The parent of the entry in a hierarchy of resources",
"title": "Parent identifier",
"type": "string",
"enum": [
"EOP:ESA:EARTH-ONLINE",
"EOP:ESA:MAAP",
"EOP:EU:CDSE",
"EOP:NASA:CMR"
]
},
"title": {
"description": "A name given to the resource",
"title": "Title",
"type": "string"
},
"otherConstraint": {
"description": "Other restrictions and legal prerequisites for accessing and using the resource or metadata",
"title": "Other constraint",
"type": "string"
},
"platform": {
"description": "The platform short name",
"title": "Platform",
"type": "string",
"enum": [
"ALOS-1",
"AQUA",
"Aeolus",
"Aura",
"Beijing-1",
"Biomass",
"COSMO-SkyMed Second Generation",
"COSMO-SkyMed",
"CryoSat-2",
"ERS-1",
"ERS-2",
"EarthCARE",
"Envisat",
"FFSCat",
"FLEX",
"GEOSAT-1",
"GEOSAT-2",
"GHGSat-C1",
"GHGSat-C2",
"GOCE",
"GOSAT-1",
"GOSAT-2",
"GRACE",
"GeoEye-1",
"ICEYE",
"IKONOS-2",
"IRS-1C",
"IRS-1D",
"IRS-P5",
"IRS-P6",
"IRS-R2",
"JERS-1",
"KOMPSAT-1",
"KOMPSAT-2",
"LANDSAT-9",
"Landsat",
"Landsat-1",
"Landsat-2",
"Landsat-3",
"Landsat-4",
"Landsat-5",
"Landsat-7",
"Landsat-8",
"MOS-1",
"MOS-1B",
"Metop-A",
"Metop-B",
"NOAA POES",
"NigeriaSat-1",
"ODIN",
"OceanSat-2",
"OrbView-2",
"PAZ",
"PROBA-1",
"PROBA-V",
"PlanetScope",
"Pleiades Neo",
"Pleiades",
"Pleiades-1A",
"Pleiades-1B",
"QuickBird-2",
"QuikSCAT",
"RADARSAT-1",
"RADARSAT-2",
"RapidEye",
"SAOCOM-1A",
"SAOCOM-1B",
"SCISAT-1",
"SMOS",
"SPOT 1",
"SPOT 2",
"SPOT 3",
"SPOT 4",
"SPOT 5",
"SPOT 6",
"SPOT 7",
"Seasat",
"Sentinel-1A",
"Sentinel-1B",
"Sentinel-2",
"Sentinel-2B",
"Sentinel-3A",
"Sentinel-3B",
"Sentinel-5",
"Sentinel-5P",
"Sentinel-6A",
"SkySat",
"Spire",
"Swarm",
"TERRA",
"TanDEM-X",
"TanSat",
"TerraSAR-X",
"UK-DMC-1",
"Vision-1",
"WorldView-1",
"WorldView-2",
"WorldView-3",
"WorldView-4"
]
},
"datetime": {
"description": "Temporal interval to search",
"title": "Datetime",
"type": "string"
},
"instruments": {
"description": "The instrument (e.g. MERIS, AATSR, ASAR, HRVIR. SAR)",
"title": "Instrument",
"type": "string",
"enum": [
"AATSR",
"ACC",
"ACE-FTS",
"ACGS",
"AIRSAFE",
"ALADIN",
"AMI/SAR",
"AMI/Scatterometer",
"ASAR",
"ASM",
"ATLID",
"ATSR-1",
"ATSR-2",
"AVHRR",
"AVNIR-2",
"AwiFS",
"BBR",
"BGI",
"CAPI",
"CHRIS",
"CPR",
"CSG-SAR",
"DORIS",
"EFI",
"EGG",
"EOC",
"ETM",
"GIS",
"GOME",
"GOMOS",
"GPSR",
"GRACE ACC",
"GRACE INTERFEROMETER",
"GRACE LRR",
"GRACE SCA",
"HRC",
"HRG",
"HRS",
"HRV",
"HRVIR",
"HiRAIS",
"HiRI",
"HyperScout-2",
"Imaging Radars",
"Imaging Spectrometers/Radiometers",
"KBR",
"LISS-3",
"LISS-4",
"LRR",
"Lidar/Laser Sounders",
"MAESTRO",
"MERIS",
"MESSR",
"MGM",
"MIPAS",
"MIRAS",
"MODIS",
"MSC",
"MSI",
"MSS",
"MWR",
"NAOMI",
"OCM-2",
"OLCI",
"OLI",
"OMI",
"OPS",
"OSA",
"OSIRIS",
"P-SAR",
"PALSAR",
"PAN",
"PAZ-SAR",
"PNEO",
"PRARE",
"PRISM",
"PlanetScope Camera",
"RA",
"RA-2",
"RBV",
"Radar Altimeters",
"Radiometers",
"SAOCOM-SAR",
"SAR",
"SCIAMACHY",
"SENSE",
"SIRAL",
"SLIM6",
"SLSTR",
"SMR",
"SRAL",
"SSTI",
"SSTL S1-4",
"STR",
"STRATOS",
"SeaWiFS",
"SeaWinds",
"SkySat Camera",
"SpaceView-110",
"TANSO-CAI",
"TANSO-CAI-2",
"TANSO-FTS",
"TANSO-FTS-2",
"TDX-1",
"TIRS",
"TM",
"TROPOMI",
"TSX-1",
"VFM",
"VGT",
"VTIR",
"WAF-P",
"WV110",
"WV60",
"X-SAR"
]
},
"useLimitation": {
"description": "A string identifying informing if the resource has usage limitations",
"title": "Use limitation",
"type": "string",
"enum": [
"access to and use of biomass products are governed by the esa's data policy and require acceptance of the specific terms & conditions. by accessing biomass products, users inherently acknowledge and agree to these terms.",
"access to ftp 1. open ftps://ec-pdgs-dissemination1.eo.esa.int/earthcare/earthcarel1validated via an ftp client 2. log in with an active _$$eo sign in$$ https://eoiam-idp.eo.esa.int/ account 3. find the product you want 4. download. the earthcare l1 validate products collection is freely accessible in accordance with esa\u2019s earth observation data policy. an active eo sign in account is required to download the products. new users can register an account on _$$eo sign in$$ https://eoiam-idp.eo.esa.int/ . for further information about the eo sign in service you can visit _$$tellus$$ https://esatellus.service-now.com/csp?id=esa_faq&kb_category=3e0b38dedb212700ee849785ca96194e . more information on how to use the earthcare online dissemination service can be found in the faq. should you need support please contact _$$eohelp$$ https://esatellus.service-now.com/csp?id=esa_simple_request&sys_id=f27b38f9dbdffe40e3cedb11ce961958 .",
"access to ftp 1. open ftps://ec-pdgs-dissemination1.eo.esa.int/earthcare/earthcareorbitdata via an ftp client 2. log in with an active _$$eo sign in$$ https://eoiam-idp.eo.esa.int/ account 3. find the product you want 4. download. the orbit data collection is freely accessible in accordance with esa\u2019s earth observation data policy. an active eo sign in account is required to download the products. new users can register an account on eo sign in (link to https://eoiam-idp.eo.esa.int/). for further information about the eo sign in service you can visit _$$tellus$$ https://esatellus.service-now.com/csp?id=esa_faq&kb_category=3e0b38dedb212700ee849785ca96194e . more information on how to use the earthcare online dissemination service can be found in the faq. should you need support please contact _$$eohelp$$ https://esatellus.service-now.com/csp?id=esa_simple_request&sys_id=f27b38f9dbdffe40e3cedb11ce961958 .",
"access to ftp 1. open ftps://ec-pdgs-dissemination1.eo.esa.int/earthcare/jaxal2validated via an ftp client 2. log in with an active _$$eo sign in$$ https://eoiam-idp.eo.esa.int/ account 3. find the product you want 4. download. the earthcare jaxa l2 validate products collection is freely accessible in accordance with esa\u2019s earth observation data policy. an active eo sign in account is required to download the products. new users can register an account on eo sign in (link to https://eoiam-idp.eo.esa.int/). for further information about the eo sign in service you can visit _$$tellus$$ https://esatellus.service-now.com/csp?id=esa_faq&kb_category=3e0b38dedb212700ee849785ca96194e . more information on how to use the earthcare online dissemination service can be found in the faq. should you need support please contact _$$eohelp$$ https://esatellus.service-now.com/csp?id=esa_simple_request&sys_id=f27b38f9dbdffe40e3cedb11ce961958 .",
"access via ftp 1. open ftps://ec-pdgs-dissemination1.eo.esa.int/earthcare/earthcarel2validated via an ftp client 2. log in with an active _$$eo sign in$$ https://eoiam-idp.eo.esa.int/ account 3. find the product you want 4. download the earthcare esa l2 products collection is freely accessible in accordance with esa\u2019s earth observation data policy. an active eo sign in account is required to download the products. new users can register an account on _$$eo sign in$$ https://eoiam-idp.eo.esa.int/ . for further information about the eo sign in service you can visit _$$tellus$$ https://esatellus.service-now.com/csp?id=esa_faq&kb_category=3e0b38dedb212700ee849785ca96194e . should you need support please contact _$$eohelp$$ https://esatellus.service-now.com/csp?id=esa_simple_request&sys_id=f27b38f9dbdffe40e3cedb11ce961958 .",
"available to residents of the following countries: worldwide",
"data service request",
"eo sign in authentication (open) access to https 1. go to the _$$dissemination service$$ https://ec-pdgs-dissemination1.eo.esa.int/oads/access/collection/earthcarel1validated 2. find the product you want 3. register or log in to _$$eo sign in$$ https://eoiam-idp.eo.esa.int/ 4. download",
"eo sign in authentication (open) access to https 1. go to the _$$dissemination service$$ https://ec-pdgs-dissemination1.eo.esa.int/oads/access/collection/earthcareorbitdata 2. find the product you want 3. register or log in to _$$eo sign in$$ https://eoiam-idp.eo.esa.int/ 4. download",
"eo sign in authentication (open) access to https 1. go to the _$$dissemination service$$ https://ec-pdgs-dissemination1.eo.esa.int/oads/access/collection/jaxal2validated 2. find the product you want 3. register or log in to _$$eo sign in$$ https://eoiam-idp.eo.esa.int/ 4. download",
"eo sign in authentication (open) access via https 1. go to the _$$dissemination service$$ https://ec-pdgs-dissemination2.eo.esa.int/oads/access/collection/earthcarel2validated 2. find the product you want 3. register or log in to _$$eo sign in$$ https://eoiam-idp.eo.esa.int/ 4. download",
"eo sign in authentication (open)",
"eo sign in authentication",
"external data",
"fast registration with approval (restrained)",
"fast registration with approval",
"fast registration with immediate access",
"open access",
"open data",
"products are distributed under a cc-by-4.0 license. https://spdx.org/licenses/cc-by-4.0",
"project proposal (restrained)",
"project proposal",
"restrained data",
"this earthcare auxiliary data collection is available only to the earthcare commissioning team and to principal and co-investigators of accepted proposals to the _$$esa announcement of opportunity for the validation of earthcare$$ https://earth.esa.int/eogateway/announcement-of-opportunity/closed-earthcare-calibration-and-validation-announcement-of-opportunity .",
"this earthcare esa l2 collection is available only to the earthcare commissioning team and to principal and co-investigators of accepted proposals to the _$$esa announcement of opportunity for the validation of earthcare$$ https://earth.esa.int/eogateway/announcement-of-opportunity/closed-earthcare-calibration-and-validation-announcement-of-opportunity .",
"this earthcare esa l2 collection is available only to the earthcare commissioning team.",
"this earthcare jaxa l2 collection is available only to the earthcare commissioning team and to principal and co-investigators of accepted proposals to the _$$esa announcement of opportunity for the validation of earthcare$$ https://earth.esa.int/eogateway/announcement-of-opportunity/closed-earthcare-calibration-and-validation-announcement-of-opportunity .",
"this earthcare jaxa l2 collection is available only to the earthcare commissioning team.",
"this earthcare l0 and l1 collection is available only to the earthcare commissioning team.",
"this earthcare l1 collection is available only to the earthcare commissioning team and to principal and co-investigators of accepted proposals to the _$$esa announcement of opportunity for the validation of earthcare$$ https://earth.esa.int/eogateway/announcement-of-opportunity/closed-earthcare-calibration-and-validation-announcement-of-opportunity .",
"under the following licence https://artefacts.ceda.ac.uk/licences/specific_licences/esacci_biomass_terms_and_conditions_v2.pdf, appropriate use of these data may fall under any use. this message is intended as guidance, always read the full licence. when using these data you must cite them correctly using the citation given on the ceda data catalogue record. https://artefacts.ceda.ac.uk/licences/specific_licences/esacci_biomass_terms_and_conditions_v2.pdf",
"world wide"
]
},
"offering": {
"description": "Related service offering",
"title": "Offering",
"type": "string",
"enum": [
"describecoverage",
"getcapabilities",
"getcoverage",
"getmap",
"search",
"wcs",
"wms"
]
},
"id": {
"description": "Item identifier",
"title": "Item ID",
"type": "string"
},
"updated": {
"format": "date-time",
"description": "The date when the metadata item was last modified (i.e. updated) in the catalogue",
"title": "Modification date",
"type": "string"
},
"providers": {
"description": "The name of the organization responsible for the resource",
"title": "Organisation name",
"type": "string",
"enum": [
"CEDA",
"CMR",
"CloudFerro",
"EC",
"ESA/ESRIN",
"EUMETSAT",
"NASA NSIDC DAAC",
"OpenGeoHub",
"USGS"
]
},
"classifiedAs": {
"format": "uri",
"description": "Keyword URI appearing in metadata record",
"title": "Classified as",
"type": "string"
}
},
"$id": "https://catalog.maap.eo.esa.int/catalogue/collections/queryables"
}
Additional search parameters beyond the STAC search parameters can be used to filter granule search results. The available parameters for granule search are advertised for each individual collection and represented as a JSON Schema.
For example, the collection BiomassLevel1a, advertises its search parameters at https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/queryables in JSON Schema format. Therefore, the following parameters can be used within a filter expression.
Get filter parameters for granule search
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/queryables
| key | type | format | |
|---|---|---|---|
| 12 | completionTimeFromAscendingNode | number | - |
| 17 | created | string | date-time |
| 6 | datetime | string | - |
| 2 | eofeos:global_coverage_id | string | - |
| 5 | eofeos:major_cycle_id | string | - |
| 29 | eofeos:mission_phase | string | - |
| 26 | eofeos:orbit_drift_flag | string | - |
| 0 | eofeos:repeat_cycle_id | string | - |
| 11 | eopf:datatake_id | integer | - |
| 28 | eopf:instrument_mode | string | - |
| 19 | externalId | string | - |
| 34 | frame | string | - |
| 13 | id | string | - |
| 7 | instruments | string | - |
| 4 | platform | string | - |
| 18 | polarisationChannels | string | - |
| 27 | processing:datetime | string | date-time |
| 1 | processing:facility | string | - |
| 16 | processing:level | string | - |
| 14 | processing:software | string | - |
| 30 | processingMode | string | - |
| 33 | product:acquisition_type | string | - |
| 3 | product:type | string | - |
| 9 | productionStatus | string | - |
| 20 | published | string | - |
| 25 | q | string | - |
| 23 | sar:observation_direction | string | - |
| 24 | sar:polarizations | string | - |
| 31 | sat:absolute_orbit | integer | - |
| 8 | sat:orbit_state | string | - |
| 10 | startTimeFromAscendingNode | number | - |
| 21 | swathIdentifier | string | - |
| 15 | track | string | - |
| 32 | updated | string | date-time |
| 22 | version | string | - |
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"description": "Queryable names for the STAC API Item Search filter.",
"type": "object",
"title": "Queryables for BiomassLevel1a collection",
"properties": {
"eofeos:repeat_cycle_id": {
"description": "Repeat cycle identifier. Each Major Cycle is split into repeat cycles, depending on Mission Phase or Orbit Control moment. Values are mission-specific.",
"title": "Repeat cycle id",
"type": "string",
"enum": [
"1",
"2",
"3"
]
},
"processing:facility": {
"description": "The processing center (e.g. PDHS-E, PDHS-K, DPA, F-ACRI)",
"title": "Processing center",
"type": "string",
"enum": [
"Biomass CPF"
]
},
"eofeos:global_coverage_id": {
"description": "Global coverage identifier. Each Phase of the mission is split in different Global Coverages. Values are mission-specific.",
"title": "Global coverage id",
"type": "string",
"enum": [
"1"
]
},
"product:type": {
"description": "A string identifying the entry type",
"title": "Product type",
"type": "string",
"enum": [
"S1_SCS__1M",
"S1_SCS__1S",
"S2_SCS__1M",
"S2_SCS__1S",
"S3_SCS__1M",
"S3_SCS__1S"
]
},
"platform": {
"description": "The platform short name",
"title": "Platform",
"type": "string",
"enum": [
"Biomass"
]
},
"eofeos:major_cycle_id": {
"description": "Major cycle identifier. Each Global Coverage is split into multiple Major cycles. Values are mission-specific.",
"title": "Major cycle id",
"type": "string",
"enum": [
"1",
"2",
"3",
"4",
"5",
"6",
"7"
]
},
"datetime": {
"description": "Temporal interval to search",
"title": "Datetime",
"type": "string"
},
"instruments": {
"description": "The instrument (e.g. MERIS, AATSR, ASAR, HRVIR. SAR)",
"title": "Instrument",
"type": "string",
"enum": [
"P-SAR"
]
},
"sat:orbit_state": {
"description": "The acquisition orbit direction",
"title": "Orbit direction",
"type": "string",
"enum": [
"ASCENDING",
"DESCENDING"
]
},
"productionStatus": {
"description": "The status of the entry",
"title": "Production status",
"type": "string",
"enum": [
"ARCHIVED"
]
},
"startTimeFromAscendingNode": {
"description": "Start time of acquisition in milliseconds from ascending node date",
"title": "Start time from ascending node",
"type": "number"
},
"eopf:datatake_id": {
"description": "Datatake identification",
"title": "Data take id",
"type": "integer"
},
"completionTimeFromAscendingNode": {
"description": "Completion time of acquisition in milliseconds from ascending node date",
"title": "Completion time from ascending node",
"type": "number"
},
"id": {
"description": "Item identifier",
"title": "Item ID",
"type": "string"
},
"processing:software": {
"description": "The processor software name",
"title": "Processor name",
"type": "string",
"enum": [
"Biomass L1 Processor"
]
},
"track": {
"description": "The orbit track",
"title": "Track",
"type": "string"
},
"processing:level": {
"description": "The processing level applied to the entry",
"title": "Processing level",
"type": "string",
"enum": [
"L1A"
]
},
"created": {
"format": "date-time",
"description": "The date when the metadata item was ingested for the first time (i.e. inserted) in the catalogue",
"title": "Creation date",
"type": "string"
},
"polarisationChannels": {
"description": "Polarisation channel transmit/receive configuration: horizontal, vertical",
"title": "Polarisation channels",
"type": "string",
"enum": [
"HH, HV, VH, VV"
]
},
"externalId": {
"description": "Search by external identifier",
"title": "External identifiers",
"type": "string"
},
"published": {
"description": "The time when the result became available (e.g. if postprocessing or laboratory analysis is required, it might be different to the phenomenonTime). dateTime in ISO 8601 format (CCYY-MM- DDThh:mm[:ss[.cc]]Z)",
"title": "Availability time",
"type": "string"
},
"swathIdentifier": {
"description": "Swath identifier (e.g. Envisat ASAR has 7 distinct swaths (I1,I2,I3...I7) that correspond to precise incidence angles for the sensor). Value list can be retrieved with codeSpace",
"title": "Swath identifier",
"type": "string",
"enum": [
"S1",
"S2",
"S3"
]
},
"version": {
"description": "The version of the product",
"title": "Product version",
"type": "string",
"enum": [
"01"
]
},
"sar:observation_direction": {
"description": "Antenna look direction",
"title": "Antenna look direction",
"type": "string",
"enum": [
"LEFT",
"RIGHT"
]
},
"sar:polarizations": {
"description": "Polarisation mode",
"title": "Polarisation mode",
"type": "string",
"enum": [
"Q"
]
},
"q": {
"description": "Free text search term",
"title": "API Records Query",
"type": "string"
},
"eofeos:orbit_drift_flag": {
"description": "Orbit drift flag. Indicates if the product was generated during a moment where there were no active orbit control measures",
"title": "Orbit drift flag",
"type": "string",
"enum": [
"false"
]
},
"processing:datetime": {
"format": "date-time",
"description": "A date interval requesting entries processed within a given time interval",
"title": "Processing date",
"type": "string"
},
"eopf:instrument_mode": {
"description": "The sensor mode",
"title": "Sensor mode",
"type": "string",
"enum": [
"SM"
]
},
"eofeos:mission_phase": {
"description": "Mission phase, each one has a specific objective for the mission. Values are mission-specific.",
"title": "Mission phase",
"type": "string",
"enum": [
"INTERFEROMETRIC"
]
},
"processingMode": {
"description": "Processing mode. Often referred to as real time, near real time etc",
"title": "Processing mode",
"type": "string",
"enum": [
"OPERATIONAL"
]
},
"sat:absolute_orbit": {
"description": "The acquisition orbit number",
"title": "Orbit number",
"type": "integer"
},
"updated": {
"format": "date-time",
"description": "The date when the metadata item was last modified (i.e. updated) in the catalogue",
"title": "Modification date",
"type": "string"
},
"product:acquisition_type": {
"description": "Used to distinguish at a high level the appropriateness of the acquisition for \"general\" use, whether the product is a nominal acquisition, special calibration product or other",
"title": "Acquisition type",
"type": "string",
"enum": [
"NOMINAL"
]
},
"frame": {
"description": "The orbit frame",
"title": "Frame",
"type": "string"
}
},
"$id": "https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1a/queryables"
}
CQL2 Text filter expressions#
The STAC interface supports the filter parameter and filter expressions in cql2-text filter format at the following endpoints:
/collections
/collections/{collection-id}/items
/search
At the /search endpoint, it is required that a single collection can be determined from the collections or ids parameter. The queryables allowed in the filter expression are then identical to the ones at the corresponding /collections/{collection-id}/items/queryables endpoint. filter cannot be used at the /search endpoint when collections contains 0 or more than 1 collection identifiers.
Filter expressions are to be expressed with the Text encoding of the Basic Common Query Language (Basic CQL2-Text) [RD22]. See the OGC API Features “Conformance class Filter” section for CQL2 examples.
Example: 8.1
CQL Filter for collection search with logical operators (and, or).
filter = "platform = 'Envisat' and ( instrument = 'MERIS' or instrument = 'MIPAS' ) and organisationName = 'ESA/ESRIN'"
results = api.collection_search(
filter = filter
)
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections \
--data-urlencode "filter=platform = 'Envisat' and ( instrument = 'MERIS' or instrument = 'MIPAS' ) and organisationName = 'ESA/ESRIN'" \
--data-urlencode "filter-lang=cql2-text"
data = results.collection_list_as_dict()
df = pd.json_normalize(data, record_path=['collections'])
df[['id', 'summaries.platform','summaries.instruments']]
| id | summaries.platform | summaries.instruments | |
|---|---|---|---|
| 0 | MER.RR__1P | [Envisat] | [MERIS] |
| 1 | ENVISAT.MIP.NL__1P | [Envisat] | [MIPAS] |
| 2 | MER_FRS_1P | [Envisat] | [MERIS] |
| 3 | ENVISAT.MIP.NL__2P | [Envisat] | [MIPAS] |
| 4 | MER_FRS_2P | [Envisat] | [MERIS] |
| 5 | MER.RR__2P | [Envisat] | [MERIS] |
Example: 8.2
CQL filter for granule search with comparison operators. Search granules with eo:cloud_cover between 10 and 15%.
from pystac_client import Client
api = Client.open(URL_LANDING_PAGE)
results = api.search(
method = 'GET',
max_items = 30,
collections = [COLLECTION_ID3_CLOUDS],
filter = "eo:cloud_cover >= 10 and eo:cloud_cover < 15"
)
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/search \
--data-urlencode "collections=IKONOS.ESA.archive" \
--data-urlencode "filter=eo:cloud_cover >= 10 and eo:cloud_cover < 15" \
--data-urlencode "filter-lang=cql2-text"
print(f"{results.matched()} items found.")
26 items found.
# Display cloud-cover values as histogram to show that range is taken into account
stac_json = results.item_collection_as_dict()
gdf = gpd.GeoDataFrame.from_features(stac_json)
try:
_ = gdf[['title','eo:cloud_cover']].hist()
except:
print("eo:cloud_cover information is not available.")
Example: 8.3
CQL filter with
LIKEoperator.
from pystac_client import Client
api = Client.open(URL_LANDING_PAGE)
results = api.collection_search(
filter = "title LIKE '%Bio%'",
max_collections=10
)
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections \
--data-urlencode "filter=title LIKE '%Bio%'" \
--data-urlencode "filter-lang=cql2-text"
print(f"{results.matched()} collections found.")
data = results.collection_list_as_dict()
df = pd.json_normalize(data, record_path=['collections'])
df[['id', 'title']]
31 collections found.
| id | title | |
|---|---|---|
| 0 | C2734289572-ORNL_CLOUD | GEDI L4A Footprint Level Aboveground Biomass D... |
| 1 | BiomassSimulated | Biomass Simulated data |
| 2 | BiomassLevel1b | Biomass Level 1B |
| 3 | BiomassAuxRest | Biomass Auxiliary Restricted |
| 4 | BiomassCalVal10 | Biomass Cal/Val |
| 5 | BiomassLevel2aIOC | Biomass Level 2A (IOC) |
| 6 | C3495301468-ORNL_CLOUD | GEDI L4A Footprint Level Aboveground Biomass D... |
| 7 | C2756302505-ORNL_CLOUD | Aboveground Biomass Density for High Latitude ... |
| 8 | C3043630107-ORNL_CLOUD | Gridded GEDI Vegetation Structure Metrics and ... |
| 9 | C2813390180-ORNL_CLOUD | GEDI L4B Country-level Summaries of Abovegroun... |
Example: 8.4
CQL filter with
INoperator.
from pystac_client import Client
api = Client.open(URL_LANDING_PAGE)
results = api.collection_search(
filter = "platform IN ('Biomass','EarthCARE')",
max_collections=10
)
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections \
--data-urlencode "filter=platform IN ('Biomass','EarthCARE')" \
--data-urlencode "filter-lang=cql2-text"
print(f"{results.matched()} collections found.")
data = results.collection_list_as_dict()
df = pd.json_normalize(data, record_path=['collections'])
df[['id', 'summaries.platform']]
45 collections found.
| id | summaries.platform | |
|---|---|---|
| 0 | EarthCAREL2InstChecked | [EarthCARE] |
| 1 | EarthCAREL1InstChecked | [EarthCARE] |
| 2 | BiomassSimulated | [Biomass] |
| 3 | BiomassLevel1b | [Biomass] |
| 4 | BiomassAuxRest | [Biomass] |
| 5 | BiomassCalVal10 | [Biomass] |
| 6 | BiomassLevel2aIOC | [Biomass] |
| 7 | EarthCAREL1Validated_MAAP | [EarthCARE] |
| 8 | EarthCAREL2InstChecked_MAAP | [EarthCARE] |
| 9 | EarthCAREL1InstChecked_MAAP | [EarthCARE] |
Example: 8.5
CQL filter with
BETWEENoperator.
from pystac_client import Client
api = Client.open(URL_LANDING_PAGE)
results = api.search(
method = 'POST',
max_items=50,
collections=[COLLECTION_ID10_MAAP],
filter="sat:absolute_orbit BETWEEN 5000 AND 5015"
)
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/search \
--data-urlencode "collections=EarthCAREL2Products_MAAP" \
--data-urlencode "filter=sat:absolute_orbit BETWEEN 5000 AND 5015" \
--data-urlencode "filter-lang=cql2-text"
print(f"{results.matched()} items found.")
32 items found.
# Display cloud-cover values as histogram to show that range is taken into account
stac_json = results.item_collection_as_dict()
gdf = gpd.GeoDataFrame.from_features(stac_json)
try:
_ = gdf[['title','sat:absolute_orbit']].hist()
except:
print("sat:absolute_orbit information is not available.")
Example: 8.6
Unsupported filter returns an HTTP error. E.g. collection search with advanced temporal function.
URL = URL_LANDING_PAGE + "collections"+ "?filter=T_INTERSECTS(modificationDate , INTERVAL('2022-01-01T00:00:00Z', '2024-11-01T00:00:00Z'))"
curl_str = curl_command(URL)
md("```shell\n" + curl_str + "\n```\n")
response = requests.get(URL)
print("HTTP Code: ",response.status_code)
print("HTTP Body: ",response.content)
HTTP Code: 400
HTTP Body: {
"error": {
"code": 400,
"message": "The Temporal'T_INTERSECTS' operator is not supported.",
"errors": [
{
"location": "request"
}
]
}
}
CQL2 JSON filter expressions#
The STAC interface supports the filter parameter and filter expressions in cql2-json filter format at the following endpoints:
/collections
/collections/{collection-id}/items
/search
At the /search endpoint, it is required that at least one collection can be determined from the collections or ids parameter. The queryables allowed in the filter expression are then identical to the ones at the corresponding /collections/{collection-id}/items/queryables endpoint.
Filter expressions are to be expressed with the JSON encoding of the Basic Common Query Language (Basic CQL2-Text) [RD22].
Example: 9.1
CQL JSON Filter for collection search with logical operators (and, or) with cql2-json filter-lang.
_filter = {
"op": "and",
"args": [
{
"op": "=","args": [
{ "property": "platform" },
"Envisat"
]
},
{
"op": "or","args": [
{"op": "=","args": [
{ "property": "instrument" },
"MERIS"
]
},
{"op": "=","args": [
{ "property": "instrument" },
"MIPAS"
]
}
]
},
{
"op": "=","args": [
{ "property": "organisationName" },
"ESA/ESRIN"
]
}
]
}
results = api.collection_search(
# api does not support a 'dict' as parameter ?
filter = json.dumps(_filter),
filter_lang = "cql2-json"
)
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections \
--data-urlencode "filter={\"op\": \"and\", \"args\": [{\"op\": \"=\", \"args\": [{\"property\": \"platform\"}, \"Envisat\"]}, {\"op\": \"or\", \"args\": [{\"op\": \"=\", \"args\": [{\"property\": \"instrument\"}, \"MERIS\"]}, {\"op\": \"=\", \"args\": [{\"property\": \"instrument\"}, \"MIPAS\"]}]}, {\"op\": \"=\", \"args\": [{\"property\": \"organisationName\"}, \"ESA/ESRIN\"]}]}" \
--data-urlencode "filter-lang=cql2-json"
data = results.collection_list_as_dict()
df = pd.json_normalize(data, record_path=['collections'])
df[['id', 'summaries.platform','summaries.instruments']]
| id | summaries.platform | summaries.instruments | |
|---|---|---|---|
| 0 | MER.RR__1P | [Envisat] | [MERIS] |
| 1 | ENVISAT.MIP.NL__1P | [Envisat] | [MIPAS] |
| 2 | MER_FRS_1P | [Envisat] | [MERIS] |
| 3 | ENVISAT.MIP.NL__2P | [Envisat] | [MIPAS] |
| 4 | MER_FRS_2P | [Envisat] | [MERIS] |
| 5 | MER.RR__2P | [Envisat] | [MERIS] |
Example: 9.2
CQL filter with
BETWEENoperator.
filter_dict = {
"op":"between",
"args":[
{"property":"sat:absolute_orbit"},
5000,
5010
]
}
results = api.search(
method = 'POST',
max_items = 30,
collections = [COLLECTION_ID10_MAAP],
filter = filter_dict,
filter_lang = "cql2-json"
)
print(f"{results.matched()} items found.")
32 items found.
# Display cloud-cover values as histogram to show that range is taken into account
stac_json = results.item_collection_as_dict()
gdf = gpd.GeoDataFrame.from_features(stac_json)
try:
_ = gdf[['title','sat:absolute_orbit']].hist()
except:
print("sat:absolute_orbit information is not available.")
Example: 9.3
CQL filter for granule search with comparison operators using cql2-json filterLang. Search granules with orbit number (sat:absolute_orbit) between 5000 and 5010.
from pystac_client import Client
api = Client.open(URL_LANDING_PAGE)
results = api.search(
method = 'GET',
max_items = 30,
collections = [COLLECTION_ID10_MAAP],
filter = '{"op": "and","args": [{"op": ">=","args":[{"property":"sat:absolute_orbit"},5000]},{"op":"<","args":[{"property":"sat:absolute_orbit"},5010]}]}',
filter_lang="cql2-json"
)
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/search \
--data-urlencode "collections=EarthCAREL2Products_MAAP" \
--data-urlencode "filter={\"op\": \"and\",\"args\": [{\"op\": \">=\",\"args\":[{\"property\":\"sat:absolute_orbit\"},5000]},{\"op\":\"<\",\"args\":[{\"property\":\"sat:absolute_orbit\"},5010]}]}" \
--data-urlencode "filter-lang=cql2-json"
print(f"{results.matched()} items found.")
32 items found.
# Display cloud-cover values as histogram to show that range is taken into account
stac_json = results.item_collection_as_dict()
gdf = gpd.GeoDataFrame.from_features(stac_json)
try:
_ = gdf[['title','eo:cloud_cover']].hist()
except:
print("eo:cloud_cover information is not available.")
eo:cloud_cover information is not available.
Example: 9.4
CQL JSON filter for granule search with comparison operators using cql2-json filterLang on the POST endpoint. Search granules with orbit number (sat:absolute_orbit) between 5000 and 5010.
filter_dict = {
"op": "and",
"args": [
{
"op": ">=",
"args": [
{"property": "sat:absolute_orbit"},
10
]
},
{
"op": "<",
"args": [
{"property": "sat:absolute_orbit"},
15
]
}
]
}
results = api.search(
method='POST',
max_items=30,
collections=[COLLECTION_ID10_MAAP],
filter= filter_dict,
filter_lang="cql2-json"
)
# Display cloud-cover values as histogram to show that range is taken into account
stac_json = results.item_collection_as_dict()
gdf = gpd.GeoDataFrame.from_features(stac_json)
try:
_ = gdf[['title','eo:cloud_cover']].hist()
except:
print("eo:cloud_cover information is not available.")
eo:cloud_cover information is not available.
Sorting results#
The STAC interface supports the sortby parameter at the following endpoints:
/collections
/collections/{collection-id}/items
/search
At the /search endpoint, it is required that a single collection can be determined from the collections parameter. The sortables allowed in the filter expression are then identical to the ones at the corresponding /collections/{collection-id}/items endpoint. sortby cannot be used at the /search endpoint when collections contains 0 or more than 1 collection identifiers.
Sorting of search results is available for collection and granule searches, but the available criteria differ per resource type. The STAC API Sort Extension [RD26] defines the syntax to be used. The sorting parameter has to be expressed as the corresponding STAC property name. A minus sign (-) before the property name indicates a descending order. If the property used for sorting is an array with more than one element, the result may be unexpected. A 400 Bad Request status code is returned when the sort criteria used are not supported.
Collections (at /collections) |
|---|
[properties.]id |
[properties.]instruments |
[properties.]platform |
[properties.]processing:level |
[properties.]providers |
[properties.]sci:doi |
[properties.]title |
[properties.]updated |
The available sort criteria for items (granules) depend also on the sensortype, e.g. optical, radar, etc. and whether the remote catalogue hosting the granule metadata supports sorting as well.
Items (granules at /items or /search) |
|---|
[properties.]created |
[properties.]datetime |
[properties.]end_datetime |
[properties.]eo:cloud_cover |
[properties.]eo:snow_cover |
[properties.]eofeos:global_coverage_id |
[properties.]eofeos:is_coregistration_primary |
[properties.]eofeos:major_cycle_id |
[properties.]eofeos:mission_phase |
[properties.]eofeos:orbit_drift_flag |
[properties.]eofeos:repeat_cycle_id |
[properties.]eofeos:stack_id |
[properties.]eopf:datatake_id |
[properties.]eopf:instrument_mode |
[properties.]id |
[properties.]instruments |
[properties.]platform |
[properties.]processing:datetime |
[properties.]processing:facility |
[properties.]processing:level |
[properties.]processing:software |
[properties.]product:acquisition_type |
[properties.]product:type |
[properties.]sar:observation_direction |
[properties.]sar:polarizations |
[properties.]sat:absolute_orbit |
[properties.]sat:orbit_state |
[properties.]sci:doi |
[properties.]start_datetime |
[properties.]updated |
[properties.]version |
[properties.]view:sun_azimuth |
[properties.]view:sun_elevation |
The sort criteria can optionally be prefixed by “properties.” for compatibility with the STACBrowser software.
The /collections and /items endpoints support only the GET method.
At the /search endpoint, both the GET and POST method are supported.
Example: 10.1
Sort collection search results by platform (ascending) and instrument (descending).
URL = URL_LANDING_PAGE + "collections" \
+ "?filter=parentIdentifier='EOP:ESA:EARTH-ONLINE' and organisationName='ESA/ESRIN'" \
+ "&sortby=platform,-instruments"
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections \
--data-urlencode "filter=parentIdentifier='EOP:ESA:EARTH-ONLINE' and organisationName='ESA/ESRIN'" \
--data-urlencode "sortby=platform,-instruments"
response = requests.get(URL)
data = json.loads(response.text)
df = pd.json_normalize(data, record_path=['collections'])
df[['id','title','summaries.platform','summaries.instruments']]
| id | title | summaries.platform | summaries.instruments | |
|---|---|---|---|---|
| 0 | WorldViewLegionfullarchiveandtasking0 | WorldView Legion full archive and tasking | NaN | NaN |
| 1 | EarthCAREXMETL1DProducts10 | EarthCARE X-MET L1D Products | NaN | NaN |
| 2 | ALOS_PRISM_L1B | Alos PRISM L1B | [ALOS-1] | [PRISM] |
| 3 | alos-prism-l1c | ALOS PRISM L1C | [ALOS-1] | [PRISM] |
| 4 | alos.prism.l1c.european.coverage.cloud.free | ALOS PRISM L1C European Coverage Cloud Free | [ALOS-1] | [PRISM] |
| 5 | ALOSIPY | ALOS PALSAR International Polar Year Antarctica | [ALOS-1] | [PALSAR] |
| 6 | ALOS.PALSAR.FBS.FBD.PLR.products | ALOS PALSAR products | [ALOS-1] | [PALSAR] |
| 7 | ALOS | Alos African Coverage ESA archive | [ALOS-1] | [PRISM] |
| 8 | ALOS.AVNIR-2.L1C | ALOS AVNIR-2 L1C | [ALOS-1] | [AVNIR-2] |
| 9 | TropForest | TropForest- ALOS, GEOSAT-1 & KOMPSAT-2 optical... | [ALOS-1, GEOSAT-1, KOMPSAT-2] | [AVNIR-2, SLIM6, MSC] |
Example: 10.2
Sort collection search results by instrument (descending).
URL = URL_LANDING_PAGE + "collections"+ "?filter=platform='Envisat'" \
+ "&sortby=-instruments" \
+ "&limit=30"
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections \
--data-urlencode "filter=platform='Envisat'" \
--data-urlencode "sortby=-instruments" \
--data-urlencode "limit=30"
response = requests.get(URL)
data = json.loads(response.text)
df = pd.json_normalize(data, record_path=['collections'])
df[['id','summaries.platform','summaries.instruments']]
| id | summaries.platform | summaries.instruments | |
|---|---|---|---|
| 0 | SCIAMACHYLevel2 | [Envisat] | [SCIAMACHY] |
| 1 | SCIAMACHYLevel1 | [Envisat] | [SCIAMACHY] |
| 2 | SCIAMACHYLevel2LimbOzone | [Envisat] | [SCIAMACHY] |
| 3 | TDPforAtmosphere | [ERS-1, ERS-2, Envisat] | [MWR, MWR, RA-2] |
| 4 | TDPforSeaice | [Envisat, ERS-1, ERS-2] | [MWR, RA, RA] |
| 5 | TDPforOceanWaves | [ERS-1, ERS-2, Envisat] | [MWR, MWR, RA-2] |
| 6 | FDRforAltimetry | [ERS-1, ERS-2, Envisat] | [MWR, MWR, RA-2] |
| 7 | TDPforOceanCoastalTopography | [ERS-1, ERS-2, Envisat] | [MWR, MWR, RA-2] |
| 8 | FDRforRadiometry | [ERS-1, ERS-2, Envisat] | [MWR, MWR, RA-2] |
| 9 | TDPforLandice | [ERS-1, ERS-2, Envisat] | [MWR, MWR, RA-2] |
| 10 | TDPforInlandWater | [ERS-1, ERS-2, Envisat] | [MWR, MWR, RA-2] |
| 11 | ENVISAT.MIP.NL__1P | [Envisat] | [MIPAS] |
| 12 | ENVISAT.MIP.NL__2P | [Envisat] | [MIPAS] |
| 13 | MER.RR__1P | [Envisat] | [MERIS] |
| 14 | MER_FRS_1P | [Envisat] | [MERIS] |
| 15 | MER_FRS_2P | [Envisat] | [MERIS] |
| 16 | MER.RR__2P | [Envisat] | [MERIS] |
| 17 | ENVISAT.GOM.LIM_1P | [Envisat] | [GOMOS] |
| 18 | NetCDF.GOMOS_UFP_Gridded | [Envisat] | [GOMOS] |
| 19 | ENVISAT.GOM_EXT_2P | [Envisat] | [GOMOS] |
| 20 | NetCDF.GOMOS_UFP | [Envisat] | [GOMOS] |
| 21 | ENVISAT.GOM.TRA_1P | [Envisat] | [GOMOS] |
| 22 | ENVISAT.GOM.NL__2P | [Envisat] | [GOMOS] |
| 23 | FDRforAtmosphericCompositionATMOSL1B | [Envisat, ERS-2] | [SCIAMACHY, GOME] |
| 24 | ENVISAT.DOR.DOP_1P | [Envisat] | [DORIS] |
| 25 | ENVISAT.DOR.VOR_AX | [Envisat] | [DORIS] |
| 26 | ENVISAT.ASA.APP_1P | [Envisat] | [ASAR] |
| 27 | ENVISAT.ASA.WSM_1P | [Envisat] | [ASAR] |
| 28 | ENVISAT.ASA.WVW_2P | [Envisat] | [ASAR] |
| 29 | ENVISAT.ASA.IMS_1P | [Envisat] | [ASAR] |
Example: 10.3
Sort collection search results by modification date (ascending).
URL = URL_LANDING_PAGE + "collections"+ "?filter=parentIdentifier='EOP:ESA:EARTH-ONLINE'" \
+ "&sortby=properties.updated" \
+ "&limit=15"
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections \
--data-urlencode "filter=parentIdentifier='EOP:ESA:EARTH-ONLINE'" \
--data-urlencode "sortby=properties.updated" \
--data-urlencode "limit=15"
response = requests.get(URL)
data = json.loads(response.text)
df = pd.json_normalize(data, record_path=['collections'])
df[['title','updated']]
| title | updated | |
|---|---|---|
| 0 | SMOS Level 3C Sea Ice Thickness | 2025-04-24T10:23:59Z |
| 1 | Swarm Level 2 longterm | 2025-04-24T10:24:00Z |
| 2 | Swarm Geodesy/Gravity | 2025-04-24T10:24:00Z |
| 3 | Swarm Oceans | 2025-04-24T10:24:00Z |
| 4 | TANSAT AGCS and CAPI products | 2025-04-24T10:24:01Z |
| 5 | SciSat-1: ACE-FTS and MAESTRO | 2025-04-24T10:24:01Z |
| 6 | Envisat SCIAMACHY Level 2 [SCI_____2P] | 2025-04-24T10:24:02Z |
| 7 | ERS-2 GOME Spectral Product L1 | 2025-04-24T10:24:02Z |
| 8 | ERS-2 GOME Total Column Amount of Trace Gases ... | 2025-04-24T10:24:02Z |
| 9 | Odin OSIRIS data products | 2025-04-24T10:24:02Z |
| 10 | GOME Total Column Water Vapour Climate product | 2025-04-24T10:24:03Z |
| 11 | Envisat GOMOS Level 1b - Limb spectra [GOM_LIM... | 2025-04-24T10:24:03Z |
| 12 | Envisat MIPAS L2 - Temperature, pressure and a... | 2025-04-24T10:24:03Z |
| 13 | SPOT-6 to 7 full archive and tasking | 2025-04-24T10:24:04Z |
| 14 | GEOSAT-1 full archive and tasking | 2025-04-24T10:24:04Z |
Example: 10.4
Sort collection search results by title (ascending).
URL = URL_LANDING_PAGE + "collections"+ "?filter=parentIdentifier='EOP:ESA:EARTH-ONLINE'" \
+ "&sortby=properties.title" \
+ "&limit=15"
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections \
--data-urlencode "filter=parentIdentifier='EOP:ESA:EARTH-ONLINE'" \
--data-urlencode "sortby=properties.title" \
--data-urlencode "limit=15"
response = requests.get(URL)
data = json.loads(response.text)
df = pd.json_normalize(data, record_path=['collections'])
df[['id','title']]
| id | title | |
|---|---|---|
| 0 | ADAM.Surface.Reflectance.Database | ADAM Surface Reflectance Database v4.0 |
| 1 | ALOS | Alos African Coverage ESA archive |
| 2 | ALOS.AVNIR-2.L1C | ALOS AVNIR-2 L1C |
| 3 | ALOSIPY | ALOS PALSAR International Polar Year Antarctica |
| 4 | ALOS.PALSAR.FBS.FBD.PLR.products | ALOS PALSAR products |
| 5 | ALOS_PRISM_L1B | Alos PRISM L1B |
| 6 | alos-prism-l1c | ALOS PRISM L1C |
| 7 | alos.prism.l1c.european.coverage.cloud.free | ALOS PRISM L1C European Coverage Cloud Free |
| 8 | TDPforAtmosphere | Atmospheric Thematic Data Product [MWR_TDPATM] |
| 9 | NASA_OMI | Aura OMI complete NASA dataset |
| 10 | AVHRRLocalAreaCoverageImagery10 | AVHRR Level-1B/1C Local Area Coverage Imagery |
| 11 | CartoSat-1.archive.and.Euro-Maps.3D.Digital.Su... | CartoSat-1 archive and Euro-Maps 3D Digital Su... |
| 12 | Cartosat-1.Euro-Maps.3D | Cartosat-1 Euro-Maps 3D |
| 13 | CosmoSkyMed | COSMO-SkyMed ESA archive |
| 14 | COSMO-SkyMed.full.archive.and.tasking | COSMO-SkyMed full archive and tasking |
Example: 10.5
Sort item search results by orbit number (ascending) and id (ascending) at
/itemsendpoint.
COLLECTION_ID = 'BiomassLevel1cIOC'
URL = URL_LANDING_PAGE + "collections/"+ COLLECTION_ID + "/items?sortby=sat:absolute_orbit,id"
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1cIOC/items \
--data-urlencode "sortby=sat:absolute_orbit,id"
response = requests.get(URL)
data = json.loads(response.text)
# Convert STAC items into data frame
df = pd.json_normalize(data, record_path=['features'])
df[['id', 'properties.sat:absolute_orbit']]
| id | properties.sat:absolute_orbit | |
|---|---|---|
| 0 | BIO_S1_STA__1M_20170105T103648_20170105T103657... | 62 |
| 1 | BIO_S1_STA__1M_20170108T103651_20170108T103700... | 106 |
| 2 | BIO_S1_STA__1M_20250623T025119_20250623T025133... | 803 |
| 3 | BIO_S1_STA__1M_20250623T025131_20250623T025152... | 803 |
| 4 | BIO_S1_STA__1M_20250623T025150_20250623T025209... | 803 |
| 5 | BIO_S1_STA__1M_20250623T025759_20250623T025812... | 804 |
| 6 | BIO_S1_STA__1M_20170527T220953_20170527T221011... | 2151 |
| 7 | BIO_S1_STA__1M_20170527T220953_20170527T221012... | 2151 |
| 8 | BIO_S1_STA__1M_20170527T220953_20170527T221012... | 2151 |
| 9 | BIO_S1_STA__1M_20170527T220953_20170527T221012... | 2151 |
Example: 10.6
Sort item search results (granules) by start_datetime (descending) at
/searchendpoint (GET).
from pystac_client import Client
api = Client.open(URL_LANDING_PAGE)
results = api.search(
method = 'GET',
max_items = 10,
collections=[COLLECTION_ID],
sortby="-start_datetime"
)
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/search \
--data-urlencode "collections=BiomassLevel1cIOC" \
--data-urlencode "sortby=-start_datetime"
# Convert STAC items into data frame
stac_json = results.item_collection_as_dict()
gdf = gpd.GeoDataFrame.from_features(stac_json, "epsg:4326")
# limit to useful values
gdf[['title','start_datetime']]
| title | start_datetime | |
|---|---|---|
| 0 | BIO_S1_STA__1M_20250623T025759_20250623T025812... | 2025-06-23T02:57:59.724Z |
| 1 | BIO_S1_STA__1M_20250623T025150_20250623T025209... | 2025-06-23T02:51:50.384Z |
| 2 | BIO_S1_STA__1M_20250623T025131_20250623T025152... | 2025-06-23T02:51:31.404Z |
| 3 | BIO_S1_STA__1M_20250623T025119_20250623T025133... | 2025-06-23T02:51:19.237Z |
| 4 | BIO_S1_STA__1M_20170602T221054_20170602T221115... | 2017-06-02T22:10:54.668Z |
| 5 | BIO_S1_STA__1M_20170602T221054_20170602T221115... | 2017-06-02T22:10:54.667Z |
| 6 | BIO_S1_STA__1M_20170602T221054_20170602T221115... | 2017-06-02T22:10:54.667Z |
| 7 | BIO_S1_STA__1M_20170602T221054_20170602T221115... | 2017-06-02T22:10:54.664Z |
| 8 | BIO_S1_STA__1M_20170602T221035_20170602T221056... | 2017-06-02T22:10:35.669Z |
| 9 | BIO_S1_STA__1M_20170602T221035_20170602T221056... | 2017-06-02T22:10:35.668Z |
Example: 10.7
Sort item search results by start_datetime (descending) at
/itemsendpoint.
URL = URL_LANDING_PAGE + "collections/"+ COLLECTION_ID3_CLOUDS + "/items" \
+ "?sortby=-start_datetime"
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections/IKONOS.ESA.archive/items \
--data-urlencode "sortby=-start_datetime"
response = requests.get(URL)
data = json.loads(response.text)
# Convert STAC items into data frame
df = pd.json_normalize(data, record_path=['features'])
df[['properties.title', 'properties.datetime']]
| properties.title | properties.datetime | |
|---|---|---|
| 0 | IK2_OPER_OSA_GEO_1P_20081209T065500_N28-272_E0... | 2008-12-09T06:55:00Z |
| 1 | IK2_OPER_OSA_GEO_1P_20081113T110300_N31-177_W0... | 2008-11-13T11:03:00Z |
| 2 | IK2_OPER_OSA_GEO_1P_20081104T103000_N49-649_E0... | 2008-11-04T10:30:00Z |
| 3 | IK2_OPER_OSA_GEO_1P_20081005T072900_N21-879_E0... | 2008-10-05T07:29:00Z |
| 4 | IK2_OPER_OSA_GEO_1P_20081004T064900_N34-012_E0... | 2008-10-04T06:49:00Z |
| 5 | IK2_OPER_OSA_GEO_1P_20080827T070900_N22-241_E0... | 2008-08-27T07:09:00Z |
| 6 | IK2_OPER_OSA_GEO_1P_20080820T092600_N38-054_E0... | 2008-08-20T09:26:00Z |
| 7 | IK2_OPER_OSA_GEO_1P_20080816T070400_N34-704_E0... | 2008-08-16T07:04:00Z |
| 8 | IK2_OPER_OSA_GEO_1P_20080806T105200_N49-207_E0... | 2008-08-06T10:52:00Z |
| 9 | IK2_OPER_OSA_GEO_1P_20080806T105100_N49-207_E0... | 2008-08-06T10:51:00Z |
Example: 10.8
Sort item search results by cloud cover (ascending) and id (ascending) at
/itemsendpoint.
URL = URL_LANDING_PAGE + "collections/"+ COLLECTION_ID3_CLOUDS + "/items" \
+ "?datetime=2001-01-01T00:00:00Z/2003-01-02T00:00:00Z" \
+ "&sortby=eo:cloud_cover,id"
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections/IKONOS.ESA.archive/items \
--data-urlencode "datetime=2001-01-01T00:00:00Z/2003-01-02T00:00:00Z" \
--data-urlencode "sortby=eo:cloud_cover,id"
response = requests.get(URL)
data = json.loads(response.text)
# Convert STAC items into data frame
df = pd.json_normalize(data, record_path=['features'])
df[['id', 'properties.eo:cloud_cover', 'properties.datetime']]
| id | properties.eo:cloud_cover | properties.datetime | |
|---|---|---|---|
| 0 | IK2_OPER_OSA_GEO_1P_20010613T085400_N40-024_E0... | 0 | 2001-06-13T08:54:00Z |
| 1 | IK2_OPER_OSA_GEO_1P_20010613T085400_N40-131_E0... | 0 | 2001-06-13T08:54:00Z |
| 2 | IK2_OPER_OSA_GEO_1P_20010814T113300_N38-653_W0... | 0 | 2001-08-14T11:33:00Z |
| 3 | IK2_OPER_OSA_GEO_1P_20010830T080000_N35-463_E0... | 0 | 2001-08-30T08:00:00Z |
| 4 | IK2_OPER_OSA_GEO_1P_20011122T090100_N38-428_E0... | 0 | 2001-11-22T09:01:00Z |
| 5 | IK2_OPER_OSA_GEO_1P_20020520T092400_N39-944_E0... | 0 | 2002-05-20T09:24:00Z |
| 6 | IK2_OPER_OSA_GEO_1P_20020624T103800_N43-607_E0... | 0 | 2002-06-24T10:38:00Z |
| 7 | IK2_OPER_OSA_GEO_1P_20030101T064600_N25-938_E0... | 0 | 2003-01-01T06:46:00Z |
| 8 | IK2_OPER_OSA_GEO_1P_20020118T101700_N41-972_E0... | 14 | 2002-01-18T10:17:00Z |
| 9 | IK2_OPER_OSA_GEO_1P_20010810T104600_N43-573_E0... | 22 | 2001-08-10T10:46:00Z |
Example: 10.9
Sort item search results by eofeos:repeat_cycle_id (descending) at
/itemsendpoint.
URL = URL_LANDING_PAGE + "collections/"+ COLLECTION_ID + "/items?limit=20" \
+ "&datetime=2017-05-30T00:00:00Z/2017-06-02T23:00:00Z" \
+ "&sortby=-eofeos:repeat_cycle_id"
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections/BiomassLevel1cIOC/items \
--data-urlencode "limit=20" \
--data-urlencode "datetime=2017-05-30T00:00:00Z/2017-06-02T23:00:00Z" \
--data-urlencode "sortby=-eofeos:repeat_cycle_id"
response = requests.get(URL)
data = json.loads(response.text)
# Convert STAC items into data frame
df = pd.json_normalize(data, record_path=['features'])
df[['id', 'properties.eofeos:repeat_cycle_id']]
| id | properties.eofeos:repeat_cycle_id | |
|---|---|---|
| 0 | BIO_S1_STA__1M_20170602T221016_20170602T221037... | 3 |
| 1 | BIO_S1_STA__1M_20170602T221016_20170602T221037... | 3 |
| 2 | BIO_S1_STA__1M_20170602T220959_20170602T221018... | 3 |
| 3 | BIO_S1_STA__1M_20170602T221035_20170602T221056... | 3 |
| 4 | BIO_S1_STA__1M_20170602T221054_20170602T221115... | 3 |
| 5 | BIO_S1_STA__1M_20170602T220959_20170602T221018... | 3 |
| 6 | BIO_S1_STA__1M_20170602T221054_20170602T221115... | 3 |
| 7 | BIO_S1_STA__1M_20170602T220959_20170602T221018... | 3 |
| 8 | BIO_S1_STA__1M_20170602T221016_20170602T221037... | 3 |
| 9 | BIO_S1_STA__1M_20170602T221054_20170602T221115... | 3 |
| 10 | BIO_S1_STA__1M_20170602T221054_20170602T221115... | 3 |
| 11 | BIO_S1_STA__1M_20170602T221035_20170602T221056... | 3 |
| 12 | BIO_S1_STA__1M_20170602T221035_20170602T221056... | 3 |
| 13 | BIO_S1_STA__1M_20170602T221016_20170602T221037... | 3 |
| 14 | BIO_S1_STA__1M_20170602T221035_20170602T221056... | 3 |
| 15 | BIO_S1_STA__1M_20170602T220959_20170602T221018... | 3 |
| 16 | BIO_S1_STA__1M_20170530T220956_20170530T221015... | 2 |
| 17 | BIO_S1_STA__1M_20170530T221051_20170530T221112... | 2 |
| 18 | BIO_S1_STA__1M_20170530T220956_20170530T221015... | 2 |
| 19 | BIO_S1_STA__1M_20170530T221110_20170530T221131... | 2 |
Control properties returned#
The STAC interface supports the fields parameter at the following endpoints:
/collections
/collections/{collection-id}/items
/search
Example: 11.1
Excluding fields at
/itemsendpoint (GET).
fields = '-geometry,-properties,-links,-assets'
URL = URL_LANDING_PAGE + "collections/TropForest/items" + "?fields=" + fields
curl_str = curl_command(URL)
md("```shell\n" + curl_str + "\n```\n")
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections/TropForest/items \
--data-urlencode "fields=-geometry,-properties,-links,-assets"
response = requests.get(URL)
data = json.loads(response.text)
jstr = json.dumps(data["features"][0], indent=3)
md("```json\n" + jstr + "\n```\n")
{
"stac_version": "1.0.0",
"bbox": [
107.92515479,
13.91788998,
108.08990996,
14.07910052
],
"id": "KO2_OTPF_KO2_MSC_2F_20091110T025507_20091110T025507_017541_E108_N014",
"collection": "TropForest",
"type": "Feature",
"stac_extensions": [
"https://stac-extensions.github.io/eo/v2.0.0/schema.json",
"https://stac-extensions.github.io/projection/v2.0.0/schema.json",
"https://stac-extensions.github.io/processing/v1.2.0/schema.json",
"https://cs-si.github.io/eopf-stac-extension/v1.2.0/schema.json",
"https://stac-extensions.github.io/sat/v1.0.0/schema.json",
"https://stac-extensions.github.io/view/v1.0.0/schema.json",
"https://stac-extensions.github.io/product/v1.0.0/schema.json",
"https://stac-extensions.github.io/web-map-links/v1.2.0/schema.json"
]
}
Example: 11.2
Excluding nested fields at
/itemsendpoint (GET).
fields = '-properties.title,-properties.updated'
URL = URL_LANDING_PAGE + "collections/TropForest/items" + "?fields=" + fields
curl_str = curl_command(URL)
md("```shell\n" + curl_str + "\n```\n")
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections/TropForest/items \
--data-urlencode "fields=-properties.title,-properties.updated"
response = requests.get(URL)
data = json.loads(response.text)
jstr = json.dumps(data["features"][0]["properties"], indent=3)
md("```json\n" + jstr + "\n```\n")
{
"proj:code": "EPSG:4326",
"start_datetime": "2009-11-10T02:55:07Z",
"end_datetime": "2009-11-10T02:55:07Z",
"processing:facility": "Astrium Services",
"view:sun_azimuth": 0,
"product:type": "KO2_MSC_2F",
"platform": "KOMPSAT-2",
"view:sun_elevation": 0,
"datetime": "2009-11-10T02:55:07Z",
"instruments": [
"MSC"
],
"constellation": "KOMPSAT",
"sat:orbit_state": "descending",
"eo:cloud_cover": 1,
"processing:datetime": "2011-08-04T00:00:00Z",
"eopf:instrument_mode": "MS",
"sat:absolute_orbit": 17541,
"product:acquisition_type": "nominal"
}
Example: 11.3
Excluding fields at
/searchendpoint (GET).
results = api.search(
method = 'GET',
max_items = 10,
collections=['TropForest'],
# fields = ['bbox','id','type','properties', 'geometry']
fields = ['-geometry','-properties','-links','-assets']
)
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/search \
--data-urlencode "collections=TropForest" \
--data-urlencode "fields=-geometry,-properties,-links,-assets"
stac_json = results.item_collection_as_dict()
stac_json['features'][0]
{'stac_version': '1.0.0',
'bbox': [107.92515479, 13.91788998, 108.08990996, 14.07910052],
'id': 'KO2_OTPF_KO2_MSC_2F_20091110T025507_20091110T025507_017541_E108_N014',
'collection': 'TropForest',
'type': 'Feature',
'stac_extensions': ['https://stac-extensions.github.io/eo/v2.0.0/schema.json',
'https://stac-extensions.github.io/projection/v2.0.0/schema.json',
'https://stac-extensions.github.io/processing/v1.2.0/schema.json',
'https://cs-si.github.io/eopf-stac-extension/v1.2.0/schema.json',
'https://stac-extensions.github.io/sat/v1.0.0/schema.json',
'https://stac-extensions.github.io/view/v1.0.0/schema.json',
'https://stac-extensions.github.io/product/v1.0.0/schema.json',
'https://stac-extensions.github.io/web-map-links/v1.2.0/schema.json']}
Example: 11.4
Excluding fields at
/searchendpoint (POST).
results = api.search(
method = 'POST',
max_items = 10,
collections=['TropForest'],
# fields = ['bbox','id','type','properties', 'geometry']
# Specification requires "include" and "exclude". Not present in pystac_client.
fields = ['-geometry','-properties','-links','-assets']
)
curl -X POST https://catalog.maap.eo.esa.int/catalogue/search \
--header 'Content-Type: application/json' \
--data-raw '{
"collections": ["TropForest"],
"fields": "-geometry,-properties,-links,-assets"
}'
stac_json = results.item_collection_as_dict()
stac_json['features'][0]
{'stac_version': '1.0.0',
'bbox': [107.92515479, 13.91788998, 108.08990996, 14.07910052],
'id': 'KO2_OTPF_KO2_MSC_2F_20091110T025507_20091110T025507_017541_E108_N014',
'collection': 'TropForest',
'type': 'Feature',
'stac_extensions': ['https://stac-extensions.github.io/eo/v2.0.0/schema.json',
'https://stac-extensions.github.io/projection/v2.0.0/schema.json',
'https://stac-extensions.github.io/processing/v1.2.0/schema.json',
'https://cs-si.github.io/eopf-stac-extension/v1.2.0/schema.json',
'https://stac-extensions.github.io/sat/v1.0.0/schema.json',
'https://stac-extensions.github.io/view/v1.0.0/schema.json',
'https://stac-extensions.github.io/product/v1.0.0/schema.json',
'https://stac-extensions.github.io/web-map-links/v1.2.0/schema.json']}
Example: 11.5
Including fields at
/itemsendpoint (GET).
fields = 'bbox,id,type'
URL = URL_LANDING_PAGE + "collections/TropForest/items" + "?fields=" + fields
curl_str = curl_command(URL)
md("```shell\n" + curl_str + "\n```\n")
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections/TropForest/items \
--data-urlencode "fields=bbox,id,type"
response = requests.get(URL)
data = json.loads(response.text)
# show remaining content of first item
jstr = json.dumps(data["features"][0], indent=3)
md("```json\n" + jstr + "\n```\n")
{
"bbox": [
107.92515479,
13.91788998,
108.08990996,
14.07910052
],
"id": "KO2_OTPF_KO2_MSC_2F_20091110T025507_20091110T025507_017541_E108_N014",
"type": "Feature"
}
Example: 11.6
Including fields at
/searchendpoint (GET).
results = api.search(
method = 'GET',
max_items = 10,
collections=['TropForest'],
# fields = ['bbox','id','type','properties', 'geometry']
fields = ['id','bbox']
)
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/search \
--data-urlencode "collections=TropForest" \
--data-urlencode "fields=+id,+bbox"
stac_json = results.item_collection_as_dict()
stac_json['features'][0]
{'bbox': [107.92515479, 13.91788998, 108.08990996, 14.07910052],
'id': 'KO2_OTPF_KO2_MSC_2F_20091110T025507_20091110T025507_017541_E108_N014'}
Example: 11.7
Including fields at
/searchendpoint (POST).
results = api.search(
method = 'POST',
max_items = 10,
collections=['TropForest'],
# fields = ['bbox','id','type','properties', 'geometry']
fields = ['id', 'bbox']
)
curl -X POST https://catalog.maap.eo.esa.int/catalogue/search \
--header 'Content-Type: application/json' \
--data-raw '{
"collections": ["TropForest"],
"fields": "+id,+bbox"
}'
stac_json = results.item_collection_as_dict()
stac_json['features'][0]
{'bbox': [107.92515479, 13.91788998, 108.08990996, 14.07910052],
'id': 'KO2_OTPF_KO2_MSC_2F_20091110T025507_20091110T025507_017541_E108_N014'}
Example: 11.8
Including fields at
/collectionsendpoint (GET).
results = api.collection_search(
max_collections = 10,
# fields = ['bbox','id','type','properties', 'geometry']
fields = ['id','license']
)
curl -X GET -G https://catalog.maap.eo.esa.int/catalogue/collections \
--data-urlencode "fields=+id,+license"
data = results.collection_list_as_dict()
data['collections'][0]
{'license': 'various', 'id': 'Spire.live.and.historical.data'}