Existe uma maneira de eliminar as pequenas "lascas" entre polígonos usando R
? A solução desejada criaria um novo SpatialPolygonsDataFrame
onde os limites compartilhados entre polígonos são coincidentes. Estou especificamente interessado em uma solução que utiliza R
, em vez de ArcMap ou QGIS.
Eu também estaria interessado em ouvir uma explicação sobre por que essas lacunas existem em primeiro lugar.
Aqui está um exemplo reproduzível dos dados espaciais com os quais estou trabalhando:
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)
Como você pode ver na captura de tela acima, existem pequenas lacunas entre os polígonos do grupo de blocos de censo. A localização dessas lacunas é renderizada de maneira diferente, dependendo do nível de zoom, mas sempre há algumas lacunas visíveis.
Alguém pode recomendar uma R
função (ou uma combinação de funções) para ajustar programaticamente os polígonos para eliminar essas lacunas?