Existe-t-il un moyen d'éliminer les petits "éclats" entre les polygones en utilisant R
? La solution souhaitée créerait une nouvelle SpatialPolygonsDataFrame
où les frontières partagées entre les polygones coïncident. Je suis particulièrement intéressé par une solution qui utilise R
, plutôt qu'ArcMap ou QGIS.
Je serais également intéressé d'entendre une explication des raisons pour lesquelles ces lacunes existent en premier lieu.
Voici un exemple reproductible des données spatiales avec lesquelles je travaille:
library(rgdal)
library(sp)
library(tigris)
library(magrittr)
library(leaflet)
library(gplots)
# This project will use WGS 84 projected coordinate system
crs_proj <- CRS("+init=epsg:4326")
# These are the FIPS codes of the specific block groups in my study area
sel <- c("530330079005", "530330079001", "530330079004",
"530330085002", "530330085003", "530330086003",
"530330087003", "530330085001", "530330090001",
"530330091001", "530330091002", "530330092001",
"530330092002", "530330086001", "530330090002",
"530330086002", "530330079003", "530330079002",
"530330087002", "530330087001")
# Create polygons
polygons <- tigris::block_groups(state = "WA",county = "King") %>%
.[.@data$GEOID %in% sel,] %>%
spTransform(CRSobj = crs_proj)
# Map the result
leaflet() %>%
addProviderTiles("CartoDB.Positron") %>%
addPolygons(data = polygons,
stroke = F,
fillColor = col2hex("red"), fillOpacity = 1)
Comme vous pouvez le voir dans la capture d'écran ci-dessus, il existe de petits écarts entre les polygones des groupes de blocs de recensement. L'emplacement de ces espaces est rendu différemment selon le niveau de zoom, mais il y a toujours des espaces visibles.
Quelqu'un peut-il recommander une R
fonction (ou une combinaison de fonctions) pour ajuster par programme les polygones pour éliminer ces lacunes?