Skip to content
Snippets Groups Projects
title: "Insertion des prélèvements Hubeau ESU"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{insertion-des-prelevements-hubeau-esu}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
library(data.nitrates)

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 = "ESO")

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, "v0_16")

# 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 = "nitrate_prelevement_hubeau_esu_v0_16", 
                        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 = "nitrate_prelevement_hubeau_esu_v0_16", 
                                  source_schema = "nitrates", 
                                  target_table = "nitrate_prelevement_v0_16", 
                                  target_schema = "nitrates",
                                  role = "admin")