This section describes different software to extract GPS coordinates from track logs and insert into various images. (Status as of Jan 2008). Caveat: Your mileage will vary. This review is quite cursory - if something seemed to not have the features I was looking for, or if it seemed too much work, then did not put much effort into getting a thorough review. I am happy to fix any inaccuracies you point out. (contact via the post on the XnView forums).
From my point of view, criteria were based on the fact that I have several months of images and tracklogs from drives and walking. I wanted to process all with minimum of effort. Ideally I wanted to have a folder with a bunch of tracklogs and a folder with a bunch of images, and to just point the program at them and say "go". First problem, apparently no programs that I loooked at read Garmins binary format, and instead need text files - with Garmin's XML-based gpx format being most common.
The test set was 10 jpegs and a CR2 file from a Canon 350D, some were originals, some resaved by Photoshop. There were 7MB of track files in gpx format from a Garmin 60CSx. Also a few Garmin gdb files. One image was matched only by the gdb file and some images were matched by duplicated gdb and gpx files.
| Program | formats accepted | select how many files in folder1 | timezone offset | time correction | create KML/Z file | retains Makernotes | cost (private use) | platform | |||
|---|---|---|---|---|---|---|---|---|---|---|---|
| image | metadata | gps data2 | image | gps data | |||||||
| GPicSync | jpeg, cr2, tiff | exif | gpx, nmea | any | 1 | y | n | y | y | free | ms-win |
| kml track only for most recent pass. large trackfiles fail to display in Google Earth. Backs up original images (even if unchanged) but it is smart enough not to overwrite backups if a second pass is made (e.g. using a different gpx file). | |||||||||||
| GeoSetter | jpeg, tiff, many raw | exif, xmp (if present) | many (not gdb) | any | all | y | y | y | y | free | ms-win |
| running it gives IE script error (non-fatal). Very slow processing multiple GPX files. Can export to GE. Exports all matched tracks to GE, even if only one image selected. One image gave wrong coords (taken in gap between two tracks in gpx file, but interpolation was nonsensical - close but wrong by a few km.) Many of these deficiencies were fixed soon after I wrote this. | |||||||||||
| Copix PhotoMapper | jpeg | exif | gpx, nmea + others | any | 1 | y | y | y | y | free OS | ms-win |
| mouse icon stays permanently "busy". Narrow time window - not adjustable. can load multiple gpx files sequentially. Writes null lat/long entry into all files that don't match. | |||||||||||
| OziPhotoTool | jpeg | none | plt | any | any | y | y | y | n/a | free-ish | all (with Java) |
| free version limited to 5 images. delicate in operation (liable to fall over). If you don't select "make copies" then no image is changed. Copies have watermark stamped - no exif lat/long data. | |||||||||||
| PixGPS | jpeg, tiff | exif | gpx | 1-5 | any | y | y | y | y | shareware | ms-win |
| similar to GeoSetter, but much faster reading gpx files. Only saves 5 images in a folder. overwrites backup copies if you click again. Altitude always written as zero. Some files out of range have null lat/long recorded, others are left untouched. interpolation between tracks OK (some good, some eccentric). Will sometimes identify coords in image, but never write the value to the file. | |||||||||||
| gpsPhoto.pl | jpeg nef cr2 crw | exif, iptc | gpx | any | any | y | y | y | y | free, OS | any (with Perl) |
| command line only, most capable, although the old version of the Exiftool perl package (from activestate repository) exited when given a .CR2 file. | |||||||||||
| RoboGEO | many | exif | gpx, plt, dnr?, nmea | any | 1* | y | y | y | y | 40USD | ms-win |
| demo inserts inaccurate info (1 to 2 km); can import georef in many ways. Interpolates between 2 tracks in same gpx file only after setting non-default option. Can accumulate geotags by reading successive gpx files. *Can select all, but it fails dismally. It seems to have trouble if tracks on one GPX file are stored out of sequence. | |||||||||||
| locr | jpeg | exif | nmea | ? | 1 | ? | ? | ? | ? | free | ms-win |
| requires .net compact framework. This summary is only based on user-manual. | |||||||||||
| GPSed Photo | jpeg | - | - | ? | ? | ? | ? | ? | ? | free | ms-win |
| requires some web authentication to do anything, so I uninstalled it. | |||||||||||
| GeoIPTC | jpeg, tiff | exif+iptc | none | any | n/a | n/a | n/a | ? | ? | shareware | ms-win |
| It does not use gps tracklogs, but instead uses IPTC location info plus web services to infer lat/long - useless for wilderness. | |||||||||||
My tracks were from a Garmin unit, which always starts a new track whenever power is disrupted, and I tended to split driving and walking tracks, even into different files sometimes. As a result of this, tracks in one file might come (in time) between two tracks in another file. Another issue that might have caused problems with some programs is that Garmin software stores tracks in the gpx file in an order sorted alphabetically by name. Initially, the automatic naming causes this to result in tracks stored also in time sequence, but once tracks are renamed, the ordering is not in time sequence.
I get the impression that none of the programs are fully able to handle this depth of disorganisation in the gpx tracklogs. The result of all this is that no software fully suits my requirements, and I will need to artificially join all tracks recorded in a day into a single track to make sure I get sensible coordinates into the image.
1For number of files selectable:
2For converting from other gps formats, use GPSBabel.