คำนวณความเร็วสูงสุดจากข้อมูล GPS


10

ฉันมีตำแหน่ง GPS ดิบสำหรับการติดตามและจำเป็นต้องได้รับความเร็วสูงสุด วิธีการง่าย ๆ (คำนวณความเร็วระหว่าง 2 คะแนนใช้เวลาสูงสุด) จะทำให้ตัวเลขจำนวนมากไร้ความหมายเนื่องจากความไม่ถูกต้องของ GPS จุดจะกระโดดไปรอบ ๆ คุณช่วยแนะนำอัลกอริทึมสำเร็จรูปที่ดีเพื่อแก้ปัญหานี้ได้หรือไม่?


หากจุดที่กำลังกระโดดไปรอบ ๆ คุณบอกว่าคุณมีมากกว่าหนึ่งจุดในสถานที่? กลุ่มคำถามของคุณดูเหมือนว่าคุณสนใจที่จะแสดงข้อมูลเรียลไทม์และไม่ประมวลผลภายหลัง (เพื่อความถูกต้อง)
Brad Nesom

หากคุณมีตำแหน่ง gps 'ดิบ' คุณควรมีความเร็วเหนือพื้นดินเป็นนอตซึ่งเป็นองค์ประกอบมาตรฐานในสตริง NMEA RMC
nagytech

คำตอบ:


13

เพื่อให้ได้ความเร็วคุณต้องมีเวลาแน่นอน ดังนั้นคุณสามารถสั่งซื้อคะแนนตามเวลาในสเปรดชีตเช่นแฟชั่นพร้อมคอลัมน์ {เวลา, X, Y} โดยการเพิ่มเวลา

นี่คือตัวอย่างที่หน่วย GPS เกือบเสร็จวงจรทวนเข็มนาฬิกา:

แผนที่การเดินทาง

จุดเหล่านี้ไม่ได้รับในช่วงเวลาเท่ากัน ดังนั้นจึงเป็นไปไม่ได้จากแผนที่เพียงอย่างเดียวในการประมาณความเร็ว (เพื่อช่วยให้คุณเห็นภาพการเดินทางครั้งนี้ฉันได้ตรวจสอบให้แน่ใจว่าได้รวบรวมค่าจีพีเอสในช่วงเวลาเกือบเท่ากันดังนั้นคุณจะเห็นว่าการเดินทางเริ่มต้นอย่างรวดเร็วและช้าลงที่จุดกลางสองจุดและตอนท้าย)

เนื่องจากคุณสนใจความเร็วคำนวณระยะทางระหว่างแถวต่อเนื่องรวมถึงความแตกต่างของเวลา การแบ่งระยะทางตามความแตกต่างของเวลาให้การประมาณความเร็วทันที นั่นคือทั้งหมดที่มีให้มัน ลองดูพล็อตของการประมาณเหล่านั้นกับเวลา:

พล็อตเรื่องความเร็วเทียบกับเวลา

จุดสีแดงพล็อตความเร็วในขณะที่เส้นโค้งสีเทานั้นเรียบเนียนเพื่อนำทางสายตา เวลาของความเร็วสูงสุดและความเร็วสูงสุดนั้นชัดเจนจากพล็อตและได้รับจากข้อมูลอย่างง่ายดายหากคุณใช้สเปรดชีตหรือฟังก์ชันสรุปข้อมูลอย่างง่ายใน GIS อย่างไรก็ตามการประมาณความเร็วเหล่านี้เป็นสิ่งที่น่าสงสัยเพราะจุด 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 (ขึ้นอยู่กับคะแนน GPS ต่อเนื่อง) แต่มันอาจไม่น่าเชื่อถือเนื่องจากข้อผิดพลาดในตำแหน่ง GPS คุณสามารถรายงานความเร็วสูงสุดต่ำสุดที่ 2.1 ตามช่วงเวลาห้าช่วงเวลาที่ราบรื่น


นี่เป็นวิธีการง่ายๆ แต่ไม่จำเป็นต้องดีที่สุด หากเราสลายข้อผิดพลาดในการระบุตำแหน่ง GPS ลงในส่วนประกอบตามเส้นทางและส่วนประกอบอื่นในแนวตั้งฉากกับเส้นทางเราจะเห็นว่าส่วนประกอบตามเส้นทางนั้นไม่มีผลต่อการประมาณระยะทางโดยรวมทั้งหมด (หากเส้นทางนั้นมีตัวอย่างที่เพียงพอ: นั่นคือคุณ อย่า "ตัดมุม") ส่วนประกอบตั้งฉากกับเส้นทางที่เพิ่มขึ้นระยะทางที่ชัดเจน สิ่งนี้อาจทำให้มีอคติประมาณการสูงขึ้น อย่างไรก็ตามเมื่อระยะทางโดยทั่วไประหว่างการอ่าน GPS มีขนาดใหญ่เมื่อเทียบกับข้อผิดพลาดของระยะทางโดยทั่วไปอคตินั้นมีขนาดเล็กและอาจชดเชยการกระเพื่อมเล็กน้อยในเส้นทางที่ไม่ได้ถูกจับโดยลำดับ GPS (นั่นคือการตัดมุมบางส่วนนั้น ทำได้เสมอ) ดังนั้นจึงอาจไม่คุ้มค่าที่จะพัฒนาตัวประมาณที่ซับซ้อนกว่าเพื่อรับมือกับอคติโดยธรรมชาติเหล่านี้เว้นแต่ว่าความถี่การสุ่มตัวอย่าง GPS จะต่ำมากเมื่อเทียบกับความถี่ที่เส้นทาง "wiggles" หรือข้อผิดพลาดในการวัด GPS มีขนาดใหญ่

