diff --git a/dev/flat_insert_data_hubeau_eso.Rmd b/dev/flat_insert_data_hubeau_eso.Rmd new file mode 100644 index 0000000000000000000000000000000000000000..af8905326dc8bd7ceac8c565bdd538751da75222 --- /dev/null +++ b/dev/flat_insert_data_hubeau_eso.Rmd @@ -0,0 +1,142 @@ +--- +title: "Insertion des pr\u00e9l\u00e8vements et analyses Hubeau ESO" +output: html_document +editor_options: + chunk_output_type: console +--- + +```{r development, include=FALSE} +library(testthat) +library(yaml) +library(datalibaba) +library(dplyr) +library(stringr) +library(glue) +library(DBI) +library(RPostgres) +``` + +```{r development-load} +# Load already included functions if relevant +pkgload::load_all(export_all = FALSE) +``` + +```{r config, eval=FALSE} +# 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 : +```{r load_nitrate_qualite_nappes_analyses, eval=FALSE} +# Charger la table `qualite_nappes_eau_souterraine.nitrate_qualite_nappes_analyses` +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 : +```{r select_code_producteur_hubeau_eso, eval=FALSE} +# Filtrer pour exclure les données ARS +nitrate_prelevement_analyse_hubeau_eso <- nitrate_qualite_nappes_prelevements |> + dplyr::filter(!code_producteur %in% c('44','49','53','72','85')) +``` + +## Consolidation des prélèvements Hub'eau ESO + +On ajoute les variables `source`, `code_support` et `nature_eau` : +```{r add_source_code_support_hubeau_eso, eval=FALSE} +# Ajouter les variables source, code_support et nature_eau +nitrate_prelevement_analyse_hubeau_eso <- nitrate_prelevement_analyse_hubeau_eso |> + dplyr::mutate( + source = "ADES", + heure_prelevement = NA, + code_support = 3, + nature_eau = "ESO", + id_usage = NA, + id_prelevement_motif = NA) +``` + +On remplace des valeurs dans limite_detection et limite_quantification : +```{r replace_dot_limite_detection, eval=FALSE} +# Remplacer les valeurs dans les colonnes limite_detection et limite_quantification +nitrate_prelevement_analyse_hubeau_eso <- nitrate_prelevement_analyse_hubeau_eso |> + dplyr::mutate( + resultat = stringr::str_replace(resultat, "\\,", "."), + limite_detection = stringr::str_replace(limite_detection, "\\,", "."), + limite_quantification = stringr::str_replace(limite_quantification, "\\,", ".") + ) + +``` + +On modifie le type des variables numériques et on les renomme : +```{r change-fieldtypes, eval=FALSE} +# Remplacer les valeurs dans les colonnes resultat_analyse et limite_quantification +nitrate_prelevement_analyse_hubeau_eso <- nitrate_prelevement_analyse_hubeau_eso |> + dplyr::rename(code_intervenant = code_lieu_analyse, + code_reseau = codes_reseau, + code_station = bss_id, + date_prelevement = date_debut_prelevement + ) |> + dplyr::mutate(code_support = as.integer(code_support), + resultat_analyse = as.numeric(resultat), + limite_detection = as.numeric(limite_detection), + limite_quantification = as.numeric(limite_quantification), + code_parametre = as.integer(code_param), + code_fraction_analysee = as.integer(code_fraction), + code_remarque = as.integer(code_remarque_analyse) + ) + +``` + +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 : +```{r select_distinct_rows_hubeau_eso, eval=FALSE} +# Dédoublonner les lignes sur les colonnes code_station et date_prelevement +nitrate_prelevement_analyse_hubeau_eso <- nitrate_prelevement_analyse_hubeau_eso |> + dplyr::distinct(code_station, date_prelevement, .keep_all = TRUE) +``` + +On sélectionne les champs utiles à la table des prélèvements et analyses : +```{r select_variables_hubeau_eso, eval=FALSE} +# Sélectionner les variables +nitrate_prelevement_analyse_hubeau_eso <- nitrate_prelevement_analyse_hubeau_eso |> + dplyr::select(code_intervenant, + source, + code_reseau, + code_station, + date_prelevement, + heure_prelevement, + code_support, + nature_eau, + id_usage, + id_prelevement_motif, + resultat_analyse, + code_parametre, + code_fraction_analysee, + code_remarque, + limite_detection, + limite_quantification) + +``` + + +```{r development-inflate, eval=FALSE} +# Run but keep eval=FALSE to avoid infinite loop +# Execute in the console directly +fusen::inflate(flat_file = "dev/flat_insert_data_hubeau_eso.Rmd", vignette_name = "Insertion des pr\u00e9l\u00e8vements et analyses Hubeau ESO") +``` +