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

[Skript] Fieldnotes2CacheWolf

Robin888

Geomaster
Moin zusammen!

Eigentlich wollte ich noch warten, bis ich meine Klausuren diese Woche durch habe, aber nun bin ich schon mal hier. 0:)

Seitdem ich kein Windows Mobile mehr benutze (also schon einige Jahre) stört es mich immer wieder, dass ich die Fundzeiten per Hand ins Profil nachtragen muss. Bei im CW durchgeplanten Touren geht es meist recht fixe, bei spontaneren Touren beginnt das Problem schon bei der Frage wie man (möglichst effizient) die Caches in den CW bringt. (Ja, GPX wäre eine Variante, aber dann muss ich die Funddaten trotzdem nachtragen.)

Langer Rede kurzer Sinn:

Ich habe mir ein kleines Python-Skript geschrieben, das eine Fieldnotes-Datei entgegen nimmt, die Waypoints und Fundzeiten ausliest und in einem vorgegebenen CW-Profil eine entsprechende index.xml erzeugt.
Öffnet man nun das Profil stehen alle importierten Caches mit Funddatum und -uhrzeit in der Liste und können ganz normal aktualisiert und ggfls. in das Finds-Profil verschoben werden.

Entgegen meiner ersten Version arbeitet das Skript nun mit der tatsächlich aufgezeichneten UTC-Zeit und ist in der Lage Sommer und -Winterzeit zu berücksichtigen. Zumindest in Deutschland. Wer außerhalb cacht hat immerhin die Option die Zeitverschiebung gegen UTC manuell einzugeben.

Benötigt werden:

Vor der ersten Ausführung sollte ein Import-Profil erstellt werden, die .index_pattern.xml dort hinein kopiert werden und der Pfad des Profils in das Skript eingetragen werden.

USAGE:
python fieldnotes2cachewolf.py --fiednotes $PathToFieldnoteFile [--timezone $UTCOffsetInHours]
python fieldnotes2cachewolf.py --f $PathToFieldnoteFile [-tz $UTCOffsetInHours]

Anmerkungen:
  • Das Skript überschreibt die index.xml im angegebenen Profil.
  • Ich benutze das Skript hier mit einer älteren Version vom CacheWolf. Ich kann nicht ausschließen, dass durch Änderungen am CW das Skript nicht mehr mit aktuelleren Versionen funktioniert.
  • Ich habe das Skript bisher nur mit fieldnotes getestet die von c:geo generiert wurden. Ich kann nicht ausschließen, dass andere Programme/Geräte möglicherweise andere Formate benutzen. (Meine fieldnotes sind UTF16-LE codiert.)
  • Für diejenigen die sich das Skript näher ansehen und sich wundern, dass ich auf Stringbasis und nicht auf XML-Basis mit der index.xml interagiere: Der CacheWolf hat (leider) Probleme bereitet, wenn die Attribute nicht in der richtigen Reihenfolge vorkamen. Und statt nun die Werte künstlich in einer bestimmten Reihenfolge auszugeben war es einfacher die Dateien als Textdateien zu verarbeiten.
  • Jegliche Gewährleistung ist natürlich ausgeschlossen. :)

Ich weiß nicht, ob jemand anderes außer mit Nutzen aus dem Skript ziehen kann oder ob ich nicht doch irgendeine wichtige Information vergessen habe. Aber vielleicht interessiert es ja den ein oder anderen.

Robin(888)
 

arbor95

Geoguru
Man kann doch die fieldnotes einfach in CW einlesen. Wozu wird da ein extra script benötigt (sorry wenn ich den Beitrag nicht vollständig gelesen habe)?


Also Import aus Datei, Fieldnotesdatei auswählen und alles ist gegessen!


Siehe auch Doku:
http://cachewolf.aldos.de/index.php/Doku/Loggen

unten fieldnotes einlesen
 
OP
Robin888

Robin888

Geomaster
Der direkte Import von fieldnotes funktioniert bei mir nicht.
Kann daran liegen, dass ich (wie gesagt) noch eine alte Version benutze oder, dass meine fieldnotes von c:geo stammen.
Wenn ich wieder etwas mehr Zeit habe probiere ich mal eine aktuellere Version vom Wolf.

Ansonsten war es halt eine willkommene Übungsaufgabe. :)

Robin(888)
 

BillBo600

Geonewbie
Tach,

ich würde auch gerne meine Funde-Listen von c:geo nach Cachewolf bekommen.

Erster Versuch: c:geo erlaubt das Erzeugen von gpx-Dateien, die liest aber Cachewolf nicht ein. Es blitzt nur kurz eine nicht lesbare Meldung auf.

Nächster Versuch: Das Einlesen der fieldnotes-Datei funktioniert auch bei mir nicht. Ich habe in der fieldnotes-Datei die Überschriften in die erste Zeile eingetragen (WP, STATUS). Es kommt eine Abfrage nach max.Abstand (wofür eigentlich?) und dann passiert leider nichts. Ich habe dann mal mit einer minimal-csv-Datei getestet, die sollte laut Beschreibung einlesbar sein. Ergebnis ist aber leider wie oben:
fieldnote.csv:
WP
GC12345
GC23456

Das Skript oben habe ich aber noch nicht ausprobiert, weil vielleicht die Lösung schon da ist ...

Vielleicht hat ja jemand noch eine bessere Idee?
 

arbor95

Geoguru
Lass mir deine gpx und/oder fieldnotes per mail (arbor95 at gmx punkt de) zukommen. Dann kann ich dazu etwas sagen. (An das Problem bei Robin kann ich mich nicht mehr erinnern, aber es wurde sicherlich gelöst).
 

BillBo600

Geonewbie
Vielen Dank arbor, jetzt klappt's.

Und wie geht's nun?
  • Die gewünschte Cache-Liste aus c:geo exportieren: Menu -> Exportieren -> GPX
  • Die Datei export_20xx-yy-zz.gpx auf den PC kopieren
  • Die Datei muss ins UTF-8 format konvertiert werden, sonst geht es nicht(!!). Ich mach das mit notepad++: Menu Kodierung->Konvertiere zu UTF8 und dann speichern als export_20xx-yy-zz-utf8.gpx
  • UTF-Datei Einlesen mit CacheWolf: Import->aus Datei->Anwahl export_20xx-yy-zz-utf8.gpx
Und jetzt noch die Log-Daten
  • c:geo speichert beim Exportieren der Fieldnotes eine Logdatei mit ab. Diese kann vom CacheWolf eingelesen werden.
  • Einlesen mit CacheWolf: Import->Logs aus Datei
  • Es werden nur die Daten zu bereits im Profil vorhandenen Caches eingelesen. Andere Log-Daten werden ignoriert.
  • Fertig :D
  • Kleiner Wermutstropfen: Das Datum wird mit der UTC-Zeit eingelesen, die Zeitzone wird nicht korrgiert.
 

MiK

Geoguru
Ich weiß nicht welche "Logs" Du bei c:geo exportierst. Normale Fieldnotes? Dafür hatte ich die Anpassung der Zeitzone mal eingebaut. Allerdings funktioniert das automatische Erkennen der Zeitzone nicht in jeder Umgebung. Du kannst sie aber pro Profil in der index.xml festlegen.
Für Deutschland sieht das bei mir so aus:
<TIMEZONE timeZoneOffset = "1" timeZoneAutoDST = "true"/>
 

BillBo600

Geonewbie
Super, das klappt auch, dankeschön.

Ich weiß nicht welche "Logs" Du bei c:geo exportierst. Normale Fieldnotes?
Ja genau, ich meine die fieldnotes. Die müssen aber nicht extra exportiert werden, sondern die Datei wird beim Hochladen der Fielnotes nach geocaching.com von c:geo automatisch generiert und liegt (bei mir) unter Phone\field-notes.
 
Oben