lveci/nest — pull request #32 by pmar (2014-02-05 16:17:19+00:00)
Title: New method and modifications for correct updating of TPGs in ApplyOrbit

New method and modifications for correct update of the Tie Point Grid's (lat, long, inc, slant_time) in the 'Apply Orbit' operator.

With an initial implementation only lat, long grids were updated, while incidence and slant_time grids were not. Incidence and Slant time grids were transferred from old (source) to new (target) product without any re-computation.

Also there were numerical issues in how (lat, long) grids were updated - in computation of (lat, long), the slant_time from the annotated orbit/product was used, instead of using only the new orbit information in computations - you used 'new' state vectors but with 'old' metadata annotations. This effect would scale with topography and error of the annotated orbits.

ERS1/2 data are most effected - depending on the acquisition date, orbital error, and topography.

It is to be evaluated how much of this error would leak into the actual processing - on some operators it could have a significant impact. On my end few tests with corner reflectors data for Cross Interferometry failed to close, and this is where/how I picked it up.

Please have a look - I think that the math is solid and all tests I run over here are passing now.

There is dependency on jLinda for math, mainly for the orbital stuff, and for the container - in principle it should not be much of a problem to refactor to nest-core if you'd like to avoid any risk of possible circular dependencies.

After merge, in my tree, I'll annotate the 'old' updateTargetProductGEOCoding() with @Depreciated.

Thanks.