Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Garmin-Update

Software von und für die Welt.
Benutzeravatar
Aceacin
Geowizard
Beiträge: 2006
Registriert: Mo 8. Sep 2008, 17:09
Wohnort: KO-Ehrenbreitstein
Kontaktdaten:

Re: Garmin-Update

Beitrag von Aceacin »

Ich schau mir auch GPSprune mal an... Läuft manuell für jedes Bild einzeln..?

@espe2310: Mhh.. wie sieht dass denn mit den selbst geschriebenen Scrips aus? *g* Die Idee, einfach 'ne GPX zu nehmen und diese liefert dann die Daten für den Spoilerbilddownload und bringt dann noch die Verzeichnisse richtig hin und markiert die Bilder entsprechen.., klingt sehr gut.
Vielleicht sind wir doch blinder, als wir auf den ersten Blick sehen können.
BildBild
Benutzeravatar
wilde-maus
Geomaster
Beiträge: 711
Registriert: So 25. Nov 2007, 08:58
Wohnort: Bremen
Kontaktdaten:

Re: Garmin-Update

Beitrag von wilde-maus »

man kann bei GPSprune mehrere Bilder einladen und ein GPX mit mehreren Wegpunkten. Bilder mit Wegpunkten verknüpfen mach ich immer einzeln. Allein schon aus dem Grund weil Geocaches meist nur ein Spoilerbild haben - wenn überhaupt. Mehrere Bilder mit einem WP verknüpfen habe ich noch nie versucht.
Bild Pfülmbüchsentraddy suchen... :dagegen:
Benutzeravatar
espe2310
Geocacher
Beiträge: 36
Registriert: So 24. Jun 2007, 12:15
Wohnort: 53894 Mechernich-Antweiler

Re: Garmin-Update

Beitrag von espe2310 »

Aceacin hat geschrieben:
... und dann, dass das py-Proggie keine Berechtigung hat.
Hi Aceacin,

das hört sich so an, als ob das Pythonscript nicht als ausführbares Programm markiert ist.
(Rechtsklick, Eigenschaften).

Die Skripte werde ich mal mit Anleitung zusammenstellen. Aber die Anleitungen dauern was, wenn es genau beschrieben werden soll. Siehe oben ;)

Gruß
Ernst / espe2310
Benutzeravatar
espe2310
Geocacher
Beiträge: 36
Registriert: So 24. Jun 2007, 12:15
Wohnort: 53894 Mechernich-Antweiler

Re: Garmin-Update

Beitrag von espe2310 »

So, hier mal meine Skripts zur Verwaltung der GPX-Dateien und Spoilerbilder auf dem Oregon. Das sollte sich auch an andere Geräte anpassen lassen. Ziel war es, alles auf dem PC zu verwalten und mit einem Klick das Oregon auf den neuesten Stand zu bringen.

Die eigentliche Arbeit erledigen die gctools von Bernhard Tittelbach https://github.com/btittelbach/gctools.
Benötigt werden: gpx_merge.py und gc_get_spoiler_pics.py
Dazu müssen installiert sein: Python3, Python3-lxml, imagemagick, libimage-exiftool-perl
Meine Skripts sind einfache Bash-Skripts.

In meinem Geocaching-Verzeichnis habe ich 3 Ordner (Beispiel, kann natürlich angepasst werden):
- GPX - der Ordner mit den GPX-Dateien, hier steht drin, was mit soll (aktuelles HomezonePQ und halt was ansteht)
- GPX_Mystery - der Ordner mit den Koordinaten gelöster Mysteries (das kommt später nochmal)
- gctools - die Skripte (Alle Skripte müssen als ausführbare Dateien markiert sein - Rechtsklick, Eigenschaften).

