• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Bilder fürs Garmin aufbereiten

oje

Geocacher
Moin, eine Frage, ist es möglich mit CW die Bilder aufzubereiten, dass man z.b. über ein "Bilder export" einen Ordner GeocachePhotos\ erstellt bekommt, in dem die fotos nach unten genannten kriterien einsortiert werden?
das wäre echt genial :gott:
You can also take advantage of geocache photos on your Garmin handheld for geocaches obtained from a source other than OpenCaching.com, it just takes some work. A geocache’s photos, JPEG only, need to be placed on the handheld’s mass storage in the following manner

Photos
\Garmin\GeocachePhotos\Last Character\Second To Last Character\Full Code\

Spoiler Photos
<Photos Path>\Spoilers\

For example, photos for a geocache with code OXZTXGC would be placed under the path

\Garmin\GeocachePhotos\C\G\OXZTXGC\

And spoilers would be placed under

\Garmin\GeocachePhotos\C\G\OXZTXGC\Spoilers

If the geocache has only three characters total, a 0 (zero) is used for the second to last character. For example, photos for a geocache with code OXR would be placed under the path

\Garmin\GeocachePhotos\R\0\OXR\
 
OP
O

oje

Geocacher
Hast du dich schon mal mit dem template export beschäftigt?
grundsätzlich habe ich ihn mir schon angeguckt, konnte da aber nichts finden, wie ich bestimmte Ordner erstellen/dateien kopieren kann.

gibt es zu den templates irgendwo eine dokumentation? denn alles was ich bisher dazu rausgefunden habe, hab ich aus den vorhandenen beispiel-templates geholt.
 

arbor95

Geoguru
jein (html-Datei "Short documentation for the export via templates" im templates-Ordner),
vom Ansatz her würde ich mit dem tpl-export eine / mehrere Batchdateien erzeugen. Diese müssen dann die gewünschte Aufgabe (Kopieren) durchführen.
 

Geo-Johnny

Geowizard
@araber95
Ich habe heute bei meinem Garmin 62st die Firmware aktuallisiert und sogleich die neue Geocache-Fotofunktion getestet. Dabei habe ich nach oben angeführter Ordnerstruktur dies für Groundspeak Caches gemacht und es läuft super. Allerdings ist die manuelle Aufbereitung dieser Struktur in der Tat äußerst mühevoll.

Da ich überzeugt bin, daß dies bei den künftigen Garmingeräten ein Standard werden wird, bin ich der Meinung, wenn es irgendwie geht, sollte man dies als fixe Exportfunktion (ähnlich wie "nach SpoilerPOI") im CacheWolf verankern, anstatt es mit einem Template zu lösen. ;)

Die SpoilerPOI Lösung wäre dann irgendwann nicht mehr nötig.

Wenn das jemand der CW-Entwickler einbauen würde, bin ich gerne bereit mich als Tester zur Verfügung zu stellen. Als Export würde ein erzeugter Ordner -GeocachePhotos- mit der angegebenen Struktur und den darin enthaltenen *.jpg Dateien völlig ausreichen. Dieser Ordner wird dann in den internen Speicher des Gerätes kopiert und fertig ist die Geschichte. (Anmerkung: Mit der derzeitigen Gerätefirmware, läuft es z.Z. nur im internen Speicher und nicht auf der Speicherkarte, dies wird sicher bald nachgebessert werden.)

Und hier der entsprechende Blog dazu - KLICK
 

arbor95

Geoguru
sorry, ich hab mir das eben erst richtig durchgelesen. Da ist mit template nicht viel zu machen.

Aber ist das nicht mit ein wenig scripting zu erledigen (zumidest unter linux)?

ich schau mal wenn ich wieder Zeit habe.
 

nah&amp;fern

Geocacher
Eine quick'n'dirty-Lösung für Python da ich die Bilder morgen schon gut brauchen kann. :^^:

Der code guckt in das gpxfile welche gccodes da drin sind und kopiert die dazu passenden files aus dem Profilordner (Pfade ggf. anpassen ;) ) nach dem Garmin-Schema in den Zielordner. Vorsicht: das Garmin-Schema funktioniert nur mit classic IDs, nicht mit smart IDs im gpx.

Code:
import glob, os, shutil

picspath = r'G:\gps\CacheWolf-Win32\data\nah&fern'
gpxfile = r'G:\gps\CacheWolf-Win32\data\london2.gpx'
destpath = r'G:\gps\GeocachePhotos'
tag1 = '<name>'
tag2 = '</name>'
gccodes = set()
with open(gpxfile,'r') as f:
	for line in f:
		if tag1 in line and tag2 in line:
			gccodes |= set([line[line.find(tag1)+len(tag1):line.find(tag2)]])
for code in gccodes:
	for file in glob.iglob(os.path.join(picspath, code+'*.jpg')):
		copypath = os.path.join(destpath,code[-1],code[-2],code)
		try:
			os.makedirs(copypath)
		except:
			pass
		if os.path.exists(copypath):
			try:
				shutil.copy(file,copypath)
				print file, copypath
			except:
				print file,'failed'

PS: Benutzung auf eigene Gefahr :D
 

Geo-Johnny

Geowizard
nah&fern schrieb:
Vorsicht: das Garmin-Schema funktioniert nur mit classic IDs, nicht mit smart IDs im gpx.
Ich bin kein Programmierer und kann daher mit den Zeilen nicht viel anfangen, aber hast Du auch bedacht, daß es bei Groundspeak auch Codes mit nur drei Zeichen nach dem GCxxx gab bzw. noch gibt?
Das Script müßte somit auch diese 0 (Zero) Ordneroption beinhalten. ;)

Edit: Jedenfalls finde ich es toll, daß das Projekt quasi schon anläuft.
 
OP
O

oje

Geocacher
moin, danke für das script :) läuft wunderbar bei mir :)
das das mit so wenig zeilen geht :)

nah&fern hat geschrieben:
Vorsicht: das Garmin-Schema funktioniert nur mit classic IDs, nicht mit smart IDs im gpx.
Ich bin kein Programmierer und kann daher mit den Zeilen nicht viel anfangen, aber hast Du auch bedacht, daß es bei Groundspeak auch Codes mit nur drei Zeichen nach dem GCxxx gab bzw. noch gibt?
Das Script müßte somit auch diese 0 (Zero) Ordneroption beinhalten. ;)

Edit: Jedenfalls finde ich es toll, daß das Projekt quasi schon anläuft.
das veraten mir meine programmierkenntnisse, ist momentan nicht drin :)
ist aber (zumindest bei mir) nicht schlimm, denn allzu viele caches sollten das ja nicht sein, und die kann man dann zur not per hand bearbeiten.
 

nah&amp;fern

Geocacher
Ich habe leider gar keinen passenden kurz-Cache, aber so sollte das gehen:

Code:
import glob, os, shutil

picspath = r'G:\gps\CacheWolf-Win32\data\nah&fern' # profilpfad mit bildern a la gc1234_01.jpg
gpxfile = r'G:\gps\CacheWolf-Win32\data\london2.gpx' # gpxfile mit caches deren bilder kopiert werden sollen, classic IDs
destpath = r'\gps\GeocachePhotos2' # ziel fuer die garmin ordnerstruktur

tag1 = '<name>'
tag2 = '</name>'
gccodes = set()
with open(gpxfile,'r') as f:
	for line in f:
		if tag1 in line and tag2 in line:
			gccodes |= set([line[line.find(tag1)+len(tag1):line.find(tag2)]])

