FluxFlux-Se

Fotos von Digitalkameras mit Geodaten versehen - Geo-Fotos erstellen - Geoimaging - Fotos georeferenzieren


Wer seine mit der Digitalkamera gemachten Bilder gerne auf einer Karte anzeigen lassen möchte oder einfach nur die Geodaten (Längengrad, Breitengrad, Höhe) in die Exif-Daten schreiben lassen möchte, der findet hier eine kleine und aus meiner Sicht einfache Anleitung dazu.

Voraussetzungen:
  • Digitalkamera
  • GPS-Gerät, das Daten aufzeichnen kann
  • Linuxsystem auf einem Rechner
  • zu installierende Programme und Skripte: gexif, gpsbabel, tangogps, gpscorrelate (via Synaptic über das fluxflux-Repo erhältlich), sqlite3, jhead (via Synaptic mit den Standardrepos erhältlich), geotag2db.pl (Perl-Skript zum Erstellen einer sqlite-Datenbank zur Anzeige der georeferenzierten Fotos in tangogps von Marcus Bauer), convert2gpx.pl (Perl-Skript zum Erstellen einer GPX-Datei aus einem tangoGPS-Log), die beiden Perl-Skripte in einem Ordner im Home-Verzeichnis sichern ...
  • Spaß und ca. 5 Minuten Zeit ...
Vorbereitungen:
  • Am Anfang des Ausfluges, der Fahrt, der Wanderung wird das GPS gestartet und sichergestellt, dass der Track aufgezeichnet wird. Ich bevorzuge auf dem Garmin Etrex eine Zeitaufzeichnung mit einem Intervall von 30 Sekunden. Andere Geräte zeichnen einmal die Sekunde auf. 
  • Ich fertige ein Vergleichsfoto ... GPS-Gerät zeigt die aktuelle Zeit auf dem Display, die ich mit der Digitalkamera fotografiere. Dies dient zur Feststellung der Zeitdifferenz zwischen Digitalkamera und GPS-Gerät.
  • Fotos anfertigen
  • Am Ende des Ausfluges, der Fahrt, der Wanderung den Track sichern (Achtung: Garmin Etrex sichert keine Zeitdaten im Track! Man muss den Track bei laufendem Etrex auslesen, sonst gehen die für die Referenzierung notwendigen Zeitdaten verloren!).
Vorgehen:
  • GPS-Datenlogger auslesen
  • Als Beispiel nehme ich hier das Garmin Etrex Venture HC (die Vorgehensweise ist bei anderen Garmin-Geräten identisch)!
  • Etrex mit dem original Garmin-USB-Kabel (Achtung: andere USB-Kabel gehen oft nicht!) am PC/Notebook anstecken.
  • Arbeitsverzeichnis erstellen, die beiden Perl-Skripte dahin kopieren
  • Im Arbeitsverzeichnis eine Konsole öffnen und Trackdaten aus dem Etrex laden (als root):
  • gpsbabel -D 4 -t -i garmin -f /dev/ttyUSB0 -o gpx -F etrex-track.gpx
  • Damit werden alle im Etrex gespeicherten Tracks in die Datei etrex-track.gpx geschrieben. Der letzte, benötigte Track ist mit dabei.
  • Wer eine LOG-Datei aus tangogps als Quelle verwenden möchte, der verwendet das Skript convert2gpx.pl und erstellt damit in dem Arbeitsverzeichnis in einer Konsole mit dem Befehl 
  • ./convert2gpx.pl 20090111_140508.log > track.gpx
  • aus der LOG-Datei eine GPX-Datei.
  • Digitalkamera mit dem PC/Notebook verbinden, die in Frage kommenden Fotos herunterladen, bearbeiten, umbenennen und lokal abspeichern (wo ist egal).
  • gexif starten und das am Anfang gefertigte Vergleichsfoto öffnen
  • Die Zeit auf dem Foto (Zeit des GPS-Empfängers) notieren und die in den Exif-Daten angezeigte Zeit (Zeit der Digitalkamera) notieren.
  • gexif schließen (zwei Bildschirmfotos als Verdeutlichung ...)


  • gpscorrelate-gui öffnen und mit den Schaltflächen die benötigten Daten laden (GPX-Datei aus dem Arbeitsverzeichnis, Bilder aus dem lokalen Verzeichnis), dann die Zeitdifferenz zwischen Kamera und GPS in Sekunden eingeben und evtl. +1:00 oder +2:00 Stunden Differenz angeben (kommt aufs GPS an). Mit dem ersten Wert kann man ein Zeitfenster von 1 bis mehreren Sekunden angeben, in denen nach einer Übereinstimmung gesucht wird. Über die Schaltfläche "correlate" die Geodaten in die Exif-Daten der Bilder schreiben lassen (kann jederzeit rückgängig gemacht werden).
  • Damit sind die Bilder georeferenziert! 
  • Zur Anzeige der Geofotos in tangoGPS wird im Arbeitsverzeichnis das Perl-Skript geotag2db.pl in einer Konsole ausgeführt
  • ./geotag2db.pl ${HOME}/bilder/bilder_vom_ausflug
  • Damit wird von allen Bildern im Verzeichnis  ${HOME}/bilder/bilder_vom_ausflug eine Datenbank erstellt, die in /tmp als geophoto.db zu finden ist!
  • Diese Datei wird zur Anzeige in tangoGPS nach ${HOME}/.tangogps/ kopiert. Hierbei wird die dort eventuell vorhandene geophoto.db überschrieben.
  • Ich löse das so: die von einem Track erstellte geophoto.db kopiere ich ins Verzeichnis ${HOME}/bilder/bilder_vom_ausflug, da die Datenbank ja zu diesen Bildern gehört und ich sie nach Bedarf verwenden kann, indem ich sie nach ${HOME}/.tangogps/ kopiere und so NUR diesen Track mit den dazu gehörenden Bildern anzeigen lassen kann.
  • Die in /tmp liegende geophoto.db kann für andere Tracks weiterverwendet werden (neue Bilder werden dazu geschrieben) oder sie wird gelöscht und für jeden Track eine neue verwendet.
  • In tangoGPS kann dann per Rechtsklick die Option "show photos" angeklickt werden und die in der geladenen geophoto.db enthaltenen Geofotos werden als Icons auf der Karte in dem betreffenden Gebiet angezeigt und auf Klick vergrößert dargestellt.

  • Selbstverständlich können die georeferenzierten Bilder auch in GoogleEarth oder online in Yahoo oder flickr angezeigt werden!
  • Ich bevorzuge wegen der Leichtigkeit und Schnelligkeit tangoGPS ...

Counter