Skip to content
Snippets Groups Projects
Commit 2834bba8 authored by Juliette Engelaere-Lefebvre's avatar Juliette Engelaere-Lefebvre
Browse files

Merge branch '92-ocsge-nouveau-millesime' into 'master'

adaptation de data-raw/chargement_ocsge à la nouvelle livraison de l'OCSGE

Closes #92

See merge request !44
parents ce4c158a 6925150c
Branches
No related tags found
1 merge request!44adaptation de data-raw/chargement_ocsge à la nouvelle livraison de l'OCSGE
# chargement_ocsge # chargement_ocsge
library(magritt) library(magrittr)
rm(list=ls()) rm(list=ls())
...@@ -17,15 +17,15 @@ con_referentiels <- DBI::dbConnect( ...@@ -17,15 +17,15 @@ con_referentiels <- DBI::dbConnect(
) )
# fonction get_ocsge_dep_com --------- # fonctions get_ocsge_dep_com ---------
# elle decoupe une couche dep ocsge millesimée aux contours des communes de la bd topo # elle decoupe une couche dep ocsge millesimée aux contours des communes de la bd topo
# et renvoie une ligne par commune, usage et couverture # et renvoie une ligne par commune, usage et couverture
get_ocsge_dep_com <- function(dep, mil = "2016") { ## ocsge ancienne génération -----
query = paste0("SELECT com.code_insee, ocsge.couverture, ocsge.usage, ocsge.millesime, ", get_ocsge_dep_com_anc_gen <- function(dep, mil = "2016") {
query = paste0("SELECT com.code_insee, ocsge.couverture, ocsge.usage, ocsge.millesime, ",
"SUM(ST_Area(ST_intersection(ocsge.the_geom, com.the_geom))) AS surf_intersection_m2 ", "SUM(ST_Area(ST_intersection(ocsge.the_geom, com.the_geom))) AS surf_intersection_m2 ",
"FROM ocsge.n_occupation_sol_", mil, "_0", dep, " AS ocsge, ", "FROM ocs_ge_ancienne_generation.n_occupation_sol_", mil, "_0", dep, " AS ocsge, ",
"bdtopo_v3.n_bdt_commune_s_r52 AS com ", "bdtopo_v3.n_bdt_commune_s_r52 AS com ",
"WHERE ST_intersects(ocsge.the_geom, com.the_geom)", "WHERE ST_intersects(ocsge.the_geom, com.the_geom)",
"GROUP BY com.code_insee, ocsge.couverture, ocsge.usage, ocsge.millesime", "GROUP BY com.code_insee, ocsge.couverture, ocsge.usage, ocsge.millesime",
...@@ -33,95 +33,279 @@ get_ocsge_dep_com <- function(dep, mil = "2016") { ...@@ -33,95 +33,279 @@ get_ocsge_dep_com <- function(dep, mil = "2016") {
DBI::dbGetQuery(con_referentiels, query) DBI::dbGetQuery(con_referentiels, query)
} }
## ocsge nouvelle génération --------
get_ocsge_dep_com_nouv_gen <- function(dep, mil = "2019") {
query = paste0("SELECT com.code_insee, ocsge.code_cs, ocsge.code_us, ocsge.millesime, ",
"SUM(ST_Area(ST_intersection(ocsge.the_geom, com.the_geom))) AS surf_intersection_m2 ",
"FROM ocs_ge_nouvelle_generation.n_ocsge_occupation_sol_", mil, "_s_d", dep, " AS ocsge, ",
"bdtopo_v3.n_bdt_commune_s_r52 AS com ",
"WHERE ST_intersects(ocsge.the_geom, com.the_geom)",
"GROUP BY com.code_insee, ocsge.code_cs, ocsge.code_us, ocsge.millesime",
";")
DBI::dbGetQuery(con_referentiels, query)
}
# application de la fonction aux 5 départements et aux 2 millésimes ------- # calcul d'ocsge ancienne génération ---------
ocsge_pdl <- purrr::map2_dfr( ocsge_pdl_anc_gen <- purrr::map2_dfr(
.x = rep(c("44", "49", "53", "72", "85"), 2), .x = rep(c("44", "49", "53", "72", "85"), 2),
.y = c(rep("2013man", 5), rep("2016", 5)), .y = c(rep("2013man", 5), rep("2016", 5)),
.f = ~ get_ocsge_dep_com(dep = .x, mil = .y) ) %>% .f = ~ get_ocsge_dep_com_anc_gen(dep = .x, mil = .y) ) %>%
dplyr::mutate(date = lubridate::make_date(millesime, 06, 30))
# calcul d'ocsge nouvelle génération ----------
ocsge_pdl_2022 <- purrr::map2_dfr(
.x = rep(c("44", "49", "53", "72", "85"), 1),
.y = c(rep("2022", 5)),
.f = ~ get_ocsge_dep_com_nouv_gen(dep = .x, mil = .y) ) %>%
dplyr::mutate(date = lubridate::make_date(millesime, 06, 30))
ocsge_pdl_2020 <- purrr::map2_dfr(
.x = rep(c("44", "49"), 1),
.y = c(rep("2020", 2)),
.f = ~ get_ocsge_dep_com_nouv_gen(dep = .x, mil = .y) ) %>%
dplyr::mutate(date = lubridate::make_date(millesime, 06, 30))
ocsge_pdl_2019 <- purrr::map2_dfr(
.x = rep(c("53", "72", "85"), 1),
.y = c(rep("2019", 3)),
.f = ~ get_ocsge_dep_com_nouv_gen(dep = .x, mil = .y)) %>%
dplyr::mutate(date = lubridate::make_date(millesime, 06, 30))
ocsge_pdl_nouv_gen <- dplyr::bind_rows(
ocsge_pdl_2022,
ocsge_pdl_2020,
ocsge_pdl_2019
) %>%
tidyr::complete() %>%
dplyr::mutate(date = lubridate::make_date(millesime, 06, 30)) dplyr::mutate(date = lubridate::make_date(millesime, 06, 30))
# en cas de connexion par VPN, mieux vaut procéder par étape pour éviter de tout perdre en cas de déconnexion # en cas de connexion par VPN, mieux vaut procéder par étape pour éviter de tout perdre en cas de déconnexion
# ocsge_44 <- get_ocsge_dep_com(dep = "44", mil = "2016") ocsge_44_2022 <- get_ocsge_dep_com_nouv_gen(dep = "44", mil = "2022")
# ocsge_49 <- get_ocsge_dep_com(dep = "49", mil = "2016") ocsge_44_2020 <- get_ocsge_dep_com_nouv_gen(dep = "44", mil = "2020")
# ocsge_53 <- get_ocsge_dep_com(dep = "53", mil = "2016") ocsge_49_2022 <- get_ocsge_dep_com_nouv_gen(dep = "49", mil = "2022")
# ocsge_72 <- get_ocsge_dep_com(dep = "72", mil = "2016") ocsge_49_2020 <- get_ocsge_dep_com_nouv_gen(dep = "49", mil = "2020")
# ocsge_85 <- get_ocsge_dep_com(dep = "85", mil = "2016") ocsge_53_2022 <- get_ocsge_dep_com_nouv_gen(dep = "53", mil = "2022")
# ocsge_44_2013 <- get_ocsge_dep_com(dep = "44", mil = "2013man") ocsge_53_2019 <- get_ocsge_dep_com_nouv_gen(dep = "53", mil = "2019")
# ocsge_49_2013 <- get_ocsge_dep_com(dep = "49", mil = "2013man") ocsge_72_2022 <- get_ocsge_dep_com_nouv_gen(dep = "72", mil = "2022")
# ocsge_53_2013 <- get_ocsge_dep_com(dep = "53", mil = "2013man") ocsge_72_2019 <- get_ocsge_dep_com_nouv_gen(dep = "72", mil = "2019")
# ocsge_72_2013 <- get_ocsge_dep_com(dep = "72", mil = "2013man") ocsge_85_2022 <- get_ocsge_dep_com_nouv_gen(dep = "85", mil = "2022")
# ocsge_85_2013 <- get_ocsge_dep_com(dep = "85", mil = "2013man") ocsge_85_2019 <- get_ocsge_dep_com_nouv_gen(dep = "85", mil = "2019")
#
# ocsge_pdl <- dplyr::bind_rows( ocsge_pdl_nouv_gen <- dplyr::bind_rows(
# ocsge_44, ocsge_49, ocsge_53, ocsge_72, ocsge_85, ocsge_44_2022, ocsge_49_2022, ocsge_53_2022, ocsge_72_2022, ocsge_85_2022,
# ocsge_44_2013, ocsge_49_2013, ocsge_53_2013, ocsge_72_2013, ocsge_85_2013 ocsge_44_2020, ocsge_49_2020,
# ) %>% ocsge_53_2019, ocsge_72_2019, ocsge_85_2019
# dplyr::mutate(date = lubridate::make_date(millesime + 1, 01, 01)) ) %>%
dplyr::mutate(date = lubridate::make_date(millesime, 06, 30))
# sauveagarde provisoire ----------
save.image(file = "sauvegarde_provisoire.RData")
# déconnexion au SGBDR ----------
DBI::dbDisconnect(con_referentiels) DBI::dbDisconnect(con_referentiels)
# versement de ocsge_pdl dans le sgbd/datamart.portrait_territoires ------------- # versement de ocsge_pdl dans le sgbd/datamart.portrait_territoires -------------
ocsge_pdl_2013 <- dplyr::filter(ocsge_pdl, millesime == 2013)
ocsge_pdl_2016 <- dplyr::filter(ocsge_pdl, millesime == 2016)
## ocsge ancienne génération ------------
ocsge_pdl_2013 <- dplyr::filter(ocsge_pdl_anc_gen, millesime == 2013)
datalibaba::poster_data( datalibaba::poster_data(
data = ocsge_pdl_2013, data = ocsge_pdl_2013,
db = "datamart", db = "datamart",
schema = "portrait_territoires", schema = "portrait_territoires",
table = "ocsge_pdl_couverture_usage_2013", table = "ocsge_pdl_couverture_usage_2013",
post_row_name = FALSE, post_row_name = FALSE,
overwrite = TRUE, overwrite = TRUE,
droits_schema = TRUE, droits_schema = TRUE,
user = "does" user = "does"
) )
ocsge_pdl_2016 <- dplyr::filter(ocsge_pdl_anc_gen, millesime == 2016)
datalibaba::poster_data( datalibaba::poster_data(
data = ocsge_pdl_2016, data = ocsge_pdl_2016,
db = "datamart", db = "datamart",
schema = "portrait_territoires", schema = "portrait_territoires",
table = "ocsge_pdl_couverture_usage_2016", table = "ocsge_pdl_couverture_usage_2016",
post_row_name = FALSE, post_row_name = FALSE,
overwrite = TRUE, overwrite = TRUE,
droits_schema = TRUE, droits_schema = TRUE,
user = "does" user = "does"
) )
## ocsge nouvelle génération ------------
ocsge_pdl_2022 <- dplyr::filter(ocsge_pdl_nouv_gen, millesime == 2022)
datalibaba::poster_data(
data = ocsge_pdl_2022,
db = "datamart",
schema = "portrait_territoires",
table = "ocsge_pdl_couverture_usage_2022",
post_row_name = FALSE,
overwrite = TRUE,
droits_schema = TRUE,
user = "does"
)
ocsge_pdl_2020 <- dplyr::filter(ocsge_pdl_nouv_gen, millesime == 2020)
datalibaba::poster_data(
data = ocsge_pdl_2020,
db = "datamart",
schema = "portrait_territoires",
table = "ocsge_pdl_couverture_usage_2020",
post_row_name = FALSE,
overwrite = TRUE,
droits_schema = TRUE,
user = "does"
)
ocsge_pdl_2019 <- dplyr::filter(ocsge_pdl_nouv_gen, millesime == 2019)
datalibaba::poster_data(
data = ocsge_pdl_2019,
db = "datamart",
schema = "portrait_territoires",
table = "ocsge_pdl_couverture_usage_2019",
post_row_name = FALSE,
overwrite = TRUE,
droits_schema = TRUE,
user = "does"
)
# typologie des espaces ------- # typologie des espaces -------
ocsge_type <- dplyr::select(ocsge_pdl, couverture, usage) %>%
## ancienne nomenclature -------------
# ocsge_type <- dplyr::select(ocsge_pdl, couverture, usage) %>%
# dplyr::distinct() %>%
# dplyr::mutate(
# type_espace = dplyr::case_when(
# couverture %in% c("CS1.1.1.1", "CS1.1.1.2", "CS1.1.2.1", "CS1.1.2.2") ~ "espace_artificialise",
# couverture == "CS1.2.1" &
# usage %in% c("US1.1", "US1.3", "US1.4", "US235", "US4.1.1", "US4.1.2", "US4.1.3", "US4.1.4", "US4.2", "US4.3", "US6.1", "US6.2") ~ "espace_artificialise",
# couverture == "CS1.2.1" &
# usage %in% c("US1.2", "US1.5", "US6.3", "US6.4") ~ "autre_surface_naturelle",
# couverture == "CS1.2.2" ~ "surface_en_eau",
# couverture %in% c("CS2.1.1.1", "CS2.1.1.2", "CS2.1.1.3", "CS2.1.2", "CS2.1.3", "CS2.2.1", "CS2.2.2") & usage == "US1.1" ~ "espace_agricole",
# couverture %in% c("CS2.1.1.1", "CS2.1.1.2", "CS2.1.1.3","CS2.1.1", "CS2.1.2", "CS2.1.3") & usage %in% c("US1.3", "US235") ~ "espace_artificialise",
# couverture %in% c("CS2.1.1.1", "CS2.1.1.2", "CS2.1.1.3", "CS2.1.2", "CS2.1.3") &
# usage %in% c("US1.2", "US1.4", "US1.5", "US4.1.1", "US4.1.2", "US4.1.3", "US4.1.4", "US4.1.5", "US4.2", "US4.3", "US6.1", "US6.2", "US6.3", "US6.4") ~ "surface_naturelle_boisee",
# couverture == "CS2.2.1" &
# usage %in% c("US1.3", "US1.4", "US1.5", "US235", "US4.1.1", "US4.1.2", "US4.1.3", "US4.1.4", "US4.1.5", "US4.2", "US4.3", "US6.1", "US6.2") ~ "espace_artificialise",
# couverture == "CS2.2.1" &
# usage %in% c("US1.2", "US6.3", "US6.4") ~ "autre_surface_naturelle",
# couverture == "CS2.2.2" &
# usage != "US1.1" ~ "a_definir",
# TRUE ~ "a_revoir"
# )
# )
## nouvelle nomenclature ---------------
# passage entre les catégories d'usage et de couverture du sol
# vers Artif / Non Artif
# elle a été établie à la demande de la DGALN par l'IGN
# lien vers la nouvelle nomenclature :
# https://artificialisation.developpement-durable.gouv.fr/sites/artificialisation/files/fichiers/2022/05/2022_05_03_Tableau-OCSGE-CouvUsage-ARTIFICIALISATION%5B1%5D.pdf
## ocsge ancienne génération ----------
ocsge_pdl_anc_gen <- ocsge_pdl_anc_gen %>%
dplyr::rename(
code_cs = couverture,
code_us = usage
) %>%
dplyr::mutate(millesime = as.character(millesime))
# unique(ocsge_pdl_anc_gen$code_us)
# [1] "US1.1" "US235" "US6.1" "US6.2" "US4.1.1" "US4.3" "US4.1.2" "US6.3" "US1.2" "US4.1.3" "US4.1.4" "US1.3" "US1.4"
# [14] "US4.2"
# unique(ocsge_pdl_anc_gen$code_cs)
# [1] "CS1.1.1.1" "CS1.1.1.2" "CS1.1.2.1" "CS1.2.1" "CS1.2.2" "CS2.1.1.1" "CS2.1.1.2" "CS2.1.1.3" "CS2.1.2" "CS2.2.1" "CS2.1.3"
# [12] "CS2.1.1" "CS1.1.2.2" "CS2.2.2"
ocsge_type_anc_gen <- dplyr::select(ocsge_pdl_anc_gen, code_cs, code_us) %>%
dplyr::distinct() %>% dplyr::distinct() %>%
dplyr::mutate( dplyr::mutate(
type_espace = dplyr::case_when( type_espace = dplyr::case_when(
couverture %in% c("CS1.1.1.1", "CS1.1.1.2", "CS1.1.2.1", "CS1.1.2.2") ~ "espace_artificialise", code_cs %in% c("CS1.1.1.1", "CS1.1.1.2", "CS1.1.2.2") ~ "espace_artificialise",
couverture == "CS1.2.1" & code_cs == "CS1.1.2.1" & code_us == "US1.3" ~ "espace_non_artificialise",
usage %in% c("US1.1", "US1.3", "US1.4", "US235", "US4.1.1", "US4.1.2", "US4.1.3", "US4.1.4", "US4.2", "US4.3", "US6.1", "US6.2") ~ "espace_artificialise", code_cs == "CS1.1.2.1" &
couverture == "CS1.2.1" & code_us %in% c("US1.1", "US1.2", "US1.4", "US1.5", "US235", "US2", "US3","US5",
usage %in% c("US1.2", "US1.5", "US6.3", "US6.4") ~ "autre_surface_naturelle", "US4.1.1", "US4.1.2", "US4.1.3", "US4.1.4", "US4.1.5",
couverture == "CS1.2.2" ~ "surface_en_eau", "US4.2", "US4.3", "US6.1", "US6.2", "US6.3", "US6.6") ~ "espace_artificialise",
couverture %in% c("CS2.1.1.1", "CS2.1.1.2", "CS2.1.1.3", "CS2.1.2", "CS2.1.3", "CS2.2.1", "CS2.2.2") & usage == "US1.1" ~ "espace_agricole", code_cs %in% c("CS1.2.1", "CS1.2.2", "CS1.2.3",
couverture %in% c("CS2.1.1.1", "CS2.1.1.2", "CS2.1.1.3","CS2.1.1", "CS2.1.2", "CS2.1.3") & usage %in% c("US1.3", "US235") ~ "espace_artificialise", "CS2.1.1.1", "CS2.1.1.2", "CS2.1.1.3",
couverture %in% c("CS2.1.1.1", "CS2.1.1.2", "CS2.1.1.3", "CS2.1.2", "CS2.1.3") & "CS2.1.2", "CS2.1.3") ~ "espace_non_artificialise",
usage %in% c("US1.2", "US1.4", "US1.5", "US4.1.1", "US4.1.2", "US4.1.3", "US4.1.4", "US4.1.5", "US4.2", "US4.3", "US6.1", "US6.2", "US6.3", "US6.4") ~ "surface_naturelle_boisee", code_cs %in% c("CS2.2.1", "CS2.2.2") &
couverture == "CS2.2.1" & code_us %in% c("US1.1", "US1.2", "US1.3", "US1.4", "US6.3", "US6.6") ~ "espace_non_artificialise",
usage %in% c("US1.3", "US1.4", "US1.5", "US235", "US4.1.1", "US4.1.2", "US4.1.3", "US4.1.4", "US4.1.5", "US4.2", "US4.3", "US6.1", "US6.2") ~ "espace_artificialise", code_cs %in% c("CS2.2.1", "CS2.2.2") &
couverture == "CS2.2.1" & code_us %in% c("US235", "US2", "US3","US5","US4.1.1", "US4.1.2",
usage %in% c("US1.2", "US6.3", "US6.4") ~ "autre_surface_naturelle", "US4.1.3", "US4.1.4", "US4.1.5",
couverture == "CS2.2.2" & "US4.2", "US4.3", "US6.1", "US6.2") ~ "espace_artificialise",
usage != "US1.1" ~ "a_definir", code_cs == "CS2.1.1" & code_us == "US235" ~ "espace_non_artificialise", # ajouté pour le cas de "44014" en 2013
TRUE ~ "a_revoir" TRUE ~ "a_revoir"
)
) )
)
# chargement de la liste des depcom COGiter région PDL et région PDL + epci ------- ## ocsge nouvelle génération ------------
source("R/levels_facteurs_com.R")
# unique(ocsge_pdl_nouv_gen$code_us)
# [1] "US1.1" "US2" "US3" "US4.3" "US5" "US6.1" "US6.2" "US4.1.1" "US4.1.2" "US6.3" "US1.2" "US235" "US1.4"
# [14] "US4.2" "US4.1.3" "US4.1.4" "US1.3"
# unique(ocsge_pdl_nouv_gen$code_cs)
# [1] "CS1.1.1.1" "CS1.1.1.2" "CS1.1.2.1" "CS1.2.1" "CS1.2.2" "CS2.1.1.1" "CS2.1.1.2" "CS2.1.1.3" "CS2.1.2" "CS2.2.1" "CS2.1.3"
# [12] "CS1.1.2.2"
ocsge_type_nouv_gen <- dplyr::select(ocsge_pdl_nouv_gen, code_cs, code_us) %>%
dplyr::distinct() %>%
dplyr::mutate(
type_espace = dplyr::case_when(
code_cs %in% c("CS1.1.1.1", "CS1.1.1.2", "CS1.1.2.2") ~ "espace_artificialise",
code_cs == "CS1.1.2.1" & code_us == "US1.3" ~ "espace_non_artificialise",
code_cs == "CS1.1.2.1" &
code_us %in% c("US1.1", "US1.2", "US1.4", "US1.5", "US235", "US2", "US3","US5",
"US4.1.1", "US4.1.2", "US4.1.3", "US4.1.4", "US4.1.5",
"US4.2", "US4.3", "US6.1", "US6.2", "US6.3", "US6.6") ~ "espace_artificialise",
code_cs %in% c("CS1.2.1", "CS1.2.2", "CS1.2.3",
"CS2.1.1.1", "CS2.1.1.2", "CS2.1.1.3",
"CS2.1.2", "CS2.1.3") ~ "espace_non_artificialise",
code_cs %in% c("CS2.2.1", "CS2.2.2") &
code_us %in% c("US1.1", "US1.2", "US1.3", "US1.4", "US6.3", "US6.6") ~ "espace_non_artificialise",
code_cs %in% c("CS2.2.1", "CS2.2.2") &
code_us %in% c("US235", "US2", "US3","US5","US4.1.1", "US4.1.2",
"US4.1.3", "US4.1.4", "US4.1.5",
"US4.2", "US4.3", "US6.1", "US6.2") ~ "espace_artificialise",
TRUE ~ "a_revoir"
)
)
# calcul des indicateurs communaux ----------- # calcul des indicateurs communaux -----------
source_ocsge <- ocsge_pdl %>%
dplyr::left_join(ocsge_type) %>% # chargement de la liste des depcom COGiter région PDL et région PDL + epci
source("R/levels_facteurs_com.R")
source_ocsge_anc_gen <- ocsge_pdl_anc_gen %>%
dplyr::left_join(ocsge_type_anc_gen) %>%
dplyr::select(
depcom = code_insee,
date,
variable = type_espace,
valeur = surf_intersection_m2
) %>%
dplyr::group_by(date, depcom, variable) %>%
dplyr::summarise(valeur = sum(valeur), .groups = "drop") %>%
dplyr::mutate_if(is.character, as.factor) %>%
dplyr::mutate(depcom = forcats::fct_expand(depcom, com_reg)) %>%
tidyr::complete(depcom, date, variable, fill = list(valeur = NA), explicit = FALSE) %>%
dplyr::mutate(depcom = forcats::fct_expand(depcom, com_reg_et_vois)) %>%
tidyr::complete(depcom, date, variable, fill = list(valeur = NA)) %>%
tidyr::pivot_wider(names_from = variable,values_from = valeur)
source_ocsge_nouv_gen <- ocsge_pdl_nouv_gen %>%
dplyr::left_join(ocsge_type_nouv_gen) %>%
dplyr::select( dplyr::select(
depcom = code_insee, depcom = code_insee,
date, date,
...@@ -132,10 +316,15 @@ source_ocsge <- ocsge_pdl %>% ...@@ -132,10 +316,15 @@ source_ocsge <- ocsge_pdl %>%
dplyr::summarise(valeur = sum(valeur), .groups = "drop") %>% dplyr::summarise(valeur = sum(valeur), .groups = "drop") %>%
dplyr::mutate_if(is.character, as.factor) %>% dplyr::mutate_if(is.character, as.factor) %>%
dplyr::mutate(depcom = forcats::fct_expand(depcom, com_reg)) %>% dplyr::mutate(depcom = forcats::fct_expand(depcom, com_reg)) %>%
tidyr::complete(depcom, date, variable, fill = list(valeur = 0), explicit = FALSE) %>% tidyr::complete(depcom, date, variable, fill = list(valeur = NA), explicit = FALSE) %>%
dplyr::mutate(depcom = forcats::fct_expand(depcom, com_reg_et_vois)) %>% dplyr::mutate(depcom = forcats::fct_expand(depcom, com_reg_et_vois)) %>%
tidyr::complete(depcom, date, variable, fill = list(valeur = NA)) %>% tidyr::complete(depcom, date, variable, fill = list(valeur = NA)) %>%
tidyr::pivot_wider(names_from = variable,values_from = valeur) tidyr::pivot_wider(names_from = variable,values_from = valeur)
source_ocsge <- dplyr::bind_rows(
source_ocsge_nouv_gen,
source_ocsge_anc_gen
)
# versement de ocsge dans le sgbd/datamart.portrait_territoires et metadonnées ------------- # versement de ocsge dans le sgbd/datamart.portrait_territoires et metadonnées -------------
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment