QGIS में बहुभुज के भीतर नियमित रूप से, परिभाषित # बिंदुओं का निर्माण


12

मैंने एक बहुभुज के भीतर कुछ निश्चित बिंदुओं का उत्पादन करने के लिए अनुसंधान उपकरण "रेग्युलर पॉइंट्स" का उपयोग किया, लेकिन यह केवल बहुभुज के आकार के बजाय बिंदुओं का एक आयताकार ग्रिड बनाता है। चूंकि मुझे बहुभुज के भीतर एक निश्चित संख्या में अंक की आवश्यकता होती है, क्या परीक्षण और त्रुटि के बिना ऐसा करने का कोई तरीका है?

उदाहरण के लिए, अभी मैं चाहता हूं कि २५ बिंदुओं में से केवल the अंक बहुभुज के भीतर हैं, लेकिन मैं २५ अंक चाहता हूं, इसलिए मैं ५० अंक तक बढ़ सकता हूं और देख सकता हूं कि बहुभुज के भीतर कितने दिखाई देते हैं

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


मैं QGIS में बहुभुज के भीतर नियमित रूप से परिभाषित # बिंदुओं के # बनाना चाहता हूं, क्या इसके लिए कोई प्लगइन मौजूद है? मैं इसे एक ईटीजी के एक्सटेंशन के साथ कर सकता हूं जिसे ET GEOWIZARD कहा जाता है (बहुभुज में वर्दी अंक), लेकिन मुझे QGIS में करने की आवश्यकता है !! क्या आप मेरी मदद कर सकते हैं?
एना मारिया

जवाबों:


3

परत सीमा के संदर्भ में QGIS का क्या जिक्र है, यह वास्तव में ज्यामिति का लिफाफा या बाउंडिंग बॉक्स है।

मैंने एक समाधान का दस्तावेजीकरण किया है जो संभवत: निकटतम है जिसे आप इसे स्वचालित करने के लिए प्राप्त करेंगे (एक बग / सुविधा अनुरोध दर्ज करने की कमी)।

प्रक्रिया दो वस्तुओं के क्षेत्र के बीच के अनुपात के आधार पर काम करती है: फीचर ज्यामिति और यह बाउंडिंग बॉक्स है)।

नीचे दिए गए चरणों की जाँच करें:

  1. उस परत का चयन करें जिस पर आप काम करना चाहते हैं।

  2. उस सुविधा का चयन करें जिस पर आप काम करना चाहते हैं। सुनिश्चित करें कि और कुछ नहीं चुना गया है।

  3. पायथन कंसोल के भीतर निम्नलिखित स्निपेट चलाएँ।

    layer = qgis.utils.iface.activeLayer()
    features = layer.selectedFeatures()
    feature = features[0]
    geom = feature.geometry()
    env_rect = geom.boundingBox()
    env_geom = QgsGeometry.fromRect(env_rect)
    env_geom.area() / geom.area()

    दर्ज करने के लिए सुनिश्चित करें कि अंतिम पंक्ति स्वचालित रूप से वापस नहीं आएगी।

  4. Regular Pointsटूल को फिर से चलाएं , लेकिन अपने स्क्रिप्ट द्वारा दिए गए आउटपुट से गुणा किए गए बॉक्स के अंदर जितने अंक चाहते हैं, दर्ज करें ।

नीचे दिए गए मेरे नमूने में, मुझे आउटपुट से प्राप्त परिणाम ~ 2 का मान था। मैंने 20 डॉट्स को उस प्रक्रिया से आउटपुट करने का अनुरोध किया जहां मैं वास्तव में केवल 10 चाहता था। मुझे बदले में 8 दिया गया था, जो काफी करीब है। आपके द्वारा उपयोग किए जा रहे वास्तविक आकार के आधार पर परिणाम अलग-अलग होंगे।

यदि आप इतने इच्छुक थे, तो आप अपने इच्छित नंबर पर आने तक चरों को संशोधित करके नियमित अंक प्रक्रिया को स्वचालित (पुनरावर्ती) कर सकते हैं।

नमूना


+1 आपका सुझाव करीब है, लेकिन अभिसरण करने में विफल हो सकता है। आप क्या करना चाहते हैं (ए) एक रिक्ति का अनुमान लगाएं जो बहुभुज के भीतर वांछित अंकों की संख्या का कारण बन जाएगा और (बी) एक यादृच्छिक ऑफसेट (स्क्रीनशॉट में दिखाया गया है ) के साथ पुनरावृत्ति करेगा ।
whuber

अगर मैं एक यादृच्छिक ऑफसेट करता हूं, तो यह अब ग्रिड नहीं है, है ना? पूरे क्षेत्र में नमूना करने के लिए बहुभुज के भीतर एक ग्रिड, जो मैं चाहता हूं, अंक की एक निश्चित संख्या है। या शायद यह वह नहीं है जो मैं चाहता हूं, क्योंकि एक प्रारंभ बिंदु चुनना और वहां से जाना काफी यादृच्छिक नहीं है?
कोलैकैंथ

@coelacanth शायद आप अपने मुद्दे के बारे में पर्याप्त जानकारी का खुलासा नहीं कर रहे हैं? आपके विश्लेषण में अगला कदम क्या होगा? एक बिंदु ग्रिड का उपयोग करने से अलग, अपने लक्ष्य को प्राप्त करने के अन्य तरीके हो सकते हैं।
nagytech

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

0

आप आसानी से बस कतरन कर सकते हैं: अंकों के नियमित ग्रिड को उसी तरह उत्पन्न करें जैसे आपने किया था और फिर वेक्टर> जियोप्रोसेसिंग टूल> क्लिप का उपयोग करें, उत्पन्न बिंदु ग्रिड पर इनपुट करें और क्लिप मास्क के रूप में सुविधा का उपयोग करें।


-1

स्क्रीनशॉट द्वारा एक सरल समाधान सुझाया गया है। आप बहुभुज को नई परतों में निकाल सकते हैं Vector -> Data Managment Tools -> Split vector layer, उन्हें आयात कर सकते हैं और फिर "रेगुलर पॉइंट्स" सैंपलर के लिए इनपुट लेयर के रूप में अपनी इच्छित सुविधा (आईडी) के साथ परत का चयन कर सकते हैं।

यदि आपको केवल कुछ मुट्ठी भर बहुभुजों के लिए ऐसा करने की आवश्यकता है, तो उन्हें ढूंढना और उन्हें अलग से निर्यात करना अधिक कुशल हो सकता है। एक बार जब आपका चयन हो जाए, तो लेयर नेम पर राइट क्लिक करें और चुनें Save Selection As ..., शेपफाइल चुनें , बाकी को भरें और फिर पहले की तरह दोहराएं।

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


पहले से ही आकार में एक बहुभुज है।
कोएलकैंथ

ओह, तब कितना गुस्सा आ रहा था (जैसे कि इसने 25 अंकों के बजाय 20 बनाया)। मेरा सुझाव है कि आप hub.qgis.org/projects/quantum-gis/issues पर एक सुविधा अनुरोध खोलें - मुझे लगता है कि यह सच परत सीमा का उपयोग करने के लिए एक अतिरिक्त चेकबॉक्स होना चाहिए।
lynxlynxlynx

-2

अपने बहुभुजों पर एक परिभाषा क्वेरी लागू करें (परत में 1.8 सही क्लिक करें और क्वेरी चुनें)। फिर टूल चलाएं। क्वेरी निकालें।


यह कैसे मदद करता है यह चयन करने के समान है।
नाथन डब्ल्यू

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