Das Oregon meldet sich bei mir als /media/GARMIN an. Im Verzeichnis /media/GARMIN/Garmin einen Ordner "GeocachePhotos" anlegen.
Wenn die neue Foto-Funktion benutzt wird, müssen die GPX-Dateien auf der internen[/] SD-Karte liegen. Ab jetzt ist das aber nur eine einzige PocketQuery. :-)
Weil die Datei auf dem Garmin dann immer merged.gpx heisst (und merged-wpts.gpx) wir sie überschrieben und ist damit dann auch immer auf dem neuesten Stand. Also jetzt alles aus Garmin/GPX in den GPX Ordner auf dem PC.

Im Skript GPX2Garmin.sh unbedingt als erstes die 4 Pfade auf die eigenen setzen. Das Arbeiten mit ~ für das Homeverzeichnis hat bei mir öfter gehakt. Wer nicht die Mystery-Funktion nutzen will, kann die Zeile 18 entsprechend kürzen.

#! /bin/bash

# 21.5.2012 espe2310

progdir=/home/espe/Geocaching/gctools
gpxdir=/home/espe/Geocaching/GPX
gpx2dir=/home/espe/Geocaching/GPX_Mystery
oregondir=/media/GARMIN/Garmin
########################################

shopt -s extglob


if [ -d $oregondir ]
then

