-
ronan.vignard authoredronan.vignard authored
flat_import_hubeau_esu_data.Rmd 5.56 KiB
title: "Import des donn\u00e9es Hubeau ESU"
output: html_document
editor_options:
chunk_output_type: console
library(testthat)
library(yaml)
library(glue)
library(hubeau)
library(datalibaba)
library(RPostgreSQL)
library(sf)
library(collectr)
library(dplyr)
# Load already included functions
pkgload::load_all(export_all = FALSE)
# 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 "Qualit\u00e9 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"
)
# Créer de l'arborescence et des fichiers du template
usethis::use_rmarkdown_template(
template_name = "Import des donn\u00e9es Hubeau ESU",
template_dir = "import-des-donnees-hubeau-esu",
template_description = "Import des donn\u00e9es Hubeau ESU",
template_create_dir = TRUE
)