I’m a little obsessive about aggregating information in reusable ways. Like everyone else, I’ve accumulated many digital photos on my hard drive. Many of these have geographic associations that are important, useful, or just interesting (to me anyways) — like photos of my field work in the Amazon basin 10 years ago. So for a long time I’ve been reading blogs and articles about how to “georeference” (add geographic coordinates) photos, and how to do it in such a way that they are not caged in a specific software or a photo sharing site (Flickr, Picasa, whatever). Ok, saying “georeference” rather than “geotag” — as the cool cats do — gives away my background in stodgy GIS.
Standardized metadata (documentation) is the way to go. For photos, that’s EXIF metadata (actually, there are other, overlapping photo metadata standards; but I digress). Embedding the latitude & longtitude and other information in the photo itself in an open standard accessible to and used by a lot of software ensures that this information is not separated and lost from the actual data (the photo!). Besides, most digital cameras already embed camera and shot information (date and time, aperture, camera model) into the JPEG files using EXIF metadata.
Anyways. I’ve tried a variety of applications and always found a limitation: the embedded coordinates were a bit corrupted (not openly readable), online photo sharing sites forced you to geotag photos only within their sandbox (Flickr, which has a nice drag-and-drop map tool), the application didn’t give you fine control over the location, etc. Leszek Pawlowicz’s Free Geography Tools blog has been carrying a great series of articles about free geotagging software (some open source, some not). Leszek nailed it last December, and the magic bullet (at least on Windows) is GeoSetter. GeoSetter is a free software that uses Google Maps to let you select a location and attach it to photos on your hard drive using correctly applied standards (EXIF, etc). You can associate the same location to multiple photos easily, then shift individual photos; zoom to all geotagged photos; synchronize GPS tracks with photos (if the time stamps on the photos are accurate!), etc.
Read the blog post, download GeoSetter, and try it out. BTW, GeoSetter takes advantage of several open source libraries, including the terrific ExifTool.
So now I’ve painstakingly geotagged some photos on my hard drive. I want to share them with friends and the world, without re-doing this work. I use Flickr. First configure your Flickr account to read EXIF locations as you upload photos. Actually, that’s it, upload away! Flickr lets you export photos into KML (originally used by Google Earth, now becoming a de-facto standard). But my next annoyance was that Flickr can’t export a KML file or geofeed from a photo “set”. Open API’s and ingenious outsiders to the rescue. Last August someone wrote a small online application that lets you enter your Flickr photo set id, and get a KML with photo thumbnails and a number of nifty options. The code is in PHP and is also open source and freely available (I read about this on the Ogle Earth blog).
Life is good. Geotag my photos easily, locally, on my computer. Do whatever I want with them there (I’m thinking of writing a Python script to read the EXIF metadata and spit out GIS shape file; or find if someone has done it already). Load them to Flickr and have the EXIF coordinates read automatically. Share with friends and the world through your plain photo pages, tags, or maps. Spit out to KML or geofeeds from Flick sets, for viewing on Google Earth or other applications. Integrate with related information, or watch as others take advantage of your Flickr photos.
And that’s my first blog post (whew)!