From 2b474f30c35974e7d2bcb7abcf9c60e046769dc2 Mon Sep 17 00:00:00 2001 From: Daniel Kalioudjoglou <daniel.kalioudjoglou@developpement-durable.gouv.fr> Date: Fri, 28 May 2021 11:13:57 +0200 Subject: [PATCH 1/3] creation carte communale de l evolution des surfaces cadastrees ticket 39 --- NAMESPACE | 1 + R/creer_carte_2_7.R | 55 ++++++++++++ devstuff_history.R | 5 ++ .../publication/skeleton/skeleton.Rmd | 7 ++ man/creer_carte_2_7.Rd | 20 +++++ tests/testthat/test-creer_carte_2_7.R | 7 ++ vignettes/bg-ch2-7.Rmd | 30 +++++++ vignettes/test.R | 88 +++++++++---------- 8 files changed, 168 insertions(+), 45 deletions(-) create mode 100644 R/creer_carte_2_7.R create mode 100644 man/creer_carte_2_7.Rd create mode 100644 tests/testthat/test-creer_carte_2_7.R create mode 100644 vignettes/bg-ch2-7.Rmd diff --git a/NAMESPACE b/NAMESPACE index 2e51793..5af0c97 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -4,6 +4,7 @@ export("%>%") export(creer_carte_1_3) export(creer_carte_1_7) export(creer_carte_2_2) +export(creer_carte_2_7) export(creer_carte_3_2) export(creer_graphe_1_1) export(creer_graphe_1_4) diff --git a/R/creer_carte_2_7.R b/R/creer_carte_2_7.R new file mode 100644 index 0000000..26c0c1c --- /dev/null +++ b/R/creer_carte_2_7.R @@ -0,0 +1,55 @@ +#' Creation de la carte regionale de l evolution des surfaces cadastrees +#' @description carte regionale de l evolution des surfaces cadastrees +#' +#' @param millesime_obs_artif une année parmi les millesimes sélectionnables par l'utilisateur, au format numerique. +#' +#' @return une carte regionale +#' +#' @importFrom dplyr filter select mutate arrange +#' @importFrom forcats fct_drop fct_relevel +#' @importFrom ggplot2 ggplot geom_bar aes geom_text labs facet_wrap theme element_text scale_y_continuous +#' @importFrom gouvdown scale_fill_gouv_discrete +#' @importFrom glue glue +#' @importFrom lubridate year +#' @importFrom stringr str_wrap +#' @importFrom mapfactory format_fr +#' +#' @export +#' +#' @examples +#' creer_carte_2_7(millesime_obs_artif = 2019) +creer_carte_2_7 <- function(millesime_obs_artif) { + + # calcul des millesimes de la carte + millesime_debut <- millesime_obs_artif - 10 + millesime_fin <- millesime_obs_artif - 1 + + # Creation de la table utile a la production du graphique + data <- observatoire_artificialisation %>% + dplyr::mutate(date = as.numeric(lubridate::year(.data$date))) %>% + dplyr::filter(.data$TypeZone == "Communes", + .data$date <= millesime_obs_artif, + .data$date >= millesime_obs_artif - 9) %>% + dplyr::mutate(flux_naf_artificialisation_total = .data$flux_naf_artificialisation_total / 10000) %>% + dplyr::group_by(.data$CodeZone, .data$TypeZone, .data$Zone) %>% + dplyr::summarise(valeur = sum(.data$flux_naf_artificialisation_total, na.rm = T)) + + + fond_cartographique <- mapfactory::fond_carto(nom_reg = "Pays de la Loire") + bins <- stats::quantile(data$valeur,probs = c(0,0.1, 0.25, 0.5,0.75,0.9,1),na.rm=TRUE) + + carte_2_7 <- mapfactory::creer_carte_communes(data = data, + code_region=52, + carto = fond_cartographique, + indicateur = valeur, + bornes = bins, + decimales = 0, + titre = glue::glue("Evolution des surfaces cadastr\u00e9es\n entre {millesime_debut} et {millesime_fin}"), + sous_titre = NULL, + bas_de_page = glue::glue("Source : DGFip/Cerema {millesime_obs_artif}"), + suffixe = "ha" + ) + + + return(carte_2_7) +} diff --git a/devstuff_history.R b/devstuff_history.R index 07bb31e..9fc0516 100644 --- a/devstuff_history.R +++ b/devstuff_history.R @@ -70,6 +70,11 @@ usethis::use_vignette("bd-ch2-4","bd- Chapitre 2 Graphe 4") usethis::use_r("creer_graphe_2_4") usethis::use_test("creer_graphe_2_4") +##creer_carte_2_7 +usethis::use_vignette("bg-ch2-7","bg- Chapitre 2 Carte 7") +usethis::use_r("creer_carte_2_7") +usethis::use_test("creer_carte_2_7") + ##creer_carte_3_2 usethis::use_vignette("cb-ch3-2","cb- Chapitre 3 Carte 2") usethis::use_r("creer_carte_3_2") diff --git a/inst/rmarkdown/templates/publication/skeleton/skeleton.Rmd b/inst/rmarkdown/templates/publication/skeleton/skeleton.Rmd index 59b3f8c..89b98c6 100644 --- a/inst/rmarkdown/templates/publication/skeleton/skeleton.Rmd +++ b/inst/rmarkdown/templates/publication/skeleton/skeleton.Rmd @@ -81,6 +81,13 @@ creer_graphe_2_3( params$millesime_obs_artif_gk3) ```{r graph conso espace departements 10 ans,fig.width=5,fig.height=7} creer_graphe_2_4( params$millesime_obs_artif) ``` + +```{r carte communale de l evolution des surfaces cadastrees,fig.width=9,fig.height=7} +creer_carte_2_7( params$millesime_obs_artif) +``` + + + ## Chapitre 3 ```{r carte communale de l etalement urbain,fig.width=9,fig.height=7} diff --git a/man/creer_carte_2_7.Rd b/man/creer_carte_2_7.Rd new file mode 100644 index 0000000..5cea42f --- /dev/null +++ b/man/creer_carte_2_7.Rd @@ -0,0 +1,20 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/creer_carte_2_7.R +\name{creer_carte_2_7} +\alias{creer_carte_2_7} +\title{Creation de la carte regionale de l evolution des surfaces cadastrees} +\usage{ +creer_carte_2_7(millesime_obs_artif) +} +\arguments{ +\item{millesime_obs_artif}{une année parmi les millesimes sélectionnables par l'utilisateur, au format numerique.} +} +\value{ +une carte regionale +} +\description{ +carte regionale de l evolution des surfaces cadastrees +} +\examples{ +creer_carte_2_7(millesime_obs_artif = 2019) +} diff --git a/tests/testthat/test-creer_carte_2_7.R b/tests/testthat/test-creer_carte_2_7.R new file mode 100644 index 0000000..44f564c --- /dev/null +++ b/tests/testthat/test-creer_carte_2_7.R @@ -0,0 +1,7 @@ +test_that("creer_carte_2_7 fonctionne", { + + # Test que la carte est un ggplot + objet <- creer_carte_2_7(millesime_obs_artif = 2019) + testthat::expect_equal(attr(objet, "class"), c("gg","ggplot")) + +}) diff --git a/vignettes/bg-ch2-7.Rmd b/vignettes/bg-ch2-7.Rmd new file mode 100644 index 0000000..73c1245 --- /dev/null +++ b/vignettes/bg-ch2-7.Rmd @@ -0,0 +1,30 @@ +--- +title: "bg- Chapitre 2 Carte 7" +output: rmarkdown::html_vignette +vignette: > + %\VignetteIndexEntry{bg- Chapitre 2 Carte 7} + %\VignetteEngine{knitr::rmarkdown} + %\VignetteEncoding{UTF-8} +--- + +```{r, include = FALSE} +knitr::opts_chunk$set( + collapse = TRUE, + echo = FALSE, + message = FALSE, + warning = FALSE, + error = FALSE, + comment = "#>", + fig.width = 9, + fig.height = 7 +) + +``` + +# Descriptif +La fonction `creer_carte_2_7()` produit la carte regionale de l evolution des surfaces cadastrees en hectares. + +```{r setup} +library(propre.artificialisation) +creer_carte_2_7(millesime_obs_artif = 2019) +``` diff --git a/vignettes/test.R b/vignettes/test.R index bee4bcf..94481ce 100644 --- a/vignettes/test.R +++ b/vignettes/test.R @@ -1,58 +1,56 @@ -#' Creation du graphique du taux d'evolution 2009/19 (%) de l'artificialisation cadastree des differentes regions. -#' @description Graphique du taux d'evolution 2009/19 (%) de l'artificialisation cadastree des differentes regions. +#' Creation de la carte regionale de l evolution des surfaces cadastrees +#' @description carte regionale de l evolution des surfaces cadastrees #' -#' @param millesime_teruti une année parmi les millesimes sélectionnables par l'utilisateur, au format numerique. +#' @param millesime_obs_artif une année parmi les millesimes sélectionnables par l'utilisateur, au format numerique. #' -#' @return Un diagramme en barres +#' @return une carte regionale #' -#' @importFrom dplyr mutate filter select group_by case_when -#' @importFrom forcats fct_reorder -#' @importFrom ggplot2 ggplot aes geom_bar geom_text position_dodge coord_flip labs theme element_text scale_y_continuous +#' @importFrom dplyr filter select mutate arrange +#' @importFrom forcats fct_drop fct_relevel +#' @importFrom ggplot2 ggplot geom_bar aes geom_text labs facet_wrap theme element_text scale_y_continuous +#' @importFrom gouvdown scale_fill_gouv_discrete #' @importFrom glue glue -#' @importFrom scales number_format +#' @importFrom lubridate year +#' @importFrom stringr str_wrap +#' @importFrom mapfactory format_fr #' #' @export #' #' @examples -#' creer_graphe_2_3(millesime_obs_artif_gk3=2019) +#' creer_carte_2_7(millesime_obs_artif = 2019) +creer_carte_2_7 <- function(millesime_obs_artif) { -creer_graphe_2_3 <- function(millesime_obs_artif_gk3){ + # calcul des millesimes de la carte + millesime_debut <- millesime_obs_artif - 10 + millesime_fin <- millesime_obs_artif - 1 # Creation de la table utile a la production du graphique - data <- observatoire_artificialisation_gk3 %>% - dplyr::mutate(date=year(.data$date)) %>% - dplyr::filter(.data$TypeZone == "R\u00e9gions", - !(.data$CodeZone %in% c("01","02","03","04","06")), - .data$date == millesime_obs_artif_gk3 | .data$date == millesime_obs_artif_gk3 - 9) %>% - dplyr::select (-.data$surface_naf) %>% - dplyr::group_by(.data$TypeZone,.data$Zone,.data$CodeZone) %>% - summarise(evolution=round((sum(surface_artificialisee[which(date==2019)],na.rm=T) - sum(surface_artificialisee[which(date==2010)],na.rm=T))/10000,0)) %>% - dplyr::mutate(couleur_barre = dplyr::case_when( - .data$CodeZone=="52"~ 1, - TRUE ~ 0)) - - valeur_max <- max(data$evolution,na.rm=T) - millesime_debut <- millesime_obs_artif_gk3 - 9 - - graph_2_3<-data %>% - ggplot2::ggplot(ggplot2::aes(x=forcats::fct_reorder(.data$Zone,.data$evolution,.desc=F), ymax=valeur_max+5000, y=.data$evolution,fill=.data$couleur_barre)) + - ggplot2::geom_bar(stat="identity")+ - ggplot2::geom_text(ggplot2::aes(y=.data$evolution , - label=.data$evolution, - color = .data$couleur_barre - ), - position= ggplot2::position_dodge(width=1), - vjust=0.5, - hjust=-0.5, - size=3) + - ggplot2::coord_flip(expand = FALSE) + - ggplot2::labs(title=glue::glue("\u00e9volution {millesime_debut} - {millesime_obs_artif_gk3} en hectares\nde l'artificialisation cadastr\u00e9e par r\u00e9gion"), - subtitle="",x="",y="", - fill="", - caption = glue::glue("Source : Observatoire artificialisation {millesime_obs_artif_gk3}"))+ - ggplot2::theme(axis.text.x = ggplot2::element_text(), legend.position = "none") + - ggplot2::scale_y_continuous(labels = scales::number_format(suffix = "", accuracy = 1)) - - return(graph_1_1) + data <- observatoire_artificialisation %>% + dplyr::mutate(date = as.numeric(lubridate::year(.data$date))) %>% + dplyr::filter(.data$TypeZone == "Communes", + .data$date <= millesime_obs_artif, + .data$date >= millesime_obs_artif - 9) %>% + dplyr::mutate(flux_naf_artificialisation_total = .data$flux_naf_artificialisation_total / 10000) %>% + dplyr::group_by(.data$CodeZone, .data$TypeZone, .data$Zone) %>% + dplyr::summarise(valeur = sum(.data$flux_naf_artificialisation_total, na.rm = T)) + + fond_carto <- mapfactory::fond_carto(nom_reg = "Pays de la Loire") + bins <- stats::quantile(data$valeur,probs = c(0,0.1, 0.25, 0.5,0.75,0.9,1),na.rm=TRUE) + + carte_2_7 <- mapfactory::creer_carte_communes(data = data, + code_region=52, + carto = fond_carto, + indicateur = valeur, + bornes = bins, + decimales = 0, + titre = glue::glue("Evolution des surfaces cadastr\u00e9es\n entre {millesime_debut} et {millesime_fin}"), + sous_titre = NULL, + bas_de_page = glue::glue("Source : DGFip/Cerema {millesime_obs_artif}"), + suffixe = "ha" + ) + + + return(carte_2_7) } + -- GitLab From bcc816b53b3c2f2c2336dbe5c4310b4911a01920 Mon Sep 17 00:00:00 2001 From: Daniel Kalioudjoglou <daniel.kalioudjoglou@developpement-durable.gouv.fr> Date: Fri, 28 May 2021 14:29:31 +0200 Subject: [PATCH 2/3] corrections sur l ordre de la legende de la carte --- R/creer_carte_2_7.R | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/R/creer_carte_2_7.R b/R/creer_carte_2_7.R index 26c0c1c..a379f3a 100644 --- a/R/creer_carte_2_7.R +++ b/R/creer_carte_2_7.R @@ -32,7 +32,8 @@ creer_carte_2_7 <- function(millesime_obs_artif) { .data$date >= millesime_obs_artif - 9) %>% dplyr::mutate(flux_naf_artificialisation_total = .data$flux_naf_artificialisation_total / 10000) %>% dplyr::group_by(.data$CodeZone, .data$TypeZone, .data$Zone) %>% - dplyr::summarise(valeur = sum(.data$flux_naf_artificialisation_total, na.rm = T)) + dplyr::summarise(valeur = sum(.data$flux_naf_artificialisation_total, na.rm = T)) %>% + dplyr::ungroup() fond_cartographique <- mapfactory::fond_carto(nom_reg = "Pays de la Loire") -- GitLab From 6380fbe7c268d85f45e9e3ee72ffdc6bd2800abc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ABl=20Theuliere?= <mael.theuliere@developpement-durable.gouv.fr> Date: Fri, 28 May 2021 15:08:50 +0200 Subject: [PATCH 3/3] typo vignette --- vignettes/bg-ch2-7.Rmd | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vignettes/bg-ch2-7.Rmd b/vignettes/bg-ch2-7.Rmd index 73c1245..e0e234d 100644 --- a/vignettes/bg-ch2-7.Rmd +++ b/vignettes/bg-ch2-7.Rmd @@ -22,7 +22,8 @@ knitr::opts_chunk$set( ``` # Descriptif -La fonction `creer_carte_2_7()` produit la carte regionale de l evolution des surfaces cadastrees en hectares. + +La fonction `creer_carte_2_7()` produit la carte régionale de l'évolution des surfaces cadastrées en hectares. ```{r setup} library(propre.artificialisation) -- GitLab