मुझे पता है कि आपके लिए क्या काम कर सकता है। यह कुछ मान्यताओं पर आधारित होने जा रहा है, लेकिन यह संभव समान सुविधाओं की आपकी सूची को कम करने में मदद करेगा। यह एक स्वचालित प्रक्रिया नहीं होगी, लेकिन इसे मैन्युअल रूप से डुप्लिकेट को देखने की आवश्यकता होगी। टिप्पणियों के आधार पर, ऐसा लगता है कि स्वचालित उपकरण विशेषताओं की तुलना नहीं करते हैं, जिससे आपको सुविधाओं को हटाने में मदद नहीं मिलेगी।
ArcMap का उपयोग करना
(1) अगर चीजें गलत हो जाएं तो अपने शेपफाइल की कॉपी बनाएं।
(२) अपने शेपफाइल में डबल के रूप में एक कॉलम जोड़ें।
(3) सबसे अधिक वर्णनात्मक (सबसे सटीक) प्रारूप का उपयोग करके प्रत्येक सुविधा के लिए क्षेत्र की गणना करें। कुछ जहां गोलाई एक मुद्दा नहीं हो सकता है।
(4) उस कॉलम पर एक सारांश (संक्षेप) चलाएं। सुनिश्चित करें कि आप संक्षेप में एक अद्वितीय पहचानकर्ता का चयन करें और पहले और अंतिम दोनों को चिह्नित करें।
(५) अपनी आउटपुट तालिका में, उन अभिलेखों को देखें जहाँ गिनती क्षेत्र १ से अधिक है।
(6 ए) मैन्युअल रूप से सुविधाओं की जांच करें और प्रक्रिया को दोहराएं जब तक कि अधिक डुप्लिकेट न हों।
(६ बी) आप केवल उन विशिष्ट आईडी की सूची बना सकते हैं और आर्कपी के माध्यम से सुविधाओं को हटा सकते हैं, लेकिन आप संभवतः एक ही क्षेत्र के साथ दो अज्ञात सुविधाओं के होने का मौका चलाते हैं।
आर्कपी का उपयोग करते हुए एक और तकनीक
जैसा कि मैं उपर्युक्त उत्तर का निर्माण कर रहा था, मैंने इस संभावना के बारे में सोचा कि किसी भी तरह इस डेटा के कई लेखकों ने वास्तव में डुप्लिकेट किए गए सुविधाओं के लिए समान अद्वितीय पहचानकर्ताओं का उपयोग किया हो सकता है। यदि ऐसा है, तो आप आर्कपी में लूपिंग के माध्यम से डुप्लिकेट खोजने में सक्षम हो सकते हैं।
जिस तरह से मैं सोचता हूं कि आर्कपी का उपयोग करने से यह आपके सिस्टम पर कर लग सकता है और थोड़ा सा ले सकता है।
(1) अपने आकार की प्रतिलिपि बनाएँ (मामले में फिर से)
(2) डुप्लिकेट को निरूपित करने के लिए एक नया कॉलम जोड़ें। कुछ ऐसा जो 'y' या 'n' या 0 या 1 या जो कुछ भी काम करता है, की तरह लगता है।
(3) अद्वितीय पहचानकर्ता को संग्रहीत करने के लिए अजगर में एक सूची बनाएं।
(4) एक अद्यतन कर्सर चलाएँ ( arcpy.UpdateCursor('LAYERNAME')
)। प्रत्येक रिकॉर्ड के लिए, आप यह देखने के लिए सूची की जाँच करें कि क्या उसमें वह पहचानकर्ता है या नहीं तो आपके कॉलम को डुप्लिकेट के लिए चिह्नित करें।
myList = []
rows = arcpy.UpdateCursor("layername")
for row in rows:
if str(row.UniqueIdentifier) in myList:
#value duplicated
row.DuplicateColumnName = "y"
else:
#not there, add it
myList.append(row.UniqueIdentifier)
rows.updateRow(row)
(५) फिर आप उन चिह्नित स्तंभों के साथ जो चाहें कर सकते हैं।
इन तुलनाओं को करने के लिए शायद बेहतर तरीके हैं, लेकिन वे दो हैं जो मेरा मानना है कि काम करना चाहिए या कम से कम आपको शुरू करना चाहिए।
संपादित करें
एल्ब्रोसिस की टिप्पणी के आधार पर , आप गलत सुविधाओं को हटाने की संभावना को कम करने के लिए न्यूनतम बाउंडिंग आयत का उपयोग कर सकते हैं।
ArcMap का उपयोग करके, आप डेटा प्रबंधन में न्यूनतम बाउंडिंग ज्यामिति उपकरण चला सकते हैं । विकल्पों पर जाँच करने के बाद, मुझे लगता है कि CONVEX_HULL विकल्प का उपयोग करना शायद सबसे अच्छा होगा।
यदि आप डुप्लिकेट के लिए MBG_Orientation के साथ-साथ MBG_APodX / Y1 , MBG_APod_X / Y2 फ़ील्ड की तुलना करते हैं, तो आपको डुप्लिकेट सुविधाओं का एक अच्छा विचार प्राप्त करने में सक्षम होना चाहिए। मैं सुझाव दूंगा कि मैं तुलना करने के लिए ऊपर वर्णित संक्षेप विधि का उपयोग कर रहा हूं। डुप्लिकेट खोजने के लिए बाउंडिंग आयत से एक कोने (निर्देशांक) को चुनें। आपको कुछ आकस्मिक 'मैच' मिल सकते हैं, लेकिन एक बार जब आप अन्य वर्टीकल प्लस ओरिएंटेशन में जोड़ते हैं, तो यह काफी सुरक्षित शर्त होगी कि परिणाम की विशेषताएं डुप्लिकेट हैं।
हालाँकि मैंने इसका उपयोग नहीं किया है और इस उपकरण के परिणामों के बारे में निश्चित नहीं हूं, लेकिन यदि आप ArcMap में सारांश सांख्यिकी टूल का उपयोग करते हैं, तो आपको परिणामी आकार की जांच आसान लग सकती है । ऐसा लगता है कि आप मेरे एकल कॉलम विकल्प के बजाय कई कॉलमों को संक्षिप्त कर सकते हैं।
मुझे नहीं लगता कि बिना डुप्लीकेट फीचर को डिलीट किए संभावना की चिंता किए बिना ऐसा करने का एक पूरी तरह से स्वचालित तरीका होगा। इन विधियों को उन विशेषताओं की संख्या को सीमित करने में मदद करनी चाहिए जिनकी आपको मैन्युअल रूप से समीक्षा करने की आवश्यकता होगी।