Geotagging without a dedicated camera gps, part 2

The Garmin Edge 500 cycling computer is a pretty clever unit doing most of what you might want it to, at least if you’re a cyclist.  I would like to use the garmin edge 500 to tag my photos with the location at which they were taken.  This would avoid the need for 1) a dedicated gps tagging thing-a-ma-bob, like the nikon gp-1, and 2) a camera which can interface with the gps tagging thing-a-ma-bob, and at least the nikon d3000 is lacking this capability.  But not to worry a little bit of hacking later and there is a solution.

This solution comes in a few parts, first a class used to parse the garmin .fit file format, second a utility to dump the contents of the .fit file format into a readable format that I could deal with.  Finally a little thing that goes through the gps data, and makes a path and reads the time from the photo and interpolates photo location.  Pretty awesome.  Requires exiftool, which can be found here.  And finally, the goodies can be found here, unzip and drop where you want them.  To run do

./fit_geotag jpg1.jpg jpg2.jpg …

Please let me know if you have any issues.  It’s quite possible that this is an hour off at the moment due to daylight savings time issues.  Should be ironed out quite soon once I have a chance to do some more testing.

Update: I’ve added the ability to geotag using a csv file generated by the smartphone app mytracks. This is available for both the iphone and android operating systems (and possibly others, I don’t even know if there are others). The method is exactly the same. I find this easier, as often when I’m out taking photos I have my phone, but the gps thing, while small would be just one more thing to remember.

Update 2: If you send me an example trackfile and a photo taken during the trackfile, so long as the trackfile is in some sort of a text format, I should be able to add it to this utility. I see some visitors arriving with search terms of other sorts of devices than the mytracks (android or iphone) or garmin .fit.


Geotagging without a dedicated camera gps

A work in progress, detailing how to use a 3rd party gps unit not intended for use in getotagging in geotagging (read it again, it makes sense), using only free tools.

1) convert whatever gps file format you have to a gpx file format. For me it’s a garmin.
gpsbabel -t -i garmin -f usb: -o gpx -F tracklog.gpx

2) use the gpx file to tag all the photos. I’m not sure about the timeadd thing. Has to do with time zone. I think it’s possible that I can get away without it. Anyways I’ll have to try. There’s also a clever gui (which I haven’t yet looked at) for gpscorrelate, which might add in figuring out what’s going on with timezones.
gpscorrelate –gps tracklog.gpx –timeadd -5 *.jpg

It’s worth reading what this character has to say about the topic.