## Mapping of the circonscriptions in 2017 # import geo_circ <- read_sf("https://www.data.gouv.fr/fr/datasets/r/efa8c2e6-b8f7-4594-ad01-10b46b06b56a", as_tibble = FALSE) # We keep the metropolitean France: paris <- geo_circ[geo_circ$code_dpt %in% c("75", "92", "93", "94"),] center_paris <- st_centroid(st_union(paris)) st_geometry(geo_circ[geo_circ$code_dpt %in% c("75", "92", "93", "94"),]) <- ((st_geometry(paris) - st_geometry(center_paris)) * 4.5 + st_geometry(center_paris) + st_geometry(st_point(c(7.5, 1)))) guada <- geo_circ[geo_circ$code_dpt %in% "ZA",] centro_guada <- st_centroid(st_union(guada)) st_geometry(geo_circ[geo_circ$code_dpt %in% "ZA",]) <- (st_geometry(guada) - st_geometry(centro_guada)) * 1.5 + st_geometry(st_point(c(-6.5, 51))) marti <- geo_circ[geo_circ$nom_reg %in% "MARTINIQUE",] centro_marti <- st_centroid(st_union(marti)) st_geometry(geo_circ[geo_circ$nom_reg %in% "MARTINIQUE",]) <- (st_geometry(marti) - st_geometry(centro_marti)) * 1.5 + st_geometry(st_point(c(-6.5, 50))) guya <- geo_circ[geo_circ$nom_reg %in% "GUYANE",] centro_guya <- st_centroid(st_union(guya)) st_geometry(geo_circ[geo_circ$nom_reg %in% "GUYANE",]) <- (st_geometry(guya) - st_geometry(centro_guya)) * 0.25 + st_geometry(st_point(c(-6.5, 49))) reun <- geo_circ[geo_circ$nom_reg %in% "LA REUNION",] centro_reun <- st_centroid(st_union(reun)) st_geometry(geo_circ[geo_circ$nom_reg %in% "LA REUNION",]) <- (st_geometry(reun) - st_geometry(centro_reun)) * 1.25 + st_geometry(st_point(c(-6.5, 48))) stpi <- geo_circ[geo_circ$nom_dpt %in% "SAINT-PIERRE-ET-MIQUELON",] centro_stpi <- st_centroid(st_union(stpi)) st_geometry(geo_circ[geo_circ$nom_dpt %in% "SAINT-PIERRE-ET-MIQUELON",]) <- (st_geometry(stpi) - st_geometry(centro_stpi)) * 1.4 + st_geometry(st_point(c(-6.5, 47))) mayo <- geo_circ[geo_circ$nom_dpt %in% "MAYOTTE",] centro_mayo <- st_centroid(st_union(mayo)) st_geometry(geo_circ[geo_circ$nom_dpt %in% "MAYOTTE",]) <- (st_geometry(mayo) - st_geometry(centro_mayo)) * 1.4 + st_geometry(st_point(c(-6.5, 46))) wall <- geo_circ[geo_circ$nom_dpt %in% "WALLIS-ET-FUTUNA",] centro_wall <- st_centroid(st_union(wall)) st_geometry(geo_circ[geo_circ$nom_dpt %in% "WALLIS-ET-FUTUNA",]) <- (st_geometry(wall) - st_geometry(centro_wall)) * 0.6 + st_geometry(st_point(c(-6.5, 45))) stma <- geo_circ[geo_circ$nom_dpt %in% "SAINT-MARTIN/SAINT-BARTHELEMY",] centro_stma <- st_centroid(st_union(stma)) st_geometry(geo_circ[geo_circ$nom_dpt %in% "SAINT-MARTIN/SAINT-BARTHELEMY",]) <- (st_geometry(stma) - st_geometry(centro_stma)) * 1.5 + st_geometry(st_point(c(-6.5, 44))) poly <- geo_circ[geo_circ$nom_dpt %in% "POLYNESIE-FRANCAISE",] centro_poly <- st_centroid(st_union(poly)) st_geometry(geo_circ[geo_circ$nom_dpt %in% "POLYNESIE-FRANCAISE",]) <- (st_geometry(poly) - st_geometry(centro_poly)) * 0.05 + st_geometry(st_point(c(-6.5, 43))) nllca <- geo_circ[geo_circ$nom_dpt %in% "NOUVELLE-CALEDONIE",] centro_nllca <- st_centroid(st_union(nllca)) st_geometry(geo_circ[geo_circ$nom_dpt %in% "NOUVELLE-CALEDONIE",]) <- (st_geometry(nllca) - st_geometry(centro_nllca)) * 0.2 + st_geometry(st_point(c(-6.5, 42))) geo_circ <- rbind( geo_circ, st_sf(ID = "ZZ001", code_dpt = "ZZ", nom_dpt = "ZZ", nom_reg = "-", num_circ = 1, code_reg = "-", geometry = st_buffer(st_sfc(st_point(c(-3, 42))), dist = 0.2), crs = st_crs(geo_circ)), st_sf(ID = "ZZ002", code_dpt = "ZZ", nom_dpt = "ZZ", nom_reg = "-", num_circ = 2, code_reg = "-", geometry = st_buffer(st_sfc(st_point(c(-2, 42))), dist = 0.2), crs = st_crs(geo_circ)), st_sf(ID = "ZZ003", code_dpt = "ZZ", nom_dpt = "ZZ", nom_reg = "-", num_circ = 3, code_reg = "-", geometry = st_buffer(st_sfc(st_point(c(-1, 42))), dist = 0.2), crs = st_crs(geo_circ)), st_sf(ID = "ZZ004", code_dpt = "ZZ", nom_dpt = "ZZ", nom_reg = "-", num_circ = 4, code_reg = "-", geometry = st_buffer(st_sfc(st_point(c(0, 42))), dist = 0.2), crs = st_crs(geo_circ)), st_sf(ID = "ZZ005", code_dpt = "ZZ", nom_dpt = "ZZ", nom_reg = "-", num_circ = 5, code_reg = "-", geometry = st_buffer(st_sfc(st_point(c(1, 42))), dist = 0.2), crs = st_crs(geo_circ)), st_sf(ID = "ZZ006", code_dpt = "ZZ", nom_dpt = "ZZ", nom_reg = "-", num_circ = 6, code_reg = "-", geometry = st_buffer(st_sfc(st_point(c(2, 42))), dist = 0.2), crs = st_crs(geo_circ)), st_sf(ID = "ZZ007", code_dpt = "ZZ", nom_dpt = "ZZ", nom_reg = "-", num_circ = 7, code_reg = "-", geometry = st_buffer(st_sfc(st_point(c(3, 42))), dist = 0.2), crs = st_crs(geo_circ)), st_sf(ID = "ZZ008", code_dpt = "ZZ", nom_dpt = "ZZ", nom_reg = "-", num_circ = 8, code_reg = "-", geometry = st_buffer(st_sfc(st_point(c(4, 42))), dist = 0.2), crs = st_crs(geo_circ)), st_sf(ID = "ZZ009", code_dpt = "ZZ", nom_dpt = "ZZ", nom_reg = "-", num_circ = 9, code_reg = "-", geometry = st_buffer(st_sfc(st_point(c(5, 42))), dist = 0.2), crs = st_crs(geo_circ)), st_sf(ID = "ZZ010", code_dpt = "ZZ", nom_dpt = "ZZ", nom_reg = "-", num_circ = 10, code_reg = "-", geometry = st_buffer(st_sfc(st_point(c(6, 42))), dist = 0.2), crs = st_crs(geo_circ)), st_sf(ID = "ZZ011", code_dpt = "ZZ", nom_dpt = "ZZ", nom_reg = "-", num_circ = 11, code_reg = "-", geometry = st_buffer(st_sfc(st_point(c(7, 42))), dist = 0.2), crs = st_crs(geo_circ))) new_bb = c(-5.115104, 41.368038, 9.559823, 51.089397) names(new_bb) = c("xmin", "ymin", "xmax", "ymax") attr(new_bb, "class") = "bbox" attr(st_geometry(geo_circ), "bbox") = new_bb # We merge with the data: circ_2017$ID <- paste0(circ_2017$code_dep, "0", circ_2017$code_circ) circ_2012$ID <- paste0(circ_2012$code_dep, "0", circ_2012$code_circ) geo_circ <- merge(geo_circ, data.frame(inscrits_2012 = circ_2012$inscrits, ID = circ_2012$ID), by = "ID") geo_circ <- merge(geo_circ, data.frame(inscrits_2017 = circ_2017$inscrits, ID = circ_2017$ID), by = "ID") # We merge with population per circonscription : geo_circ <- merge(geo_circ, pop_circ, by = "ID", all.x = T)