Geotagging - Fotos geokodieren mit Geotag

Da ich gerne fotografiere, und das auch während meiner ersten Geocashing-Ausflüge gemacht habe, war die Idee, die Koordinaten der aufgezeichneten GPS-Tracks aus dem GPS-Gerät irgendwie anhand der Uhrzeit mit den Fotos zu verknüpfen, schnell geboren. Eine kurze Googlesuche brachte ich mich schnell zu einer Vielzahl von Programmen, die das sogenannte Geotagging ermöglichen. Dabei wird in dem Bild ein zusätzliches EXIF-Tag hinzugefügt, in der die Position des aufgenommenen Bildes abgelegt wird. Dies ermöglicht eine nette Verknüpfung zum Beispiel mit Google Maps oder Google Earth, ohne dass in der Kamera ein GPS-Empfänger eingebaut sein muss.

Als erstes habe ich das Programm GeoRobo gefunden und getestet. Leider ist das Programm nicht kostenlos, in der freien Variante werden die Daten beim Export verfälscht, ist also im Grunde nicht zu gebrauchen. Michi hat dann noch ein paar andere Programme aufgetan (unter anderem Photomapper, recht brauchbar).

Ich bin leidenschaftlicher Programmierer, und dachte, eigentlich kann es ja nicht so schwer sein, ein entsprechendes Programm mit den Funktionen, die ich haben möchte, auch selber zu bauen. Das ganze sollte ein einfaches Kommandzeilenorientiertes Tool auf Javabasis sein.

Das GPX-Format war eine geringe Hürde, dafür habe ich einfach XML-Beans auf die Schemadatei gestürzt, XML-Beans generiert daraus Javaklassen und übernimmt dann auch das Unmarshalling des XML-basierten Formats. EXIF-Daten lesen, um das Datum der aufgenommenen Fotos zu generieren, war auch eine leichte Übung, dies geht mit dem Metadata-Extractor von Drew Noakes. Leider nur lesen. Schreiben von EXIF-Daten scheint eine rechte komplizierte Sache zu sein, diese Bibliothek unterstützt das (noch) nicht. Nach ein bisschen Recherche bin ich dann zu dem Schluss gekommen, dass es nicht so einfach möglich ist. Ich entschied mich dazu, die EXIF-Daten mit einem Betriebssystemaufruf und ExifTool zu schreiben. Als ich soweit war, fand ich dann auch ein Sourceforge Projekt, was im Grunde genau die gleiche Idee verfolgt: Geotag. Und da mir das Tool eigentlich ziemlich gut gefällt, möchte ich es hier etwas genauer vorstellen (und stelle meine Eigenentwicklung damit kurz nach dem Start wieder ein ;-) ).

Geotag arbeitet mit einer grafischen Oberfläche, oben eine Tabelle mit den Bildinformationen, unten ein Preview der Bilder:

Geotag Screenshot

Es lassen sich verschiedene externe Tools einbinden, GPSBabel zum übersetzen von unterschiedlichen Formaten der unterschiedlichen GPS-Geräte, ExifTool eben zum schreiben der EXIF-Daten, DCraw zum anzeigen von diversen RAW-Formaten.

Nachdem man den GPS-Track und die Bilder importiert hat, kann man eine Differenz zwischen dem im Bild gespeicherten EXIF-Datum und der Uhrzeit im GPS-Gerät einstellen (am besten immer ein Foto vom GPS-Gerät mit der Uhrzeit auf dem Display machen, dann geht das sehr genau). Diese Differenz übernimmt man dann auf alle Fotos von dem gleichen Ausflug und lässt das Programm dann eine Geokodierung vornehmen. Diese lässt sich über eine schon relativ mächtige Integration von Google Maps kontrollieren und dann zurück ins Bild schreiben. Fertig ist die Geokodierung.

Ein recht nettes Feature an Geotag ist aber auch das manuelle Geotagging. Man kann im integrierten Google Maps für ein Foto eine Position auswählen, Geotag übernimmt diese dann automatisch in das Bild. Ein Export in das Google-Earth Format KMZ ist ebenfalls möglich. Auch nett ist das Feature, Ortsnamen zu den Koordinaten ermitteln zu lassen (hat bei mir aber nicht so 100% gepasst).

Was mir noch fehlt ist ein Export nach Google Maps (quasi ne HTML-Datei mit dem Track und den Bildern integriert), entweder hab ich das Feature nicht gefunden, oder es gibts noch nicht :-). Alles in allem aber trotzdem ein sehr empfehlenswertes Programm, auch wenn die Bedienung teilweise in meinen Augen noch ein bisschen unintuitiv ist, wenn man sich dran gewöhnt hat, ist es aber für das Geotagging extrem nützlich!

Füge einen Kommentar hinzu: