एक जीपीएस ट्रैक के लिए एक ऊंचाई प्रोफ़ाइल कैसे प्राप्त करें?


15

मैं जीपीएस के साथ रिकॉर्ड किए गए ट्रैक के लिए एक उचित सटीक ऊंचाई प्रोफ़ाइल प्राप्त करना चाहता हूं (जिसमें अक्सर बहुत अविश्वसनीय ऊंचाई डेटा होता है और कभी-कभी मॉडल पर निर्भर करता है।)

क्या किसी के पास ऐसा करने का सबसे आसान तरीका है। अब तक जिन दो तकनीकों पर मैं विचार कर रहा हूं, वे हैं:

  • Google एलिवेशन API का उपयोग करना

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

    मुझे उम्मीद है कि एक gpsbabel सरलीकृत फ़िल्टर को ट्रैक को उपयुक्त संख्या में कम करने के लिए concocted किया जा सकता है (उनमें से कोई भी बिंदु 100 मीटर से अधिक नहीं हो रहा है या एक साथ ऊंचाई डेटा के रिज़ॉल्यूशन के कारण), लेकिन फिर समस्या यह है कि कैसे मैप किया जाए मूल पथ पर यह सरलीकृत ट्रैक वापस आ जाएगा, क्योंकि लंबाई अलग-अलग होगी।

    या, यदि यह स्वचालन के लिए उपयुक्त नहीं है, तो उपयोगकर्ता को मानचित्र पर मैन्युअल रूप से ट्रांज़िट बिंदुओं का चयन करने के लिए सबसे अच्छा तरीका हो सकता है।

  • डाउनलोड कर रहा है शटल राडार टोपोग्राफी मिशन (SRTM) डेटा और स्थानीय स्तर पर क्वेरी कर।

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


कुछ और जानकारी के लिए @ MerseyViking का जवाब फिर से http://srtm.csi.cgiar.org/SELECTION/inputCoord.asp से डेटा डाउनलोड करना है :

72 x 24 टाइलें हैं, प्रत्येक 20mb ज़िप फ़ाइल के बारे में है जो 72.1mb 16bit TIF फ़ाइल (6001x6001 पिक्सल) को डिकम्प्रेस करती है।

यह ~ 120 gb है, जो कि मेरे स्टोर से अधिक है। इसे संकुचित करने और महासागरों की अनदेखी करने से शायद यह 10gb कम हो जाएगा, जो अभी भी बहुत बड़ा है। डेटा ऑन-डिमांड लोड हो रहा है नाटकीय रूप से आवश्यक भंडारण स्थान को कम करेगा, लेकिन स्रोत साइट धीमी है (मैं केवल 10kb / s) प्राप्त कर रहा था जो कि बहुत अव्यवहारिक है।


तो आपको वास्तव में विश्वव्यापी कवरेज की आवश्यकता है?
UnderDark

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

ये ट्रैक कब तक हैं? ट्रैक पॉइंट और एलिवेशन के लिए आपको किस तरह के रिज़ॉल्यूशन की ज़रूरत है?
सिंबांगु

ट्रैक ज्यादातर दौड़ने और साइकिल चलाने से होते हैं, इसलिए 5 किमी और 100 किमी के बीच में कहें। विशिष्ट ग्रेडिएंट 5-10% से कम हैं, इसलिए मुझे लगता है कि SRTM डेटासेट की तुलना में बहुत कम रिज़ॉल्यूशन के साथ कुछ भी बहुत ही निर्बाध होने वाला है ... ऊंचाई प्रोफ़ाइल को प्रदर्शित करने के अलावा, मैं प्राप्त ऊंचाई / खोई, अधिकतम / की गणना भी करना चाहता हूं मिनट ऊंचाई आदि
टॉम

जवाबों:


9

स्थानीय समाधान के लिए, GRASS को ऐसा करने के लिए स्क्रिप्ट किया जा सकता है:

# extract raster values at our points
# use cubic convolution for interpolation between DEM locations
v.drape in=my_pts out=pts_srtm_elev type=point rast=srtm_dem method=cubic

मैंने अपने उपयोग मामलों में से एक के लिए इसका एक विस्तारित संस्करण चलाया और v.drape का प्रदर्शन बिल्कुल भी कोई समस्या नहीं थी।


5

gpsvisualizer.com आपके लिए ऐसा करेगा। मेरा मानना ​​है कि यह बैकग्राउंड में GPSBabel और Google API का उपयोग कर रहा है।


5

ऐसा लगता है कि आपको एक सामान्य समाधान के रूप में इसकी आवश्यकता है, अर्थात आपके द्वारा संसाधित किए जाने वाले किसी भी ट्रैक के लिए आपके पास दुनिया के सभी ऊंचाई डेटा उपलब्ध हैं, इसलिए स्थानीय रूप से सभी CGIAR डेटा को संग्रहीत नहीं करना चाहते हैं; ऊपर उल्लिखित gpsvisualizer.com (@Llaves) आपका सबसे अच्छा दांव हो सकता है।

यदि आपको उच्च रिज़ॉल्यूशन की आवश्यकता नहीं है, तो पूरे ग्रह के लिए GTOPO डेटा सेट (1 किमी ग्रिड) केवल ~ 300MB है; अन्यथा, ASTER GDEM (30m) और मूल SRTM (90m) डेटासेट उपलब्ध हैं, लेकिन जैसा कि आप बताते हैं, बहुत अधिक डेटा। (बंडल किए गए PDF को हटाकर डाउनलोड करने के बाद ASTER डेटा का आकार कम किया जा सकता है, जो वास्तविक ऊंचाई डेटा से अक्सर बड़े होते हैं - जब मैंने ऐसा किया तो अफ्रीका डेटासेट 40% तक कम हो गया था!)।

