From d815d744b1ab29e1f0c414f023bd49c9231e6fae Mon Sep 17 00:00:00 2001
From: "ronan.vignard" <ronan.vignard@developpement-durable.gouv.fr>
Date: Mon, 10 Feb 2025 16:39:28 +0100
Subject: [PATCH] Finalisation des flat par source et de leurs vignettes

---
 dev/config_fusen.yaml                         |  45 ++++
 dev/flat_insert_data_ars.Rmd                  |  61 ++----
 dev/flat_insert_data_hubeau_eso.Rmd           |  10 +-
 dev/flat_insert_data_hubeau_esu.Rmd           |  83 +++++++
 ...rtion-des-prelevements-et-analyses-ars.Rmd | 202 ++++++++++++++++++
 ...es-prelevements-et-analyses-hubeau-eso.Rmd | 165 ++++++++++++++
 ...es-prelevements-et-analyses-hubeau-esu.Rmd | 156 ++++++++++++++
 7 files changed, 670 insertions(+), 52 deletions(-)
 create mode 100644 vignettes/insertion-des-prelevements-et-analyses-ars.Rmd
 create mode 100644 vignettes/insertion-des-prelevements-et-analyses-hubeau-eso.Rmd
 create mode 100644 vignettes/insertion-des-prelevements-et-analyses-hubeau-esu.Rmd

diff --git a/dev/config_fusen.yaml b/dev/config_fusen.yaml
index e52cefe..e02e037 100644
--- a/dev/config_fusen.yaml
+++ b/dev/config_fusen.yaml
@@ -117,6 +117,51 @@ flat_insert_data.Rmd:
     overwrite: ask
     clean: ask
     codecov: false
+flat_insert_data_ars.Rmd:
+  path: dev/flat_insert_data_ars.Rmd
+  state: active
+  R: []
+  tests: []
+  vignettes: vignettes/insertion-des-prelevements-et-analyses-ars.Rmd
+  inflate:
+    flat_file: dev/flat_insert_data_ars.Rmd
+    vignette_name: Insertion des prélèvements et analyses ARS
+    open_vignette: true
+    check: true
+    document: true
+    overwrite: ask
+    clean: ask
+    codecov: false
+flat_insert_data_hubeau_eso.Rmd:
+  path: dev/flat_insert_data_hubeau_eso.Rmd
+  state: active
+  R: []
+  tests: []
+  vignettes: vignettes/insertion-des-prelevements-et-analyses-hubeau-eso.Rmd
+  inflate:
+    flat_file: dev/flat_insert_data_hubeau_eso.Rmd
+    vignette_name: Insertion des prélèvements et analyses Hubeau ESO
+    open_vignette: true
+    check: true
+    document: true
+    overwrite: ask
+    clean: ask
+    codecov: false
+flat_insert_data_hubeau_esu.Rmd:
+  path: dev/flat_insert_data_hubeau_esu.Rmd
+  state: active
+  R: []
+  tests: []
+  vignettes: vignettes/insertion-des-prelevements-et-analyses-hubeau-esu.Rmd
+  inflate:
+    flat_file: dev/flat_insert_data_hubeau_esu.Rmd
+    vignette_name: Insertion des prélèvements et analyses Hubeau ESU
+    open_vignette: true
+    check: true
+    document: true
+    overwrite: ask
+    clean: ask
+    codecov: false
 flat_insert_hubeau_eso_into_analyse.Rmd:
   path: dev/flat_insert_hubeau_eso_into_analyse.Rmd
   state: active
diff --git a/dev/flat_insert_data_ars.Rmd b/dev/flat_insert_data_ars.Rmd
index 4bfea70..a8c7354 100644
--- a/dev/flat_insert_data_ars.Rmd
+++ b/dev/flat_insert_data_ars.Rmd
@@ -14,13 +14,11 @@ 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}
@@ -67,7 +65,9 @@ nitrate_prelevement_analyse_ars <- nitrate_data_analyse_ars |>
   dplyr::mutate(
     source = "ARS",
     code_reseau = NA,
-    code_support = 3
+    code_support = 3,
+    code_fraction_analysee = NA,
+    limite_detection = NA,
   )
 ```
 
@@ -133,6 +133,13 @@ nitrate_prelevement_analyse_ars <- nitrate_prelevement_analyse_ars |>
 
 ```
 
