Geo-Tagging von Fotos – Meine Praxisanleitung – Part II


Hallo,

spät aber doch folgt der zweite Teil meiner GPS-Tagging Praxisanleitung.

Hier bin ich bereits auf die Punkte „GPS Tracking? GEO-Taggen? Hää?“ und „Beschaffung der Rohdaten“ eingangen. Soweit war es ja noch halbwegs einfach – Fotos machen und nen GPS-Tracker einschalten bzw. die Daten beider Geräte auf den PC übertragen.

Nun folgt der technisch komplexere Teil:

Merging GPS-Data + Fotos

Das richtige Format für die GPS-Tracks – GPX

Hier sei erwähnt, dass es bei der Aufzeichnung von GPS-Tracks sehr viele verschiedene Formate gibt. Um eine möglichst große Bandbreite an Software nutzen zu können empfiehlt es sich die Tracks im GPX-Format zu speichern. Dieses ist sehr weit verbreitet und wird von praktisch allen Programmen unterstützt.

Sollte die beim GPS-Tracker mitgelieferte Software über keinen GPX-Export verfügen, kann man mit Tools die Tracks konvertieren. (zB GPS Babel –> Links)

Bei der Aufzeichnung meiner Tracks bietet meine GPS-Maus die Möglichkeit Trackpunkte zu markieren. Hier zeichne ich zugleich mit dem ersten Foto einen Punkt auf (egal wo ich bin). Egal wo ich bin und egal was auf dem Foto ist. Der Grund dafür?

Das Synchronisationsfoto

Nun, das GPS-Signal wird mitsamt UTC-Uhrzeit ausgeschickt. Daher weiß meine GPS-Maus ganz genau, wie spät es ist. Nicht so meine Digitalkamera. Selbst wenn ich die auf die Sekunde genau mit der Atomzeit synchronisiere habe ich nach spätestens 2 Wochen einen Unterschied von ein paar Minuten. Keine Ahnung was heutzutage so schwer daran ist eine Uhr zu implementieren, aber das ist leider eine Tatsache. Wenn ich also die Fotozeiten unangetastet lasse, stimmt Foto mit Position in keinster Weise überein.

Daher nutze ich dieses Foto (ich habe es „Synchronisationsfoto“ getauft), um den Zeitunterschied zu berechnen und die Aufnahmezeit des Fotos zu berichtigen.

Hier ist Vorsicht geboten – Es zählt nicht die Systemzeit, wann die Datei geändert oder erstellt wurde, sondern in den Fotos selbst sind Meta-Daten gespeichert, sog. EXIF-Daten. Um daher die Fotozeit bei allen Fotos zu berichtigen und damit mit dem Track kompatibel zu machen, müssen diese EXIF-Daten geändert werden.

EXIF-Daten ändern – exif-modify.sh

Prinzipiell gäbe es Tools zum Herunterladen, davon hat mich aber keines zufriedengestellt. Entweder zu kompliziert, oder (und das ist das Dümmste) man konnte nur minutengenau die Zeit ändern.

Daher habe ich mir selbst ein kleines Shell-Script geschrieben, welches auf das EXIF-Kommandozeilentool zugreift. Damit das Script funktioniert genügt also unter Ubuntu ein

$ sudo apt-get install exiv2 libimage-exiftool-perl zenity

Um das Script zu erstellen gib in einem Terminal ein

$ mkdir $HOME/bin
$ gedit $HOME/bin/exif-modify.sh

… füge folgenden Programmcode ein, speichere und schließe danach.

#!/bin/bash
# Copyright: Robert Schrenk, 2008
# Helps to adjust EXIF-Creation Information of Fotos

dir=$1

if [ „$dir“ = „“ ]; then
zenity –info –text „Sie müssen ein Verzeichnis angeben!!“
exit 0;
fi

cd „$dir“

first=““

zenity –question –text=“Originale behalten?“
keeporig=$?
echo „Keeping Originals: ${keeporig}“
ls „.“ |while read line; do
if [ „$first“ = „“ ]; then
zenity –info –text „Reading EXIF Info from First File ${line}“
first=`exiftool -TAG „-CreateDate“ „${line}“`
ist=${first:(-19)}

