Skip to content
Snippets Groups Projects

Resolve "Carte de l'évolution des surfaces artificialisées par commune"

9 files
+ 125
7
Compare changes
  • Side-by-side
  • Inline
Files
9
+ 74
0
#' Creation de la carte de l evolution des surfaces artificialisees par commune en %
#' @description Carte de l evolution des surfaces artificialisees par commune en %
#'
#' @param millesime_obs_artif_gk3 une année parmi les millesimes sélectionnables par l'utilisateur, au format numerique.
#' @param code_reg code insee de la région sur laquelle construire le graphique
#'
#' @return Une carte regionale
#'
#' @importFrom attempt stop_if stop_if_not
#' @importFrom COGiter filtrer_cog
#' @importFrom dplyr mutate filter select arrange group_by lag ungroup pull
#' @importFrom forcats fct_drop
#' @importFrom glue glue
#' @importFrom lubridate year
#' @importFrom mapfactory fond_carto creer_carte_communes
#' @importFrom stats quantile
#'
#'
#' @export
#'
#' @examples
#' creer_carte_2_8(millesime_obs_artif_gk3 = 2019, code_reg = 52)
#'
creer_carte_2_8 <- function(millesime_obs_artif_gk3 = NULL,
code_reg = NULL) {
attempt::stop_if(millesime_obs_artif_gk3, is.null, msg = "millesime_obs_artif_gk3 n'est pas renseign\u00e9")
attempt::stop_if_not(millesime_obs_artif_gk3, is.numeric, msg = "millesime_obs_artif n'est pas un nombre")
attempt::stop_if(code_reg, is.null, msg = "code_reg n'est pas renseign\u00e9")
attempt::stop_if_not(code_reg, ~ .x %in% levels(COGiter::regions$REG), msg = "code_reg n'est pas un code r\u00e9gion valide")
millesime_debut <- millesime_obs_artif_gk3 - 9
if (is.numeric(code_reg)) {
code_reg = as.character(code_reg)
}
# Creation de la table utile a la production du graphique
data <- observatoire_artificialisation_gk3 %>%
dplyr::mutate(date = lubridate::year(.data$date)) %>%
COGiter::filtrer_cog(reg = code_reg) %>%
dplyr::filter(.data$TypeZone =="Communes",
.data$date == millesime_obs_artif_gk3 | .data$date == millesime_obs_artif_gk3 - 9) %>%
dplyr::select(-.data$surface_naf) %>%
dplyr::arrange(.data$TypeZone, .data$Zone, .data$CodeZone, .data$date) %>%
dplyr::group_by(.data$TypeZone, .data$Zone, .data$CodeZone) %>%
dplyr::mutate(valeur = round(.data$surface_artificialisee * 100 / dplyr::lag(.data$surface_artificialisee) - 100, 1)) %>%
dplyr::ungroup() %>%
dplyr::filter(.data$date == millesime_obs_artif_gk3) %>%
dplyr::select(.data$TypeZone, .data$CodeZone, .data$Zone, .data$valeur)
nom_region <- COGiter::regions %>%
dplyr::filter (.data$REG == code_reg) %>%
dplyr::mutate(NCCENR = as.character(forcats::fct_drop(.data$NCCENR))) %>%
dplyr::pull(.data$NCCENR)
fond_cartographique <- mapfactory::fond_carto(nom_reg = nom_region)
bins <- stats::quantile(data$valeur,probs = c(0,0.1, 0.25, 0.5,0.75,0.9,1),na.rm=TRUE)
carte_2_8 <- mapfactory::creer_carte_communes(data = data,
code_region=code_reg,
carto = fond_cartographique,
indicateur = valeur,
bornes = bins,
decimales = 0,
palette = "pal_gouv_h",
titre = glue::glue("Evolution des surfaces artificialis\u00e9es\n entre {millesime_debut} et {millesime_obs_artif_gk3} en %"),
sous_titre = NULL,
bas_de_page = glue::glue("Source : DGFip/Cerema {millesime_obs_artif_gk3}"),
suffixe = "%"
)
return(carte_2_8)
}
Loading