Geocoding Your Photos with Lightroom and HoudahGeo

Eric Scouten

I’m kind of a metadata addict. And a map junkie. So it should be no surprise that I’ve been waiting for a long time for a program \to help me mark up my photos with the exact location of capture. I was very happy to learn this spring of a new application called HoudahGeo. Most of the geocoding apps I’ve seen before only write to JPEG files. HoudahGeo actually works directly on PSD and DNG files, among others, meaning I can actually mark up my master files instead of a derivative.


HoudahGeo is available only for Mac OS, and I’m not aware of any plans to make a Windows version available. I haven’t looked for a similar Windows application, but the tips below regarding how it would interact with Lightroom should apply if so. (Please add a comment if you’re aware of a good counterpart for Windows.)

In the Field

If you have a hand-held GPS unit that you can carry with you, the main thing you need to be concerned with is ensuring that your GPS and camera clocks are in sync with each other. Spend the time to get your camera within a minute or less of the GPS clock. If it’s not the same time zone, that’s OK; you can take care of that later.

And, of course, you need to have your GPS running while you’re shooting. I keep mine permanently tethered to the outside of my camera backpack. When I’m packing, I simply put the GPS in an outside pocket, leaving the tether cord in place. When I take the camera out of the pack to start shooting, I pull the GPS out, turn it on, and run its tether through the top handle on my camera bag so it’s not dangling. As long as the camera backpack stays on my back, I’m logging my location continuously.

Downloading Data

How you download data will, of course, be dependent on the make and model of your GPS unit and the software that comes with it. HoudahGeo claims to be able to read directly from the GPS unit. I like to keep the original GPS track log files, so I haven’t tried this feature myself. What is important is that you wind up with a GPX file. GPX is a standard interchange format for GPS marker data; you should be able to save to that format from whatever software comes with your GPS unit. The MapSource software that comes with my Garmin GPS can generate GPX files through its “Save As” menu item.

When you’re downloading data from your GPS, you should take a moment to look for bogus data in your track logs. Whenever you move with your GPS unit turned off (even a short distance), it will generate a lot of noise when you first turn it on again. (For example, see this rather improbable traversal of 105 miles in northern Minnesota that I supposedly accomplished in 30 seconds.) HoudahGeo isn’t able to sort out this errant data, so any photos taken shortly before or after turning on your GPS might get tagged with wildly incorrect locations. Take the time to use your GPS software to delete these incorrect data points.


Once you have a cleaned up GPX file, you’re ready to go!

A Caution

I generally convert all of my camera raw files to DNG as part of my import workflow. I’ve only occasionally used HG with original RAW files, and the results were not quite what I had hoped. If possible, I recommend using PSD, JPEG, and DNG files instead; I’ve done thousands of these files successfully.

Geocoding in HoudahGeo

At this point, you should open both HoudahGeo and Lightroom. In Lightroom, choose one or more photos that you are ready to tag. Make sure to exclude virtual copies since HoudahGeo can’t do anything with them. (To exclude virtual copies, click on the negative strip icon just just above the filmstrip at the bottom of the Library window as shown below.)


Unfortunately, any geocoding you do in HoudahGeo won’t get propagated to existing virtual copies in your library. This is a known bug in Lightroom. Any virtual copies you create after geocoding will retain this information.

Drag these photos from Lightroom into HoudahGeo. After a brief pause, they should appear in your HoudahGeo project window. You may also be asked to specify the time zone for the camera’s capture dates. Make sure to leave these same photos selected in Lightroom; you’ll need this selection later in the process.

If you have a GPX file, now is the time to load it in to HoudahGeo. Click on the waypoint button (highlighted below).


Once you’ve done that, HoudahGeo should automatically match the track log data with your camera’s capture time stamps. Assuming the camera and GPS were in sync (as described above), these should be fairly accurate, but I recommend that you always spot-check a few of the locations. Select a single photo in the list and click on the down-arrow icon just to the right of the waypoint button. HoudahGeo will bring up a map with the location it has assigned to this photo. Verify that this location is correct. If not, you may need to adjust the time zone or the camera clock error setting in HoudahGeo.

