GPS डेटा से अधिकतम गति की गणना करें


10

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


यदि बिंदु कूद रहा है तो क्या आप कह रहे हैं कि आपके पास एक स्थान पर एक से अधिक बिंदु हैं? आपके प्रश्न का अधिकांश भाग ऐसा लगता है जैसे आप वास्तविक समय डेटा प्रदर्शित करने में रुचि रखते हैं और पोस्टप्रोसेसिंग (सटीकता के लिए) नहीं करते हैं।
ब्रैड नेसोम

यदि आपके पास 'कच्चे' जीपीएस स्थान हैं, तो आपको हर तरह से समुद्री मील में गति से अधिक होना चाहिए, जो NMEA RMC स्ट्रिंग में एक मानक तत्व है।
नगिटेच

जवाबों:


13

गति पाने के लिए आपके पास समय होना चाहिए । इस प्रकार आप समय बढ़ाते हुए कॉलम {Time, X, Y} जैसे फ़ैशन के साथ स्प्रेडशीट में अपने अंक ऑर्डर कर सकते हैं।

यहाँ एक उदाहरण है जहाँ GPS यूनिट ने लगभग एक वामावर्त सर्किट पूरा किया है:

एक यात्रा का नक्शा

ये अंक समय के बराबर अंतराल पर प्राप्त नहीं किए गए थे। इसलिए गति का अनुमान लगाना अकेले मानचित्र से असंभव है। (इस यात्रा की कल्पना करने में आपकी मदद करने के लिए, हालांकि, मैंने लगभग समान अंतराल पर जीपीएस मूल्यों को इकट्ठा करना सुनिश्चित किया , ताकि आप देख सकें कि यात्रा दो मध्यवर्ती बिंदुओं और अंत में तेजी से शुरू हुई और धीमी हो गई।)

क्योंकि आप गति में रुचि रखते हैं, क्रमिक पंक्तियों और समय के अंतर के बीच की दूरी की गणना करें। समय के अंतर से विभाजित दूरी तात्कालिक गति का अनुमान देती है। यही सब है इसके लिए। आइए समय के अनुसार उन अनुमानों की एक साजिश देखें:

समय बनाम गति का प्लॉट

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

माप त्रुटि से निपटने का एक तरीका कई समय अवधि के बीच की दूरी को जमा करना है और समय का अनुमान लगाने के लिए उपयोग करना है। उदाहरण के लिए, यदि {समय अंतर, दूरी} पहले गणना की गई डेटा हैं

d(Time) Distance
0.90        0.17
0.90        0.53
1.00        0.45
1.10        0.29
0.80        0.11

तब बीता हुआ समय और दो समय अवधि में कुल दूरी क्रमिक पंक्तियों के प्रत्येक जोड़े को जोड़कर प्राप्त की जाती है:

d(Time) Distance
1.80        0.70
1.90        0.98
2.10        0.74
1.90        0.40

संचित समय और दूरियों के लिए गति का पुनःप्रयोग करें।

किसी भी समय अवधि के लिए इस गणना को अंजाम दिया जा सकता है, लंबे समय तक गति अनुमानों की औसत लागत पर कभी चिकनी और अधिक विश्वसनीय भूखंडों को प्राप्त करना। क्रमशः 3 और 5 समय अवधि के लिए एक ही डेटा के भूखंडों की गणना की जाती है:

गति का प्लॉट बनाम समय, 3 अंतराल की गणना

गति का प्लॉट बनाम समय, 5 अंतराल की गणना

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


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

रिकॉर्ड के लिए, हम सही, सही परिणाम दिखा सकते हैं , क्योंकि ये नकली डेटा हैं:

समय के अनुसार सही गति का प्लॉट

पिछले भूखंडों की तुलना करने से पता चलता है कि इस विशेष मामले में कच्ची गति की अधिकतम वास्तविक सीमा से अधिक थी, जबकि अधिकतम पांच अवधि की गति बहुत कम थी।

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


2

यह एक तैयार स्क्रिप्ट या एल्गोरिथ्म नहीं है। मैंने औसत गति दिखाते हुए नीचे छवि में क्या किया (kph में):

  1. GPX फ़ाइल पर सीधे एक gpsbabel फ़िल्टर चलाएँ।
  2. GRASS में GPX फाइल को रैस्टर पॉइंट्स में कन्वर्ट करें।
  3. r.neighborsएक निर्दिष्ट रास्टर विंडो के लिए औसत गति प्राप्त करने के लिए चलाएं ।

मेरी औसत साइकिल चलाने की गति


क्या आप स्पष्ट कर सकते हैं कि स्थानों के अनुक्रम के रेखापुंज प्रतिनिधित्व से गति प्राप्त करना कैसे संभव है ?
whuber

आप gpsbabel का उपयोग करके GPX के ट्रैकपॉइंट से गति की जानकारी को संश्लेषित कर सकते हैं। gpsbabel.org/htmldoc-development/filter_track.html । फिर इस डेटा को सदिश बिंदुओं के रूप में आयात करें और GRASS में रेखापुंज में परिवर्तित करें। मैंने इस छवि पर कई GPX का उपयोग किया है। का उपयोग करते हुए r.neighbors, मुझे औसत गति मिलती है।
मैनिंग

स्पष्टीकरण के लिए बहुत धन्यवाद। लेकिन, अगर gpsbabel ने गति की गणना की है, तो आप r.neighbors का उपयोग क्यों करते हैं? ग्रिड पर पर्याप्त रूप से बंद होने वाले किसी भी अन्य मार्गों के साथ संभावित रूप से एक मार्ग के साथ गति को मिलाएं? जब जीपीएस संग्रह समय असमान रूप से स्थान दिया जाता है, तो गति औसत पक्षपाती होती है। उदाहरण के लिए, यदि आप 60 सेकंड में 60 मीटर की यात्रा करते हैं, तो आप प्रति सेकंड एक मीटर चले गए हैं, लेकिन अगर यह 59 सेकंड में 1 सेकंड के 50 मीटर में 10 मीटर में टूट गया है (एक मध्य बिंदु पर +9 मीटर की स्थिति में त्रुटि के कारण), औसत गति 5.4 m / s की गणना करती है: एक सकल overestimate।
whuber

@ शुभंकर, आप सही हैं। इस नक्शे के लिए, मैं समय के माध्यम से व्यक्तिगत गति नहीं बल्कि समग्र गति की तलाश कर रहा हूं। मेरे सभी ट्रैक 1 सेकंड के अंतराल में हैं।
मैनिंग

एक रचनात्मक समाधान के लिए +1। (। मैं जाहिरा तौर पर वेक्टर समस्याओं का समाधान ढूँढने रेखापुंज, लेकिन यह अच्छी अपनी सीमाओं को पता है की तरह)
whuber

1

चूंकि आपका GPS डेटा गलत है, आप केवल अधिकतम गति का अनुमान लगा पाएंगे।

आप अशुद्धि के प्रभाव को कम करने के लिए खंडों पर नहीं बल्कि पॉलीइन्स (औसत गति) पर गणना करके इसकी गणना करने का प्रयास कर सकते हैं।

क्या आपने अपने डेटा को पहले साफ़ करने की कोशिश की है (उदाहरण के लिए डगलस-पुकर) केवल सबसे अधिक प्रासंगिक बिंदुओं को रखने के लिए।


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