यह निश्चित रूप से मुर्गों के साथ संभव है।
यह स्क्रीनशॉट उम्मीद करता है कि मुद्दा अधिक स्पष्ट रूप से दिखाई देगा। वोरोनोई का भाग B, मूल वोरोनोई केंद्र के समीप 'कौवा मक्खियों के रूप में' है, लेकिन यह इस तथ्य को ध्यान में नहीं रखता है कि भवन के चारों ओर चलने में अधिक समय लगेगा। ओपी के सवाल के बारे में मेरी समझ यह है कि भवन के चारों ओर चलने के लिए वोरोनोई को इस अतिरिक्त दूरी को ध्यान में रखना होगा।
मुझे @ गिलूयूम का सुझाव पसंद है। हालाँकि, जब मैंने इसकी कोशिश की तो मुझे r.grow.distance
मास्क का सम्मान करने में समस्या हो रही थी (नीचे देखें। रिपल्स को इमारतों से नहीं गुजरना चाहिए)।
मेरा ग्रास ज्ञान उतना मजबूत नहीं है जितना कि यह हो सकता है, इसलिए शायद मैं कुछ बेवकूफी कर रहा हूं। निश्चित रूप से, पहले उस सुझाव की जाँच करें क्योंकि यह मेरी तुलना में बहुत कम काम होगा ;-)
चरण 1 - एक लागत सतह बनाएं
लागत की सतह बनाने के लिए पहला कदम है। यह केवल एक बार किया जाना चाहिए।
- एक संपादन योग्य परत, छेद और सभी बनाएं।
- 'यूनिट' नामक फ़ील्ड जोड़ें, इसे 1 पर सेट करें।
- बहुभुज-से-रेखापुंज का उपयोग आपके "छिद्रित" वेक्टर परत (जिस पर छेद होता है) पर फ़ील्ड 'यूनिट' का उपयोग करके किया जाता है। अब आपके पास एक लेयर "मास्क" है, जहाँ 1 खाली जगह है और 0 बिल्डिंग है।
इसे एक लागत सतह में बदलने के लिए रेखापुंज कैलकुलेटर का उपयोग करें। मैं 'आउटडोर' को 1 और 'घर के अंदर' को 9999 पर सेट करूँगा। यह इमारतों के बीच से गुजरना बेहद मुश्किल होगा।
(( "मुखौटा @ 1" = 1) * 1) + (( "मुखौटा @ 1" = 0) * 9999)
आप लागत सतह पर थोड़ा सा शोर जोड़कर अधिक 'कार्बनिक' परिणाम प्राप्त कर सकते हैं (जैसे कि 1 से 3 तक यादृच्छिक संख्या का उपयोग करें, बजाय बाहरी pxiels के लिए 1)।
चरण 2. प्रत्येक वोरोनोई केंद्र के लिए संचयी लागत आपदाएं बनाएं
अब हम r.cost.coordinates
अपनी लागत सतह की परत के खिलाफ GRASS एल्गोरिथम (एक समय में एक वोरोनोई सेल के लिए) चला सकते हैं ।
प्रारंभ समन्वय के लिए, वोरनोई केंद्र का उपयोग करें। अंत समन्वय के लिए, अपने क्षेत्र के कोनों में से एक चुनें। मेरा सुझाव है कि 'नाइट्स टूर' का उपयोग करें क्योंकि इससे चिकनी परिणाम मिलते हैं।
परिणाम एक वोरोनोई केंद्र से समान यात्रा समय की रेखाओं को दर्शाता है। ध्यान दें कि इमारतों के चारों ओर बैंड कैसे लपेटते हैं।
यकीन नहीं है कि यह कैसे स्वचालित करने के लिए सबसे अच्छा है। शायद बैच मोड प्रसंस्करण, या pyqgis में किया।
चरण 3. चूहों को मर्ज करें
इसके लिए शायद कोड की जरूरत होगी। एल्गोरिथ्म होगा
create a raster 'A' to match the size of your cumulative cost images
fill raster 'A' with a suitably high number e.g. 9999
create an array of the same size as the raster.
for each cumulative cost raster number 1..N
for each cell in image
if cell < value in raster 'A'
set value in raster 'A' to cell value
set corresponding cell in array to cum. cost image number
write out array as a raster
उस दृष्टिकोण को एक रेखापुंज प्राप्त करना चाहिए जहां प्रत्येक कोशिका को वोरोनोई केंद्र द्वारा वर्गीकृत किया जाता है जो इसे निकटतम है, खाते की बाधाओं को ध्यान में रखते हुए।
तब आप रैस्टर-टू-बहुभुज का उपयोग कर सकते हैं। फिर आप रैस्टर से "स्टेप" इफेक्ट कलाकृतियों को हटाने के लिए जनरलाइज प्लगइन का उपयोग कर सकते हैं ।
चरण 2 और 3 पर अस्पष्टता के लिए क्षमा याचना ... मैं एक और सुरुचिपूर्ण समाधान के साथ किसी में झंकार की उम्मीद कर रहा हूँ :)