मैं स्थानिक रूप से पूरे अंक का विभाजन कैसे करूं?


9

मेरे पास 130 मिलियन से अधिक रिकॉर्ड के साथ, पूरे देश में फैले ग्राहकों का स्थान डेटा है। यह PostGIS में एक स्थानिक तालिका है

मैं अब पूरे देश को 'सेवा क्षेत्रों' में विभाजित करना चाहता हूं, जैसे कि प्रत्येक सेवा क्षेत्र में:

  • कम से कम 30 ग्राहक
  • सबसे अधिक 1000 वर्ग किमी है।

मैंने आर्कगिस के सकल उपकरण पर शोध किया है, लेकिन यह मेरे मानदंडों को पूरा नहीं करता है, क्योंकि:

  • यह न्यूनतम गणना को ध्यान में नहीं रखता है
  • मेरे पास अपने निपटान में केवल Qgis और घास है।

इसे प्राप्त करने के लिए मैं किस उपकरण / प्रक्रिया का उपयोग कर सकता हूं?

जवाबों:


4

मैंने छोटा प्रयोग किया:

  • 900 यादृच्छिक अंक उत्पन्न किए
  • न्यूनतम फैले पेड़ का उपयोग करके उन्हें जोड़ा
  • बीच में कहीं डूब गया

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

  • दिशात्मक ग्राफ़ बनाने के लिए लिंक को फ़्लिप किया, अर्थात प्रत्येक नोड अंततः उसी सिंक में डिस्चार्ज होता है

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

  • भागा स्क्रिप्ट है कि मैं 30 की औसत "आकार" प्राप्त करने की कोशिश कर रहे बड़े लोगों में छोटे कैचमेंट को एकत्र करने के लिए उपयोग कर रहा हूं।

परिणाम:

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

मुझे बताएं कि क्या यह रुचि का है, मैं स्क्रिप्ट खोद सकता हूं (यह पहले से ही इस साइट पर कहीं प्रकाशित है) या अधिक विवरण में वर्कफ़्लो की व्याख्या करें। मैंने आर्कगिस का इस्तेमाल किया।

-------------------------------------

** अद्यतन सितम्बर 2017

यह ऊपर से बहुत समान है, लेकिन आर्कगिस से रेखापुंज दृष्टिकोण, दूरी और जल विज्ञान उपकरण का उपयोग कर रहा है। मुश्किल हिस्सा न्यूनतम फैले हुए पेड़ का निर्माण है और रास्टर प्रारूप में 'कैचमेंट' आउटलेट ढूंढना है।

ये चरण हैं जिनका मैंने अनुसरण किया है:

  • त्रिकोणीय नोड्स (बिंदुओं को क्लस्टर करें), त्रिकोणीय नेटवर्क किनारों को निकालें, नोड्स को WEaster रेखापुंज में कनवर्ट करें :

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

  • किनारों की मेज में क्षेत्र की गणना करें: मैं (ShapeLength ^ 3 / 1e6) का उपयोग करता हूं। कॉस्टर रेखापुंज बनाने के लिए रेखापुंज में बदलें, बहुत अधिक मूल्य वाले अंतराल भरें । यह एक दूसरे के करीब बिंदुओं के बीच प्रवाह को प्रोत्साहित करता है। यह आशा की जाती है कि प्रवाह पथ न्यूनतम फैले हुए वृक्ष (MST) के समान होंगे, जो सीधी रेखाओं के निकट होने के बजाय सिंक की ओर जा रहे हैं।
  • किसी भी नोड (OUTLET / SINK) को चुनें और COST सतह और SINK को स्रोत के रूप में उपयोग करके कॉस्ट बैक लिंक रास्टर बनाएं। का उपयोग कर वापस लिंक रेखापुंज को सभ्य प्रवाह दिशा रेखापुंज में परिवर्तित करें Int(Power(2,"backlink"-1))। प्रवाह की दिशा और वजन रेखापुंज का उपयोग कर प्रवाह संचित करें। जैसा कि कोई लागत असाइनमेंट के साथ चाल देख सकता है, वह वास्तव में MST के समान है:

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

मैंने 50 से समूह अंकों का फैसला किया। नेटवर्क के फ्रैक्टल स्ट्रक्चर को ध्यान में रखते हुए मैंने 'हाई फ्लो स्ट्रीम', यानी कॉन ("फ्लोअक्कुम"> 45,1) की शुरुआत में आईएनएलईटी के बिंदुओं को थोड़ा कम किया। इनलेट्स को कोशिकाओं के रूप में परिभाषित किया जाता है

उच्च प्रवाह मौजूद है और फोकल आँकड़े = 2 और सेल SINK नहीं है (प्रवाह दिशा में कोई डेटा मान नहीं) :

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

कैच को परिभाषित करने के लिए पॉइंट्स और फ्लो डायरेक्शन के रूप में इनलेट्स का उपयोग करें। चित्र से पता चलता है 115 कैचमेंट:

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

उनके आंकड़े: माध्य = 50.33, न्यूनतम = 46 और अधिकतम = 74।

कैचमेंट के दूसरे सेट को प्राप्त करने के लिए यह पहले से परिभाषित कैचमेंट्स के तहत वाइट रिस्टर को मिटाने के लिए पर्याप्त है, फ्लो एक्यूमुलेशन आदि की गणना करें।

विधि लाखों अंकों के लिए काम करेगी क्योंकि यह रेखापुंज है, अंकों की संख्या का त्रिकोणासन भी एक मुद्दा नहीं होगा।


1
मुझे नहीं पता कि यह मेरे लिए उपयोग करने योग्य होगा, लेकिन यह नरक के रूप में दिलचस्प लगता है..कृपया यदि आप कर सकते हैं तो स्क्रिप्ट पोस्ट करें।
देवदत्त तेंगशे

मैं आज या सोमवार को स्क्रिप्ट पोस्ट करूंगा, एक दिन का काम बंद कर दूंगा। इस बीच में एक नज़र gis.stackexchange.com/questions/179559/… पर है जहाँ मैंने इसके पीछे के विचार का वर्णन किया है
FelixIP

मैंने इसे रातोंरात 100,000 अंकों पर परीक्षण किया। अंतिम चरण में 6 घंटे के करीब लग गया और यह इसे कम से कम आर्कगिस में नहीं जाने देता है । यह उल्लेख करने के लिए नहीं कि मुझे अपने आप को एमएसटी कोड करना था, क्योंकि पैटरसन द्वारा उपकरण मैं अटक गया।
फेलिक्सिप

क्या आपने इसे हल करने का प्रबंधन किया? ऐसा लगता है कि मैंने रेखापुंज दृष्टिकोण का उपयोग किया है, अगर यह ब्याज की /
फेलिक्सआईपी

कृपया कीजिए। मैंने इसे एक Bruteforce विधि से हल किया, जो मेरे उद्देश्य के लिए पर्याप्त था; लेकिन मुझे यकीन है कि दूसरों को आपके नए aproach से फायदा हो सकता है।
देवदत्त तेंगशे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.