(Acest articol a fost publicat pentru prima dată pe r.iresmi.netși cu amabilitate a contribuit la R-bloggeri). (Puteți raporta problema legată de conținutul acestei pagini aici)
Doriți să vă distribuiți conținutul pe R-bloggeri? dați clic aici dacă aveți un blog, sau aici dacă nu aveți.

Ziua 10 din 30DayMapChallenge: „Aer” (anterior).
Unde a plouat cel mai mult într-o zi anul trecut?
Folosind ERA5 statistici zilnice post-procesate pe niveluri individuale din 1940 până în prezent.
ERA5 este a cincea generație de reanaliza ECMWF pentru clima și vremea globală din ultimele 8 decenii. Datele sunt disponibile începând cu 1940. Reanaliza combină datele modelului cu observații din întreaga lume într-un set de date complet și consistent la nivel global, folosind legile fizicii.
library(terra) library(dplyr) library(ggplot2) library(glue) library(sf) library(ggspatial) library(rnaturalearth)
Date
În primul rând, trebuie să vă înregistrați pentru un cont (gratuit). Odată ce formularul de interogare este trimis (cu anul 2024, precipitații totale, toate lunile, toate zilele etc.), jobul dvs. este pus în coadă și va trebui să așteptați pentru a obține linkul către un set de date descărcabil. A durat aproximativ 35 de minute și obținem un fișier NetCDF de 600 MB.
Un API este, de asemenea, disponibil pentru a automatiza interogările.
Coordonatele sunt în intervalul (0, 360) de grade (deseori este cazul pentru datele climatice, nu mă întrebați de ce), așa că trebuie să rotim datele pentru a găsi mai familiar (-180, 180). Precipitația totală este în metri; vom converti în cm.
# It takes a few minutes to compute, so we cache it
if (!file.exists("max_rainfall_cm.tif")) {
rainfall <- rast("~/data/era5/4d4e91553b16edf0e896d4511e028719.nc")
max_rainfall_cm <- max(rainfall, na.rm = TRUE) * 100
max_rainfall_cm <- rotate(max_rainfall_cm)
set.crs(max_rainfall_cm, "EPSG:4326")
writeRaster(max_rainfall_cm, "max_rainfall_cm.tif",
gdal = c("COMPRESS=DEFLATE"))
} else {
max_rainfall_cm <- rast("max_rainfall_cm.tif")
}
# Get the world max value and its location
val_max_rainfall <- round(max(where.max(max_rainfall_cm)((1, "value"))), 1)
loc_max_rainfall <- xyFromCell(max_rainfall_cm,
where.max(max_rainfall_cm)(2)) |>
st_point() |>
st_sfc(crs = "EPSG:4326") |>
st_sf() |>
mutate(val_max_rainfall = val_max_rainfall)
# map background
world <- ne_countries()
Hartă
ggplot() +
layer_spatial(data = max_rainfall_cm) +
geom_sf(data = world, fill = NA, color = "white") +
geom_sf(data = loc_max_rainfall, color = "red") +
geom_sf_text(data = loc_max_rainfall, aes(label = val_max_rainfall),
fontface = "bold", vjust = -1, color = "red") +
scale_fill_viridis_c(name = "height (cm)", trans = "sqrt") +
coord_sf(crs = "EPSG:8857") +
labs(title = "Maximum daily rainfall",
subtitle = "2024",
fill = "type", x ="", y = "",
caption = glue("https://r.iresmi.net/ - {Sys.Date()}
data: ERA5 doi:10.24381/cds.4991cf48 / Natural Earth")) +
theme_minimal() +
theme(plot.caption = element_text(size = 6,
color = "darkgrey"),
legend.position = "bottom")

Figura 1: Precipitații maxime zilnice în 2024
Se pare că precipitațiile maxime în 24 de ore au fost de 48,7 cm, în largul coastei de nord a Filipinelor…
Găsirea datei în care s-a întâmplat este un exercițiu lăsat cititorului.
