Geotagging photos


Geotagging photos is one of those things you’re going to think is completely geeky until someone shows you a real application for it - then you get the wow factor, and realize it is a great idea.

The concept behind geotagging is to link the GPS coordinates from which you took a photograph to the photo itself, and to store those coordinates as data embedded within the photo.  This is usually done by correlating the time stamp on the photograph with the nearest point recorded in a track-log from a GPS device. Once this correlation is done and the data written to the images; then a suitable application can read the coordinates and display the photo on a map. For example - both flickr and Google picasa will show a clickable map alongside your images.  

On the desktop - you can create a KMZ file to pass to Google Earth containing a GPS track-log, and a set of geotagged images.  I used this recently to show some friends a track of the flight we took over the Belldonne mountain range just outside of Grenoble.  In order to get the track-log and photos to appear at the correct altitude, I had to do a little editing work - but I’ll explain how to use absolute altitude in a future post.

So - how is it done?

Well… You need a GPS, a camera, and some software to work out where you where when you took each photo.  

Pretty much any GPS that records a track-log will do, but I prefer the Dakota / Oregon range from Garmin (see my Amazon UK / US stores or the Amazon slide-shows below), because they don’t drop points when saving track-logs from the device (unlike some of the older Garmins), and you can access GPX track-log files directly from the device over a USB connection.  A barometric altimeter is useful, because it will give you more accurate altitude readings (and for this you need to choose the Oregon 300 or better). If you go right to the top of the line, you can actually get the Oregon 550 (Amazon UK / US) with a camera built-in that will geotag your photos for you automatically, however the camera is only 3.2MP.

Amazon UK

Amazon US

Some cameras are slowly becoming available that have an embedded GPS, but they’re few and far between.  If you have an iPhone with GPS - I think you can also persuade the iPhone to geotag your photos; however this post assumes you have a separate camera and GPS.

GeoSetter Screenshot

I’ve tried a number of bits of software over the last few years, but none have come close to the simplicity and flexibility of GeoSetter; and it even works with RAW files!  

GeoSetter has a lot of options - for raw files, I set it to save data in XMP sidecar files; Add location info automatically when assigning map positition; and Add altitude automatically.

The process is fairly straightforward:

  1. Sync clocks: Set the GPS somewhere where it can see the sky, so that it gets a good lock, then display the time.  Set the time on your camera to match the time shown on the GPS.
  2. Take photos: Make sure your GPS is on, has coverage and is and recording a track-log.
  3. Save the track-log and photos: Once you get back to your PC, export the tracklog from your GPS as a GPX file, and save it.  I keep mine in the same folder as I store the photos from a particular trip.
  4. Geotag photos: 
    1. Open GeoSetter, navigate to the folder containing the photos
    2. Select-all (Ctrl-A)
    3. Select Images / Synchronize with GPS data files, Sync with tracks in current directory, then you need to confirm the time-adjustment settings.  I usually ‘use local windows settings’, and just do a quick check of the Additional Time Adjustment section to make sure the camera clock hasn’t drifted.  You can also ‘Use Time Zone’ if you were travelling but you haven’t adjusted your PC’s clock to the remote time zone.
    4. If it worked - then just select Images / Save Changes

From here - you can now upload the images to picasa or flickr, and their location should be recognized automatically.

Or you can choose Images / Export to Google Earth to generate a KMZ file containing the geotagged images.  If you’re going to send the KMZ via email - then it’s best to let GeoSetter re-size the images to something smaller than full-size. 

I usually open the KMZ file up in Google Earth, and import the GPX track-log file from the GPS, so that I can see the path I followed when I was taking the photos.  Using My-Places, you can create a new folder for your trip, then drag both photos and track-log into that folder.  Then you can save the whole combination as a KMZ file (KMZ is important here - because it will embed the photos.  Saving as KML will just save the information along with pointers to the photos on your PC).

I’ll be following up this post with a couple more over the next couple of days, providing info on how to use the altitude your GPS receiver recorded as you were taking the photo, and how best to share geotagged photos online.  Feel free to comment on this post with your tips for geotagging photos.