Double-precision Geocoding Specification

Target release2.0
Epic SNAP-2 - Getting issue details... STATUS
Document statusDRAFT
Document owner

Former user (Deleted)

Designer
Developers
QA

Goals

  • 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.

Before

After

Assumptions

Requirements

#TitleUser StoryImportanceNotes
1Tie 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.

 

2Tie 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

 

3ReadersAll readers which create TPGs in particular for storing lat and lon data shall be changed to supprt Float64  
4InterfacesAccess to tie point grids for the purpose of coordinate positions should be via getPixelDouble or getPixels(double[])  

User interaction and design

Questions

Below is a list of questions to be addressed as a result of this requirements document:

QuestionOutcome

Not Doing