Workflows for GeoTagging Photos
Definition
http://en.wikipedia.org/wiki/GeoTagging
Software-based geocoding (Google Maps/Geosetter et al)
Software-based geocoding could also be nicknamed "poor man's geocoding", because no expensive hardware is needed. Here is the typical workflow:
- The user simply starts a geotagging-aware photo manager (such as the free GeoSetter and enters the place where he took the pictures.
- The photo manager now consults a geographic online service (e.g. Google Maps) via an API, which returns the best matches for the entered place on a map.
- The user can assign this location to one or all photos. Internally the software writes the GPS coordinates of the place to the corresponding EXIF fields and/or stores it in a image database. This numerical approach not only allows to identify each place uniquely, but also enables proximity calculations between the places.
Pro's
- fast (if done on a very "global" level)
- intuitive
- cheap and inobtrusive (no preparations necessary)
Con's
- lacks accuracy (e.g. if you just enter "Vienna", you get the city center coordinates, but your photo might have been taken in some suburb).
- doesn't work well for outdoor photos taken outside of cities and villages
- increase of accuracy (creating a higher number of locations that are more "exact") can become a neverending task.
How to embed in picurl?
We could use a similar approach as in Geosetter (embedded Google Maps, geonames) plus some convenience functions (e.g. enter multiple locations newline-separated in a textarea-Form --> lookup at once)
Hardware-based geocoding (GPS-Loggers)
Contrary to the well known GPS navigation systems used in cars, GPS loggers don't guide you to a certain point, but record your way. This is done by saving the GPS coordinates of your current position in certain time/spatial intervalls. Aside from outdoor sports (cycling, hiking,..) the primary target group for these devices are photographers. Photographers? Yes, because a GPS logger allows them to locate pictures taken somewhere in the wild and/or to sort photos by locations. But as photos and GPS coordinates are stored in different devices, the main difficulty lies in combining these informations.
The workflow for writing GPS information to Photos is as follows:
- Connect the GPS logger to the PC and use gpsbabel to export the recorded data from the logger. You can also use the tool provided by the manufacturer, but usually gpsbabel provides more options and is cross-platform. Usually Google KML or GPX are used as export format.
- (Edit the exported path in a visual map editor to correct errors) - this is necessary if you want to show your photos in a "map context", not for geoclustering them.
- Use some tagging tool to sync the KML/GPX data to your images, e.g. PhotoMapper, or Python-based GPicSync
But why are almost no cameras out there with integrated GPS/Geotagging support?
Due to technical limitations of the GPS system, it is VERY HARD to integrate them into photo cameras.
- Time to operation: The logger has a "booting time" of at least 30 seconds (meaning the time period from turning on the device until it is ready to record coordinates). This delay is mainly caused by the initial search for a GPS signal. So your camera must be constantly turned on to avoid time-consuming "GPS disconnects".
- Antenna position: The logger antenna must always be in an upright position to ensure correct GPS coordinates. A camera is constantly moved to different positions (bag/portrait/landscape), so it's difficult to maintain the quality.
- Flexibility: an "unbundled" logger can be used with different cameras.
Pro's
- Unmatched precision
- Highly scaleable (a lot of photos taken at different positions)
- Workflow can be automatized
Con's
- complex workflow involving several tools
- camera clock has to be synchronized to GPS clock
- GPS loggers don't work inside buildings
- setting a "good" logging intervall is crucial (logging the position every 5 seconds leads to 720 points per hour)
- GPS boot time
GPS Track example
This is the google maps version of a track recorded with my new Holux M-241. It was converted by gpsbabel and shows some problems of gps logs:
- sometimes I seem to work "inside the houses" and not on the street. This is because the buildings have a negative influence on the GPS quality.
- i set the logging intervall to "every 50 meters", so the loggin points are equidistant. Because the points are connected with almost straight lines, my path is a bit irrational.
- At "Baumannstraße" the line suddenly stops. I entered a shop here and as the gps loggers don't work inside buildings, it suddenly stopped working.
Quick test of GPicSync and PhotoMapper
Surprisingly, there are only a few software packages that allow you to transfer GPS data from your logger to your photos:
- GPicSync is written in Python and has a Tk GUI. It uses Exiftool as metadata backend (advantage: many supported formats, disadvantage: sloooow). It does not only write the GPS data to the EXIF headers of your pictures, but can also generate .kml files to display your track in Google Earth or Google Maps. By default, backup copies of your original images are created to prevent data loss in case of a bad metadata write. In our test the processing time for each photo was about 2 seconds - quite slow at first sight, but during this time GPicSync also generated the thumbnails for Google Earth. Unfortunately the .kml was unusable due to markup errors. Nice tool but still needs work.
- Photomapper offers less options (only supports GPS -> EXIF and .kml for Google Earth), but the processing is much faster. It also creates backup copies of your original pictures. It can also display your tracks/photo locations on some low-quality satellite image. Photomapper offers better result control than GPicSync, because you can inspect the proposed GPS coordinates of each picture BEFORE they are written to the EXIF header.
Some general remarks
There are only a few applications in this field and unfortunately I don't know any app that is .xmp based. The disadvantage of directly writing to the EXIF header are the necessary backup copies of the images. Furthermore both apps require you to enter the UTC Offset (necessary for the matching process) - can't this be determined from the system settings?
How to embed to picurl
Integrate gpsbabel (all other functionality could be handled by picurl)
