Perlscripte GPSWay, TrackGPS und RaceGPS
Allgemeines zu den Perlscripten
Perl-Scripte benötigen zur Ausführung einen Laufzeitinterpreter. Auf vielen http-Server ist dieser gleich mit integriert. Die Funktionalität ist aber unabhängig von einem Server und kann daher auf jedem PC installiert werden. Es gibt für eigentlich jedes Betriebssystem einen passenden Interpreter. Wie man zu einer lauffähigen Perl-Installation kommt, kann man bei {1} nachlesen. Bei mir laufen die Scripts auf einer V5.004_02 Installation unter Windows.
Die hier zum herunterladen angebotenen Scripte sind Freeware unter der GNU (mehr Info dazu ist in Englisch direkt in den Scripten niedergelegt). Da ich GPSWay, TrackGPS und RaceGPS für die von mir benutzen Programme und GPS-Geräte erstellt habe, übernehme ich keinerlei Haftung für die Funktionalität. Reaktionen per Email sind erwünscht, ich werde aber keinerlei Anpassungen zur Erweiterung auf andere Ein/Ausgabe Schnittstellen betreiben, es sei denn, ich will diese in Zukunft selber nutzen ;). Die Scripte sind recht ausführlich in englisch kommentiert und sollten Weiterentwicklungswillige in keiner Weise vor Rätsel stellen.
Downloads: TrackGPSWay.zip (7Kbyte) RaceGPS.zip (Beta-Release)
Die am Seitenende aufgeführten externen Webangebote waren für mich bei der Informationsbeschaffung zur Scripterstellung und dem Thema GPS Navigation nützlich. Ich habe keinerlei kommerzielle und/oder persönliche Beziehungen zu diesen Webangeboten und stelle die Links als reine Informationsergänzung zur Verfügung.
GPSWay
GPSWay ist ein kleines Perl-Script, dass aus einer XML-Datei im TourExchangeFormat (TEF) die GPS-Koordinaten ausliest, ins RTE-Format überführt und in eine Datei schreibt. Das Script ist nur mit dem XML (TEF) erzeugenden Motorrad Tourenplaner 2003/2004 und dem RTE-Daten importierenden Navigon Mobile Navigator 4.0 und 4.2 getestet.
GPSWay kann über die Kommandozeile wie folgt benutzt werden, wobei [ ] optionale Erweiterungen sind:
GPSWay.pl [-l] [-d] [-n] Dateiname.xml
- [-l] Statusausgaben werden in ein Logfile (GPSWay.log) geschrieben. Es gibt keine Ausgabe am Commandpromt. Das Logfile wird im selben Verzeichnis generiert, in dem auch GPSWay.pl liegt. Bei schon vorhandenem Logfile wird ein neuer Eintrag in diese geschrieben.
- [-d] Debug Option ist aktiv, detalliertere Statusausgabe wird erstellt (am Commandpromt, oder im Logfile). Diese Option ist nur zur Fehlersuche oder Weiterentwicklung sinnvoll.
- [-n] Für die Ausgabe wird das Navigator 4.2 RTE-Format verwendet, sonnst wird die 4.0 Notation benutzt.
- Dateiname.xml ist der Name der zu analysierenden XML-Datei (inklusive Pfad, falls nicht im selben Verzeichnis wie GPSWay). Die Endung .xml wird zwingend vorausgesetzt.
- Ausgabe: Dateiname.rte wird immer im selben Verzeichnis, wie die xml-Datei abgelegt und hat den selben Namen wie diese.
Bei grafischen Betriebsystemen hilft eine Verknüpfung auf dem Desktop abgelegt, die auf eine Batch-Datei (GPSWay.bat) im selben Verzeichnis wie GPSWay.pl liegt, für den komfotablen Abeitsfluss ungemein, da dann Drag&Drop benutzt werden kann. In der Batchdatei hat sich unter Windows folgende Syntax bewährt:
GPSWay.pl -ln %1
Nun wird die auf die Verknüpfung gezogene XML-Datei im TourExchangeFormat von GPSWay analysiert, ein kurzer 3-Zeiler ins Logfile geschrieben und die RTE-Datei für den Mobile Navigator 4.2 dort generiert, wo man die XML-Datei hergeholt hat. [ Ab zum Download ]
TrackGPS
Das Perl Script TrackGPS hilft bei der Auswertung von NMEA-Logs {2}. Es werden sowohl die GPS-Koordinaten, als auch die dazu passende Zeit, geschätzte Höhe über Null und die Geschwindigkeit über Grund in eine CVS-Datei geschrieben. Diese lässt sich mit jeder gängigen Tabellenkalkulation weiter bearbeiten und auswerten. TrackGPS wurde nur mit der NMEA-Logs des Navigon Mobile Navigator 4.2 am Acer n35 PDA getestet. Wie man beim Navigon Mobile Navigator 4.2 an ein NMEA-Log kommt kann man bei {5} nachlesen.
TrackGPS kann über die Kommandozeile wie folgt benutzt werden, wobei [ ] optionale Erweiterungen sind:
TrackGPS.pl [-l] [-d] [-s] [-q] Dateiname.nmea
- [-l] Statusausgaben werden in ein Logfile (TrackGPS.log ) geschrieben. Es gibt keine Ausgabe am Commandpromt. Das Logfile wird im selben Verzeichnis generiert, in dem auch TrackGPS.pl liegt. Bei schon vorhandenem Logfile wird ein neuer Eintrag in diese geschrieben.
- [-d] Debug Option ist aktiv, detalliertere Statusausgabe wird erstellt (am Commandpromt, oder im Logfile). Diese Option ist nur zur Fehlersuche oder Weiterentwicklung sinnvoll.
- [-s] Statistik Option ist aktiv, es werden noch folgende statistische Daten (am Commandpromt, oder im Logfile) mit ausgegeben:
- Signalqualität in Prozen
- Höchst- und Durchschnittsgeschwindigkeit (mit und ohne Standzeiten)
- Höhendifferrenz (mit Minimal- und Maximalhöhe)
- zurückgelegte Höhenmeter (mit Startpunkt- und Endpunkt-Höhe)
- [-q] Signalqualitätsprüfung ist nicht aktiv. Da Statistik für schlechtes Datenmaterial keinen Sinn macht, wird die Statistik nur ausgegeben, wenn die Anzahl der unplausiblen/ungültigen Datensätze (NMEA-Strings) kleiner 5% ist. Mit dieser Option läst sich diese Prüfung abschalten.
- Dateiname.nmea ist der Name des zu analysierenden NMEA-Logs (inclusive Pfad, falls nicht im selben Verzeichnis wie TrackGPS). Die Endung .nmea kann durch die Endung .txt ersetzt werden.
- Ausgabe: Dateiname.cvs wird immer im selben Verzeichnis, wie die NMEA-Datei abgelegt und hat den selben Namen wie diese.
Eine Verknüpfung auf eine Batch-Datei, wie bei GPSWay, hat sich auch hier mit folgender Syntax unter Windows bewährt:
TrackGPS.pl -lsq %1
Nun wird die auf die Verknüpfung gezogene NMEA-Datei von TrackGPS analysiert, die statistischen Daten ohne Rücksicht auf die Signalqualität ins Logfile geschrieben und die CVS-Datei dort generiert, wo man die NMEA-Datei hergeholt hat. [ Ab zum Download ]
RaceGPS (ACHTUNG: noch nicht erprobt, Beta-Release)
Das Perl Script RaceGPS ist eine Adaption des Scripts TrackGPS. Es hilft bei der Auswertung von NMEA-Log-Dateien {2} die auf der Rennstrecke gemacht wurden. Es werden sowohl die GPS-Koordinaten, als auch die dazu passende Zeit, geschätzte Höhe über Null, die aktuelle Geschwindigkeit über Grund, die Rundenzahl und die berechnete Rundenzeit in eine CVS-Datei geschrieben. Diese lässt sich mit jeder gängigen Tabellenkalkulation weiter bearbeiten und auswerten. RaceGPS wurde nur mit der NMEA-Log-Datei des Navigon Mobile Navigator 4.2 am Acer n35 PDA getestet. Wie man beim Navigon Mobile Navigator 4.2 an ein NMEA-Log kommt, kann man bei {5} nachlesen.
Um aus der NMEA-Log-Datei Informationen über die absolvierten Runden entlocken zu können benötigt das Script die Information wo die Start-Ziel-Linie sich befindet. Dieses wird über eine Text-Datei, in der die GPS-Koordinaten der Endpunkte der Linie eingetragen sind erledigt. Um an diese Koordinaten zu kommen, kann man
- Sich mit seinem GPS-System an die Punkte stellen und die Koordinaten notieren.
- Die NMEA-Log-Datei mit TrackGPS konvertieren und sich grafisch in einer Tabellenkalkulation auswerten, wo diese Koordinaten liegen sollten.
Die Koordinaten müssen leider händisch in diese Text-Datein eingetragen werde. Das Format sieht wie folgt aus:
Position;latitude;lonitude
Northend;ddd.ssssss;dd.ssssss
Southend;ddd.ssssss;dd.ssssss
Wobei "Northend", "Southend" durch "Westhend", "Easthend" ersetzt werden sollten, wenn die Start-Ziel-Linie mehr in die waagerechte zeigt. Eine Beispieldatei ist in dem zum downloaden bereitgestelten ZIP-Archiv enthalten.
RaceGPS kann über die Kommandozeile wie folgt benutzt werden, wobei [ ] optionale Erweiterungen sind:
RaceGPS.pl [-l] [-d] [-s] [-q] Dateiname.nmea Dateiname.sfl
- [-l] Statusausgaben werden in ein RaceGPS.log geschrieben. Es gibt keine Ausgabe am Commandpromt. Das Logfile wird im selben Verzeichnis generiert, in dem auch RaceGPS.pl liegt. Bei schon vorhandenem Logfile wird ein neuer Eintrag in dieses geschrieben.
- [-d] Debug Option ist aktiv, detaliertere Statusausgabe wird erstellt (am Commandpromt, oder im Logfile). Diese Option ist nur zur Fehlersuche oder Weiterentwicklung sinnvoll.
- [-s] Statistik Option ist aktiv, es werden noch folgende statistische Daten (am Commandpromt, oder im Logfile) mit ausgegeben:
- pro gefundener komplette Runde
- Rundennummer
- Rundenzeit
- Höchstgeschwindigkeit
- Durchschnittsgeschwindigkeit
- Signalqualität in Prozent
- Gesamtzeit des des Rennens/Trainingszyklus
- Höchst- und Durchschnittsgeschwindigkeit des Rennens/Trainingszyklus
- Höhendifferrenz (mit Minimal- und Maximalhöhe)
- Höhenmeter (mit Startpunkt- und Endpunkt-Höhe)
- [-q] Signalqualitätsprüfung ist nicht aktiv. Da Statistik für schlechte Daten keinen Sinn macht, wird die Statistik nur ausgegeben, wenn die Anzahl der unplausiblen/ungültigen Datensätze (NMEA-Strings) kleiner 5% ist. Mit dieser Option läst sich diese Prüfung abschalten.
- Dateiname.nmea ist der Name der zu analysierenden NMEA-Log-Datei (inclusive Pfad, falls nicht im selben Verzeichnis wie RaceGPS). Die Endung .nmea kann durch .txt ersetzt werden.
- Dateiname.sfl ist der Name der Start-Ziel-Linie-Koordinaten-Datei (inclusive Pfad, falls nicht im selben Verzeichnis wie RaceGPS). Die Endung .sfl (StartFinishingLine) ist nicht zwingend zu benutzen.
- Ausgabe: Dateiname.cvs wird immer im selben Verzeichnis, wie die NMEA-Datei abgelegt.
Eine Verknüpfung auf eine Batch-Datei, wie bei TrackGPS und GPSWay hat sich auch hier mit folgender Syntax bewährt:
RaceGPS.pl -lsq %1
Nun wird die auf die Verknüpfung gezogene NMEA-Datei von RaceGPS analysiert, die statistischen Daten ohne Rücksicht auf die Signalqualität ins Logfile geschrieben und die CVS-Datei dort generiert, wo man die NMEA-Datei hergeholt hat. [ Ab zum Download ]
Liste externer Links:
- {1} Perl ( www.perl.com ),( http://de.selfhtml.org/perl )
- {2} Das NMEA-Format ( http://www.kowoma.de/gps/zusatzerklaerungen/NMEA.htm )
- {3} GPS Navigation mit PDAs ( http://www.pocketnavigation.de/ )
- {4} XML ( http://www.w3.org/TR/rdf-syntax-grammar/ )
- {5} GPSLogger ( http://www.malume.de/ppc/mn4gpslogger/index.html )