otb issueshttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues2019-04-16T12:57:37Zhttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/1519Add spatialite to Superbuild2019-04-16T12:57:37ZJulien MichelAdd spatialite to SuperbuildSpatialite allows to use vector db with spatial index, resulting in faster spatial filtering operations.Spatialite allows to use vector db with spatial index, resulting in faster spatial filtering operations.https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/1542Make SampleAugmentationFilter able to work inplace2018-03-28T09:04:17ZJulien MichelMake SampleAugmentationFilter able to work inplace`SampleAugmentationFilter` currently copies sample to a new output. It would be great if it could work inplace (see !25)`SampleAugmentationFilter` currently copies sample to a new output. It would be great if it could work inplace (see !25)https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/1678Application improvements2018-08-20T12:03:28ZYannick TANGUYApplication improvementsThis story gathers list of improvements for OTB Application from the old wiki.
# General improvements
* Improve otbgui look and feel (big white spaces, default window size, alignment, parameters ordering, etc.)
* Add a "same as input" ou...This story gathers list of improvements for OTB Application from the old wiki.
# General improvements
* Improve otbgui look and feel (big white spaces, default window size, alignment, parameters ordering, etc.)
* Add a "same as input" output type
* Internationalization of otb applications (challenge: without making otbcli depend on qt)
* Improve application Engine API to allow to mark some parameters as "Advanced". It will allow to provide solution to simplify some of the application GUI (like fold all advanced parameters in a specific widget)
* Allow in-memory connection for OGRDataSource between applications (see TrainImagesClassifier)
* In otb::Wrapper::Application, provide a "GenerateBufferOutput()" function that calls Update() on an output image parameter without writing it.
* Interpolation on complex data
* Save N-dimensional images (where N>2) (see SOM maps)
* Display internal information of trained Machine Learning models (for instance, check the variables mostly used in a random forest model,...)
# Existing applications
* Implement IMORM approach in LSMSSmallRegionsMerging
* ComputeConfusionMatrix: Also compute precision, recall and F1 score and optionally write to a csv file
* Radiometric index: document which bands need to be filled for different indices
* Improve performance of sampling applications :
1. * In SampleExtraction : allow to compute features only on selected samples instead of computing them on the full image.
2. * When using a mask during training, CPU usage is not at 100% but rather 70% : why ?
3. * How to skip the processing of tiles without any sample ?
4. * Better estimation of RAM usage for sampling applications (at the moment, the memory cost of OGRData is not taken into account).
* (from M. Planells) In Orthorectification application: output the projected incidence angle (useful in case of SAR image orthorectification). See what is done in S1 toolbox Range Doppler Correction processing. It should output an optionnal image (1 local incidence angle per angle)
*TrainImageClassifierBetter*: explain what happens when no validation vector is provided in the TrainImageClassifier application-> in this case the rating is used and -> idea: display the number of extracted pixels in the log
*ComputeConfusionMatrix*: Improve the log of the confusion matrix (should be aligned properly)
*OpticalCalibration*: Improve OpticalCalibration doc to explain that in case of TOA To Image the input is not a DN image
# New applications
* Apply a polynomial correction
* Bundle block adjustment
* Morphological profiles and profiles classification
* The part of the object detection framework that can know be plugged in the new classification framework
* DSM shading and other stuff like this
* Proper denoising (the smoothing applications is quite poor and there are other filters in ITK)
* Sharpening (there are filters in ITK)
* HDR compression
* Haze correction
* Histogram application, lots of parameters (see numpy.histogram for inspiration) and which output format?
# C++ API
* Add topographic correction of reflectance. OTB filters can already take into account environment effects but not topo effects. It was requested on Mantis (https://bugs.orfeo-toolbox.org/view.php?id=1146)
* Re-write a decent 'compare-ogr' method for the test driverhttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/1679Documentation improvements2022-01-06T14:43:11ZVictor PoughonDocumentation improvementsVarious documentation improvements (this is an evolving list):
##### CookBook
* [ ] Write MPI and parallel processing
* [X] Mention existing remote modules and add link to the list
##### Examples
* [ ] Finish reviewing examples after m...Various documentation improvements (this is an evolving list):
##### CookBook
* [ ] Write MPI and parallel processing
* [X] Mention existing remote modules and add link to the list
##### Examples
* [ ] Finish reviewing examples after migration to sphinx #1865
##### Tutorials
* [ ] Rewrite Segmentation exercises to use all in one app for LSMS, change images...
* [ ] Add a 30 minutes introduction with illustrations about SAR images (find Creative Commons support look at SAREDU project for instance https://saredu.dlr.de/)
##### Build system
* [ ] Remove examples tests?
* [ ] Remove examples tests baselines?
* [ ] Add RunExamples.py script in a new test
* [ ] Fix missing example usages
* [ ] Improve license header filtering in rst render (itk copyright)
* [ ] Handle `ApplicationExample`
* [ ] Move `Documentation/Cookbook/Art/` to Data/ after the LFS migration is complete (!387)https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/1731Improve rasterization2022-01-07T11:47:25ZRémi CressonImprove rasterizationIn 7.0 `VectorData` might be replaced with `ogr::DataSource` and also in application parameter input/output (#1716).
Some filters for `VectorData` and `ogr::DataSource` have some overlap...
> - `VectorDataToLabelImageFilter` : `OGRDataS...In 7.0 `VectorData` might be replaced with `ogr::DataSource` and also in application parameter input/output (#1716).
Some filters for `VectorData` and `ogr::DataSource` have some overlap...
> - `VectorDataToLabelImageFilter` : `OGRDataSourceToLabelImageFilter`
> - `LabelImageToVectorDataFilter` : `LabelImageToOGRDataSourceFilter`
> - `VectorDataIntoImageProjectionFilter` : `GeometriesProjectionFilter`
(from !222)
...but some features were added to `VectorDataToLabelImageFilter` and not propagated to `OGRDataSourceToLabelImageFilter`
I propose to discuss a possible improvement for `OGRDataSourceToLabelImageFilter` (or `VectorDataToLabelImageFilter` is `VectorData` would be kept, but I don't feel so)
In my opinion, the following burning mode could be useful:
1. Binary (Burn the same value for each geometry. Params: Foreground value (ImagePixelValueType))
2. Field (Burn the value of the given field. Param: Field name (string))
3. FID (Burn the value corresponding to the (cast of the) geometry ID into ImagePixelValueType. (Param: Starting value (size_t) default could be background value))
4. Container (Burn the N-th value of the given container for the N-th geometry. Param: TContainer (e.g. std::unordered_map...))
For `Mosaic` and `ZonalStatistics` this would be useful, and I think we could improve also some other stuff with that.
What do you think?https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/1798Handle no data in BandMath and BandMathX2024-03-27T16:19:19ZVictor PoughonHandle no data in BandMath and BandMathXRequested by multiple users: #1511, #1801, otb-users
Better handling of images with no-data in BandMath and BandMathX:
* A flag to ignore no-data values (maybe even on by default?)
* A nodata token available in the expression that is s...Requested by multiple users: #1511, #1801, otb-users
Better handling of images with no-data in BandMath and BandMathX:
* A flag to ignore no-data values (maybe even on by default?)
* A nodata token available in the expression that is set to the nodata value reported by gdal
* support `nan()` function in BandMathX #1801https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/1849otbcli_DimensionalityReduction: Add options to output eigenvalues, apply inve...2022-01-07T07:22:27Zaloboaotbcli_DimensionalityReduction: Add options to output eigenvalues, apply inverse transform for PCA and correctely deal with no-dataAdd options to otbcli_DimensionalityReduction
1. ~~Output eigenvalues along eigenvectors for PCA~~
2. ~~Apply the inverse transform~~ (I understand this is already done using the "-outinv" parameter.
3. Deal with nodata
4. Option to ...Add options to otbcli_DimensionalityReduction
1. ~~Output eigenvalues along eigenvectors for PCA~~
2. ~~Apply the inverse transform~~ (I understand this is already done using the "-outinv" parameter.
3. Deal with nodata
4. Option to estimate stats from a certain % sampled from the image
5. ~~Option to output eigenvalues and eigenvectors only, avoiding calcalating and writing the components (useful to decide how many components to keep in a second run that would perform the actual calculation of the components)~~https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/1882Standard verbose in applications2022-01-06T13:56:37ZLuc HermitteStandard verbose in applications# TL;DR:
Have all OTB applications have a `-v` option.
# Rationale
It'd be, very, very nice to have `-v|-verbose` option in all OTB applications in standard. That's what we have everywhere in *nix world. I'm not picky to require that...# TL;DR:
Have all OTB applications have a `-v` option.
# Rationale
It'd be, very, very nice to have `-v|-verbose` option in all OTB applications in standard. That's what we have everywhere in *nix world. I'm not picky to require that long option names should start with double dashes, but really, a `-v` would change life.
I know, there is a (let me search...) `OTB_LOGGER_LEVEL=DEBUG` that we can export. But the trouble is... searching, every time, while `-v` is a _de facto_ standard.https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/1911Add CMake flag to disable QGIS descriptors2022-01-06T14:40:03ZVictor PoughonAdd CMake flag to disable QGIS descriptorsSee: https://forum.orfeo-toolbox.org/t/otb-without-qgis/281
default value should be ON
related to #1910See: https://forum.orfeo-toolbox.org/t/otb-without-qgis/281
default value should be ON
related to #1910https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/1915use libressl instead of openssl in dependency to curl2019-06-06T09:06:38ZRashad Kanavathuse libressl instead of openssl in dependency to curllibressl has cmake and windows support that openssl. This is much easy to manage that having a perl everytime to just configure openssl.libressl has cmake and windows support that openssl. This is much easy to manage that having a perl everytime to just configure openssl.https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/1917ITK 5 support2022-01-06T15:06:39ZVictor PoughonITK 5 supportIssue of !194
TODO:
* https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/merge_requests/194#note_78887Issue of !194
TODO:
* https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/merge_requests/194#note_78887Cédric TraizetCédric Traizethttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/1926Set InputImageList from numpy array2022-01-06T14:44:53ZVictor PoughonSet InputImageList from numpy arrayCurrently in the python API there is a `SetImageFromNumpyArray`. But there is no way to set an input image list from a list of numpy arrays.Currently in the python API there is a `SetImageFromNumpyArray`. But there is no way to set an input image list from a list of numpy arrays.https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/1945Bring back FCLS2022-01-06T15:04:32ZAntoine RegimbeauBring back FCLS### Bring back FCLS
As pointed out in #1921 the NCLS algorithm we had (unmixing algorithm under Nonnegative Constrained Least Square) was buggy and was doing exactly the same as an UCLS (UnConstrained).
@terudel proposed to implement t...### Bring back FCLS
As pointed out in #1921 the NCLS algorithm we had (unmixing algorithm under Nonnegative Constrained Least Square) was buggy and was doing exactly the same as an UCLS (UnConstrained).
@terudel proposed to implement the FCLS algorithm (Fully Constrained) because:
>[..] it is widely used in the hyperspectral community. It is a linear spectral unmixing algorithm that is based both on the non-negativity constraint of factors (such as NCLS) but also on the fact that the sum of the coefficients of the abundance map must be equal to 1 (which makes sense from a physical point of view).
Moreover, if we believed the code, we used to have the two algorithms FCLS and NCLS in the HyperspectralUnmixing application. So it would be nice to have at least one back.https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/1967How to handle remote module shipping python scripts2019-09-24T19:33:51ZVictor PoughonHow to handle remote module shipping python scriptsDiapOTB is providing [some python scripts](https://gitlab.orfeo-toolbox.org/remote_modules/diapotb/tree/master/python_src) on top of regular OTB applications. They are not available in the binary packages we provide on the website. Would...DiapOTB is providing [some python scripts](https://gitlab.orfeo-toolbox.org/remote_modules/diapotb/tree/master/python_src) on top of regular OTB applications. They are not available in the binary packages we provide on the website. Would there be an easy way to distribute them to make them easily available for users of the binary packages?https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/1972Improving log macro performances2022-01-06T15:01:07ZLuc HermitteImproving log macro performancesThe way logging macros are defined, they could consume a lot of time if passed slow functions. IOW,
```cpp
otbMsgDevMacro(somethingslowandcalledforeachpixel());
```
would yield to inefficient code.
The usual way to fix this would be
...The way logging macros are defined, they could consume a lot of time if passed slow functions. IOW,
```cpp
otbMsgDevMacro(somethingslowandcalledforeachpixel());
```
would yield to inefficient code.
The usual way to fix this would be
```cpp
#define otbLogMacro(level,msg) \
if (otb::Logger::Instance()->ShouldWeLog(level)) \ // <-- the new line
{ \
std::ostringstream itkmsg; \
itkmsg msg << "\n"; \
otb::Logger::Instance()->level(itkmsg.str().c_str()); \
}
```
BTW, the `std::string` shall not be converted into a `char const*` to be converted back into an `std::string` -> get rid of `.c_str()`.https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2006BundleToPerfectSensor propagates sensor kwl of Pan image2022-01-06T15:24:22ZRémi CressonBundleToPerfectSensor propagates sensor kwl of Pan imageShort summary of the requested feature
BundleToPerfectSensor propagates sensor keyword list of Pan image. It could be more useful to have the keywordlist of the MS image instead.Short summary of the requested feature
BundleToPerfectSensor propagates sensor keyword list of Pan image. It could be more useful to have the keywordlist of the MS image instead.https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2033Dimensionality Reduction: set bv pixels in the output as bv2022-01-06T15:52:52ZaloboaDimensionality Reduction: set bv pixels in the output as bvI observe the manual states:
> Background Value -bv float Background value to ignore in computation of the transformation matrix. Note that all pixels will still be processed when applying the transformation.
I think this a wrong choic...I observe the manual states:
> Background Value -bv float Background value to ignore in computation of the transformation matrix. Note that all pixels will still be processed when applying the transformation.
I think this a wrong choice: pixels with bv values in the input should be set as bv in the output.
Also, bv values should be ignored for calculating the input min,max values for rescaling (not sure they are, just in case)https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2038Training material : implement a Jupyter NoteBook on an open-access platform2020-03-24T09:52:10ZYannick TANGUYTraining material : implement a Jupyter NoteBook on an open-access platformOTB training material has evolved in the last years and is quite rich :
- 6 training modules, for beginners or advanced users. These modules contain slides, guide book and solutions to the exercises. They are adapted to training session...OTB training material has evolved in the last years and is quite rich :
- 6 training modules, for beginners or advanced users. These modules contain slides, guide book and solutions to the exercises. They are adapted to training sessions from 1 day to 3 days, depending on the number of modules we choose to present
- one small introduction to OTB, known as "OTB guided tour". For a small training session (3 hours), it allows to present OTB and start creating a small processing chain with OTB & Python.
We would like to improve our training material and propose to implement a jupyter notebooks on an open-access platform, such as Binder (https://mybinder.org/).
The idea is that new users could try and use OTB in a simple environment. Later, they will install it on their own computer and may improve their skills by using other training material.
This issue is here to discuss this idea, to test these kind of platform, at first with the "OTB guided tour".
@dyoussef : feel free to update this issue and propose your ideas !https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2041Missing ogr tools in binary package2022-01-07T07:51:13ZGuillaume PaseroMissing ogr tools in binary packageSince we already package gdal raster tools in the binary package, it would be nice to also have ogr tools (ogrinfo, ogr2ogr, ...). Should be simple to get.Since we already package gdal raster tools in the binary package, it would be nice to also have ogr tools (ogrinfo, ogr2ogr, ...). Should be simple to get.https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2042otb application GetParameterImageBase on InputImageListParameter always retur...2022-01-06T16:10:19ZEsquis Benjaminotb application GetParameterImageBase on InputImageListParameter always return a FloatVectorImageDear,
When calling this function on an InputImageListParameter the return pointer is always casted into a FloatVectorImage while there is an accessor on InputImageParameter to get the real ImageBase* not casted.
This is particularly impo...Dear,
When calling this function on an InputImageListParameter the return pointer is always casted into a FloatVectorImage while there is an accessor on InputImageParameter to get the real ImageBase* not casted.
This is particularly important when chaining the applications with pointers of specifiq types (uint8 ...) that needs to keep their types.
Regards