Passer au contenu
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")