library(ondetools)
library(tidyverse)
url_com_lit <- "https://www.data.gouv.fr/fr/datasets/r/ae962af6-1e4b-4359-80f7-232cfedee57a"
fichier_zip <- "../raw_data/com_lit.zip"
download.file(url = url_com_lit,
destfile = fichier_zip,
mode = "wb")
unzip(zipfile = fichier_zip, exdir = "raw_data")
com_lit <- sf::read_sf("raw_data/communes_littorales.shp")
Les périmètres de ces communes sont téléchargées depuis https://www.data.gouv.fr/fr/datasets/r/ae962af6-1e4b-4359-80f7-232cfedee57a.
url_onde <- "https://onde.eaufrance.fr/content/t%C3%A9l%C3%A9charger-les-donn%C3%A9es-des-campagnes-par-ann%C3%A9e"
telecharger_fichiers_onde_annuels(url = url_onde, raw_data_dir = '../raw_data')
onde <- assembler_fichiers_onde_annuels_csv(annual_onde_files_dir = "../raw_data/fichiers_onde_annuels_zippes")
onde <- onde %>%
mutate(Mois = lubridate::ymd(DtRealObservation) %>%
lubridate::month() %>%
str_pad(width = 2, side = "left", pad = "0")) %>%
filter(TRUE)
stations_onde_geo <- creer_couche_geo_stations(onde_df = onde)
stations_onde_lit <- sf::st_join(x = stations_onde_geo, y = com_lit) %>%
filter(!is.na(NOM_REG))
mapview::mapview(stations_onde_lit,
zcol = "LbRegion",
col.regions = cartography::carto.pal("multi.pal")[c(11:16, 20)])
Par rapport à l’idée initiale de régionaliser, compliqué car peu de stations par région.
Ici à titre d’essai, on calcule le pourcentage d’assec de chaque station chaque année sur les campagnes usuelles.
Jeu de données Onde restreint au littoral :
id_stations_onde_lit <- stations_onde_lit %>%
pull(CdSiteHydro) %>%
unique()
onde_lit <- onde %>%
filter(CdSiteHydro %in% id_stations_onde_lit)
Calcul du pourcentage :
indicateur <- onde_lit %>%
group_by(CdSiteHydro, Annee) %>%
summarise(nb_assec = sum(LbRsObservationNat == "Assec" & TypeCampObservations == "usuelle"),
nb_obs_usuelles = sum(TypeCampObservations == "usuelle"),
pc_assec_usuelles = nb_assec / nb_obs_usuelles)
indicateur_temp <- indicateur %>%
group_by(Annee) %>%
summarise(pc_assec_usuelles = mean(pc_assec_usuelles))
Représentation graphique
titre = paste0("ONDE, communes littorales (", length(id_stations_onde_lit), " stations)")
ggplot(data = indicateur_temp,
aes(x = Annee, y = pc_assec_usuelles)) +
geom_line(col = "red") +
labs(x = "",
y = "Pourcentage des observations en assec",
title = titre) +
scale_y_continuous(limits = c(0, NA),
labels = scales::percent_format(accuracy = 1))
indicateur_spatial <- indicateur %>%
group_by(CdSiteHydro) %>%
summarise(pc_assec_usuelles = mean(pc_assec_usuelles))
Les cercles sont proportionnels au pourcentage des observations en assec pendant les campagnes usuelles.
stations_onde_lit <- stations_onde_lit %>%
left_join(y = indicateur_spatial)
mapview::mapview(stations_onde_lit,
cex = "pc_assec_usuelles",
col.regions = "red")