Skip to content

Integrate S1Tiling support apps as official remote module

Luc Hermitte requested to merge lhermitte/otb:S1TilingApps into develop

Summary

@tkoleck and I propose in this MR the integration of S1Tiling support applications as an official remote module.

Rationale

This remote module is made of 4 applications that we'll like to see distributed alongside OTB. We actually plan to eventually propose the applications as official OTB applications, but prefer first to provide them as a remote module.

Implementation Details

Comments on the code are welcomed. In particular, I have doubts regarding the documentation tags to use.

Applications

The following applications are provided:

  • ClampROI: that sets margins to 0 outside the ROI -- name suggestions are welcomed
  • Synthetize: that iterates overs a list of overlapping images to keep the first non null pixel -- name suggestions are welcomed
  • MultitempFilteringFilter: that implements Quegan speckle filter for SAR Images.
  • MultitempFilteringOutcore: that computes the outcore of the filter
Classes and files

A few helper classes and functions are provided. They should eventually be part of OTB. They are:

  • otb::Interval, inspired by boost::numeric::interval but with a much simpler interface. It can be seen as a 1D region. Its main purpose is to check intersections between (1D) regions and simplify the definition of functions like the generation of input and/or ouput (requested regions)
  • otb::NeatRegionLogger permits to change the way regions are logged, example: x ∈ [0..42[, y ∈ [12..24[, size=42x12 @(0, 12)
  • otb::Span<> is a C++14 implementation of C++20 std::span.
  • otb::ZipIterator<> aggregates (zips!) multiple image iterators into one. It permits to handle lists of images without having to pay the price for dynamic variable length vector pixels.
  • otb::Synthetize<> is an alternative (C++) lambda compliant filter that works on list of images (instead of VectorImages) -- name suggestions are welcomed. Note: the current OTBApplication kernel prevents this application from being pipelined in memory.

Other filters are functors are dedicated to the multitemp filter applications.

Tests

Some tests exists but we'll have to find some storage to add the tests. In the current state, tests will fail.

Copyright

The copyright owner is CNES and has signed the ORFEO ToolBox Contributor License Agreement.


Check before merging:

  • All discussions are resolved
  • At least 2 👍 votes from core developers, no 👎 vote.
  • The feature branch is (reasonably) up-to-date with the base branch
  • Dashboard is green
  • Copyright owner has signed the ORFEO ToolBox Contributor License Agreement
  • Optionally, run git diff develop... -U0 --no-color | clang-format-diff.py -p1 -i on latest changes and commit
Edited by Luc Hermitte

Merge request reports