Hi Phil
I just wanted to ask for a little clarification over the description of the GeoMaxIntSecs option here: http://www.exiftool.org/geotag.html#Orient (http://www.exiftool.org/geotag.html#Orient)
The GeoMaxIntSecs description states "Geotagging fails if the Geotime value lies between two fixes in the same track which are separated by a number of seconds greater than this." but to me it seems that it doesn't 'fail', it just uses the closest field and interpolation doesn't occur.
In my case I'm working with a log file that looks like this:
$GPRMC,174447,A,5133.516,N,008.886,W,,,190212,,,
$PTNTHPR,220,N,3,N,-1,N,
$GPRMC,174503,A,5133.774,N,009.252,W,,,190212,,,
$PTNTHPR,227,N,-35,N,-1,N,
$GPRMC,174514,A,5133.78,N,009.258,W,,,190212,,,
$PTNTHPR,334,N,8,N,-3,N,
$GPRMC,174516,A,5133.78,N,009.258,W,,,190212,,,
$PTNTHPR,342,N,-31,N,-2,N,
And the corresponding four photo creates times are:
Create Date : 2012:02:19 17:44:47
Create Date : 2012:02:19 17:45:02
Create Date : 2012:02:19 17:45:13
Create Date : 2012:02:19 17:45:15
If I don't set GeoMaxIntSecs then exiftool interpolates the values, including heading, pitch and roll. Whereas if I set GeoMaxIntSecs to 1, exiftool geotags each photo with the closest match, which is good as that's what I'm after in the end.
Does my query make any sense? I'm just asking so I can understand what's going on and avoid any future bugs in a script I'm writing, and not just being pedantic for the sake of it :)
Thanks again for all your hard work.
Dave
Hi Dave,
Yes, what you observed is correct. I should perhaps amend the documentation to explain this.
Currently, if two fixes are separated by more than GeoMaxIntSecs but the fix is less than GeoMaxExtSecs away from the closest fix, then the geotag point is taken as an extrapolation, which is done by simply taking the coordinates of the closest fix.
So in truth, for geotagging to fail the two fixes in the track must have a separation greater than GeoMaxIntSecs, and the point must be further than GeoMaxExtSecs from the nearest fix.
I hope this makes a bit of sense. If so, I'll update the documenation to state this.
- Phil
This is the revised documentation:
GeoMaxIntSecs
Maximum interpolation time in seconds for geotagging. Geotagging is treated
as an extrapolation if the Geotime value lies between two fixes in the same
track which are separated by a number of seconds greater than this.
Otherwise, the coordinates are calculated as a linear interpolation between
the two nearest fixes. Default is 1800.
GeoMaxExtSecs
Maximum extrapolation time in seconds for geotagging. Geotagging fails if
the Geotime value lies outside a GPS track by a number of seconds greater
than this. Otherwise, the coordinates of the nearest fix are taken.
Default is 1800.
Thank you for pointing out this inconsistency.
- Phil