ऊंचाई के आधार पर अंकों के बीच की दूरी कैसे मापें?


10

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

अंक एक सीएसवी फ़ाइल से हैं, लेकिन मैं भी ऊंचाई डेटा के साथ एक रेखापुंज परत है।


1
मुझे लगता है कि चलने के समय की गणना करना बेहतर होगा । चलने का वेग ढलान पर निर्भर करता है, और ऊपर की ओर नीचे की ओर अधिक समय लगता है।
आंद्रेजे

1
फ्लैट-मैप दूरी की तुलना में "3 डी" दूरी? अंतर शायद आपके विचार से छोटा है। MICRODEM के पीछे के व्यक्ति पीटर गुथ ने कहा, "ढलान के कोण के सेक्रेटरी द्वारा दूरी या क्षेत्र में वृद्धि की जाएगी, और जब तक आप बहुत बड़ी ढलान तक नहीं पहुंच जाते, तब तक सेकंड आवश्यक रूप से 1. है।"
nhopton

जवाबों:


6

इस लक्ष्य को प्राप्त करना जीआईएस में कुछ बुनियादी काम है, हालांकि क्यूजीआईएस में विधि तुच्छ नहीं हो सकती है। आपका सबसे अच्छा मौका GRASS के r.walkफंक्शन का उपयोग करना है, जो अनीसोट्रोपिक कॉस्ट सरफेस (डेमो + स्लोप + अन्य कारक) बनाता है।

सबसे पहले, आपको एक इनपुट के रूप में एक घर्षण सतह बनाना होगा r.walk। आपके मामले में यह आपके डीईएम की सीमा से मेल खाता एक एकल-मूल्यवान रास्टर (1.0) हो सकता है। आप इसे r.mapcalculatorसूत्र के साथ बना सकते हैं : A*0+1जहां A आपका DEM है।

अगला, आपको अपने सीएसवी से शुरुआती बिंदुओं का एक सेट चुनना होगा। ये बिंदु हैं, संचित लागत सतह से गणना की जाएगी। आपको हर शुरुआती बिंदु से एक व्यक्तिगत लागत सतह बनानी होगी। यह इस चरण में प्रत्येक प्रारंभिक बिंदु से जुड़े अंत बिंदुओं को परिभाषित करने के लिए स्मार्ट हो सकता है (पाठ्यक्रम में व्यक्तिगत परतों में)। के बाद, आप r.walkबनाए गए इनपुट के साथ चला सकते हैं । शुरुआती बिंदु एक परत में हो सकते हैं, आप संवाद बॉक्स में हरे तीर के साथ उनके माध्यम से पुनरावृति कर सकते हैं।

अब एक आदर्श मामले में, आपके पास लागत की सतह और हर लागत सतह के लिए समाप्ति बिंदु हैं। सिद्धांत रूप में आप के साथ कम से कम लागत पथ पा सकते हैं r.drain, लेकिन मेरे लिए, यह एक त्रुटि में समाप्त हो गया (अजगर क्युरीस्टर पुस्तकालय को आयात नहीं कर सका)। यदि आप एक ही अंक में चलते हैं, तो आप SAGA के "कम से कम लागत पथ" एल्गोरिथम के साथ जा सकते हैं। यह लागत की सतह के साथ हर समाप्ति बिंदु के लिए एक बिंदु और एक पंक्ति परत बनाएगा (पुनरावृति बटन का उपयोग करें)। आपके पास सभी लाइनें होने के बाद, आप उन्हें SAGA के "मर्ज शेप लेयर्स" टूल के साथ सिंगल शेपफाइल में मर्ज कर सकते हैं।

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


इसके लिए धन्यवाद, मुझे शायद सीखना शुरू करना होगा कि GRASS का उपयोग कैसे करें। मुझे यह भी लगता है कि मुझे समस्या हो सकती है, मैंने जो चित्रण किया है उसमें मैंने कई पहाड़ों को अगम्य मान लिया है, इसलिए मुझे कुछ ऐसा जोड़ना होगा जैसे "अगर पहाड़ x से ऊंचा है, तो उसके चारों ओर जाएं" ... लेकिन इसके लिए धन्यवाद जवाब, यह शायद मुझे शुरू करने में मदद करेगा।
traustid

में एक आसान शर्त है r.walk। आप अगम्य कोशिकाओं को स्थापित करने के लिए घर्षण मानचित्र का उपयोग कर सकते हैं। अपने DEM को एक नियम फ़ाइल (यदि आपकी सीमा 2000 मी है) में r.reclassनियमों के साथ रिकॉर्ड करें 1 thru 2000 = 1 2000 thru * = 9999। इस तरह एल्गोरिथ्म उच्च घर्षण मूल्यों के साथ कोशिकाओं को पारित नहीं करेगा, इसके चारों ओर जाने के लिए कम लागत होगी।
गैबोर फार्कस

इस लिए आपका बहुत - बहुत धन्यवाद! मुझे वास्तव में GRASS का अधिक ज्ञान नहीं है लेकिन यह वास्तव में एक महान प्रारंभिक बिंदु है।
आघात

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