मैं दो समीपस्थ आकृति के विलय के बाद एक सामान्य क्षेत्र पर एक संघ प्रदर्शन करने की कोशिश कर रहा हूं। शेपफाइल उनके बीच में कम से कम एक पतली स्लिवर स्पेस के साथ समाप्त होता है। जब मैं एक संघ का प्रयास करता हूं तो मुझे निम्नलिखित अनाथ छेद त्रुटि मिलती है:
CreatePolygonsComment (p) में त्रुटि: rgeos_PolyCreateComment: अनाथ छेद, सूचकांक 17 पर छेद के लिए बहुभुज युक्त नहीं मिल सकता है
मैंने इस लिंक पर ड्रॉपबॉक्स में एक प्रतिलिपि प्रस्तुत करने योग्य उदाहरण अपलोड किया है ।
यहाँ समस्या को फिर से बनाने के लिए कोड है:
#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)
यह दिखाता है:
CreatePolygonsComment (p) में त्रुटि: rgeos_PolyCreateComment: अनाथ छेद, सूचकांक 17 पर छेद के लिए बहुभुज युक्त नहीं मिल सकता है
यहाँ और यहाँ प्रस्तावित फिक्स की कोशिश कर रहा है :
slot(example, "polygons") <- lapply(slot(example, "polygons"), checkPolygonsHoles)
यह वही त्रुटि देता है जो यूनियन प्रयास से आती है लेकिन अलग-अलग इंडेक्स संख्या के साथ:
rgeos_PolyCreateComment: अनाथ छेद, सूचकांक 30 पर छेद के लिए बहुभुज युक्त नहीं मिल सकता है
रोजर बिवांड के सहायक ट्यूटोरियल में प्रस्तावित फिक्स की कोशिश करना
fix <- slot(example, "polygons")
fixa <- lapply(fix, checkPolygonsHoles)
ऊपर के रूप में सूचकांक 30 पर एक ही त्रुटि देता है।
दूसरों ने इस समस्या को यहां और यहां उठाया है , और जबकि ऊपर दिए गए समाधान कुछ मामलों के लिए काम करते हैं, अन्य मामलों का समाधान नहीं किया जाता है। एक उपयोगकर्ता ने समस्या को संबोधित करने के लिए QGIS का उपयोग किया, और दूसरे में 2 में से 3 आइटम तय किए गए थे, लेकिन अंतिम के लिए कोई संकल्प नहीं था।
ऐसा प्रतीत होता है कि लोगों को समय-समय पर इस कोड के काम करने के बावजूद समस्याएं बनी रहती हैं। क्या किसी ने R के भीतर कोई समाधान पाया है?
मैंने आर्कगिस में "मरम्मत ज्यामिति" उपकरण का प्रदर्शन किया है, और इसने समस्या को ठीक किया, लेकिन ऐसा लगता है कि आर में एक फिक्स होना चाहिए।