04.06.2008, 21:49 (This post was last modified: 04.06.2008, 21:51 by tk_.)
Hallo,
suche im Forum nach Kommandozeile ergab keinen Treffer. Rufe ich das Programm über Kommondazeile auf, geht das GUI auf. Auch mit -h und --help.
Also lege ich mal los ;-)
RouteConverter kann offensichtlich top50 Format (das GPX-fremde Format, das mich hauptsächlich interessiert) und GPSBabel kann es nicht (Code scheint dort vorhanden zu sein, ist aber deaktiviert). Wäre interessant zu wissen, ob die top50-Routine in Java ist oder das interne GPS-Babel aufgebohrt wurde.
Es wäre toll, man könnte die Konvertierungsfunktionen auch über Kommandozeile aufrufen (ebenso wie eine Ergänzung der Höhendaten für Trackpunkte ;-)) um multiple Files per Skript oder Makefile zu konvertieren ohne sich zu Tode zu klicken.
Alternative wäre natürlich das Konvertieren eines ganzen Verzeichnisses voller Input Daten per GUI.
Auch eine Zerlegung der Eingangsdaten in einzelne Ausgangsfiles mit nur einem Track (Filenamen automatisch durchnummeriert) wäre cool (ebenso wie das umgekehrte).
Da ich eigentlich kein Java kann, kann ich leider keine Hilfe anbieten.
Oder kann man das alles machen, wenn man die jar-Files hat und direkt auf die Java-Klassen des Backends durchgreift?
tk_ Wrote:suche im Forum nach Kommandozeile ergab keinen Treffer. Rufe ich das Programm über Kommondazeile auf, geht das GUI auf. Auch mit -h und --help.
Hallo Thomas,
die GUI-Variante akzeptiert als Kommandozeilenparameter nur Dateinamen und lädt alle Dateien als 1 lange Route.
tk_ Wrote:RouteConverter kann offensichtlich top50 Format (das GPX-fremde Format, das mich hauptsächlich interessiert) und GPSBabel kann es nicht (Code scheint dort vorhanden zu sein, ist aber deaktiviert). Wäre interessant zu wissen, ob die top50-Routine in Java ist oder das interne GPS-Babel aufgebohrt wurde.
Die ist in Java.
tk_ Wrote:Es wäre toll, man könnte die Konvertierungsfunktionen auch über Kommandozeile aufrufen (ebenso wie eine Ergänzung der Höhendaten für Trackpunkte ;-)) um multiple Files per Skript oder Makefile zu konvertieren ohne sich zu Tode zu klicken.
Genau. Sollte es das schon laenger geben als meinen Frage, dann bitte ich um Entschuldigung.
routeconverter Wrote:
tk_ Wrote:Oder kann man das alles machen, wenn man die jar-Files hat und direkt auf die Java-Klassen des Backends durchgreift?
Was meinst Du damit?
Damit meine ich - bei meinen nahezu nicht vorhanden Java-Kenntnissen - dass in Deinen jar-Files ja Klassen zum Lesen und Schreiben der Daten drin sein sollten und man die moeglicherweise auch als Laie mit wenig Aufwand nutzen kann. Hat sich ja erledigt. Siehe oben.
Kann man über Kommandozeile eigentlich nur die Konvertierungs-Funktionalität erreichen? Oder gibt es auch alle anderen coolen Features (Höhendaten, Tracklisten, Statistics etc.)?
Wenn ich die Optionen --help, -h, --version usw. versuche, bekomme ich leider keine sinnvolle Ausgabe.
(22.03.2009, 19:25)tk_ Wrote: Kann man über Kommandozeile eigentlich nur die Konvertierungs-Funktionalität erreichen?
Ja.
(22.03.2009, 19:25)tk_ Wrote: Oder gibt es auch alle anderen coolen Features (Höhendaten, Tracklisten, Statistics etc.)?
Nein.
(22.03.2009, 19:25)tk_ Wrote: Wenn ich die Optionen --help, -h, --version usw. versuche, bekomme ich leider keine sinnvolle Ausgabe.
Stimmt.
RouteConverter.jar versucht einfach alle Parameter als Dateien zu interpretieren - die allermeisten Nutzer wissen mit der Kommandozeile nichts anzufangen, drum habe ich mehr Optionen weggelassen.
RouteConverterCmdLine.jar gibt eine Hilfe aus bei Fehlern:
Code:
c:\p4\RouteConverter\trunk\build>java -jar output\RouteConverterCmdLine.jar
Started RouteConverter on windows with Java 1.6.0_12
Usage: java -jar RouteConverterCmdLine.jar <source file> <target format> <target file>
Supported formats:
AlanTrackLogFormat for Alan Map 500 Tracklog (*.trl)
AlanWaypointsAndRoutesFormat for Alan Map 500 Waypoints and Routes (*.wpr)
CoPilot6Format for CoPilot 6 (*.trp)
CoPilot7Format for CoPilot 7 (*.trp)
TourFormat for Falk Navigator (*.tour)
[..]
[/code]
Habe ein python-skript geschrieben, welches nur auf gpx-Files lesen/schreiben kann, mit diesen aber nun fast alle Operationen unterstützt, die ich brauche (oder zumindest möchte):
Skript lädt (gefiltert) beliebig viele GPX-Dateien. Speichert (gefiltert) Tracks in eine GPX Datei ab.
BuildTrack: Neuen Track aus vorhandenen erzeugen (forwärts/rückwärts aneinderhängen)
ComputeTrackPointDistance: Berechnet für Trackpunkte den Abstand zum vorherigen mittels Bearing-Klasse von hier (da habe ich doch glatt mein erstes Java-Projekt gemacht) und speichert diesen als gpx trkpt-extension.
FetchElevation: Hohlt fehlende Höhen von geonames.org
MoveElevation: Schiebt Höhendaten von trkpt nach gpx trkpt-extension.
WriteTables: Schreibt für jeden geladenen Track einen Daten-File (Text) mit folgendem Inhalt:
Column 1: track point number
Column 2: track point time relative to track start time [s] or "n.a."
Column 3: track point position (WGS 84) lat [deg]
Column 4: track point position (WGS 84) lon [deg]
Column 5: track length at track point relative to track start point [m] or "n.a."
Column 6: track point elevation [m] or "na"
Column 7: track point original elevation [m] or "n.a."
Hier fehlt noch z.B. Geschwindigkeit und Steigung (was noch?). Mit dieser Datei kann man dann hoffentlich mit gnuplot die schönsten Plots machen (später auch wieder automatisch).
Options:
-h, --help show this help message and exit
-v, --verbose information logging
-V, --veryverbose debug logging
-i INFILE, --input=INFILE
name of one GPX input file, use for every input file
you want to load
--infilt=INFILE INREGEX
name of one GPX input file and a regular expression
that track names read from the file have to match, can
be used multiple times
-o OUTFILE, --output=OUTFILE
name of GPX output file, if not set stdout will be
used
--outfilt=OUTREGEX a regular expression that track names written to the
output have to match
--no-out do not write output gpx file
--trkfilt=TRACKREGEX a regular expression that track names have to match to
be processed
--new-track-name=NEWTRKNAME
name of new track created
--append-track=forw|back:TRKNAME
direction and name of track appended to new track
NEWTRKNAME, use for every track you want to append
--outdir=OUTDIR some actions create automatically named output files,
this is the directory they will be written to
IMHO wäre das alles für den Routeconverter Command Line sehr sinnvoll. Funktionell wäre das meiste da (ausser speichern in gpx-extensions, was nichts macht). Das Laden mehrere Dateien und das Filtern mit RegEx geht soweit ich das überblicke auch nicht. Die Ausgabe der Tabellen in text-Datei wäre auch sehr hilfreich (und geht IMHO derzeit nicht). Man kann dann selbst allerhand Plots/Auswertungen machen. Die Power und Flexibilität, die man hier z.B. mit gnuplot hat, wird man wohl mit Routeconverter nur mit sehr viel Aufwand erreichen können.
Eine main-Klasse mit den Optionen würde ich mir (a Java rookie) noch zutrauen. Mit einer Java-Implementierung wird es mittelfristig sicher nix.
Mit dem Skript habe ich jetzt mal geschwind einen GPX-File mit 67 tracks prozessiert, indem ich ein paar Kommandos gestartet habe. Berechtigung hat sowas also schon.
11.01.2010, 13:57 (This post was last modified: 11.01.2010, 13:57 by routeconverter.)
(10.01.2010, 17:48)tk_ Wrote: IMHO wäre das alles für den Routeconverter Command Line sehr sinnvoll. Funktionell wäre das meiste da (ausser speichern in gpx-extensions, was nichts macht).
(10.01.2010, 17:48)tk_ Wrote: Das Laden mehrere Dateien und das Filtern mit RegEx geht soweit ich das überblicke auch nicht.
Stimmt, im Moment ist es 1 Datei hinein, 1 hinaus.
(10.01.2010, 17:48)tk_ Wrote: Die Ausgabe der Tabellen in text-Datei wäre auch sehr hilfreich (und geht IMHO derzeit nicht). Man kann dann selbst allerhand Plots/Auswertungen machen. Die Power und Flexibilität, die man hier z.B. mit gnuplot hat, wird man wohl mit Routeconverter nur mit sehr viel Aufwand erreichen können.
Hast Du da Beispiele, wie solche Graphen aussehen könnten?
(10.01.2010, 17:48)tk_ Wrote: Eine main-Klasse mit den Optionen würde ich mir (a Java rookie) noch zutrauen. Mit einer Java-Implementierung wird es mittelfristig sicher nix.
(10.01.2010, 17:48)tk_ Wrote: Die Ausgabe der Tabellen in text-Datei wäre auch sehr hilfreich (und geht IMHO derzeit nicht). Man kann dann selbst allerhand Plots/Auswertungen machen. Die Power und Flexibilität, die man hier z.B. mit gnuplot hat, wird man wohl mit Routeconverter nur mit sehr viel Aufwand erreichen können.
Hast Du da Beispiele, wie solche Graphen aussehen könnten?
In dem zip-file bedindet sich ein per script erzeugter Datenfile.
Eine (kleine) Auswahl möglicher plots:
plot1.png zeigt Vergleich zwischen originaler Höhe und der von geonames.org
Code:
gnuplot> plot './WKEL-HM.dat' using 5:7 with lines, './WKEL-HM.dat' using 5:6 with lines
plot2.png zeigt lat gegen lon
Code:
gnuplot> plot './WKEL-HM.dat' using 3:4 with lines
plot3.png zeigt eine 3d-Darstellung des Tracks
Code:
gnuplot> splot './WKEL-HM.dat' using 3:4:6 with lines
final.png: mit etwas mehr Mühe bekommt man mit gnuplot einen 2d-Plot (schwarz=niedrigste Höhe, rot=höchste Höhe) und kann den transparent über eine Karte legen (da braucht man noch http://www.imagemagick.org zu)