สำหรับบันทึกเราสามารถแสดงผลลัพธ์ที่เป็นจริงถูกต้องเนื่องจากข้อมูลเหล่านี้เป็นข้อมูลจำลอง:

พล็อตเรื่องความเร็วจริงเทียบกับเวลา

การเปรียบเทียบสิ่งนี้กับแปลงก่อนหน้านี้แสดงให้เห็นว่าในกรณีนี้สูงสุดของความเร็วดิบจะประเมินค่าสูงสุดจริงสูงสุดในขณะที่ความเร็วสูงสุดในช่วงเวลาห้าช่วงเวลานั้นต่ำเกินไป

โดยทั่วไปเมื่อมีการรวบรวมคะแนน GPS ด้วยความถี่สูงความเร็วสูงสุดที่เป็นไปได้จะสูงเกินไป: มันมีแนวโน้มที่จะประเมินค่าสูงสุดจริงสูงสุด หากต้องการพูดมากกว่านี้ในตัวอย่างที่ใช้งานได้จริงจะต้องมีการวิเคราะห์เชิงสถิติอย่างเต็มรูปแบบเกี่ยวกับลักษณะและขนาดของข้อผิดพลาดของ GPS ความถี่ในการรวบรวม GPS และความคดเคี้ยวของเส้นทางพื้นฐาน


2

นี่ไม่ใช่สคริปต์หรืออัลกอริทึมสำเร็จรูป สิ่งที่ฉันทำในภาพด้านล่างแสดงความเร็วเฉลี่ย (เป็น kph):

  1. เรียกใช้ตัวกรอง gpsbabel บนไฟล์ GPX โดยตรง
  2. แปลงไฟล์ GPX เป็นจุดแรสเตอร์ใน GRASS
  3. วิ่งr.neighborsเพื่อรับความเร็วเฉลี่ยสำหรับหน้าต่างแรสเตอร์ที่ระบุ

ความเร็วการปั่นจักรยานเฉลี่ยของฉัน


คุณช่วยอธิบายได้ไหมว่ามันจะเป็นไปได้อย่างไรที่จะได้รับความเร็วจากการแสดงตามลำดับของสถานที่แรสเตอร์?
whuber

คุณสามารถสังเคราะห์ข้อมูลความเร็วจากจุดติดตามของ GPX โดยใช้ gpsbabel gpsbabel.org/htmldoc-development/filter_track.html จากนั้นนำเข้าข้อมูลนี้เป็นจุดเวกเตอร์และแปลงเป็นแรสเตอร์ใน GRASS ฉันใช้ GPX หลายตัวในภาพนี้ ใช้r.neighborsฉันได้รับความเร็วเฉลี่ย
ประจำ

ขอบคุณมากสำหรับคำอธิบาย แต่ถ้า gpsbabel คำนวณความเร็วทำไมคุณใช้ r.neighbor จะไม่รวมความเร็วตามเส้นทางหนึ่งกับความเร็วตามเส้นทางอื่น ๆ ที่อยู่ใกล้พอในตารางหรือไม่ นอกจากนี้ค่าเฉลี่ยความเร็วยังมีอคติเมื่อเวลาในการรวบรวมข้อมูล GPS อยู่ในระยะที่ไม่สม่ำเสมอ ตัวอย่างเช่นหากคุณเดินทาง 60 เมตรใน 60 วินาทีคุณได้ไปหนึ่งเมตรต่อวินาที แต่ถ้าแบ่งออกเป็น 10 เมตรใน 1 วินาทีบวก 50 เมตรใน 59 วินาที (เนื่องจากข้อผิดพลาดตำแหน่ง +9 ม. ที่จุดกึ่งกลาง) ความเร็วเฉลี่ยคำนวณได้ที่ 5.4 m / s: ค่าสูงเกินไป
whuber

@whuber คุณถูกต้อง สำหรับแผนที่นี้ฉันไม่ได้มองหาความเร็วของแต่ละบุคคล แต่เป็นความเร็วรวมตลอดเวลา เพลงของฉันทั้งหมดอยู่ในช่วงเวลา 1 วินาที
ประจำ

+1 สำหรับโซลูชันที่สร้างสรรค์ (ฉันชอบที่จะหาวิธีแก้ปัญหาแรสเตอร์เพื่อแก้ไขปัญหาเวกเตอร์ แต่ก็เป็นการดีที่จะรู้ข้อ จำกัด ของพวกเขา)
whuber

1

เนื่องจากข้อมูล GPS ของคุณไม่ถูกต้องคุณจะสามารถประมาณความเร็วสูงสุดได้เท่านั้น

คุณสามารถลองคำนวณด้วยการคำนวณความเร็วที่ไม่ได้อยู่ในส่วน แต่บนโพลีน (ความเร็วเฉลี่ย) เพื่อลดผลกระทบของความไม่ถูกต้อง

คุณลองทำความสะอาดข้อมูลของคุณก่อน (เช่น Douglas-Peucker) เพื่อรักษาเฉพาะจุดที่เกี่ยวข้องมากที่สุดหรือไม่?


1
ดักลาส - เพียร์ไม่ทำความสะอาดข้อมูล - เพียงแค่ลบคะแนนในขณะที่พยายามรักษารูปร่างดั้งเดิมดังนั้นในความเป็นจริงมันอาจทำให้ข้อผิดพลาดดูแย่ลงได้
JaakL
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.