Add global rainfall statistics dataset GPEX
Kind of request
None
Enhancement Description
With the current eva module, user can easily derive statistics from historical precipitation data. However, the process is still computationally expensive, especially it requires reading long historical record from global dataset. Instead, it is easier in some cases to use published precipitation statistics.
Description of data:
gpex:
crs: 4326
data_type: RasterDataset
driver: netcdf
kwargs:
decode_times: true
meta:
category: stats
notes: The file "GPEX.nc" contains global estimates of extreme precipitation using four extreme value methods (GEV, POT, MEV and Gumbel), the observed extremes, underlying parameters and variables for Gründemann et al. (2021) for 8 durations ranging between 3 hours and 10 days. The spatial resolution is 0.1 arc degrees, and the provided coordinates are the middle of the grid-cells.
paper_doi: 10.1016/j.jhydrol.2023.129558
paper_ref: Extreme Precipitation Return Levels for Multiple Durations on a Global Scale, Gründemann et al., 2021.
source_license: https://creativecommons.org/licenses/by/4.0/
source_url: https://data.4tu.nl/articles/_/12764429/4
source_version: 20210830
I have the complete dataset download. Feel free to ask me.
Use case
In the application of getting urban sewer network from global data, we make the hypothesis that the urban sewer network should accommodate the amount of precipitation that is equal to a return period of 2 years. therefore, we get T2 rainfall from this dataset, with various duration, then we can get the intensity-duration-frequency model.
some code snippet see below:
# read gpex data
ds = data_catalog.get_rasterdataset(
"gpex",
bbox=region.to_crs(4326).total_bounds,
buffer=1, # ensure there is data
)
# get func from data
calculate_rainfall_depth_given_concentration_time = _get_rainfall_from_gpex(
ds.isel(lat=0, lon=0)
)
if "gev_estimate" not in ds:
raise ValueError("Dataset does not contain the required data.")
durations = ds.coords["dur"].values
rainfall_rate = ds["gev_estimate"].sel(tr=rt).values / durations
# Fitting the extremes using the specified distribution and duration
def exponential_model(duration, rainfall_rate, alpha):
return rainfall_rate * (duration**alpha)
# Curve fitting
params, params_covariance = curve_fit(
exponential_model, durations, rainfall_rate, p0=[1, 0.5]
)
Additional Context
No response
Good suggestion! And thanks for providing a catalog entry! Could you copy this dataset to p:\wflow_global\hydromt_staging\ ?
Do you also happen to know how it compares to the PXR dataset by Courty et al. (2019) ?
Good suggestion! And thanks for providing a catalog entry! Could you copy this dataset to p:\wflow_global\hydromt_staging\ ?
Do you also happen to know how it compares to the PXR dataset by Courty et al. (2019) ?
I tried but I don't have access to P drive unfortunately. :) Let me know if it helps to put it in postbox for example.
I was not aware of the PXR dataset, thanks for being it under attention. By reading the abstract "his paper presents the first global, multi-temporal (1–360 h) dataset of generalized extreme value (GEV) parameters at 31 km resolution dubbed PXR-2 (Parametrized eXtreme Rain). ", the different is that GPEX is a little more recent (2021), the temporal timesteps are less (8 durations ranging between 3 hours and 10 days), and the resolution is 0.1 arc degrees, and there are a few more types of statistics included (GEV, POT, MEV, Gumbel). The observed extreme precipitation return levels are derived from the MSWEP dataset (highest return level is 39 years)