Request for Comments-43: New services in ApplicationEngine

From OTBWiki
Jump to: navigation, search


  • Author: Julien Michel (CNES)
  • Submitted on 16.11.2017
  • Open for comments


What changes will be made and why they would make a better Orfeo ToolBox?

This request for comments tries to list new services that would be useful for OTB applications developers. Those services would be available from C++ ApplicationEngine API but also wrapped into the Python API.

Streaming and output information

This is a set of service that let you have insights on what output the application will generate, and what pieces of the input you need to generate a piece of the output.

  1. Get the output information : given a parameter key corresponding to an OutputImageParameter, retrieve the output size, spacing, origin, projection, geom file and so on
  2. Get the requested input regions : given a parameter key corresponding to an OutputImageParameter, and a region corresponding to a piece of this output, get for each InputImageParameter the region required to produce that piece of output. The application could also return the estimated amount of RAM needed to compute that piece.
Attach metadata to numpy array interface

The numpy array interface to application is useless in many cases because it only allows to pass the pixel buffer, and no metadata. Many OTB filters need additional metadata (such as origin, spacing, size, projection and geom file) to be able to process the data.

Get rid of ComplexParameterInput/OutputImage and implement it through ParameterInput/OutputImage

There is no reason to have a separater complex image parameter. This makes most application incompatible with complex images (such as ExtractROI for instance). It would be better to be able to detect complex images with InputImageParameter, and to add new output types for OutputImageParameter (cint, cfloat, ...).

Check Request_for_changes-125:_Merge_Complex_and_standard_Image_Parameter

Set/get all parameters at once through a dictionnary in Pyton API

This is a small helper for large application with many parameters to set.

Get proper logging / progress reporting in Python

Self explanatory.

Register/free filter ressources

Provide a way to register filters and free them at the end of the application processing to avoid retaining memory.

Interface with OGR Python wrappers

GDAL/OGR provides Python wrappers for vector data. It would be useful to import them in OTB Applications (into ParameterType_VectorData). Solution for vectors defined as ParameterType_InputFilename ?

Stop button for Graphic Interface

Be able to stop a running application.

When will those changes be available (target release or date)?

Target release could be 6.4 or 6.6.

Who will be developing the proposed changes?

Those changes are a mix of several user needs, we should split the work acconrdingly.



List here important comments (possibly links) received.


List here community members that support this RFComments.