The following Java interfaces and classes currently operate on 32-bit floats: GeoCoding, GeoPos, PixelPos. Derived classes such as TiePointGeoCoding also perform their computations using 32-bit floats, while others, e.g. PixelGeoCoding use 64-bit internally.
Many hires applications require 64-bit precision both for internal computation and in the final delivery of results.
Background and strategic fit
With S1TBX, this is a problem for high res TerraSAR-X data. In particular when running the SAR Simulation it produces a number of artifacts in the image.
Tie point interpolation
Part of the problem is caused by the unit (lat lon in degrees, slant range time in seconds) but this should probably stay as is.
At high resolutions (< 1m), neighbouring pixels end up having the same value.
Tie Point Grids and DEMs need to be interpolated to the resolution of the data product.
Interpolators have already been made 64-bit. Now the resulting value needs to be saved as 64-bit.
Tie point writing/reading
When writing tie point grids a datatype field specifies if it is Float32 or Float64
When reading, the reader should use this field to first determine the type and then read the data accordingly
All readers which create TPGs in particular for storing lat and lon data shall be changed to supprt Float64
Access to tie point grids for the purpose of coordinate positions should be via getPixelDouble or getPixels(double)
User interaction and design
Below is a list of questions to be addressed as a result of this requirements document: