Environmental Data Platform

Soil Moisture Anomalies - ERA5_QM

Go to full metadata Linkset {json} Linked data {json}

The Soil Moisture Anomaly is a drought indicator used to detect and monitor agricultural drought conditions, defined by a prolonged period of deficit in the availability of soil moisture to plants. The soil moisture anomalies provided as part of the Alpine Drought Observatory was derived from ERA5 Volumetric Soil Water Layers at different depths with Layer 1 (0-7cm), Layer 2 (7-28cm), Layer 3 (28–100cm), and Layer 4 (100-289cm). The input ERA5 soil moisture dataset was downscaled using a quantile mapping approach. Daily anomalies were calculated using a climatological mean and standard deviation of soil moisture from a smoothed time-series (running mean on a 10-day window) for a reference period of 1981–2020. The Soil Moisture Anomalies values range from -5 to +5, with negative values indicating drier than conditions while positive values indicate wetter than normal conditions, and -1 to +1 values indicates near-normal conditions. Datasets contains modified Copernicus Climate Change Service Information [1980–current year]; contains modified Copernicus Atmosphere Monitoring Service Information [1980-current year]. Neither the European Commission nor ECMWF is responsible for any use that may be made of the Copernicus information or data it contains.


Greifeneder, F., & Balogun, R. (2022). Soil Moisture Anomalies - ERA5_QM (Version v2) [Data set]. Institute for Earth Observation. https://doi.org/10.48784/ea665ca2-0ceb-11ed-86c5-02000a08f4e5

collection, Soil Moisture, Alpine Drought Observatory, Soil Moisture Anomalies, ERA5, Collection, ADO project, ADO, cct, N/A, Land use, Land cover

CC BY 4.0

Eurac Research - Institute for Earth Observation
Viale Druso, 1 / Drususallee 1, Eurac Research, Bolzano, Autonomous Province of Bolzano, 39100, Italy

1979-12-31T12:00:00Z 2024-05-27T12:00:00Z

WGS-84 (3035:EPSG)



Imagery base maps earth cover

Snippet code
Copy to clipboard


# login ----
host = "https://openeo.eurac.edu"
con = connect(host = host)

# check login ---

# load collection - save result ----
p = processes()
data = p$load_collection(id = "ADO_SM_anomalies_ERA5", 
                                             spatial_extent = list(west = 3.997852,
                                                                                 east = 17.526151,
                                                                                 south = 42.91044,
                                                                                 north = 50.404898),
                                             temporal_extent = list("1979-12-31T12:00:00Z", "2024-05-27T12:00:00Z"))
result = p$save_result(data = data, format="netCDF")

# download results ----
# either directly (suitable for smaller requests)
                             format = "netCDF",
                             output_file = "ADO_SM_anomalies_ERA5.nc", 
                             con = eurac)

# or start a batch job (suitable for larger requests)
job_id = create_job(graph = result,
                                   title = "ADO_SM_anomalies_ERA5",
                                   description = "ADO_SM_anomalies_ERA5",
                                   format = "netCDF")
start_job(job = job_id)
result_list = list_results(job = job_id)
download_results(job = job_id, folder = ".")
Copy to clipboard

#pip install openeo
import openeo

# login ----
euracHost        = "https://openeo.eurac.edu"
eurac = openeo.connect(euracHost).authenticate_oidc(client_id="openEO_PKCE")

# load collection - save result ----
data = eurac.load_collection("ADO_SM_anomalies_ERA5",spatial_extent={'west':3.997852,'east':17.526151,'south':42.91044,'north':50.404898},temporal_extent=["1979-12-31T12:00:00Z", "2024-05-27T12:00:00Z"])

result = data.save_result(format="NetCDF")

# download results ----
# either directly (suitable for smaller requests, closes the connection after 2 minutes)

# or start a batch job (suitable for larger requests, e.g. when .download() timeouts)

job = result.create_job(title = "ADO_SM_anomalies_ERA5",description = "ADO_SM_anomalies_ERA5",out_format = "netCDF")
jobId = job.job_id

jobResults = job.get_results()

Related docs
Name Description Link Date published Category
openEO for ADO project Tutorial and snippets on how to use openEO in the ADO project Link Sept. 15, 2021 OpenEO
EDP video tutorial Presentation of edp-platform and tutorial for data analysis and processing Link Sept. 15, 2021 OpenEO
Official OpenEO documentation and project site Official Documentation provided in the project web site for a deeper overview and introduction. Link June 10, 2021 OpenEO
OpenEO doc Documentation for OpenEO API Link June 9, 2021 OpenEO
Eurac - OpenEO openEO endpoint Link April 28, 2021 OpenEO
MOOC Cubes and Clouds Free Online Course teaching the concepts of data cubes, cloud platforms and open science in geospatial and EO. Link March 8, 2024 OpenEO, STAC