ERA5-Land¶
ERA5-Land is a global land-surface reanalysis dataset produced by ECMWF (European Centre for Medium-Range Weather Forecasts) as part of the Copernicus Climate Change Service (C3S). It provides hourly and monthly estimates of atmospheric, land-surface, and soil variables at approximately 9 km (0.1 degree) resolution, from 1950 to near-present.
Key characteristics¶
| Property | Value |
|---|---|
| Provider | ECMWF / Copernicus C3S |
| Spatial resolution | ~9 km (0.1 degree) |
| Temporal resolution | Hourly, monthly means |
| Coverage | Global land areas |
| Period | 1950 -- near-present |
| CRS | EPSG:4326 (WGS 84) |
Variables used¶
The climate flow imports eight variables from
reanalysis-era5-land-monthly-means and produces seven climate
indicators per org unit per month:
Downloaded variables and unit conversions¶
| Variable | CDS variable | NetCDF col | Raw units | Target | Conversion |
|---|---|---|---|---|---|
| Temperature | 2m_temperature |
t2m |
Kelvin | Celsius | value - 273.15 |
| Precipitation | total_precipitation |
tp |
m/day (mean daily rate) | mm/month | value * days * 1000 |
| Dewpoint | 2m_dewpoint_temperature |
d2m |
Kelvin | Celsius | value - 273.15 |
| Wind U | 10m_u_component_of_wind |
u10 |
m/s | m/s | none |
| Wind V | 10m_v_component_of_wind |
v10 |
m/s | m/s | none |
| Skin temperature | skin_temperature |
skt |
Kelvin | Celsius | value - 273.15 |
| Solar radiation | surface_solar_radiation_downwards |
ssrd |
J/m2/day | W/m2 | value / 86400 |
| Soil moisture | volumetric_soil_water_layer_1 |
swvl1 |
m3/m3 | m3/m3 | none |
Derived variables¶
Relative humidity is derived from temperature (T) and dewpoint (Td) in Celsius using the Magnus formula:
Wind speed is derived from the eastward (u) and northward (v) wind components at 10 m height:
Solar radiation is converted from daily energy (J/m2) to mean daily irradiance (W/m2). Since 1 watt = 1 joule per second:
Available ERA5-Land variables¶
ERA5-Land provides many variables relevant to health and climate analysis. Below are commonly used ones:
| CDS variable name | NetCDF column | Native units | Description |
|---|---|---|---|
2m_temperature |
t2m |
Kelvin | Air temperature at 2 m height |
total_precipitation |
tp |
metres (cumulative) | Total precipitation per hour |
2m_dewpoint_temperature |
d2m |
Kelvin | Dewpoint temperature at 2 m |
surface_pressure |
sp |
Pa | Pressure at the surface |
10m_u_component_of_wind |
u10 |
m/s | Eastward wind component at 10 m |
10m_v_component_of_wind |
v10 |
m/s | Northward wind component at 10 m |
volumetric_soil_water_layer_1 |
swvl1 |
m3/m3 | Top-level soil moisture (0-7 cm) |
total_evaporation |
e |
metres (cumulative) | Total evaporation per hour |
skin_temperature |
skt |
Kelvin | Land surface temperature |
surface_solar_radiation_downwards |
ssrd |
J/m2 (cumulative) | Incoming solar radiation |
Cumulative variables (precipitation, evaporation, radiation) store running totals that reset at specific intervals. They must be de-accumulated (differenced) before temporal aggregation.
The full variable catalogue is available at https://cds.climate.copernicus.eu/datasets/reanalysis-era5-land.
CDS datasets¶
| Dataset ID | Description |
|---|---|
reanalysis-era5-land-monthly-means |
Monthly averaged values (used by the climate flow) |
reanalysis-era5-land |
Hourly values (higher temporal resolution, larger downloads) |
CDS API setup¶
ERA5-Land data is accessed through the Climate Data Store (CDS) API.
- Register at https://cds.climate.copernicus.eu/
- Accept the ERA5-Land licence in your CDS profile
- Copy your API key from https://cds.climate.copernicus.eu/profile
- Add your API key to
.env:
CDSAPI_URL defaults to https://cds.climate.copernicus.eu/api (set
automatically by the prefect-climate package) and does not need to be
configured. CDS access requires the cdsapi package, which is included
via the earthkit-data[cds] extra in prefect-climate.
earthkit-data usage¶
The pipeline uses earthkit.data.from_source("cds", ...) to request data
from the CDS API. This handles authentication, request queuing, and
format conversion transparently.
import earthkit.data
# Request each variable in a separate CDS call
variables = [
"2m_temperature",
"total_precipitation",
"2m_dewpoint_temperature",
"10m_u_component_of_wind",
"10m_v_component_of_wind",
"skin_temperature",
"surface_solar_radiation_downwards",
"volumetric_soil_water_layer_1",
]
for variable in variables:
ds = earthkit.data.from_source(
"cds",
"reanalysis-era5-land-monthly-means",
variable=variable,
product_type="monthly_averaged_reanalysis",
year="2024",
month=["01", "02", "03"],
time="00:00",
area=[10, -14, 7, -10], # [N, W, S, E]
)
xds = ds.to_xarray()
Pipeline overview¶
- Fetch org unit geometries from DHIS2
- Compute bounding box from org unit extents
- Download 8 ERA5-Land monthly variables (temp, precip, dewpoint, wind u/v, skin temp, solar rad, soil moisture)
- Convert units (K to C, m to mm/month, J/m2 to W/m2)
- Save each month as GeoTIFF (one per variable)
- Compute zonal mean per org unit per month
- Derive relative humidity (Magnus formula) and wind speed (vector magnitude)
- Import 7 monthly indicators into DHIS2 (period format:
YYYYMM)
DHIS2 data model¶
Data Set: PR: ERA5: Climate (PfE5ClmSet1)
|- Data Element: PR: ERA5: Mean Temperature (PfE5TmpEst1)
|- Data Element: PR: ERA5: Total Precipitation (PfE5PrcEst1)
|- Data Element: PR: ERA5: Relative Humidity (PfE5HumEst1)
|- Data Element: PR: ERA5: Wind Speed (PfE5WndEst1)
|- Data Element: PR: ERA5: Skin Temperature (PfE5SknEst1)
|- Data Element: PR: ERA5: Solar Radiation (PfE5RadEst1)
|- Data Element: PR: ERA5: Soil Moisture (PfE5SoiEst1)
Health relevance¶
Each variable supports specific health surveillance use cases:
| Variable | Health relevance |
|---|---|
| Temperature | Heat-related illness, malaria transmission windows (optimal 20-30 C) |
| Precipitation | Waterborne disease risk, flooding, mosquito breeding habitat |
| Relative humidity | Pathogen survival and airborne transmission, respiratory illness |
| Wind speed | Disease vector dispersal (malaria, dengue mosquitoes), air quality |
| Skin temperature | Urban heat islands, heat stress assessment, land surface conditions |
| Solar radiation | UV exposure risk, vitamin D synthesis, evapotranspiration driver |
| Soil moisture | Waterborne disease risk, agricultural health, flood prediction |