So führen Sie eine Spline-Interpolation auf dem GPS-Track durch

8

Ich suche nach einer Möglichkeit, die Spline-Interpolation auf eine GPS-Spur (Gpx-Format) anzuwenden. Ich bin ein regelmäßiger QGIS-Benutzer und habe auch GDAL-Bibliotheken auf meinem Mac installiert, wenn dies hilft.

Grundsätzlich enthält die Trail and Ride-Information von MTB Project eine kleine Anzahl von Punkten, und die tatsächlichen Pfade werden durch Spline-Interpolation erweitert, um die Dateigröße zu verringern. Ich kann die Spuren im GPX-Format herunterladen, aber sie enthalten nur eine kleine Menge von Punkten, sodass ich eine Spur habe, die einer gezackten Linie ähnelt, die die kleine Anzahl von Punkten vor der Interpolation darstellt. Ich möchte eine ähnliche Transformation anwenden, um die gekrümmten Linien auf der Website in einem etwas wiederholbaren Prozess neu zu erstellen, bei dem ich nicht jeden Punkt mit dem Spline-Zeichenwerkzeug in QGIS manuell neu nachzeichnen muss.

Geben Sie hier die Bildbeschreibung ein

Kennt jemand eine Möglichkeit, wie ich auf einfache Weise eine Spline-Interpolation auf meine GPS-Spurdaten anwenden kann, um die Spline-Spur aus MTB Project mit kostenlosen Tools zu reproduzieren? Am liebsten unter OSX?

Benzo
quelle
FWIW, Topofusion hat diese Funktion, die ich suche, aber ich bin ein Mac-Benutzer. Also suche ich nach etwas, das ohne Windows funktioniert. topofusion.com/spline.php
Benzo
Eigentlich habe ich einen Windows-PC verwendet und festgestellt, dass Topofusion die Linien gut glättet, aber sie werden nicht auf die gleiche Weise wie das MTB-Projekt interpoliert, sodass die Kurven manchmal auf unterschiedliche Weise ablaufen und die Spuren noch weniger werden genau statt genauer, auch nach dem Ändern der Parameter.
Benzo

Antworten:

5

Versuchen Sie es mit dem Tool "v.generalize" aus der Verarbeitungs-Toolbox. Es gibt eine Reihe von Algorithmen, die eine Linie gut verallgemeinern können.

Eine andere mögliche Lösung könnte das in diesem Beitrag erwähnte "Generalizer" -Plugin sein. Die Plugin-Informationen in QGIS legen nahe, dass das Tool ohnehin auf dem v.generalizer Grass-Modul basiert.

Nur als Referenz unten ist ein Beispiel für die Ausgabe des Tools v.generalize. Ich habe die Standardeingaben sowohl für die Chaiken- als auch für die Hermite-Ausgabe verwendet. Ich bezweifle nicht, dass Sie mit ein wenig Recherche des Tools und insbesondere der Bedeutung der Eingabewerte bessere Ergebnisse erzielen können.

Update - Der Snakes-Algorithmus (im Originalbild unten nicht dargestellt) mit einigen Anpassungen der Alpha- und Beta-Parameter sorgt für ein flüssigeres Erscheinungsbild in meinem Testdatensatz.

Beispiel für die Ausgabe von v.generalize

Andrew Jeffrey
quelle
1

Ich fühle mich unbehaglich, aber ich empfehle das QGIS + Spline Plugin als eine der Optionen für Ihren Fall.

  1. Ja, das Digitalisieren aller Punkte ist umständlich. Das Festlegen eines geeigneten Snap Option-Parameters kann jedoch die Belastung der Aufgabe verringern.
  2. Andere Software, die Splines erstellen kann, ist CAD (z. B. AutoCAD) oder eine mathematische Lösung (z. B. R). Wenn Sie CAD wählen, ist der Workflow nahezu identisch, um Klickpunkte zu wiederholen und Spline-Segmente hinzuzufügen.
  3. Wenn der Radweg eine "ideale" Spline-Kurve war, die mathematisch interpoliert ist, ist der am besten passende Spline die Lösung. In Wirklichkeit repräsentiert ein solcher Spline selten Ihre gesamte Spur. Sie können am Ende mehrere Kurven spleißen, indem Sie verschiedene Glättungsparameter versuchen.
  4. Wenn Sie das Spline-Plugin verwenden, können Sie die Parameter während der Digitalisierung ändern.

Geben Sie hier die Bildbeschreibung ein

Wenn Ihre Dichtheit auf 0,5 eingestellt ist (Standardwert), können dichte Messpunkte reibungslos verbunden werden, und eine höhere Dichtheit versucht, die Kurve nicht um diese Punkte herum zu biegen.

Sie werden feststellen, dass die blaue Kurve (0,9) bei sanften Kurven besser passt und Orange (0,5) gut für enge Kurven geeignet ist. Diese Flexibilität ist der beste Teil der manuellen Digitalisierung mit dem Spline Plugin. Wenn wir versuchen, es durch eine mathematische Gleichung zu tun, kann es ein Albtraum sein.

  1. Ich befürchte, dass die Verallgemeinerungstechnik die ursprünglichen Datenpunkte nicht berücksichtigt. Mit anderen Worten, die vom Generalisierer abgeleitete Kurve verläuft nicht über Ihren Radweg.
Kazuhito
quelle
Vielen Dank für den Punkt über die Generalisierungstechnik, gut zu wissen. Ich werde die Spline-Plugin-Option wahrscheinlich nicht verwenden, da ich versuche, Parameter festzulegen und diesen Prozess auf mehreren Spuren auszuführen, sodass dies keine einmalige Operation ist. Ich brauche einen schnell wiederholbaren Prozess.
Benzo
Dies nicht als Antwort akzeptieren, sondern Kopfgeld für die nächstgelegene Lösung vergeben. Wenn ich mir die Zeit nehme, um herauszufinden, wie man das Spline-Plugin hackt, da ich Python kenne, kann ich es möglicherweise dazu bringen, die vorhandenen Punkte automatisch zu durchlaufen, anstatt manuell zu digitalisieren. Ich bin mir nicht sicher, wie schwierig das wäre, aber die Quelle für das Plugin ist da draußen.
Benzo