If you don’t have a GPX file, or if the file has gaps (i.e. you were shooting with the GPS turned off or in an area with poor coverage), you can also use this map button (the rightmost button in the yellow group) to manually assign locations.

Once you are satisfied that your photos have accurate locations, it’s time to save the changes back to the files. Click on the first button in the green tab (with the tooltip “Write EXIF Tags”). Be sure to click on the checkbox labeled “Work on original images.” Otherwise, Lightroom won’t see the changes you’ve made.


At this point, you’re done in HoudahGeo. It’s time to go back to Lightroom and make sure it sees the changes.

Bringing Lightroom Up to Date

Back in Lightroom, the same photos should still be selected.

The first thing you should do is select Save Metadata to File from the Metadata menu. Yes, I know this seems odd. It seems like it would overwrite the new metadata you just created in HoudahGeo, but it doesn’t. This command causes Lightroom to update the XMP in the file, but not the EXIF data. Geocoding information is stored in EXIF. What you’re doing here is ensuring that the XMP in the file reflects any changes you’ve made in Lightroom.

Even if you think your XMP is up to date, I still recommend that you perform this step. I have seen cases where keywords will be read back incorrectly, especially in JPEG files containing keywords with letters outside the US ASCII set (typically letters with accents). Saving will help prevent this problem.

Wait for this operation to finish, then select Read Metadata from File with the same photos still selected. Lightroom will now read back the same metadata you’ve just written to the files, and also pick up the updated EXIF metadata including the geocoding. You can able to see this new metadata if you have the Metadata panel set to the EXIF, Location, or All tag sets. If you like, you can verify the location by clicking on the right-arrow button to the right of the GPS location (highlighted below). This will bring up a map with the location.


Finally, I recommend that you assign a keyword to each photo that you’ve geotagged so you can keep track of what you’ve done and what hasn’t yet been tagged. See my previous article on worklist keywords to help you remember what you have and haven’t tagged. Here are the keywords I use in Lightroom:


Happy geocoding!

