बहुभुज में छेद स्वचालित रूप से कैसे भरें?


12

क्या QGIS में कोई विकल्प है कि वे अधिकतम सीमा क्षेत्र, सीमा रेखा के बीच की दूरी जैसे मापदंडों को निर्धारित करके बहुभुज में छिद्रों को स्वचालित रूप से भरें? मैं उन छेदों को हटाना / भरना चाहता हूं जो बहुत "पतले" / छोटे हैं।


1
क्या आप छिद्रों (पोलीगोन के अंदर के छल्ले) में रुचि रखते हैं या अलग-अलग बहुभुजों के बीच अंतराल को कम कर रहे हैं?
सिंबांगु

क्या यह QGIS आधारित समाधान है? मैंने PostGIS ( geospatial.commons.gc.cuny.edu/2013/11/04/… ) में स्थानिक एसक्यूएल का उपयोग करके इसे पूरा करने के तरीके के बारे में पहले ब्लॉग किया है । यदि आप PostGIS नहीं चला रहे हैं, तो मैं शायद आपके लिए इसे SpatiaLite के लिए अनुकूलित कर सकता हूं, जो कि, अनुमान लगाने पर, यदि आप QGIS का उपयोग कर रहे हैं, तो आपके टूलकिन में SpatiaLite पहले से ही हो सकता है।
ली हैचेरियन

जवाबों:


11

प्रसंस्करण संस्करण 2.10.2 के साथ QGIS 2.10.1-Pisa का उपयोग करना , प्रसंस्करण टूलबॉक्स से कुछ उपकरण उपलब्ध हैं :

  • छेद उपकरण भरें जो आप अधिकतम क्षेत्र निर्दिष्ट कर सकते हैं ।
  • होल टूल को हटाएं जो पूरे इनपुट लेयर पर लागू होगा।

उम्मीद है की यह मदद करेगा!


1
बस जांच करने के लिए, अधिकतम क्षेत्र पैरामीटर, जो कि भरे जाने वाले छेद का अधिकतम आकार है? तो एक मीटर UTM प्रोजेक्ट में, अगर अधिकतम 10,000 था, तो इसका मतलब होगा कि भरा जाने वाला सबसे बड़ा छेद एक हेक्टेयर होगा और इससे बड़ा कोई भी नहीं रहेगा?
21

1
@BillW - हाँ, मेरा मानना ​​है कि यह ठीक वैसा ही है :)
यूसुफ

11

मुझे आपकी इस आकृति के समान समस्या का सामना करना पड़ा है, बहुभुज के बीच कई अंतराल हैं।

मूल फ़ाइल अंतराल के साथ

समस्या को हल करने के लिए, आप tshiffle की विधि का थोड़ा संशोधन कर सकते हैं:

  1. सबसे पहले, अपनी फ़ाइल और बहुभुज के बीच के अंतर को पूरी तरह से कवर करें।

Extent_polygon

Difference_tool

यह क्रिया केवल एक बहुभुज से मिलकर एक नई आकृति बनाएगी, इसलिए आपको इसे एकल भागों में विस्फोट करना होगा। उसके लिए, आप वेक्टर / जियोमेट्री टूल्स / मल्टीपार्ट को सिंगलपार्ट्स टूल में उपयोग कर सकते हैं।

Difference_result

Multi_to_single

उसके बाद, बाहरी इकाई को हटा दें। अब आपके पास एक नई आकृति में है, कई बहुभुज आपके मूल कवरेज के अंतराल को कवर करते हैं।

gaps_covered

  1. प्रारंभिक डेटा और एकल भागों के बीच एक संघ का प्रदर्शन करें। SAGA उपकरण का उपयोग करें, क्योंकि डिफ़ॉल्ट QGIS विकल्प डेटाबेस में डुप्लिकेट बनाता है।

