EarthCODE: Data Discovery and Access#
EarthCODE provides a structured way to explore and access scientific datasets, metadata, and dependencies. This notebook walks through the key aspects of programmatic data discovery and access using earthcode python library.
The examples you see below are live metadata records that live on the Open Science Catalog. The Open Science Catalog (OSC) is a key component of the ESA EO Open Science framework, and a publicly available web-based application designed to provide easy access to scientific datasets, geoscience products, and scientific resources developed under ESA-funded Earth Observation (EO) research projects.
Using the search functionality you can find relevant products, variables, eo-missions, and projects using various filters on the metadata as well as geographical constraints.
With this search you can directly use natural language for your queries - passing it an abstract, idea or an exhurb from your research to see what’s relevant for you in the Open Science Catalog.
If you are a scientist publishing to the EarthCODE OSC you can get relevant suggestions for variables, themes or missions for your dataset.
Import the library to start the search#
from earthcode.search import search
/Users/dean/Documents/EarthCODE/osc_test/.pixi/envs/default/lib/python3.13/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html
from .autonotebook import tqdm as notebook_tqdm
Search for Products in the Open Science Catalog#
1. Search with a natural language query#
There are different ways of searching for data - the simplest one is searching with a natural language query. The results will be returned as a list of pystac collection (for products) or catalog objects.
Run the cell below to discover the products that describe the concept you are looking for. In this case it will be forest fires. You can replace this with any concept / geophysical variable / region you would like to look at.
Note: In the current version of the earthcode library - the first run of the library right after you install it, searching will prefetch a mini-llm model which should take approximately 1 minute.
res = search("forest fires")[0]
res
- type "Collection"
- id "seasfire-cube"
- stac_version "1.1.0"
- description "The SeasFire Cube is a scientific datacube for seasonal fire forecasting around the globe. Apart from seasonal fire forecasting, which is the aim of the SeasFire project, the datacube can be used for several other tasks. For example, it can be used to model teleconnections and memory effects in the earth system. Additionally, it can be used to model emissions from wildfires and the evolution of wildfire regimes. It has been created in the context of the SeasFire project, which deals with "Earth System Deep Learning for Seasonal Fire Forecasting" and is funded by the European Space Agency (ESA) in the context of ESA Future EO-1 Science for Society Call. It contains 21 years of data (2001-2021) in an 8-days time resolution and 0.25 degrees grid resolution. It has a diverse range of seasonal fire drivers. It expands from atmospheric and climatological ones to vegetation variables, socioeconomic and the target variables related to wildfires such as burned areas, fire radiative power, and wildfire-related CO2 emissions."
links[] 12 items
0
- rel "root"
- href "../../catalog.json"
- type "application/json"
- title "Open Science Catalog"
1
- rel "via"
- href "https://zenodo.org/records/13834057"
- title "Access"
2
- rel "cite-as"
- href "https://doi.org/10.5281/zenodo.13834057"
- title "DOI"
3
- rel "item"
- href "./item.json"
- type "application/json"
- title "SeasFire Cube v.0.4"
4
- rel "parent"
- href "../catalog.json"
- type "application/json"
- title "Products"
5
- rel "related"
- href "../../projects/seasfire-earth-system-deep-learning-for-seasonal-fire-forecasting-in-europe/collection.json"
- type "application/json"
- title "Project: SeasFire"
6
- rel "related"
- href "../../themes/land/catalog.json"
- type "application/json"
- title "Theme: Land"
7
- rel "related"
- href "../../variables/burned-area/catalog.json"
- type "application/json"
- title "Variable: Burned Area"
8
- rel "vcs"
- href "https://github.com/ESA-EarthCODE/tutorial_seasfire-datacube/"
- title "Git repository for tutorials"
- vcs:type "git"
- vcs:branch "main"
9
- rel "example"
- href "https://github.com/ESA-EarthCODE/tutorial_seasfire-datacube/blob/main/Python-Tutorials/Seasfire_datacube_tutorial_Python.ipynb"
- type "application/x-ipynb+json"
- title "Tutorial: Access the SeasFire DataCube"
- description "A Python notebook demonstrating how to access the SeasFire DataCube."
- application:type "jupyter-notebook"
- application:embedded True
- application:language "Python"
10
- rel "example"
- href "https://workspace.earthcode.eox.at/hub/user-redirect/git-pull?repo=https://github.com/ESA-EarthCODE/tutorial_seasfire-datacube&urlpath=lab%2Ftree%2Ftutorial_seasfire-datacube%2FPython-Tutorials%2FSeasfire_datacube_tutorial_Python.ipynb&branch=main"
- type "text/html"
- title "Open tutorial notebook on the EarthCODE Portal Workspace"
11
- rel "self"
- href "https://esa-earthcode.github.io/open-science-catalog-metadata/products/seasfire-cube/collection.json"
- type "application/json"
stac_extensions[] 4 items
- 0 "https://stac-extensions.github.io/osc/v1.0.0/schema.json"
- 1 "https://stac-extensions.github.io/scientific/v1.0.0/schema.json"
- 2 "https://stac-extensions.github.io/themes/v1.0.0/schema.json"
- 3 "https://stac-extensions.github.io/cf/v0.2.0/schema.json"
- osc:project "seasfire-earth-system-deep-learning-for-seasonal-fire-forecasting-in-europe"
- osc:status "ongoing"
- osc:region "Global"
- osc:type "product"
- created "2024-09-26T00:00:00Z"
- version "0.4"
- sci:doi "10.5281/zenodo.13834057"
cf:parameter[] 1 items
0
- name "seasonal_fire"
themes[] 1 items
0
- scheme "https://github.com/stac-extensions/osc#theme"
concepts[] 1 items
0
- id "land"
osc:variables[] 1 items
- 0 "burned-area"
osc:missions[] 0 items
- updated "2025-01-30T20:32:22.960110Z"
- osc_url "https://opensciencedata.esa.int/stac-browser/#/products/seasfire-cube/collection.json"
- title "SeasFire Cube: A Global Dataset for Seasonal Fire Modeling in the Earth System"
extent
spatial
bbox[] 1 items
0[] 4 items
- 0 -180.0
- 1 -90.0
- 2 180.0
- 3 90.0
temporal
interval[] 1 items
0[] 2 items
- 0 "2001-01-01T00:00:00Z"
- 1 "2021-12-27T23:59:59Z"
- license "other"
keywords[] 4 items
- 0 "Natural Hazards"
- 1 "Wildfires"
- 2 "Burned Area"
- 3 "Seasonal Fire"
If you would like to access the collection via the Open Science Catalog web app, you can follow the link in the extra_fields attribute as in the example below:
res.extra_fields["osc_url"]
'https://opensciencedata.esa.int/stac-browser/#/products/seasfire-cube/collection.json'
2. Search with a known collection id#
If you are already a user of Open Science Catalogue, and the structure of the entries, you may be able to retrieve information about the specific Product by searching through its ID. You may pass the id as published in Open Science Catalog Metadata Repository
This keeps results tight and avoids scanning the whole catalog. You can either pass one id as a str or multiple ids as a list List[str]. In both cases the result will be an array object.
For example, here we’ve taken the id of the search result above to fetch it directly by its id instead of a semantic search:
search(collection_ids="seasfire-cube")[0]
- type "Collection"
- id "seasfire-cube"
- stac_version "1.1.0"
- description "The SeasFire Cube is a scientific datacube for seasonal fire forecasting around the globe. Apart from seasonal fire forecasting, which is the aim of the SeasFire project, the datacube can be used for several other tasks. For example, it can be used to model teleconnections and memory effects in the earth system. Additionally, it can be used to model emissions from wildfires and the evolution of wildfire regimes. It has been created in the context of the SeasFire project, which deals with "Earth System Deep Learning for Seasonal Fire Forecasting" and is funded by the European Space Agency (ESA) in the context of ESA Future EO-1 Science for Society Call. It contains 21 years of data (2001-2021) in an 8-days time resolution and 0.25 degrees grid resolution. It has a diverse range of seasonal fire drivers. It expands from atmospheric and climatological ones to vegetation variables, socioeconomic and the target variables related to wildfires such as burned areas, fire radiative power, and wildfire-related CO2 emissions."
links[] 12 items
0
- rel "root"
- href "../../catalog.json"
- type "application/json"
- title "Open Science Catalog"
1
- rel "via"
- href "https://zenodo.org/records/13834057"
- title "Access"
2
- rel "cite-as"
- href "https://doi.org/10.5281/zenodo.13834057"
- title "DOI"
3
- rel "item"
- href "./item.json"
- type "application/json"
- title "SeasFire Cube v.0.4"
4
- rel "parent"
- href "../catalog.json"
- type "application/json"
- title "Products"
5
- rel "related"
- href "../../projects/seasfire-earth-system-deep-learning-for-seasonal-fire-forecasting-in-europe/collection.json"
- type "application/json"
- title "Project: SeasFire"
6
- rel "related"
- href "../../themes/land/catalog.json"
- type "application/json"
- title "Theme: Land"
7
- rel "related"
- href "../../variables/burned-area/catalog.json"
- type "application/json"
- title "Variable: Burned Area"
8
- rel "vcs"
- href "https://github.com/ESA-EarthCODE/tutorial_seasfire-datacube/"
- title "Git repository for tutorials"
- vcs:type "git"
- vcs:branch "main"
9
- rel "example"
- href "https://github.com/ESA-EarthCODE/tutorial_seasfire-datacube/blob/main/Python-Tutorials/Seasfire_datacube_tutorial_Python.ipynb"
- type "application/x-ipynb+json"
- title "Tutorial: Access the SeasFire DataCube"
- description "A Python notebook demonstrating how to access the SeasFire DataCube."
- application:type "jupyter-notebook"
- application:embedded True
- application:language "Python"
10
- rel "example"
- href "https://workspace.earthcode.eox.at/hub/user-redirect/git-pull?repo=https://github.com/ESA-EarthCODE/tutorial_seasfire-datacube&urlpath=lab%2Ftree%2Ftutorial_seasfire-datacube%2FPython-Tutorials%2FSeasfire_datacube_tutorial_Python.ipynb&branch=main"
- type "text/html"
- title "Open tutorial notebook on the EarthCODE Portal Workspace"
11
- rel "self"
- href "https://esa-earthcode.github.io/open-science-catalog-metadata/products/seasfire-cube/collection.json"
- type "application/json"
stac_extensions[] 4 items
- 0 "https://stac-extensions.github.io/osc/v1.0.0/schema.json"
- 1 "https://stac-extensions.github.io/scientific/v1.0.0/schema.json"
- 2 "https://stac-extensions.github.io/themes/v1.0.0/schema.json"
- 3 "https://stac-extensions.github.io/cf/v0.2.0/schema.json"
- osc:project "seasfire-earth-system-deep-learning-for-seasonal-fire-forecasting-in-europe"
- osc:status "ongoing"
- osc:region "Global"
- osc:type "product"
- created "2024-09-26T00:00:00Z"
- version "0.4"
- sci:doi "10.5281/zenodo.13834057"
cf:parameter[] 1 items
0
- name "seasonal_fire"
themes[] 1 items
0
- scheme "https://github.com/stac-extensions/osc#theme"
concepts[] 1 items
0
- id "land"
osc:variables[] 1 items
- 0 "burned-area"
osc:missions[] 0 items
- updated "2025-01-30T20:32:22.960110Z"
- title "SeasFire Cube: A Global Dataset for Seasonal Fire Modeling in the Earth System"
extent
spatial
bbox[] 1 items
0[] 4 items
- 0 -180.0
- 1 -90.0
- 2 180.0
- 3 90.0
temporal
interval[] 1 items
0[] 2 items
- 0 "2001-01-01T00:00:00Z"
- 1 "2021-12-27T23:59:59Z"
- license "other"
keywords[] 4 items
- 0 "Natural Hazards"
- 1 "Wildfires"
- 2 "Burned Area"
- 3 "Seasonal Fire"
3. Search by spatial extent#
You can also use bbox=[minx, miny, maxx, maxy] to limit the results by geography. By default the bbox only needs to intersect the product footprint. For example, a small local area bbox will always intersect global datasets. In the below example we search for snow data over the Alps.
Additionally, we can set a limit on the amount of results we get back using the limit parameter as in the example below.
Note that the result is a global dataset which intersects with our bbox for the Alps.
alps_bbox = [5.95591129, 45.81799493, 10.49229402, 47.80846475]
search("snow data", limit=1, bbox=alps_bbox)[0]
- type "Collection"
- id "binary-wet-snow-s14science-snow"
- stac_version "1.1.0"
- description "Binary wet snow extent products were generated from Sentinel-1 data with 100 m grid spacing for snow areas with more than 70% fractional snow cover classified in the cloud gap filled fractional snow cover map of the same acquisition date from MODIS data. Forested areas and water bodies are masked in the wet snow products. These products were generated per track. Further, the binary wet snow maps from single tracks per day were merged to cover larger regions: Alps, Scandinavia, Pan-European domain. Product Access: Multi-sensor snowmelt extent products are stored as a zip file ("tracks_all.zip") at ftp.enveo.at. User: ftp30, password will be provided by the PI on request. PI: Thomas Nagler, ENVEO IT GmbH, email: thomas.nagler@enveo.at"
links[] 10 items
0
- rel "root"
- href "../../catalog.json"
- type "application/json"
- title "Open Science Catalog"
1
- rel "via"
- href "ftp://ftp.enveo.at"
- title "Access"
2
- rel "parent"
- href "../catalog.json"
- type "application/json"
- title "Products"
3
- rel "related"
- href "../../projects/development-of-pan-european-multi-sensor-snow-mapping-methods-exploiting-sentinel-1/collection.json"
- type "application/json"
- title "Project: S14Science: Snow"
4
- rel "related"
- href "../../themes/cryosphere/catalog.json"
- type "application/json"
- title "Theme: Cryosphere"
5
- rel "related"
- href "../../variables/snow-cover/catalog.json"
- type "application/json"
- title "Variable: Snow Cover"
6
- rel "related"
- href "../../eo-missions/sentinel-1/catalog.json"
- type "application/json"
- title "EO Mission: Sentinel-1"
7
- rel "related"
- href "../../eo-missions/sentinel-2/catalog.json"
- type "application/json"
- title "EO Mission: Sentinel-2"
8
- rel "related"
- href "../../eo-missions/sentinel-3/catalog.json"
- type "application/json"
- title "EO Mission: Sentinel-3"
9
- rel "self"
- href "https://esa-earthcode.github.io/open-science-catalog-metadata/products/binary-wet-snow-s14science-snow/collection.json"
- type "application/json"
stac_extensions[] 3 items
- 0 "https://stac-extensions.github.io/osc/v1.0.0/schema.json"
- 1 "https://stac-extensions.github.io/themes/v1.0.0/schema.json"
- 2 "https://stac-extensions.github.io/cf/v0.2.0/schema.json"
- osc:project "development-of-pan-european-multi-sensor-snow-mapping-methods-exploiting-sentinel-1"
- osc:status "completed"
- osc:region "Europe"
- osc:type "product"
- created "2018-12-31T00:00:00Z"
cf:parameter[] 1 items
0
- name "binary_wet snow"
themes[] 1 items
0
- scheme "https://github.com/stac-extensions/osc#theme"
concepts[] 1 items
0
- id "cryosphere"
osc:variables[] 1 items
- 0 "snow-cover"
osc:missions[] 3 items
- 0 "sentinel-1"
- 1 "sentinel-2"
- 2 "sentinel-3"
- updated "2024-09-12T20:32:06.211108Z"
- title "Binary wet snow extent products"
extent
spatial
bbox[] 1 items
0[] 4 items
- 0 -180.0
- 1 -90.0
- 2 180.0
- 3 90.0
temporal
interval[] 1 items
0[] 2 items
- 0 "2017-01-01T00:00:00Z"
- 1 "2018-12-31T23:59:59Z"
- license "other"
keywords[] 3 items
- 0 "Snow/Ice"
- 1 "Snow Cover"
- 2 "Cryospheric Indicators"
If instead you need the whole footprint to sit inside the bbox (containment instead of overlap) use intersects=False.
For example, in the cell below we run the same query again but with intersects=False and get results that are only within the Alps (excluding global ones and others that overlap).
search("snow data", limit=1, bbox=alps_bbox, intersects=False)[0]
- type "Collection"
- id "snow-cover-alpglacier"
- stac_version "1.1.0"
- description "Snow cover on glaciers. Most of the database has been submitted to Pangaea, where the submission is being processed. Some parts of the database fall under the copyright of the Swiss national institute for topography and were therefore only provided as point shapefiles instead of polygons. All the necessary information to reconstruct the study are provided."
links[] 9 items
0
- rel "root"
- href "../../catalog.json"
- type "application/json"
- title "Open Science Catalog"
1
- rel "via"
- href "https://onlinelibrary.wiley.com/doi/10.1002/esp.5193"
- title "Documentation"
2
- rel "parent"
- href "../catalog.json"
- type "application/json"
- title "Products"
3
- rel "related"
- href "../../projects/alpglacier/collection.json"
- type "application/json"
- title "Project: AlpGlacier"
4
- rel "related"
- href "../../themes/cryosphere/catalog.json"
- type "application/json"
- title "Theme: Cryosphere"
5
- rel "related"
- href "../../variables/snow-cover/catalog.json"
- type "application/json"
- title "Variable: Snow Cover"
6
- rel "related"
- href "../../eo-missions/sentinel-1/catalog.json"
- type "application/json"
- title "EO Mission: Sentinel-1"
7
- rel "related"
- href "../../eo-missions/sentinel-2/catalog.json"
- type "application/json"
- title "EO Mission: Sentinel-2"
8
- rel "self"
- href "https://esa-earthcode.github.io/open-science-catalog-metadata/products/snow-cover-alpglacier/collection.json"
- type "application/json"
stac_extensions[] 3 items
- 0 "https://stac-extensions.github.io/osc/v1.0.0/schema.json"
- 1 "https://stac-extensions.github.io/themes/v1.0.0/schema.json"
- 2 "https://stac-extensions.github.io/cf/v0.2.0/schema.json"
- osc:project "alpglacier"
- osc:status "planned"
- osc:region "Switzerland"
- osc:type "product"
cf:parameter[] 1 items
0
- name "snow_cover"
themes[] 1 items
0
- scheme "https://github.com/stac-extensions/osc#theme"
concepts[] 1 items
0
- id "cryosphere"
osc:variables[] 1 items
- 0 "snow-cover"
osc:missions[] 2 items
- 0 "sentinel-1"
- 1 "sentinel-2"
- updated "2024-09-12T20:32:06.231108Z"
- title "Snow cover on glaciers_SwissAlps_S1/2"
extent
spatial
bbox[] 1 items
0[] 4 items
- 0 5.95591129
- 1 45.81799493
- 2 10.49229402
- 3 47.80846475
temporal
interval[] 1 items
0[] 2 items
- 0 "2016-01-01T00:00:00Z"
- 1 "2016-12-31T23:59:59Z"
- license "other"
keywords[] 3 items
- 0 "Snow/Ice"
- 1 "Snow Cover"
- 2 "Cryospheric Indicators"
Search for Variables#
This section provides a way to search and discover the list of Variables available on Open Science Catalog. This might be useful, if you want to contribute and publish your product or workflow but, do not know which variables to choose from a long list of entries.
Variables on Open Science Catalog are defined as geoscience, climate and environmental variables that describe specific datasets and workflows/experiments.
Full list of variables may be explored under: https://opensciencedata.esa.int/variables/catalog
The search through variables works in the same way as for products, although there is no filter for bbox or filter for eo-missions.
1. Search with a natural language query#
You can search for terms directly using natural language as in the example below:
chlorophyll = search("chlorophyll", type="variables", limit=2)[0]
chlorophyll
- type "Catalog"
- id "chlorophyll-concentration"
- stac_version "1.1.0"
- description "The concentration of chlorophyll is a proxy for the number of photosynthetic plankton, or phytoplankton, present in the ocean. Phytoplankton populations are influenced by climatic factors such as sea surface temperatures and winds."
links[] 16 items
0
- rel "root"
- href "../../catalog.json"
- type "application/json"
- title "Open Science Catalog"
1
- rel "via"
- href "https://gcmd.earthdata.nasa.gov/KeywordViewer/scheme/Earth%20Science/0f816677-9e94-4e3b-b409-513335769af8?gtm_keyword=CHLOROPHYLL%20CONCENTRATION>m_scheme=Earth%20Science"
- type "text/html"
- title "Description"
2
- rel "child"
- href "../../products/global-particulate-organic-carbon-v5-bicep/collection.json"
- type "application/json"
- title "Monthly Global Chlorophyll-a dataset (9 km, OC-CCI v5)"
3
- rel "child"
- href "../../products/high-res-phytoplankton-chl-a-data-at-discrete-light-stations-polarstern-cruise-ps113/collection.json"
- type "application/json"
- title "High resolution phytoplankton Chl-a data obtained at discrete light stations (POLARSTERN cruise PS113)"
4
- rel "child"
- href "../../products/high-res-phytoplankton-chl-a-data-by-undulating-platform-behind-the-ship-polarstern-cruise-ps113/collection.json"
- type "application/json"
- title "High resolution phytoplankton Chl-a data obtained by undulating platform towed behind the ship (POLARSTERN cruise PS113)"
5
- rel "child"
- href "../../products/l3-chla-daily-eo4sibs/collection.json"
- type "application/json"
- title "Level 3 Chl-a, 300m daily and monthly"
6
- rel "child"
- href "../../products/l4-chla-eo4sibs/collection.json"
- type "application/json"
- title "Level 4 Ocean Colour products Chl-a, 300m, daily"
7
- rel "child"
- href "../../products/monthly-global-chlorophyll-a-dataset-9-km-oc-cci-v42/collection.json"
- type "application/json"
- title "Monthly Global Chlorophyll-a dataset (9 km, OC-CCI v4.2)"
8
- rel "child"
- href "../../products/phytoplankton-group-chl-ll-using-the-mean-dac-over-the-first-optical-depth-kdmean-of-the-measured-radiometric-profile/collection.json"
- type "application/json"
- title "Phytoplankton group Chl-a using mean DAC over kdmean of the radiometric profile (Polarstern cruise PS113)"
9
- rel "child"
- href "../../products/secchi-disk-depth-lpf-physioglob/collection.json"
- type "application/json"
- title "Secchi Disk depth_Global Oceans_Multimission"
10
- rel "child"
- href "../../products/4dmed-t-s-geo-a-150/collection.json"
- type "application/json"
- title "ESA 4DMED-SEA - Chlorophyll-a, Temperature, Salinity, Density, and Geostrophic Velocities from the surface down to 150 m"
11
- rel "child"
- href "../../products/4dmed-3d-prim-prod-150/collection.json"
- type "application/json"
- title "ESA 4DMED-SEA - Primary Production estimated from chlorophyll and temperature 3D fields at 1/24° from the surface down to 150 m"
12
- rel "child"
- href "../../products/coastal-carbon-mapper-reflectance-water-quality-data/collection.json"
- type "application/json"
- title "Spectral reflectance and associated water quality parameters measured from coastal waters of the Baltic Sea in 2023–2024"
13
- rel "parent"
- href "../catalog.json"
- type "application/json"
- title "Variables"
14
- rel "self"
- href "https://esa-earthcode.github.io/open-science-catalog-metadata/variables/chlorophyll-concentration/catalog.json"
- type "application/json"
15
- rel "related"
- href "../../themes/oceans/catalog.json"
- type "application/json"
- title "Theme: Oceans"
stac_extensions[] 1 items
- 0 "https://stac-extensions.github.io/themes/v1.0.0/schema.json"
themes[] 1 items
0
- scheme "https://github.com/stac-extensions/osc#theme"
concepts[] 1 items
0
- id "oceans"
- updated "2024-08-27T17:27:42.210831Z"
keywords[] 0 items
- title "Chlorophyll Concentration"
2. Find appropriate variable for your product based on its description#
You can use the variable search to help with approximations about what variables (from current list) to use for your published dataset by feeding the description of your project to the search - and avoid creating new variables which already might exist in the catalog.
For example the below example searches variables that migth fit this product: https://opensciencedata.esa.int/products/ice-sheet-velocity-antarctic-2021/collection.
Example product description:
‘This dataset contains monthly gridded ice velocity maps of the Antarctic Ice Sheet derived from Sentinel-1 data acquired between 2021-01-01 and 2021-12-31. It was generated by ENVEO, as part of the ESA Antarctic Ice Sheet Climate Change Initiative project (Antarctic_Ice_Sheet_cci). The surface velocity is derived by applying feature tracking techniques using Sentinel-1 synthetic aperture radar (SAR) data acquired in the Interferometric Wide (IW) swath mode. Ice velocity is provided at 200m grid spacing in Polar Stereographic projection (EPSG: 3031). The horizontal velocity components are provided in true meters per day, towards easting and northing direction of the grid. The vertical displacement is derived from a digital elevation model. Provided is a NetCDF file with the velocity components: vx, vy, vz, along with maps showing the magnitude of the horizontal components, the valid pixel count and uncertainty. The product combines all ice velocity maps, based on 6- and 12-day repeats, acquired within a single month in a monthly averaged product.’
product_description = search(collection_ids="ice-sheet-velocity-antarctic-2021")[0].description
result = search(product_description, type="variables", limit=5)
[r.title for r in result]
['Ice sheet topography',
'Ice Temperature',
'Ice Velocity',
'Sea Ice Age',
'Glacier motion']
If your product is not published yet, you can find appropriate variable based on the description passed to the search function as a standard string. Just replace the description with the one applied to your product and search through the catalog.
product_description_txt = '' # Paste description of your dataset here
result = search(product_description_txt, type="variables", limit=5)
[r.title for r in result]
['(13)CH4 delta',
'(13)CO Delta',
'(13)CO2 Delta',
'(14)CH4 Delta',
'(14)CO Number Concentration']
Search for EO-Mission#
Open Science Catalog provides as well a list of Earth Observation Satellite Missions contributing to the published scientific research. Each Product and Dataset published on Open Science Catalog must have description and link to appropriate EO Mission based on which the results were produced.
Since there are some products which are based on in-situ observations or numerical models, these were also added to that category.
If you would like to discover the list of available EO Missions, use the code cells below to filter for the appropriate one.
1. Search with a natural language query#
You can search for terms directly using natural language as in the example below:
search("sentinel-1", type="eo-missions", limit=2)[0]
- type "Catalog"
- id "sentinel-1"
- stac_version "1.1.0"
- description "Sentinel-1 is a constellation of two imaging radar satellites operated by ESA. Sentinel-1B experienced an anomaly which rendered it unable to deliver radar data in December 2021, and the launch of Sentinel-1C is planned for 2023."
links[] 37 items
0
- rel "root"
- href "../../catalog.json"
- type "application/json"
- title "Open Science Catalog"
1
- rel "via"
- href "https://database.eohandbook.com/database/missionsummary.aspx?missionID=575"
- type "text/html"
- title "Description"
2
- rel "child"
- href "../../products/absolute-sea-level-heights-baltics-sar-hsu/collection.json"
- type "application/json"
- title "SL-ABS: Absolute Sea Level Heights_Baltics_Multimission"
3
- rel "child"
- href "../../products/basal-melt-monthly/collection.json"
- type "application/json"
- title "Basal Melt (ESA POLAR+ 4D Greenland Experimental Dataset)"
4
- rel "child"
- href "../../products/binary-wet-snow-s14science-snow/collection.json"
- type "application/json"
- title "Binary wet snow extent products"
5
- rel "child"
- href "../../products/database-of-labelled-sentinel-1-interferograms-v20/collection.json"
- type "application/json"
- title "Database of labelled Sentinel-1 interferograms - v.2.0"
6
- rel "child"
- href "../../products/dynamics-of-glacier-lakes-alpglacier/collection.json"
- type "application/json"
- title "Dynamics of glacier lakes_SwissAlps_S1/2"
7
- rel "child"
- href "../../products/electronic-delay-correction-baltics-sar-hsu/collection.json"
- type "application/json"
- title "COR-EC2: ECR Electronic Delay Correction_Baltics_Multimission"
8
- rel "child"
- href "../../products/geodynamic-corrections-baltics-sar-hsu/collection.json"
- type "application/json"
- title "COR-GC: Geodynamic Corrections_Baltics_Multimission"
9
- rel "child"
- href "../../products/geoid-heights-baltics-sar-hsu/collection.json"
- type "application/json"
- title "GEO-HGT: Geoid Heights_Baltics_Multimission"
10
- rel "child"
- href "../../products/gnss-positioning-solution-baltics-sar-hsu/collection.json"
- type "application/json"
- title "GNSS-POS: GNSS positioning solution_Baltics_Multimission"
11
- rel "child"
- href "../../products/ionospheric-delays-baltics-sar-hsu/collection.json"
- type "application/json"
- title "COR-ID: Ionospheric Delays_Baltics_Multimission"
12
- rel "child"
- href "../../products/ocean-freshwater-flux-arctic-theme3/collection.json"
- type "application/json"
- title "Ocean freshwater fluxes_Arctic_Multimission"
13
- rel "child"
- href "../../products/s1-corrections-baltics-sar-hsu/collection.json"
- type "application/json"
- title "COR-SC: Sentinel-1 Systematic Effects Corrections_Baltics_Multimission"
14
- rel "child"
- href "../../products/sar-observation-solution-baltics-sar-hsu/collection.json"
- type "application/json"
- title "SAR-OBS: Observation Solution_Baltics_Multimission"
15
- rel "child"
- href "../../products/sar-positioning-solution-baltics-sar-hsu/collection.json"
- type "application/json"
- title "SAR-POS: SAR Positioning Solution_Baltics_Multimission"
16
- rel "child"
- href "../../products/sar-raw-measurements-baltics-sar-hsu/collection.json"
- type "application/json"
- title "PTA-OBS: SAR Raw Measurements_Baltics_Multimission"
17
- rel "child"
- href "../../products/sea-surface-heights-corrected-baltics-sar-hsu/collection.json"
- type "application/json"
- title "TG-SSH: Corrected Sea Surface Height at Tide Gauge Stations_Baltics_Multimission"
18
- rel "child"
- href "../../products/slope-instabilities-glacier-forefields-alpglacier/collection.json"
- type "application/json"
- title "Slope instabilities in glacier forefields_SwissAlps_S1/2"
19
- rel "child"
- href "../../products/sm-based-inversion-approach-ebro-irrigation/collection.json"
- type "application/json"
- title "Regional irrigation water use at high-resolution - EBRO basin"
20
- rel "child"
- href "../../products/sm-based-inversion-approach-murray-darling-irrigation/collection.json"
- type "application/json"
- title "Regional irrigation water use at high-resolution - MURRAY-DARLING basin"
21
- rel "child"
- href "../../products/sm-based-inversion-approach-po-irrigation/collection.json"
- type "application/json"
- title "Regional irrigation water use at high-resolution - PO valley"
22
- rel "child"
- href "../../products/snow-cover-alpglacier/collection.json"
- type "application/json"
- title "Snow cover on glaciers_SwissAlps_S1/2"
23
- rel "child"
- href "../../products/subglacial-lake-drainage-4dantarctica/collection.json"
- type "application/json"
- title "Subglacial Lake Drainage and Filling Antarctica Multimission"
24
- rel "child"
- href "../../products/subglacial-melt-maps/collection.json"
- type "application/json"
- title "Subglacial Melt Maps"
25
- rel "child"
- href "../../products/supraglacial-storage-and-drainage-lake-features-mapped-by-sentinel1/collection.json"
- type "application/json"
- title "Supraglacial Storage and Drainage - Lake Features Mapped by Sentinel-1"
26
- rel "child"
- href "../../products/surface-soil-moisture-s1-for-surface-soil-moisture/collection.json"
- type "application/json"
- title "Surface soil moisture time series_1 km resolution_Southern Italy_S1"
27
- rel "child"
- href "../../products/target-locations-baltics-sar-hsu/collection.json"
- type "application/json"
- title "PTA-RES: Extracted Target Locations_Baltics_Multimission"
28
- rel "child"
- href "../../products/tide-gauge-heights-baltics-sar-hsu/collection.json"
- type "application/json"
- title "TG-HGT: Tide Gauge Heights_Baltics_Multimission"
29
- rel "child"
- href "../../products/tropospheric-delays-baltics-sar-hsu/collection.json"
- type "application/json"
- title "COR-TD: Tropospheric Delays_Baltics_Multimission"
30
- rel "child"
- href "../../products/ice-sheet-velocity-antarctic-2021/collection.json"
- type "application/json"
- title "Antarctic Ice Sheet monthly ice velocity - 2021"
31
- rel "child"
- href "../../products/grounding-line-position-antarctica/collection.json"
- type "application/json"
- title "Grounding line position: MEaSUREs Antarctic Grounding Line from Differential Satellite Radar Interferometry, v.2"
32
- rel "child"
- href "../../products/gmc-training-europe-dsgsd-landslide-subsidence-uplift/collection.json"
- type "application/json"
- title "Training dataset of the feature-based GMC algorithm"
33
- rel "child"
- href "../../products/european-ground-motion-classification-eugmc/collection.json"
- type "application/json"
- title "European Ground Motion Classification dataset (EuGMC)"
34
- rel "child"
- href "../../products/polar-lakes-s1-s2-antarctica/collection.json"
- type "application/json"
- title "PolarLakes - Sentinel-1/2 - Antarctica, Bi-weekly/Annually"
35
- rel "parent"
- href "../catalog.json"
- type "application/json"
- title "EO Missions"
36
- rel "self"
- href "https://esa-earthcode.github.io/open-science-catalog-metadata/eo-missions/sentinel-1/catalog.json"
- type "application/json"
- updated "2024-08-27T17:27:42.174831Z"
keywords[] 0 items
- title "Sentinel-1"
2. Find eo-mission based on your product description#
To find the mission of interest it works in the same way as in case of the variables. We will use here the same example to retrieve the possible missions to associate to your product.
product_description = search(collection_ids="ice-sheet-velocity-antarctic-2021")[0].description
result = search(product_description, type="eo-missions", limit=5)
[r.title for r in result]
['ICESat', 'ICESat-2', 'CryoSat', 'Sentinel-1', 'CALIPSO']
If your product is not published yet, you can find appropriate eo-mission based on the description passed to the search function as a standard string. Just replace the description with the one applied to your product and search through the catalog.
product_description_txt = '' # Paste description of your dataset here
result = search(product_description_txt, type="eo-missions", limit=5)
[r.title for r in result]
['AEOLUS', 'ALOS', 'ALOS-2', 'ALOS-4', 'ALtiKa']
Filtering Products by Variables, EO Missions and Themes#
Once you’ve identified a Variable record (for example, chlorophyll from the Variables section), you can use its id to filter products to only those that explicitly declare that variable in their metadata. This is useful when you want results that are semantically relevant and models a particular variable of interest.
1. Filter Products by Variable id#
In the example below, we search for global chlorophyll datasets and constrain results to products that include the chlorophyll variable:
search("global chlorophyll dataset", variable=chlorophyll.id, type="products")
[<Collection id=monthly-global-chlorophyll-a-dataset-9-km-oc-cci-v42>,
<Collection id=global-particulate-organic-carbon-v5-bicep>,
<Collection id=l4-chla-eo4sibs>,
<Collection id=l3-chla-daily-eo4sibs>,
<Collection id=4dmed-3d-prim-prod-150>,
<Collection id=high-res-phytoplankton-chl-a-data-at-discrete-light-stations-polarstern-cruise-ps113>,
<Collection id=phytoplankton-group-chl-ll-using-the-mean-dac-over-the-first-optical-depth-kdmean-of-the-measured-radiometric-profile>,
<Collection id=coastal-carbon-mapper-reflectance-water-quality-data>,
<Collection id=4dmed-t-s-geo-a-150>,
<Collection id=secchi-disk-depth-lpf-physioglob>]
2. Filter Products by EO-Missions and Vairable id#
You can also filter by eo-missions (e.g. sentinel-1), to find products that have been produced by that instrument. The queries are addative so you can tighten the same query above further by restricting it to a specific EO mission. This is particularly helpful when multiple missions produce similar variables (e.g., ocean colour chlorophyll from different instruments), but you only want products traceable to a given platform.
search("global chlorophyll dataset", variable=chlorophyll.id, type="products", mission="sentinel-3")
[<Collection id=monthly-global-chlorophyll-a-dataset-9-km-oc-cci-v42>,
<Collection id=global-particulate-organic-carbon-v5-bicep>,
<Collection id=l4-chla-eo4sibs>,
<Collection id=l3-chla-daily-eo4sibs>]
3. Filter Products by EO-Missions, Variable id and Keyword(s)#
You can also add a free-text keyword search which finds all literal occurences of the phrase/word you’ve passed in the title, description or keyword entries of the product you are looking for. Here we narrow to results that mention “daily”, while still keeping the variable and mission constraints:
search("global chlorophyll dataset", variable=chlorophyll.id, type="products", mission="sentinel-3", keyword="daily")
You can also refine variable search by applying the filters for theme and keyword. This is especially useful when the catalog contains many similar parameters and you want to narrow results to a particular scientific domain or concept.
4. Filter Products by Keyword#
results = search(keyword="seasonal fire modeling", type="products", limit=5)
ids = {r.id for r in results}
print(ids)
{'seasfire-cube'}
5. Filter Products by Free text, keyword and theme#
For example, the query below searches for a variable related to jet streams, but restricts results to the oceans theme and further filters by the keyword cyclone:
search("find me a variable that talks about jet streams",theme="oceans", type="variables", keyword="cyclone")[0].title
'East Atlantic Jet Pattern'