istdate=${ist:0:10};
istdate=${istdate//\:/\-};
isttime=${ist:(-8)};
solldate=${soll:0:10};
solldate=${solldate//\:/\-};
solltime=${ist:(-8)};

ist=“$istdate $isttime“
echo „Got First Date $ist“
soll=`zenity –entry –text „Geben Sie den Zeitpunkt ein, von wann das erste Foto sein sollte“ –entry-text=“$ist“`

echo „Vergleiche SOLL ($soll) mit IST ($ist)“
istd=$(date +%s -d „$ist“)
solld=$(date +%s -d „$soll“)
diff=$(($istd-$solld))
echo „Differenz in Sekunden: $diff“
if [ „$diff“ = „0“ ]; then
zenity –info –text „Die Differenz beträgt 0 Sekunden. Daher wird nichts verändert.“
exit 0;
fi
fi
creat=`exiftool -TAG „-CreateDate“ „${line}“`
creat=${creat:(-19)}
creatdate=${creat:0:10};
creatdate=${creatdate//\:/\-};
creattime=${creat:(-8)};
creat=“$creatdate $creattime“
echo „Creattime: $creat“
creatd=$(date +%s -d „$creat“)
tod=$(($creatd-$diff))
echo „Seconds since 1970 $tod“
to=$(date -d @$tod +“%F %T“)
to=${to//\-/\:}

echo „Changing CreationDate of ${line} from ${creat} to ${to}“
exiftool -TAG „-CreateDate={$to}“ „${line}“
exiftool -TAG „-DateTimeOriginal={$to}“ „${line}“

if [ „$keeporig“ = „1“ ]; then
echo „Deleting ${line}_original“
unlink „${line}_original“
fi
done

Nun muss das Script noch ausführbar gemacht werden.

$ chmod a+x $HOME/bin/exif-modify.sh

Bei mir habe ich anschließend noch nautilus-scripts installiert und einen Shortcut bei Verzeichnissen auf dieses Script gelegt. (Die Einrichtung von nautilus-scripts wird im Ubuntuusers-Wiki beschrieben)

Wer das Tool über die Kommandozeile starten will, gibt im Terminal folgendes ein:

exif-modify.sh „/voller/pfad/zu/den/fotos

Bevor man das Script anwendet, sollte man entweder eine Kopie vom gesamten Ordner vorher machen (eine Fehlfunktion ist nie auszuschließen), oder beim Dialogfeld „Originale behalten“ auf „OK“ klicken.

Das Script nimmt die Aufnahmezeit des ersten Fotos (das sollte das „Synchronisationsfoto“ sein) zur Hand und fragt dann nach dem Zeitpunkt, wann das Foto tatsächlich aufgenommen wurde (Zeitpunkt der GPS-Markierung des „Synchronisationsfotos“).

Ich gebe bei diesem Beispiel nun als Zeit ein: 2009-01-02 09:40:00

Sofern Kopien behalten werden sollen, werden diese nun von jedem Bild angefertigt (bildname.jpg_original)

Bei jedem Originalbild wird nun entsprechend der Zeitdifferenz die neue Aufnahme- und Modifikationszeit eingetragen. (Damit alle weitergehenden Programme hier die richtige Zeit bekommen, werden beide Zeitpunkte geändert). Hier nun der Vergleich zwischen dem Originalbild und dem geänderten Bild:

Wie man erkennen kann, wurde das Aufnahmedatum abgeändert und sollte nun mit dem GPS-Track punktgenau übereinstimmen.

GPS-Daten in Fotos eintragen

Nun folgt der wichtigste Part an der ganzen Sache. Auch die GPS-Daten werden in den EXIF-Metadaten gespeichert. Hier gibt es nun jedoch Programme, die in zufriedenstellender Art und Weise diese Aufgabe übernehmen (ich musste also zum Glück nicht schon wieder selbst was proggen).

Da es eine große Vielzahl an Programmen gibt, möchte ich mich darauf beschränken eines zu erwähnen: GPS Correlate.

Dieses Programm läßt sich ebenfalls aus den Ubuntu-Paketquellen installieren.

$ sudo apt-get install gpscorrelate-gui

Die Oberfläche sieht wie folgt aus und ist damit recht einfach aufgebaut (deshalb schätze ich dieses Programm sehr – es erfüllt genau einen Zweck und den sehr gut):

Wichtig ist hier nur, dass man darauf achtet, dass die richtige Zeitzone angegeben ist. Die GPS-Zeiten sind ja UTC!!! Für Österreich muss also +1:00 eingegeben werden.

Theoretisch könnte man auch hier den Unterschied zwischen der Foto-Aufnahmezeit und dem Trackpunkt im Feld „Photo Offset“ eingeben – das haben wir aber schon zuvor mit dem Shell-Script erledigt (ist auch besser so, weil dann stimmen die Uhrzeiten für immer und in jedem Programm)

Tja, den Rest kann man lassen wie er ist, Fotos hinzufügen, GPS-Data laden (das muss ein GPX-File sein) und dann „Correlate Photos“ anklicken. Wir sehen dann in der Liste, bei welchen Fotos GPS-Daten gefunden wurden.

Das war’s.

Wohin mit den geogetaggten Fotos? Wohin mit dem GPX-Track?

Nunja, für die getaggten Fotos gibt es nun unterschiedliche Möglichkeiten. Möchte man die Fotos nur am Heim-PC auf einer Landkarte anschauen könnte man zum Beispiel Google Earth nutzen – mit einem Programm wie DigiKam ist es zB möglich KML-Tracks mit Fotos zu erstellen. Dann kann man die Route mitsamt der Fotos quasi „abspielen“.

Möchte man aber die Fotos online betrachten (zB in Google Maps oder Yahoo Maps etc.) muss man sie auf eine dafür programmierte Plattform hochladen. Für Google Maps benötigt man zB Panoramio, mit Flickr hingegen kann man die Fotos direkt auf der Flickr-Plattform in Yahoo-Maps anschauen.

Eine Alternative noch, die in meinen Augen sehr gut gelungen ist, ist Geo-Tagging.de. Diese Plattform ist einzig und allein für diesen Zweck ausgerichtet, bezieht die Foto-Informationen von Flickr und zeigt diese auf dem Kartenmaterial von Google-Maps.

Man kann sehr bequem die Fotos eines Benutzers im gewählten Kartenausschnitt ansehen und nach Interesse bzw. Datum sortieren. Als Beispiel dient meine Foto-Map.

Ich hoffe dieser Artikel hat ein paar Klarheiten gebracht.

R.S.

Links

Advertisements

3 Gedanken zu “Geo-Tagging von Fotos – Meine Praxisanleitung – Part II

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s