संघ

  1. सभी अंतराल अब डेटाबेस में रिक्त रिकॉर्ड (उदाहरण के लिए 72 पंक्तियों) के रूप में दिखाई देंगे। एक क्षेत्र फ़ील्ड का उपयोग करके अपनी तालिका को सॉर्ट करें और मूल फ़ाइल में सबसे छोटे बहुभुज से मान लें। इस मामले के लिए, 0.13645 हेक्टेयर।

डेटाबेस

  1. अंत में, इमेज में दिखाई गई सेटिंग्स के साथ, "स्लिवर पॉलीगन्स" को हटा दें।

यहाँ छवि विवरण दर्ज करें

  1. अंतिम परिणाम में कोई अंतराल नहीं है।

यहाँ छवि विवरण दर्ज करें


क्या आप मापदंडों की पसंद के संबंध में अधिक जानकारी जोड़ सकते हैं? "मूल्य" क्या है? विवरण पर QGIS प्रलेखन पृष्ठ बहुत छोटा है। बहुत ही सुंदर जवाब, दयालु प्रारंभिक उपयोगकर्ता ने किसी भी उत्तर को स्वीकार नहीं किया है!
user3386170

1
'मूल्य' वह परिमाण है जिसका उपयोग आप तुलना के लिए करते हैं। उदाहरण में प्रयुक्त क्षेत्र 'क्षेत्र' हेक्टेयर में स्थापित किया गया था, इसलिए 0.1 का अर्थ है: 0.1 हेक्टेयर से छोटे या बराबर बहुभुज को खत्म करना।
gtapko

gtapko, क्या आप चरण 3 के बारे में अधिक जानकारी प्रदान कर सकते हैं? मैं इसे समझ नहीं सकता, धन्यवाद
newGIS

4

वहाँ और अधिक सुंदर समाधान हो सकता है, लेकिन यह हमेशा मेरे लिए काम किया है।

1) "छेद भरने" बहुभुज बनाएं। ऐसा करने के लिए मूल से बड़ा एक विशाल बहुभुज बनाएं और "अंतर" टूल का उपयोग करें। यदि आप एक बहुत बड़ा बहुभुज आकर्षित करते हैं, तो आपके पास सभी "होल-फिलिंग" बहुभुज और एक एकल बड़ा बहुभुज होगा जो मूल आकार के आसपास जाता है। "छेद भरने" बहुभुज रखते हुए, उस बड़े बहुभुज को हटा दें।

2) मूल आकार के साथ "छेद भरने" बहुभुज को मिलाएं। यदि आप केवल उन छेदों को भरना चाहते हैं जो एक निश्चित मानदंड (यानी वर्ग किलोमीटर के एक्स संख्या के तहत) फिट होते हैं, तो आप उसके लिए यहां फ़िल्टर कर सकते हैं।

3) एक सामान्य क्षेत्र पर नए विलय वाले बहुभुज को भंग करें।


चरण 3 के बारे में स्पष्ट नहीं है, आम क्षेत्र को कोई कैसे खोजेगा?
इरफ़ान

इस चरण में सामान्य क्षेत्र कुछ भी हो सकता है, लक्ष्य केवल बहुभुज के बीच की सीमाओं को भंग करना है। आप किसी मौजूदा फ़ील्ड का उपयोग कर सकते हैं या केवल एक जोड़ सकते हैं।
tshiffle

4

अजगर / आकार में, यह आपके बहुभुज में भर सकता है:

import shapely
from shapely.geometry import Polygon
filled_shape = Polygon(shape_with_holes.exterior)

2

मैंने gtapko और tshiffle के समान पथ का अनुसरण करते हुए कुछ स्पष्टीकरण देखे हैं, लेकिन किसी ने भी मेरे लिए काम नहीं किया क्योंकि अमान्य geometries ने अंतर उपकरण को अव्यवस्थित बना दिया। इसलिए, मैं अपने स्वयं के समाधान के साथ आया हूं जो 100% स्वचालित नहीं है, लेकिन यह प्रबंधनीय है। शायद किसी ने पहले से ही यह समझ लिया है, लेकिन मैं अपना मौका लूंगा:

