Integrate S1Tiling support apps as official remote module
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 byboost::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++20std::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 ofVectorImage
s) -- 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