Double-precision Geocoding Specification

Double-precision Geocoding Specification

Target release

2.0

Epic

https://senbox.atlassian.net/browse/SNAP-2

Document status

DRAFT

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

#

Title

User Story

Importance

Notes

#

Title

User Story

Importance

Notes

1

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.

 

2

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

 

3

Readers

All readers which create TPGs in particular for storing lat and lon data shall be changed to supprt Float64

 

 

4

Interfaces

Access 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:

Question

Outcome

Question

Outcome

Not Doing