Skip to article frontmatterSkip to article content

EODAG - DestinE Data Lake Provider

This notebook demonstrates how to use the DEDL provider in EODAG.

🚀 Launch in JupyterHub
Prerequisites:
  • To search and access DEDL data a DestinE user account is needed

  • References:
  • EODAG - Earth Observation Data Access Gateway

  • EODAG - DEDL

  • EODAG API documentation

  • Credit:
  • Code used in this context takes inspiration from the Python API User Guide produced by CS Group.

  • EODAG is a command line tool and a Python package for searching and downloading earth observation data via a unified API.

    This tutorial demonstrates how to use EODAG to search and access DEDL data. The notebook uses the DEDL provider in EODAG to access data via Python code.

    1. Setup: EODAG configuration to use the provider DEDL .

    2. Search: search DEDL data, we search for Sentinel-3 data.

    3. Filter: filter DEDL data.

    4. Download: download DEDL data.

    The complete guide on how to use EODAG Python API is available via https://eodag.readthedocs.io/en/stable/api_user_guide.html.

    Note:

    Please note that the two factor authentication (2FA) is still not implemented in EODAG. The users who have enabled 2FA on DESP will not be able to run this notebook.

    Setup

    In this section, we set:

    • The output_dir, the directory where to store downloaded products.

    • The DEDL credentials, you’ll be asked to enter your DEDL credentials.

    • The search timeout, it is of 60 seconds to avoid any unexpected errors because of long running search queries.

    import os
    from getpass import getpass
    
    workspace = 'eodag_workspace'
    if not os.path.isdir(workspace):
        os.mkdir(workspace)
        
    os.environ["EODAG__DEDL__DOWNLOAD__OUTPUT_DIR"] = os.path.abspath(workspace)
    #os.environ["EODAG__DEDL__DOWNLOAD__OUTPUTS_PREFIX"] = os.path.abspath(workspace)
    
    os.environ["EODAG__DEDL__PRIORITY"]="10"
    os.environ["EODAG__DEDL__SEARCH__TIMEOUT"]="60"
    
    
    DESP_USERNAME = input("Please input your DESP username or email: ")
    DESP_PASSWORD = getpass("Please input your DESP password: ")
    
    os.environ["EODAG__DEDL__AUTH__CREDENTIALS__USERNAME"]=DESP_USERNAME
    os.environ["EODAG__DEDL__AUTH__CREDENTIALS__PASSWORD"]=DESP_PASSWORD
    
    Please input your DESP username or email:  eum-dedl-user
    Please input your DESP password:  ········
    

    Import EODAG and list available products on DEDL

    We now need to import the EODataAccessGateway class. The class is going to take care of all the following operations.

    We can start listing the products available using dedl as provider.

    
    from eodag import EODataAccessGateway, setup_logging
    dag = EODataAccessGateway()
    
    setup_logging(0)
    print("\033[1mID - Title\033[0m")
    
    # Rows
    for pt in dag.list_product_types("dedl"):
        print(f'{pt["ID"]} - {pt["title"]}')
    ID - Title
    EO.AERIS.DAT.IAGOS - In-service Aircraft for a Global Observing System
    EO.CLMS.DAT.CORINE - CORINE Land Cover
    EO.CLMS.DAT.GLO.DMP300_V1 - 10-daily Dry Matter Productivity 333M
    EO.CLMS.DAT.GLO.FAPAR300_V1 - Global 10-daily Fraction of Absorbed PAR 333m
    EO.CLMS.DAT.GLO.FCOVER300_V1 - Global 10-daily Fraction of Vegetation Cover 333m
    EO.CLMS.DAT.GLO.GDMP300_V1 - 10-daily Gross Dry Matter Productivity 333M
    EO.CLMS.DAT.GLO.LAI300_V1 - Global 10-daily Leaf Area Index 333m
    EO.CLMS.DAT.GLO.NDVI300_V1 - Global 10-daily Normalized Difference Vegetation Index 333M
    EO.CLMS.DAT.GLO.NDVI_1KM_V2 - Normalized Difference Vegetation Index: global Long Term Statistics (raster 1km) - version 2, Apr 2019
    EO.CLMS.DAT.SENTINEL-2.HRVPP.VI - Vegetation Indices, daily, UTM projection
    EO.DEM.DAT.COP-DEM_GLO-30-DGED - Copernicus DEM GLO-30 DGED
    EO.DEM.DAT.COP-DEM_GLO-30-DTED - Copernicus DEM GLO-30 DTED
    EO.DEM.DAT.COP-DEM_GLO-90-DGED - Copernicus DEM GLO-90 DGED
    EO.DEM.DAT.COP-DEM_GLO-90-DTED - Copernicus DEM GLO-90 DTED
    EO.ECMWF.DAT.CAMS_EUROPE_AIR_QUALITY_FORECASTS - CAMS European air quality forecasts
    EO.ECMWF.DAT.CAMS_EUROPE_AIR_QUALITY_REANALYSES - CAMS European air quality reanalyses
    EO.ECMWF.DAT.CAMS_GLOBAL_ATMOSHERIC_COMPO_FORECAST - CAMS global atmospheric composition forecasts
    EO.ECMWF.DAT.CAMS_GLOBAL_EMISSION_INVENTORIES - CAMS global emission inventories
    EO.ECMWF.DAT.CAMS_GLOBAL_FIRE_EMISSIONS_GFAS - CAMS global biomass burning emissions based on fire radiative power (GFAS)
    EO.ECMWF.DAT.CAMS_GLOBAL_GREENHOUSE_GAS_REANALYSIS - CAMS global greenhouse gas reanalysis (EGG4)
    EO.ECMWF.DAT.CAMS_GLOBAL_GREENHOUSE_GAS_REANALYSIS_MONTHLY_AV_FIELDS - CAMS global greenhouse gas reanalysis (EGG4) monthly averaged fields
    EO.ECMWF.DAT.CAMS_GLOBAL_RADIATIVE_FORCING - CAMS global radiative forcings
    EO.ECMWF.DAT.CAMS_GLOBAL_RADIATIVE_FORCING_AUX - CAMS global radiative forcing - auxilliary variables
    EO.ECMWF.DAT.CAMS_GLOBAL_REANALYSIS_EAC4 - CAMS global reanalysis (EAC4)
    EO.ECMWF.DAT.CAMS_GLOBAL_REANALYSIS_EAC4_MONTHLY_AV_FIELDS - CAMS global reanalysis (EAC4) monthly averaged fields
    EO.ECMWF.DAT.CAMS_GREENHOUSE_GAS_FLUXES - CAMS global inversion-optimised greenhouse gas fluxes and concentrations
    EO.ECMWF.DAT.CAMS_SOLAR_RADIATION_TIMESERIES - CAMS solar radiation time-series
    EO.ECMWF.DAT.CEMS_FIRE_HISTORICAL - Fire danger indices historical data from the Copernicus Emergency Management Service
    EO.ECMWF.DAT.CEMS_GLOFAS_FORECAST - River discharge and related forecasted data by the Global Flood Awareness System
    EO.ECMWF.DAT.CEMS_GLOFAS_HISTORICAL - River discharge and related historical data from the Global Flood Awareness System
    EO.ECMWF.DAT.CEMS_GLOFAS_REFORECAST - Reforecasts of river discharge and related data by the Global Flood Awareness System
    EO.ECMWF.DAT.CEMS_GLOFAS_SEASONAL - Seasonal forecasts of river discharge and related data by the Global Flood Awareness System
    EO.ECMWF.DAT.CEMS_GLOFAS_SEASONAL_REFORECAST - Seasonal reforecasts of river discharge and related data from the Global Flood Awareness System
    EO.ECMWF.DAT.CO2_DATA_FROM_SATELLITE_SENSORS_2002_PRESENT - Carbon dioxide data from 2002 to present derived from satellite observations
    EO.ECMWF.DAT.DERIVED_GRIDDED_GLACIER_MASS_CHANGE - Glacier mass change gridded data from 1976 to present derived from the Fluctuations of Glaciers Database
    EO.ECMWF.DAT.DT_CLIMATE_ADAPTATION - Climate Change Adaptation Digital Twin (DT)
    EO.ECMWF.DAT.DT_EXTREMES - Weather and Geophysical Extremes Digital Twin (DT)
    EO.ECMWF.DAT.EFAS_FORECAST - River discharge and related forecasted data by the European Flood Awareness System
    EO.ECMWF.DAT.EFAS_HISTORICAL - River discharge and related historical data from the European Flood Awareness System
    EO.ECMWF.DAT.EFAS_REFORECAST - Reforecasts of river discharge and related data by the European Flood Awareness System
    EO.ECMWF.DAT.EFAS_SEASONAL - Seasonal forecasts of river discharge and related data by the European Flood Awareness System
    EO.ECMWF.DAT.EFAS_SEASONAL_REFORECAST - Seasonal reforecasts of river discharge and related data by the European Flood Awareness System
    EO.ECMWF.DAT.ERA5_HOURLY_VARIABLES_ON_PRESSURE_LEVELS - ERA5 hourly data on pressure levels from 1940 to present
    EO.ECMWF.DAT.ERA5_LAND_HOURLY - ERA5-Land hourly data from 1950 to present
    EO.ECMWF.DAT.ERA5_LAND_MONTHLY - ERA5-Land monthly averaged data from 1950 to present
    EO.ECMWF.DAT.ERA5_MONTHLY_MEANS_VARIABLES_ON_PRESSURE_LEVELS - ERA5 monthly averaged data on pressure levels from 1940 to present
    EO.ECMWF.DAT.GLACIERS_DISTRIBUTION_DATA_FROM_RANDOLPH_GLACIER_INVENTORY_2000 - Glaciers distribution data from the Randolph Glacier Inventory for year 2000
    EO.ECMWF.DAT.METHANE_DATA_SATELLITE_SENSORS_2002_PRESENT - Methane data from 2003 to present derived from satellite observations
    EO.ECMWF.DAT.REANALYSIS_ERA5_SINGLE_LEVELS - ERA5 hourly data on single levels from 1940 to present
    EO.ECMWF.DAT.REANALYSIS_ERA5_SINGLE_LEVELS_MONTHLY_MEANS - ERA5 monthly averaged data on single levels from 1940 to present
    EO.ECMWF.DAT.REANALYSIS_UERRA_EUROPE_SINGLE_LEVELS - UERRA regional reanalysis for Europe on single levels from 1961 to 2019
    EO.ECMWF.DAT.SATELLITE_SEA_ICE_CONCENTRATION - Sea ice concentration daily gridded data from 1978 to present derived from satellite observations
    EO.ECMWF.DAT.SATELLITE_SEA_ICE_EDGE_TYPE - Sea ice edge and type daily gridded data from 1978 to present derived from satellite observations
    EO.ECMWF.DAT.SATELLITE_SEA_ICE_THICKNESS - Sea ice thickness monthly gridded data for the Arctic from 2002 to present derived from satellite observations
    EO.ECMWF.DAT.SEASONAL_FORECAST_ANOMALIES_ON_PRESSURE_LEVELS_2017_PRESENT - Seasonal forecast anomalies on pressure levels
    EO.ECMWF.DAT.SEASONAL_FORECAST_ANOMALIES_ON_SINGLE_LEVELS_2017_PRESENT - Seasonal forecast anomalies on single levels
    EO.ECMWF.DAT.SEASONAL_FORECAST_DAILY_DATA_ON_PRESSURE_LEVELS_2017_PRESENT - Seasonal forecast subdaily data on pressure levels
    EO.ECMWF.DAT.SEASONAL_FORECAST_DAILY_DATA_ON_SINGLE_LEVELS_2017_PRESENT - Seasonal forecast daily and subdaily data on single levels
    EO.ECMWF.DAT.SEASONAL_FORECAST_MONTHLY_STATISTICS_ON_PRESSURE_LEVELS_2017_PRESENT - Seasonal forecast monthly statistics on pressure levels
    EO.ECMWF.DAT.SEASONAL_FORECAST_MONTHLY_STATISTICS_ON_SINGLE_LEVELS_2017_PRESENT - Seasonal forecast monthly statistics on single levels
    EO.ECMWF.DAT.SEA_LEVEL_DAILY_GRIDDED_DATA_FOR_GLOBAL_OCEAN_1993_PRESENT - Sea level gridded data from satellite observations for the global ocean
    EO.ECMWF.DAT.SIS_HYDROLOGY_METEOROLOGY_DERIVED_PROJECTIONS - Temperature and precipitation climate impact indicators from 1970 to 2100 derived from European climate projections
    EO.ECMWF.DAT.SIS_HYDROLOGY_VARIABLES_DERIVED_PROJECTIONS - Hydrology-related climate impact indicators from 1970 to 2100 derived from bias adjusted European climate projections
    EO.ESA.DAT.SENTINEL-1.L1_GRD - SENTINEL1 Level-1 Ground Range Detected
    EO.ESA.DAT.SENTINEL-1.L1_SLC - SENTINEL1 Level-1 Single Look Complex
    EO.ESA.DAT.SENTINEL-2.MSI.L1C - SENTINEL2 Level-1C
    EO.ESA.DAT.SENTINEL-2.MSI.L2A - SENTINEL2 Level-2A
    EO.ESA.DAT.SENTINEL-3.OL_2_LFR___ - SENTINEL3 OLCI Level-2 Land Full Resolution
    EO.ESA.DAT.SENTINEL-3.OL_2_LRR___ - SENTINEL3 OLCI Level-2 Land Reduced Resolution
    EO.ESA.DAT.SENTINEL-3.SL_2_LST___ - SENTINEL3 SLSTR Level-2 LST
    EO.ESA.DAT.SENTINEL-3.SR_2_LAN___ - SENTINEL3 SRAL Level-2 LAN
    EO.ESA.DAT.SENTINEL-5P.TROPOMI.L1 - Sentinel-5 Precursor Level 1B Irradiances for the SWIR and UNV bands
    EO.ESA.DAT.SENTINEL-5P.TROPOMI.L2 - Sentinel-5 Precursor Level 2 Data
    EO.EUM.CM.METOP.ASCSZFR02 - ASCAT Level 1 SZF Climate Data Record Release 2 - Metop
    EO.EUM.CM.METOP.ASCSZOR02 - ASCAT Level 1 SZO Climate Data Record Release 2 - Metop
    EO.EUM.CM.METOP.ASCSZRR02 - ASCAT Level 1 SZR Climate Data Record Release 2 - Metop
    EO.EUM.DAT.AMVR02 - Atmospheric Motion Vectors Climate Data Record Release 2 - MFG and MSG - 0 degree
    EO.EUM.DAT.GSAL2R02 - GSA Level 2 Climate Data Record Release 2 - MFG and MSG - 0 degree
    EO.EUM.DAT.METOP.AMSUL1 - AMSU-A Level 1B - Metop - Global
    EO.EUM.DAT.METOP.ASCSZF1B - ASCAT Level 1 Sigma0 Full Resolution - Metop - Global
    EO.EUM.DAT.METOP.ASCSZO1B - ASCAT Level 1 Sigma0 resampled at 25 km Swath Grid - Metop - Global
    EO.EUM.DAT.METOP.ASCSZR1B - ASCAT Level 1 Sigma0 resampled at 12.5 km Swath Grid - Metop - Global
    EO.EUM.DAT.METOP.AVHRRGACR02 - AVHRR GAC Atmospheric Motion Vectors Climate Data Record Release 2 - Multimission - Polar
    EO.EUM.DAT.METOP.AVHRRL1 - AVHRR Level 1B - Metop - Global
    EO.EUM.DAT.METOP.GLB-SST-NC - Global L3C AVHRR Sea Surface Temperature (GHRSST) - Metop
    EO.EUM.DAT.METOP.GOMEL1 - GOME-2 Level 1B - Metop - Global
    EO.EUM.DAT.METOP.GOMEL1R03 - GOME-2 Level 1B Fundamental Data Record Release 3 - Metop-A and -B
    EO.EUM.DAT.METOP.IASIL1C-ALL - IASI Level 1C - All Spectral Samples - Metop - Global
    EO.EUM.DAT.METOP.IASSND02 - IASI Combined Sounding Products - Metop
    EO.EUM.DAT.METOP.IASTHR011 - IASI All Sky Temperature and Humidity Profiles - Climate Data Record Release 1.1 - Metop-A and -B
    EO.EUM.DAT.METOP.LSA-002 - Daily Land Surface Temperature - Metop
    EO.EUM.DAT.METOP.MHSL1 - MHS Level 1B - Metop - Global
    EO.EUM.DAT.METOP.OSI-104 - ASCAT Coastal Winds at 12.5 km Swath Grid - Metop
    EO.EUM.DAT.METOP.OSI-150-A - ASCAT L2 25 km Winds Data Record Release 1 - Metop
    EO.EUM.DAT.METOP.OSI-150-B - ASCAT L2 12.5 km Winds Data Record Release 1 - Metop
    EO.EUM.DAT.METOP.SOMO12 - ASCAT Soil Moisture at 12.5 km Swath Grid in NRT - Metop
    EO.EUM.DAT.METOP.SOMO25 - ASCAT Soil Moisture at 25 km Swath Grid in NRT - Metop
    EO.EUM.DAT.MFG.GSA-57 - GSA Level 2 Climate Data Record Release 2 - MFG - 57 degree
    EO.EUM.DAT.MFG.GSA-63 - GSA Level 2 Climate Data Record Release 2 - MFG - 63 degree
    EO.EUM.DAT.MSG.CLM - Cloud Mask - MSG - 0 degree
    EO.EUM.DAT.MSG.CLM-IODC - Cloud Mask - MSG - Indian Ocean
    EO.EUM.DAT.MSG.HRSEVIRI - High Rate SEVIRI Level 1.5 Image Data - MSG - 0 degree
    EO.EUM.DAT.MSG.HRSEVIRI-IODC - High Rate SEVIRI Level 1.5 Image Data - MSG - Indian Ocean
    EO.EUM.DAT.MSG.LSA-FRM - Fire Risk Map - Released Energy Based - MSG
    EO.EUM.DAT.MSG.LSA-LST-CDR - Land Surface Temperature Climate Data Record - MSG
    EO.EUM.DAT.MSG.LSA-LSTDE - Land Surface Temperature with Directional Effects - MSG
    EO.EUM.DAT.MSG.MSG15-RSS - Rapid Scan High Rate SEVIRI Level 1.5 Image Data - MSG
    EO.EUM.DAT.MSG.OCA-CDR - Optimal Cloud Analysis Climate Data Record Release 1 - MSG - 0 degree
    EO.EUM.DAT.MSG.RSS-CLM - Rapid Scan Cloud Mask - MSG
    EO.EUM.DAT.MTG.FCI-AMV-BUFR - Atmospheric Motion Vectors (BUFR) - MTG - 0 degree
    EO.EUM.DAT.MTG.FCI-AMV-NETCDF - Atmospheric Motion Vectors (netCDF) - MTG - 0 degree
    EO.EUM.DAT.MTG.FCI-ASR-BUFR - All Sky Radiance (BUFR) - MTG - 0 degree
    EO.EUM.DAT.MTG.FCI-ASR-NETCDF - All Sky Radiance (netCDF) - MTG - 0 degree
    EO.EUM.DAT.MTG.FCI-CLM - Cloud Mask - MTG - 0 degree
    EO.EUM.DAT.MTG.FCI-GII - Global Instability Indices - MTG - 0 degree
    EO.EUM.DAT.MTG.FCI-OCA - Optimal Cloud Analysis - MTG - 0 degree
    EO.EUM.DAT.MTG.FCI-OLR - Outgoing LW radiation at TOA - MTG - 0 degree
    EO.EUM.DAT.MTG.LI-AF - LI Accumulated Flashes - MTG - 0 degree
    EO.EUM.DAT.MTG.LI-AFA - LI Accumulated Flash Area - MTG - 0 degree
    EO.EUM.DAT.MTG.LI-AFR - LI Accumulated Flash Radiance - MTG - 0 degree
    EO.EUM.DAT.MTG.LI-LEF - LI Lightning Events Filtered - MTG - 0 degree
    EO.EUM.DAT.MTG.LI-LFL - LI Lightning Flashes - MTG - 0 degree
    EO.EUM.DAT.MTG.LI-LGR - LI Lightning Groups - MTG - 0 degree
    EO.EUM.DAT.MULT.HIRSL1 - HIRS Level 1B - Metop - Global
    EO.EUM.DAT.MULT.HIRSL1C-FDR - HIRS Level 1C Fundamental Data Record Release 1 - Multimission - Global
    EO.EUM.DAT.SENTINEL-3.AOD - SENTINEL3 SLSTR Level-2 AOD
    EO.EUM.DAT.SENTINEL-3.FRP - SENTINEL3 SLSTR Level-2 FRP
    EO.EUM.DAT.SENTINEL-3.OL_1_EFR___ - SENTINEL3 EFR
    EO.EUM.DAT.SENTINEL-3.OL_1_ERR___ - SENTINEL3 ERR
    EO.EUM.DAT.SENTINEL-3.OL_2_WFR___ - SENTINEL3 OLCI Level-2 Water Full Resolution
    EO.EUM.DAT.SENTINEL-3.OL_2_WRR___ - SENTINEL3 OLCI Level-2 Water Reduced Resolution
    EO.EUM.DAT.SENTINEL-3.SL_1_RBT___ - SENTINEL3 SLSTR Level-1
    EO.EUM.DAT.SENTINEL-3.SL_2_WST___ - SENTINEL3 SLSTR Level-2 WST
    EO.EUM.DAT.SENTINEL-3.SR_1_SRA_A_ - SENTINEL3 SRAL Level-1 SRA_A
    EO.EUM.DAT.SENTINEL-3.SR_1_SRA_BS - SENTINEL3 SRAL Level-1 SRA_BS
    EO.EUM.DAT.SENTINEL-3.SR_1_SRA___ - SENTINEL3 SRAL Level-1
    EO.EUM.DAT.SENTINEL-3.SR_2_WAT___ - SENTINEL3 SRAL Level-2 WAT
    EO.EUM.DAT.SENTINEL-6.L1B-RADIO_OCCULTATION - Radio Occultation Level 1B Products - Sentinel-6
    EO.GSW.DAT.CHANGE - Global Surface Water Occurrence Change Intensity 1984-2020
    EO.GSW.DAT.EXTENT - Global Surface Water Maximum Water Extent 1984-2021
    EO.GSW.DAT.OCCURRENCE - Global Surface Water Occurrence 1984-2021
    EO.GSW.DAT.RECURRENCE - Global Surface Water Recurrence 1984-2021
    EO.GSW.DAT.SEASONALITY - Global Surface Water Seasonality 2014-2020
    EO.GSW.DAT.TRANSITIONS - Global Surface Water Transitions 1984-2021
    EO.ISIMIP.DAT.CLIMATE-FORCING_ISIMIP3b - ISIMIP3b climate input data
    EO.ISIMIP.DAT.SOCIO-ECONOMIC-FORCING_ISIMIP3b - ISIMIP3b socio-economic input data
    EO.MO.DAT.GLOBAL_ANALYSISFORECAST_BGC_001_028 - Global Ocean Biogeochemistry Analysis and Forecast
    EO.MO.DAT.GLOBAL_ANALYSISFORECAST_PHY_001_024 - Global Ocean Physics Analysis and Forecast
    EO.MO.DAT.GLOBAL_ANALYSISFORECAST_WAV_001_027 - Global Ocean Waves Analysis and Forecast
    EO.MO.DAT.GLOBAL_MULTIYEAR_BGC_001_033 - Global ocean low and mid trophic levels biomass content hindcast
    EO.MO.DAT.GLOBAL_MULTIYEAR_PHY_ENS_001_031 - Global Ocean Ensemble Physics Reanalysis
    EO.MO.DAT.GLOBAL_MULTIYEAR_WAV_001_032 - Global Ocean Waves Reanalysis
    EO.MO.DAT.INSITU_GLO_PHY_TS_OA_MY_013_052 - Global Ocean- Delayed Mode gridded CORA- In-situ Observations objective analysis in Delayed Mode
    EO.MO.DAT.INSITU_GLO_PHY_TS_OA_NRT_013_002 - Global Ocean- Real time in-situ observations objective analysis
    EO.MO.DAT.INSITU_GLO_PHY_UV_DISCRETE_NRT_013_048 - Global Ocean- in-situ Near real time observations of ocean currents
    EO.MO.DAT.MULTIOBS_GLO_BGC_NUTRIENTS_CARBON_PROFILES_MYNRT_015_009 - Nutrient and carbon profiles vertical distribution
    EO.MO.DAT.MULTIOBS_GLO_BIO_CARBON_SURFACE_MYNRT_015_008 - Global Ocean Surface Carbon
    EO.MO.DAT.MULTIOBS_GLO_PHY_MYNRT_015_003 - Global Total (COPERNICUS-GLOBCURRENT), Ekman and Geostrophic currents at the Surface and 15m
    EO.MO.DAT.MULTIOBS_GLO_PHY_S_SURFACE_MYNRT_015_013 - Multi Observation Global Ocean Sea Surface Salinity and Sea Surface Density
    EO.MO.DAT.MULTIOBS_GLO_PHY_TSUV_3D_MYNRT_015_012 - Multi Observation Global Ocean 3D Temperature Salinity Height Geostrophic Current and MLD
    EO.MO.DAT.MULTIOBS_GLO_PHY_W_3D_REP_015_007 - Global Observed Ocean Physics 3D Quasi-Geostrophic Currents (OMEGA3D)
    EO.MO.DAT.OCEANCOLOUR_GLO_BGC_L3_MY_009_103 - Global Ocean Colour (Copernicus-GlobColour), Bio-Geo-Chemical, L3 (daily) from Satellite Observations (1997-ongoing)
    EO.MO.DAT.OCEANCOLOUR_GLO_BGC_L3_MY_009_107 - Global Ocean Colour Plankton and Reflectances MY L3 daily observations
    EO.MO.DAT.OCEANCOLOUR_GLO_BGC_L3_NRT_009_101 - Global Ocean Colour (Copernicus-GlobColour), Bio-Geo-Chemical, L3 (daily) from Satellite Observations (Near Real Time)
    EO.MO.DAT.OCEANCOLOUR_GLO_BGC_L4_MY_009_104 - Global Ocean Colour (Copernicus-GlobColour), Bio-Geo-Chemical, L4 (monthly and interpolated) from Satellite Observations (1997-ongoing)
    EO.MO.DAT.OCEANCOLOUR_GLO_BGC_L4_MY_009_108 - Global Ocean Colour Plankton MY L4 monthly observations
    EO.MO.DAT.OCEANCOLOUR_GLO_BGC_L4_NRT_009_102 - Global Ocean Colour (Copernicus-GlobColour), Bio-Geo-Chemical, L4 (monthly and interpolated) from Satellite Observations (Near Real Time)
    EO.MO.DAT.SEAICE_GLO_SEAICE_L4_NRT_OBSERVATIONS_011_001 - Global Ocean - Arctic and Antarctic - Sea Ice Concentration, Edge, Type and Drift (OSI-SAF)
    EO.MO.DAT.SEAICE_GLO_SEAICE_L4_NRT_OBSERVATIONS_011_006 - Global Ocean - High Resolution SAR Sea Ice Drift
    EO.MO.DAT.SEAICE_GLO_SEAICE_L4_REP_OBSERVATIONS_011_009 - Global Ocean Sea Ice Concentration Time Series REPROCESSED (OSI-SAF)
    EO.MO.DAT.SEALEVEL_GLO_PHY_L4_NRT_008_046 - GLOBAL OCEAN GRIDDED L4 SEA SURFACE HEIGHTS AND DERIVED VARIABLES NRT
    EO.MO.DAT.SEALEVEL_GLO_PHY_MDT_008_063 - GLOBAL OCEAN MEAN DYNAMIC TOPOGRAPHY
    EO.MO.DAT.SST_GLO_SST_L3S_NRT_OBSERVATIONS_010_010 - ODYSSEA Global Ocean - Sea Surface Temperature Multi-sensor L3 Observations
    EO.MO.DAT.SST_GLO_SST_L4_NRT_OBSERVATIONS_010_001 - Global Ocean OSTIA Sea Surface Temperature and Sea Ice Analysis
    EO.MO.DAT.SST_GLO_SST_L4_REP_OBSERVATIONS_010_011 - Global Ocean OSTIA Sea Surface Temperature and Sea Ice Reprocessed
    EO.MO.DAT.SST_GLO_SST_L4_REP_OBSERVATIONS_010_024 - ESA SST CCI and C3S reprocessed sea surface temperature analyses
    EO.MO.DAT.WAVE_GLO_PHY_SPC_FWK_L3_NRT_014_002 - Global Ocean L3 Spectral Parameters From NRT Satellite Measurements
    EO.MO.DAT.WAVE_GLO_PHY_SWH_L3_NRT_014_001 - GLOBAL OCEAN L3 SIGNIFICANT WAVE HEIGHT FROM NRT SATELLITE MEASUREMENTS
    EO.MO.DAT.WAVE_GLO_PHY_SWH_L4_NRT_014_003 - GLOBAL OCEAN L4 SIGNIFICANT WAVE HEIGHT FROM NRT SATELLITE MEASUREMENTS
    EO.MO.DAT.WIND_GLO_PHY_CLIMATE_L4_MY_012_003 - Global Ocean Monthly Mean Sea Surface Wind and Stress from Scatterometer and Model
    EO.MO.DAT.WIND_GLO_PHY_L3_MY_012_005 - Global Ocean Daily Gridded Reprocessed L3 Sea Surface Winds from Scatterometer
    EO.MO.DAT.WIND_GLO_PHY_L3_NRT_012_002 - Global Ocean Daily Gridded Sea Surface Winds from Scatterometer
    EO.MO.DAT.WIND_GLO_PHY_L4_MY_012_006 - Global Ocean Hourly Reprocessed Sea Surface Wind and Stress from Scatterometer and Model
    EO.MO.DAT.WIND_GLO_PHY_L4_NRT_012_004 - Global Ocean Hourly Sea Surface Wind and Stress from Scatterometer and Model
    EO.NASA.DAT.LANDSAT.C2_L1 - Landsat Collection 2 Level-1 Product
    EO.NASA.DAT.LANDSAT.C2_L2 - Landsat OLI and TIRS Collection 2 Level-2 Science Products 30-meter multispectral data.
    MO_MULTIOBS_GLO_BIO_BGC_3D_REP_015_010 - Global Ocean 3D Chlorophyll-a concentration, Particulate Backscattering coefficient and Particulate Organic Carbon
    STAT.EUSTAT.DAT.AVAILABLE_BEDS_HOSPITALS_NUTS2 - Available beds in hospitals by NUTS 2 region
    STAT.EUSTAT.DAT.BATHING_SITES_WATER_QUALITY - Bathing sites with excellent water quality by location
    STAT.EUSTAT.DAT.GREENHOUSE_GAS_EMISSION_AGRICULTURE - Eurostat - Greenhouse gas emissions from agriculture
    STAT.EUSTAT.DAT.POP_AGE_GROUP_SEX_NUTS3 - Population on 1 January by age, sex and NUTS 3 region
    STAT.EUSTAT.DAT.POP_AGE_SEX_NUTS2 - Population on 1 January by age, sex and NUTS 2 region
    STAT.EUSTAT.DAT.POP_CHANGE_DEMO_BALANCE_CRUDE_RATES_NUTS3 - Population change - Demographic balance and crude rates at regional level (NUTS 3)
    STAT.EUSTAT.DAT.POP_DENSITY_NUTS3 - Population density by NUTS 3 region
    STAT.EUSTAT.DAT.SHARE_ENERGY_FROM_RENEWABLE - Share of energy from renewable sources
    STAT.EUSTAT.DAT.SOIL_SEALING_INDEX - Soil sealing index
    STAT.EUSTAT.DAT.SURFACE_TERRESTRIAL_PROTECTED_AREAS - Surface of the terrestrial protected areas
    

    To search we use the search method passing the ID of our dataset of interest and a geo-time filter.

    The search method returns a SearchResult object that stores the products obtained from a given page (default: page=1) and a given maximum number of items per page (default: items_per_page=20).

    In the following cell, we change the default value of items_per_page and define the search criteria to retrieve Sentinel-2 MSI Level-2 images over Sicily, first days of July 2024. Our goal is to check whether any effects of Mount Etna’s eruptions during that period are visible in the Sentinel-2 imagery.

    search_criteria = {
        "provider":"dedl",
        "productType": "EO.ESA.DAT.SENTINEL-2.MSI.L2A",
        "start": "2024-07-04T07:00:00.00Z",
        "end": "2024-07-08T07:00:00.00Z",
        "geom": {"lonmin": 12, "latmin": 37, "lonmax": 16, "latmax": 39},
        "count": True,
        "items_per_page": 50
    }
    products_first_page = dag.search(**search_criteria)

    Results are stored in a ‘SearchResult’ object that contains the details on the single search result.

    products_first_page
    Loading...

    It is possible to list the metadata associated with a certain product, we choose the first one returned [0], and look into it.

    one_product = products_first_page[0]
    one_product.properties.keys()
    dict_keys(['alias', 'abstract', 'instrument', 'platform', 'platformSerialIdentifier', 'processingLevel', 'keywords', 'sensorType', 'license', 'title', 'missionStartDate', '_id', 'productType', 'publicationDate', 'orbitNumber', 'cloudCover', 'modificationDate', 'sensorMode', 'startTimeFromAscendingNode', 'completionTimeFromAscendingNode', 'id', 'downloadLink', 'thumbnail', 'storageStatus', 'defaultGeometry', 'quicklook', 'providers', 'start_datetime', 'sat:absolute_orbit', 'sar:product_type', 'dedl:processorVersion', 'dedl:sourceProductOriginDate', 'dedl:uid', 'dedl:datastripId', 'dedl:beginningDateTime', 'dedl:sourceProduct', 'dedl:productGroupId', 'dedl:endingDateTime', 'dedl:origin', 'dedl:scope', 'dedl:granuleIdentifier', 'dedl:tileIdentifier'])
    one_product.properties['cloudCover']
    0.000265

    Filter

    EODAG can filter the search result. We can then refine our initial search without asking the provider again. Products can be filtered according to their properties or also with finer geometry filters.

    The following example shows how to filter products to keep only those whose cloud coverage is less than 20%. And then restrict the results to products containing a smaller area over the mount Etna.

    Let’s define now a smaller area around the mount Etna and a function to see the area on a map together with the results

    from eodag.crunch import FilterProperty
    from eodag.crunch import FilterOverlap
    import shapely
    import folium
    from shapely.geometry import Polygon
    
    small_geom = Polygon([[15.1, 37.7], [15.5, 37.7], [15.1, 37.75], [15.1, 37.75], [15.1, 37.7]])
    
    smaller_area = {"lonmin": 15.1, "latmin": 37.7, "lonmax": 15.5, "latmax": 37.75}
    
    search_geometry = shapely.geometry.box(
        smaller_area["lonmin"],
        smaller_area["latmin"],
        smaller_area["lonmax"],
        smaller_area["latmax"],
    )
    
    def create_search_result_map(search_results, extent):
        """Small utility to create an interactive map with folium
        that displays an extent in red and EO Producs in blue"""
        fmap = folium.Map([38, 14], zoom_start=7)
        folium.GeoJson(
            extent,
            style_function=lambda x: dict(color="red")
        ).add_to(fmap)
        folium.GeoJson(
            search_results
        ).add_to(fmap)
        return fmap
    # Crunch the results
    filtered_results = products_first_page.crunch(FilterProperty({"cloudCover": 20, "operator" : "lt"}))
    
    print(f"Got now {len(filtered_results)} products after filtering by cloudCover.")
    Got now 22 products after filtering by cloudCover.
    
    filtered_products = filtered_results.crunch(
        FilterOverlap(dict(contains=True)),
        geometry=small_geom
    )
    print(f"Got now {len(filtered_products)} products after filtering by geometry.")
    Got now 1 products after filtering by geometry.
    

    Let’s use the function defined to see the area defined on a map (red) together with the initial results (blue) filtered by cloud coverage and geometry (green).

    fmap = create_search_result_map(products_first_page, search_geometry)
    # Create a layer that represents the filtered products in green
    folium.GeoJson(
        filtered_products,
        style_function=lambda x: dict(color="green")
    ).add_to(fmap)
    fmap
    
    Loading...

    Download

    Before downloading any product, it can be useful to have a quick look at them.

    import matplotlib.pyplot as plt
    import matplotlib.image as mpimg
    
    quicklooks_dir = os.path.join(workspace, "quicklooks")
    if not os.path.isdir(quicklooks_dir):
        os.mkdir(quicklooks_dir)
    
    
    fig = plt.figure(figsize=(20, 40))
    for i, product in enumerate(filtered_products, start=1):
    
        # This line takes care of downloading the quicklook
        quicklook_path = product.get_quicklook()
        
        img = mpimg.imread(quicklook_path)
        ax = fig.add_subplot(8, 2, i)
        ax.set_title(product.properties['dedl:beginningDateTime'] + "TILE: " +product.properties['dedl:tileIdentifier'])
        plt.imshow(img)
    plt.tight_layout()
    <Figure size 2000x4000 with 1 Axes>

    The quicklook shows effectively the ash plume caused by the eruptions.

    EOProducts can be downloaded individually. The last image is going to be downloaded.

    product_to_download = filtered_products[-1]
    product_path = dag.download(product_to_download)
    product_path
    '/home/jovyan/dev-branch/DestinE-DataLake-Lab/HDA/EODAG/eodag_workspace/S2A_MSIL2A_20240707T094041_N0510_R036_T33SWB_20240707T131659'

    The location property of this product now points to a local path.

    product_to_download.location
    'file:///home/jovyan/dev-branch/DestinE-DataLake-Lab/HDA/EODAG/eodag_workspace/S2A_MSIL2A_20240707T094041_N0510_R036_T33SWB_20240707T131659'