Calculate the spatial mean of gridded data over geometry data¶
This notebook demonstrates how to compute the spatial mean of some sample 2m temperature in ERA5 data for a given geometry (such as an administrative region) using earthkit-data and earthkit-transforms. This is useful for generating regional climate statistics.
[1]:
from earthkit import data as ekd
from earthkit import transforms as ekt
from earthkit.transforms._tools import earthkit_remote_test_data_file
remote_era5_file = earthkit_remote_test_data_file("era5-Europe-sfc-2m-temperature-3deg-2015-2017.grib")
era5_data = ekd.from_source("url", remote_era5_file)
ds = era5_data.to_xarray()
remote_geometry_url = earthkit_remote_test_data_file("NUTS_RG_60M_2021_4326_LEVL_0.geojson")
geometry_data = ekd.from_source("url", remote_geometry_url).to_geopandas()
# Calculate area mean
area_mean = ekt.spatial.reduce(ds, geometry_data, how="mean", weights="latitude")
area_mean
[1]:
<xarray.Dataset> Size: 1MB
Dimensions: (forecast_reference_time: 4384, index: 37)
Coordinates:
* forecast_reference_time (forecast_reference_time) datetime64[us] 35kB 20...
* index (index) int64 296B 0 1 2 3 4 5 ... 32 33 34 35 36
Data variables:
2t (index, forecast_reference_time) float64 1MB nan...
Attributes:
Conventions: CF-1.8
institution: ECMWF[ ]: