diff --git a/dev/config_fusen.yaml b/dev/config_fusen.yaml index 7b7d7547f62d7f7f3ab58a7da562e90667f1185e..c1bf6a7f7af0f423ee6f4b321a921fb879a05375 100644 --- a/dev/config_fusen.yaml +++ b/dev/config_fusen.yaml @@ -1,3 +1,16 @@ +flat_import_ars_data.Rmd: + path: dev/flat_import_ars_data.Rmd + state: active + R: [] + tests: [] + vignettes: vignettes/import-des-donnees-brutes-ars.Rmd + inflate: + flat_file: dev/flat_import_ars_data.Rmd + vignette_name: Import des données brutes ARS + open_vignette: true + check: true + document: true + overwrite: ask flat_import_data.Rmd: path: dev/flat_import_data.Rmd state: active diff --git a/dev/flat_import_ars_data.Rmd b/dev/flat_import_ars_data.Rmd new file mode 100644 index 0000000000000000000000000000000000000000..c502e8fc51e068227314edc50087e89783f5f590 --- /dev/null +++ b/dev/flat_import_ars_data.Rmd @@ -0,0 +1,145 @@ +--- +title: "flat_import_ars_data.Rmd" +output: html_document +editor_options: + chunk_output_type: console +--- + +```{r development, include=FALSE} +library(testthat) +``` + +```{r development-load} +# Load already included functions if relevant +pkgload::load_all(export_all = FALSE) +``` + +```{r development, include=FALSE} +library(testthat) +library(xlsx) +library(datalibaba) +library(RPostgreSQL) +library(sf) +library(collectr) +library(dplyr) +``` + +```{r development-1} +# Load already included functions +pkgload::load_all(export_all = FALSE) +``` + +# Présentation + +Cette page contient la logique métier concernant l'import des données brutes +fournies par l'ARS dans une base de données POstgreSQL dans le cadre du projet +Nitrates + +# Connexion à la base de données PostgreSQL + +```{r connect_to_db, eval=FALSE} +# Se connecter à la base de données PostgreSQL si_eau +connexion <- datalibaba::connect_to_db(db = "si_eau", user = "admin") +``` + +```{r list_schemas, eval=FALSE} +# Lister les schémas présents dans la base +schemas_list <- data.frame(datalibaba::list_schemas(connexion)) + +# Renommer la variable unique en "nom_schema" +schemas_list <- schemas_list |> + rename(nom_schema = unique(names(.))) + +# Trier le dataframe par la variable nom_schema +schemas_list <- schemas_list |> + arrange(nom_schema) +``` + +```{r list_tables, eval=FALSE} +# Lister les tables présentes dans le schéma spécifié +tables_list <- data.frame(datalibaba::list_tables( + con = connexion, + db = "si_eau", + schema = "nitrates")) + +# Renommer la variable unique en "nom_table" +tables_list <- tables_list |> + rename(nom_table = names(tables_list)[1]) + +# Trier le dataframe par la variable nom_table +tables_list <- tables_list |> + arrange(nom_table) + +``` + +# Import des données de l'ARS dans un dataframe par millésime + +Les données sont transmies au format XLSX. + +```{r import_data_ars_2022, eval=FALSE} +data_ars_2022 <- collectr::import_xlsx( + filepath = "T:\\datalab\\SRNP_DEMA_SI_EAU\\NITRATES\\DONNEES_CLIENT\\SOURCES\\ARS\\2023_06\\Nitrates 2022 pour DREAL EPNT4 2023-05-30.xlsx", + sheet = 1, + row = 2) + +``` + +```{r import_data_ars_2023, eval=FALSE} +data_ars_2023 <- collectr::import_xlsx( + filepath = "T:\\datalab\\SRNP_DEMA_SI_EAU\\NITRATES\\DONNEES_CLIENT\\SOURCES\\ARS\\2024_06\\Nitrates 2023 pour DREAL EPNT4 2024-05-31.xlsx", + sheet = 1, + row = 2) + +``` + +# Création d'une table pour le nouveau millésime + +```{r create-nitrate_data_ars, eval=FALSE} +# Charger les données dans une nouvelle table en base +datalibaba::poster_data(data = data_ars_2023, + table = "nitrate_data_analyse_ars_2023", + schema = "nitrates", + db = "si_eau", + overwrite = TRUE, + user = "admin") + +# Ajouter un commentaire sur la table +datalibaba::commenter_table(comment = "Analyses Nitrates ARS (2023)", + table = "nitrate_data_analyse_ars_2023", + schema = "nitrates", + db = "si_eau", + user = "admin") + +``` + +# Modification du type des champs si besoin + +```{r modify_column_type, eval=FALSE} +# Modifier le type de colonne pour les champs de date +collectr::modify_column_type(database = "si_eau", + schema = "nitrates", + table = "nitrate_data_analyse_ars_2023", + column_name = "plv_date", + column_type = "date", + role = "admin") + +``` + +# Insertion des données du nouveau millésime en base dans la table globale + +```{r import_and_merge_tables, 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 = "nitrate_data_ars_2023", + source_schema = "nitrates", + target_table = "nitrate_data_analyse_ars_test", + target_schema = "nitrates") + +``` + +```{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_import_ars_data.Rmd", vignette_name = "Import des données brutes ARS") +``` + diff --git a/vignettes/import-des-donnees-brutes-ars.Rmd b/vignettes/import-des-donnees-brutes-ars.Rmd new file mode 100644 index 0000000000000000000000000000000000000000..d83e31131e2dbcf6d1a422f22d21bc4f4cd32516 --- /dev/null +++ b/vignettes/import-des-donnees-brutes-ars.Rmd @@ -0,0 +1,132 @@ +--- +title: "Import des données brutes ARS" +output: rmarkdown::html_vignette +vignette: > + %\VignetteIndexEntry{import-des-donnees-brutes-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_import_ars_data.Rmd: do not edit by hand --> + +# Présentation + +Cette page contient la logique métier concernant l'import des données brutes +fournies par l'ARS dans une base de données POstgreSQL dans le cadre du projet +Nitrates + + +# Connexion à la base de données PostgreSQL + +```{r connect_to_db, eval = FALSE} +# Se connecter à la base de données PostgreSQL si_eau +connexion <- datalibaba::connect_to_db(db = "si_eau", user = "admin") +``` + +```{r list_schemas, eval = FALSE} +# Lister les schémas présents dans la base +schemas_list <- data.frame(datalibaba::list_schemas(connexion)) + +# Renommer la variable unique en "nom_schema" +schemas_list <- schemas_list |> + rename(nom_schema = unique(names(.))) + +# Trier le dataframe par la variable nom_schema +schemas_list <- schemas_list |> + arrange(nom_schema) +``` + +```{r list_tables, eval = FALSE} +# Lister les tables présentes dans le schéma spécifié +tables_list <- data.frame(datalibaba::list_tables( + con = connexion, + db = "si_eau", + schema = "nitrates")) + +# Renommer la variable unique en "nom_table" +tables_list <- tables_list |> + rename(nom_table = names(tables_list)[1]) + +# Trier le dataframe par la variable nom_table +tables_list <- tables_list |> + arrange(nom_table) + +``` + +# Import des données de l'ARS dans un dataframe par millésime + +Les données sont transmies au format XLSX. + + +```{r import_data_ars_2022, eval = FALSE} +data_ars_2022 <- collectr::import_xlsx( + filepath = "T:\\datalab\\SRNP_DEMA_SI_EAU\\NITRATES\\DONNEES_CLIENT\\SOURCES\\ARS\\2023_06\\Nitrates 2022 pour DREAL EPNT4 2023-05-30.xlsx", + sheet = 1, + row = 2) + +``` + +```{r import_data_ars_2023, eval = FALSE} +data_ars_2023 <- collectr::import_xlsx( + filepath = "T:\\datalab\\SRNP_DEMA_SI_EAU\\NITRATES\\DONNEES_CLIENT\\SOURCES\\ARS\\2024_06\\Nitrates 2023 pour DREAL EPNT4 2024-05-31.xlsx", + sheet = 1, + row = 2) + +``` + +# Création d'une table pour le nouveau millésime + +```{r create-nitrate_data_ars, eval = FALSE} +# Charger les données dans une nouvelle table en base +datalibaba::poster_data(data = data_ars_2023, + table = "nitrate_data_analyse_ars_2023", + schema = "nitrates", + db = "si_eau", + overwrite = TRUE, + user = "admin") + +# Ajouter un commentaire sur la table +datalibaba::commenter_table(comment = "Analyses Nitrates ARS (2023)", + table = "nitrate_data_analyse_ars_2023", + schema = "nitrates", + db = "si_eau", + user = "admin") + +``` + +# Modification du type des champs si besoin + +```{r modify_column_type, eval = FALSE} +# Modifier le type de colonne pour les champs de date +collectr::modify_column_type(database = "si_eau", + schema = "nitrates", + table = "nitrate_data_analyse_ars_2023", + column_name = "plv_date", + column_type = "date", + role = "admin") + +``` + +# Insertion des données du nouveau millésime en base dans la table globale + +```{r import_and_merge_tables, 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 = "nitrate_data_ars_2023", + source_schema = "nitrates", + target_table = "nitrate_data_analyse_ars_test", + target_schema = "nitrates") + +``` +