Có cách nào để loại bỏ các "mảnh" nhỏ giữa các đa giác bằng cách sử dụng R
không? Giải pháp mong muốn sẽ tạo ra một điểm mới SpatialPolygonsDataFrame
trong đó ranh giới chung giữa các đa giác là trùng khớp. Tôi đặc biệt quan tâm đến một giải pháp sử dụng R
, thay vì ArcMap hoặc QGIS.
Tôi cũng sẽ thích thú khi nghe một lời giải thích về lý do tại sao những khoảng trống này tồn tại ở nơi đầu tiên.
Đây là một ví dụ có thể lặp lại của dữ liệu không gian tôi đang làm việc với:
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)
Như bạn có thể thấy trong ảnh chụp màn hình ở trên, có những khoảng trống nhỏ giữa các đa giác nhóm khối điều tra dân số. Các vị trí của các khoảng trống này được hiển thị khác nhau tùy thuộc vào mức thu phóng, nhưng luôn có một số khoảng trống có thể nhìn thấy.
Bất cứ ai cũng có thể đề nghị một R
chức năng (hoặc kết hợp các chức năng) để lập trình điều chỉnh các đa giác để loại bỏ các khoảng trống này?