otb merge requestshttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests2021-02-09T20:22:15Zhttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/781Resolve "Update the documentation about Remote Modules"2021-02-09T20:22:15ZThibaut ROMAINResolve "Update the documentation about Remote Modules"#### Summary
Closes #2086
#### Copyright
The copyright owner is *CNES* and has signed the ORFEO ToolBox Contributor License Agreement.
<hr>
***Check before merging:***
- All discussions are resolved
- At least 2 :thumbsup: votes fr...#### Summary
Closes #2086
#### Copyright
The copyright owner is *CNES* and has signed the ORFEO ToolBox Contributor License Agreement.
<hr>
***Check before merging:***
- All discussions are resolved
- At least 2 :thumbsup: votes from core developers, no :thumbsdown: vote.
- The feature branch is (reasonably) up-to-date with the base branch
- Dashboard is green
- Copyright owner has signed the ORFEO ToolBox Contributor License Agreement
- Optionally, run `git diff develop... -U0 --no-color | clang-format-diff.py -p1 -i` on latest changes and commit8.0.0Thibaut ROMAINThibaut ROMAINhttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/735Correct menu instructions to open application-browser in Monteverdi2020-09-03T13:17:34ZJulien OsmanCorrect menu instructions to open application-browser in Monteverdi#### Summary
There is an error in Monteverdi's documentation: to open OTB-Application browser, one needs to click *View/OTB-Applications browser*, and not *File*.
#### Implementation Details
##### Documentation
Edit CookBook page abou...#### Summary
There is an error in Monteverdi's documentation: to open OTB-Application browser, one needs to click *View/OTB-Applications browser*, and not *File*.
#### Implementation Details
##### Documentation
Edit CookBook page about Monteverdi.
#### Copyright
The copyright owner is *CNES* and has signed the ORFEO ToolBox Contributor License Agreement.
<hr>
***Check before merging:***
- All discussions are resolved
- At least 2 :thumbsup: votes from core developers, no :thumbsdown: vote.
- The feature branch is (reasonably) up-to-date with the base branch
- Dashboard is green
- Copyright owner has signed the ORFEO ToolBox Contributor License Agreement
- Optionally, run `git diff develop... -U0 --no-color | clang-format-diff.py -p1 -i` on latest changes and commit7.2.0Julien OsmanJulien Osmanhttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/737Resolve "Develop package names" 22020-08-28T13:07:35ZJulie BrossardResolve "Develop package names" 2Closes #2076Closes #20767.2.0https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/740Resolve "Develop package names"2020-08-27T13:53:36ZJulie BrossardResolve "Develop package names"Closes #2076Closes #20768.0.0https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/639Update QGISInterface.rst to clarify plugin setup with QGIS > 3.82019-12-03T09:13:00Zguillaume pernotUpdate QGISInterface.rst to clarify plugin setup with QGIS > 3.8Closes #1987Closes #19877.1.0https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/404Fix bug in extract roi2019-09-19T08:19:20ZAntoine RegimbeauFix bug in extract roi#### Summary
This MR aims at fixing #1815 and also improves log and behavior of the ExtractROI application.
#### Rationale
ExtractROI is a very simple application it should flawless.
#### Implementation Details
Here are some...#### Summary
This MR aims at fixing #1815 and also improves log and behavior of the ExtractROI application.
#### Rationale
ExtractROI is a very simple application it should flawless.
#### Implementation Details
Here are some bugs fixed:
* [X] Bug from #1815 is fixed
* [x] Bug in the radius mode: we should extract as if the center and radius gives us an extent
* [x] Log
##### Tests
Test will be done in an other MR.
No test has been added here.
#### Additional notes
#### Copyright
The copyright owner is *CNES* and has signed the ORFEO ToolBox Contributor License Agreement.
<hr>
***Check before merging:***
- All discussions are resolved
- At least 2 :thumbsup: votes from core developers, no :thumbsdown: vote.
- The feature branch is (reasonably) up-to-date with the base branch
- Dashboard is green
- Copyright owner has signed the ORFEO ToolBox Contributor License Agreement7.0.0https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/580Refactoring of the BandMathX documentation, and fix OpticalCalibration docume...2019-09-17T13:38:23ZCédric TraizetRefactoring of the BandMathX documentation, and fix OpticalCalibration documentation#### Summary
This merge request replaces the AboutBandMathX C++ section by a recipe: Operations on images with BandMath and BandMathX
The BandMath part of the ImageProcessing recipe has been moved to the new recipe.
This merge ...#### Summary
This merge request replaces the AboutBandMathX C++ section by a recipe: Operations on images with BandMath and BandMathX
The BandMath part of the ImageProcessing recipe has been moved to the new recipe.
This merge request also fix a bug in the `OpticalCalibration` application documentation (a newline was needed before a bulleted list). See issue #1956.
#### Rationale
See issue #1904
#### Copyright
The copyright owner is *CNES* and has signed the ORFEO ToolBox Contributor License Agreement.
<hr>
***Check before merging:***
- All discussions are resolved
- At least 2 :thumbsup: votes from core developers, no :thumbsdown: vote.
- The feature branch is (reasonably) up-to-date with the base branch
- Dashboard is green
- Copyright owner has signed the ORFEO ToolBox Contributor License Agreement
- Optionally, run `git diff develop... -U0 --no-color | clang-format-diff.py -p1 -i` on latest changes and commit7.0.0Cédric TraizetCédric Traizethttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/353Local Rx detector2019-09-17T13:38:23ZCédric TraizetLocal Rx detector### Summary
Functor and application for local Rx score computation
### Rationale
In OTB there is a `LocalRxDetectorFilter` that computes local Rx score on an input hyperspectral image.
Also, there is currently no application ...### Summary
Functor and application for local Rx score computation
### Rationale
In OTB there is a `LocalRxDetectorFilter` that computes local Rx score on an input hyperspectral image.
Also, there is currently no application that computes local Rx score in OTB. This MR also introduces this application.
Local Rx detection is an expensive operation. It requires, for each pixel, the estimation of the correlation matrix of the pixels in the neighborhood and its inversion. The computational complexity of the algorithm is of order `O(N*L^3)` [1], where `N` is the number of pixels in the image and `L` the number of bands. Nevertheless, I think this algorithm has its place in OTB, as it is one of the most used algorithm for hyperspectral anomaly detection. The need for this application has been expressed in #1530.
At the moment the application only computes the score and outputs it. It does not apply a threshold on the computed score to detect anomalies. As thresholding can be done with `BandMath`, I don't think that this application needs to do it.
This Merge Request also removes the `LocalRxDetectorNonThreadFilter` and its test, why do we have this in OTB anyway ?
**local Rx functor:**
The local Rx score computation can be computed on each pixel using its neighboring pixels, therefore the filter can be replaced by a `FunctorImageFilter` using
a functor taking a neighborhhod as input. This merge request introduces this functor.
Because of the bug in `FunctorImageFilter` in #1802, we can't be replace the filter by a functor yet. In this MR the `LocalRxDetectorFilter` has not been removed, and the version using a `functorImageFilter` has been implemented.
The result are identical between the `LocalRxDetectorFilter` and the `FunctorImageFilter` except on image border : the `LocalRxDetectorFilter` does not compute score on borders (using a `ImageBoundaryFacesCalculator`) and the `FunctorImageFilter` computes score on border using a `ZeroFluxNeumannBoundaryCondition`.
**References:**
[1]: Zhao, Chunhui & Wang, Yulei & Qi, Bin & Wang, Jia. (2015). Global and Local Real-Time Anomaly Detectors for Hyperspectral Remote Sensing Imagery. Remote Sensing. 7. 3966-3985. 10.3390/rs70403966.
### Implementation Details
#### Classes and files
New file `otbLocalRxDetection.cxx` where the new application is implemented.
#### Applications
A new application has been created : `LocalRxDetection`, it has the following parameters :
* `in` : input multi-channel image
* `out`: output image
* `ir` : InternalRadius
* `er` : ExternalRadius
* `ram` : ram parameter (int).
#### Tests
a test has been added for the `LocalRxDetection` application.
### Additional notes
N.A.
#### Copyright
The copyright owner is *CNES* and has signed the ORFEO ToolBox Contributor License Agreement.
<hr>
***Check before merging:***
- All discussions are resolved
- At least 2 :thumbsup: votes from core developers, no :thumbsdown: vote.
- The feature branch is (reasonably) up-to-date with the base branch
- Dashboard is green
- Copyright owner has signed the ORFEO ToolBox Contributor License Agreement7.0.0Cédric TraizetCédric Traizethttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/572Remove CVFold parameter from decision tree classifier in OpenCV 32019-08-09T12:14:51ZCédric TraizetRemove CVFold parameter from decision tree classifier in OpenCV 3#### Summary
Remove the CVFold parameter from decision tree classifier in OpenCV 3 as it crashes. The parameter is now only avalaible when using OpenCV 2. See issue #1952.
#### Copyright
The copyright owner is *CNES* and has signed th...#### Summary
Remove the CVFold parameter from decision tree classifier in OpenCV 3 as it crashes. The parameter is now only avalaible when using OpenCV 2. See issue #1952.
#### Copyright
The copyright owner is *CNES* and has signed the ORFEO ToolBox Contributor License Agreement.
<hr>
***Check before merging:***
- All discussions are resolved
- At least 2 :thumbsup: votes from core developers, no :thumbsdown: vote.
- The feature branch is (reasonably) up-to-date with the base branch
- Dashboard is green
- Copyright owner has signed the ORFEO ToolBox Contributor License Agreement
- Optionally, run `git diff develop... -U0 --no-color | clang-format-diff.py -p1 -i` on latest changes and commit7.0.0Cédric TraizetCédric Traizethttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/515Type assertion in OGRFieldWrapper GetValue()2019-07-05T12:18:28ZCédric TraizetType assertion in OGRFieldWrapper GetValue()#### Summary
This merge request adds checks on the field type before using GetValue<T>() and SetValue<T>.
#### Rationale
There is an assertion that checks that the field type is the same as the requested type in the `GetValue<T...#### Summary
This merge request adds checks on the field type before using GetValue<T>() and SetValue<T>.
#### Rationale
There is an assertion that checks that the field type is the same as the requested type in the `GetValue<T>()` and `SetValue<T>()` method of the `Field` class. However this assertion is not respected in classification applications. This merge request adds field type verification and appropriate cast when calling these methods.
One notable change is that `std::stod` is used to convert string field to numeric types instead of the `atoi` used in GDAL's GetValueAsXXX() for string fields. `stod` throw an exception if the field cannot be converted ("1" is ok, "Vegetation" is not). This change highlighted a bug in the `TrainVectorApplication` working in unsupervised mode, the app is not supposed to fetch the class field in this case, but it does, using the first field of the features as the class field, and trying to convert it to a numerical value.
See associated [issue](#1916)
#### Additional notes
#### Copyright
The copyright owner is *CNES* and has signed the ORFEO ToolBox Contributor License Agreement.
<hr>
***Check before merging:***
- All discussions are resolved
- At least 2 :thumbsup: votes from core developers, no :thumbsdown: vote.
- The feature branch is (reasonably) up-to-date with the base branch
- Dashboard is green
- Copyright owner has signed the ORFEO ToolBox Contributor License Agreement
- Optionally, run `git diff develop... -U0 --no-color | clang-format-diff.py -p1 -i` on latest changes and commit7.0.0Cédric TraizetCédric Traizethttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/451Documentation for atmoshperic correction parameters in OpticalCalibration2019-04-18T07:17:11ZCédric TraizetDocumentation for atmoshperic correction parameters in OpticalCalibration#### Summary
This MR add the units that were missing in the documentation of `OpticalCalibration`. The missing units were:
- ozone amount (cm-atm)
- water amount (g/cm^2)
- the fact that the aerosol optical thickness is unitless ha...#### Summary
This MR add the units that were missing in the documentation of `OpticalCalibration`. The missing units were:
- ozone amount (cm-atm)
- water amount (g/cm^2)
- the fact that the aerosol optical thickness is unitless has been documented.
- Solar Illumination (W/m^2/micron), this was documented in the application long documentation, but not in the associated parameter documentation.
The atmospheric correction units have been retrieved in the `otb_main6S_function.c` file.
Related issue: #1855
#### Copyright
The copyright owner is *CNES* and has signed the ORFEO ToolBox Contributor License Agreement.
<hr>
***Check before merging:***
- All discussions are resolved
- At least 2 :thumbsup: votes from core developers, no :thumbsdown: vote.
- The feature branch is (reasonably) up-to-date with the base branch
- Dashboard is green
- Copyright owner has signed the ORFEO ToolBox Contributor License Agreement7.0.0Cédric TraizetCédric Traizethttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/440No data documentation in Segmentation2019-04-18T07:17:11ZCédric TraizetNo data documentation in Segmentation#### Summary
This merge request improves the documentation and the logs of the `Segmentation` application:
- The fact that the application does not handle no data is documented in the `Limitation` section.
- No data values of the ...#### Summary
This merge request improves the documentation and the logs of the `Segmentation` application:
- The fact that the application does not handle no data is documented in the `Limitation` section.
- No data values of the input image is extracted from the meta data. If a no-data value is found, a warning is thrown.
- The link to the meanshift application in the `SeeAlso` section was broken.
- The `endl` have been removed from the logs as `AppLogXXX` already prints an endline character.
See related issue #1860.
#### Copyright
The copyright owner is *CNES* and has signed the ORFEO ToolBox Contributor License Agreement.
<hr>
***Check before merging:***
- All discussions are resolved
- At least 2 :thumbsup: votes from core developers, no :thumbsdown: vote.
- The feature branch is (reasonably) up-to-date with the base branch
- Dashboard is green
- Copyright owner has signed the ORFEO ToolBox Contributor License Agreement7.0.0Cédric TraizetCédric Traizethttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/merge_requests/344Number of endmember estimation application2019-01-30T09:59:01ZCédric TraizetNumber of endmember estimation application### Summary
Application for number of endmembers estimation in hyperspectral images.
### Rationale
There are two classes in OTB for estimating the number of endmembers in hyperspectral images,
one implementing the virtual dimen...### Summary
Application for number of endmembers estimation in hyperspectral images.
### Rationale
There are two classes in OTB for estimating the number of endmembers in hyperspectral images,
one implementing the virtual dimensionality algorithm and the other using the
Eigenvalue Likelihood Maximization algorithm, but there are no application corresponding
to these algorithm.
This MR adds an application for the endmember number estimation. The application
will first compute the covariance and correlation matrices of the input image using a
`otb::StreamingStatisticsVectorImageFilter` and then use a `EigenvalueLikelihoodMaximisation`
or a `VirtualDimensionality` object with the computed statistics to output an estimation
of the number of endmembers.
### Implementation Details
#### Classes and files
New file `otbEndmemberNumberEstimation.cxx` where the new application is implemented.
#### Applications
A new application has been created : `EndmemberNumberEstimation`, it has the following parameters :
* `in` : input multi-channel image
* `number`: number of endmembers
* `algo` : chosen algorithm
* `elm` : eigenvalue likelihood maximization
* `vd` : virtual dimensionality
* `algo.vd.far` : false alarm rate for the virtual dimensionality algorithm.
* `ram` : ram parameter
#### Tests
New validation tests for both algorithms.
#### Copyright
The copyright owner is CNES and has signed the ORFEO ToolBox Contributor License Agreement.
<hr>
***Check before merging:***
- All discussions are resolved
- At least 2 :thumbsup: votes from core developers, no :thumbsdown: vote.
- The feature branch is (reasonably) up-to-date with the base branch
- Dashboard is green
- Copyright owner has signed the ORFEO ToolBox Contributor License Agreement7.0.0Cédric TraizetCédric Traizet