Manual geocoding

I like to geotag my photos, but I don’t always have a GPS. A while ago, I got an eyefi card that can record some geolocation information. However, this is based on the wifi hotspots on the neighborhood and that does not work very well in the wild.

So I was looking for an easy solution to quickly add location information to a bunch of photos. The original idea was to write a quick python script taking a location (manually extracted from google earth) a list of photos and use the pyexiv2 module to edit the metadata. However, exif is quite a mess (seriously rational encoding?) and it’s pretty hard to make sure you don’t mess it up some more (many softwares happily destroy any piece of metadata they don’t support). Without mentioning that manually copying the location was a pain…

Picasa is working more or less on linux, but the map integration is part of the feature that are not working.

After a bit of research I zeroed on gottengeography. After cloning the git repository, installing the dependencies, I ran into:

(gottengeography:26305): GLib-GIO-ERROR **: Settings schema
'ca.gottengeography' is not installed

After a bit of gnome magic

sudo cp data/ca.gottengeography.gschema.xml \
sudo glib-compile-schemas /usr/share/glib-2.0/schemas/

it’s working without having to install, running the python script directly from the repository.

And that’s pretty cool: OSM interface where you can drag a bunch of photos, then press save and the GPS info is cleanly written on the files. As far as I could tell, no other metadata info was destroyed in the process.

One note about a bug: if you have photos that are already tagged in the south hemisphere, they will be misplaced. This is due to a bug in an underlying library (gexiv2) that should be fixed soon (follow the bug).

Leave a Reply

Your email address will not be published. Required fields are marked *