for code in gccodes:
	if len(code)>3: 
		copypath = os.path.join(destpath,code[-1],code[-2],code)
	elif len(code)==3:
		copypath = os.path.join(destpath,code[-1],'0',code)
	else:
		break
	for file in glob.iglob(os.path.join(picspath, code+'*.jpg')):
		try:
			os.makedirs(copypath)
		except:
			pass
		if os.path.exists(copypath):
			try:
				shutil.copy(file,copypath)
				print file, copypath
			except:
				print file,'failed'
 

8812

Geoguru
Geo-Johnny schrieb:
nah&fern schrieb:
Vorsicht: das Garmin-Schema funktioniert nur mit classic IDs, nicht mit smart IDs im gpx.
Ich bin kein Programmierer und kann daher mit den Zeilen nicht viel anfangen, aber hast Du auch bedacht, daß es bei Groundspeak auch Codes mit nur drei Zeichen nach dem GCxxx gab bzw. noch gibt?
Das Script müßte somit auch diese 0 (Zero) Ordneroption beinhalten. ;)

Edit: Jedenfalls finde ich es toll, daß das Projekt quasi schon anläuft.
Tatsächlich gemeint sind Codes mit insgesamt drei Zeichen. Und das gab es bei GS nie.

Quelle: Garmin
... If the geocache has only three characters total, a 0 (zero) is used for the second to last character. For example, photos for a geocache with code OXR would be placed under the path ...
 

Geo-Johnny

Geowizard
Ich warte geduldig auf eine CacheWolf Lösung, denn ich bin nur ein Windoof Benutzer.

Edit: Danke für die Info 8812, hab ich wohl falsch interpretiert.
 

Geo-Johnny

Geowizard
araber95 schrieb:
http://www.python.org/getit/windows
Sehr nett, aber eine Lösung für den CacheWolf - Export ist das leider nicht!
Ich denke das ein integrierter Fotoexport im CW, den "nach SpoilerPOI"-Export künftig ablösen sollte (ist aber z.B. für die Nüvis noch von Vorteil.)
Dieser wurde seinerzeit für die "neuen" Garmins eingebaut, da nur diese Geräte die Bilder als POI darstellen können. Genaugenommen ist/war dies aber eine Notlösung. Nun können es die Geräte per Buttonclick und diese Funtkion sollte ausgereizt werden.
Das Groundspeak in der Fotoausgabe hintennacheiert, und die das in ~12 Jahren nicht im Stande waren, ist eine andere Geschichte. Die Geräte können es jetzt jedenfalls.
Ich bin auch überzeugt, daß es in Kürze ein entsprechendes GSAK Makro geben wird und auch SpoilerSync wird über kurz oder lang angepasst werden.
 
OP
O

oje

Geocacher
Geo-Johnny schrieb:
Das Groundspeak in der Fotoausgabe hintennacheiert, und die das in ~12 Jahren nicht im Stande waren, ist eine andere Geschichte. Die Geräte können es jetzt jedenfalls.
Gab ja bisher keinen grund sowas einzubauen. Gab ja kein GPS das es verstanden hätte...
 

Geo-Johnny

Geowizard
oje schrieb:
Gab ja bisher keinen grund sowas einzubauen. Gab ja kein GPS das es verstanden hätte...
Das ist richtig, aber soweit ich weiß, war/ist der Bildexport bei Groundspeak schon immer ein lang gehegter Wunsch der User. Immerhin hätte man bis zur Gerätereife eben die POI Unterstützung "legal" nutzen können, was ja durch Abspidern der Fotos bis dato so geschehen ist und immernoch geschieht. Laut Aussage von GS bewegt man sich damit aber in einer nicht guidelinekonformen Grauzone - weil unerwünscht. :kopfwand:

Eine entsprechende Expoterintegration im CW, würde neben den GC-Usern auch den OC.de Usern zu gute kommen, sofern sie ein entsprechendes Garmingerät benutzen. Denn die neuen Firmwares wurden zum Glück nicht auf den OX-Prefix fixiert.
 
Oben