Sunday 1 April 2007

GPS software roundup

Now that the GPS-CS1 works on some (Intel) Macs, I'm starting to get some questions asking how to use the log files to tag/geocode photos.

I'll assume that most people know the general principle - that the idea is to match the date and time a photo was taken with the date and time that a reading was made with the GPS device. Sony supply Windows-only software for this, but there are a few Mac solutions available.

In my opinion, the ideal package will:
  1. Import photos directly from iPhoto. Without this ability, you'll either have to stick to strict photo workflow of geocoding your photos before importing them to iPhoto, or export your photos to a temporary directory to geocode them.
  2. Import the GPS-CS1 files without pre-conversion. You can use GPSBabel or possibly LoadMyTracks (this might be a slicker solution for Intel owners, but I don't have an Intel Mac to try it with) to convert the files to GPX which all software supports. But IMO the ideal package will import standard NMEA files (which is the format used by Sony), cutting out this step.
  3. Allow you to control how photos are matched to GPS readings. There are two issues here. One is that unless you regularly set your camera clock to GMT, you're going to end up with some time difference between the camera clock and GPS timestamp. The other issue is missing GPS readings. Suppose you have two readings an hour apart for whatever reason, and a photo taken somewhere in between those times. You could match it to the nearest point. You could match it to a point on a straight line between the two. You could decide that you've moved too far between the two and that unfortunately it isn't sensible to try to match this photo. But can you get your software to agree with you?
  4. Provide some kind of visual feedback to check that it worked - a point on Google Maps/Earth, the name of the country and nearest city from a geographic database... so long as you have some means that works before committing your changes.
  5. Have bonus features, e.g. export to Google Earth. Not an essential and in some cases you might prefer to use something like iPhotoToGoogleEarth anyway, because it lets you build your KMZ file based on however you choose to select photos in iPhoto, instead of using the photo set you just tagged.
So that's what I'm looking for (feel free to suggest your own criteria) - how do the packages out there stack up against my list?

GPSPhotoLinker

GPSPhotoLinker is the first package I tried. It's free but donations towards future development are appreciated. It has 3 modes - most usefully Standard (which for a selected photo shows you the readings taken before and after the photo was taken and the time weighted average between the two) and Batch (which geocodes many photos in one operation).


  1. Can't import photos from iPhoto - you must geocode before importing or export from iPhoto and re-import.
  2. Can't import NMEA files - you must convert to GPX first.
  3. This is GPSPhotoLinker's real strength - it gives you more control over the matching process than anything else out there. The Standard mode which works on individual photos gives you a choice of the preceding track point, the next track point, or a time weighted average between them. That is, assuming you were travelling in a straight line at constant speed between the two points, where would you have been at the precise moment of taking the photo (assuming you have set the time zone in the application so that the camera and GPS clocks were synced).
    In batch mode you can't make this choice one by one for each photo, but you can choose the nearest point or an average for all photos in the batch - and you can sanity check it by limiting the matching by distance and/or time. For example, only match if the photo is between points no more than 100 metres apart, or within an hour of the nearest point. You might have been on a quick helicopter trip between points, with your GPS unit switched off and covering a lot of ground and taking a photo from the air somewhere on the journey. Does it make sense to match it to your start or end destination (especially with a helicopter sightseeing flight where these will probably be the same helipad)? Probably not. You'll match fewer photos during batch mode using these controls, but you'll make fewer inaccurate matches.
  4. For any point there's a button to link to Google Maps in your browser. It isn't the slickest method out there but it works.
  5. You don't get any bonus features, but what it does it does well.

PhotoGPSEditor

I've only recently tried out PhotoGPSEditor. This is free with a suggested donation or payment via TrialPay. There are two standout features here which make it ideal for the less techie user. This is the only package I've seen so far that reads GPS-CS1 files without conversion, and it has a friendly wizard which takes you step by step through the geocoding process (more advanced users can turn if off.)


  1. Can't import photos from iPhoto - geocode them first.
  2. The only package that imports Sony GPS-CS1 (NMEA) files without pre-conversion.
  3. There are nice features for working out the time difference between your photos and your GPS readings. You can enter the difference directly if you know it, or if you know the precise location a certain photo was taken and can find it on a map, the software can work out the time difference from that initial matched photo. But if you have gaps in your GPS data then it tries a bit too hard to make the photos match anyway - you might want to work on small batches rather than do all your photos in one go, or you might get some strange results.
  4. Google Maps appears inside the application for your feedback - very nice.
  5. The wizard is a great feature for users who just want to get results fast, without having to to get too technical.
HoudahGeo

HoudahGeo is a new product currently with a free beta (hurry as this beta only works until April 23rd). It has a lot of potential and I encourage people to download and try the beta, and post to the forum Houdah Software have set up for it with suggestions. There are limitations and if this is still in development and likely to be a paid for product, then there could be an opportunity to improve it.


  1. This works beautifully with iPhoto. The iPhoto import tool gives you fast access to your iPhoto library and all your albums and with a 5x5 photo window it works better than most iLife applications. The name and comments fields from iPhoto are also imported. But you can import by file too.
  2. GPX import only - and one file at a time. The latter is a serious limitation that makes this tedious to use at the moment.
  3. You get to set the time offset when you import images but that's the only control you have over how it matches images and GPS readings.
  4. You can see where the GPS reading maps to by choosing the "Geocode Selection Using A Map" feature. This allows you to change the location or set a location if you have no GPS coordinates.
  5. There are a couple of nice extras - as mentioned you can geocode photos without GPS data using a map. There are other dedicated applications that do this but having both methods in one package is quite useful.
    The other bonus feature is the export to Google Earth, which works really well - see the screenshot for an example.

In conclusion, the perfect solution doesn't yet exist. But I recommend GPSPhotoLinker for getting accurate results (with some patience and care) and PhotoGPSEditor for less technical users who want quick results. But keep an eye on HoudahGeo.

Anyone else want to tell us about their own favourite software?

5 comments:

Anonymous said...

LoadMyTracks works fine and can convert the CS1 files to either GPX or KML format. I also like HoudahGeo, which really does look like it could be a great app.

Stephen said...

Thanks for the info Mark.

Can LoadMyTracks convert the CS1 files to a single, merged GPX file? HoudahGeo only loads one GPX file at a time.

Mark Taylor said...

I have been using LoadMyTracks to convert the GPS-CS1 log files into KML files to be used in Google Earth. You only have the ability to "Acquire" new data from the CS1 using LoadMyTracks. When you do this a single "track" is created in the KML file. This includes as many sub-"tracks" as there are log files on the CS1. However when displayed in GE each has a different colour - so are easily distinguishable.. So in a sense the logs are merged, however you have no control of which to keep or delete before you get into GE. One issue remains; it appears that it is not possible to manually delete the log files from the CS1, as you do not have sufficient privileges. Even when using an Admin account I could not delete the log files from the CS1. In the end I used the Sony application (I can't remember its name) running in a Vista virtual PC on my MacBook Pro, this appears to delete the log files once they are imported.

Anonymous said...

HoudahGeo 1.0 (to be released this weekend) will support NMEA files as produced by the CS1.

The catch being that I hear there are problems mounting the CS1 on PPC Macs. I hope for the PPC users to be able to access the logs using LoadMyTracks.

Unknown said...

Hi. gpx2kml.com is also worth trying and it converts gpx to kml (and vice versa) file to get tracks, routes or way points, depending on your needs. It's free, simple and mo installation requested.