1) मूल, क्षतिग्रस्त परत पर एक आईडी बनाएं

एक आईडी विशेषता बनाना सरल है, लेकिन मेरा समाधान है, इसलिए मैं इसे खत्म करूंगा।

सबसे पहले, आपको अपनी विशेषता तालिका खोलनी होगी और फिर फ़ील्ड कैलकुलेटर पर जाना होगा , जो कि एबाकस जैसा एक बटन है। वहां, आपको एक नया फ़ील्ड बनाने या किसी मौजूदा को अपडेट करने का विकल्प दिया जाएगा। ऊपर की तस्वीर पर मैं "आईडी" नामक एक नया बना रहा हूं। चित्र के अंत में सूत्र सही है। (मेरे QGIS को एक अलग भाषा में सेट करने के लिए क्षमा करें। चूँकि डिज़ाइन और फॉर्मूले पूरे भाषा संस्करणों में समान हैं, मुझे नहीं लगता कि यह हमारे तरीके से यहाँ मिलेगा।)

2) बहुभुज को लाइनों में बदलें

यह चरण वेक्टर> ज्यामिति अनुभाग मेनू पर स्थित है। आपकी परिवर्तित आकृति इस तरह दिखनी चाहिए:

बहुभुज को लाइन में बदलने के ठीक बाद, आपको इसके ठीक विपरीत करना होगा, जो ...

3) लाइनों को बहुभुज में बदलें

विकल्प एक दूसरे के ठीक बगल में हैं। फिर, आइए यहां भाषा की बाधा को ध्यान में न रखें।

4) खुशी का कारण यह है कि आपने 2 और 3 कदम उठाए क्योंकि अब आप सुनिश्चित हैं कि उन लाइनों को बहुभुज के रूप में माना जाएगा, जिसका अर्थ है कि अब उनकी विशेषता तालिका पर अपनी लाइन है। अगर आप इसकी जाँच करेंगे, तो यह इस तरह दिखेगा:

पहले एक है हमेशा पूरे बहुभुज (मुझे विश्वास है, मैं एक जोड़े को आज हटा देने के बाद सौ लाइनों ...) और बाकी बीच में ढीला लाइनें हैं। आप संपादन सक्षम कर सकते हैं और कार्रवाई के लिए तैयार हो सकते हैं। यदि आप इसे आज़माने का निर्णय लेते हैं, तो आपको जिन दो चीजों को ध्यान में रखना चाहिए, वे हैं: अपनी तालिका आईडी-वार को व्यवस्थित करें , इस तरह से आप सुनिश्चित हैं कि आप कुछ भी याद नहीं कर रहे हैं और डेटा के समूहों का चयन करने के लिए शिफ्ट का उपयोग करें, किसी भी अन्य प्रोग्राम की तरह ।

मुझे पता है कि यह क्यूजीआईएस समस्या को हल करने का crème de la crème नहीं है , लेकिन यदि आप एक ऐसी स्थिति का सामना कर रहे हैं जहां उपकरण अवैध ज्यामिति के कारण काम नहीं कर रहे हैं तो ये लाइन बनाएं (मैंने आईडी द्वारा भी भंग करने की कोशिश की, लेकिन यह काम नहीं किया), तो यह एक रास्ता हो सकता है।


क्या आप अपनी छवियों को अपडेट कर सकते हैं? लिंक टूट गए हैं!
Simbamangu

अरे। मुझे खेद है, लेकिन जाहिर तौर पर Photobucket ने मेरी छवियों को हाईजैक कर लिया, मैंने उन तक पहुंच खो दी। मैंने पहले से ही एक टिकट खोला है और मैं फिर से पहुंच हासिल करने की कोशिश कर रहा हूं। जब भी संभव होगा मैं आपके पास वापस आ जाऊंगा।
एरिक लिनो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.