Managing photographic GPS logs


I usually have all my photos GPS-encoded (“geocoded”) where possible. All my images end up in Lightroom, and when exporting images from there I can control which get the GPS data stripped (e.g. Lightroom has “zones” you can mark as private). By having the location data in the Lightroom catalog, I can use the Maps functions to find nearby photos (even taken years apart) or remind myself exactly where a shot was, and through “reverse-geocoding” I can automatically fill in a lot of textual location information.

Recording the data all the time and then deciding when to use it has been a lot more productive than later wishing I had recorded the location of a few special images.

2013 Botswana Odyssey participants L1_019292

L1_019291If the camera has an internal GPS I usually have it turned on. Thus photographs from my iPhone, EOS 7D Mark II, and Sony HDR-AS30V usually have location information. Some of those devices even record which direction the camera was pointing. Also, by having the GPS set to auto-update the camera’s clock that helps sort my photos into order after they’re all imported into Lightroom.

However the GPS does consume some battery power, and on many cameras it remains on even if the camera itself is turned off. So at the end of each day I disable the GPS in the camera’s menu to save battery. Unfortunately I don’t always remember to turn it on again before starting work the next day! Even after it’s turned on, the GPS can take a while to lock onto the satellites and get a fix (more on this in another article) which means that some photos end up without location data.

I also have some cameras without an internal GPS, and they get no location info. For example my EOS 5D Mark III and EOS M2 (which I use for infrared photography) and various earlier cameras. Some cameras support an external GPS unit (e.g. the Canon GP-E2 works with both of those as well as 14 other EOS models, and Nikon also has some external GPS units) but I prefer to make do without that extra gadget taking up room and getting caught on things around the cameras.

So, by the end of a trip I’ll have a bunch of photos with GPS data, and a bunch without. But that’s not the end of the story! I can usually apply GPS coordinates to almost all the photographs.


Many GPS devices allow you to record a trail (a “log” or “track”) as you move around, and when this data is put into “GPX” format this can be used to update those images without locations. As long as the GPS was in approximately the same location as the camera, by using the timestamp on each photo we can find the best matching location from the log. Lightroom’s Map module has a function to do this, but I much prefer the functions provided by Jeffrey Friedl’s Geocoding Support plugin.

A2_031781For a long time I’ve used a Garmin eTrex Legend HCX to record trails. I have it set to continually record to the internal microSD card whenever the GPS is on, and each day’s data is recorded into a separate GPX file. My EOS 7D Mark II is also set to record a trail whenever the GPS is turned on. The Sony AS30V “ActionCam” records a trail while videos are being recorded. All these cameras put the data into .LOG files, which is also used by the new Olympus TG-4 waterproof compact. These “NMEA” format files can easily be converted to GPX using software such as GPSBabel.

So I may have multiple GPS logs which I can use to tag some of the remaining photos without locations. I use these through a process of elimination. First the logs from devices I know were with me. If I have a log from a GPS that was in my pocket during an outing (for example a Zodiac excursion or a landing on an Antarctic expedition), it can be used to apply locations to all the photographs taken during that outing that don’t already have location data. If there were gaps in that log file and there are still photos without locations, I may be able to use the log from a camera which may have been nearby in a bag. Gradually I will have fewer and fewer photos without locations.

But I will usually still end up with some images without location data. For example those taken inside the steel structure of a ship where GPS reception is poor/nonexistent, or those taken from the ship’s deck after racing outside from your warm cabin (and before a fix has been achieved). In a moving ship the last recorded location can become obsolete quickly. To cope with these I try to have a log recorded for the whole voyage.

Europe, Norway L1_019301

Sometimes the bridge crew is able to dump out a log of the ship’s movements at the end of the voyage, but otherwise I have a small GPS (a Qstarz BT-1000) which I leave running through the whole voyage. Sometimes I can get it hooked up to a power point, but on some voyages I need to change the battery every day or two. On vehicle-based safaris in places like Africa I try to have one GPS fixed in each vehicle.

These whole-trip logs can be used to attach approximate location data to the remaining images, and they can also be used to draw cute maps in Google Earth such as this map of our 2013 Botswana LuminOdyssey.


Managing all these GPS log files doesn’t actually complicate life much. I’ve set up various bits of automation, so that during my card downloads the log files get copied into a “gps” folder tree beside my images (where they get backed up as part of my normal backup process). All the .LOG files are automatically converted into GPX format, and within that folder tree they’re arranged in year/month/week/day folders in the same way as my images (based on the first date in each log), with the names including the device that recorded the log. This makes finding the right file(s) easy later.

With that automation in place, all I need to do (other than downloading the cards which I do anyway to get my images backed up) is on some cameras (e.g. the 7D Mark II and the TG-4) first go into the menus and tell the camera to transfer the log from the internal memory onto one of the memory cards.
And remember to turn the GPS logging on at the start of each day!

Leave a Reply