This example masks ERA5 data (regular lat/lon grid) with country boundaries taken from the NUTS inventory.
from earthkit import data as ekd
from earthkit import geo as ekg
from earthkit import plots as ekp
from earthkit import transforms as ekt
from earthkit.transforms._tools import earthkit_remote_test_data_fileremote_era5_file = earthkit_remote_test_data_file("era5_temperature_europe_20150101.grib")
era5_data = ekd.from_source("url", remote_era5_file)
geometry_data = ekg.gisco.nuts_regions(level=0).to_geopandas()
geometry_data.head()Loading...
# Mask ERA5 data with geometry
masked = ekt.spatial.mask(
era5_data, geometry_data, mask_dim="NAME_ENGL", lat_key="latitude", lon_key="longitude"
)
masked
Loading...
plot_data = masked.isel(forecast_reference_time=0)
figure = ekp.Figure(domain="Europe", rows=2, columns=3)
nmaps = figure.rows * figure.columns
subplot = figure.add_map()
subplot.pcolormesh(era5_data, style="2m-temperature-spectral-celsius")
subplot.title("Original data")
for i in range(nmaps-1):
subplot = figure.add_map()
subplot.pcolormesh(plot_data.isel(NAME_ENGL=i), style="2m-temperature-spectral-celsius")
subplot.title("{NAME_ENGL}")
figure.coastlines()
figure.borders()
figure.legend()
figure.show()