diff --git a/R/add_code_analyse.R b/R/add_code_analyse.R deleted file mode 100644 index f29d8c278d98b23647aa9760709cd90b3fb9cbde..0000000000000000000000000000000000000000 --- a/R/add_code_analyse.R +++ /dev/null @@ -1,68 +0,0 @@ -# WARNING - Generated by {fusen} from dev/flat_create_tables_sequences.Rmd: do not edit by hand # nolint: line_length_linter. - -#' Ajouter une variable code_analyse au dataframe -#' -#' @description Cette fonction ajoute une nouvelle variable `code_analyse` -#' au dataframe en utilisant une séquence PostgreSQL dynamique. La séquence est -#' construite en fonction du paramètre `version` fourni. -#' -#' @param dataframe Un dataframe contenant les données sur lesquelles ajouter -#' la variable `code_analyse`. -#' @param version Une chaîne de caractères représentant la version de la -#' séquence à utiliser. -#' -#' @return Un dataframe avec une nouvelle colonne `code_analyse` contenant -#' les valeurs de la séquence PostgreSQL. -#' -#' @importFrom DBI dbGetQuery dbDisconnect -#' @importFrom dplyr mutate -#' @importFrom glue glue -#' @importFrom datalibaba connect_to_db -#' @export -#' @examples -#' # Crée un dataframe fictif avec les colonnes nécessaires pour l'exemple -#' dataframe <- data.frame( -#' id_prelevement = 1:5, -#' autre_colonne = sample(letters, 5) -#' ) -#' # Définir une version pour l'exemple -#' version <- "v1" -#' -#' # Utiliser la fonction add_code_analyse() avec la version souhaitée -#' dataframe <- add_code_analyse( -#' dataframe, version) -#' -add_code_analyse <- function(dataframe, version) { - # Établir une connexion à la base de données PostgreSQL - connexion <- datalibaba::connect_to_db(db = "si_eau", user = "admin") - - # Créer la séquence correspondant à la table - create_sequence <- glue::glue("CREATE SEQUENCE IF NOT EXISTS nitrates.nitrate_analyse_{version}_code_analyse_seq - INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1;") - - # Exécuter le script dans la base de données - DBI::dbExecute(connexion, create_sequence) - - # Construire le nom de la séquence - sequence_name <- glue::glue("nitrates.nitrate_analyse_{version}_code_analyse_seq") - - # Initialiser une liste pour stocker les valeurs de la séquence - code_analyses <- c() - - # Pour chaque ligne du dataframe, obtenir une valeur de la séquence - for (i in 1:nrow(dataframe)) { - query <- glue::glue("SELECT nextval(\'{sequence_name}\') AS code_analyse") - result <- DBI::dbGetQuery(connexion, query) - code_analyses <- c(code_analyses, result$code_analyse) - } - - # Ajouter la nouvelle variable au dataframe - dataframe <- dataframe |> - dplyr::mutate(code_analyse = code_analyses) - - # Fermer la connexion à la base de données - DBI::dbDisconnect(connexion) - - return(dataframe) -} - diff --git a/R/add_code_prelevement.R b/R/add_code_prelevement.R deleted file mode 100644 index baf59bf173196095bc7adc3c497ecc10d71b2cf3..0000000000000000000000000000000000000000 --- a/R/add_code_prelevement.R +++ /dev/null @@ -1,68 +0,0 @@ -# WARNING - Generated by {fusen} from dev/flat_create_tables_sequences.Rmd: do not edit by hand # nolint: line_length_linter. - -#' Ajouter une variable code_prelevement au dataframe -#' -#' @description Cette fonction ajoute une nouvelle variable `code_prelevement` -#' au dataframe en utilisant une séquence PostgreSQL dynamique. La séquence est -#' construite en fonction du paramètre `version` fourni. -#' -#' @param dataframe Un dataframe contenant les données sur lesquelles ajouter -#' la variable `code_prelevement`. -#' @param version Une chaîne de caractères représentant la version de la -#' séquence à utiliser. -#' -#' @return Un dataframe avec une nouvelle colonne `code_prelevement` contenant -#' les valeurs de la séquence PostgreSQL. -#' -#' @importFrom DBI dbGetQuery dbDisconnect -#' @importFrom dplyr mutate -#' @importFrom glue glue -#' @importFrom datalibaba connect_to_db -#' @export -#' @examples -#' # Crée un dataframe fictif avec les colonnes nécessaires pour l'exemple -#' dataframe <- data.frame( -#' id_prelevement = 1:5, -#' autre_colonne = sample(letters, 5) -#' ) -#' # Définir une version pour l'exemple -#' version <- "v1" -#' -#' # Utiliser la fonction add_code_prelevement() avec la version souhaitée -#' dataframe <- add_code_prelevement( -#' dataframe, version) -#' -add_code_prelevement <- function(dataframe, version) { - # Établir une connexion à la base de données PostgreSQL - connexion <- datalibaba::connect_to_db(db = "si_eau", user = "admin") - - # Créer la séquence correspondant à la table - create_sequence <- glue::glue("CREATE SEQUENCE IF NOT EXISTS nitrates.nitrate_prelevement_{version}_code_prelevement_seq - INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1;") - - # Exécuter le script dans la base de données - DBI::dbExecute(connexion, create_sequence) - - # Construire le nom de la séquence - sequence_name <- glue::glue("nitrates.nitrate_prelevement_{version}_code_prelevement_seq") - - # Initialiser une liste pour stocker les valeurs de la séquence - code_prelevements <- c() - - # Pour chaque ligne du dataframe, obtenir une valeur de la séquence - for (i in 1:nrow(dataframe)) { - query <- glue::glue("SELECT nextval(\'{sequence_name}\') AS code_prelevement") - result <- DBI::dbGetQuery(connexion, query) - code_prelevements <- c(code_prelevements, result$code_prelevement) - } - - # Ajouter la nouvelle variable au dataframe - dataframe <- dataframe |> - dplyr::mutate(code_prelevement = code_prelevements) - - # Fermer la connexion à la base de données - DBI::dbDisconnect(connexion) - - return(dataframe) -} - diff --git a/R/add_code_prelevement_analyse.R b/R/add_code_prelevement_analyse.R deleted file mode 100644 index 60b3353b154ac8893522ffe5cdd7bbf3eb001698..0000000000000000000000000000000000000000 --- a/R/add_code_prelevement_analyse.R +++ /dev/null @@ -1,69 +0,0 @@ -# WARNING - Generated by {fusen} from dev/flat_create_table_sequence.Rmd: do not edit by hand # nolint: line_length_linter. - -#' Ajouter une variable code_prelevement_analyse au dataframe -#' -#' @description Cette fonction ajoute une nouvelle variable -#' `code_prelevement_analyse` au dataframe en utilisant une séquence -#' PostgreSQL dynamique. La séquence est construite en fonction du -#' paramètre `version` fourni. -#' -#' @param dataframe Un dataframe contenant les données sur lesquelles ajouter -#' la variable `code_prelevement_analyse`. -#' @param version Une chaîne de caractères représentant la version de la -#' séquence à utiliser. -#' -#' @return Un dataframe avec une nouvelle colonne `code_prelevement_analyse` -#' contenant les valeurs de la séquence PostgreSQL. -#' -#' @importFrom DBI dbGetQuery dbDisconnect -#' @importFrom dplyr mutate -#' @importFrom glue glue -#' @importFrom datalibaba connect_to_db -#' @export -#' @examples -#' # Crée un dataframe fictif avec les colonnes nécessaires pour l'exemple -#' dataframe <- data.frame( -#' id_prelevement = 1:5, -#' autre_colonne = sample(letters, 5) -#' ) -#' # Définir une version pour l'exemple -#' version <- "v1" -#' -#' # Utiliser la fonction add_code_prelevement() avec la version souhaitée -#' dataframe <- add_code_prelevement_analyse( -#' dataframe, version) -#' -add_code_prelevement_analyse <- function(dataframe, version) { - # Établir une connexion à la base de données PostgreSQL - connexion <- datalibaba::connect_to_db(db = "si_eau", user = "admin") - - # Créer la séquence correspondant à la table - create_sequence <- glue::glue("CREATE SEQUENCE IF NOT EXISTS nitrates.nitrate_prelevement_analyse_{version}_code_prelevement_analyse_seq - INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1;") - - # Exécuter le script dans la base de données - DBI::dbExecute(connexion, create_sequence) - - # Construire le nom de la séquence - sequence_name <- glue::glue("nitrates.nitrate_prelevement_analyse_{version}_code_prelevement_analyse_seq") - - # Initialiser une liste pour stocker les valeurs de la séquence - code_prelevements_analyses <- c() - - # Pour chaque ligne du dataframe, obtenir une valeur de la séquence - for (i in 1:nrow(dataframe)) { - query <- glue::glue("SELECT nextval(\'{sequence_name}\') AS code_prelevement_analyse") - result <- DBI::dbGetQuery(connexion, query) - code_prelevements_analyses <- c(code_prelevements_analyses, result$code_prelevement_analyse) - } - - # Ajouter la nouvelle variable au dataframe - dataframe <- dataframe |> - dplyr::mutate(code_prelevement_analyse = code_prelevements_analyses) - - # Fermer la connexion à la base de données - DBI::dbDisconnect(connexion) - - return(dataframe) -} - diff --git a/R/create_nitrate_analyse_table.R b/R/create_nitrate_analyse_table.R deleted file mode 100644 index 38edd7cc3a712d2b3b221ebbe98d11b91861c29e..0000000000000000000000000000000000000000 --- a/R/create_nitrate_analyse_table.R +++ /dev/null @@ -1,93 +0,0 @@ -# WARNING - Generated by {fusen} from dev/flat_create_tables_sequences.Rmd: do not edit by hand # nolint: line_length_linter. - -#' Créer une table d'analyses de nitrates -#' -#' @description Cette fonction crée une table dans une base de données PostgreSQL -#' pour stocker les informations relatives aux analyses de nitrates, incluant -#' les contraintes et les séquences nécessaires. -#' -#' @param version String. Version de la table (par exemple, 'v1'). -#' @param last_year Integer. L'année la plus récente incluse dans les données de la table. -#' -#' @return String. Le script SQL utilisé pour créer la table. -#' @export -#' @importFrom datalibaba connect_to_db -create_nitrate_analyse_table <- function(version, last_year) { - # Établir une connexion à la base de données PostgreSQL - connexion <- datalibaba::connect_to_db(db = "si_eau", user = "admin") - - # Génération de la date du jour - date_now <- format(Sys.Date(), "%d/%m/%Y") - - # Création du script avec l'ajout des paramètres - sql_script <- glue::glue(" - CREATE TABLE IF NOT EXISTS nitrates.nitrate_analyse_{version} - ( - code_analyse serial NOT NULL, - code_intervenant character varying(20), - code_prelevement integer, - code_parametre bigint, - code_fraction_analysee integer, - date_analyse date, - resultat_analyse double precision, - code_remarque integer, - limite_detection double precision, - limite_quantification double precision, - CONSTRAINT pk_nitrate_analyse_{version} PRIMARY KEY (code_analyse), - CONSTRAINT fk_n_fraction_analysee FOREIGN KEY (code_fraction_analysee) - REFERENCES sandre.n_fraction_analysee (code_fraction_analysee) MATCH SIMPLE - ON UPDATE CASCADE ON DELETE SET DEFAULT, - -- CONSTRAINT fk_n_intervenant FOREIGN KEY (code_intervenant) - -- REFERENCES qualite_cours_d_eau.n_intervenant (code_intervenant) MATCH SIMPLE - -- ON UPDATE CASCADE ON DELETE SET DEFAULT, - CONSTRAINT fk_n_remarque FOREIGN KEY (code_remarque) - REFERENCES sandre.n_remarque (code_remarque) MATCH SIMPLE - ON UPDATE NO ACTION ON DELETE NO ACTION, - CONSTRAINT fk_parametre FOREIGN KEY (code_parametre) - REFERENCES qualite_cours_d_eau.parametre (code_parametre) MATCH SIMPLE - ON UPDATE CASCADE ON DELETE SET DEFAULT - ) - WITH ( - OIDS=FALSE - ); - - ALTER TABLE nitrates.nitrate_analyse_{version} - OWNER TO adminpsql; - - GRANT ALL ON TABLE nitrates.nitrate_analyse_{version} TO adminpsql; - GRANT ALL ON TABLE nitrates.nitrate_analyse_{version} TO writer_production; - GRANT SELECT ON TABLE nitrates.nitrate_analyse_{version} TO reader_production; - - COMMENT ON TABLE nitrates.nitrate_analyse_{version} - IS 'Table des analyses 2007-{last_year} (version {version} du {date_now})'; - COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.code_analyse IS 'Identifiant de l''analyse'; - COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.code_intervenant IS 'Identifiant du laboratoire ayant effectu\u00e9 l''analyse'; - COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.code_prelevement IS 'Identifiant du pr\u00e9l\u00e8vement'; - COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.code_parametre IS 'Identifiant du param\u00e8tre analys\u00e9'; - COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.code_fraction_analysee IS 'Identifiant de la fraction analys\u00e9e'; - COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.date_analyse IS 'Date de l''analyse'; - COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.resultat_analyse IS 'R\u00e9sultat de l''analyse'; - COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.code_remarque IS 'Code validant la donn\u00e9e'; - COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.limite_detection IS 'Limite de d\u00e9tection'; - COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.limite_quantification IS 'Limite de quantification'; - - CREATE SEQUENCE IF NOT EXISTS nitrates.nitrate_analyse_{version}_code_analyse_seq - INCREMENT 1 - START 1 - MINVALUE 1 - MAXVALUE 2147483647 - CACHE 1; - - ALTER SEQUENCE nitrates.nitrate_analyse_{version}_code_analyse_seq - OWNER TO adminpsql; - ") - - # Exécution du script dans la base de données - DBI::dbExecute(connexion, sql_script) - - # Fermeture de la connexion à la base de données - DBI::dbDisconnect(connexion) - - return(sql_script) -} - diff --git a/R/create_nitrate_prelevement_table.R b/R/create_nitrate_prelevement_table.R deleted file mode 100644 index 0885610015c0dbe011fde6122511f065170cbe2a..0000000000000000000000000000000000000000 --- a/R/create_nitrate_prelevement_table.R +++ /dev/null @@ -1,87 +0,0 @@ -# WARNING - Generated by {fusen} from dev/flat_create_tables_sequences.Rmd: do not edit by hand # nolint: line_length_linter. - -#' Créer une table de prélèvements de nitrates -#' -#' @description Cette fonction crée une table dans une base de données PostgreSQL -#' pour stocker les informations relatives aux prélèvements de nitrates, -#' incluant les contraintes et les séquences nécessaires. -#' -#' @param version String. Version de la table (par exemple, 'v1'). -#' @param last_year Integer. L'année la plus récente incluse dans les données de la table. -#' -#' @return String. Le script SQL utilisé pour créer la table. -#' @export -#' @importFrom datalibaba connect_to_db -create_nitrate_prelevement_table <- function(version, last_year) { - # Établir une connexion à la base de données PostgreSQL - connexion <- datalibaba::connect_to_db(db = "si_eau", user = "admin") - - # Génération de la date du jour - date_now <- format(Sys.Date(), "%d/%m/%Y") - - # Création du script avec l'ajout des paramètres - sql_script <- glue::glue(" - CREATE TABLE IF NOT EXISTS nitrates.nitrate_prelevement_{version} - ( - code_prelevement serial NOT NULL, - code_intervenant character varying(20), - source character varying(10), - code_reseau character varying(254), - code_station character varying(10), - date_prelevement date, - heure_prelevement character varying(8), - code_support int, - nature_eau character varying(3), - id_usage character varying(3), - id_prelevement_motif character varying(2), - commentaire character varying(254), - CONSTRAINT pk_nitrate_prelevement_{version} PRIMARY KEY (code_prelevement), - CONSTRAINT fk_n_support FOREIGN KEY (code_support) - REFERENCES sandre.n_support (code_support) MATCH SIMPLE - ON UPDATE CASCADE ON DELETE SET DEFAULT - ) - WITH ( - OIDS=FALSE - ); - - ALTER TABLE nitrates.nitrate_prelevement_{version} - OWNER TO adminpsql; - - GRANT ALL ON TABLE nitrates.nitrate_prelevement_{version} TO adminpsql; - GRANT ALL ON TABLE nitrates.nitrate_prelevement_{version} TO writer_production; - GRANT SELECT ON TABLE nitrates.nitrate_prelevement_{version} TO reader_production; - - COMMENT ON TABLE nitrates.nitrate_prelevement_{version} - IS 'Table des pr\u00e9l\u00e8vements 2007-{last_year} (version {version} du {date_now})'; - COMMENT ON COLUMN nitrates.nitrate_prelevement_{version}.code_prelevement IS 'Identifiant du pr\u00e9l\u00e8vement'; - COMMENT ON COLUMN nitrates.nitrate_prelevement_{version}.code_intervenant IS 'Identifiant de l''intervenant'; - COMMENT ON COLUMN nitrates.nitrate_prelevement_{version}.source IS 'Source de la donn\u00e9e'; - COMMENT ON COLUMN nitrates.nitrate_prelevement_{version}.code_reseau IS 'Identifiant du r\u00e9seau'; - COMMENT ON COLUMN nitrates.nitrate_prelevement_{version}.code_station IS 'Identifiant de la station'; - COMMENT ON COLUMN nitrates.nitrate_prelevement_{version}.date_prelevement IS 'Date du pr\u00e9l\u00e8vement'; - COMMENT ON COLUMN nitrates.nitrate_prelevement_{version}.heure_prelevement IS 'Heure du pr\u00e9l\u00e8vement'; - COMMENT ON COLUMN nitrates.nitrate_prelevement_{version}.code_support IS 'Code du support de pr\u00e9l\u00e8vement'; - COMMENT ON COLUMN nitrates.nitrate_prelevement_{version}.nature_eau IS 'Nature de l''eau du pr\u00e9l\u00e8vement (ESO/ESU)'; - COMMENT ON COLUMN nitrates.nitrate_prelevement_{version}.id_usage IS 'Code de l''usage du pr\u00e9l\u00e8vement'; - COMMENT ON COLUMN nitrates.nitrate_prelevement_{version}.id_prelevement_motif IS 'Code du motif du pr\u00e9l\u00e8vement'; - COMMENT ON COLUMN nitrates.nitrate_prelevement_{version}.commentaire IS 'Commentaire'; - - CREATE SEQUENCE IF NOT EXISTS nitrates.nitrate_prelevement_{version}_code_prelevement_seq - INCREMENT 1 - START 1 - MINVALUE 1 - MAXVALUE 2147483647 - CACHE 1; - - ALTER SEQUENCE nitrates.nitrate_prelevement_{version}_code_prelevement_seq - OWNER TO adminpsql; - ") - - # Exécution du script dans la base de données - DBI::dbExecute(connexion, sql_script) - - # Fermeture de la connexion à la base de données - DBI::dbDisconnect(connexion) - - return(sql_script) -} diff --git a/R/create_table_nitrate_prelevement_analyse.R b/R/create_table_nitrate_prelevement_analyse.R deleted file mode 100644 index c0a1e3a04b7758477bab75838445eec790f6b659..0000000000000000000000000000000000000000 --- a/R/create_table_nitrate_prelevement_analyse.R +++ /dev/null @@ -1,108 +0,0 @@ -# WARNING - Generated by {fusen} from dev/flat_create_table_sequence.Rmd: do not edit by hand # nolint: line_length_linter. - -#' Créer une table de prélèvements et analyses de nitrates -#' -#' @description Cette fonction crée une table dans une base de données PostgreSQL -#' pour stocker les informations relatives aux prélèvements et analyses de -#' nitrates, incluant les contraintes et les séquences nécessaires. -#' -#' @param version String. Version de la table (par exemple, 'v1'). -#' @param last_year Integer. L'année la plus récente incluse dans les données de la table. -#' -#' @return String. Le script SQL utilisé pour créer la table. -#' @export -#' @importFrom datalibaba connect_to_db -create_table_nitrate_prelevement_analyse <- function(version, last_year) { - # Établir une connexion à la base de données PostgreSQL - connexion <- datalibaba::connect_to_db(db = "si_eau", user = "admin") - - # Génération de la date du jour - date_now <- format(Sys.Date(), "%d/%m/%Y") - - # Liste des requêtes SQL - sql_commands <- c( - glue::glue("CREATE TABLE IF NOT EXISTS nitrates.nitrate_prelevement_analyse_{version} ( - code_prelevement_analyse serial NOT NULL, - code_intervenant character varying(20), - source character varying(10), - code_reseau character varying(254), - code_station character varying(10), - date_prelevement date, - heure_prelevement character varying(8), - code_support integer, - nature_eau character varying(3), - id_usage character varying(3), - id_prelevement_motif character varying(2), - commentaire character varying(254), - code_parametre bigint, - code_fraction_analysee integer, - date_analyse date, - resultat_analyse double precision, - code_remarque integer, - limite_detection double precision, - limite_quantification double precision, - CONSTRAINT pk_nitrate_prelevement_analyse_{version} PRIMARY KEY (code_prelevement_analyse), - CONSTRAINT fk_n_support FOREIGN KEY (code_support) - REFERENCES sandre.n_support (code_support) MATCH SIMPLE - ON UPDATE CASCADE ON DELETE SET DEFAULT, - CONSTRAINT fk_parametre FOREIGN KEY (code_parametre) - REFERENCES qualite_cours_d_eau.parametre (code_parametre) MATCH SIMPLE - ON UPDATE CASCADE ON DELETE SET DEFAULT, - CONSTRAINT fk_n_fraction_analysee FOREIGN KEY (code_fraction_analysee) - REFERENCES sandre.n_fraction_analysee (code_fraction_analysee) MATCH SIMPLE - ON UPDATE CASCADE ON DELETE SET DEFAULT, - CONSTRAINT fk_n_remarque FOREIGN KEY (code_remarque) - REFERENCES sandre.n_remarque (code_remarque) MATCH SIMPLE - ON UPDATE NO ACTION ON DELETE NO ACTION - ) WITH (OIDS=FALSE);"), - - glue::glue("ALTER TABLE nitrates.nitrate_prelevement_analyse_{version} OWNER TO adminpsql;"), - - glue::glue("GRANT ALL ON TABLE nitrates.nitrate_prelevement_analyse_{version} TO adminpsql;"), - glue::glue("GRANT ALL ON TABLE nitrates.nitrate_prelevement_analyse_{version} TO writer_production;"), - glue::glue("GRANT SELECT ON TABLE nitrates.nitrate_prelevement_analyse_{version} TO reader_production;"), - - glue::glue("COMMENT ON TABLE nitrates.nitrate_prelevement_analyse_{version} IS - 'Table des prélèvements et analyses 2007-{last_year} (version {version} du {date_now})';"), - - glue::glue("CREATE SEQUENCE IF NOT EXISTS nitrates.nitrate_prelevement_analyse_{version}_code_prelevement_analyse_seq - INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1;"), - - glue::glue("ALTER SEQUENCE nitrates.nitrate_prelevement_analyse_{version}_code_prelevement_analyse_seq - OWNER TO adminpsql;") - ) - - # Ajout des commentaires sur chaque champ - comments_sql <- c( - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.code_prelevement_analyse IS 'Identifiant du prélèvement';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.code_intervenant IS 'Identifiant de l''intervenant';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.source IS 'Source de la donnée';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.code_reseau IS 'Identifiant du réseau';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.code_station IS 'Identifiant de la station';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.date_prelevement IS 'Date du prélèvement';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.heure_prelevement IS 'Heure du prélèvement';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.code_support IS 'Code du support de prélèvement';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.nature_eau IS 'Nature de l''eau du prélèvement (ESO/ESU)';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.id_usage IS 'Code de l''usage du prélèvement';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.id_prelevement_motif IS 'Code du motif du prélèvement';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.commentaire IS 'Commentaire';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.code_parametre IS 'Identifiant du paramètre analysé';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.code_fraction_analysee IS 'Identifiant de la fraction analysée';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.date_analyse IS 'Date de l''analyse';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.resultat_analyse IS 'Résultat de l''analyse';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.code_remarque IS 'Code validant la donnée';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.limite_detection IS 'Limite de détection';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.limite_quantification IS 'Limite de quantification';") - ) - - # Exécuter chaque commande SQL - for (sql in c(sql_commands, comments_sql)) { - DBI::dbExecute(connexion, sql) - } - - # Fermeture de la connexion à la base de données - DBI::dbDisconnect(connexion) - - # Retourne toutes les commandes exécutées - return(c(sql_commands, comments_sql)) -} diff --git a/dev/flat_create_table_sequence.Rmd b/dev/flat_create_table_sequence.Rmd deleted file mode 100644 index 4515c0159e2195926274001754494c026a4ee90b..0000000000000000000000000000000000000000 --- a/dev/flat_create_table_sequence.Rmd +++ /dev/null @@ -1,259 +0,0 @@ ---- -title: "Cr\u00e9ation des tables et des s\u00e9quences" -output: html_document -editor_options: - chunk_output_type: console ---- - -```{r development, include=FALSE} -library(testthat) -library(yaml) -library(glue) -library(DBI) -library(datalibaba) -``` - -```{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 aux valeurs pour version et last_year -version <- config$version -last_year <- config$last_year -``` - -# Présentation - -Cette page contient les fonctions permettant : -- de créer en base la table `nitrates.nitrate_prelevement_analyse_version`, -- d'incrémenter la séquence correspondante au moment de l'import des données. - -# Création de la table en base - -## Création de la table des prélèvements et analyses et ajout des commentaires - -```{r function-create_table_nitrate_prelevement_analyse, eval=FALSE} -#' Créer une table de prélèvements et analyses de nitrates -#' -#' @description Cette fonction crée une table dans une base de données PostgreSQL -#' pour stocker les informations relatives aux prélèvements et analyses de -#' nitrates, incluant les contraintes et les séquences nécessaires. -#' -#' @param version String. Version de la table (par exemple, 'v1'). -#' @param last_year Integer. L'année la plus récente incluse dans les données de la table. -#' -#' @return String. Le script SQL utilisé pour créer la table. -#' @export -#' @importFrom datalibaba connect_to_db -create_table_nitrate_prelevement_analyse <- function(version, last_year) { - # Établir une connexion à la base de données PostgreSQL - connexion <- datalibaba::connect_to_db(db = "si_eau", user = "admin") - - # Génération de la date du jour - date_now <- format(Sys.Date(), "%d/%m/%Y") - - # Liste des requêtes SQL - sql_commands <- c( - glue::glue("CREATE TABLE IF NOT EXISTS nitrates.nitrate_prelevement_analyse_{version} ( - code_prelevement_analyse serial NOT NULL, - code_intervenant character varying(20), - source character varying(10), - code_reseau character varying(254), - code_station character varying(10), - date_prelevement date, - heure_prelevement character varying(8), - code_support integer, - nature_eau character varying(3), - id_usage character varying(3), - id_prelevement_motif character varying(2), - commentaire character varying(254), - code_parametre bigint, - code_fraction_analysee integer, - date_analyse date, - resultat_analyse double precision, - code_remarque integer, - limite_detection double precision, - limite_quantification double precision, - CONSTRAINT pk_nitrate_prelevement_analyse_{version} PRIMARY KEY (code_prelevement_analyse), - CONSTRAINT fk_n_support FOREIGN KEY (code_support) - REFERENCES sandre.n_support (code_support) MATCH SIMPLE - ON UPDATE CASCADE ON DELETE SET DEFAULT, - CONSTRAINT fk_parametre FOREIGN KEY (code_parametre) - REFERENCES qualite_cours_d_eau.parametre (code_parametre) MATCH SIMPLE - ON UPDATE CASCADE ON DELETE SET DEFAULT, - CONSTRAINT fk_n_fraction_analysee FOREIGN KEY (code_fraction_analysee) - REFERENCES sandre.n_fraction_analysee (code_fraction_analysee) MATCH SIMPLE - ON UPDATE CASCADE ON DELETE SET DEFAULT, - CONSTRAINT fk_n_remarque FOREIGN KEY (code_remarque) - REFERENCES sandre.n_remarque (code_remarque) MATCH SIMPLE - ON UPDATE NO ACTION ON DELETE NO ACTION - ) WITH (OIDS=FALSE);"), - - glue::glue("ALTER TABLE nitrates.nitrate_prelevement_analyse_{version} OWNER TO adminpsql;"), - - glue::glue("GRANT ALL ON TABLE nitrates.nitrate_prelevement_analyse_{version} TO adminpsql;"), - glue::glue("GRANT ALL ON TABLE nitrates.nitrate_prelevement_analyse_{version} TO writer_production;"), - glue::glue("GRANT SELECT ON TABLE nitrates.nitrate_prelevement_analyse_{version} TO reader_production;"), - - glue::glue("COMMENT ON TABLE nitrates.nitrate_prelevement_analyse_{version} IS - 'Table des prélèvements et analyses 2007-{last_year} (version {version} du {date_now})';"), - - glue::glue("CREATE SEQUENCE IF NOT EXISTS nitrates.nitrate_prelevement_analyse_{version}_code_prelevement_analyse_seq - INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1;"), - - glue::glue("ALTER SEQUENCE nitrates.nitrate_prelevement_analyse_{version}_code_prelevement_analyse_seq - OWNER TO adminpsql;") - ) - - # Ajout des commentaires sur chaque champ - comments_sql <- c( - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.code_prelevement_analyse IS 'Identifiant du prélèvement';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.code_intervenant IS 'Identifiant de l''intervenant';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.source IS 'Source de la donnée';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.code_reseau IS 'Identifiant du réseau';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.code_station IS 'Identifiant de la station';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.date_prelevement IS 'Date du prélèvement';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.heure_prelevement IS 'Heure du prélèvement';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.code_support IS 'Code du support de prélèvement';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.nature_eau IS 'Nature de l''eau du prélèvement (ESO/ESU)';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.id_usage IS 'Code de l''usage du prélèvement';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.id_prelevement_motif IS 'Code du motif du prélèvement';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.commentaire IS 'Commentaire';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.code_parametre IS 'Identifiant du paramètre analysé';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.code_fraction_analysee IS 'Identifiant de la fraction analysée';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.date_analyse IS 'Date de l''analyse';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.resultat_analyse IS 'Résultat de l''analyse';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.code_remarque IS 'Code validant la donnée';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.limite_detection IS 'Limite de détection';"), - glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.limite_quantification IS 'Limite de quantification';") - ) - - # Exécuter chaque commande SQL - for (sql in c(sql_commands, comments_sql)) { - DBI::dbExecute(connexion, sql) - } - - # Fermeture de la connexion à la base de données - DBI::dbDisconnect(connexion) - - # Retourne toutes les commandes exécutées - return(c(sql_commands, comments_sql)) -} -``` - -Création de la table `nitrates.nitrate_prelevement_version` : -```{r create_create_table_nitrate_prelevement_analyse, eval=FALSE} -# Création du script SQL avec la version choisie -sql <- create_table_nitrate_prelevement_analyse(version, last_year) -``` - -# Incrémentation de la séquence - -## Incrémentation de la table des prélèvements et des analyses - -```{r function-add_code_prelevement_analyse, eval=FALSE} -#' Ajouter une variable code_prelevement_analyse au dataframe -#' -#' @description Cette fonction ajoute une nouvelle variable -#' `code_prelevement_analyse` au dataframe en utilisant une séquence -#' PostgreSQL dynamique. La séquence est construite en fonction du -#' paramètre `version` fourni. -#' -#' @param dataframe Un dataframe contenant les données sur lesquelles ajouter -#' la variable `code_prelevement_analyse`. -#' @param version Une chaîne de caractères représentant la version de la -#' séquence à utiliser. -#' -#' @return Un dataframe avec une nouvelle colonne `code_prelevement_analyse` -#' contenant les valeurs de la séquence PostgreSQL. -#' -#' @importFrom DBI dbGetQuery dbDisconnect -#' @importFrom dplyr mutate -#' @importFrom glue glue -#' @importFrom datalibaba connect_to_db -#' @export -add_code_prelevement_analyse <- function(dataframe, version) { - # Établir une connexion à la base de données PostgreSQL - connexion <- datalibaba::connect_to_db(db = "si_eau", user = "admin") - - # Créer la séquence correspondant à la table - create_sequence <- glue::glue("CREATE SEQUENCE IF NOT EXISTS nitrates.nitrate_prelevement_analyse_{version}_code_prelevement_analyse_seq - INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1;") - - # Exécuter le script dans la base de données - DBI::dbExecute(connexion, create_sequence) - - # Construire le nom de la séquence - sequence_name <- glue::glue("nitrates.nitrate_prelevement_analyse_{version}_code_prelevement_analyse_seq") - - # Initialiser une liste pour stocker les valeurs de la séquence - code_prelevements_analyses <- c() - - # Pour chaque ligne du dataframe, obtenir une valeur de la séquence - for (i in 1:nrow(dataframe)) { - query <- glue::glue("SELECT nextval(\'{sequence_name}\') AS code_prelevement_analyse") - result <- DBI::dbGetQuery(connexion, query) - code_prelevements_analyses <- c(code_prelevements_analyses, result$code_prelevement_analyse) - } - - # Ajouter la nouvelle variable au dataframe - dataframe <- dataframe |> - dplyr::mutate(code_prelevement_analyse = code_prelevements_analyses) - - # Fermer la connexion à la base de données - DBI::dbDisconnect(connexion) - - return(dataframe) -} - -``` - -La fonction est utilisée au moment d'importer les données des différentes -sources dans la table `nitrates.nitrate_prelevement_analyse_version` : -```{r example_add_code_prelevement_analyse, eval=FALSE} -# Crée un dataframe fictif avec les colonnes nécessaires pour l'exemple -dataframe <- data.frame( - id_prelevement = 1:5, - autre_colonne = sample(letters, 5) -) -# Définir une version pour l'exemple -version <- "v1" - -# Utiliser la fonction add_code_prelevement() avec la version souhaitée -dataframe <- add_code_prelevement_analyse( - dataframe, version) - -``` - -```{r development-skeleton-dir, eval=FALSE} -# Créer de l'arborescence et des fichiers du template -usethis::use_rmarkdown_template( - template_name = "Cr\u00e9ation de la table et de la s\u00e9quence", - template_dir = "creation-de-la-table-et-de-la-sequence", - template_description = "Cr\u00e9ation de la table et de la s\u00e9quence", - template_create_dir = TRUE -) -``` - -```{r development-skeleton-copy, eval=FALSE} -# Définir les chemins source et destination -source_file <- "dev/flat_create_tables_sequences.Rmd" -destination_dir <- "inst/rmarkdown/templates/creation-de-la-table-et-de-la-sequence/skeleton" -destination_file <- file.path(destination_dir, "skeleton.Rmd") - -# Copier et renommer le fichier -file.copy(from = source_file, to = destination_file, overwrite = TRUE) -message("File copied and renamed successfully.") - -``` - -```{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_create_table_sequence.Rmd", vignette_name = "creation-de-la-table-et-de-la-sequence") -``` diff --git a/dev/flat_create_tables_sequences.Rmd b/dev/flat_create_tables_sequences.Rmd deleted file mode 100644 index 92b94a3bbcb51070cc434af8c0fba3797f087751..0000000000000000000000000000000000000000 --- a/dev/flat_create_tables_sequences.Rmd +++ /dev/null @@ -1,416 +0,0 @@ ---- -title: "Cr\u00e9ation des tables et des s\u00e9quences" -output: html_document -editor_options: - chunk_output_type: console ---- - -```{r development, include=FALSE} -library(testthat) -library(yaml) -library(glue) -library(DBI) -library(datalibaba) -``` - -```{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 aux valeurs pour version et last_year -version <- config$version -last_year <- config$last_year -``` - -# Présentation - -Cette page contient les fonctions permettant : -- de créer en base les tables `nitrates.nitrate_prelevement_version` et `nitrates.nitrate_analyse_version`, -- d'incrémenter les séquences correspondantes au moment de l'import des données. - -# Création des tables en base - -## Création de la table des prélèvements et ajout des commentaires - -```{r function-create_nitrate_prelevement_table, eval=FALSE} -#' Créer une table de prélèvements de nitrates -#' -#' @description Cette fonction crée une table dans une base de données PostgreSQL -#' pour stocker les informations relatives aux prélèvements de nitrates, -#' incluant les contraintes et les séquences nécessaires. -#' -#' @param version String. Version de la table (par exemple, 'v1'). -#' @param last_year Integer. L'année la plus récente incluse dans les données de la table. -#' -#' @return String. Le script SQL utilisé pour créer la table. -#' @export -#' @importFrom datalibaba connect_to_db -create_nitrate_prelevement_table <- function(version, last_year) { - # Établir une connexion à la base de données PostgreSQL - connexion <- datalibaba::connect_to_db(db = "si_eau", user = "admin") - - # Génération de la date du jour - date_now <- format(Sys.Date(), "%d/%m/%Y") - - # Création du script avec l'ajout des paramètres - sql_script <- glue::glue(" - CREATE TABLE IF NOT EXISTS nitrates.nitrate_prelevement_{version} - ( - code_prelevement serial NOT NULL, - code_intervenant character varying(20), - source character varying(10), - code_reseau character varying(254), - code_station character varying(10), - date_prelevement date, - heure_prelevement character varying(8), - code_support int, - nature_eau character varying(3), - id_usage character varying(3), - id_prelevement_motif character varying(2), - commentaire character varying(254), - CONSTRAINT pk_nitrate_prelevement_{version} PRIMARY KEY (code_prelevement), - CONSTRAINT fk_n_support FOREIGN KEY (code_support) - REFERENCES sandre.n_support (code_support) MATCH SIMPLE - ON UPDATE CASCADE ON DELETE SET DEFAULT - ) - WITH ( - OIDS=FALSE - ); - - ALTER TABLE nitrates.nitrate_prelevement_{version} - OWNER TO adminpsql; - - GRANT ALL ON TABLE nitrates.nitrate_prelevement_{version} TO adminpsql; - GRANT ALL ON TABLE nitrates.nitrate_prelevement_{version} TO writer_production; - GRANT SELECT ON TABLE nitrates.nitrate_prelevement_{version} TO reader_production; - - COMMENT ON TABLE nitrates.nitrate_prelevement_{version} - IS 'Table des pr\u00e9l\u00e8vements 2007-{last_year} (version {version} du {date_now})'; - COMMENT ON COLUMN nitrates.nitrate_prelevement_{version}.code_prelevement IS 'Identifiant du pr\u00e9l\u00e8vement'; - COMMENT ON COLUMN nitrates.nitrate_prelevement_{version}.code_intervenant IS 'Identifiant de l''intervenant'; - COMMENT ON COLUMN nitrates.nitrate_prelevement_{version}.source IS 'Source de la donn\u00e9e'; - COMMENT ON COLUMN nitrates.nitrate_prelevement_{version}.code_reseau IS 'Identifiant du r\u00e9seau'; - COMMENT ON COLUMN nitrates.nitrate_prelevement_{version}.code_station IS 'Identifiant de la station'; - COMMENT ON COLUMN nitrates.nitrate_prelevement_{version}.date_prelevement IS 'Date du pr\u00e9l\u00e8vement'; - COMMENT ON COLUMN nitrates.nitrate_prelevement_{version}.heure_prelevement IS 'Heure du pr\u00e9l\u00e8vement'; - COMMENT ON COLUMN nitrates.nitrate_prelevement_{version}.code_support IS 'Code du support de pr\u00e9l\u00e8vement'; - COMMENT ON COLUMN nitrates.nitrate_prelevement_{version}.nature_eau IS 'Nature de l''eau du pr\u00e9l\u00e8vement (ESO/ESU)'; - COMMENT ON COLUMN nitrates.nitrate_prelevement_{version}.id_usage IS 'Code de l''usage du pr\u00e9l\u00e8vement'; - COMMENT ON COLUMN nitrates.nitrate_prelevement_{version}.id_prelevement_motif IS 'Code du motif du pr\u00e9l\u00e8vement'; - COMMENT ON COLUMN nitrates.nitrate_prelevement_{version}.commentaire IS 'Commentaire'; - - CREATE SEQUENCE IF NOT EXISTS nitrates.nitrate_prelevement_{version}_code_prelevement_seq - INCREMENT 1 - START 1 - MINVALUE 1 - MAXVALUE 2147483647 - CACHE 1; - - ALTER SEQUENCE nitrates.nitrate_prelevement_{version}_code_prelevement_seq - OWNER TO adminpsql; - ") - - # Exécution du script dans la base de données - DBI::dbExecute(connexion, sql_script) - - # Fermeture de la connexion à la base de données - DBI::dbDisconnect(connexion) - - return(sql_script) -} -``` - -Création de la table `nitrates.nitrate_prelevement_version` : -```{r create_nitrate_prelevement_table_version, eval=FALSE} -# Création du script SQL avec la version choisie -sql <- create_nitrate_prelevement_table(version, last_year) -``` - -## Création de la table des analyses et ajout des commentaires - -```{r function-create_nitrate_analyse_table, eval=FALSE} -#' Créer une table d'analyses de nitrates -#' -#' @description Cette fonction crée une table dans une base de données PostgreSQL -#' pour stocker les informations relatives aux analyses de nitrates, incluant -#' les contraintes et les séquences nécessaires. -#' -#' @param version String. Version de la table (par exemple, 'v1'). -#' @param last_year Integer. L'année la plus récente incluse dans les données de la table. -#' -#' @return String. Le script SQL utilisé pour créer la table. -#' @export -#' @importFrom datalibaba connect_to_db -create_nitrate_analyse_table <- function(version, last_year) { - # Établir une connexion à la base de données PostgreSQL - connexion <- datalibaba::connect_to_db(db = "si_eau", user = "admin") - - # Génération de la date du jour - date_now <- format(Sys.Date(), "%d/%m/%Y") - - # Création du script avec l'ajout des paramètres - sql_script <- glue::glue(" - CREATE TABLE IF NOT EXISTS nitrates.nitrate_analyse_{version} - ( - code_analyse serial NOT NULL, - code_intervenant character varying(20), - code_prelevement integer, - code_parametre bigint, - code_fraction_analysee integer, - date_analyse date, - resultat_analyse double precision, - code_remarque integer, - limite_detection double precision, - limite_quantification double precision, - CONSTRAINT pk_nitrate_analyse_{version} PRIMARY KEY (code_analyse), - CONSTRAINT fk_n_fraction_analysee FOREIGN KEY (code_fraction_analysee) - REFERENCES sandre.n_fraction_analysee (code_fraction_analysee) MATCH SIMPLE - ON UPDATE CASCADE ON DELETE SET DEFAULT, - -- CONSTRAINT fk_n_intervenant FOREIGN KEY (code_intervenant) - -- REFERENCES qualite_cours_d_eau.n_intervenant (code_intervenant) MATCH SIMPLE - -- ON UPDATE CASCADE ON DELETE SET DEFAULT, - CONSTRAINT fk_n_remarque FOREIGN KEY (code_remarque) - REFERENCES sandre.n_remarque (code_remarque) MATCH SIMPLE - ON UPDATE NO ACTION ON DELETE NO ACTION, - CONSTRAINT fk_parametre FOREIGN KEY (code_parametre) - REFERENCES qualite_cours_d_eau.parametre (code_parametre) MATCH SIMPLE - ON UPDATE CASCADE ON DELETE SET DEFAULT - ) - WITH ( - OIDS=FALSE - ); - - ALTER TABLE nitrates.nitrate_analyse_{version} - OWNER TO adminpsql; - - GRANT ALL ON TABLE nitrates.nitrate_analyse_{version} TO adminpsql; - GRANT ALL ON TABLE nitrates.nitrate_analyse_{version} TO writer_production; - GRANT SELECT ON TABLE nitrates.nitrate_analyse_{version} TO reader_production; - - COMMENT ON TABLE nitrates.nitrate_analyse_{version} - IS 'Table des analyses 2007-{last_year} (version {version} du {date_now})'; - COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.code_analyse IS 'Identifiant de l''analyse'; - COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.code_intervenant IS 'Identifiant du laboratoire ayant effectu\u00e9 l''analyse'; - COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.code_prelevement IS 'Identifiant du pr\u00e9l\u00e8vement'; - COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.code_parametre IS 'Identifiant du param\u00e8tre analys\u00e9'; - COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.code_fraction_analysee IS 'Identifiant de la fraction analys\u00e9e'; - COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.date_analyse IS 'Date de l''analyse'; - COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.resultat_analyse IS 'R\u00e9sultat de l''analyse'; - COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.code_remarque IS 'Code validant la donn\u00e9e'; - COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.limite_detection IS 'Limite de d\u00e9tection'; - COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.limite_quantification IS 'Limite de quantification'; - - CREATE SEQUENCE IF NOT EXISTS nitrates.nitrate_analyse_{version}_code_analyse_seq - INCREMENT 1 - START 1 - MINVALUE 1 - MAXVALUE 2147483647 - CACHE 1; - - ALTER SEQUENCE nitrates.nitrate_analyse_{version}_code_analyse_seq - OWNER TO adminpsql; - ") - - # Exécution du script dans la base de données - DBI::dbExecute(connexion, sql_script) - - # Fermeture de la connexion à la base de données - DBI::dbDisconnect(connexion) - - return(sql_script) -} - -``` - -Création de la table `nitrates.nitrate_analyse_version` : -```{r create_nitrate_analyse_table, eval=FALSE} -# Création du script SQL avec la version choisie -sql <- create_nitrate_analyse_table(version, last_year) - -``` - -# Incrémentation des séquences - -## Incrémentation de la table des prélèvements - -```{r function-add_code_prelevement, eval=FALSE} -#' Ajouter une variable code_prelevement au dataframe -#' -#' @description Cette fonction ajoute une nouvelle variable `code_prelevement` -#' au dataframe en utilisant une séquence PostgreSQL dynamique. La séquence est -#' construite en fonction du paramètre `version` fourni. -#' -#' @param dataframe Un dataframe contenant les données sur lesquelles ajouter -#' la variable `code_prelevement`. -#' @param version Une chaîne de caractères représentant la version de la -#' séquence à utiliser. -#' -#' @return Un dataframe avec une nouvelle colonne `code_prelevement` contenant -#' les valeurs de la séquence PostgreSQL. -#' -#' @importFrom DBI dbGetQuery dbDisconnect -#' @importFrom dplyr mutate -#' @importFrom glue glue -#' @importFrom datalibaba connect_to_db -#' @export -add_code_prelevement <- function(dataframe, version) { - # Établir une connexion à la base de données PostgreSQL - connexion <- datalibaba::connect_to_db(db = "si_eau", user = "admin") - - # Créer la séquence correspondant à la table - create_sequence <- glue::glue("CREATE SEQUENCE IF NOT EXISTS nitrates.nitrate_prelevement_{version}_code_prelevement_seq - INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1;") - - # Exécuter le script dans la base de données - DBI::dbExecute(connexion, create_sequence) - - # Construire le nom de la séquence - sequence_name <- glue::glue("nitrates.nitrate_prelevement_{version}_code_prelevement_seq") - - # Initialiser une liste pour stocker les valeurs de la séquence - code_prelevements <- c() - - # Pour chaque ligne du dataframe, obtenir une valeur de la séquence - for (i in 1:nrow(dataframe)) { - query <- glue::glue("SELECT nextval(\'{sequence_name}\') AS code_prelevement") - result <- DBI::dbGetQuery(connexion, query) - code_prelevements <- c(code_prelevements, result$code_prelevement) - } - - # Ajouter la nouvelle variable au dataframe - dataframe <- dataframe |> - dplyr::mutate(code_prelevement = code_prelevements) - - # Fermer la connexion à la base de données - DBI::dbDisconnect(connexion) - - return(dataframe) -} - -``` - -La fonction est utilisée au moment d'importer les données des différentes -sources dans la table `nitrates.nitrate_prelevement_version` : -```{r example_add_code_prelevement, eval=FALSE} -# Crée un dataframe fictif avec les colonnes nécessaires pour l'exemple -dataframe <- data.frame( - id_prelevement = 1:5, - autre_colonne = sample(letters, 5) -) -# Définir une version pour l'exemple -version <- "v1" - -# Utiliser la fonction add_code_prelevement() avec la version souhaitée -dataframe <- add_code_prelevement( - dataframe, version) - -``` - -## Incrémentation de la table des analyses - -```{r function-add_code_analyse, eval=FALSE} -#' Ajouter une variable code_analyse au dataframe -#' -#' @description Cette fonction ajoute une nouvelle variable `code_analyse` -#' au dataframe en utilisant une séquence PostgreSQL dynamique. La séquence est -#' construite en fonction du paramètre `version` fourni. -#' -#' @param dataframe Un dataframe contenant les données sur lesquelles ajouter -#' la variable `code_analyse`. -#' @param version Une chaîne de caractères représentant la version de la -#' séquence à utiliser. -#' -#' @return Un dataframe avec une nouvelle colonne `code_analyse` contenant -#' les valeurs de la séquence PostgreSQL. -#' -#' @importFrom DBI dbGetQuery dbDisconnect -#' @importFrom dplyr mutate -#' @importFrom glue glue -#' @importFrom datalibaba connect_to_db -#' @export -add_code_analyse <- function(dataframe, version) { - # Établir une connexion à la base de données PostgreSQL - connexion <- datalibaba::connect_to_db(db = "si_eau", user = "admin") - - # Créer la séquence correspondant à la table - create_sequence <- glue::glue("CREATE SEQUENCE IF NOT EXISTS nitrates.nitrate_analyse_{version}_code_analyse_seq - INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1;") - - # Exécuter le script dans la base de données - DBI::dbExecute(connexion, create_sequence) - - # Construire le nom de la séquence - sequence_name <- glue::glue("nitrates.nitrate_analyse_{version}_code_analyse_seq") - - # Initialiser une liste pour stocker les valeurs de la séquence - code_analyses <- c() - - # Pour chaque ligne du dataframe, obtenir une valeur de la séquence - for (i in 1:nrow(dataframe)) { - query <- glue::glue("SELECT nextval(\'{sequence_name}\') AS code_analyse") - result <- DBI::dbGetQuery(connexion, query) - code_analyses <- c(code_analyses, result$code_analyse) - } - - # Ajouter la nouvelle variable au dataframe - dataframe <- dataframe |> - dplyr::mutate(code_analyse = code_analyses) - - # Fermer la connexion à la base de données - DBI::dbDisconnect(connexion) - - return(dataframe) -} - -``` - -La fonction est utilisée au moment d'importer les données des différentes -sources dans la table `nitrates.nitrate_analyse_version` : -On ajoute un identifiant unique s'appuyant sur une séquence stockée en base : -```{r example_add_code_analyse, eval=FALSE} -# Crée un dataframe fictif avec les colonnes nécessaires pour l'exemple -dataframe <- data.frame( - id_prelevement = 1:5, - autre_colonne = sample(letters, 5) -) -# Définir une version pour l'exemple -version <- "v1" - -# Utiliser la fonction add_code_analyse() avec la version souhaitée -dataframe <- add_code_analyse( - dataframe, version) - -``` - -```{r development-skeleton-dir, eval=FALSE} -# Créer de l'arborescence et des fichiers du template -usethis::use_rmarkdown_template( - template_name = "Cr\u00e9ation des tables et des s\u00e9quences", - template_dir = "creation-des-tables-et-des-sequences", - template_description = "Cr\u00e9ation des tables et des s\u00e9quences", - template_create_dir = TRUE -) -``` - -```{r development-skeleton-copy, eval=FALSE} -# Définir les chemins source et destination -source_file <- "dev/flat_create_tables_sequences.Rmd" -destination_dir <- "inst/rmarkdown/templates/creation-des-tables-et-des-sequences/skeleton" -destination_file <- file.path(destination_dir, "skeleton.Rmd") - -# Copier et renommer le fichier -file.copy(from = source_file, to = destination_file, overwrite = TRUE) -message("File copied and renamed successfully.") - -``` - -```{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_create_tables_sequences.Rmd", vignette_name = "Cr\u00e9ation des tables et des s\u00e9quences") -``` diff --git a/dev/flat_insert_ars_into_analyse.Rmd b/dev/flat_insert_ars_into_analyse.Rmd deleted file mode 100644 index 82f341425596057a3665d0c58b20c0d87f867f28..0000000000000000000000000000000000000000 --- a/dev/flat_insert_ars_into_analyse.Rmd +++ /dev/null @@ -1,257 +0,0 @@ ---- -title: "Insertion des analyses ARS" -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 de l'ARS dans la table des analyses - -## Chargement des données ARS brutes - -La table des données brutes Nitrates de l'ARS est chargée : -```{r load-nitrate_data_analyse_ars, eval=FALSE} -# Charger la table nitrates.nitrate_data_analyse_ars -nitrate_data_analyse_ars <- datalibaba::importer_data( - table = "nitrate_data_analyse_ars", - schema = "nitrates", - db = "si_eau", - user = "admin" -) - -``` - -## Consolidation des données ARS - -On supprime les enregistrements correspondants à des totaux : -```{r filter-param_nom_ars, eval=FALSE} -# Supprimer les lignes ne correspondant pas à une analyse -nitrate_analyse_ars <- nitrate_data_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=FALSE} -# Remplacer chaînes de caractère dans la colonne ana_param_alpha_resultat -nitrate_analyse_ars <- nitrate_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=FALSE} -# Remplacer les valeurs dans les colonnes ana_param_alpha_resultat et param_code -nitrate_analyse_ars <- nitrate_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=FALSE} -# Ajouter les colonnes code_remarque, resultat_analyse et limite_quantification -nitrate_analyse_ars <- nitrate_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 sélectionne les champs utiles à la table des analyses : -```{r select-variables-ars, eval=FALSE} -# Sélectionner les variables -nitrate_analyse_ars <- nitrate_analyse_ars |> - dplyr::select(code_station = ins_code_national, - code_intervenant = geo_dept_ddass_gest_code, - date_prelevement = plv_date, - nom_parametre = param_nom, - date_analyse = anl_date_fin_analyse, - resultat_analyse, - code_parametre = param_code, - code_remarque, - limite_quantification) - -``` - -On supprime les caractères < et > dans les variables resultat_analyse et limite_quantification : -```{r replace-inferior_superior, eval=FALSE} -# Remplacer les valeurs dans les colonnes resultat_analyse et limite_quantification -nitrate_analyse_ars <- nitrate_analyse_ars |> - dplyr::mutate(resultat_analyse = - stringr::str_replace(resultat_analyse, ">", ""), - limite_quantification = - stringr::str_replace(limite_quantification, "<", "")) - -``` - -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_analyse_ars <- nitrate_analyse_ars |> - dplyr::mutate(resultat_analyse = as.numeric(resultat_analyse), - limite_quantification = as.numeric(limite_quantification), - code_parametre = as.integer(code_parametre)) - -``` - -## Jointure avec la table des prélèvements créée auparavant - -La table des prélèvements est chargée : -```{r load-nitrate_prelevement, eval=FALSE} -# Charger la table nitrates.nitrate_prelevement_version -nitrate_prelevement <- datalibaba::importer_data( - table = glue::glue("nitrate_prelevement_", version), - schema = "nitrates", - db = "si_eau", - user = "admin" -) - -``` - -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-ars, eval=FALSE} -# Dédoublonner les lignes sur les colonnes code_station et date_prelevement -nitrate_analyse_ars <- nitrate_analyse_ars |> - dplyr::distinct(code_station, date_prelevement, .keep_all = TRUE) - -``` - -On joint le dataframe des prélèvements pour récupérer la variable code_prelevement : -```{r join-prelvement_ars, eval=FALSE} -# Joindre les dataframes nitrate_analyse_ars et nitrate_prelevement -nitrate_analyse_ars <- nitrate_analyse_ars |> - dplyr::left_join(nitrate_prelevement |> - dplyr::select(code_station, date_prelevement, code_prelevement), - by = c("code_station" = "code_station", "date_prelevement" = "date_prelevement")) - -``` - -On ajoute un identifiant unique s'appuyant sur une séquence stockée en base : -```{r add_code_analyse_ars, eval=FALSE} -# Utiliser la fonction add_code_analyse_ars avec la version souhaitée -nitrate_analyse_ars <- add_code_analyse( - nitrate_analyse_ars, version) - -# Afficher le dataframe pour vérifier les modifications -print(nitrate_analyse_ars) - -``` - -## Préparation pour l'insertion en base - -On corrige l'ordre des champs les champs utiles à la table des analyses : -```{r select-variables-ars-final, eval=FALSE} -# Sélectionner les variables dans l'ordre des champs de la table à alimenter -nitrate_analyse_ars <- nitrate_analyse_ars |> - dplyr::select(code_analyse, - code_intervenant, - code_prelevement, - code_parametre, - code_station, - date_analyse, - resultat_analyse, - code_remarque, - limite_quantification) - -``` - -On charge les données consolidées dans un table dédiée : -```{r insert_into_nitrate_prelevement_version, eval=FALSE} -# Charger les données dans une nouvelle table en base -datalibaba::poster_data(data = nitrate_analyse_ars, - table = glue::glue("nitrate_analyse_ars_", version), - schema = "nitrates", - db = "si_eau", - overwrite = TRUE, - pk = "code_analyse", - user = "admin") -``` - -## Insertion des analyses ARS 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_analyse_ars_", version), - source_schema = "nitrates", - target_table = glue::glue("nitrate_analyse_", version), - target_schema = "nitrates", - role = "admin") - -``` - -```{r development-skeleton-dir, eval=FALSE} -# Créer initialement l'arborescence et des fichiers du template -usethis::use_rmarkdown_template( - template_name = "Insertion des analyses ARS", - template_dir = "insertion-des-analyses-ars", - template_description = "Insertion des analyses ARS", - template_create_dir = TRUE -) -``` - -```{r development-skeleton-copy, eval=FALSE} -# Définir les chemins source et destination -source_file <- "dev/flat_insert_ars_into_analyse.Rmd" -destination_dir <- "inst/rmarkdown/templates/insertion-des-analyses-ars/skeleton" -destination_file <- file.path(destination_dir, "skeleton.Rmd") - -# Copier et renommer le fichier -file.copy(from = source_file, to = destination_file, overwrite = TRUE) -message("File copied and renamed successfully.") - -``` - -```{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_ars_into_analyse.Rmd", vignette_name = "Insertion des analyses ARS") -``` - diff --git a/dev/flat_insert_ars_into_prelevement.Rmd b/dev/flat_insert_ars_into_prelevement.Rmd deleted file mode 100644 index 8136fdbc6def6f4f7da124cd0560fc056a26f68f..0000000000000000000000000000000000000000 --- a/dev/flat_insert_ars_into_prelevement.Rmd +++ /dev/null @@ -1,188 +0,0 @@ ---- -title: "Insertion des pr\u00e9l\u00e8vements ARS" -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 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=FALSE} -nitrate_data_analyse_ars <- datalibaba::importer_data( - table = "nitrate_data_analyse_ars", - schema = "nitrates", - db = "si_eau", - user = "admin" -) -``` - -La table des stations ESO 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=FALSE} -station_eso <- datalibaba::importer_data( - table = "station_eso", - 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_ars, eval=FALSE} -# Ajouter les variables source et code_support -nitrate_data_analyse_ars <- nitrate_data_analyse_ars |> - dplyr::mutate( - source = "ARS", - code_support = 3 - ) -``` - -On remplace "h" par ":" dans la variable `plv_heure` : -```{r replace-in_plv_heure, eval=FALSE} -# Remplacer "h" par ":" dans la colonne plv_heure -nitrate_data_analyse_ars <- nitrate_data_analyse_ars |> - dplyr::mutate(plv_heure = stringr::str_replace_all(plv_heure, "h", ":")) -``` - -On sélectionne les champs utiles à la table des prélèvements : -```{r select-variables-ars, eval=FALSE} -# Sélectionner les variables -nitrate_data_analyse_ars <- nitrate_data_analyse_ars |> - dplyr::select(code_intervenant = geo_dept_ddass_gest_code, - source, - 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) - -``` - -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-ars, eval=FALSE} -# Dédoublonner les lignes sur les colonnes code_station et date_prelevement -nitrate_data_analyse_ars <- nitrate_data_analyse_ars |> - dplyr::distinct(code_station, date_prelevement, .keep_all = TRUE) -``` - -On met à jour le champs code_station avec le code BSS : -```{r update_code_bss, eval=FALSE} -nitrate_data_analyse_ars <- nitrate_data_analyse_ars |> - dplyr::left_join(station_eso, by = c("code_station" = "code_sise_eaux"), suffix = c("_ars", "_station_eso")) - -nitrate_data_analyse_ars <- nitrate_data_analyse_ars |> - dplyr::mutate(code_station = ifelse(!is.na(code_station_station_eso), code_station_station_eso, code_station)) |> - dplyr::select(-code_station_station_eso, -source_station_eso) -``` - -On ne conserve que les champs utiles à la table des prélèvements : -```{r select-variables-ars_v2, eval=FALSE} -nitrate_data_analyse_ars <- nitrate_data_analyse_ars |> - dplyr::select(code_intervenant, - source = source_ars, - code_station, - date_prelevement, - heure_prelevement, - code_support, - nature_eau, - id_usage, - id_prelevement_motif) -``` - -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() avec la version souhaitée -nitrate_data_analyse_ars <- add_code_prelevement( - nitrate_data_analyse_ars, version) - -# Afficher le dataframe pour vérifier les modifications -print(nitrate_data_analyse_ars) - -``` - -On charge les données consolidées dans un table dédiée : -```{r insert-into_nitrate_prelevement_v0_16, eval=FALSE} -# Charger les données dans une nouvelle table en base -datalibaba::poster_data(data = nitrate_data_analyse_ars, - table = glue::glue("nitrate_prelevement_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_ars_", version), - source_schema = "nitrates", - target_table = glue::glue("nitrate_prelevement_", version), - target_schema = "nitrates", - role = "admin") - -``` - -```{r development-skeleton-dir, eval=FALSE} -# Créer initialement l'arborescence et des fichiers du template -usethis::use_rmarkdown_template( - template_name = "Insertion des pr\u00e9l\u00e8vements ARS", - template_dir = "insertion-des-prelevements-ars", - template_description = "Insertion des pr\u00e9l\u00e8vements ARS", - template_create_dir = TRUE -) - -``` - -```{r development-skeleton-copy, eval=FALSE} -# Définir les chemins source et destination -source_file <- "dev/flat_insert_ars_into_prelevement.Rmd" -destination_dir <- "inst/rmarkdown/templates/insertion-des-prelevements-ars/skeleton" -destination_file <- file.path(destination_dir, "skeleton.Rmd") - -# Copier et renommer le fichier -file.copy(from = source_file, to = destination_file, overwrite = TRUE) -message("File copied and renamed successfully.") - -``` - -```{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_ars_into_prelevement.Rmd", vignette_name = "Insertion des pr\u00e9l\u00e8vements ARS") -``` - diff --git a/dev/flat_insert_hubeau_eso_into_analyse.Rmd b/dev/flat_insert_hubeau_eso_into_analyse.Rmd deleted file mode 100644 index 155ee67b0d0ca6bb0d76bcc49546e5b802e3a09c..0000000000000000000000000000000000000000 --- a/dev/flat_insert_hubeau_eso_into_analyse.Rmd +++ /dev/null @@ -1,227 +0,0 @@ ---- -title: "Insertion des 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 analyses Hub'eau ESO dans la table des analyses - -## Chargement des analyses 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_analyses <- 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_qualite_nappes_analyses <- nitrate_qualite_nappes_analyses |> - dplyr::filter(!code_producteur %in% c('44','49','53','72','85')) -``` - -## Consolidation des données Hub'eau ESO - -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_qualite_nappes_analyses <- nitrate_qualite_nappes_analyses |> - dplyr::mutate( - resultat = stringr::str_replace(resultat, "\\,", "."), - limite_detection = stringr::str_replace(limite_detection, "\\,", "."), - limite_quantification = stringr::str_replace(limite_quantification, "\\,", ".") - ) - -``` - -On sélectionne les champs utiles à la table des analyses : -```{r select-variables-hubeau_eso, eval=FALSE} -# Sélectionner les variables -nitrate_qualite_nappes_analyses <- nitrate_qualite_nappes_analyses |> - dplyr::select(code_station = bss_id, - code_intervenant = code_lieu_analyse, - date_prelevement = date_debut_prelevement, - date_analyse = date_debut_prelevement, - resultat_analyse = resultat, - code_parametre = code_param, - code_fraction_analysee = code_fraction, - code_remarque = code_remarque_analyse, - limite_detection, - limite_quantification) - -``` - -On modifie le type des variables numériques : -```{r change-fieldtypes, eval=FALSE} -# Remplacer les valeurs dans les colonnes resultat_analyse et limite_quantification -nitrate_qualite_nappes_analyses <- nitrate_qualite_nappes_analyses |> - dplyr::mutate(resultat_analyse = as.numeric(resultat_analyse), - 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_analysee), - code_remarque = as.integer(code_remarque) - ) - -``` - -# Jointure avec la table des prélèvements créée auparavant - -La table des prélèvements est chargée : -```{r load-nitrate_prelevement, eval=FALSE} -# Charger la table nitrates.nitrate_prelevement_version -nitrate_prelevement <- datalibaba::importer_data( - table = glue::glue("nitrate_prelevement_", version), - schema = "nitrates", - db = "si_eau", - user = "admin" -) - -``` - -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_qualite_nappes_analyses <- nitrate_qualite_nappes_analyses |> - dplyr::distinct(code_station, date_prelevement, .keep_all = TRUE) - -``` - -On joint le dataframe des prélèvements pour récupérer la variable code_prelevement : -```{r join-prelevement_hubeau_eso, eval=FALSE} -# Joindre les dataframes nitrate_qualite_nappes_analyses et nitrate_prelevement -nitrate_qualite_nappes_analyses <- nitrate_qualite_nappes_analyses |> - dplyr::left_join(nitrate_prelevement |> - dplyr::select(code_station, date_prelevement, code_prelevement), - by = c("code_station" = "code_station", "date_prelevement" = "date_prelevement")) -``` - -On dédoublonne les lignes en utilisant les champs `code_prelevement`, -`code_parametre` et `resultat_analyse` afin de ne conserver qu'une analyse : -```{r select-distinct-rows_hubeau_eso_2, eval=FALSE} -# Dédoublonner les lignes sur les colonnes code_station et date_prelevement -nitrate_qualite_nappes_analyses <- nitrate_qualite_nappes_analyses |> - dplyr::distinct(code_prelevement, code_parametre, resultat_analyse, .keep_all = TRUE) - -``` - -On ajoute un identifiant unique s'appuyant sur une séquence stockée en base : -```{r add_code_analyse_hubeau_eso, eval=FALSE} -# Utiliser la fonction add_code_analyse() avec la version souhaitée -nitrate_qualite_nappes_analyses <- add_code_analyse( - nitrate_qualite_nappes_analyses, version) - -# Afficher le dataframe pour vérifier les modifications -print(nitrate_qualite_nappes_analyses) - -``` - -# Chargement en base - -On corrige l'ordre des champs les champs utiles à la table des analyses : -```{r select-variables-hubeau_eso_final, eval=FALSE} -# Sélectionner les variables dans l'ordre des champs de la table à alimenter -nitrate_qualite_nappes_analyses <- nitrate_qualite_nappes_analyses |> - dplyr::select(code_analyse, - code_intervenant, - code_prelevement, - code_parametre, - code_fraction_analysee, - date_analyse, - resultat_analyse, - code_remarque, - limite_detection, - limite_quantification) - -``` - -On charge les données consolidées dans un table dédiée : -```{r insert-into_nitrate_prelevement_v0_xx, eval=FALSE} -# Charger les données dans une nouvelle table en base -datalibaba::poster_data(data = nitrate_qualite_nappes_analyses, - table = glue::glue("nitrate_analyse_hubeau_eso_", version), - schema = "nitrates", - db = "si_eau", - overwrite = TRUE, - pk = "code_analyse", - user = "admin") -``` - -# Insertion des données Hub'eau ESO en base dans la table globale - -On insère enfin les enregistrements de cette table dans la table globale : -```{r import_and_merge_tables_hubeau_eso, 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_analyse_hubeau_eso_", version), - source_schema = "nitrates", - target_table = glue::glue("nitrate_analyse_", version), - target_schema = "nitrates", - role = "admin") - -``` - -```{r development-skeleton-dir, eval=FALSE} -# Créer initialement l'arborescence et des fichiers du template -usethis::use_rmarkdown_template( - template_name = "Insertion des analyses Hubeau ESO", - template_dir = "insertion-des-analyses-hubeau-eso", - template_description = "Insertion des analyses Hubeau ESO", - template_create_dir = TRUE -) - -``` - -```{r development-skeleton-copy, eval=FALSE} -# Définir les chemins source et destination -source_file <- "dev/flat_insert_hubeau_eso_into_analyse.Rmd" -destination_dir <- "inst/rmarkdown/templates/insertion-des-analyses-hubeau-eso/skeleton" -destination_file <- file.path(destination_dir, "skeleton.Rmd") - -# Copier et renommer le fichier -file.copy(from = source_file, to = destination_file, overwrite = TRUE) -message("File copied and renamed successfully.") - -``` - -```{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_hubeau_eso_into_analyse.Rmd", vignette_name = "Insertion des analyses Hubeau ESO") -``` - diff --git a/dev/flat_insert_hubeau_eso_into_prelevement.Rmd b/dev/flat_insert_hubeau_eso_into_prelevement.Rmd deleted file mode 100644 index 17e7005cd3d1fe1d2b8b94064cadfcfc04445691..0000000000000000000000000000000000000000 --- a/dev/flat_insert_hubeau_eso_into_prelevement.Rmd +++ /dev/null @@ -1,162 +0,0 @@ ---- -title: "Insertion des pr\u00e9l\u00e8vements 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_rivieres_analyse_pc -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_qualite_nappes_prelevements <- 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_qualite_nappes_prelevements <- nitrate_qualite_nappes_prelevements |> - dplyr::mutate( - source = "ADES", - code_support = 3, - nature_eau = "ESO") -``` - -On sélectionne les champs utiles à la table des prélèvements : -```{r select-variables_hubeau_eso, eval=FALSE} -# Sélectionner les variables -nitrate_qualite_nappes_prelevements <- nitrate_qualite_nappes_prelevements |> - dplyr::select(source, - code_reseau = codes_reseau, - code_station = bss_id, - date_prelevement = date_debut_prelevement, - code_support, - nature_eau) -``` - -On modifie le type de la variable `code_support` de character en integer : -```{r change-type_code_support, eval=FALSE} -# Convertir la variable code_support de character en integer -nitrate_qualite_nappes_prelevements <- nitrate_qualite_nappes_prelevements |> - 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 : -```{r select-distinct-rows_hubeau_eso, eval=FALSE} -# Dédoublonner les lignes sur les colonnes code_station et date_prelevement -nitrate_qualite_nappes_prelevements <- nitrate_qualite_nappes_prelevements |> - dplyr::distinct(code_station, date_prelevement, .keep_all = TRUE) -``` - -On ajoute un identifiant unique s'appuyant sur une séquence stockée en base : -```{r add_code_prelevement_hubeau_eso, eval=FALSE} -# Utiliser la fonction add_code_prelevement() avec la version souhaitée -nitrate_qualite_nappes_prelevements <- add_code_prelevement( - nitrate_qualite_nappes_prelevements, version) - -# Afficher le dataframe pour vérifier les modifications -print(nitrate_qualite_nappes_prelevements) - -``` - -On charge les données consolidées dans un table dédiée : -```{r insert-into_nitrate_prelevement_hubeau_eso, eval=FALSE} -# Charger les données dans une nouvelle table en base -datalibaba::poster_data(data = nitrate_qualite_nappes_prelevements, - table = glue::glue("nitrate_prelevement_hubeau_eso_", version), - schema = "nitrates", - db = "si_eau", - overwrite = TRUE, - pk = "code_prelevement", - user = "admin") -``` - -# Insertion des prélèvements Hub'eau ESO en base dans la table globale - -On insère enfin les enregistrements de cette table dans la table globale : -```{r import_and_merge_tables_hubeau_eso, eval=FALSE} -# Insérer les prélèvements Hub'eau ESO vers la table complète -collectr::import_and_merge_tables(database = "si_eau", - source_table = glue::glue("nitrate_prelevement_hubeau_eso_", version), - source_schema = "nitrates", - target_table = glue::glue("nitrate_prelevement_", version), - target_schema = "nitrates", - role = "admin") - -``` - -```{r development-skeleton-dir, eval=FALSE} -# Créer initialement l'arborescence et des fichiers du template -usethis::use_rmarkdown_template( - template_name = "Insertion des pr\u00e9l\u00e8vements Hubeau ESO", - template_dir = "insertion-des-prelevements-hubeau-eso", - template_description = "Insertion des pr\u00e9l\u00e8vements Hubeau ESO", - template_create_dir = TRUE -) - -``` - -```{r development-skeleton-copy, eval=FALSE} -# Définir les chemins source et destination -source_file <- "dev/flat_insert_hubeau_eso_into_prelevement.Rmd" -destination_dir <- "inst/rmarkdown/templates/insertion-des-prelevements-hubeau-eso/skeleton" -destination_file <- file.path(destination_dir, "skeleton.Rmd") - -# Copier et renommer le fichier -file.copy(from = source_file, to = destination_file, overwrite = TRUE) -message("File copied and renamed successfully.") - -``` - -```{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_hubeau_eso_into_prelevement.Rmd", vignette_name = "Insertion des pr\u00e9l\u00e8vements Hubeau ESO") -``` - diff --git a/dev/flat_insert_hubeau_esu_into_analyse.Rmd b/dev/flat_insert_hubeau_esu_into_analyse.Rmd deleted file mode 100644 index 73c74292fb0383efebae5fa25aead34f7c3579d6..0000000000000000000000000000000000000000 --- a/dev/flat_insert_hubeau_esu_into_analyse.Rmd +++ /dev/null @@ -1,217 +0,0 @@ ---- -title: "Insertion des analyses Hubeau ESU" -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 analyses Hub'eau ESU dans la table des analyses - -## Chargement des analyses Hub'eau ESU - -La table des données brutes Nitrates Hub'eau ESU est chargée : -```{r load-nitrate_qualite_rivieres_analyse_pc, eval=FALSE} -# Charger la table qualite_cours_d_eau.nitrate_qualite_rivieres_analyse_pc -nitrate_qualite_rivieres_analyses <- datalibaba::importer_data( - table = "nitrate_qualite_rivieres_analyse_pc", - schema = "qualite_cours_d_eau", - db = "si_eau", - user = "admin" -) -``` - -## Consolidation des analyses Hub'eau ESU - -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_qualite_rivieres_analyses <- nitrate_qualite_rivieres_analyses |> - dplyr::mutate( - resultat = stringr::str_replace(resultat, "\\,", "."), - limite_detection = stringr::str_replace(limite_detection, "\\,", "."), - limite_quantification = stringr::str_replace(limite_quantification, "\\,", ".") - ) - -``` - -On sélectionne les champs utiles à la table des analyses : -```{r select-variables-hubeau_esu, eval=FALSE} -# Sélectionner les variables -nitrate_qualite_rivieres_analyses <- nitrate_qualite_rivieres_analyses |> - dplyr::select(code_station, - code_intervenant = code_laboratoire, - date_prelevement, - date_analyse, - resultat_analyse = resultat, - code_parametre, - code_fraction_analysee = code_fraction, - code_remarque, - limite_detection, - limite_quantification) - -``` - -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_qualite_rivieres_analyses <- nitrate_qualite_rivieres_analyses |> - dplyr::mutate(resultat_analyse = as.numeric(resultat_analyse), - 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_analysee), - code_remarque = as.integer(code_remarque) - ) - -``` - -# Jointure avec la table des prélèvements créée auparavant - -La table des prélèvements est chargée : -```{r load-nitrate_prelevement, eval=FALSE} -# Charger la table nitrates.nitrate_prelevement_version -nitrate_prelevement <- datalibaba::importer_data( - table = glue::glue("nitrate_prelevement_", version), - schema = "nitrates", - db = "si_eau", - user = "admin" -) - -``` - -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_esu, eval=FALSE} -# Dédoublonner les lignes sur les colonnes code_station et date_prelevement -nitrate_qualite_rivieres_analyses <- nitrate_qualite_rivieres_analyses |> - dplyr::distinct(code_station, date_prelevement, .keep_all = TRUE) - -``` - -On joint le dataframe des prélèvements pour récupérer la variable code_prelevement : -```{r join-prelevement_hubeau_esu, eval=FALSE} -# Joindre les dataframes nitrate_qualite_rivieres_analyses et nitrate_prelevement -nitrate_qualite_rivieres_analyses <- nitrate_qualite_rivieres_analyses |> - dplyr::left_join(nitrate_prelevement |> - dplyr::select(code_station, date_prelevement, code_prelevement), - by = c("code_station" = "code_station", "date_prelevement" = "date_prelevement")) -``` - -On dédoublonne les lignes en utilisant les champs `code_prelevement`, -`code_parametre` et `resultat_analyse` afin de ne conserver qu'une analyse : -```{r select-distinct-rows_hubeau_esu_2, eval=FALSE} -# Dédoublonner les lignes sur les colonnes code_station et date_prelevement -nitrate_qualite_rivieres_analyses <- nitrate_qualite_rivieres_analyses |> - dplyr::distinct(code_prelevement, code_parametre, resultat_analyse, .keep_all = TRUE) - -``` - -On ajoute un identifiant unique s'appuyant sur une séquence stockée en base : -```{r add_code_analyse_hubeau_esu, eval=FALSE} -# Utiliser la fonction add_code_analyse() avec la version souhaitée -nitrate_qualite_rivieres_analyses <- add_code_analyse( - nitrate_qualite_rivieres_analyses, version) - -# Afficher le dataframe pour vérifier les modifications -print(nitrate_qualite_rivieres_analyses) - -``` - -# Chargement en base - -On corrige l'ordre des champs les champs utiles à la table des analyses : -```{r select-variables-hubeau_esu_final, eval=FALSE} -# Sélectionner les variables dans l'ordre des champs de la table à alimenter -nitrate_qualite_rivieres_analyses <- nitrate_qualite_rivieres_analyses |> - dplyr::select(code_analyse, - code_intervenant, - code_prelevement, - code_parametre, - code_fraction_analysee, - date_analyse, - resultat_analyse, - code_remarque, - limite_detection, - limite_quantification) - -``` - -On charge les données consolidées dans une table dédiée : -```{r insert-into_nitrate_analyse_hubeau_esu_version, eval=FALSE} -# Charger les données dans une nouvelle table en base -datalibaba::poster_data(data = nitrate_qualite_rivieres_analyses, - table = glue::glue("nitrate_analyse_hubeau_esu_", version), - schema = "nitrates", - db = "si_eau", - overwrite = TRUE, - pk = "code_analyse", - user = "admin") -``` - -# Insertion des analyses Hub'eau ESU en base dans la table globale - -On insère enfin les enregistrements de cette table dans la table globale : -```{r import_and_merge_tables_hubeau_esu, 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_analyse_hubeau_esu_", version), - source_schema = "nitrates", - target_table = glue::glue("nitrate_analyse_", version), - target_schema = "nitrates", - role = "admin") - -``` - -```{r development-skeleton-dir, eval=FALSE} -# Créer de l'arborescence et des fichiers du template -usethis::use_rmarkdown_template( - template_name = "Insertion des analyses Hubeau ESU", - template_dir = "insertion-des-analyses-hubeau-esu", - template_description = "Insertion des analyses Hubeau ESU", - template_create_dir = TRUE -) - -``` - -```{r development-skeleton-copy, eval=FALSE} -# Définir les chemins source et destination -source_file <- "dev/flat_insert_hubeau_esu_into_analyse.Rmd" -destination_dir <- "inst/rmarkdown/templates/insertion-des-analyses-hubeau-esu/skeleton" -destination_file <- file.path(destination_dir, "skeleton.Rmd") - -# Copier et renommer le fichier -file.copy(from = source_file, to = destination_file, overwrite = TRUE) -message("File copied and renamed successfully.") - -``` - -```{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_hubeau_esu_into_analyse.Rmd", vignette_name = "Insertion des analyses Hubeau ESU") -``` - diff --git a/dev/flat_insert_hubeau_esu_into_prelevement.Rmd b/dev/flat_insert_hubeau_esu_into_prelevement.Rmd deleted file mode 100644 index 595e5fb99b9bc13bbfd35d98e30cbc561270cff8..0000000000000000000000000000000000000000 --- a/dev/flat_insert_hubeau_esu_into_prelevement.Rmd +++ /dev/null @@ -1,164 +0,0 @@ ---- -title: "Insertion des pr\u00e9l\u00e8vements Hubeau ESU" -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 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=FALSE} -# 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" -) -``` - -## Consolidation des prélèvements Hub'eau ESU - -On remplace "." par "," dans les variables `limite_detection` et `limite_quantification` : -```{r replace-in_limite_detection, eval=FALSE} -# Remplacer "." par "," dans les colonnes limite_detection et limite_quantification -nitrate_qualite_rivieres_prelevements <- nitrate_qualite_rivieres_prelevements |> - dplyr::mutate( - limite_detection = stringr::str_replace_all(limite_detection, ".", ","), - limite_quantification = stringr::str_replace_all(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_qualite_rivieres_prelevements <- nitrate_qualite_rivieres_prelevements |> - dplyr::mutate( - source = "Na\u00efades", - nature_eau = "ESU") - -``` - -On sélectionne les champs utiles à la table des prélèvements : -```{r select-variables_hubeau_esu, eval=FALSE} -# Sélectionner les variables -nitrate_qualite_rivieres_prelevements <- nitrate_qualite_rivieres_prelevements |> - dplyr::select(source, - code_reseau, - code_station, - date_prelevement, - heure_prelevement, - code_support, - nature_eau, - commentaire = commentaires_analyse) -``` - -On modifie le type de la variable `code_support` de character en integer : -```{r change-type_code_support, eval=FALSE} -# Convertir la variable code_support de character en integer -nitrate_qualite_rivieres_prelevements <- nitrate_qualite_rivieres_prelevements |> - 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 : -```{r select-distinct-rows_hubeau_esu, eval=FALSE} -# Dédoublonner les lignes sur les colonnes code_station et date_prelevement -nitrate_qualite_rivieres_prelevements <- nitrate_qualite_rivieres_prelevements |> - dplyr::distinct(code_station, date_prelevement, .keep_all = TRUE) -``` - -On ajoute un identifiant unique s'appuyant sur une séquence stockée en base : -```{r add_code_prelevement_hubeau_esu, eval=FALSE} -# Utiliser la fonction add_code_prelevement() avec la version souhaitée -nitrate_qualite_rivieres_prelevements <- add_code_prelevement( - nitrate_qualite_rivieres_prelevements, version) - -# Afficher le dataframe pour vérifier les modifications -print(nitrate_qualite_rivieres_prelevements) - -``` - -On charge les données consolidées dans une table dédiée : -```{r insert-into_nitrate_prelevement_hubeau_esu, eval=FALSE} -# Charger les données dans une nouvelle table en base -datalibaba::poster_data(data = nitrate_qualite_rivieres_prelevements, - table = glue::glue("nitrate_prelevement_hubeau_esu_", version), - schema = "nitrates", - db = "si_eau", - overwrite = TRUE, - pk = "code_prelevement", - user = "admin") -``` - -# Insertion des prélèvements Hub'eau ESU en base dans la table globale - -On insère enfin les enregistrements de cette table dans la table globale : -```{r import_and_merge_tables_hubeau_esu, 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_hubeau_esu_", version), - source_schema = "nitrates", - target_table = glue::glue("nitrate_prelevement_", version), - target_schema = "nitrates", - role = "admin") - -``` - -```{r development-skeleton-dir, eval=FALSE} -# Créer initialement l'arborescence et des fichiers du template -usethis::use_rmarkdown_template( - template_name = "Insertion des pr\u00e9l\u00e8vements Hubeau ESU", - template_dir = "insertion-des-prelevements-hubeau-esu", - template_description = "Insertion des pr\u00e9l\u00e8vements Hubeau ESU", - template_create_dir = TRUE -) - -``` - -```{r development-skeleton-copy, eval=FALSE} -# Définir les chemins source et destination -source_file <- "dev/flat_insert_hubeau_esu_into_prelevement.Rmd" -destination_dir <- "inst/rmarkdown/templates/insertion-des-prelevements-hubeau-esu/skeleton" -destination_file <- file.path(destination_dir, "skeleton.Rmd") - -# Copier et renommer le fichier -file.copy(from = source_file, to = destination_file, overwrite = TRUE) -message("File copied and renamed successfully.") - -``` - -```{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_hubeau_esu_into_prelevement.Rmd", vignette_name = "Insertion des pr\u00e9l\u00e8vements Hubeau ESU") -``` - diff --git a/man/add_code_analyse.Rd b/man/add_code_analyse.Rd deleted file mode 100644 index 0ec07e08008a0ecca715ae5e748665152afca6f1..0000000000000000000000000000000000000000 --- a/man/add_code_analyse.Rd +++ /dev/null @@ -1,38 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/add_code_analyse.R -\name{add_code_analyse} -\alias{add_code_analyse} -\title{Ajouter une variable code_analyse au dataframe} -\usage{ -add_code_analyse(dataframe, version) -} -\arguments{ -\item{dataframe}{Un dataframe contenant les données sur lesquelles ajouter -la variable \code{code_analyse}.} - -\item{version}{Une chaîne de caractères représentant la version de la -séquence à utiliser.} -} -\value{ -Un dataframe avec une nouvelle colonne \code{code_analyse} contenant -les valeurs de la séquence PostgreSQL. -} -\description{ -Cette fonction ajoute une nouvelle variable \code{code_analyse} -au dataframe en utilisant une séquence PostgreSQL dynamique. La séquence est -construite en fonction du paramètre \code{version} fourni. -} -\examples{ -# Crée un dataframe fictif avec les colonnes nécessaires pour l'exemple -dataframe <- data.frame( - id_prelevement = 1:5, - autre_colonne = sample(letters, 5) -) -# Définir une version pour l'exemple -version <- "v1" - -# Utiliser la fonction add_code_analyse() avec la version souhaitée -dataframe <- add_code_analyse( - dataframe, version) - -} diff --git a/man/add_code_prelevement.Rd b/man/add_code_prelevement.Rd deleted file mode 100644 index 1c47da57d03766474b6eec04b9aa08aeb498eac4..0000000000000000000000000000000000000000 --- a/man/add_code_prelevement.Rd +++ /dev/null @@ -1,38 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/add_code_prelevement.R -\name{add_code_prelevement} -\alias{add_code_prelevement} -\title{Ajouter une variable code_prelevement au dataframe} -\usage{ -add_code_prelevement(dataframe, version) -} -\arguments{ -\item{dataframe}{Un dataframe contenant les données sur lesquelles ajouter -la variable \code{code_prelevement}.} - -\item{version}{Une chaîne de caractères représentant la version de la -séquence à utiliser.} -} -\value{ -Un dataframe avec une nouvelle colonne \code{code_prelevement} contenant -les valeurs de la séquence PostgreSQL. -} -\description{ -Cette fonction ajoute une nouvelle variable \code{code_prelevement} -au dataframe en utilisant une séquence PostgreSQL dynamique. La séquence est -construite en fonction du paramètre \code{version} fourni. -} -\examples{ -# Crée un dataframe fictif avec les colonnes nécessaires pour l'exemple -dataframe <- data.frame( - id_prelevement = 1:5, - autre_colonne = sample(letters, 5) -) -# Définir une version pour l'exemple -version <- "v1" - -# Utiliser la fonction add_code_prelevement() avec la version souhaitée -dataframe <- add_code_prelevement( - dataframe, version) - -} diff --git a/man/add_code_prelevement_analyse.Rd b/man/add_code_prelevement_analyse.Rd deleted file mode 100644 index 02b01b8ac34197e46c56ab094403b82de96aa4f0..0000000000000000000000000000000000000000 --- a/man/add_code_prelevement_analyse.Rd +++ /dev/null @@ -1,39 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/add_code_prelevement_analyse.R -\name{add_code_prelevement_analyse} -\alias{add_code_prelevement_analyse} -\title{Ajouter une variable code_prelevement_analyse au dataframe} -\usage{ -add_code_prelevement_analyse(dataframe, version) -} -\arguments{ -\item{dataframe}{Un dataframe contenant les données sur lesquelles ajouter -la variable \code{code_prelevement_analyse}.} - -\item{version}{Une chaîne de caractères représentant la version de la -séquence à utiliser.} -} -\value{ -Un dataframe avec une nouvelle colonne \code{code_prelevement_analyse} -contenant les valeurs de la séquence PostgreSQL. -} -\description{ -Cette fonction ajoute une nouvelle variable -\code{code_prelevement_analyse} au dataframe en utilisant une séquence -PostgreSQL dynamique. La séquence est construite en fonction du -paramètre \code{version} fourni. -} -\examples{ -# Crée un dataframe fictif avec les colonnes nécessaires pour l'exemple -dataframe <- data.frame( - id_prelevement = 1:5, - autre_colonne = sample(letters, 5) -) -# Définir une version pour l'exemple -version <- "v1" - -# Utiliser la fonction add_code_prelevement() avec la version souhaitée -dataframe <- add_code_prelevement_analyse( - dataframe, version) - -} diff --git a/man/create_nitrate_analyse_table.Rd b/man/create_nitrate_analyse_table.Rd deleted file mode 100644 index e1ce932054aaeaae1a4ee1e3e5ebe37128f6959c..0000000000000000000000000000000000000000 --- a/man/create_nitrate_analyse_table.Rd +++ /dev/null @@ -1,21 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/create_nitrate_analyse_table.R -\name{create_nitrate_analyse_table} -\alias{create_nitrate_analyse_table} -\title{Créer une table d'analyses de nitrates} -\usage{ -create_nitrate_analyse_table(version, last_year) -} -\arguments{ -\item{version}{String. Version de la table (par exemple, 'v1').} - -\item{last_year}{Integer. L'année la plus récente incluse dans les données de la table.} -} -\value{ -String. Le script SQL utilisé pour créer la table. -} -\description{ -Cette fonction crée une table dans une base de données PostgreSQL -pour stocker les informations relatives aux analyses de nitrates, incluant -les contraintes et les séquences nécessaires. -} diff --git a/man/create_nitrate_prelevement_table.Rd b/man/create_nitrate_prelevement_table.Rd deleted file mode 100644 index 085106846f9f38b38bd121185e6d179f4aafe0dc..0000000000000000000000000000000000000000 --- a/man/create_nitrate_prelevement_table.Rd +++ /dev/null @@ -1,21 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/create_nitrate_prelevement_table.R -\name{create_nitrate_prelevement_table} -\alias{create_nitrate_prelevement_table} -\title{Créer une table de prélèvements de nitrates} -\usage{ -create_nitrate_prelevement_table(version, last_year) -} -\arguments{ -\item{version}{String. Version de la table (par exemple, 'v1').} - -\item{last_year}{Integer. L'année la plus récente incluse dans les données de la table.} -} -\value{ -String. Le script SQL utilisé pour créer la table. -} -\description{ -Cette fonction crée une table dans une base de données PostgreSQL -pour stocker les informations relatives aux prélèvements de nitrates, -incluant les contraintes et les séquences nécessaires. -} diff --git a/man/create_table_nitrate_prelevement_analyse.Rd b/man/create_table_nitrate_prelevement_analyse.Rd deleted file mode 100644 index 26cc5e7bf5a563f3d5feb53673097f2b5d0a0269..0000000000000000000000000000000000000000 --- a/man/create_table_nitrate_prelevement_analyse.Rd +++ /dev/null @@ -1,21 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/create_table_nitrate_prelevement_analyse.R -\name{create_table_nitrate_prelevement_analyse} -\alias{create_table_nitrate_prelevement_analyse} -\title{Créer une table de prélèvements et analyses de nitrates} -\usage{ -create_table_nitrate_prelevement_analyse(version, last_year) -} -\arguments{ -\item{version}{String. Version de la table (par exemple, 'v1').} - -\item{last_year}{Integer. L'année la plus récente incluse dans les données de la table.} -} -\value{ -String. Le script SQL utilisé pour créer la table. -} -\description{ -Cette fonction crée une table dans une base de données PostgreSQL -pour stocker les informations relatives aux prélèvements et analyses de -nitrates, incluant les contraintes et les séquences nécessaires. -} diff --git a/vignettes/creation-de-la-table-et-de-la-sequence.Rmd b/vignettes/creation-de-la-table-et-de-la-sequence.Rmd deleted file mode 100644 index 46b7413bfc81d478a908e4aa07dd6b7cda629657..0000000000000000000000000000000000000000 --- a/vignettes/creation-de-la-table-et-de-la-sequence.Rmd +++ /dev/null @@ -1,82 +0,0 @@ ---- -title: "creation-de-la-table-et-de-la-sequence" -output: rmarkdown::html_vignette -vignette: > - %\VignetteIndexEntry{creation-de-la-table-et-de-la-sequence} - %\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_create_table_sequence.Rmd: do not edit by hand --> - - - - -```{r config} -#| eval: no - -# Lire le fichier de configuration -config <- yaml::read_yaml("config.yml") - -# Accéder aux valeurs pour version et last_year -version <- config$version -last_year <- config$last_year -``` - - -# Présentation - -Cette page contient les fonctions permettant : -- de créer en base la table `nitrates.nitrate_prelevement_analyse_version`, -- d'incrémenter la séquence correspondante au moment de l'import des données. - -# Création de la table en base - -## Création de la table des prélèvements et analyses et ajout des commentaires - -Création de la table `nitrates.nitrate_prelevement_version` : -```{r create_create_table_nitrate_prelevement_analyse} -#| eval: no - -# Création du script SQL avec la version choisie -sql <- create_table_nitrate_prelevement_analyse(version, last_year) -``` - - -# Incrémentation de la séquence - -## Incrémentation de la table des prélèvements et des analyses - -La fonction est utilisée au moment d'importer les données des différentes -sources dans la table `nitrates.nitrate_prelevement_analyse_version` : -```{r example_add_code_prelevement_analyse} -#| eval: no - -# Crée un dataframe fictif avec les colonnes nécessaires pour l'exemple -dataframe <- data.frame( - id_prelevement = 1:5, - autre_colonne = sample(letters, 5) -) -# Définir une version pour l'exemple -version <- "v1" - -# Utiliser la fonction add_code_prelevement() avec la version souhaitée -dataframe <- add_code_prelevement_analyse( - dataframe, version) - -``` - - - - diff --git a/vignettes/creation-des-tables-et-des-sequences.Rmd b/vignettes/creation-des-tables-et-des-sequences.Rmd deleted file mode 100644 index 6b01aebc45d7918e3d182fd14649d6196e936a1c..0000000000000000000000000000000000000000 --- a/vignettes/creation-des-tables-et-des-sequences.Rmd +++ /dev/null @@ -1,117 +0,0 @@ ---- -title: "Création des tables et des séquences" -output: rmarkdown::html_vignette -vignette: > - %\VignetteIndexEntry{Création des tables et des séquences} - %\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_create_tables_sequences.Rmd: do not edit by hand --> - - - - -```{r config} -#| eval: no - -# Lire le fichier de configuration -config <- yaml::read_yaml("config.yml") - -# Accéder aux valeurs pour version et last_year -version <- config$version -last_year <- config$last_year -``` - - -# Présentation - -Cette page contient les fonctions permettant : -- de créer en base les tables `nitrates.nitrate_prelevement_version` et `nitrates.nitrate_analyse_version`, -- d'incrémenter les séquences correspondantes au moment de l'import des données. - -# Création des tables en base - -## Création de la table des prélèvements et ajout des commentaires - -Création de la table `nitrates.nitrate_prelevement_version` : -```{r create_nitrate_prelevement_table_version} -#| eval: no - -# Création du script SQL avec la version choisie -sql <- create_nitrate_prelevement_table(version, last_year) -``` - - -## Création de la table des analyses et ajout des commentaires - -Création de la table `nitrates.nitrate_analyse_version` : -```{r create_nitrate_analyse_table} -#| eval: no - -# Création du script SQL avec la version choisie -sql <- create_nitrate_analyse_table(version, last_year) - -``` - - -# Incrémentation des séquences - -## Incrémentation de la table des prélèvements - -La fonction est utilisée au moment d'importer les données des différentes -sources dans la table `nitrates.nitrate_prelevement_version` : -```{r example_add_code_prelevement} -#| eval: no - -# Crée un dataframe fictif avec les colonnes nécessaires pour l'exemple -dataframe <- data.frame( - id_prelevement = 1:5, - autre_colonne = sample(letters, 5) -) -# Définir une version pour l'exemple -version <- "v1" - -# Utiliser la fonction add_code_prelevement() avec la version souhaitée -dataframe <- add_code_prelevement( - dataframe, version) - -``` - - -## Incrémentation de la table des analyses - -La fonction est utilisée au moment d'importer les données des différentes -sources dans la table `nitrates.nitrate_analyse_version` : -On ajoute un identifiant unique s'appuyant sur une séquence stockée en base : -```{r example_add_code_analyse} -#| eval: no - -# Crée un dataframe fictif avec les colonnes nécessaires pour l'exemple -dataframe <- data.frame( - id_prelevement = 1:5, - autre_colonne = sample(letters, 5) -) -# Définir une version pour l'exemple -version <- "v1" - -# Utiliser la fonction add_code_analyse() avec la version souhaitée -dataframe <- add_code_analyse( - dataframe, version) - -``` - - - - diff --git a/vignettes/insertion-des-analyses-ars.Rmd b/vignettes/insertion-des-analyses-ars.Rmd deleted file mode 100644 index ab6a7a1bd9a67e5d2dbb64b5da396e9d5017fdeb..0000000000000000000000000000000000000000 --- a/vignettes/insertion-des-analyses-ars.Rmd +++ /dev/null @@ -1,283 +0,0 @@ ---- -title: "Insertion des analyses ARS" -output: rmarkdown::html_vignette -vignette: > - %\VignetteIndexEntry{Insertion des 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_ars_into_analyse.Rmd: do not edit by hand --> - - - - -```{r config} -#| eval: no - -# Lire le fichier de configuration -config <- yaml::read_yaml("config.yml") - -# Accéder aux valeurs pour version et last_year -version <- config$version -last_year <- config$last_year - -``` - - -# Consolidation et insertion des données de l'ARS dans la table des analyses - -## Chargement des données ARS brutes - -La table des données brutes Nitrates de l'ARS est chargée : -```{r load-nitrate_data_analyse_ars} -#| eval: no - -# Charger la table nitrates.nitrate_data_analyse_ars -nitrate_data_analyse_ars <- datalibaba::importer_data( - table = "nitrate_data_analyse_ars", - schema = "nitrates", - db = "si_eau", - user = "admin" -) - -``` - - -## Consolidation des données ARS - -On supprime les enregistrements correspondants à des totaux : -```{r filter-param_nom_ars} -#| eval: no - -# Supprimer les lignes ne correspondant pas à une analyse -nitrate_analyse_ars <- nitrate_data_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_analyse_ars <- nitrate_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_analyse_ars <- nitrate_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_analyse_ars <- nitrate_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 sélectionne les champs utiles à la table des analyses : -```{r select-variables-ars} -#| eval: no - -# Sélectionner les variables -nitrate_analyse_ars <- nitrate_analyse_ars |> - dplyr::select(code_station = ins_code_national, - code_intervenant = geo_dept_ddass_gest_code, - date_prelevement = plv_date, - nom_parametre = param_nom, - date_analyse = anl_date_fin_analyse, - resultat_analyse, - code_parametre = param_code, - code_remarque, - limite_quantification) - -``` - - -On supprime les caractères < et > dans les variables resultat_analyse et limite_quantification : -```{r replace-inferior_superior} -#| eval: no - -# Remplacer les valeurs dans les colonnes resultat_analyse et limite_quantification -nitrate_analyse_ars <- nitrate_analyse_ars |> - dplyr::mutate(resultat_analyse = - stringr::str_replace(resultat_analyse, ">", ""), - limite_quantification = - stringr::str_replace(limite_quantification, "<", "")) - -``` - - -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_analyse_ars <- nitrate_analyse_ars |> - dplyr::mutate(resultat_analyse = as.numeric(resultat_analyse), - limite_quantification = as.numeric(limite_quantification), - code_parametre = as.integer(code_parametre)) - -``` - - -## Jointure avec la table des prélèvements créée auparavant - -La table des prélèvements est chargée : -```{r load-nitrate_prelevement} -#| eval: no - -# Charger la table nitrates.nitrate_prelevement_version -nitrate_prelevement <- datalibaba::importer_data( - table = glue::glue("nitrate_prelevement_", version), - schema = "nitrates", - db = "si_eau", - user = "admin" -) - -``` - - -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-ars} -#| eval: no - -# Dédoublonner les lignes sur les colonnes code_station et date_prelevement -nitrate_analyse_ars <- nitrate_analyse_ars |> - dplyr::distinct(code_station, date_prelevement, .keep_all = TRUE) - -``` - - -On joint le dataframe des prélèvements pour récupérer la variable code_prelevement : -```{r join-prelvement_ars} -#| eval: no - -# Joindre les dataframes nitrate_analyse_ars et nitrate_prelevement -nitrate_analyse_ars <- nitrate_analyse_ars |> - dplyr::left_join(nitrate_prelevement |> - dplyr::select(code_station, date_prelevement, code_prelevement), - by = c("code_station" = "code_station", "date_prelevement" = "date_prelevement")) - -``` - - -On ajoute un identifiant unique s'appuyant sur une séquence stockée en base : -```{r add_code_analyse_ars} -#| eval: no - -# Utiliser la fonction add_code_analyse_ars avec la version souhaitée -nitrate_analyse_ars <- add_code_analyse( - nitrate_analyse_ars, version) - -# Afficher le dataframe pour vérifier les modifications -print(nitrate_analyse_ars) - -``` - - -## Préparation pour l'insertion en base - -On corrige l'ordre des champs les champs utiles à la table des analyses : -```{r select-variables-ars-final} -#| eval: no - -# Sélectionner les variables dans l'ordre des champs de la table à alimenter -nitrate_analyse_ars <- nitrate_analyse_ars |> - dplyr::select(code_analyse, - code_intervenant, - code_prelevement, - code_parametre, - code_station, - date_analyse, - resultat_analyse, - code_remarque, - limite_quantification) - -``` - - -On charge les données consolidées dans un table dédiée : -```{r insert_into_nitrate_prelevement_version} -#| eval: no - -# Charger les données dans une nouvelle table en base -datalibaba::poster_data(data = nitrate_analyse_ars, - table = glue::glue("nitrate_analyse_ars_", version), - schema = "nitrates", - db = "si_eau", - overwrite = TRUE, - pk = "code_analyse", - user = "admin") -``` - - -## Insertion des analyses ARS 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: no - -# 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_analyse_ars_", version), - source_schema = "nitrates", - target_table = glue::glue("nitrate_analyse_", version), - target_schema = "nitrates", - role = "admin") - -``` - - - - diff --git a/vignettes/insertion-des-analyses-hubeau-eso.Rmd b/vignettes/insertion-des-analyses-hubeau-eso.Rmd deleted file mode 100644 index 5632c37c8ea794a83474d39e40b1c03b6a6f3099..0000000000000000000000000000000000000000 --- a/vignettes/insertion-des-analyses-hubeau-eso.Rmd +++ /dev/null @@ -1,210 +0,0 @@ ---- -title: "Insertion des analyses Hubeau ESO" -output: rmarkdown::html_vignette -vignette: > - %\VignetteIndexEntry{insertion-des-analyses-hubeau-eso} - %\VignetteEngine{knitr::rmarkdown} - %\VignetteEncoding{UTF-8} ---- - -```{r, include = FALSE} -knitr::opts_chunk$set( - collapse = TRUE, - comment = "#>" -) -``` - -```{r setup} -library(data.nitrates) -``` - -<!-- WARNING - This vignette is generated by {fusen} from dev/flat_insert_hubeau_eso_into_analyse.Rmd: do not edit by hand --> - -```{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 analyses Hub'eau ESO dans la table des analyses - -## Chargement des analyses 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_analyses <- 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_qualite_nappes_analyses <- nitrate_qualite_nappes_analyses |> - dplyr::filter(!code_producteur %in% c('44','49','53','72','85')) -``` - -## Consolidation des données Hub'eau ESO - -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_qualite_nappes_analyses <- nitrate_qualite_nappes_analyses |> - dplyr::mutate( - resultat = stringr::str_replace(resultat, "\\,", "."), - limite_detection = stringr::str_replace(limite_detection, "\\,", "."), - limite_quantification = stringr::str_replace(limite_quantification, "\\,", ".") - ) - -``` - -On sélectionne les champs utiles à la table des analyses : - -```{r select-variables-hubeau_eso, eval = FALSE} -# Sélectionner les variables -nitrate_qualite_nappes_analyses <- nitrate_qualite_nappes_analyses |> - dplyr::select(code_station = bss_id, - code_intervenant = code_lieu_analyse, - date_prelevement = date_debut_prelevement, - date_analyse = date_debut_prelevement, - resultat_analyse = resultat, - code_parametre = code_param, - code_fraction_analysee = code_fraction, - code_remarque = code_remarque_analyse, - limite_detection, - limite_quantification) - -``` - -On modifie le type des variables numériques : - -```{r change-fieldtypes, eval = FALSE} -# Remplacer les valeurs dans les colonnes resultat_analyse et limite_quantification -nitrate_qualite_nappes_analyses <- nitrate_qualite_nappes_analyses |> - dplyr::mutate(resultat_analyse = as.numeric(resultat_analyse), - 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_analysee), - code_remarque = as.integer(code_remarque) - ) - -``` - -# Jointure avec la table des prélèvements créée auparavant - -La table des prélèvements est chargée : - -```{r load-nitrate_prelevement, eval = FALSE} -# Charger la table nitrates.nitrate_prelevement_version -nitrate_prelevement <- datalibaba::importer_data( - table = glue::glue("nitrate_prelevement_", version), - schema = "nitrates", - db = "si_eau", - user = "admin" -) - -``` - -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_qualite_nappes_analyses <- nitrate_qualite_nappes_analyses |> - dplyr::distinct(code_station, date_prelevement, .keep_all = TRUE) - -``` - -On joint le dataframe des prélèvements pour récupérer la variable code_prelevement : - -```{r join-prelevement_hubeau_eso, eval = FALSE} -# Joindre les dataframes nitrate_qualite_nappes_analyses et nitrate_prelevement -nitrate_qualite_nappes_analyses <- nitrate_qualite_nappes_analyses |> - dplyr::left_join(nitrate_prelevement |> - dplyr::select(code_station, date_prelevement, code_prelevement), - by = c("code_station" = "code_station", "date_prelevement" = "date_prelevement")) -``` - -On dédoublonne les lignes en utilisant les champs `code_prelevement`, -`code_parametre` et `resultat_analyse` afin de ne conserver qu'une analyse : - -```{r select-distinct-rows_hubeau_eso_2, eval = FALSE} -# Dédoublonner les lignes sur les colonnes code_station et date_prelevement -nitrate_qualite_nappes_analyses <- nitrate_qualite_nappes_analyses |> - dplyr::distinct(code_prelevement, code_parametre, resultat_analyse, .keep_all = TRUE) - -``` - -On ajoute un identifiant unique s'appuyant sur une séquence stockée en base : - -```{r add_code_analyse_hubeau_eso, eval = FALSE} -# Utiliser la fonction add_code_analyse() avec la version souhaitée -nitrate_qualite_nappes_analyses <- add_code_analyse( - nitrate_qualite_nappes_analyses, version) - -# Afficher le dataframe pour vérifier les modifications -print(nitrate_qualite_nappes_analyses) - -``` - -# Chargement en base - -On corrige l'ordre des champs les champs utiles à la table des analyses : - -```{r select-variables-hubeau_eso_final, eval = FALSE} -# Sélectionner les variables dans l'ordre des champs de la table à alimenter -nitrate_qualite_nappes_analyses <- nitrate_qualite_nappes_analyses |> - dplyr::select(code_analyse, - code_intervenant, - code_prelevement, - code_parametre, - code_fraction_analysee, - date_analyse, - resultat_analyse, - code_remarque, - limite_detection, - limite_quantification) - -``` - -On charge les données consolidées dans un table dédiée : - -```{r insert-into_nitrate_prelevement_v0_xx, eval = FALSE} -# Charger les données dans une nouvelle table en base -datalibaba::poster_data(data = nitrate_qualite_nappes_analyses, - table = glue::glue("nitrate_analyse_hubeau_eso_", version), - schema = "nitrates", - db = "si_eau", - overwrite = TRUE, - pk = "code_analyse", - user = "admin") -``` - -# Insertion des données Hub'eau ESO en base dans la table globale - -On insère enfin les enregistrements de cette table dans la table globale : - -```{r import_and_merge_tables_hubeau_eso, 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_analyse_hubeau_eso_", version), - source_schema = "nitrates", - target_table = glue::glue("nitrate_analyse_", version), - target_schema = "nitrates", - role = "admin") - -``` - diff --git a/vignettes/insertion-des-analyses-hubeau-esu.Rmd b/vignettes/insertion-des-analyses-hubeau-esu.Rmd deleted file mode 100644 index e945158a3a4e33d87655ffc86a4fda6885bdf18f..0000000000000000000000000000000000000000 --- a/vignettes/insertion-des-analyses-hubeau-esu.Rmd +++ /dev/null @@ -1,199 +0,0 @@ ---- -title: "Insertion des analyses Hubeau ESU" -output: rmarkdown::html_vignette -vignette: > - %\VignetteIndexEntry{insertion-des-analyses-hubeau-esu} - %\VignetteEngine{knitr::rmarkdown} - %\VignetteEncoding{UTF-8} ---- - -```{r, include = FALSE} -knitr::opts_chunk$set( - collapse = TRUE, - comment = "#>" -) -``` - -```{r setup} -library(data.nitrates) -``` - -<!-- WARNING - This vignette is generated by {fusen} from dev/flat_insert_hubeau_esu_into_analyse.Rmd: do not edit by hand --> - -```{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 analyses Hub'eau ESU dans la table des analyses - -## Chargement des analyses Hub'eau ESU - -La table des données brutes Nitrates Hub'eau ESU est chargée : - -```{r load-nitrate_qualite_rivieres_analyse_pc, eval = FALSE} -# Charger la table qualite_cours_d_eau.nitrate_qualite_rivieres_analyse_pc -nitrate_qualite_rivieres_analyses <- datalibaba::importer_data( - table = "nitrate_qualite_rivieres_analyse_pc", - schema = "qualite_cours_d_eau", - db = "si_eau", - user = "admin" -) -``` - -## Consolidation des analyses Hub'eau ESU - -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_qualite_rivieres_analyses <- nitrate_qualite_rivieres_analyses |> - dplyr::mutate( - resultat = stringr::str_replace(resultat, "\\,", "."), - limite_detection = stringr::str_replace(limite_detection, "\\,", "."), - limite_quantification = stringr::str_replace(limite_quantification, "\\,", ".") - ) - -``` - -On sélectionne les champs utiles à la table des analyses : - -```{r select-variables-hubeau_esu, eval = FALSE} -# Sélectionner les variables -nitrate_qualite_rivieres_analyses <- nitrate_qualite_rivieres_analyses |> - dplyr::select(code_station, - code_intervenant = code_laboratoire, - date_prelevement, - date_analyse, - resultat_analyse = resultat, - code_parametre, - code_fraction_analysee = code_fraction, - code_remarque, - limite_detection, - limite_quantification) - -``` - -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_qualite_rivieres_analyses <- nitrate_qualite_rivieres_analyses |> - dplyr::mutate(resultat_analyse = as.numeric(resultat_analyse), - 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_analysee), - code_remarque = as.integer(code_remarque) - ) - -``` - -# Jointure avec la table des prélèvements créée auparavant - -La table des prélèvements est chargée : - -```{r load-nitrate_prelevement, eval = FALSE} -# Charger la table nitrates.nitrate_prelevement_version -nitrate_prelevement <- datalibaba::importer_data( - table = glue::glue("nitrate_prelevement_", version), - schema = "nitrates", - db = "si_eau", - user = "admin" -) - -``` - -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_esu, eval = FALSE} -# Dédoublonner les lignes sur les colonnes code_station et date_prelevement -nitrate_qualite_rivieres_analyses <- nitrate_qualite_rivieres_analyses |> - dplyr::distinct(code_station, date_prelevement, .keep_all = TRUE) - -``` - -On joint le dataframe des prélèvements pour récupérer la variable code_prelevement : - -```{r join-prelevement_hubeau_esu, eval = FALSE} -# Joindre les dataframes nitrate_qualite_rivieres_analyses et nitrate_prelevement -nitrate_qualite_rivieres_analyses <- nitrate_qualite_rivieres_analyses |> - dplyr::left_join(nitrate_prelevement |> - dplyr::select(code_station, date_prelevement, code_prelevement), - by = c("code_station" = "code_station", "date_prelevement" = "date_prelevement")) -``` - -On dédoublonne les lignes en utilisant les champs `code_prelevement`, -`code_parametre` et `resultat_analyse` afin de ne conserver qu'une analyse : - -```{r select-distinct-rows_hubeau_esu_2, eval = FALSE} -# Dédoublonner les lignes sur les colonnes code_station et date_prelevement -nitrate_qualite_rivieres_analyses <- nitrate_qualite_rivieres_analyses |> - dplyr::distinct(code_prelevement, code_parametre, resultat_analyse, .keep_all = TRUE) - -``` - -On ajoute un identifiant unique s'appuyant sur une séquence stockée en base : - -```{r add_code_analyse_hubeau_esu, eval = FALSE} -# Utiliser la fonction add_code_analyse() avec la version souhaitée -nitrate_qualite_rivieres_analyses <- add_code_analyse( - nitrate_qualite_rivieres_analyses, version) - -# Afficher le dataframe pour vérifier les modifications -print(nitrate_qualite_rivieres_analyses) - -``` - -# Chargement en base - -On corrige l'ordre des champs les champs utiles à la table des analyses : - -```{r select-variables-hubeau_esu_final, eval = FALSE} -# Sélectionner les variables dans l'ordre des champs de la table à alimenter -nitrate_qualite_rivieres_analyses <- nitrate_qualite_rivieres_analyses |> - dplyr::select(code_analyse, - code_intervenant, - code_prelevement, - code_parametre, - code_fraction_analysee, - date_analyse, - resultat_analyse, - code_remarque, - limite_detection, - limite_quantification) - -``` - -On charge les données consolidées dans une table dédiée : - -```{r insert-into_nitrate_analyse_hubeau_esu_version, eval = FALSE} -# Charger les données dans une nouvelle table en base -datalibaba::poster_data(data = nitrate_qualite_rivieres_analyses, - table = glue::glue("nitrate_analyse_hubeau_esu_", version), - schema = "nitrates", - db = "si_eau", - overwrite = TRUE, - pk = "code_analyse", - user = "admin") -``` - -# Insertion des analyses Hub'eau ESU en base dans la table globale - -On insère enfin les enregistrements de cette table dans la table globale : - -```{r import_and_merge_tables_hubeau_esu, 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_analyse_hubeau_esu_", version), - source_schema = "nitrates", - target_table = glue::glue("nitrate_analyse_", version), - target_schema = "nitrates", - role = "admin") - -``` - diff --git a/vignettes/insertion-des-prelevements-ars.Rmd b/vignettes/insertion-des-prelevements-ars.Rmd deleted file mode 100644 index edcbfae0613015250a2dc0001ed52641171a15e5..0000000000000000000000000000000000000000 --- a/vignettes/insertion-des-prelevements-ars.Rmd +++ /dev/null @@ -1,169 +0,0 @@ ---- -title: "Insertion des prélèvements ARS" -output: rmarkdown::html_vignette -vignette: > - %\VignetteIndexEntry{insertion-des-prelevements-ars} - %\VignetteEngine{knitr::rmarkdown} - %\VignetteEncoding{UTF-8} ---- - -```{r, include = FALSE} -knitr::opts_chunk$set( - collapse = TRUE, - comment = "#>" -) -``` - -```{r setup} -library(data.nitrates) -``` - -<!-- WARNING - This vignette is generated by {fusen} from dev/flat_insert_ars_into_prelevement.Rmd: do not edit by hand --> - -```{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 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 = FALSE} -nitrate_data_analyse_ars <- datalibaba::importer_data( - table = "nitrate_data_analyse_ars", - schema = "nitrates", - db = "si_eau", - user = "admin" -) -``` - -La table des stations ESO 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 = FALSE} -station_eso <- datalibaba::importer_data( - table = "station_eso", - 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_ars, eval = FALSE} -# Ajouter les variables source et code_support -nitrate_data_analyse_ars <- nitrate_data_analyse_ars |> - dplyr::mutate( - source = "ARS", - code_support = 3 - ) -``` - -On remplace "h" par ":" dans la variable `plv_heure` : - -```{r replace-in_plv_heure, eval = FALSE} -# Remplacer "h" par ":" dans la colonne plv_heure -nitrate_data_analyse_ars <- nitrate_data_analyse_ars |> - dplyr::mutate(plv_heure = stringr::str_replace_all(plv_heure, "h", ":")) -``` - -On sélectionne les champs utiles à la table des prélèvements : - -```{r select-variables-ars, eval = FALSE} -# Sélectionner les variables -nitrate_data_analyse_ars <- nitrate_data_analyse_ars |> - dplyr::select(code_intervenant = geo_dept_ddass_gest_code, - source, - 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) - -``` - -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-ars, eval = FALSE} -# Dédoublonner les lignes sur les colonnes code_station et date_prelevement -nitrate_data_analyse_ars <- nitrate_data_analyse_ars |> - dplyr::distinct(code_station, date_prelevement, .keep_all = TRUE) -``` - -On met à jour le champs code_station avec le code BSS : - -```{r update_code_bss, eval = FALSE} -nitrate_data_analyse_ars <- nitrate_data_analyse_ars |> - dplyr::left_join(station_eso, by = c("code_station" = "code_sise_eaux"), suffix = c("_ars", "_station_eso")) - -nitrate_data_analyse_ars <- nitrate_data_analyse_ars |> - dplyr::mutate(code_station = ifelse(!is.na(code_station_station_eso), code_station_station_eso, code_station)) |> - dplyr::select(-code_station_station_eso, -source_station_eso) -``` - -On ne conserve que les champs utiles à la table des prélèvements : - -```{r select-variables-ars_v2, eval = FALSE} -nitrate_data_analyse_ars <- nitrate_data_analyse_ars |> - dplyr::select(code_intervenant, - source = source_ars, - code_station, - date_prelevement, - heure_prelevement, - code_support, - nature_eau, - id_usage, - id_prelevement_motif) -``` - -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() avec la version souhaitée -nitrate_data_analyse_ars <- add_code_prelevement( - nitrate_data_analyse_ars, version) - -# Afficher le dataframe pour vérifier les modifications -print(nitrate_data_analyse_ars) - -``` - -On charge les données consolidées dans un table dédiée : - -```{r insert-into_nitrate_prelevement_v0_16, eval = FALSE} -# Charger les données dans une nouvelle table en base -datalibaba::poster_data(data = nitrate_data_analyse_ars, - table = glue::glue("nitrate_prelevement_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_ars_", version), - source_schema = "nitrates", - target_table = glue::glue("nitrate_prelevement_", version), - target_schema = "nitrates", - role = "admin") - -``` - diff --git a/vignettes/insertion-des-prelevements-hubeau-eso.Rmd b/vignettes/insertion-des-prelevements-hubeau-eso.Rmd deleted file mode 100644 index cefbe0e3a1879a64f6f3326292e7e0a05dfaba29..0000000000000000000000000000000000000000 --- a/vignettes/insertion-des-prelevements-hubeau-eso.Rmd +++ /dev/null @@ -1,141 +0,0 @@ ---- -title: "Insertion des prélèvements Hubeau ESO" -output: rmarkdown::html_vignette -vignette: > - %\VignetteIndexEntry{insertion-des-prelevements-hubeau-eso} - %\VignetteEngine{knitr::rmarkdown} - %\VignetteEncoding{UTF-8} ---- - -```{r, include = FALSE} -knitr::opts_chunk$set( - collapse = TRUE, - comment = "#>" -) -``` - -```{r setup} -library(data.nitrates) -``` - -<!-- WARNING - This vignette is generated by {fusen} from dev/flat_insert_hubeau_eso_into_prelevement.Rmd: do not edit by hand --> - -```{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_rivieres_analyse_pc -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_qualite_nappes_prelevements <- 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_qualite_nappes_prelevements <- nitrate_qualite_nappes_prelevements |> - dplyr::mutate( - source = "ADES", - code_support = 3, - nature_eau = "ESO") -``` - -On sélectionne les champs utiles à la table des prélèvements : - -```{r select-variables_hubeau_eso, eval = FALSE} -# Sélectionner les variables -nitrate_qualite_nappes_prelevements <- nitrate_qualite_nappes_prelevements |> - dplyr::select(source, - code_reseau = codes_reseau, - code_station = bss_id, - date_prelevement = date_debut_prelevement, - code_support, - nature_eau) -``` - -On modifie le type de la variable `code_support` de character en integer : - -```{r change-type_code_support, eval = FALSE} -# Convertir la variable code_support de character en integer -nitrate_qualite_nappes_prelevements <- nitrate_qualite_nappes_prelevements |> - 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 : - -```{r select-distinct-rows_hubeau_eso, eval = FALSE} -# Dédoublonner les lignes sur les colonnes code_station et date_prelevement -nitrate_qualite_nappes_prelevements <- nitrate_qualite_nappes_prelevements |> - dplyr::distinct(code_station, date_prelevement, .keep_all = TRUE) -``` - -On ajoute un identifiant unique s'appuyant sur une séquence stockée en base : - -```{r add_code_prelevement_hubeau_eso, eval = FALSE} -# Utiliser la fonction add_code_prelevement() avec la version souhaitée -nitrate_qualite_nappes_prelevements <- add_code_prelevement( - nitrate_qualite_nappes_prelevements, version) - -# Afficher le dataframe pour vérifier les modifications -print(nitrate_qualite_nappes_prelevements) - -``` - -On charge les données consolidées dans un table dédiée : - -```{r insert-into_nitrate_prelevement_hubeau_eso, eval = FALSE} -# Charger les données dans une nouvelle table en base -datalibaba::poster_data(data = nitrate_qualite_nappes_prelevements, - table = glue::glue("nitrate_prelevement_hubeau_eso_", version), - schema = "nitrates", - db = "si_eau", - overwrite = TRUE, - pk = "code_prelevement", - user = "admin") -``` - -# Insertion des prélèvements Hub'eau ESO en base dans la table globale - -On insère enfin les enregistrements de cette table dans la table globale : - -```{r import_and_merge_tables_hubeau_eso, eval = FALSE} -# Insérer les prélèvements Hub'eau ESO vers la table complète -collectr::import_and_merge_tables(database = "si_eau", - source_table = glue::glue("nitrate_prelevement_hubeau_eso_", version), - source_schema = "nitrates", - target_table = glue::glue("nitrate_prelevement_", version), - target_schema = "nitrates", - role = "admin") - -``` - diff --git a/vignettes/insertion-des-prelevements-hubeau-esu.Rmd b/vignettes/insertion-des-prelevements-hubeau-esu.Rmd deleted file mode 100644 index 2152ab243c77e22fd330a65e7af57e2cb8aed739..0000000000000000000000000000000000000000 --- a/vignettes/insertion-des-prelevements-hubeau-esu.Rmd +++ /dev/null @@ -1,143 +0,0 @@ ---- -title: "Insertion des prélèvements Hubeau ESU" -output: rmarkdown::html_vignette -vignette: > - %\VignetteIndexEntry{insertion-des-prelevements-hubeau-esu} - %\VignetteEngine{knitr::rmarkdown} - %\VignetteEncoding{UTF-8} ---- - -```{r, include = FALSE} -knitr::opts_chunk$set( - collapse = TRUE, - comment = "#>" -) -``` - -```{r setup} -library(data.nitrates) -``` - -<!-- WARNING - This vignette is generated by {fusen} from dev/flat_insert_hubeau_esu_into_prelevement.Rmd: do not edit by hand --> - -```{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 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 = FALSE} -# 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" -) -``` - -## Consolidation des prélèvements Hub'eau ESU - -On remplace "." par "," dans les variables `limite_detection` et `limite_quantification` : - -```{r replace-in_limite_detection, eval = FALSE} -# Remplacer "." par "," dans les colonnes limite_detection et limite_quantification -nitrate_qualite_rivieres_prelevements <- nitrate_qualite_rivieres_prelevements |> - dplyr::mutate( - limite_detection = stringr::str_replace_all(limite_detection, ".", ","), - limite_quantification = stringr::str_replace_all(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_qualite_rivieres_prelevements <- nitrate_qualite_rivieres_prelevements |> - dplyr::mutate( - source = "Na\u00efades", - nature_eau = "ESU") - -``` - -On sélectionne les champs utiles à la table des prélèvements : - -```{r select-variables_hubeau_esu, eval = FALSE} -# Sélectionner les variables -nitrate_qualite_rivieres_prelevements <- nitrate_qualite_rivieres_prelevements |> - dplyr::select(source, - code_reseau, - code_station, - date_prelevement, - heure_prelevement, - code_support, - nature_eau, - commentaire = commentaires_analyse) -``` - -On modifie le type de la variable `code_support` de character en integer : - -```{r change-type_code_support, eval = FALSE} -# Convertir la variable code_support de character en integer -nitrate_qualite_rivieres_prelevements <- nitrate_qualite_rivieres_prelevements |> - 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 : - -```{r select-distinct-rows_hubeau_esu, eval = FALSE} -# Dédoublonner les lignes sur les colonnes code_station et date_prelevement -nitrate_qualite_rivieres_prelevements <- nitrate_qualite_rivieres_prelevements |> - dplyr::distinct(code_station, date_prelevement, .keep_all = TRUE) -``` - -On ajoute un identifiant unique s'appuyant sur une séquence stockée en base : - -```{r add_code_prelevement_hubeau_esu, eval = FALSE} -# Utiliser la fonction add_code_prelevement() avec la version souhaitée -nitrate_qualite_rivieres_prelevements <- add_code_prelevement( - nitrate_qualite_rivieres_prelevements, version) - -# Afficher le dataframe pour vérifier les modifications -print(nitrate_qualite_rivieres_prelevements) - -``` - -On charge les données consolidées dans une table dédiée : - -```{r insert-into_nitrate_prelevement_hubeau_esu, eval = FALSE} -# Charger les données dans une nouvelle table en base -datalibaba::poster_data(data = nitrate_qualite_rivieres_prelevements, - table = glue::glue("nitrate_prelevement_hubeau_esu_", version), - schema = "nitrates", - db = "si_eau", - overwrite = TRUE, - pk = "code_prelevement", - user = "admin") -``` - -# Insertion des prélèvements Hub'eau ESU en base dans la table globale - -On insère enfin les enregistrements de cette table dans la table globale : - -```{r import_and_merge_tables_hubeau_esu, 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_hubeau_esu_", version), - source_schema = "nitrates", - target_table = glue::glue("nitrate_prelevement_", version), - target_schema = "nitrates", - role = "admin") - -``` -