Cannot see output of EndmemberNumberEstimation application

Context

This question refers to usage of EndmemberNumberEstimation application

Configuration setup

My system: Windows10
Version of the OTB: 7.1.0
I installed the OTB with: the binaries

QGIS version: I am not using QGIS
Python version: 3.5 with anaconda3

Description of my issue

I am trying to use EndmemberNumberEstimation and I cannot see the output as it is mentioned here (https://www.orfeo-toolbox.org/CookBook/Applications/app_EndmemberNumberEstimation.html).

The image I’m using is a 192-band Hyperspectral Image taken from here (https://engineering.purdue.edu/~biehl/MultiSpec/hyperspectral.html)
I have tried different images with no luck.

I am using Pycharm(2020.1.4) as my IDE
Code

import otbApplication
app = otbApplication.Registry.CreateApplication(“EndmemberNumberEstimation”)
app.SetParameterString(“in”, “dc.tif”)
app.SetParameterString(“algo”, “vd”)
app.SetParameterFloat(“algo.vd.far”, 1.0E-3)
app.ExecuteAndWriteOutput()

Output

G:\Programs\anaconda3\envs\otb-env\python.exe G:/Programming/Python/orfeotoolbox/endmember_estimation.py
2020-09-19 11:40:46 (INFO) EndmemberNumberEstimation: Default RAM limit for OTB is 256 MB
2020-09-19 11:40:46 (INFO) EndmemberNumberEstimation: GDAL maximum cache size is 815 MB
2020-09-19 11:40:46 (INFO) EndmemberNumberEstimation: OTB will use at most 12 threads
2020-09-19 11:40:46 (INFO) EndmemberNumberEstimation: Computing statistics on input image…
2020-09-19 11:40:46 (INFO): Estimated memory for full processing: 851.654MB (avail.: 256 MB), optimal image partitioning: 4 blocks
2020-09-19 11:40:46 (INFO): Estimation will be performed in 4 blocks of 154x640 pixels
Statistic estimation step: 100% [**************************************************] (3s)
2020-09-19 11:40:49 (INFO) EndmemberNumberEstimation: Estimation algorithm: HFC Virtual Dimensionality.
Process finished with exit code 0

Thanks,
~codelover96

Hello,

The number of output endmembers is an output parameter, you can access it with :

[...]
app.ExecuteAndWriteOutput()
app.GetParameterInt("number")

We should add this to the doc thought.

Cédric

Oh nice! Maybe I can add it. I’ll dig a bit through the contributor guidelines, and create a PR soon, if that’s ok.

Thanks,
~codelover96

1 Like

Well, any contribution is welcome :slight_smile:

However I must warn you, documentation for the applications is generated automatically from this script, from the C++ code. The output parameter is not displayed because the script doesn’t write output parameters. So contributing to the doc of this application might not be as straightforward as it seems.

Cédric