İki bitişik şekil dosyasını birleştirdikten sonra ortak bir alanda birlik oluşturmaya çalışıyorum. Şekil dosyaları, aralarında en az bir ince şerit ile sonuçlanır. Bir sendika girişiminde bulunduğumda şu yetim delik hatasını alıyorum:
CreatePolygonsComment (p) hatası: rgeos_PolyCreateComment: artık delik, dizin 17'deki delik için çokgen içeren bulunamadı
Bu bağlantıdan Dropbox'a tekrarlanabilir bir örnek yükledim .
Sorunu yeniden oluşturmak için kod:
#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)
İadeler:
CreatePolygonsComment (p) hatası: rgeos_PolyCreateComment: artık delik, dizin 17'deki delik için çokgen içeren bulunamadı
Burada ve burada önerilen düzeltmeyi deneyin :
slot(example, "polygons") <- lapply(slot(example, "polygons"), checkPolygonsHoles)
Bu, sendika girişiminden gelen aynı hatayı döndürür, ancak farklı dizin numarasıyla döner:
rgeos_PolyCreateComment: artık delik, dizin 30'daki delik için çokgen içeren bulunamadı
Roger Bivand'ın yararlı eğitiminde önerilen düzeltmeyi denemek
fix <- slot(example, "polygons")
fixa <- lapply(fix, checkPolygonsHoles)
Yukarıdaki 30 dizininde aynı hatayı döndürür.
Diğerleri bu sorunu burada ve burada ortaya attılar ve yukarıda ortaya konan çözümler bazı durumlarda işe yarıyor gibi görünse de, diğer davalar çözülmedi. Bir kullanıcı sorunu çözmek için QGIS kullandı ve diğerinde 3 öğeden 2'si düzeltildi, ancak sonuncusu için çözüm yoktu.
Bu kod zaman zaman çalışmasına rağmen insanlar sorun yaşamaya devam ediyor gibi görünüyor. R içinde bir çözüm bulan var mı?
ArcGIS'de "onarım geometrisi" aracını kullandım ve sorunu düzeltti, ancak R'de bir düzeltme olması gerektiği anlaşılıyor.