Normlim data flow

Two data flows are possibles:

  • with S1LIAMap only LIA maps are produced,
  • with S1Processor LIA maps are produced is not found, then \(σ^0_{RTC}\) orthorectified files are produced.

NormLim global processing

S1 Tiling processes by looping on all required S2 tiles within the time range.

For each S2 tile,

  1. It downloads the necessary S1 images that intersect the S2 tile, within the specified time range, that are not already available in input data cache (all scenarios)

  2. Then, it makes sure the associated sine LIA map exists (all scenarios),

    1. It selects a pair of input S1 images that intersect the S2 tile,

    2. For each input S1 image

      1. It prepares a VRT of the SRTM files that cover the image,
      2. It projects the coordinates of the input S1 image onto the geometry of the VRT,
      3. It projects back the cartesian coordinates of each ground point in the origin S1 image geometry,
      4. It computes the normal of each ground point,
      5. It computes the sine LIA map of each ground point,
      6. It orthorectifies the sine LIA map to the S2 tile
    3. It concatenates both files into a single sine LIA map for the S2 tile.

  3. Then, for each polarisation (S1Processor scenario only),

    1. It calibrates with β° LUT, cuts and orthorectifies all the S1 images onto the S2 grid,
    2. It superposes (concatenates) the orthorectified images into a single S2 tile,
    3. It multiplies the β° orthorectified image with the sine LIA map.

As with the main dataflow for all other calibrations (β°, γ°, or σ°), these tasks are done in parallel in respect of all the dependencies.

LIA specific processings

Complete task flow for processing 33NWC and 33NWB with NORMLIM calibration

Tasks for processing 33NWC and 33NWB with NORMLIM calibration

Agglomerate SRTM files in a VRT

Inputs:All SRTM files that intersect an original input S1 image
Output:A VRT file
Program:gdalbuildvrt
StepFactory:s1tiling.libs.otbwrappers.AgglomerateDEM

All SRTM files that intersect an original input S1 image are agglomerated in a VRT file.

Project SAR coordinates onto DEM

Inputs:
Output:

A SAR DEM projected file

OTBApplication:

DiapOTB SARDEMProjection

StepFactory:

s1tiling.libs.otbwrappers.SARDEMProjection

This step projects the coordinates of original input S1 image in the geometry of the SRTM VRT file.

Project XYZ coordinates onto SAR

Inputs:
Output:

A XYZ Cartesian coordinates file

OTBApplication:

Our patched version of DiapOTB SARCartesianMeanEstimation

StepFactory:

s1tiling.libs.otbwrappers.SARCartesianMeanEstimation

This step estimates the XYZ Cartesian coordinates on the ground in the geometry of the original input S1 image.

Normals computation

Input:

A XYZ Cartesian coordinates file

Output:

None: chained in memory with LIA maps computation

OTBApplication:

ExtractNormalVector OTB application (developed for the purpose of this project)

Note

Beware, this OTB application isn’t distributed with OTB yet. It has to be installed specifically on your machine. It will be already installed in the docker images though.

StepFactory:

s1tiling.libs.otbwrappers.ComputeNormals

This step computes the normal vectors to the ground, in the original input S1 image geometry.

LIA maps computation

Input:

None: chained in memory from Normals computation

Output:

Local Incidence Angle map, and sine LIA map

OTBApplication:

SARComputeLocalIncidenceAngle OTB application (developed for the purpose of this project)

Note

Beware, this OTB application isn’t distributed with OTB yet. It has to be installed specifically on your machine. It will be already installed in the docker images though.

StepFactory:

s1tiling.libs.otbwrappers.ComputeLIA

It computes the Local Incidence Angle map, and sine LIA map between the between the ground normal projected in range plane \(\overrightarrow{n}\) (plane defined by S, T, and Earth’s center) and \(\overrightarrow{TS}\), in the original input S1 image geometry – where T is the target point on Earth’s surface, and S the SAR sensor position.

Orthorectification of LIA maps

Inputs:A Sine Local Incidence Angle map, and an optional degrees LIA map in the original S1 image geometry
Output:The associated LIA map file(s) orthorectified on the target S2 tile.
OTBApplication:Orthorectification
StepFactory:s1tiling.libs.otbwrappers.OrthoRectifyLIA

This steps ortho-rectifies the LIA map image(s) in S1 geometry to S2 grid.

It uses the following parameters from the request configuration file:

Concatenation of LIA maps

Inputs:A pair of LIA map files (sines or degrees) orthorectified on the target S2 tile.
Output:The LIA map file(s) associated to the S2 grid
OTBApplication:Synthetize
StepFactory:s1tiling.libs.otbwrappers.ConcatLIA

This step merges all the images of the orthorectified S1 LIA maps on a given S2 grid. As all orthorectified images are almost exclusive, they are concatenated by taking the first non null pixel.

Application of LIA maps to β° calibrated S2 images

Inputs:
  • The sine LIA map file associated to the S2 grid
  • A β° calibrated, cut and orthorectified image on the S2 grid
Output:

final S2 tiles, \(σ^0_{RTC}\) calibrated

OTBApplication:

:external:std:doc:`BandMath <Applications/app_BandMath>`

StepFactory:

s1tiling.libs.otbwrappers.ApplyLIACalibration

This final step multiplies the sine LIA map (in S2 grid geometry) with β0 calibrated files orthorectified on the S2 grid.

LIA specified data caches

As with main dataflow, two kinds of data are cached, but only one is regularly cleaned-up by S1 Tiling. The other kind is left along as the software cannot really tell whether they could be reused later on or not.

Important

This means that you may have to regularly clean up this space.