library(tidyverse)
library(hydroportail)
library(hubeau)
library(flextable)
source(file = "00_fonctions.R")
code_station_elle <- "J4712010"
module_hydroportail_elle <- 2790
qmna5_hydroportail_elle <- 184
q2_hydroportail_elle <- 19703
qmaqs_hydroportail_elle <- 2094
code_station_couesnon <- "J012151001"
module_hydroportail_couesnon <- 4840
qmna5_hydroportail_couesnon <- 417
q2_hydroportail_couesnon <- 29283
qmaqs_hydroportail_couesnon <- 2933
code_station <- code_station_elle
Quelques informations sur la station sont obtenues par la fonction hydroportail::get_meta_hydro().
metadata <- hydroportail::get_meta_hydro(code = code_station, df = TRUE)
Nom station : L’Ellé au Faouët et à Priziac
Code Hydroportail : J4712010
Code Hydro 2 : NA
Surface du bassin versant topographique : 145.4 km²
Longitude (Lambert 93) : 217 914
Latitude (Lambert 93) : 6 790 745
\(~\)
Captures d’écran au 24/08/2022.
Le module indiqué est 2 790 l/s.
Le QMNA5 indiqué est 184 l/s.
Le débit moyen annuel quinquennal sec est 2 094 l/s.
Le débit de crue journalière biennale est 19 703 l/s.
L’API ne proposant pas directement la collecte du module et du QMNA5, ceux-ci doivent être calculés sur la base, respectivement, des débits moyens journaliers et des débits moyens mensuels. Il n’y a donc pas ici d’ajustement de loi statistique mais de simples calculs de moyennes (module) et de quantile (QMNA5).
Les données sont collectées au moyen de la fonction get_hydrometrie_obs_elab() du package R {hubeau}.
Le module est calculé ainsi :
q_journaliers <- get_hydrometrie_obs_elab(
list(code_entite = code_station,
grandeur_hydro_elab = "QmJ")) %>%
mutate(annee = lubridate::ymd(date_obs_elab),
annee = lubridate::year(annee))
# Identification des années complètes
annees_completes <- q_journaliers %>%
group_by(annee) %>%
tally() %>%
filter(n > 364) %>%
pull(annee)
# sélection des années complètes
q_moy_an <- q_journaliers %>%
filter(annee %in% annees_completes) %>%
group_by(annee) %>%
summarise(q_moy_an = mean(resultat_obs_elab, na.rm = TRUE))
# calcul du module
module_api <- mean(q_moy_an$q_moy_an)
Module calculé à partir de l’API Hydrométrie : 2 825 l/s
Sur un total de 47 années de données avec des séries complètes.
Le QMNA5 est calculé ainsi :
q_mensuel <- get_hydrometrie_obs_elab(
list(code_entite = code_station,
grandeur_hydro_elab = "QmM")) %>%
mutate(annee = lubridate::ymd(date_obs_elab),
annee = lubridate::year(annee))
# pour chaque année, collecte du mini du débit mensuel
q_mensuel_mini_annuel <- q_mensuel %>%
filter(annee %in% annees_completes) %>%
group_by(annee) %>%
filter(resultat_obs_elab == min(resultat_obs_elab))
# pourcentile 20% des débits ci-dessus
qmna5_api <- q_mensuel_mini_annuel %>%
pull(resultat_obs_elab) %>%
quantile(probs = c(0.2))
QMNA5 obtenu à partir de l’API Hydrométrie : 209 l/s
Sur un total de 47 années de données avec des séries complètes.
qmaqs_api <- quantile(q_moy_an$q_moy_an, probs = 0.2) %>%
unname() %>%
round()
Débit moyen annuel quinquennal sec obtenu à partir de l’API Hydrométrie : 2 197 l/s
Sur un total de 47 années de données avec des séries complètes.
q2 <- q_journaliers %>%
filter(annee %in% annees_completes) %>%
group_by(annee) %>%
summarise(q_max_an = max(resultat_obs_elab, na.rm = TRUE)) %>%
ungroup()
q2_api <- q2 %>%
summarise(qcjb = median(q_max_an)) %>%
pull(qcjb)
Débit de crue journalière biennale à partir de l’API Hydrométrie : 21 809 l/s
Sur un total de 47 années de données avec des séries complètes.
Pour obtenir le module, les étapes sont :
slot descriptivestats.qj_annual <- hydroportail::get_stats_hydro(
code = code_station,
stat = "QJ_ANNUAL")
module_package_hp <- qj_annual$descriptivestats$mean
Module obtenu avec le package {hydroportail} : 2 790 l/s
Sur un total de 46 années de données validées.
Pour obtenir le QMNA5, les étapes sont :
qmna_package_hp <- hydroportail::get_stats_hydro(code = code_station,
stat = "QMNA")
qmna5_package_hp <- qmna_package_hp$result$tabs$quantile %>%
filter(p == 0.2) %>%
pull(q)
QMNA5 obtenu avec le package {hydroportail} : 184 l/s
Sur un total de 47 années de données avec des séries complètes.
qmaqs_package_hp <- qj_annual$result$tabs$quantile %>%
filter(p == 0.2) %>%
pull(q)
Débit moyen annuel quinquennal sec obtenu avec le package {hydroportail} : 2 094 l/s
Sur un total de 46 années de données.
q_crue <- hydroportail::get_stats_hydro(
code = code_station,
stat = "CRUCAL_J")
# q_crue_filtre <- q_crue$seasons %>%
# filter(!year %in% q_crue$meta$automaticallyexcludedseasons,
# !year %in% q_crue$meta$manuallyexcludedseasons)
q2_package_hp <- q_crue$result$tabs$quantile %>%
filter(p == 0.5) %>%
pull(q)
Débit de crue journalière biennale avec le package {hydroportail} : 19 703 l/s
Sur un total de 47 années de données.
df <- data.frame(
Source = c("Site hydroportail",
"Requêtage de l’API Hub’eau « Hydrométrie »",
"package R {hydroportail}"),
Module = c(module_hydroportail_elle,
module_api,
module_package_hp),
Q_moy_an_quinq_sec = c(qmaqs_hydroportail_elle,
qmaqs_api,
qmaqs_package_hp),
QMNA5 = c(qmna5_hydroportail_elle,
qmna5_api,
qmna5_package_hp),
Q2 = c(q2_hydroportail_elle,
q2_api,
q2_package_hp)
) %>%
mutate_if(is.numeric, round) %>%
mutate_if(is.numeric, formater_grand_nb)
df %>%
formater_flex %>%
add_header_row(values = c("", "Toutes eaux", "Basses eaux", "Hautes eaux"),
colwidths = c(1, 2, 1, 1)
)
Toutes eaux | Basses eaux | Hautes eaux | ||
Source | Module | Q_moy_an_quinq_sec | QMNA5 | Q2 |
Site hydroportail | 2 790 | 2 094 | 184 | 19 703 |
Requêtage de l’API Hub’eau « Hydrométrie » | 2 825 | 2 197 | 209 | 21 809 |
package R {hydroportail} | 2 790 | 2 094 | 184 | 19 703 |