Request for Comments-43: New services in ApplicationEngine
Contents
- 1 Status
- 2 Content
- 2.1 What changes will be made and why they would make a better Orfeo ToolBox?
- 2.1.1 Streaming and output information
- 2.1.2 Attach metadata to numpy array interface
- 2.1.3 Get rid of ComplexParameterInput/OutputImage and implement it through ParameterInput/OutputImage
- 2.1.4 Set/get all parameters at once through a dictionnary in Pyton API
- 2.1.5 Get proper logging / progress reporting in Python
- 2.1.6 Register/free filter ressources
- 2.1.7 Interface with OGR Python wrappers
- 2.1.8 Stop button for Graphic Interface
- 2.2 When will those changes be available (target release or date)?
- 2.3 Who will be developing the proposed changes?
- 2.1 What changes will be made and why they would make a better Orfeo ToolBox?
- 3 Community
Status
- Author: Julien Michel (CNES)
- Submitted on 16.11.2017
- Open for comments
Content
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.
- Get the output information : given a parameter key corresponding to an OutputImageParameter, retrieve the output size, spacing, origin, projection, geom file and so on
- 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.
Community
Comments
List here important comments (possibly links) received.
Support
List here community members that support this RFComments.