Thursday, April 05, 2007

Geotagging on MacOSX

This other post already covered a way for Windows users to go about geotagging photos. The idea is to write your position data to the JPEG header of a given photo. This is done by updating its EXIF header with dedicated packages. I first covered Geotagging and Exif headers here.

Until cameras equipped with GPS become affordable you can get the job done by combining the track log from a GPS receiver with software that can write the GPS coordinates (latitude, longitude, altitude) to the photos themselves.

For MacOS (something that I could've been using for a much longer time now if somehow one could just know better) there is GPSPhotoLinker and the useful port of GPSBabel+.

Hike Away

In the example below, I tracked a hike at Castle Rock State Park off Hwy 35, through Skyline Blvd (or from Hwy 9 up from Boulder Creek). You can see part of the trail at this page of EveryTrail. Notice that if you go there during weekdays chances are that you will hear shots (more like explosions) from a close by gun range for most of the day.

But if you got your day-off bring an iPod or something else to cover the noise and its echo rolling through the mountain range. I wish these guys could be forced into using silencers but for kids that didn't outgrow their love for guns that seems to be the sole reason to play this game.


But I digress... I forgot to turn the tracking on (but I did sync the camera and GPS receiver clocks this time) so the log only started from Goat Rock onwards. With the Magellan Explorer you only need to connect its USB cable and the storage area shows up as a removable drive.

Notice that you will first need to save the Active Track in the Magellan. Also after making a copy delete it from the receiver, it takes a really long time to load the existing tracks after you have half a dozen of them laying around.

GPSBabel+ let you select from a whole range of devices (that you can have connected) or actual log files to a full set of output formats including .gpx (GPX XML) which I chose in this case. At this point you can grab the photos you took at the same time you had the GPS tracklog being recorded.

Exif Headers

With GPSPhotoLinker you can perform a batch processing of photos by having it reading data from the .gpx file and matching the timestamp of the photo with the closest position you had at or around that same time. You can also remove the GPS data from photos.

You can adjust the time of the photos in case they didn't quite sync up as expected. In this case pay attention to the date/time format used in the .gpx file:

<trkpt lat="37.228266667" lon="-122.108016667"></trkpt>
<ele><trkpt lat="37.228266667" lon="-122.108016667">

Notice the Z at the end of the timestamp: 19:41:53.910Z

That indicates that this is UTC time or Greenwich based so you need to adjust it based on your timezone. For PDT or Pacific Daylight Savings this means subtract 7 from it which matches the 14:41 pm time in the camera.

In fact, the current version of iPhoto shows (under Show Info) the latitude and longitude data (but altitude didn't match what I had set to with GPSPhotoLinker, it always shows 1).

Panoramio & Google Earth

After loading the .gpx file, the photos you want to tag and adjusting or not the time in the photos you can choose Batch mode to have all photos processed at once.

Now you need to pick a site to upload your pictures and show them off. Panoramio has a snappy interface that allows you to write descriptions while pictures are being uploaded in background. Later you will be able to see the geotagged photos right at Google Earth.

Geotagging Made Easy

NXT Software, a Philips company announced the availability of chipsets including GPS receivers with geotagging capabilities for digital cameras. I posted about the cameras available currently in the market but they are a bit too expensive at this point. In a couple of quarters they will sure come down in price and the manual tagging of photos hopefully won't be necessary anymore.

No comments: