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.