Insertion des prélèvements Hubeau ESU
insertion-des-prelevements-hubeau-esu.Rmd
library(data.nitrates)
# Lire le fichier de configuration
config <- yaml::read_yaml("config.yml")
# Accéder à la valeur pour version
version <- config$version
Consolidation et insertion des données Hub’eau ESU dans la table des prélèvements
Chargement des prélèvements Hub’eau ESU
La table des données brutes Nitrates Hub’eau ESU est chargée :
# Charger la table qualite_nappes_eau_souterraine.nitrate_qualite_rivieres_analyse_pc
nitrate_qualite_rivieres_prelevements <- datalibaba::importer_data(
table = "nitrate_qualite_rivieres_analyse_pc",
schema = "qualite_cours_d_eau",
db = "si_eau",
user = "admin"
)
Consolidation des prélèvements Hub’eau ESU
On remplace “.” par “,” dans les variables
limite_detection
et limite_quantification
:
# Remplacer "." par "," dans les colonnes limite_detection et limite_quantification
nitrate_qualite_rivieres_prelevements <- nitrate_qualite_rivieres_prelevements |>
dplyr::mutate(
limite_detection = stringr::str_replace_all(limite_detection, ".", ","),
limite_quantification = stringr::str_replace_all(limite_quantification, ".", ",")
)
On ajoute les variables source
et
nature_eau
:
# Ajouter les variables source et nature_eau
nitrate_qualite_rivieres_prelevements <- nitrate_qualite_rivieres_prelevements |>
dplyr::mutate(
source = "Na\u00efades",
nature_eau = "ESU")
On sélectionne les champs utiles à la table des prélèvements :
# Sélectionner les variables
nitrate_qualite_rivieres_prelevements <- nitrate_qualite_rivieres_prelevements |>
dplyr::select(source,
code_reseau,
code_station,
date_prelevement,
heure_prelevement,
code_support,
nature_eau,
commentaire = commentaires_analyse)
On modifie le type de la variable code_support
de
character en integer :
# Convertir la variable code_support de character en integer
nitrate_qualite_rivieres_prelevements <- nitrate_qualite_rivieres_prelevements |>
dplyr::mutate(code_support = as.integer(code_support))
On dédoublonne les lignes en utilisant les champs
code_station
et date_prelevement
afin de ne
conserver qu’un prélèvement par station et date donnée :
# Dédoublonner les lignes sur les colonnes code_station et date_prelevement
nitrate_qualite_rivieres_prelevements <- nitrate_qualite_rivieres_prelevements |>
dplyr::distinct(code_station, date_prelevement, .keep_all = TRUE)
On ajoute un identifiant unique s’appuyant sur une séquence stockée en base :
# Utiliser la fonction add_code_prelevement() avec la version souhaitée
nitrate_qualite_rivieres_prelevements <- add_code_prelevement(
nitrate_qualite_rivieres_prelevements, version)
# Afficher le dataframe pour vérifier les modifications
print(nitrate_qualite_rivieres_prelevements)
On charge les données consolidées dans une table dédiée :
# Charger les données dans une nouvelle table en base
datalibaba::poster_data(data = nitrate_qualite_rivieres_prelevements,
table = glue::glue("nitrate_prelevement_hubeau_esu_", version),
schema = "nitrates",
db = "si_eau",
overwrite = TRUE,
pk = "code_prelevement",
user = "admin")
Insertion des prélèvements Hub’eau ESU en base dans la table globale
On insère enfin les enregistrements de cette table dans la table globale :
# Insérer les données de la table du dernier millésime vers la table complète
collectr::import_and_merge_tables(database = "si_eau",
source_table = glue::glue("nitrate_prelevement_hubeau_esu_", version),
source_schema = "nitrates",
target_table = glue::glue("nitrate_prelevement_", version),
target_schema = "nitrates",
role = "admin")