Skip to content

Commit

Permalink
Maj2024 (#50)
Browse files Browse the repository at this point in the history
* mise à jour 2024

* mise à jour du a propos dans le readme
* remplacement de l'url du dépôt package par celle du pkgdown dans DESCRIPTION
* ajout d'un message invitant l'utilisateur à starer le projet

* résolution de 2 notes et du warning
  • Loading branch information
jengelaere authored May 2, 2024
1 parent 44b17bd commit 3551eb1
Show file tree
Hide file tree
Showing 63 changed files with 227 additions and 145 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@ docs/
data-raw/archives*
/doc/
/Meta/
*.RData
8 changes: 4 additions & 4 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Package: COGiter
Title: Fonctions, Données et Fonds de Carte pour Gérer les Données au Territoire - COG 2023
Version: 0.0.12
Title: Fonctions, Données et Fonds De Carte Pour Gérer Les Données Au Territoire - COG 2024
Version: 0.0.13
Authors@R:
c(person(given = "Maël",
family = "THEULIERE",
Expand All @@ -19,9 +19,9 @@ Authors@R:
)
Description: Fonctions, données et fonds de carte pour gérer les données
au territoire. Ce package permet notamment de gérer les fusions de
communes intervenues entre 2003 et 2022.
communes intervenues entre 2003 et 2024.
License: MIT + file LICENSE
URL: https://github.com/MaelTheuliere/COGiter
URL: https://maeltheuliere.github.io/COGiter/
BugReports: https://github.com/MaelTheuliere/COGiter/issues
Depends:
R (>= 2.10)
Expand Down
3 changes: 3 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# COGiter 0.0.13
- Mise à jour COG et fonds de carte 2024.

# COGiter 0.0.12
- Table de passage communes historiques / communes actuelles : fix erreur sur commune '14666' - Sannerville, rétablie en 31/12/2019, que l'ajout des fusions antérieures à 2003 avait mal gérée.

Expand Down
2 changes: 1 addition & 1 deletion R/cogiter.R
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#' COGiter : Fonctions, données et fonds de carte pour gérer les données au territoire.
#'
#' Ce package permet notamment de gérer les fusions de communes intervenues entre 2003 et 2022.
#' Ce package permet notamment de gérer les fusions de communes intervenues entre 2003 et 2024.
#'
#' Pour apprendre comment utiliser COGiter, utiliser les vignettes :
#' `browseVignettes(package = "COGiter")`
Expand Down
5 changes: 5 additions & 0 deletions R/data_doc-table_passage_communes_zonages.R
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@
#' \item{ LIB_ZE2020 }{ factor Libellé zone d'emploi 2020}
#' \item{ UU2020 }{ factor Code unité urbaine 2020 }
#' \item{ LIB_UU2020 }{ factor Libellé unité urbaine 2020}
#' \item{ COMUU2020 }{ factor Statut de la commune dans l'unité urbaine 2020 }
#' \item{ LIB_COMUU2020 }{ factor Libellé du statut de la commune dans l'unité urbaine 2020}
#' \item{ TYPUU2020 }{ factor Type d'unité urbaine}
#' \item{ LIB_TYPUU2020 }{ factor Libellé }
#' \item{ TUU2017 }{ factor Code tranche d'unité urbaine 2020 calculée sur la population 2017}
#' \item{ LIB_TUU2017 }{ factor Libellé tranche d'unité urbaine 2020 calculée sur la population 2017}
#' \item{ TDUU2017 }{ factor Code tranche d'unité urbaine calculée sur la population 2017}
Expand All @@ -30,3 +34,4 @@
#' }
#' @source Insee : https://www.insee.fr/fr/information/2028028
"table_passage_communes_zonages"

3 changes: 3 additions & 0 deletions R/onload.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.onLoad <- function(libname, pkgname){
packageStartupMessage("Afin de vous connaitre et de mesurer l\'usage de ce package, merci de lui mettre une \u00e9toile sur github :\nhttps://github.com/MaelTheuliere/COGiter")
}
Binary file modified R/sysdata.rda
Binary file not shown.
30 changes: 18 additions & 12 deletions README.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -32,29 +32,35 @@ remotes::install_github("MaelTheuliere/COGiter")

## A propos

Ce package R vise à mettre à disposition :
Ce package R vise à mettre à disposition :

- les tables du COG 2023 de l'Insee en RData,
- une table de passage des COG historiques vers le COG millésimé 2023,
- les couches géomatiques correspondant au COG 2023,
- des fonctions d'aide à au passage de jeux de données vers le millésime du COG 2023,
- des fonctions de calculs d'agrégats aux différentes échelles territoriales,
- des fonctions d'aide à la sélection des différents fond de cartes nécessaire à la mise en page de cartes statistiques.
- les tables du Code Officiel Géographique (COG) au millésime 2024 de l’Insee en RData,
- une table de passage des COG historiques vers le COG millésimé 2024,
- les fonds de carte (couches géomatiques) correspondant au COG 2024,
- des fonctions d’aide à au passage de jeux de données vers le millésime du COG 2024,
- des fonctions de calculs d’agrégats aux différentes échelles territoriales,
- des fonctions de filtrage pour ne conserver que les territoires correspondant à une région ou un département (nouveau) dans une table ou une carte
- des [tables de passages communales](https://maeltheuliere.github.io/COGiter/reference/table_passage_communes_zonages.html) vers les zonages d'études de l'Insee.

Le tout avec des règles de nommage identiques pour faciliter les appariements.

Le package [COGUGAISON](https://github.com/antuki/COGugaison) rempli en partie la même fonction et nous vous invitons à privilégier son utilisation.
Ce présent package visant à répondre à des besoins spécifiques du [DREAL datalab Pays de la Loire](http://www.pays-de-la-loire.developpement-durable.gouv.fr/dreal-centre-de-service-de-la-donnee-r1957.html) et est par ailleurs non stabilisé.
Le package [COGUGAISON](https://github.com/antuki/COGugaison) remplit en partie la même fonction : il est plus fin en permettant de choisir les millésimes de départ et d'arrivée du COG par exemple, mais est plutôt destiné à traiter des fichiers nationaux. Par exemple, il ne comprend pas les fonctionnalités de filtres aux contours d'une région, d'un département ou d'un EPCI, et ne propose pas les fonds de cartes associés.

Le présent package COGiter vise à répondre aux besoins de mise à jour du COG des services connaissances déconcentrés, besoins initialement identifiés par le [DREAL datalab Pays de la Loire](http://www.pays-de-la-loire.developpement-durable.gouv.fr/dreal-centre-de-service-de-la-donnee-r1957.html). Son maintien, année après année, est réalisé dans le cadre du [pôle national connaissance](https://greentechinnovation.fr/mission-connaissance/) porté par la DREAL Pays de la Loire, intitulé Acter (Appui à la connaissance territoriale reproductible), afin de mutualiser la solution apportée.



## Les données sources

### Le COG Insee 2023
### Le COG Insee 2024

- https://www.insee.fr/fr/information/2560452

### Admin Express COG Carto 2023 (couche France entière)
### Admin Express COG Carto 2024 (couche France entière)

- https://geoservices.ign.fr/adminexpress#telechargementCogCarto

- https://geoservices.ign.fr/adminexpress#telechargementCogCarto
Les surfaces proviennent d'une mesure opérée sur la couche commune de la base Admin Express de l'IGN.

## Description du package

Expand Down
52 changes: 35 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,37 +25,55 @@ remotes::install_github("MaelTheuliere/COGiter")

Ce package R vise à mettre à disposition :

- les tables du COG 2023 de l’Insee en RData,
- une table de passage des COG historiques vers le COG millésimé 2023,
- les couches géomatiques correspondant au COG 2023,
- les tables du Code Officiel Géographique (COG) au millésime 2024 de
l’Insee en RData,
- une table de passage des COG historiques vers le COG millésimé 2024,
- les fonds de carte (couches géomatiques) correspondant au COG 2024,
- des fonctions d’aide à au passage de jeux de données vers le millésime
du COG 2023,
- des fonctions de calculs d’agrégats aux différentes échelles
territoriales,
- des fonctions d’aide à la sélection des différents fonds de cartes
nécessaire à la mise en page de cartes statistiques,
- des [tables de passages communales](https://maeltheuliere.github.io/COGiter/reference/table_passage_communes_zonages.html) vers les zonages d'études de l'INSEE.
du COG 2024,
- des fonctions de calculs d’agrégats aux différentes échelles territoriales,
- des fonctions de filtrage pour ne conserver que les territoires
correspondant à une région ou un département dans une table ou une carte
- des [tables de passages
communales](https://maeltheuliere.github.io/COGiter/reference/table_passage_communes_zonages.html)
vers les zonages d’études de l’Insee.


Le tout avec des règles de nommage identiques pour faciliter les
appariements.

Le package [COGUGAISON](https://github.com/antuki/COGugaison) rempli en
partie la même fonction et nous vous invitons à privilégier son
utilisation. Ce présent package visant à répondre à des besoins
spécifiques du [DREAL datalab Pays de la
Loire](http://www.pays-de-la-loire.developpement-durable.gouv.fr/dreal-centre-de-service-de-la-donnee-r1957.html)
et est par ailleurs non stabilisé.
Le package [COGUGAISON](https://github.com/antuki/COGugaison) remplit en
partie la même fonction : il est plus fin en permettant de choisir les
millésimes de départ et d’arrivée du COG par exemple, mais est plutôt
destiné à traiter des fichiers nationaux. Par exemple, il ne comprend
pas les fonctionnalités de filtres aux contours d’une région, d’un
département ou d’un EPCI, et ne propose pas les fonds de cartes
associés.

Le présent package COGiter vise à répondre aux besoins de mise à jour du
COG des services connaissances déconcentrés, besoins initialement
identifiés par le [DREAL datalab Pays de la
Loire](http://www.pays-de-la-loire.developpement-durable.gouv.fr/dreal-centre-de-service-de-la-donnee-r1957.html).
Son maintien, année après année, est réalisé dans le cadre du [pôle
national
connaissance](https://greentechinnovation.fr/mission-connaissance/)
porté par la DREAL Pays de la Loire, intitulé Acter (Appui à la
connaissance territoriale reproductible), afin de mutualiser la solution
apportée.

## Les données sources

### Le COG Insee 2023
### Le COG Insee 2024

- <https://www.insee.fr/fr/information/2560452>

### Admin Express COG Carto 2023 (couche France entière)
### Admin Express COG Carto 2024 (couche France entière)

- <https://geoservices.ign.fr/adminexpress#telechargementCogCarto>

Les surfaces proviennent d’une mesure opérée sur la couche commune de la
base Admin Express de l’IGN.

## Description du package

Voir la [page de
Expand Down
2 changes: 1 addition & 1 deletion data-raw/1_dep_siege_epci.R
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ library(dplyr)
library(tricky)
library(tidyr)

millesime <- 2023
millesime <- 2024

telech <- tempfile()
download.file(url = paste0('https://www.banatic.interieur.gouv.fr/V5/fichiers-en-telechargement/telecharger.php?zone=N&date=01/01/', millesime,'&format=E'),
Expand Down
127 changes: 71 additions & 56 deletions data-raw/2.raw_data_cog.R
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ library(readxl)
library(arrow)
library(usethis)

millesime <- "2023"
millesime <- "2024"
repo_mil <- paste0("data-raw/source/", millesime, "/COG/")

fact.enc.utf8 <- function(a) {
Expand All @@ -18,10 +18,10 @@ fact.enc.utf8 <- function(a) {
# https://www.insee.fr/fr/information/2560452

# dir.create(repo_mil, recursive = TRUE)
# download.file("https://www.insee.fr/fr/statistiques/fichier/6800675/cog_ensemble_2023_csv.zip",
# download.file("https://www.insee.fr/fr/statistiques/fichier/7766585/cog_ensemble_2024_csv.zip",
# destfile = paste0(repo_mil, "/cog_ensemble_", millesime, "_csv.zip"))
# unzip(zipfile = paste0(repo_mil, "/cog_ensemble_", millesime, "_csv.zip"),
# exdir = repo_mil, overwrite = TRUE)
unzip(zipfile = paste0(repo_mil, "/cog_ensemble_", millesime, "_csv.zip"),
exdir = repo_mil, overwrite = TRUE)

# Création des tables suivantes:
# régions : copie de la table régions du cog avec des noms de variables normalisées
Expand Down Expand Up @@ -61,8 +61,8 @@ str(departements)
# table des départements sièges d'EPCI créée par le script 1_dep_siege_epci.R
load(paste0("data-raw/source/", millesime,"/siege_epci.RData"))
# table de la composition communale des EPCI : https://www.collectivites-locales.gouv.fr/institutions/liste-et-composition-des-epci-fiscalite-propre
# download.file(url = paste0("https://www.collectivites-locales.gouv.fr/files/Accueil/DESL/", millesime, "/epcicom", millesime, ".xlsx"),
# destfile = paste0(repo_mil, "/epcicom", millesime, ".xlsx"), method = "curl")
download.file(url = paste0("https://www.collectivites-locales.gouv.fr/files/Accueil/DESL/", millesime, "/epcicom", millesime, ".xlsx"),
destfile = paste0(repo_mil, "/epcicom", millesime, ".xlsx"), method = "curl")

epci_0 <- read_excel(path = paste0(repo_mil, "/epcicom", millesime, ".xlsx"), sheet = 1) %>%
mutate(
Expand Down Expand Up @@ -150,27 +150,6 @@ communes_epci <- communes_cog %>%
table_passage_com_epci <- communes_epci %>%
select(DEPCOM, EPCI)

# Table des mouvements de communes ----------------------------------------

mvtcommunes <- read_csv(paste0("data-raw/source/", millesime, "/COG/v_mvtcommune_", millesime, ".csv"),
col_types = cols(
MOD = col_factor(),
DATE_EFF = col_date(format = ""),
TYPECOM_AV = col_factor(),
COM_AV = col_factor(),
TNCC_AV = col_factor(),
NCC_AV = col_factor(),
NCCENR_AV = col_factor(),
LIBELLE_AV = col_factor(),
TYPECOM_AP = col_factor(),
COM_AP = col_factor(),
TNCC_AP = col_factor(),
NCC_AP = col_factor(),
NCCENR_AP = col_factor(),
LIBELLE_AP = col_factor()
)) %>%
mutate(across(where(is.factor), fact.enc.utf8))


# Table des informations supra communales de chaque commune ---------------

Expand Down Expand Up @@ -255,46 +234,82 @@ glimpse(COGiter::liste_zone)
glimpse(liste_zone)


# Table de passage des communes historiques ---------------------------------------
# sources : https://www.insee.fr/fr/information/2028028 pour les mouvements depuis 2003 mis à jour chaque année par l'INSEE + table COGiter historique

# table de passage historique avec les mouvements antérieurs à 2003
table_passage_com_hist_old <- arrow::read_parquet("data-raw/table_passage_com_historique_2018.parquet") %>%
rename_with(~paste0(.x, "_old"))

# table de passage à partir de 2003 tenue à jour par l'INSEE
# download.file(paste0("https://www.insee.fr/fr/statistiques/fichier/2028028/table_passage_geo2003_geo", millesime, ".zip"),
# destfile = paste0(repo_mil, "/table_passage_geo2003_geo", millesime, ".zip"))
# unzip(zipfile = paste0(repo_mil, "/table_passage_geo2003_geo", millesime, ".zip"),
# exdir = repo_mil)

table_passage_com_historique_new <- read_xlsx(paste0(repo_mil, "/table_passage_geo2003_geo", millesime, ".xlsx"), skip = 5) %>%
select(DEPCOM_HIST = CODGEO_INI, DEPCOM = paste0("CODGEO_", millesime)) %>%
mutate(DEPCOM = case_when( # correction bug toujours présent de saint martin et saint barthélemy qui ne sont pas rattachés sur leurs nouveaux codes commune.
DEPCOM_HIST == '97123'~'97701',
DEPCOM_HIST == '97127'~'97801',
TRUE ~ DEPCOM
))

table_passage_com_historique <- table_passage_com_hist_old %>%
left_join(table_passage_com_historique_new, by = c("DEPCOM_old" = "DEPCOM_HIST")) %>%
# gestion de la scission COM 14666 - com 14712
mutate(DEPCOM = if_else(DEPCOM_HIST_old %in% c("14666"), DEPCOM_HIST_old, DEPCOM)) %>%
select(DEPCOM_HIST = DEPCOM_HIST_old, DEPCOM) %>%
# Table des mouvements de communes ----------------------------------------
# Table du millésime précédent
table_passage_com_hist_old <- COGiter::table_passage_com_historique
# save(table_passage_com_hist_old, file = paste0("data-raw/source/", millesime, "/COG/table_passage_com_historique_", mil_precdt, ".RData"))
mil_precdt <- as.numeric(millesime) - 1

mvtcommunes <- read_csv(paste0("data-raw/source/", millesime, "/COG/v_mvt_commune_", millesime, ".csv"),
col_types = cols(
MOD = col_factor(),
DATE_EFF = col_date(format = ""),
TYPECOM_AV = col_factor(),
COM_AV = col_character(),
TNCC_AV = col_factor(),
NCC_AV = col_factor(),
NCCENR_AV = col_factor(),
LIBELLE_AV = col_factor(),
TYPECOM_AP = col_factor(),
COM_AP = col_character(),
TNCC_AP = col_factor(),
NCC_AP = col_factor(),
NCCENR_AP = col_factor(),
LIBELLE_AP = col_factor()
)) %>%
mutate(across(where(is.factor), fact.enc.utf8))

# on filtre cette table pour ne garder que :
# - les évolutions de l'année écoulée,
# - concernant les seules communes,
# - autres que des changements de nom (MOD == 10)

table_evol_com_mil <- mvtcommunes %>%
filter(DATE_EFF > paste0(mil_precdt, "-01-01"), TYPECOM_AP == "COM", TYPECOM_AV == "COM", MOD != 10) %>%
select(MOD, COM_AV, COM_AP) %>%
distinct()

# communes rétablies : identification
com_retablies <- filter(table_evol_com_mil, MOD == 21, COM_AV != COM_AP) %>%
pull(COM_AP)
# communes rétablies : fonction d'identification des lignes de correspondance entre communes à supprimer
corresp_a_suppr <- function(df, idcom = "60694") {
mutate(df, a_virer = case_when(COM_AP == idcom & DEPCOM_HIST != idcom ~ TRUE,
COM_AP != idcom & DEPCOM_HIST == idcom ~ TRUE,
TRUE ~ FALSE)
) %>%
filter(a_virer) %>%
pull(rowid)
}

# on applique les évolutions de l'année écoulée à la table de passage du millésime précédent
table_passage_com_historique0 <- table_passage_com_hist_old %>%
left_join(table_evol_com_mil, by = c("DEPCOM" = "COM_AV"), relationship = "many-to-many") %>%
mutate(COM_AP = coalesce(COM_AP, DEPCOM)) %>%
rowid_to_column()

# gestion des rétablissements de communes : COM 60694 sortie de 60054, COM 85165 et 85212 sorties de 85084 en 2024
id_a_virer <- map(.x = com_retablies, .f = ~corresp_a_suppr(df = table_passage_com_historique0, idcom = .x)) %>%
unlist()

table_passage_com_historique <- table_passage_com_historique0 %>%
mutate(A_virer = rowid %in% id_a_virer) %>%
filter(!A_virer) %>%
select(DEPCOM_HIST, DEPCOM = COM_AP) %>%
distinct() %>%
mutate(across(everything(), fact.enc.utf8))

# Vérification : DEPCOM_HIST ne doit pas comporter de doublons
table_passage_com_historique %>%
add_count(DEPCOM_HIST) %>%
filter(n>1)
filter(n > 1)

names(COGiter::table_passage_com_historique) == names(table_passage_com_historique)
glimpse(COGiter::table_passage_com_historique)
glimpse(table_passage_com_historique)


# Gestion des arrondissements de PLM
# Gestion des arrondissements de Paris Lyon Marseille
# Les arrondissements sont gérés comme des anciens codes communes et rattachés à leur commune

arn_plm <- communes_cog %>%
Expand Down Expand Up @@ -332,7 +347,7 @@ usethis::use_data(table_passage_com_historique, internal = FALSE, overwrite = TR
usethis::use_data(arn_plm, internal = FALSE, overwrite = TRUE)


## Chargement des couches communes et table_passage_com_historique dans production.cogiter---
## Chargement des couches communes et table_passage_com_historique dans production.scte_cogiter---
library(datalibaba)
communes2 <- rowwise(communes) %>%
mutate(across(where(is.list), ~paste0(.x, collapse = ", ") %>% as.factor),
Expand Down
Loading

0 comments on commit 3551eb1

Please sign in to comment.