आर में आप इनमें से किसी भी डेटासेट से ऊंचाई प्रोफ़ाइल को काफी जल्दी से निकाल सकते हैं - हालांकि लोड करने के लिए रैस्टर समय का अधिकांश हिस्सा ले सकता है। यह GPX डेटा को संसाधित करने के लिए एक छोटे से कस्टम readGPX फ़ंक्शन और gpsbabel का उपयोग करता है :

#Load elevation model and process track:
dem <- raster("E020N40.DEM")
track <- readGPXt("trackfile.gpx")
coordinates(track) <- ~Longitude+Latitude
proj4string(track) <- "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs"
#Overlay (extract) the elevation data for the track points:
track$profile <- extract(dem, track)
track <- as.data.frame(track)

'ट्रैक' अब लाट / लोन, अन्य मानक GPX डेटा (गति, जीपीएस ऊंचाई, आदि), और एक 'प्रोफ़ाइल' कॉलम के साथ जीपीएस बिंदुओं की एक तालिका है जो उस बिंदु पर ऊंचाई को इंगित करता है।


4

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

ASTER GDEM डेटासेट एक और हाल ही में, ~ 30 मीटर क्षैतिज रिज़ॉल्यूशन पर उच्च रिज़ॉल्यूशन सर्वेक्षण है, लेकिन गुणवत्ता अक्सर एसआरटीएम डेटा की तुलना में कम है।

मुझे नहीं पता कि Google ऊंचाई डेटा किस संकल्प पर है, लेकिन अगर यह SRTM पर आधारित था, तो मुझे आश्चर्य नहीं होगा, इसलिए Google API का उपयोग करने से आपको स्थानीय प्रक्रिया का उपयोग करने के समान परिणाम मिल सकते हैं।

@Underdark के उत्तर के बाद, यदि यह एक सरल वेब-आधारित प्रणाली है, तो GRASS GIS शायद जाने का रास्ता है। मैंने कुछ सफलता के साथ साधारण इंटरविजिबिलिटी प्लॉट करने के लिए r.profile का उपयोग किया है, लेकिन मुझे यकीन नहीं है कि यह किस प्रक्षेप विधि का उपयोग करता है; यह संभवतः केवल निकटतम पड़ोसी हो सकता है। संपादित करें : स्रोत कोड को देखते हुए , r.profileनिकटतम पड़ोसी का उपयोग करता है, इसलिए आपको कुछ सीढ़ियां चढ़ने वाली कलाकृतियां मिल सकती हैं।

GDAL और NumPy का उपयोग करते हुए एक अन्य विकल्प पायथन स्क्रिप्ट लिखना हो सकता है , जो थोड़ा अधिक काम हो सकता है, लेकिन एक अच्छा कस्टम समाधान बना देगा।


3

पहले आपको यह निर्दिष्ट करना चाहिए कि आप किस प्रकार की क्षैतिज / ऊर्ध्वाधर परिशुद्धता से संतुष्ट होंगे।

लेकिन इसे व्यावहारिक दृष्टिकोण से देखें:

  • प्रत्येक SRTM3 टाइल में 1200x1200 सेल हैं , प्रत्येक सेल एक दो-बाइट पूर्णांक मूल्य है जो मीटर में ऊंचाई का प्रतिनिधित्व करता है। कच्चे असम्पीडित डेटा का लगभग 2.75 एमबी है।
  • 14042 SRTM3 टाइलें हैं। वह cca है। 38 जीबी कच्चा डेटा।
  • क्या आपको वास्तव में पूरी दुनिया को कवर करने की आवश्यकता है? मुझे लगता है कि सहारा, गोबी रेगिस्तान या साइबेरिया के बीच में एक जीपीएस ट्रैक की ऊंचाई प्रोफ़ाइल प्रदर्शित करने के लिए बहुत रुचि नहीं है, इसलिए यदि आप नकद- स्ट्रिप्ड हैं तो इसे कवर करना आपके लिए आर्थिक रूप से संभव नहीं है (BTW): SRTM3 कवर नहीं करता है पूरी दुनिया , इसलिए आपको ग्रीनलैंड और अंटार्कटिका जैसी जगहों के बारे में चिंता करने की ज़रूरत नहीं है;))।
  • कुछ चालाक संपीड़न और डेटा एन्कोडिंग के साथ आप डेटासेट का आकार नाटकीय रूप से कम कर सकते हैं। ऊंचाई मान 0 से 8848 तक है, इसलिए शेष दो बिट्स का उपयोग नहीं किया जाता है। आप इसे और भी कम करने के लिए डेल्टा संपीड़न के माध्यम से उन्नयन को सांकेतिक शब्दों में बदलना कर सकते हैं। तुम भी ऊर्ध्वाधर परिशुद्धता के कुछ relinquish कर सकते हैं (, कहते हैं, 2m जो तब आप प्रत्येक सेल के लिए एक अतिरिक्त बिट बचाता है।
  • इस पर निर्भर करता है कि किस प्रकार के जीपीएस ट्रैक्स का उपयोग किया जाता है (चलना, साइकिल चलाना, ड्राइविंग ...) आपको डेटा को छोटी टाइल (0.25x0.25 डिग्री) पर डिस्क या पंक्तियों में डेटाबेस तालिका में फ़ाइलों के रूप में संग्रहीत करना चाहिए।
  • टाइल्स के लिए कुछ चतुर मेमोरी कैश का उपयोग करें ताकि आपको अक्सर उपयोग किए जाने वाले को फिर से लोड करने की आवश्यकता न हो।
  • कोशिकाओं से ऊंचाई की गणना इस पूरे व्यवसाय का आसान हिस्सा है।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.