Tôi đang cố gắng thực hiện một liên minh trên một lĩnh vực chung sau khi hợp nhất hai shapefile liền kề. Các shapefiles kết thúc với ít nhất một mảnh không gian mỏng giữa chúng. Khi tôi cố gắng kết hợp, tôi nhận được lỗi lỗ mồ côi sau đây:
Lỗi trong createPolygonsVer (p): rgeos_PolyCreateVer: lỗ mồ côi, không thể tìm thấy chứa đa giác cho lỗ ở chỉ số 17
Tôi đã tải lên một ví dụ có thể tái tạo lên Dropbox tại liên kết này .
Đây là mã để tạo lại vấn đề:
#loading required packages
require(sp)
require(rgdal)
require(maptools)
require(rgeos)
#load example data, set "dsn=" to your working directory or specify the path
example <- readOGR(dsn=".",layer="ReproducibleExample")
#Attempting a UnionSpatialPolygons based on the COUNTY field
example.df <- as(example, "data.frame")
countycol <- example.df$COUNTY
example.diss <- unionSpatialPolygons(example, countycol)
Trả về:
Lỗi trong createPolygonsVer (p): rgeos_PolyCreateVer: lỗ mồ côi, không thể tìm thấy chứa đa giác cho lỗ ở chỉ số 17
Đang thử bản sửa lỗi được đề xuất ở đây và đây :
slot(example, "polygons") <- lapply(slot(example, "polygons"), checkPolygonsHoles)
Điều này trả về cùng một lỗi xuất phát từ nỗ lực hợp nhất nhưng với số chỉ mục khác nhau:
rgeos_PolyCreateVer: lỗ mồ côi, không thể tìm thấy chứa đa giác cho lỗ ở chỉ số 30
Thử bản sửa lỗi được đề xuất trong hướng dẫn hữu ích của Roger Bivand
fix <- slot(example, "polygons")
fixa <- lapply(fix, checkPolygonsHoles)
Trả về cùng một lỗi ở chỉ số 30 như trên.
Những người khác đã nêu ra vấn đề này ở đây và ở đây , và trong khi các giải pháp được nêu ở trên dường như có hiệu quả đối với một số trường hợp, các trường hợp khác không được giải quyết. Một người dùng đã sử dụng QGIS để giải quyết vấn đề và người kia đã sửa 2 trong 3 mục, nhưng không có giải pháp nào cho mục cuối cùng.
Có vẻ như mọi người tiếp tục gặp vấn đề mặc dù mã này thỉnh thoảng hoạt động. Có ai tìm thấy một giải pháp trong R?
Tôi đã thực hiện công cụ "sửa chữa hình học" trong ArcGIS và nó đã khắc phục vấn đề, nhưng có vẻ như cần phải sửa lỗi trong R.