diff --git a/dev/config_fusen.yaml b/dev/config_fusen.yaml index e52cefe248b2fa089ac1e17fcecd38703474ebfa..e02e03701674bbd5b6f74d6c518b2dd6f37feb66 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 4bfea70317838fc386f7c9e2cc0d8343b272fb21..a8c7354b932832a06de68c84286b5861c250d00b 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 af8905326dc8bd7ceac8c565bdd538751da75222..1be40a0531e5748fc11421f5f40f3b065a0e2bcc 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 bf80c310f9805a24db3155df35efcef527b05b56..2d459837bc77f4267a71e92aff7e615fafb74e11 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 0000000000000000000000000000000000000000..c152ee60cc1d863467266bb64eee88a3b5a55e3c --- /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 0000000000000000000000000000000000000000..535113e696d25e60e4b7f25849ecbc515bd6e356 --- /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 0000000000000000000000000000000000000000..eaea669df9c834a322384dac34e433540204eb82 --- /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) + +``` + + +