So wie ich das sehe hat der ForeRunner einfach immer am nächsten Tag bei der alten Strecke weiter gemacht anstatt den Track abzuschließen und einen neuen zu beginnen – werd ich wohl noch mal das Handbuch konsolidieren müssen 😉
Wie auch immer, das Kind ist bereits in den Brunnen gefallen – also muss eine Lösung her!
Normalerweise verwende ich RouteConverter für das Zerlegen und Umwandeln meiner TCX Dateien, allerdings klappt das in diesem Fall nicht weil RouteConverter keine TCX Dateien schreiben kann und allen ähnlichen Formaten fehlen dann die Pulswerte.
Aus der Not heraus habe ich mir dann das TCX Format ein wenig angeschaut und festgestellt dass es klassisches XML ist und in der Datei die einzelnen Tracks schön aufzufinden sind.
Wenige Minuten später steht schon mal ein Bash Script welches mir die Datei nach dem im Time-Tag angegebenen Tagen aufsplittet:
#!/bin/bash
if [ ! „$1“ ]; then
echo „Bitte zu lesende Datei angeben!“
exit
fiIFS=“
“if [ „$3“ ]; then
START=$(grep -n „<Track“ $1| head -1| awk -F‘:‘ ‚{print $1}‘)
START=$((START-1))
head -$START $1
ENDE=$(($3-$2))
head -$3 $1 |tail -$ENDE
ENDE=$(grep -n „</Lap>“ $1|tail -1| awk -F‘:‘ ‚{print $1}‘)
GESAMT=$(wc -l $1|awk ‚{print $1}‘)
ZENDE=$((GESAMT-ENDE+1))
tail -$ZENDE $1else
for T in $(grep -A2 „<Track>“ $1|grep „Time“); do
TAG=$(echo $T|awk -F‘>‘ ‚{print $2}’|awk -F'<‚ ‚{print $1}’|awk -F ‚T‘ ‚{print $1}‘)
if [ ! „X$TAG“ == „X$LASTTAG“ ]; then
START=$(grep -n „<Time>$TAG“ $1|head -1|awk -F‘:‘ ‚{print $1}‘)
START=$((START-3))
ENDE=$(grep -n „<Time>$TAG“ $1|tail -1|awk -F‘:‘ ‚{print $1}‘)
ENDE=$((ENDE+2))
echo -e „$TAGn Start: $STARTn Ende: $ENDEn“
fiLASTTAG=$TAG
done
echo „Bitte Start- und Endzeile mit angeben!“
fi
Ich habe das Programm unter dem Namen „split_track.sh“ abgespeichert, beim ersten Aufruf muss man lediglich den Dateinamen der TCX-Datei angeben und schon werden einen die möglichen Start/Endpunkte angezeigt. Beim zweiten Starten gibt man dann einfach den entsprechenden Start/Endpunkt zusätzlich als Parameter an und leitet die Ausgabe mit „>“ in die gewünschte Datei um.
Das Ergebnis ist eine frische TCX Datei mit lediglich dem Tag den man vorher ausgewählt hat.
Diese hatte in meinem Fall allerdings einen kleinen Schönheitsfehler, die Streckendaten waren über Tage summiert und daher starteten die Daten vom 3. Tag z.B. bei Kilometer 67 und nicht bei Null wie ich es für eine Tagestour erwartet hätte.
Also muss ein weiteres Script her das die einzelnen Werte in „DistanceMeters“ um einen Angegebenen Wert korrigiert!
#!/bin/bash
if [ ! „$1“ ]; then
echo „Bitte zu lesende Datei angeben!“
exit
fiif [ ! „$2“ ]; then
echo „Bitte falschen Startwert Entfernung angeben!“
FST=$(grep „DistanceMeters“ $1|head -2 |tail -1|awk -F‘>‘ ‚{print $2}’| awk -F ‚<‚ ‚{print $1}‘)
echo „z.B.: $FST“
exit
fiFSTART=$2
GSTART=$(echo $FSTART|awk -F‘.‘ ‚{print $1}‘)IFS=“
“for I in $(cat $1); do
TYP=$(echo $I|awk -F‘>‘ ‚{print $1}’|sed -e „s/ //g“)
WERT=$(echo $I|awk -F‘>‘ ‚{print $2}’| awk -F ‚<‚ ‚{print $1}‘)
WERTGANZ=$(echo $WERT|awk -F‘.‘ ‚{print $1}‘)
if [ „X$TYP“ == „X<DistanceMeters“ ]; then
if [ $WERTGANZ -ge $GSTART ]; then
NEUWERT=$(echo „scale=7; $WERT-$FSTART“|bc)
echo “ <DistanceMeters>$NEUWERT</DistanceMeters>“
else
echo “ <DistanceMeters>$WERT</DistanceMeters>“
fi
else
echo $I
fidone
Vom Ablauf her funktioniert das zweite Script (ich habe es entf_chg.sh genannt) fast gleich, beim ersten Aufruf nur den Dateinamen der TCX Datei angeben und anschließen noch als Parameter den abzuziehenden Meterwert inkl. Nachkommerstellen (durch Punkt getrennt – nicht Komma!) angeben.
Leitet man die Ausgabe dann erneut in eine Datei um, erhält man eine neue TCX Datei mit hoffentlich korrekten Entfernungsangaben. Der Script-Durchlauf kann etwas dauern, mir war wichtiger dass es funktioniert – die Geschwindigkeit war da erst mal zweitrangig.
Bei meinen Versuchen hatte ich ab und zu noch das Problem dass nach dem Splitten in der TCX Datei noch ein LAP-XML-Eintrag vorhanden war ohne vernünftige Werte, den musste ich händisch rauslöschen damit das zweite Script korrekte Entfernungsangaben liefern konnte.
Alles in allem ist das ganze sicher nicht perfekt, aber es hat bei mir sehr gut funktioniert und eventuell hilft es ja dem einen oder anderen bei einem ähnlichen Problem weiter 🙂
Nachdem der Ausbau mit dem Selbstbau Werkzeug eigentlich prima geklappt hat und das Ersatzteil angekommen…
Eigentlich sollte man jetzt gerade irgendwelche Trainingseinheiten à la Rapha 500 fahren und Kilometer für…
Die Firma Gonso hat mir im Jänner ein Set der Ternes Winterjacke und Sirac 3-in-1…
Die Firma Lore stellt gerade ihren "Lore One" getauften maßgeschneiderten Radschuh vor und bietet die…
Gestern Nachmittag habe ich das schöne Wetter genutzt und eine kleine Runde mit dem Rennrad…
...ist aus sportlicher Sicht nicht wirklich eine Herausforderung, wenn man vom Anstehen in den Warteschlangen…