Skip to content
Snippets Groups Projects
Commit 602a72fc authored by ronan.vignard's avatar ronan.vignard
Browse files

Création de la procédure pour la création d'un dataframe unique prélèvements +...

Création de la procédure pour la création d'un dataframe unique prélèvements + analyse pour les données Hub'eau ESO
parent a3ed6250
No related branches found
No related tags found
1 merge request!25Création de la procédure pour la création d'un dataframe unique prélèvements
---
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")
```
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment