LeseSolm ist eine Sammlung von AWK und Shell Skripten für den GPS Logger “Solmeta Geotagger Pro” und andere GPS Empfänger, die GPS Tracks im NMEA Format ausgeben. Das Skript LeseSolm lädt unter Linux den GPS Track aus dem Geotagger aus. GeotagSolm und GeotagNMEA dienen dem Geotaggen von Bildern mit Unterstützung der Blickrichtung aus dem Magnet- oder GPS-Kompaß. RevGeotag lädt Höhendaten vom geonames.org Server herunter. StatNMEA erzeugt aus NMEA Dateien ein paar Statistiken u.a. über DOP Werte und Satelliten.
Das LeseSolm Paket enthält einige AWK [5] Skripte für den GPS Logger "Solmeta Geotagger Pro" [2], ein Direkt-Geotagger mit Magnetkompaß für bestimmte Nikon Spiegelreflexkameras. Außerdem speichert er GPS Daten in seinem internen Speicher im NMEA Format [8].
LeseSolm liest den GPS Tracklog aus dem Geotagger aus und schreibt die NMEA Daten in eine Datei. Es kann auch den Speicherfüllstand anzeigen und den Speicher löschen.
GeotagSolm liest die NMEA Datei und geotaggt die Bilder, die aufgenommen wurden während der Geotagger auf dem Kamera Blitzschuh montiert war. Dabei wird die Bildrichtung aus den Kompaßdaten bestimmt. Zum schreiben der GPS-Daten in die Bilder bzw. XMP Sidecar Dateien wird das Metadaten-Werkzeug ExifTool von Phil Harvey [3] verwendet.
GeotagNMEA arbeitet wie GeotagSolm, kann aber beliebige GPS Tracklogs im NMEA Format verwenden. Ab einer bestimmten Geschwindigkeit wird die Bildrichtung aus der Bewegungsrichtung im GPS Track bestimmt.
Bei Bildern mit GPS Koordinaten holt RevGeotag vom Server geonames.org [4] die zugehörigen Höhenwerte, mit denen die Bilder aktualisiert werden können.
StatNMEA analysiert NMEA Dateien in Hinblick auf DOP Werte, Satelliten Infos, Geschwindigkeitsverteilung und anderer Eigenschaften.
BackupExif sichert die EXIF Metadaten aus Bilddateien.
CreateXMP erzeugt einfache XMP Sidecar Dateien, die anstelle der Originalbilder geogetaggt werden können.
Das LeseSolm Paket steht unter der GNU General Public License Version 2, zu finden in der Datei COPYING oder hier www.gnu.org/licenses/. Für das LeseSolm Paket wird keinerlei Garantie oder Gewährleistung übernommen. Benutzung auf eigene Gefahr.
LeseSolm [COMPORT]
GeotagSolm NMEA TIME IMAGEFILES
GeotagNMEA NMEA TIME IMAGEFILES
RevGeotag a/b/c IMAGEFILES
StatNMEA NMEA
BackupEXIF IMAGEFILES
CreateXMP IMAGEFILES
NMEA: GPS Tracklog Datei im NMEA Format. TIME = (Kamera Zeit) - (GPS Zeit), z.B. +2:0:7.
Dieser Abschnitt beschreibt die Installation unter Linux. Der Ablauf sollte unter anderen Unix-artigen Umgebungen ähnlich sein. ExifTool [3] und GAWK [5] müssen auf Ihrem System installiert sein. Alle Skriptdateien LeseSolm.awk, GeotagSolm.awk,... können in einem beliebigen Verzeichnis1 abgelegt werden. Dort müssen die Skripte mittels
chmod +x *.awk *.sh
auf der Kommandozeile ausführbar gemacht werden. Wenn dieses Verzeichnis in der PATH Umgebungsvariable liegt, dann können die Skripte einfach durch LeseSolm.awk, GeotagSolm.awk etc. auf der Kommandozeile ohne Angabe eines Pfades aufgerufen werden. Ansonsten muß der vollständige Pfad hinzugefügt werden. Liegt also LeseSolm im aktuellen Verzeichnis, dann kann es dort durch “./LeseSolm.awk“ gestartet werden. Im folgenden nehmen wir an, daß das Verzeichnis mit den Skripten in PATH liegt.
Falls Fehlermeldungen über ein fehlendes “gawk” auftauchen, dann finden Sie mit “whereis gawk” auf der Kommandozeile heraus, wo “gawk” sich befindet. Passen Sie gegebenenfalls die jeweils erste Zeile in den AWK Skripten an. Es ist notwendig GNU AWK (GAWK) [5] zu verwenden, weil andere AWK Varianten möglicherweise nicht funktionieren. Unter Ubuntu 10.10 ist standardmäßig nur MAWK installiert, Sie müssen also GAWK über die Paket- bzw. Softwareverwaltung nachinstallieren.
Einige Skripte des LeseSolm Pakets lesen die Konfigurationsdatei “.LeseSolm” aus, falls diese in Ihrem Heimatverzeichnis liegt. Die Einstellungen darin werden bei einem Update von LeseSolm nicht überschrieben. Die Beispieldatei “dot.LeseSolm” ist Teil des Pakets. Passen Sie darin die Einstellungen an und verschieben Sie die Datei in Ihr Heimatverzeichnis. Zuletzt benennen Sie sie in “.LeseSolm” um. Vermeiden Sie Leerzeichen in den Einstellungszeilen!
LeseSolm kann auch unter Windows2 in einer Cygwin Umgebung verwendet werden. Im folgenden wird die Installation Schritt für Schritt erklärt. Zuerst laden Sie setup.exe von der Cygwin Homepage [6] herunter. Starten Sie setup.exe und befolgen Sie die Anweisungen bis zur Paketauswahl. Dort wählen Sie die Pakete All⊳Perl⊳perl, All⊳ Devel⊳make, All⊳Shells⊳chere und All⊳Archive⊳unzip durch Klicken auf das Symbol mit den zwei runden Pfeilen aus. Schließen Sie dann die Cygwin Installation ab. Starten Sie nun eine Bash Kommandozeile aus dem Windows Start Menü (Start⊳Programs⊳Cygwin⊳Cygwin Bash Shell). Danach laden Sie Image-ExifTool-...tar.gz (nicht die Windows Version!) von [3] und LeseSolm-...zip von [1] herunter. Speichern Sie beide Dateien im Verzeichnis “c:\Programme\cygwin\home\user\” ab, wobei “user” Ihr Windows Benutzername ist und “Programme” möglicherweise anders heißt abhängig von der Windows Sprache und Version. Gehen Sie nun zurück zum Fenster der Bash Kommandozeile und geben Sie folgende Befehle ein, wobei “...” für eine Versionsnummer steht.
chere -i
tar -xzvf Image-ExifTool-...tar.gz
cd Image-ExifTool-...
perl Makefile.PL
make test
make install
cd ~
unzip LeseSolm-...zip
cd LeseSolm-...
chmod +x *.awk *.sh
cp *.awk *.sh /usr/local/bin/
cp dot.LeseSolm ~/.LeseSolm
Jetzt sollte LeseSolm unter Windows einsatzbereit sein. Wenn Sie im Windows Explorer auf einen Ordner rechts-klicken, gibt es nun im Kontextmenü den neuen Eintrag “Bash Prompt Here” zum Öffnen einer Bash Kommandozeile in diesem Ordner. Dort können die LeseSolm Skripte gemäß diesem Handbuch benutzt werden.
Diese Anweisungen wurden unter Windows XP mit cygwin-1.7.9, exiftool-8.60 und LeseSolm-0.0.13 getestet.
Auslesen des GPS Tracklogs aus dem “Solmeta Geotagger Pro” unter Linux.
Schließen Sie den Geotagger an einen freien USB-Anschluß an und öffnen Sie ein Terminal bzw. die Kommandozeile. Wechseln Sie in das Verzeichnis, wo das Tracklog gespeichert werden soll. Schalten Sie den Geotagger ein und starten Sie das LeseSolm Skript via
LeseSolm.awk COMPORT
Ersetzen Sie COMPORT durch die serielle Schnittstellen-Datei zum Geotagger. Wenn Sie COMPORT nicht angeben, dann versucht LeseSolm die korrekte Schnittstelle automatisch3 zu finden. Wenn das nicht gelingt wird dafür "/dev/ttyUSB0" angenommen. Sie benötigen Lese- und Schreibrechte auf die Schnittstellen-Datei. Unter Opensuse 11.3 genügt es, wenn der Benutzer Mitglied der Gruppe "dialout" ist. Ubuntu 10.10 Nutzer sollten zuerst Abs. 3.2 lesen.
LeseSolm zeigt nun ein Menü an:
>LeseSolm 0.0.5: Auslesewerkzeug für den Solmeta Geotagger Pro
>Leseprozeß mit PID 9438 gestartet, öffne Schnittstelle /dev/ttyUSB0, 4800
>Befehl: Version (v), Download (d), Löschen (erase), Ende (q), Abbrechen (abort)
Wählen Sie "v" um die Version (#Ver) und den Speicherstand (#mem) des Geotaggers anzuzeigen.
>Version anzeigen, 4800
>#Ver: Solmeta PRO V1.0-4 (Dec 03 2009)
>#mem:48KB
Wenn nichts angezeigt wird, versuchen Sie es nochmal. Manchmal ignoriert der Geotagger Kommandos.
Mit "d" wird das Tracklog heruntergeladen und in die Datei "Solmeta_YYYY-MM-DD-HHMMSS.nmea" gespeichert, wobei YYYY-... durch Datum und UTC-Zeit des ersten Trackpunkts ersetzt wird. Warten Sie bis das Auslesen beendet ist.
>Auslesen
>#connect
>Sende #down, 115200
>#download00c2
>Lese Zeile 907, 48/ 48 KiB, 100%.
>#downcomplete
>907 Zeilen gelesen in 0:10 min, 4.8 KiB/s.
>14 GPGGA Sätze gefunden.
>NMEA Daten nach Solmeta_2011-02-15-190933.nmea geschrieben.
>Umschalten auf 4800
In diesem Beispiel wurden 907 Zeilen in die Datei "Solmeta_2011-02-15-190933.nmea" gespeichert. Darunter befinden sich 14 $GPGGA Sätze. Beim alten Geotagger Version 10.0 gehört zu jedem $GPGGA Satz genau ein Foto, wenn der Geotagger auf dem Blitzschuh der Kamera montiert und betriebsbereit war.
Überprüfen Sie jetzt die NMEA Datei auf Vollständigkeit. Wenn alles in Ordnung ist, dann können Sie den Speicher des Geotaggers mit dem Kommando "erase" löschen. Warten Sie bis der Prozeß abgeschlossen ist, es dauert etwa eine Minute.
>Logger leeren, 4800
>#StartErase
>Löschen läuft, bitte warten.
>#erasecomplete
>Logger geleert nach 41 s.
"v" zeigt jetzt an, daß der Logger leer ist.
>Version anzeigen, 4800
>#Ver: Solmeta PRO V1.0-4 (Dec 03 2009)
>#mem:0KB
Mit "q" beenden Sie LeseSolm. Schalten Sie dann den Geotagger aus.
sudo modprobe -r cp210x
sudo modprobe cp210x
Dieser Fehler scheint bei Ubuntu 11.04 behoben worden zu sein.
GeotagSolm ergänzt Bilder (oder XMP Sidecar Dateien) um GPS-Daten vom Geotagger. Vorsicht, Geotagging verändert Bilddateien, genauer gesagt werden GPS-Daten zu den Metadaten der Bilder hinzugefügt.4 Es ist dringend empfohlen die Originalbilder an einem sicheren Platz aufzubewahren. Für den Anfang sollten Sie nur mit Kopien in einem separaten Verzeichnis arbeiten. Anstatt die Bilddateien geozutaggen können die GPS Daten auch in XMP Sidecar Dateien gespeichert werden. Dann bleiben die Bilddateien unberührt. Außerdem können die ursprünglichen EXIF Metadaten gesichert werden, siehe Abs. 7. GeotagSolm benötigt ExifTool, was für Linux und viele andere Systeme verfügbar ist. Wenn Sie es für Ihre Distribution nicht finden, dann können Sie es auf der ExifTool Homepage [3] bekommen.
GeotagSolm ist dazu gedacht, Bilder einer Kamera mit montiertem Geotagger geozutaggen. Deshalb muß die NMEA Datei zwingend vom Geotagger stammen.5 Für Bilder einer anderen Kamera oder zur Verwendung anderer NMEA Dateien steht das Skript GeotagNMEA fürs Geotagging zur Verfügung, siehe Abs. 5.
GeotagSolm.awk NMEA TIME IMAGEFILES
Notwendige Argumente:
+1 = +1:0:0, -1:13:3, ::4 = 0:0:4, -0:3 = -0:3:0.
Beispiele:
GeotagSolm.awk Solmeta_2011-01-22.nmea +1::7 DSC_4766.JPG DSC_4773.JPG Folder
Hier wird angenommen, daß die Kamerazeit gleich (GPSTime + 3607 sec) ist. Die Dateien DSC_4766.JPG und DSC_4773.JPG sowie alle geeigneten Dateien im Verzeichnis Folder sollen geogetaggt werden.
GeotagSolm.awk Solmeta_2011-01-22.nmea +1::7 *.xmp
Wie zuvor, aber nun werden die GPS Daten in die XMP Dateien *.xmp geschrieben. Falls diese noch nicht existieren, können sie mit "CreateXMP.sh *.JPG" erzeugt werden. Siehe Abs. 7.2.
>==== Die NMEA Datei enthält 8 Fehler ungefähr bei den Zeilen:
>42, 15281, 15356, 17419, 18879, 18882, 18885, 18888
>
>Fehler ignorieren (i) oder abbrechen (a)?
Hier wurden 8 Fehler gefunden und die entsprechenden ungefähren Zeilennummern angezeigt. Sie können diese Fehler mit "i" ignorieren oder GeotagSolm mit "a" abbrechen. Falls die NMEA Datei von der alten Geotagger Version 10.0 kommt, dann sollten Sie abbrechen und die Fehler in einem Texteditor korrigieren. Andernfalls werden möglicherweise nicht alle Bilder mit Geotags versehen. Tracklogs aus den neuen Versionen 10.1 oder 10.2 des Geotaggers enthalten normalerweise sehr viele GPS Positionen, und das Ignorieren der Fehler ist meist kein Problem.
>Befehl: (geo) Geodaten mit ExifTool in Bilder schreiben
> (list) Liste mit den zum Geotaggen vorgesehenen Bildern anzeigen
> (arg) ExifTool Argumente-Datei anzeigen
> (quit) Abbruch, temporäre Dateien bleiben erhalten
Wählen Sie "list" um anzuzeigen, welche Dateien geogetaggt werden sollen. Falls einige Bilder nicht geogetaggt werden können, dann werden diese zuerst angezeigt. Prüfen Sie diese Liste auf Fehler. Mit "q" kommen Sie von der Liste wieder zurück zum GeotagSolm Menü.
Das Kommando "arg" zeigt die Argumente für ExifTool an. Mit “q” kommen Sie zurück.
"quit" beendet das Programm ohne daß etwas verändert wurde. Machen Sie davon Gebrauch, falls Sie Fehler in den obigen Listen gefunden haben.
Nachdem Sie überprüft haben, daß alles in Ordnung ist, geben Sie "geo" ein, um ExifTool die Geodaten in die Dateien schreiben zu lassen. Achten Sie auf Fehlermeldungen von ExifTool. Prüfen Sie jetzt, ob die geogetaggten Dateien und die darin enthaltenen Metadaten von Ihren Bildprogrammen vernünftig gelesen werden können. Außerdem können Sie sich auf der ExifTool Homepage [3] über Kompatibilitätsprobleme informieren.
muß bis auf 10 Sekunden genau stimmen. Weiter unten wird erklärt wie dieser Toleranzwert verändert werden kann.
Es empfiehlt sich die Minuten und Sekunden der Kamerauhr mit der GPS Zeit zu synchronisieren bevor Sie anfangen zu fotografieren. Dann ist TIME einfach nur der Zeitzonen-Bezeichner, z.B. +1 in Mitteleuropa (bzw. +2 in der Sommerzeit).
GPS Version ID : 2.2.0.0
GPS Latitude Ref : North
GPS Latitude : xx deg xx’ 16.82"
GPS Longitude Ref : East
GPS Longitude : xx deg xx’ 5.00"
GPS Altitude Ref : Above Sea Level
GPS Altitude : 350 m
GPS Time Stamp : 13:19:22
GPS Satellites : 11
GPS Status : Measurement Active
GPS Dilution Of Precision : 0.8
GPS Speed Ref : km/h
GPS Speed : 0.1852
GPS Track Ref : True North
GPS Track : 72.39
GPS Img Direction Ref : Magnetic North
GPS Img Direction : 125.4
GPS Map Datum : WGS-84
GPS Processing Method : GPS(D)
GPS Date Stamp : 2010:12:08
GPS Differential : Differential Corrected
User Comment : Blabla; H(125.4),P(3.6),R(-1.3)
Dem ürsprünglichen "UserComment" (hier "Blabla") wird die Bildrichtung (compass heading H), die Neigung (P) und die Gierung (R) in Grad angehängt. Dabei werden Leerzeichen am Ende von "UserComment" vorher entfernt.
Unter "GPS Dilution Of Precision" wird immer der HDOP Wert abgelegt, weil der Geotagger PDOP nicht aufzeichnet.
"GPS Processing Method" wurde von mir erweitert, darin steht jetzt "GPS(x)". x bezeichnet den "FAA mode indicator" vom Ende des $GPRMC Datensatzes. Mögliche Werte für x sind A (autonomous), D (differential), E (estimated), M (manual), N (not valid), S (simulated). A bedeutet normaler Betrieb, und D zeigt an, daß eine differentielle Korrektur angewendet wurde. E zeigt an, daß die Indoor Funktion des Geotaggers aktiv war.
## ZeitTol
## DE: Zeit-Toleranz in Sekunden
GeotagSolm.ZeitTol=10
"ZeitTol" ist die Toleranz in Sekunden für den Zeitabgleich zwischen GPS und Bild.
## interaktiv
## DE: 0: Geotagging ohne Interaktion, 1: Menü anzeigen
GeotagSolm.interaktiv=1
Setzen Sie "interaktiv" auf 0, um das Menü auszuschalten. Dann wird GeotagSolm nicht mehr um Ihre Zustimmung zum Ändern der Bilddateien bitten.
## ExiftoolPfad
## DE: Pfad zu "exiftool"
GeotagSolm.ExiftoolPfad=exiftool
Falls die ”exiftool“ Programmdatei nicht in PATH liegt, kann der exakte Ort in "ExiftoolPfad" angegeben werden.
## ExiftoolGeotagOpt
## DE: Exiftool-Optionen fürs Geotaggen.
## Jeder Eintrag muß mit “\n” abgeschlossen werden.
GeotagSolm.ExiftoolGeotagOpt=-overwrite_original_in_place\n
In "ExiftoolGeotagOpt" können zusätzliche ExifTool Argumente angegeben werden. Sie müssen für die Verwendung in einer Argumentdatei formatiert werden. Details finden Sie in der ExifTool Dokumentation [3]. Ab LeseSolm Version 0.0.7 werden keine "_original" Sicherungsdateien mehr erzeugt. Die ursprünglichen Bilddateien werden überschrieben. Wenn Sie die "_original" Sicherungen wieder haben möchten, dann entfernen Sie die Option “-overwrite...\n”.
GeotagNMEA ist ein Geotagging-Werkzeug, das ähnlich arbeitet wie GeotagSolm, allerdings akzeptiert es beliebige GPS Track Dateien im NMEA Format. Verwenden Sie es zum Geotaggen von Bildern aus einer Kamera, die nicht mit dem Geotagger verbunden war. Ebenso können Tracklogs aus anderen GPS Loggern verwendet werden. Die Dateien vom Geotagger werden auch unterstützt.
Bevor Sie fortfahren, lesen Sie bitte Abs. 4. Im folgenden werden nur die Unterschiede erklärt.
Starten Sie das Geotagging-Skript mit
GeotagNMEA.awk NMEA TIME IMAGEFILES
Notwendige Argumente:
+1 = +1:0:0, g-1:13:3, r1:0:4
Die Wahl des ersten Satzes ist wichtig für Tracklogs mit großem Zeitintervall (mehr als eine Sekunde) zwischen einzelnen Punkten. Wählen Sie r für die Version 10.0 des Solmeta Geotagger Pro, und g für die Version 10.1 und höher.
Falls Sie die richtige Einstellung für Ihren GPS Logger nicht kennen, setzen Sie das Logintervall auf 10 Sekunden und zeichnen Sie eine Minute Daten auf (nach dem GPS Fix!). Dann schauen Sie sich die Zeiten (das Feld nach dem ersten Komma) in den $GPGGA und $GPRMC Sätzen in der NMEA Datei an. Finden Sie heraus, welche ($GPRMC+$GPGGA) Paare zusammen gehören. In einem solchen Paar bestimmt der zuerst kommende Satz die Wahl von r∕g.
Beachten Sie, daß die Einstellungszeilen in der Datei “.LeseSolm” den Präfix “GeotagNMEA” und nicht “GeotagSolm” tragen.
Standardmäßig wird die Magnetkompaß-Information vom Geotagger (im Satz $PTNTHPR) nicht von GeotagNMEA verwendet. Sie können den Kompaßsatz durch GeotagNMEA.UsePTN=1 in der Einstellungsdatei wieder einschalten. Es macht jedoch wenig Sinn den Magnetkompaß zu verwenden, wenn der Geotagger nicht fest mit der Kamera verbunden ist. Verwenden Sie GeotagSolm, falls er ordentlich an der Kamera ausgerichtet ist.
GeotagNMEA bestimmt die Blickrichtung aus der GPS Spur ($GPRMC), falls die Geschwindigkeit über einer bestimmten Schwelle liegt. Das ist nützlich für Bilder, die in Bewegungsrichtung aufgenommen wurden, z.B. durch die Frontscheibe eines Autos. Die Geschwindigkeitsschwelle (in km/h) ist in der Variable GeotagNMEA.MinvImgDir im Einstellungsabschnitt festgelegt. Der Standardwert beträgt 6 km/h, setzen Sie den Wert auf 999999, um diese Funktion abzuschalten.
GeotagNMEA liest den $GPGSA Satz, sofern vorhanden, und füllt den EXIF Eintrag MeasureMode entsprechend aus. “2” steht für einen 2D GPS Fix, und der HDOP Wert wird in EXIF DOP eingetragen. “3” bedeutet 3D GPS Fix, und PDOP wird anstelle von HDOP eingetragen. Falls $GPGSA fehlt, wird in EXIF DOP der HDOP Wert aus $GPGGA eingetragen.
Für Bilder mit gültigen GPS Koordinaten lädt RevGeotag die zugehörigen Höhenwerte der Webseite geonames.org [4] herunter und aktualisiert den EXIF Eintrag “GPSAltitude”. Starten Sie das Skript mit
RevGeotag.awk x IMAGESFILES
wobei IMAGEFILES für die Bilder mit Koordinaten steht. x muß ersetzt werden durch a, b oder c, was folgendes bedeutet. Falls x gleich a ist, holt RevGeotag nur die Höhenwerte für Bilder ohne “GPSAltitude” Eintrag. Im Modus b werden alle Höhen heruntergeladen und angezeigt, aber nur Bilder ohne Höheneintrag aktualisiert. Wenn x durch c ersetzt wird, dann werden alle Bilder aktualisiert und bereits existierende Höheneinträge werden überschrieben. Beispiel:
RevGeotag.awk c *.JPG *.xmp
RevGeotag besitzt das gleiche Menü wie GeotagSolm und GeotagNMEA. Der Befehl “list” zeigt die Bilder zusammen mit den Höhenwerten von geonames.org und den Originalhöhen an. Welche Bilder aktualisiert werden hängt vom Modus a/b/c ab, wobei nur Modus c alte Höhen überschreibt. Falls ein alter Höheneintrag mit dem Wert altiold schon existiert, dann wird dieser im EXIF Eintrag “GPSProcessingMethod” in der Form ALT(altiold) gesichert.6 Auch der neue Wert altinew wird dort als DEM(xyz:altinew) gespeichert, wo xyz das digitale Höhenmodell (DEM) bezeichnet. Ein Ausschnitt aus der “list” Anzeige könnte so aussehen:
Bild 3: ./DSC_4467.JPG
Lat: +xx.xx2337°, Lon: +x.xx3281°
Höhe im Bild : +41.90 m
Neue Höhe : +35.00 m, Diff = -6.90 m = -9.0% von (|alt|+|neu|)
GPS ProcessingMethod: GPS(A),ALT(41.9m),DEM(astergdem:35m)
Benutzen Sie den Befehl “geo”, um die Bilder mit den neuen Höhen zu aktualisieren. Vorher können Sie mit “arg” einen Blick in die ExifTool Argumentedatei werfen. Mit “quit” wird RevGeotag beendet ohne Änderungen vorzunehmen.
Zusätzlich zu den Einstellungen aus Abs. 4.2 können Sie folgende Variablen in der Einstellungsdatei “.LeseSolm” anpassen, siehe auch Abs. 2.1: Derzeit bietet geonames.org Höhendaten von drei DEMs an: astergdem, srtm3 und gtopo30 [10]. Das Standard DEM kann in
RevGeotag.geonamesEleService=astergdem
festgelegt werden. Zum Nutzen des geonames.org Web Service wird eine Anmeldung benötigt, wobei RevGeotag bereits freigeschaltet ist. Sie können sich jedoch auch selbst dort anmelden. In diesem Fall ersetzen Sie in der Zeile
RevGeotag.geonamesUser=lesesolm
“lesesolm” durch ihren Benutzernamen bei geonames.org.7 In “.LeseSolm” können Sie außerdem einen HTTP Proxy angeben und andere Dinge einstellen, welche dort näher beschrieben sind.
Zwei Behelfs-Shellskripte sind als nützliche Abkürzungen für ExifTool hinzugekommen. Die Skripte können Sie einfach nach Ihren Wünschen anpassen. Außerdem können NMEA Dateien mit StatNMEA analysiert werden.
"BackupEXIF.sh IMAGEFILES" erzeugt Sicherungen der EXIF Metadaten aus den Bilddateien in IMAGEFILES. Diese haben die Dateiendung ".orig.exif" und werden im versteckten Verzeichnis ".origexif" gespeichert. Zum Beispiel erzeugt das folgende Kommando die EXIF Dateien "foto.orig.exif" und "*.orig.exif":
BackupEXIF.sh foto.jpg *.JPG
Falls notwendig können die EXIF Daten aus "foto.orig.exif" wieder nach "foto.jpg" zurückgespeichert werden:
exiftool -P -tagsfromfile .origexif/foto.orig.exif -b -exif foto.jpg
Falls nur die GPS Daten und der UserComment zurückgespeichert werden sollen, dann kann folgendes Kommando verwendet werden:
exiftool -P -tagsfromfile .origexif/foto.orig.exif -gps:all -UserComment foto.jpg
Schauen Sie auf die ExifTool Homepage [3] nach weiteren Möglichkeiten.
Im allgemeinen ist es sinnvoll, die EXIF Metadaten zu sichern, bevor die Bilddateien mit irgendeinem Programm oder einer Betriebssystemfunktion verändert werden. Es gibt genug Anwendungen, die mit Metadaten nicht sorgfältig umgehen. Noch besser ist es die ursprünglichen Bilddateien von der Kamera oder Speicherkarte sofort zu sichern. Aber das verbraucht natürlich mehr Speicher als die ".orig.exif" Dateien.
"CreateXMP.sh IMAGEFILES" erzeugt einfache XMP Sidecar Dateien, in die die GPS Daten gespeichert werden können anstatt in die Bilddateien zu schreiben. Zum Beispiel erzeugt
CreateXMP.sh *.JPG
die Dateien "*.xmp", welche zu den Bilddateien "*.JPG" gehören. Danach können die GPS Daten mit
GeotagSolm.awk NMEA TIME *.xmp
in die XMP Dateien "*.xmp" gespeichert werden. Dabei werden die ursprünglichen Bilddateien "*.JPG" nicht verändert.
Dieses Vorgehen ist natürlich nur dann nützlich, wenn Ihre Bildanwendungen mit XMP Sidecar Dateien zurecht kommen. Falls Ihre Bilder schon XMP Dateien haben, dann brauchen diese nicht mehr mit CreateXMP erzeugt werden und GeotagSolm bzw. GeotagSolm kann sofort auf die vorhandenen XMP Dateien angewendet werden.
Für Zahlenfanatiker und Statistikfans führt StatNMEA eine einfache Analyse von GPS Tracklogs im NMEA Format durch. Starten sie das Skript durch
StatNMEA.awk NMEA
wobei NMEA für die NMEA Datei(en) steht.
Folgende Infos werden angezeigt, wobei MMM für “Mittelwert (mit), Maximum (max) and Minimum (min)” steht. In den Verteilungen einer Variable x steht [a,b) für a ≤ x < b.
Der Umfang der angezeigten Infos hängt von der Vollständigkeit der NMEA Datei ab. Für detailierte Satelliten Infos werden $GPGSA und $GPGSV benötigt. Die NMEA Satelliten ID Nummern entsprechen den PRN Nummern für ID ≤ 32. Ab ID > 32 ist die PRN Nummer gleich (ID + 87) . ID Nummern größer 32 gehören zu SBAS Satelliten (und anderen?).
Der Geotagger [2] zeichnet leider keine $GPGSA oder $GPGSV Sätze auf, daher sind die Infos etwas dünn.
StatNMEA 0.0.9
Lese Zeile 4788.
==== GPS Track enhält 4788 Zeilen.
Beginn: 2011:03:17 13:17:04.376
Ende: 2011:03:17 19:20:37.000
==== NMEA Sätze
GPRMC: 2243 = 100%
GPGGA: 132 = 5.88498%
PTNTHPR: 2262 = 100.847%
==== GPRMC speed (km/h)
RMC-Speed: 2243, mit = 2.25, max = 8.5, min = 0.0
Verteilung:
[ 0, 2): 1245 = 55.5%
[ 2, 7): 977 = 43.6%
[ 7, 15): 21 = 0.9%
[ 15, 30): 0 = 0.0%
[ 30, 60): 0 = 0.0%
[ 60,120): 0 = 0.0%
[120,240): 0 = 0.0%
[240,500): 0 = 0.0%
[500,800): 0 = 0.0%
[800,inf): 0 = 0.0%
==== DOP Werte
GGA-HDOP: 132, mit = 1.35, max = 6.7, min = 0.8
GGA-Sats: 132, mit = 7.79, max = 11, min = 4
Verteilung: ggaHDOP gsaHDOP gsaPDOP gsaVDOP
[ 0, 1): 34 = 25.8%
[ 1, 2): 86 = 65.2%
[ 2, 3): 4 = 3.0%
[ 3, 4): 4 = 3.0%
[ 4, 5): 2 = 1.5%
[ 5, 6): 1 = 0.8%
[ 6, 7): 1 = 0.8%
[ 7, 8): 0 = 0.0%
[ 8, 9): 0 = 0.0%
[ 9,10): 0 = 0.0%
[10,11): 0 = 0.0%
==== Sats in use
==== Sats in view
==== GPS Fix Infos
RMC-FAA A: 1544 = 68.8%
RMC-FAA D: 689 = 30.7%
RMC-FAA E: 8 = 0.4%
GGA-FixQual 1: 113 = 85.6%
GGA-FixQual 2: 19 = 14.4%
Dieser GPS Logger von Locosys [11] schreibt $GPGSA und $GPGSV Sätze mit, und es werden mehr Satelliten-Infos angezeigt.
StatNMEA 0.0.9
Lese Zeile 31713.
==== GPS Track enhält 31713 Zeilen.
Beginn: 2011:02:07 13:04:23.244
Ende: 2011:02:07 18:52:50.000
==== NMEA Sätze
GPRMC: 8810 = 100%
GPGGA: 8810 = 100%
GPGSA: 8810 = 100%
GPGSV: 5283 = 59.9659%
GPGSV Gruppen: 1761 = 19.9886%
==== GPRMC speed (km/h)
RMC-Speed: 8810, mit = 231.07, max = 865.3, min = 0.0
Verteilung:
[ 0, 2): 2257 = 25.6%
[ 2, 7): 2052 = 23.3%
[ 7, 15): 286 = 3.2%
[ 15, 30): 290 = 3.3%
[ 30, 60): 835 = 9.5%
[ 60,120): 299 = 3.4%
[120,240): 38 = 0.4%
[240,500): 401 = 4.6%
[500,800): 834 = 9.5%
[800,inf): 1518 = 17.2%
==== DOP Werte
GGA-HDOP: 8777, mit = 2.41, max = 9.8, min = 0.8
GSA-HDOP: 8777, mit = 2.41, max = 9.8, min = 0.8
GSA-PDOP: 8777, mit = 3.80, max = 10.3, min = 1.4
GSA-VDOP: 8777, mit = 2.85, max = 9.1, min = 1.1
GGA-Sats: 8789, mit = 5.82, max = 10, min = 3
Verteilung: ggaHDOP gsaHDOP gsaPDOP gsaVDOP
[ 0, 1): 40 = 0.5% 40 = 0.5% 0 = 0.0% 0 = 0.0%
[ 1, 2): 4707 = 53.6% 4707 = 53.6% 562 = 6.4% 2316 = 26.4%
[ 2, 3): 1603 = 18.3% 1603 = 18.3% 3008 = 34.3% 2869 = 32.7%
[ 3, 4): 827 = 9.4% 827 = 9.4% 1788 = 20.4% 2564 = 29.2%
[ 4, 5): 1167 = 13.3% 1167 = 13.3% 1381 = 15.7% 411 = 4.7%
[ 5, 6): 307 = 3.5% 307 = 3.5% 1437 = 16.4% 252 = 2.9%
[ 6, 7): 20 = 0.2% 20 = 0.2% 116 = 1.3% 58 = 0.7%
[ 7, 8): 79 = 0.9% 79 = 0.9% 41 = 0.5% 183 = 2.1%
[ 8, 9): 25 = 0.3% 25 = 0.3% 131 = 1.5% 121 = 1.4%
[ 9,10): 2 = 0.0% 2 = 0.0% 312 = 3.6% 3 = 0.0%
[10,11): 0 = 0.0% 0 = 0.0% 1 = 0.0% 0 = 0.0%
==== Sats in use
Sat(GSA) 2: 5381 = 10.5%, S/N( 1075), mit = 28.7, max = 44, min = 13, Ele = [10,48], Azi = [257,315]
Sat(GSA) 4: 5275 = 10.3%, S/N( 1054), mit = 27.2, max = 46, min = 12, Ele = [40,63], Azi = [207,302]
Sat(GSA) 5: 2317 = 4.5%, S/N( 459), mit = 25.6, max = 41, min = 12, Ele = [10,30], Azi = [298,307]
Sat(GSA) 7: 1429 = 2.8%, S/N( 286), mit = 24.6, max = 37, min = 15, Ele = [63,70], Azi = [115,143]
Sat(GSA) 8: 1468 = 2.9%, S/N( 294), mit = 22.2, max = 34, min = 13, Ele = [37,53], Azi = [180,181]
Sat(GSA) 10: 5291 = 10.4%, S/N( 1059), mit = 28.7, max = 44, min = 12, Ele = [ 8,79], Azi = [277,332]
Sat(GSA) 11: 2927 = 5.7%, S/N( 587), mit = 20.6, max = 37, min = 12, Ele = [11,81], Azi = [159,277]
Sat(GSA) 13: 6877 = 13.5%, S/N( 1377), mit = 25.3, max = 42, min = 12, Ele = [16,85], Azi = [ 1,359]
Sat(GSA) 14: 859 = 1.7%, S/N( 174), mit = 20.3, max = 31, min = 12, Ele = [ 8,35], Azi = [ 38, 55]
Sat(GSA) 17: 3322 = 6.5%, S/N( 664), mit = 23.6, max = 37, min = 12, Ele = [10,41], Azi = [219,289]
Sat(GSA) 19: 1115 = 2.2%, S/N( 223), mit = 28.5, max = 40, min = 15, Ele = [26,35], Azi = [169,170]
Sat(GSA) 20: 3551 = 6.9%, S/N( 709), mit = 21.5, max = 38, min = 12, Ele = [ 7,83], Azi = [ 70,327]
Sat(GSA) 23: 5327 = 10.4%, S/N( 1065), mit = 23.2, max = 44, min = 12, Ele = [13,83], Azi = [ 48,189]
Sat(GSA) 24: 2886 = 5.6%, S/N( 577), mit = 21.5, max = 36, min = 12, Ele = [21,85], Azi = [128,335]
Sat(GSA) 31: 745 = 1.5%, S/N( 151), mit = 18.2, max = 33, min = 12, Ele = [14,24], Azi = [ 35, 50]
Sat(GSA) 32: 2342 = 4.6%, S/N( 464), mit = 21.3, max = 39, min = 12, Ele = [26,80], Azi = [ 58,241]
==== Sats in view
Sat(GSV) 2: 1289 = 6.6%, S/N( 1088), mit = 28.5, max = 44, min = 7, Ele = [ 1,48], Azi = [257,315]
Sat(GSV) 3: 174 = 0.9%, S/N( 19), mit = 17.5, max = 22, min = 12, Ele = [ 1, 4], Azi = [163,163]
Sat(GSV) 4: 1503 = 7.6%, S/N( 1270), mit = 25.9, max = 46, min = 8, Ele = [ 6,63], Azi = [207,307]
Sat(GSV) 5: 576 = 2.9%, S/N( 467), mit = 25.3, max = 41, min = 7, Ele = [ 1,30], Azi = [290,307]
Sat(GSV) 7: 1109 = 5.6%, S/N( 557), mit = 22.6, max = 37, min = 7, Ele = [ 2,71], Azi = [105,179]
Sat(GSV) 8: 853 = 4.3%, S/N( 466), mit = 22.1, max = 34, min = 9, Ele = [ 1,53], Azi = [180,185]
Sat(GSV) 10: 1411 = 7.2%, S/N( 1206), mit = 27.6, max = 44, min = 7, Ele = [ 1,79], Azi = [271,332]
Sat(GSV) 11: 766 = 3.9%, S/N( 596), mit = 20.5, max = 37, min = 7, Ele = [ 1,81], Azi = [156,277]
Sat(GSV) 12: 49 = 0.2%, S/N( 41), mit = 20.7, max = 27, min = 15, Ele = [ 1, 1], Azi = [350,352]
Sat(GSV) 13: 1536 = 7.8%, S/N( 1475), mit = 25.1, max = 42, min = 7, Ele = [ 6,85], Azi = [ 1,359]
Sat(GSV) 14: 307 = 1.6%, S/N( 267), mit = 20.8, max = 37, min = 7, Ele = [ 1,37], Azi = [ 38, 58]
Sat(GSV) 16: 949 = 4.8%, S/N( 200), mit = 21.1, max = 37, min = 7, Ele = [ 1, 5], Azi = [ 27, 74]
Sat(GSV) 17: 1227 = 6.2%, S/N( 869), mit = 22.7, max = 39, min = 10, Ele = [ 3,41], Azi = [211,317]
Sat(GSV) 19: 225 = 1.1%, S/N( 225), mit = 28.4, max = 40, min = 9, Ele = [26,35], Azi = [169,170]
Sat(GSV) 20: 1629 = 8.3%, S/N( 807), mit = 21.5, max = 38, min = 7, Ele = [ 1,83], Azi = [ 70,327]
Sat(GSV) 22: 225 = 1.1%, S/N( 34), mit = 16.5, max = 25, min = 7, Ele = [ 1, 8], Azi = [ 61, 64]
Sat(GSV) 23: 1727 = 8.8%, S/N( 1323), mit = 22.8, max = 44, min = 7, Ele = [ 1,83], Azi = [ 48,193]
Sat(GSV) 24: 908 = 4.6%, S/N( 586), mit = 21.4, max = 36, min = 7, Ele = [ 1,85], Azi = [128,335]
Sat(GSV) 25: 294 = 1.5%, S/N( 28), mit = 17.1, max = 27, min = 8, Ele = [--,--], Azi = [ 2, 11]
Sat(GSV) 26: 243 = 1.2%, S/N( 31), mit = 16.8, max = 23, min = 13, Ele = [ 1, 9], Azi = [249,257]
Sat(GSV) 28: 225 = 1.1%, S/N( 140), mit = 19.8, max = 34, min = 9, Ele = [14,19], Azi = [274,282]
Sat(GSV) 30: 511 = 2.6%, S/N( 3), mit = 16.3, max = 17, min = 16, Ele = [ 1, 2], Azi = [ 33, 52]
Sat(GSV) 31: 716 = 3.6%, S/N( 357), mit = 19.4, max = 38, min = 7, Ele = [ 1,26], Azi = [ 27,113]
Sat(GSV) 32: 1185 = 6.0%, S/N( 489), mit = 21.0, max = 39, min = 10, Ele = [ 1,80], Azi = [ 58,241]
Sat(GSV) 33: 17 = 0.1%, S/N( 17), mit = 27.1, max = 33, min = 22, Ele = [29,39], Azi = [205,211]
Sat(GSV) 34: 1 = 0.0%, S/N( 1), mit = 28.0, max = 28, min = 28, Ele = [--,--], Azi = [---,---]
Sat(GSV) 37: 21 = 0.1%, S/N( 21), mit = 27.2, max = 33, min = 23, Ele = [32,38], Azi = [151,164]
Sat(GSV) 39: 1 = 0.0%, S/N( 1), mit = 31.0, max = 31, min = 31, Ele = [31,31], Azi = [159,159]
==== GPS Fix Infos
GSA-Fix 1: 33
GSA-Fix 2: 203
GSA-Fix 3: 8574
RMC-FAA A: 8810 = 100.0%
GGA-FixQual 0: 33 = 0.4%
GGA-FixQual 1: 8777 = 99.6%
[1] LeseSolm project page at SourceForge, http://sourceforge.net/projects/lesesolm/; news and update announcements, http://sourceforge.net/news/?group_id=397341; documentation, http://sourceforge.net/projects/lesesolm/files/doc/
[2] Solmeta Geotagger Pro, www.solmeta.com
[3] ExifTool by Phil Harvey, www.sno.phy.queensu.ca/~phil/exiftool/
[4] GeoNames geographical database: www.geonames.org
[5] GAWK, www.gnu.org/software/gawk/
[6] Cygwin: Linux environment under Windows, http://cygwin.com/
[7] USB-COM bug in Ubuntu 10.10: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/661321, http://groups.google.com/group/openzwave/browse_thread/thread/0708dd14cf8e91eb
[8] NMEA, http://gpsd.berlios.de/NMEA.html, www.gpsinformation.org/dale/nmea.htm, http://nmea.de/
[9] Compass sentence $PTNTHPR, www.magneticsensors.com/datasheets/hmr3000_manual.pdf
[10] Digital elevation models: www.geonames.org/export/web-services.html#srtm3, www.ersdac.or.jp/GDEM/E/2.html
[11] Locosys GPS Walker, www.locosystech.com/product.php?zln=en&id=51
[12] Thanks to Sebastian Hofer (www.gps-camera.eu) for useful correspondence and information about the Geotagger.