GeoMaxIntSecs description question

Started by lifeofdave, March 10, 2012, 10:05:17 AM

Previous topic - Next topic

lifeofdave

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

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


Phil Harvey

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
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

Phil Harvey

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
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).