Passer au contenu
library(data.nitrates)
# Lire le fichier de configuration
config <- yaml::read_yaml("config.yml")

# Accéder à la valeur pour last_year
last_year <- config$last_year

Présentation

Cette page contient la logique métier concernant l’import des données de l’API Hub’eau “Qualit0e9 des cours d'eau” dans le cadre du projet Nitrates.

Import des données Hub’eau ESU dans un dataframe par millésime

On utilise la fonction get_qualite_rivieres_analyse() du package {hubeau}

nitrate_analyse_esu_last_year <- hubeau::get_qualite_rivieres_analyse(
  code_parametre = "1340",
  code_region = "52",
  date_debut_prelevement = glue::glue(last_year, "-01-01"),
  date_fin_prelevement = glue::glue(last_year, "-12-31"),
  size = "5000"
)

Correction de l’encodage si nécessaire pour certaines variables

nitrate_analyse_esu_last_year <- nitrate_analyse_esu_last_year |>
  dplyr::mutate(libelle_station = iconv(libelle_station, from = "ISO-8859-1", to = "UTF-8"))

Création d’une table pour le nouveau millésime

# Charger les données dans une nouvelle table en base
datalibaba::poster_data(data = nitrate_analyse_esu_last_year, 
                        table = glue::glue("nitrate_qualite_rivieres_analyse_pc_", last_year), 
                        schema = "qualite_cours_d_eau", 
                        db = "si_eau",
                        overwrite = TRUE,
                        user = "admin")

# Ajouter un commentaire sur la table
datalibaba::commenter_table(
  comment = glue::glue(
    "Analyses \"Nitrates\" ESU issues de l\'\'API Hubeau qualite_rivieres : donn\u00e9es brutes ",
    last_year
    ),
  table = glue::glue("nitrate_qualite_rivieres_analyse_pc_", last_year),
  schema = "qualite_cours_d_eau",
  db = "si_eau",
  user = "admin")

Modification du type des champs si besoin

# Modifier le type de colonne pour les champs de date
collectr::modify_column_type(database = "si_eau", 
                   schema = "qualite_cours_d_eau", 
                   table = glue::glue("nitrate_qualite_rivieres_analyse_pc_", last_year),
                   column_name = "date_prelevement", 
                   column_type = "date",
                   role = "admin")

collectr::modify_column_type(database = "si_eau", 
                   schema = "qualite_cours_d_eau", 
                   table = glue::glue("nitrate_qualite_rivieres_analyse_pc_", last_year),
                   column_name = "date_analyse", 
                   column_type = "date",
                   role = "admin")

Archivage de la version précédente de la table

# Archiver la version actuelle de la table avec tous les millésimes 
collectr::archive_table(database = "si_eau",
                        schema = "qualite_cours_d_eau", 
                        new_schema = "zz_archives",
                        table = "nitrate_qualite_rivieres_analyse_pc",
                        role = "admin")

Insertion des données du nouveau millésime en base 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_qualite_rivieres_analyse_pc_", last_year),
                                  source_schema = "qualite_cours_d_eau", 
                                  target_table = "nitrate_qualite_rivieres_analyse_pc", 
                                  target_schema = "qualite_cours_d_eau",
                                  role = "admin")

# Actualiser le commentaire sur la table
datalibaba::commenter_table(
  comment = glue::glue(
    "Analyses Nitrates ESU API Hubeau Qualit\u00e9 des nappes d\'eau souterraine (2007-", 
    last_year, 
    ")"),
  table = "nitrate_qualite_rivieres_analyse_pc",
  schema = "qualite_cours_d_eau",
  db = "si_eau",
  user = "admin"
  )