+On supprime "<" dans la variable `limite_quantification` :
+```{r replace_in_plv_heure, eval=FALSE}
+# Remplacer "h" par ":" dans la colonne plv_heure
+nitrate_prelevement_analyse_ars <- nitrate_prelevement_analyse_ars |>
+  dplyr::mutate(limite_quantification = stringr::str_replace_all(limite_quantification, "<", ""))
+```
+
 On sélectionne les champs utiles à la table des prélèvements et analyse :
 ```{r select_variables, eval=FALSE}
 # Sélectionner les variables
@@ -147,61 +154,19 @@ nitrate_prelevement_analyse_ars <- nitrate_prelevement_analyse_ars |>
                 nature_eau,
                 id_usage = usage,
                 id_prelevement_motif = plv_motif,
-                nom_parametre = param_nom,
                 date_analyse = anl_date_fin_analyse,
                 resultat_analyse,
                 code_parametre = param_code,
+                code_fraction_analysee,
                 code_remarque,
+                limite_detection,
                 limite_quantification)
 
 ```
 
-# Publication en base
-
-## Insertion dans une table intermédiaire 
-
-On ajoute un identifiant unique s'appuyant sur une séquence stockée en base :
-```{r add_code_prelevement_ars, eval=FALSE}
-# Utiliser la fonction add_code_prelevement_analyse() avec la version souhaitée
-nitrate_prelevement_analyse_ars <- add_code_prelevement_analyse(
-  nitrate_prelevement_analyse_ars, version)
-
-# Afficher le dataframe pour vérifier les modifications
-print(nitrate_prelevement_analyse_ars)
-
-```
-
-On charge les données consolidées dans un table dédiée :
-```{r insert_into_nitrate_prelevement_analyse_version, eval=FALSE}
-# Charger les données dans une nouvelle table en base
-datalibaba::poster_data(data = nitrate_prelevement_analyse_ars, 
-                        table = glue::glue("nitrate_prelevement_analyse_ars", version), 
-                        schema = "nitrates", 
-                        db = "si_eau",
-                        overwrite = TRUE,
-                        pk = "code_prelevement",
-                        user = "admin")
-```
-
-## Insertion des données ARS du nouveau millésime en base dans la table globale
-
-On insère enfin les enregistrements de cette table dans la table globale :
-```{r import_and_merge_tables_ars, eval=FALSE}
-# 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_analyse_ars", version), 
-                                  source_schema = "nitrates", 
-                                  target_table = glue::glue("nitrate_prelevement_analyse", version), 
-                                  target_schema = "nitrates",
-                                  role = "admin")
-
-```
-
-
-
 ```{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_ars.Rmd", vignette_name = "Go further")
+fusen::inflate(flat_file = "dev/flat_insert_data_ars.Rmd", vignette_name = "Insertion des pr\u00e9l\u00e8vements et analyses ARS")
 ```
 
diff --git a/dev/flat_insert_data_hubeau_eso.Rmd b/dev/flat_insert_data_hubeau_eso.Rmd
index af89053..1be40a0 100644
--- a/dev/flat_insert_data_hubeau_eso.Rmd
+++ b/dev/flat_insert_data_hubeau_eso.Rmd
@@ -66,7 +66,8 @@ nitrate_prelevement_analyse_hubeau_eso <- nitrate_prelevement_analyse_hubeau_eso
     code_support = 3,
     nature_eau = "ESO",
     id_usage = NA,