$progdir/gpx_merge.py -o $oregondir/GPX/merged.gpx $gpxdir/!(*-wpts).gpx
$progdir/gpx_merge.py -o $oregondir/GPX/merged-wpts.gpx $gpxdir/*-wpts.gpx $gpx2dir/*-wpts.gpx

$progdir/gc_get_spoiler_pics.py --lat_offset 0 --lon_offset 0 --savedir $oregondir/GeocachePhotos/ --done_file $oregondir/GeocachePhotos/done.store --delete_old --threads 18 $oregondir/GPX/!(*-wpts).gpx
echo
echo
echo "Fertig!"
else
echo "Garmin-Gerät nicht angeschlossen!"
echo
fi
echo "Bitte Taste drücken!"
read -n 1


Funktion:
Garmin anstöpseln, Skript ausführen
- alle GPX-Dateien aus dem Verzeichnis werden in eine einzige GPX-Datei "gemerged"
- alle WPTS.GPX-Dateien aus beiden Ordnern (inkl. der Mysteries) werden in eine einzige WPTS.GPX-Datei gemerged
- doppelte Waypoints werden dabei gelöscht
- die Spoiler-Pics werden heruntergeladen und auf dem Garmin einsortiert (nur Update, wenn schon welche da sind)
- verwaiste Spoiler-Pics werden gelöscht

Das wars.
Um das auch mit einem Mausklick zu machen habe ich mir einen Starter angelegt. Wie das geht, hängt natürlich von eurer Distribution ab. Um dabei zu sehen, was läuft starte ich ein Terminal mit.
Bei mir lautet der Startbefehl (Gnome)
gnome-terminal --title="GPX2Garmin" --profile="gctools" --hide-menubar -e "/home/espe/Opt/Geocaching/gctools/GPX2Garmin.sh"
wobei ich ein geändertes Farbprofil für das Terminal benutze.


Jetzt zu den Mysteries: Ich mag zwar auch OCM, aber lieber habe ich die Lösungen in einzelnen Dateien als in einer Datenbank. Da habe ich ein besseres Gefühl, das sie nicht doch einmal verschwunden sind :-)

Für gelöste Mysteries schreibt das Skipt SolvesUnknown.sh einzelne WPTS-GPX-Dateien für die Final-Koordinaten, die dann einfach mit eingepackt werden. Die Cachebeschreibung wird nicht geändert. Das ist mir zu oft passiert, dass ich sie dann doch wieder überschrieben habe :D
Sie sind also auf dem Garmin über Wegpunkte anzuwählen.

Auch bei diesem Skript muss zuerst der Pfad angepasst werden. Dann wird noch das Gnome-Tool "zenity" benötigt für die Eingabemaske.
Mein Starter lautet hier: /home/espe/Opt/Geocaching/gctools/SolvedUnknown.sh

#! /bin/bash

# 21.5.2012 espe2310

outpath=/home/espe/Opt/Geocaching/GPX_Mystery/
#########################################

i=$(zenity --forms --title="Gelöster Mystery" --text="Bitte Daten eintragen...........\n Format: N50 30.000 E006 05.000" --add-entry="GC-Code" --add-entry="Name" --add-entry="LAT" --add-entry="LON")

Code=${i%%|*}
i=${i#*|}
Text=${i%%|*}
i=${i#*|}
Lat=${i%%|*}
i=${i#*|}
Lon=${i%%|*}
i=${i#*|}

if [ -z ${Lat%??? ??.???} ] && [ -z ${Lon%???? ??.???} ]
then
Lat1=${Lat%% *}
Lat2=${Lat##* }
Lat3=${Lat2##*.}
Lat2=${Lat2%%.*}
Lat3=$Lat2$Lat3
let "Lat3=$Lat3 * 100 / 60"
while [ ! -z ${Lat3%?????} ]
do
Lat3=0$Lat3
done
Lat2=${Lat:0:1}
Lat1=${Lat1:1}
Lat=$Lat1.$Lat3
if [ -z ${Lat2%S} ]
then
Lat2="-"
else
Lat2=""
fi
Lat=$Lat2$Lat

Lon1=${Lon%% *}
Lon2=${Lon##* }
Lon3=${Lon2##*.}
Lon2=${Lon2%%.*}
Lon3=$Lon2$Lon3
let "Lon3=$Lon3 * 100 / 60"
while [ ! -z ${Lon3%?????} ]
do
Lon3=0$Lon3
done
Lon2=${Lon:0:1}
Lon1=${Lon1:1}
Lon=$Lon1.$Lon3
if [ -z ${Lon2%W} ]
then
Lon2="-"
else
Lon2=""
fi
Lon=$Lon2$Lon
else
zenity --warning --text="Falsches Format: \n$Lat $Lon\n Führende Nullen beachten!"
exit
fi

time=$(date +"%Y-%m-%dT%T")

echo '<gpx xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.topografix.com/GPX/1/0" version="1.0" creator="Groundspeak, Inc. All Rights Reserved. http://www.groundspeak.com" xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd http://www.groundspeak.com/cache/1/0 http://www.groundspeak.com/cache/1/0/cache.xsd">' > $outpath$Code"_solved-wpts.gpx"
echo '<bounds minlat="'$Lat'" minlon="'$Lon'" maxlat="'$Lat'" maxlon="'$Lon'"/>' >> $outpath$Code"_solved-wpts.gpx"
echo '<wpt lat="'$Lat'" lon="'$Lon'">' >> $outpath$Code"_solved-wpts.gpx"
echo '<time>'$time'</time>' >> $outpath$Code"_solved-wpts.gpx"
echo '<name>'FI${Code:2}'</name>' >> $outpath$Code"_solved-wpts.gpx"
echo '<desc>'$Code $Text'</desc>' >> $outpath$Code"_solved-wpts.gpx"
echo '<sym>Final Location</sym>' >> $outpath$Code"_solved-wpts.gpx"
echo '<type>Waypoint|Final Location</type>' >> $outpath$Code"_solved-wpts.gpx"
echo '</wpt>' >> $outpath$Code"_solved-wpts.gpx"
echo '</gpx>' >> $outpath$Code"_solved-wpts.gpx"


Einzugeben sind:
Der GC-Code (aus GCxxxxx wird der Waypoint FIxxxxx)
Eine kurze Beschreibung nach Belieben (aber bitte keine Sonderzeichen, vor allem nicht ' oder ` oder ")
LAT und LON exakt nach dem Muster, also mit führenden und abschließenden Nullen!!

Ich hoffe, alles klappt.

Gruß
Ernst / espe2310
Antworten