Ich schreibe weiterhin benutzerdefinierten Code, um mit GPS-Tracks zu arbeiten: GPX-Dateien und NMEA-Protokolle von meinem Telefon, dedizierten GPS-Loggern usw. Ich habe das Gefühl, das Rad neu zu erfinden, und frage mich, ob es eine Standardbibliothek / ein Standardwerkzeug gibt, mit dem ich arbeiten kann mit GPS-Tracks. Einige der Dinge, die ich gerne mache:
- Berechnen Sie die zurückgelegte Strecke
- Berechnen Sie die Durchschnittsgeschwindigkeit und die momentanen Geschwindigkeiten entlang der Strecke
- Berechnen Sie die Zeit in Bewegung im Verhältnis zur Standzeit
- Vereinfachen Sie die Spur, beseitigen Sie stationäre Segmente
- Segmentieren Sie eine Spur in separate Spuren, eine pro Fahrt
- Glätten Sie den GPS-Abtastfehler
- Erstellen Sie ein Höhenprofil, indem Sie Punkte in einem DEM nachschlagen
- Konvertieren Sie die Spuren zur Visualisierung in GPX, KML usw.
Es gibt eine Vielzahl von Anwendungen, die GPS-Tracks analysieren. Ich suche nach einer Softwarebibliothek oder einem skriptfähigen Satz von Tools, damit ich meine eigenen Anwendungen schreiben kann. Eingabeformate interessieren mich nicht sonderlich. Jede Art von Lat / Lon-Punkten mit Zeitstempel ist in Ordnung. Ich arbeite hauptsächlich in Python unter Unix, aber so ziemlich jede Sprache wird es tun.
Zu den vorhandenen Werkzeugen, die ich verwende, gehören GPSBabel und GDAL / OGR für die Konvertierung und PostGIS für die Arbeit mit der Spurgeometrie als Linienfolge. Aber meistens schreibe ich meinen eigenen Python-Code, der auf Arrays von Lat / Lon-Paaren funktioniert und sich zu leise anfühlt. Außerdem sind einige der oben genannten Aufgaben (z. B. das Entfernen von GPS-Fehlern) recht subtil. Gibt es eine Bibliothek, die ich benutzen sollte?
quelle
Antworten:
Nun, irgendwie hängt es von der von Ihnen gewählten Programmiersprache ab, aber ich habe mineturer.org in Java entwickelt (die Site ist im Wesentlichen eine Site zum Hochladen, Analysieren und Anzeigen von GPX-Daten).
Ich habe JAX-B (http://jaxb.java.net/) verwendet, um GPX-Dateien (basierend auf dem GPX-Schema) und JTS (http://www.vividsolutions.com/jts/) + eigenen Code für zu lesen Analysieren.
Der Quellcode für mineturer.org steht unter einer MIT-Lizenz unter https://bitbucket.org/atlefren/gpsorganizer/ zur Verfügung.
Ich denke, der Code könnte Ihnen zumindest einige Hinweise geben?
quelle
Ich habe eine mathematische C # -Bibliothek für 2D- / 3D-Mathematik geschrieben, die auf GPS-Handling abzielt: GPX und TCX lesen, Tracks filtern und vereinfachen, Tracks / Segmente gruppieren und in 2D-Ebene transformieren.
https://www.nuget.org/packages/Math.Matthey/
https://www.nuget.org/packages/Math.Matthey.Tools.TrackReaders/
quelle
<rte>
und<rtept>
-Elementen zu analysieren<trk>
?Das GPS-Toolkit sollte helfen. Es ist eine Open-Source-Bibliothek und eine Suite von Anwendungen, die darauf abzielt, Forscher von der Codierung auf niedrigerer Ebene zu befreien.
Es bietet die folgenden Funktionen:
quelle
Es gibt eine Open-Source-Bibliothek, die ich gerade fertig entwickelt habe (zu stable), und eine Benutzeroberfläche zum Analysieren von GPX-, TCX- und Fit-Dateien.
Die Bibliothek ist https://github.com/jimmykane/quantified-self-lib Die Benutzeroberfläche basiert auf Angular https://github.com/jimmykane/quantified-self
Live Demo https://www.quantified-self.io
Sie können eine GPX-, TCX- oder Fit-Datei analysieren, Statistiken wie Aufstieg, Abstieg, Entfernung,
quelle
Hervorragende Frage! Ich habe in letzter Zeit ziemlich viel mit GPX-Daten gearbeitet und die einfachste Lösung, die ich gefunden habe, bestand darin, Ihre Track-Punkte in ein räumliches DB-Format zu konvertieren und dann Ansichten (räumlich und tabellarisch) zu erstellen, um die Daten nach Bedarf zusammenzufassen. Ich konnte mit OGR nicht die Ergebnisse abrufen, die zum Importieren meiner GPX-Daten benötigt wurden. Daher habe ich ein einfaches Python-Skript verwendet, um die XML-Baumstruktur der GPX zu durchlaufen und in die Datenbank zu laden (in meinem Fall SpatiaLite). Dies hilft Ihnen definitiv nicht dabei, das Rad neu zu erfinden, aber ich stellte fest, dass ich mit vorhandenen SQL- und räumlichen SQL-Funktionen die gewünschten Ergebnisse beim Zusammenfassen von Tracks auf Reisen erzielen konnte.
quelle
Ich entwickle dieses kleine Soft für meinen eigenen Gebrauch. Es ist hauptsächlich für die Visualisierung gedacht und unterstützt nicht alle Ihre Bedürfnisse, aber vielleicht kann es helfen!
quelle
auf die gefahr, ihre eigentliche frage nicht zu beantworten :-), lassen sie mich eine großartige anwendung vorschlagen, von der sie vielleicht noch nichts gehört haben.
Dies ist unter anderem meine zentrale Anlaufstelle zum Anzeigen, Bearbeiten und Übertragen von GPX.
Weitere Informationen zum Thema finden Sie im Positioning-Namespace von dotSpatial (.NET): http://dotspatial.codeplex.com/wikipage?title=DotSpatial.Positioning
Grüße.
quelle
Wenn Sie eine abstrakte Spezifikation für eine sprachneutrale API wünschen, gibt es GeoAPI:
"Die Entwicklergemeinschaft bei der Entwicklung von GIS-Lösungen leistet einen enormen Beitrag. Das GeoAPI-Projekt zielt darauf ab, Doppelarbeit zu verringern und die Interoperabilität zu verbessern, indem neutrale APIs bereitgestellt werden, die nur auf der Schnittstelle von OGC / ISO-Standards basieren."
http://www.geoapi.org/
und genauer der Implementation Standard (PDF)
quelle
Laden Sie Ihren GPX-Track auf diese URL hoch
Sie erhalten die meisten von Ihnen angeforderten Dienstleistungen, insbesondere:
quelle