Refactoring RadiometricIndices
This issue contains a workplan for the refactoring of radiometric indices:
-
RAndGAndNIR filters and the like can actually be removed right now, since we can use the functor setters for band indices instead of the filter ones -
Remove the scalar values operator from all indices class to make all indices classes compatible with FunctorImageFilter
-
Use FunctorImageFilter
everywhere in the radiometric indices application -
Rewrite all indices as free functions, called in the indices implementation -
Write a decorator for the the free functions, that will add the band indexing service and VariableLengthVector operator, -
Write a single functor which, from a list of radiometric indices (string), builds the corresponding decorators, derive the required bands, and compute all the indices at once on a VariableLengthVector
-
Refactor RadiometricIndices application with this new functor and FunctorImageFilter
.
Benefits:
- A free function is available for all indices, for any other purpose,
- Less code, no boilerplate,
- Faster computation of indices stack and less memory consumption, as all indices will be computed at once in functor.