Aug 15, 2010

Lumix DMC-TZ10

Since some weeks I own a Lumix DMC-TZ10 (US name: DMC-ZS7). The camera has a built-in GPS-module, but...
  • The GPS is quite slow, it takes several minutes to get a fresh location info
  • The GPS is weak, it takes a clear sky view to get any location info. It does not work indoors. It works sometimes close to a window.
  • If the camera has now fresh location info, it just puts the last location info it got into the EXIF metadata headers in the pictures.
I went to a hiking trip and took many pictures (ca. 600). How could I find out the pictures with correct GPS data and the wrong ones? How could I automatically fix the wrong ones?

Algorithm:
  1. Sort pictures by EXIF:DateTimeOriginal.
  2. Cluster pictures by EXIF:GPS-Latitude and EXIF:GPS-Longitude. The earliest picture (according to EXIF:DateTimeOriginal) is the only one with correct GPS info.
  3. Let A be the location of the first picture in a cluster. Let B be the location of the first picture in the following (by DateTimeOriginal) cluster. Move each picture C in the first cluster (except A) from A towards B on the line AB. How far to move? Compute the time difference between A and C and normalise by time difference A to B. This yields a factor between 0 and 1 and gives the percentage how far to move C. Moving is simple:  C.lat = A.lat + factor * (B.lat - A.lat), similar for longitude. Yes, this assumes a constant moving speed between two GPS located photos which in reality is not really true.
If you are interesed in more details about the Java code or the resulting GPX files (original and fixed), just email me.

No comments:

Post a Comment