Support multi-size products in GPF

Target release6.0
Epic
Document status
DRAFT
Document owner
Designer
Developers
QA

Goals

  • Facilitate the use of GPF to make the processing of multisize products as simple as for single-size products
  • Extend multisize reading and writing to other formats than DIMAP
  • Adapting operators that do not support multisize products to do so

Background and strategic fit

The use of the GPF is currently limited. Several frequently used operators can only be used after resampling (Subset, Binning, Mosaicing, Reprojection, Collocation). Currently, when operators are written that either have multisize products as input or output, often a special solution that likely misuses the GPF is applied.

Also, it is not possible to compute tile stacks or to write them to any other output format than DIMAP at the moment.

Assumptions

Requirements

#TitleUser StoryImportanceNotes
1Extend more format-specific readers to support multisize products.E.g., a NetCDF file might have bands of different dimensions. SNAP shall be able to display all there bands
2Extend more format-specific writers to support multisize products.Users shall be able to choose in which format they want to save a multisize product.

3Support use of GPF computation methods

A user wants to implement the computeTilestack() - method. This method shall contain the map from all bands to their respective target tiles. All tiles will relate to the same geographical extent and provide it in their pixel sizes. If not all bands cover the same spatial extent, it might occur that a tile only covers part of the area that the others cover or even nothing at all.

Operator developers need to be careful when selecting their product tilesize.



User interaction and design

As images are set to bands by the operator context, this must pass the images an imagelayout valid for the band. The band shall provide a means to tell it's preferred tilesize.

The preferred tile size of a product shall refer to a product's scenerasterwidth. This is not necessarily a size which any of the band's must have. For GPF processing, it is important that the scene raster size covers the total spatial extent covered by ALL target bands.

The ImageToModelTransform (and its inverse) shall be used to determine the relationship between a scene raster and a specific band raster.

There exists a very first approach on Github under https://github.com/senbox-org/snap-engine/tree/gpf_multisize .

Questions

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

QuestionOutcome

Not Doing