Insertion des prélèvements Hubeau ESO
insertion-des-prelevements-hubeau-eso.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 ESO dans la table des prélèvements
Chargement des prélèvements Hub’eau ESO
La table des données brutes Nitrates Hub’eau ESO est chargée :
# Charger la table qualite_nappes_eau_souterraine.nitrate_qualite_rivieres_analyse_pc
nitrate_qualite_nappes_prelevements <- datalibaba::importer_data(
table = "nitrate_qualite_nappes_analyses",
schema = "qualite_nappes_eau_souterraine",
db = "si_eau",
user = "admin"
)
Filtre par code_producteur pour exclure les données ARS
On sélectionne les code_producteur correspondants aux enregistrements hors données ARS de la région :
Consolidation des prélèvements Hub’eau ESO
On ajoute les variables source
,
code_support
et nature_eau
:
# Ajouter les variables source, code_support et nature_eau
nitrate_qualite_nappes_prelevements <- nitrate_qualite_nappes_prelevements |>
dplyr::mutate(
source = "ADES",
code_support = 3,
nature_eau = "ESO")
On sélectionne les champs utiles à la table des prélèvements :
# Sélectionner les variables
nitrate_qualite_nappes_prelevements <- nitrate_qualite_nappes_prelevements |>
dplyr::select(source,
code_reseau = codes_reseau,
code_station = bss_id,
date_prelevement = date_debut_prelevement,
code_support,
nature_eau)
On modifie le type de la variable code_support
de
character en integer :
# Convertir la variable code_support de character en integer
nitrate_qualite_nappes_prelevements <- nitrate_qualite_nappes_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_nappes_prelevements <- nitrate_qualite_nappes_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_nappes_prelevements <- add_code_prelevement(
nitrate_qualite_nappes_prelevements, version)
# Afficher le dataframe pour vérifier les modifications
print(nitrate_qualite_nappes_prelevements)
On charge les données consolidées dans un table dédiée :
# Charger les données dans une nouvelle table en base
datalibaba::poster_data(data = nitrate_qualite_nappes_prelevements,
table = glue::glue("nitrate_prelevement_hubeau_eso_", version),
schema = "nitrates",
db = "si_eau",
overwrite = TRUE,
pk = "code_prelevement",
user = "admin")
Insertion des prélèvements Hub’eau ESO en base dans la table globale
On insère enfin les enregistrements de cette table dans la table globale :
# Insérer les prélèvements Hub'eau ESO vers la table complète
collectr::import_and_merge_tables(database = "si_eau",
source_table = glue::glue("nitrate_prelevement_hubeau_eso_", version),
source_schema = "nitrates",
target_table = glue::glue("nitrate_prelevement_", version),
target_schema = "nitrates",
role = "admin")