-    id_prelevement_motif = NA)
+    id_prelevement_motif = NA,
+    date_analyse = NA)
 ```
 
 On remplace des valeurs dans limite_detection et limite_quantification :
@@ -103,7 +104,7 @@ nitrate_prelevement_analyse_hubeau_eso <- nitrate_prelevement_analyse_hubeau_eso
 
 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 :
+donnée (à supprimer ?) :
 ```{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 |>
@@ -113,7 +114,8 @@ nitrate_prelevement_analyse_hubeau_eso <- nitrate_prelevement_analyse_hubeau_eso
 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 |>
+nitrate_prelevement_analyse_hubeau_eso <- 
+  nitrate_prelevement_analyse_hubeau_eso |>
   dplyr::select(code_intervenant,
                 source,
                 code_reseau,
@@ -124,6 +126,7 @@ nitrate_prelevement_analyse_hubeau_eso <- nitrate_prelevement_analyse_hubeau_eso
                 nature_eau,
                 id_usage,
                 id_prelevement_motif,
+                date_analyse,
                 resultat_analyse,
                 code_parametre,
                 code_fraction_analysee,
@@ -133,7 +136,6 @@ nitrate_prelevement_analyse_hubeau_eso <- nitrate_prelevement_analyse_hubeau_eso
 
 ```
 
-
 ```{r development-inflate, eval=FALSE}
 # Run but keep eval=FALSE to avoid infinite loop
 # Execute in the console directly
diff --git a/dev/flat_insert_data_hubeau_esu.Rmd b/dev/flat_insert_data_hubeau_esu.Rmd
index bf80c31..2d45983 100644
--- a/dev/flat_insert_data_hubeau_esu.Rmd
+++ b/dev/flat_insert_data_hubeau_esu.Rmd
@@ -44,6 +44,89 @@ nitrate_qualite_rivieres_prelevements <- datalibaba::importer_data(
 )
 ```
 
+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_esu <- nitrate_qualite_rivieres_prelevements |>
+  dplyr::mutate(
+    resultat = stringr::str_replace(resultat, "\\,", "."),
+    limite_detection = stringr::str_replace(limite_detection, "\\,", "."),
+    limite_quantification = stringr::str_replace(limite_quantification, "\\,", ".")
+    )
+
+```
+
+On ajoute les variables `source` et `nature_eau` :
+```{r add-source_code_support_hubeau_esu, eval=FALSE}
+# Ajouter les variables source et nature_eau
+nitrate_prelevement_analyse_hubeau_esu <- nitrate_prelevement_analyse_hubeau_esu |>
+  dplyr::mutate(
+    source = "Na\u00efades",
+    heure_prelevement = NA,
+    code_support = 3,
+    nature_eau = "ESU",
+    id_usage = NA,
+    id_prelevement_motif = NA,
+    date_analyse = NA)
+
+```
+
+On modifie le type de la variable `code_support` de character en integer 
+(à supprimer ?) :
+```{r change-type_code_support, eval=FALSE}
+# Convertir la variable code_support de character en integer
+nitrate_prelevement_analyse_hubeau_esu <- nitrate_prelevement_analyse_hubeau_esu |>
+  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 (à supprimer ?) :
+```{r select-distinct-rows_hubeau_esu, eval=FALSE}
+# Dédoublonner les lignes sur les colonnes code_station et date_prelevement
+nitrate_prelevement_analyse_hubeau_esu <- nitrate_prelevement_analyse_hubeau_esu |>
+  dplyr::distinct(code_station, date_prelevement, .keep_all = TRUE)
+```
+
+On modifie le type des variables  resultat_analyse et  limite_quantification :
+```{r change-fieldtypes, eval=FALSE}
+# Remplacer les valeurs dans les colonnes resultat_analyse et limite_quantification
+nitrate_prelevement_analyse_hubeau_esu <- nitrate_prelevement_analyse_hubeau_esu |>
+  dplyr::mutate(resultat_analyse = as.numeric(resultat),
+                limite_detection = as.numeric(limite_detection),
+                limite_quantification = as.numeric(limite_quantification),
+                code_parametre = as.integer(code_parametre),
+                code_fraction_analysee  = as.integer(code_fraction),
+                code_remarque = as.integer(code_remarque)
+                )
+
+```
+
+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_esu <- 
+  nitrate_prelevement_analyse_hubeau_esu|>
+  dplyr::select(code_intervenant = code_laboratoire,
+                source,
+                code_reseau,
+                code_station,
+                date_prelevement,
+                heure_prelevement,
+                code_support,
+                nature_eau,
+                id_usage,
+                id_prelevement_motif,
+                date_analyse,
+                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
diff --git a/vignettes/insertion-des-prelevements-et-analyses-ars.Rmd b/vignettes/insertion-des-prelevements-et-analyses-ars.Rmd
new file mode 100644
index 0000000..c152ee6
--- /dev/null
+++ b/vignettes/insertion-des-prelevements-et-analyses-ars.Rmd
@@ -0,0 +1,202 @@
+---
+title: "Insertion des prélèvements et analyses ARS"
+output: rmarkdown::html_vignette
+vignette: >
+  %\VignetteIndexEntry{Insertion des prélèvements et analyses ARS}
+  %\VignetteEngine{knitr::rmarkdown}
+  %\VignetteEncoding{UTF-8}
+---
+
+```{r, include = FALSE}
+knitr::opts_chunk$set(
+  collapse = TRUE,
+  comment = "#>"
+)
+```
+
+```{r}
+library(data.nitrates)
+```
+
+<!-- WARNING - This vignette is generated by {fusen} from dev/flat_insert_data_ars.Rmd: do not edit by hand -->
+
+
+
+
+```{r config}
+#| eval: no
+
+# 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 de l'ARS dans la table des prélèvements
+
+## Chargement des données ARS brutes et des stations ESO
+
+La table des données brutes Nitrates de l'ARS est chargée :
+```{r load_nitrate_data_analyse_ars}
+#| eval: no
+
+nitrate_data_analyse_ars <- datalibaba::importer_data(
+  table = "nitrate_data_analyse_ars",
+  schema = "nitrates",
+  db = "si_eau",
+  user = "admin"
+)
+
+```
+
+
+La table des stations est chargée afin de remplacer ultérieurement le code SISE-EAUX par le code BSS pour les prélèvements ESO :
+```{r load-nitrate_station_eso}
+#| eval: no
+
+r_station_mesure_p_2024_r52 <- datalibaba::importer_data(
+  table = "r_station_mesure_p_2024_r52",
+  schema = "stations",
+  db = "si_eau",
+  user = "admin"
+)
+
+```
+
+
+## Consolidation des données ARS
+
+On ajoute les variables `source` et `code_support` :
+```{r add_source_code_support}
+#| eval: no
+
+# Ajouter les variables source et code_support
+nitrate_prelevement_analyse_ars <- nitrate_data_analyse_ars |>
+  dplyr::mutate(
+    source = "ARS",
+    code_reseau = NA,
+    code_support = 3,
+    code_fraction_analysee = NA,
+    limite_detection = NA,
+  )
+```
+
+
+On remplace "h" par ":" dans la variable `plv_heure` :
+```{r replace_in_plv_heure}
+#| eval: no
+
+# Remplacer "h" par ":" dans la colonne plv_heure
+nitrate_prelevement_analyse_ars <- nitrate_prelevement_analyse_ars |>
+  dplyr::mutate(plv_heure = stringr::str_replace_all(plv_heure, "h", ":"))
+```
+
+
+On supprime les enregistrements correspondants à des totaux :
+```{r filter_param_nom_ars}
+#| eval: no
+
+# Supprimer les lignes ne correspondant pas à une analyse
+nitrate_prelevement_analyse_ars <- nitrate_prelevement_analyse_ars |>
+  dplyr::filter(!stringr::str_starts(param_nom, "Total"))
+
+```
+
+
+On remplace les chaînes de caractère par NA dans la variable `ana_param_alpha_resultat` :
+```{r replace_strings_with_na}
+#| eval: no
+
+# Remplacer chaînes de caractère dans la colonne ana_param_alpha_resultat
+nitrate_prelevement_analyse_ars <- nitrate_prelevement_analyse_ars |>
+  dplyr::mutate(
+    ana_param_alpha_resultat = dplyr::case_when(
+      ana_param_alpha_resultat %in% c("TRACES", "PRESENCE", "SEUIL", "ILLISIBL", "N.M.", "O", "?", ",", " ") ~ NA_character_,
+      TRUE ~ ana_param_alpha_resultat
+    )
+  )
+
+```
+
+
+On remplace des valeurs dans ana_param_alpha_resultat et param_code:
+```{r replace_dot_ana_param_alpha_resultat}
+#| eval: no
+
+# Remplacer les valeurs dans les colonnes ana_param_alpha_resultat et param_code
+nitrate_prelevement_analyse_ars <- nitrate_prelevement_analyse_ars |>
+  dplyr::mutate(
+    ana_param_alpha_resultat = stringr::str_replace(ana_param_alpha_resultat, "\\,", "."),
+    param_code = stringr::str_replace(param_code, "NO3", "1340")
+    )
+
+```
+
+
+On affecte le code_remarque et la valeur des variables resultat_analyse et  limite_quantification :
+```{r mutate_from_ana_param_alpha_resultat}
+#| eval: no
+
+# Ajouter les colonnes code_remarque, resultat_analyse et limite_quantification
+nitrate_prelevement_analyse_ars <- nitrate_prelevement_analyse_ars |>
+  dplyr::mutate(
+    # Ajout de la colonne code_remarque selon la condition spécifiée
+    code_remarque = dplyr::case_when(
+      stringr::str_starts(ana_param_alpha_resultat, "<") ~ 10,
+      TRUE ~ 1
+    ),
+    # Renommage conditionnel des colonnes
+    resultat_analyse = dplyr::case_when(
+      stringr::str_starts(ana_param_alpha_resultat, "<") ~ as.character(ana_param_valeur_traduite),
+      TRUE ~ ana_param_alpha_resultat
+    ),
+    limite_quantification = dplyr::case_when(
+      stringr::str_starts(ana_param_alpha_resultat, "<") ~ ana_param_alpha_resultat,
+      TRUE ~ NA_character_  # Utilisation de NA pour les valeurs non pertinentes
+    )
+  )
+
+```
+
+
+On supprime "<" dans la variable `limite_quantification` :
+```{r replace_in_plv_heure-1}
+#| eval: no
+
+# Remplacer "h" par ":" dans la colonne plv_heure
+nitrate_prelevement_analyse_ars <- nitrate_prelevement_analyse_ars |>
+  dplyr::mutate(limite_quantification = stringr::str_replace_all(limite_quantification, "<", ""))
+```
+
+
+On sélectionne les champs utiles à la table des prélèvements et analyse :
+```{r select_variables}
+#| eval: no
+
+# Sélectionner les variables
+nitrate_prelevement_analyse_ars <- nitrate_prelevement_analyse_ars |>
+  dplyr::select(code_intervenant = geo_dept_ddass_gest_code,
+                source,
+                code_reseau,
+                code_station = ins_code_national,
+                date_prelevement = plv_date,
+                heure_prelevement = plv_heure,
+                code_support,
+                nature_eau,
+                id_usage = usage,
+                id_prelevement_motif = plv_motif,
+                date_analyse = anl_date_fin_analyse,
+                resultat_analyse,
+                code_parametre = param_code,
+                code_fraction_analysee,
+                code_remarque,
+                limite_detection,
+                limite_quantification)
+
+```
+
+
+
diff --git a/vignettes/insertion-des-prelevements-et-analyses-hubeau-eso.Rmd b/vignettes/insertion-des-prelevements-et-analyses-hubeau-eso.Rmd
new file mode 100644
index 0000000..535113e
--- /dev/null
+++ b/vignettes/insertion-des-prelevements-et-analyses-hubeau-eso.Rmd
@@ -0,0 +1,165 @@
+---
+title: "Insertion des prélèvements et analyses Hubeau ESO"
+output: rmarkdown::html_vignette
+vignette: >
+  %\VignetteIndexEntry{Insertion des prélèvements et analyses Hubeau ESO}
+  %\VignetteEngine{knitr::rmarkdown}
+  %\VignetteEncoding{UTF-8}
+---
+
+```{r, include = FALSE}
+knitr::opts_chunk$set(
+  collapse = TRUE,
+  comment = "#>"
+)
+```
+
+```{r}
+library(data.nitrates)
+```
+
+<!-- WARNING - This vignette is generated by {fusen} from dev/flat_insert_data_hubeau_eso.Rmd: do not edit by hand -->
+
+
+
+
+```{r config}
+#| eval: no
+
+# 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: no
+
+# 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: no
+
+# 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: no
+
+# 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,
+    date_analyse = NA)
+```
+
+
+On remplace des valeurs dans limite_detection et limite_quantification :
+```{r replace_dot_limite_detection}
+#| eval: no
+
+# 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: no
+
+# 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 (à supprimer ?) :
+```{r select_distinct_rows_hubeau_eso}
+#| eval: no
+
+# 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: no
+
+# 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,
+                date_analyse,
+                resultat_analyse,
+                code_parametre,
+                code_fraction_analysee,
+                code_remarque,
+                limite_detection,
+                limite_quantification)
+
+```
+
+
+
diff --git a/vignettes/insertion-des-prelevements-et-analyses-hubeau-esu.Rmd b/vignettes/insertion-des-prelevements-et-analyses-hubeau-esu.Rmd
new file mode 100644
index 0000000..eaea669
--- /dev/null
+++ b/vignettes/insertion-des-prelevements-et-analyses-hubeau-esu.Rmd
@@ -0,0 +1,156 @@
+---
+title: "Insertion des prélèvements et analyses Hubeau ESU"
+output: rmarkdown::html_vignette
+vignette: >
+  %\VignetteIndexEntry{Insertion des prélèvements et analyses Hubeau ESU}
+  %\VignetteEngine{knitr::rmarkdown}
+  %\VignetteEncoding{UTF-8}
+---
+
+```{r, include = FALSE}
+knitr::opts_chunk$set(
+  collapse = TRUE,
+  comment = "#>"
+)
+```
+
+```{r}
+library(data.nitrates)
+```
+
+<!-- WARNING - This vignette is generated by {fusen} from dev/flat_insert_data_hubeau_esu.Rmd: do not edit by hand -->
+
+
+
+
+```{r config}
+#| eval: no
+
+# 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 :
+```{r load-nitrate_qualite_rivieres_analyse_pc}
+#| eval: no
+
+# 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"
+)
+```
+
+
+On remplace des valeurs dans  `limite_detection` et `limite_quantification` :
+```{r replace-dot_limite_detection}
+#| eval: no
+
+# Remplacer les valeurs dans les colonnes limite_detection et limite_quantification
+nitrate_prelevement_analyse_hubeau_esu <- nitrate_qualite_rivieres_prelevements |>
+  dplyr::mutate(
+    resultat = stringr::str_replace(resultat, "\\,", "."),
+    limite_detection = stringr::str_replace(limite_detection, "\\,", "."),
+    limite_quantification = stringr::str_replace(limite_quantification, "\\,", ".")
+    )
+
+```
+
+
+On ajoute les variables `source` et `nature_eau` :
+```{r add-source_code_support_hubeau_esu}
+#| eval: no
+
+# Ajouter les variables source et nature_eau
+nitrate_prelevement_analyse_hubeau_esu <- nitrate_prelevement_analyse_hubeau_esu |>
+  dplyr::mutate(
+    source = "Na\u00efades",
+    heure_prelevement = NA,
+    code_support = 3,
+    nature_eau = "ESU",
+    id_usage = NA,
+    id_prelevement_motif = NA,
+    date_analyse = NA)
+
+```
+
+
+On modifie le type de la variable `code_support` de character en integer 
+(à supprimer ?) :
+```{r change-type_code_support}
+#| eval: no
+
+# Convertir la variable code_support de character en integer
+nitrate_prelevement_analyse_hubeau_esu <- nitrate_prelevement_analyse_hubeau_esu |>
+  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 (à supprimer ?) :
+```{r select-distinct-rows_hubeau_esu}
+#| eval: no
+
+# Dédoublonner les lignes sur les colonnes code_station et date_prelevement
+nitrate_prelevement_analyse_hubeau_esu <- nitrate_prelevement_analyse_hubeau_esu |>
+  dplyr::distinct(code_station, date_prelevement, .keep_all = TRUE)
+```
+
+
+On modifie le type des variables  resultat_analyse et  limite_quantification :
+```{r change-fieldtypes}
+#| eval: no
+
+# Remplacer les valeurs dans les colonnes resultat_analyse et limite_quantification
+nitrate_prelevement_analyse_hubeau_esu <- nitrate_prelevement_analyse_hubeau_esu |>
+  dplyr::mutate(resultat_analyse = as.numeric(resultat),
+                limite_detection = as.numeric(limite_detection),
+                limite_quantification = as.numeric(limite_quantification),
+                code_parametre = as.integer(code_parametre),
+                code_fraction_analysee  = as.integer(code_fraction),
+                code_remarque = as.integer(code_remarque)
+                )
+
+```
+
+
+On sélectionne les champs utiles à la table des prélèvements et analyses :
+```{r select_variables_hubeau_eso}
+#| eval: no
+
+# Sélectionner les variables
+nitrate_prelevement_analyse_hubeau_esu <- 
+  nitrate_prelevement_analyse_hubeau_esu|>
+  dplyr::select(code_intervenant = code_laboratoire,
+                source,
+                code_reseau,
+                code_station,
+                date_prelevement,
+                heure_prelevement,
+                code_support,
+                nature_eau,
+                id_usage,
+                id_prelevement_motif,
+                date_analyse,
+                resultat_analyse,
+                code_parametre,
+                code_fraction_analysee,
+                code_remarque,
+                limite_detection,
+                limite_quantification)
+
+```
+
+
+
-- 
GitLab