Ich habe unformatierte GPS-Standorte für einen Track und muss die maximale Geschwindigkeit erreichen. Einfache Methoden (Geschwindigkeit zwischen 2 Punkten berechnen, max nehmen) ergeben aufgrund der GPS-Ungenauigkeit bedeutungslos große Zahlen, der Punkt springt herum. Können Sie einen guten vorgefertigten Algorithmus vorschlagen, um dies zu lösen?
gps
movement-data
JaakL
quelle
quelle
Antworten:
Um schnell zu werden, muss man natürlich Zeit haben. Auf diese Weise können Sie Ihre Punkte nach Zeit in einer Tabellenkalkulation mit den Spalten {Zeit, X, Y} sortieren, indem Sie die Zeit erhöhen.
Hier ist ein Beispiel, in dem die GPS-Einheit eine Schaltung gegen den Uhrzeigersinn fast abgeschlossen hat:
Diese Punkte wurden nicht in gleichen Zeitintervallen erhalten. Daher ist es unmöglich, die Geschwindigkeit allein anhand der Karte zu schätzen. (Um Ihnen die Visualisierung dieser Reise zu erleichtern, habe ich die GPS-Werte in nahezu gleichen Intervallen erfasst, damit Sie sehen können, dass die Reise an zwei Zwischenpunkten und am Ende schnell begann und langsamer wurde.)
Berechnen Sie die Abstände zwischen aufeinanderfolgenden Zeilen sowie die Zeitunterschiede, da Sie an Geschwindigkeit interessiert sind. Das Teilen von Entfernungen durch Zeitunterschiede ergibt sofortige Geschwindigkeitsschätzungen. Das ist alles dazu. Schauen wir uns eine grafische Darstellung dieser Schätzungen über der Zeit an:
Die roten Punkte zeichnen die Geschwindigkeiten auf, während die graue Kurve grob ist, nur um das Auge zu führen. Die Zeit der maximalen Geschwindigkeit und die maximale Geschwindigkeit selbst sind aus dem Diagramm ersichtlich und können aus den bisherigen Daten leicht ermittelt werden, wenn Sie eine Tabellenkalkulation oder einfache Datenzusammenfassungsfunktionen in einem GIS verwenden. Diese Geschwindigkeitsschätzungen sind jedoch verdächtig, da die GPS-Punkte eindeutig einen Messfehler aufweisen.
Eine Möglichkeit, mit Messfehlern umzugehen, besteht darin , die Abstände zwischen mehreren Zeiträumen zu akkumulieren und diese zum Schätzen von Zeiten zu verwenden. Zum Beispiel, wenn die zuvor berechneten Daten {Zeitdifferenz, Entfernung} sind
dann werden die verstrichenen Zeiten und die Gesamtentfernungen über zwei Zeiträume erhalten, indem jedes Paar aufeinanderfolgender Zeilen addiert wird:
Berechnen Sie die Geschwindigkeiten für die akkumulierten Zeiten und Entfernungen neu.
Man kann diese Berechnung für eine beliebige Anzahl von Zeiträumen durchführen, um immer glattere und zuverlässigere Diagramme zu erzielen, und zwar auf Kosten der Mittelung der Geschwindigkeitsschätzungen über längere Zeiträume. Hier sind Diagramme derselben Daten, die für 3 bzw. 5 Zeiträume berechnet wurden:
Beachten Sie, wie die maximale Geschwindigkeit mit dem Grad der Glättung abnimmt. Das wird immer passieren. Es gibt keine eindeutige richtige Antwort: Wie viel Sie glätten, hängt von der Variabilität der Messungen ab und davon, in welchen Zeiträumen Sie die Geschwindigkeit schätzen möchten. In diesem Beispiel könnten Sie eine Höchstgeschwindigkeit von bis zu 2,5 (basierend auf aufeinanderfolgenden GPS-Punkten) angeben, diese wäre jedoch aufgrund der Fehler in den GPS-Standorten etwas unzuverlässig. Sie können eine Höchstgeschwindigkeit von nur 2,1 basierend auf der Fünf-Perioden-Glättung angeben.
Dies ist eine einfache Methode, aber nicht unbedingt die beste. Wenn wir den GPS-Positionsfehler in eine Komponente entlang des Pfads und eine andere Komponente senkrecht zum Pfad zerlegen , sehen wir, dass die Komponenten entlang des Pfads die Schätzungen der zurückgelegten Gesamtstrecke nicht beeinflussen (vorausgesetzt, der Pfad ist ausreichend gut abgetastet, dh Sie nicht "Ecken schneiden"). Die Komponenten senkrecht zum Pfad nehmen zudie scheinbaren Entfernungen. Dies führt möglicherweise zu einer Verzerrung der Schätzung. Wenn jedoch der typische Abstand zwischen GPS-Messwerten im Vergleich zum typischen Abstandsfehler groß ist, ist die Vorspannung gering und wird wahrscheinlich für die winzigen Wackelbewegungen auf dem Pfad kompensiert, die nicht von der GPS-Sequenz erfasst werden (d. H. immer fertig). Daher lohnt es sich wahrscheinlich nicht, einen komplexeren Schätzer zu entwickeln, um diese inhärenten Verzerrungen zu bewältigen, es sei denn, die GPS-Abtastfrequenz ist im Vergleich zu der Frequenz, mit der der Pfad "wackelt" oder der GPS-Messfehler groß ist, sehr niedrig.
Für die Aufzeichnung können wir das wahre, korrekte Ergebnis anzeigen , da dies simulierte Daten sind:
Ein Vergleich mit den vorherigen Darstellungen zeigt, dass in diesem speziellen Fall das Maximum der Rohgeschwindigkeiten das wahre Maximum überschätzte, während das Maximum der Fünf-Perioden-Geschwindigkeiten zu niedrig war.
Wenn die GPS-Punkte mit hoher Frequenz erfasst werden, ist die maximale Rohgeschwindigkeit im Allgemeinen wahrscheinlich zu hoch: Sie überschätzt tendenziell das wahre Maximum. Mehr als dies in jedem praktischen Fall zu sagen, würde eine umfassendere statistische Analyse der Art und Größe der GPS-Fehler, der GPS-Erfassungsfrequenz und der Gewundenheit des zugrunde liegenden Pfades erfordern.
quelle
Dies ist kein vorgefertigtes Skript oder Algorithmus. Was ich auf dem Bild unten gemacht habe, zeigt die Durchschnittsgeschwindigkeit (in km / h):
r.neighbors
, um die Durchschnittsgeschwindigkeit für ein bestimmtes Rasterfenster zu ermitteln.quelle
r.neighbors
bekomme ich die Durchschnittsgeschwindigkeit.Da Ihre GPS-Daten ungenau sind, können Sie nur die Höchstgeschwindigkeit schätzen.
Sie können versuchen, dies zu berechnen, indem Sie die Geschwindigkeit nicht für Segmente, sondern für Polylinien (Durchschnittsgeschwindigkeit) berechnen, um den Effekt von Ungenauigkeiten zu minimieren.
Haben Sie zuerst versucht, Ihre Daten zu bereinigen (z. B. Douglas-Peucker), um nur die relevantesten Punkte beizubehalten?
quelle