Normlim data flow
Two data flows are possibles:
with S1LIAMap only LIA maps are produced,
with S1Processor LIA maps are produced if not found, then \(σ^0_{RTC}\) NORMLIM orthorectified files are produced.
NormLim global processing
The following processing is the new default processing from S1Tiling v1.2.
S1 Tiling processes by looping on all required S2 tiles within the time range.
For each S2 tile,
It downloads S1 images (S1Processor scenario only) The download is done on condition the images are not already available in input data cache.
It downloads precise orbit files (EOF) that cover the specified time range and the specified S1 platform. The download is done on condition the requested relative orbit number is not found in the EOF files already available in the eof data cache.
Then, it makes sure the associated sine LIA map exists (all scenarios),
It prepares a VRT of the DEM files that cover the S2 image.
It projects DEM information (from the VRT) on the S2 geometry.
It project GEOID information on the S2 geometry.
It sums both elevation information on the S2 geometry.
It produces a image of ECEF coordinates for the ground points and their associated satellite positions in the S2 geometry.
It computes the normal of each ground point.
It computes the sine LIA map of each ground point.
Then, for each polarisation (S1Processor scenario only),
It calibrates with β° LUT, cuts and orthorectifies all the S1 images onto the S2 grid,
It superposes (concatenates) the orthorectified images into a single S2 tile,
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
Downloading of EOF precise orbit files
Precise orbit files will be searched in [PATHS].eof_dir in NORMLIM related scenarios.
An EOF file is a match when:
it matches the requested S1 platform,
and Orbit State Vectors matching the requested relative orbit number are found in the file – actually a ± 1 margin is taken into account in order to handle tiles around the ANX when the orbit number changes.
If no matching EOF file is found, then on the condition
[Datasource].download is True
, all EOF files
matching the platform and within the requested time range will be downloaded.
EOF files are downloaded with sentineleof on Copernicus Dataspace or on
Earthdata. See the FAQ regarding how credentials should be configured:
“Q: How can I configure precise orbit files retrieval?”.
Downloaded files are stored into the directory specified by [Paths].eof_dir option. If the directory doesn’t exist, it’s created on the fly.
Agglomerate DEM files in a VRT that covers S2 footprint
- Inputs:
All DEM files that intersect the target S2 tile
- Output:
A VRT file
- Function:
- StepFactory:
All DEM files that intersect the target S2 tile are agglomerated in a VRT file.
Project DEM on S2 tile
- Inputs:
The DEM VRT file over the S2 tile
- Output:
- OTBApplication:
- StepFactory:
This step projects the DEM VRT file on the S2 geometry.
Project GEOID on S2 tile
- Inputs:
The DEM projected on S2 tile as reference
The GEOID file
- Output:
None: chained in memory with Height computation
- OTBApplication:
- StepFactory:
This step projects the DEM VRT file on the S2 geometry.
Compute full height elevation on S2
- Inputs:
The projected GEOID on S2 tile – chained in memory from GEOID projection step
- Output:
- OTBApplication:
- StepFactory:
This step sums both DEM and GEOID information projected in S2 tile geometry.
Compute ECEF ground and satellite positions on S2
- Inputs:
The height information of the S2 tile.
- Output:
ECEF Ground and satellite positions on the S2 tile.
- OTBApplication:
- StepFactory:
s1tiling.libs.otbwrappers.ComputeGroundAndSatPositionsOnDEMFromEOF
This steps computes the ground positions of the pixels in the S2 geometry, and searches their associated zero dopplers to also issue the coordinates of the SAR sensor.
All coordinates are stored in ECEF.
Normals computation
- Input:
- 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.ComputeNormalsOnS2
(ors1tiling.libs.otbwrappers.ComputeNormalsOnS1
in the deprecated workflow)
This step computes the normal vectors to the ground, in the original input S1 image geometry.
LIA maps computation
- Input:
A XYZ Cartesian coordinates file of ground positions, and of satellite positions (or that contains satellite trajectory – deprecated workflow)
and the associated normals, chained in memory from Normals computation
- Output:
Local Incidence Angle map, and sine LIA map (or the equivalent in the deprecated workflow)
- 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.ComputeLIAOnS2
(ors1tiling.libs.otbwrappers.ComputeLIAOnS1
in the deprecated workflow)
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}\) – where T is the target point on Earth’s surface, and S the SAR sensor position.
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:
- StepFactory:
This final step multiplies the sine LIA map (in S2 grid geometry) with β0 calibrated files orthorectified on the S2 grid.
NormLim deprecated global processing
The following processing was the one supported in v1.0 of S1Tiling.
S1 Tiling processes by looping on all required S2 tiles within the time range.
For each S2 tile,
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)
Then, it makes sure the associated sine LIA map exists (all scenarios),
It selects a pair of input S1 images that intersect the S2 tile,
For each input S1 image
It prepares a VRT of the DEM files that cover the image,
It projects the coordinates of the input S1 image onto the geometry of the VRT,
It projects back the cartesian coordinates of each ground point in the origin S1 image geometry,
It computes the normal of each ground point,
It computes the sine LIA map of each ground point,
It orthorectifies the sine LIA map to the S2 tile
It concatenates both files into a single sine LIA map for the S2 tile.
Then, for each polarisation (S1Processor scenario only),
It calibrates with β° LUT, cuts and orthorectifies all the S1 images onto the S2 grid,
It superposes (concatenates) the orthorectified images into a single S2 tile,
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 deprecated processings
Agglomerate DEM files in a VRT that covers S1 footprint
- Inputs:
All DEM files that intersect an original input S1 image
- Output:
A VRT file
- Function:
- StepFactory:
All DEM files that intersect an original input S1 image are agglomerated in a VRT file.
Project SAR coordinates onto DEM
- Inputs:
An original input S1 image (geometry)
The associated VRT file
- Output:
- OTBApplication:
- StepFactory:
This step projects the coordinates of original input S1 image in the geometry of the DEM VRT file.
Project XYZ coordinates onto SAR
- Inputs:
An original input S1 image (geometry)
The associated VRT file
The associated SAR DEM projected file
- Output:
- OTBApplication:
- StepFactory:
This step estimates the XYZ Cartesian coordinates on the ground in the geometry of the original input S1 image.
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:
- StepFactory:
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:
- 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.
LIA specific 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.