19 Responses to Geocoding Your Photos with Lightroom and HoudahGeo

  1. Frank Meier says:

    For those not angry using a command line tool and change a line of code: try ( Works on Mac, Windows and Unices. DNG works as well after altering the proper line in the code (see “Currently supported image file formats” on the website to alter the specified line of code).

  2. Hi Eric,If you’re going to sync the camera to the GPS clock, it makes sense to get it as correct as possible, at least to within the track-point interval. I geoencode all my photos using a 1-second interval in my track logs, but even at that, I find that I can still easily move in that one second farther than the GPS accuracy limits. If my camera clock was a few seconds off, the possible skew would be all the larger (and all the more unacceptable to a geoencoding freak like me).I use a GPS unit that writes tracklogs to an SD card, which means that I never have to worry about it running out of tracklog space. After having used a unit with a tiny 10,000-point limit, the freedom to record a track at 1-second intervals for days on end is wonderful.(I wrote about that unit here: )I’ve been wishing for built-in geoencoding in Lightroom for ages. Any idea whether (when?) we might see that?

  3. Armin Maerz says:

    Hi!Be careful: Garmin saves only the “Active Log” with a time stamp. “Saved Logs” only contain the tracklog information – no time information!I use RoboGeo as a windows application. It works fine with all sorts of pictures, including RAW-files.

  4. Jauder Ho says:

    A windows equivalent to Houdah Geo would be something like Breeze Systems Downloader Pro.

  5. Hi Eric. Long time no see…I use a variety of Garmin and Magellan GPSes for geocaching, hiking, and navigation. Some thoughts to go along with your excellent tutorial…* MapSource doesn’t like working in GPX as a native format. Catch yourself when you save that it doesn’t try to put the data in their proprietary GDB (not debugger) format.* There is a tool on the google code site called GPicSync that does a tolerably decent job of geocoding on DNGs and various RAW formats, given the price. It runs on Windows. It uses EXIFTool on the back-end to munge the source file. It even managed to work out the differences in the clock/TZ that I had between my camera and GPS unit.* There is a code project called GPSBabel for converting file formats. It’s been around for years and is quite stable.Happy hiking!

  6. Alan Ingham says:

    I’m also a fan of ROBOGeo and in fact never use track logs of GPX files and the like. My preferred method is to make a ‘Waypoint’ in my Garmin GPS (which is more accurate) at the location I take an image. Back on the computer my workflow is to initially convert all RAW (CR2) files to DNG using the stand alone Adobe DNG converter. Once the files are converted I open ROBOGeo, bring in all the DNG’s, import the ‘Waypoints’ from the GPS and apply the relevant ‘Waypoint’ to the DNG file. Closing ROBOGeo I then open Lightroom and Import the DNG files as normal – the coordinates now show in the metadata panel as expected. With ROBOGeo you can also apply other metadata info such as copyright, artist etc etc meaning you don’t then have to apply an Import preset in Lightroom with this data. This makes ROBOGeo a one stop shop and speeds up workflow as well.

  7. Eric Bier says:

    I am using RoboGeo also. No problems tagging DNGs, and the tags show up in Lightroom where you can click and see the waypoint on a map.If you sync your GPS (Garmin E-Trek,see RoboGeo site for other GPSs) and your camera clock, the pictures can be automatically tagged according to the time they were taken.RoboGeo has mostly eliminated the tedious task of GeoTagging. It interfaces with Google Earth making it very easy to adjust the postion of tags.I then create KMZ files which open in GE and show pictures when you click on the tag. You can also post the kmz to the Google Community or email it for others to see your pictures and where you took them.

  8. Sean says:

    There are lots of tools that do this and some are free. The 800 pound gorilla and the one that has been around the longest is RoboGEO.

  9. kheops says:

    a (free) great app i’m using under win xp is gpicsync works fine with raw from my 5d and the gps field in lightroom shows up

  10. Peter Davis says:

    FYI, as Jeffrey Friedl noted, Garmin GPS units strip timestamps from saved tracklogs.*BUT*, if you have a unit (like the 60csx) that can store tracks to the SD or microSD card, then those saved tracks *will* have timestamp and altitude information preserved.

  11. Thomas says:

    Another fine freeware program is GeoSetter (for Windows) to tag raw files. Lot of features…

  12. Trevor Allen says:

    Love the blog.I have been looking everywhere – what is the photo import limit for Lightroom and how can I increase it. I shoot about 1500 photos at a wedding and would love to open them all in one folder.Thanks

  13. Brian Reyman says:

    Awesome resource, thanks! I especiallly like the reference to gpicsync. I’ll check it out. The following is a resource on ExifTool use:

  14. Raphael says:

    I prefer to use another application for geotagging my photos, it’s called Geophoto. It has a cleaner interface and the new “match photos with GPS track” feature is really cool.

  15. Kent Daiber says:

    Does anyone have any thoughts on a problem that I am having (I am brand new to HoudahGeo): I exported a bunch of DNGs into HG. The metadata time stamps on those images was correct. However, in HG they read 4 hours early. I converted one of the DNGs to jpeg, and its timestamp was correct in HG. HG support tells me that some piece of software, not their own, is applying a Time Zone Offset without adjusting “Date/Time Original”. I can’t even find a Time Zone Offset option in Lightroom, let alone apply one.Any help would be greatly appreciated; none of you above have seemed to have any trouble with DNGs.

  16. Peter Coffey says:

    one useful tip I saw was to take a photo of your GPS displaying the time during your shootl. That way you have a visible indicator of the GPS time, and the metadata will contain the camera time. Most geotagging software will have a means of adjusting the photos time/date by an offset if needed.

  17. Eric Scouten says:

    Hey Peter, that’s a great idea!

  18. Eric says:

    You mention that when you tried using Houdahgeo, Lightroom, and native CR2 files, you had problems. I am wondering what these problems were, and what your thoughts are on attempting this as part of my regular workflow.I might just switch to DNG, but I was curious as to what the problems were when dealing with .CR2.. Was EXIF data getting erased when you made image adjustments or something?Thanks!Eric

  19. Nate says:

    Is there any way to change the GPS format to decimal?When I output my photos to a web gallery, the default format (degrees, minutes, seconds) makes it impossible to dynamically create a link to Google Maps due to the quotes at the end of the latitude parameter (due to treating the ” as the end of the URL rather than the notation for second).Thanks,Nate.