otb issueshttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues2024-03-21T11:29:08Zhttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2384SuperBuild LibKML URL is out of date2024-03-21T11:29:08ZLaurențiu NicolaSuperBuild LibKML URL is out of dateIt's https://deb.debian.org/debian/pool/main/libk/libkml/libkml_1.3.0~r864+dfsg.orig.tar.gz, but should be http://deb.debian.org/debian/pool/main/libk/libkml/libkml_1.3.0.orig.tar.gz or something like that.It's https://deb.debian.org/debian/pool/main/libk/libkml/libkml_1.3.0~r864+dfsg.orig.tar.gz, but should be http://deb.debian.org/debian/pool/main/libk/libkml/libkml_1.3.0.orig.tar.gz or something like that.https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2383Package module as "IMPORTED" cmake targets2024-03-25T14:43:17ZTristan LaurentPackage module as "IMPORTED" cmake targetsThe current cmake targets of OTB are packaged in Core. This is a problem if we want to separate OTB module.
Some modules depends of other OTB modules, thus when we want to build them, we need OTB Core and the package of these modules in...The current cmake targets of OTB are packaged in Core. This is a problem if we want to separate OTB module.
Some modules depends of other OTB modules, thus when we want to build them, we need OTB Core and the package of these modules installed. But if OTB Core is build without any OTBGroup, the cmake targets of theses dependencies are not declared.
One solution could be to create an OTB Core package with options -DOTBGroup corresponding to dependencies, but it lead to one specific OTB build per module. This is not a durable solution as it complexify CI, increase build time, is source of errors etc...
CMake propose a solution: IMPORTED_TARGETS: https://cmake.org/cmake/help/latest/guide/importing-exporting/index.html .
This can help to have cmake target of each package/module in the module package itself instead of Core package.10.0.0Tristan LaurentTristan Laurenthttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2381PLEIADES Orthorectification failed since version 82024-03-20T14:24:20ZdemagistPLEIADES Orthorectification failed since version 8### Description
Since release 8 of OTB I am not able anymore to apply Orthorectification on a Pleiades image I use during a lesson.
The same command line works fine with version 7.4.2 and fails since versions 8.
### Steps to reproduce
...### Description
Since release 8 of OTB I am not able anymore to apply Orthorectification on a Pleiades image I use during a lesson.
The same command line works fine with version 7.4.2 and fails since versions 8.
### Steps to reproduce
The following command produce a good result with release 7.4.2 (linux or windows) :
otbcli_OrthoRectification -io.in "./IMG_PHR1B_MS_004/IMG_PHR1B_MS_201807291333495_SEN_3210573101-004_R1C1.TIF?&skipcarto=true" -map utm -map.utm.zone 23 -interpolator nn -opt.ram 1024 -opt.gridspacing 4 -elev.dem ./SRTM1 -io.out ./test_ORTHO+DEM.tif
Since release 8, it does not work anymore.
I tested the latest 9.0.0 release using a docker image :
docker run -it -v .:/Data orfeotoolbox/otb:9.0.0 otbcli_OrthoRectification -io.in "/Data/IMG_PHR1B_MS_004/DIM_PHR1B_MS_201807291333495_SEN_3210573101-004.XML?&skipcarto=true" -map utm -map.utm.zone 23 -interpolator nn -opt.ram 1024 -opt.gridspacing 4 -elev.dem /Data/SRTM1 -io.out /Data/test_ORTHO+DEM.tif
and got the following error :
(FATAL) OrthoRectification: itk::ERROR: ImageToGenericRSOutputParameters(0x788a50): No information in the metadata, please set an image with non empty metadata
Same problem using the DIMAP xml file as input file :
docker run -it -v .:/Data orfeotoolbox/otb:9.0.0 otbcli_OrthoRectification -io.in "/Data/IMG_PHR1B_MS_004/DIM_PHR1B_MS_201807291333495_SEN_3210573101-004.XML?&skipcarto=true" -map utm -map.utm.zone 23 -interpolator nn -opt.ram 1024 -opt.gridspacing 4 -elev.dem /Data/SRTM1 -io.out /Data/test_ORTHO+DEM.tif
2024-03-06 16:27:10 (INFO) OrthoRectification: Elevation management: setting default height above ellipsoid to 0 meters
2024-03-06 16:27:10 (INFO): Loading metadata from official product
2024-03-06 16:27:10 (FATAL) OrthoRectification: itk::ERROR: ImageToGenericRSOutputParameters(0x788a50): No information in the metadata, please set an image with non empty metadata
### Configuration information
see above in descriptionhttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2380Separate Miscellaneous in separate repository2024-03-20T15:59:44ZTristan LaurentSeparate Miscellaneous in separate repositoryTo compilate project, we can use OTB modules https://www.orfeo-toolbox.org/CookBook-9.0/RemoteModules.html
- [x] Create external git repo, link it as a submodule
- [x] OTB core must download corresponding submodule if the cmake -DOTBGrou...To compilate project, we can use OTB modules https://www.orfeo-toolbox.org/CookBook-9.0/RemoteModules.html
- [x] Create external git repo, link it as a submodule
- [x] OTB core must download corresponding submodule if the cmake -DOTBGroup_Miscellaneous is turned on
- [x] Compile it separately, you may use OTB core artifact
- [x] Verify that package is correctly built during cpack
- [ ] Adapt CI to run corresponding build job and tests
- [ ] Adapt otb CI to start module job when there is a new dependency (i.e. OTB core)
- [ ] Adapt bug tracking for each project ?
- [ ] Add a Readme with compilation help, otb integration, and some exemples10.0.0Tristan LaurentTristan Laurenthttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2378Divide OTB modules in independent repositories2024-03-05T09:32:20ZTristan LaurentDivide OTB modules in independent repositories# Resume
The goal of this is to separate each modules located in https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/tree/develop/Modules in a separate repo (except Core). A link will be done from otb main repo and each module with the ...# Resume
The goal of this is to separate each modules located in https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/tree/develop/Modules in a separate repo (except Core). A link will be done from otb main repo and each module with the "submodule" git mechanism.
# Pro and cons
Separating modules have several advantages:
- Improve CI build time
- Improve unittest jobs and runs as only module related features are tested
- Issues will now be module-related
- Developers only download needed source code
The CI jobs may increase in complexity as we introduce dependencies with modules. Thus we need to trigger modules jobs from core.
# Plan
- [ ] According to @ytanguy , create a gitlab group to handle all modules in a separate repo. This will be easier for bug tracking and management
- [ ] Start with Miscellaneous module, use OTB modules https://www.orfeo-toolbox.org/CookBook-9.0/RemoteModules.html
- [ ] Create external git repo, link it as a submodule
- [ ] OTB core must download corresponding submodule if the cmake -DOTBGroup_Miscellaneous is turned on
- [ ] Compile it separately, you may use OTB core artifact
- [ ] Adapt CI to run corresponding build job and tests
- [ ] Adapt otb CI to start module job when there is a new dependency (i.e. OTB core)
- [ ] Adapt bug tracking for each project ?
- [ ] Add a Readme with compilation help, otb integration, and some exemples
- [ ] Repeat for Remote
- [ ] Repeat for FeatureExtraction
- [ ] Repeat for SAR
- [ ] Repeat for Segmentation
- [ ] Repeat for Hyperspectral
- [ ] Repeat for Learning
- [ ] Repeat for StereoProcessing10.0.0https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2377QGIS adapters cause issues with SuperBuild2024-02-20T17:07:13ZLaurențiu NicolaQGIS adapters cause issues with SuperBuild### Description
1. building using SuperBuild without `OTB_WRAP_QGIS` fails at the configure step:
```
CMake Error at CMake/OTBModuleAPI.cmake:69 (message):
No such module: "OTBQGIS"
Call Stack (most recent call first):
CMake/OTBMod...### Description
1. building using SuperBuild without `OTB_WRAP_QGIS` fails at the configure step:
```
CMake Error at CMake/OTBModuleAPI.cmake:69 (message):
No such module: "OTBQGIS"
Call Stack (most recent call first):
CMake/OTBModuleAPI.cmake:44 (otb_module_load)
CMake/OTBModuleAPI.cmake:88 (_otb_module_config_recurse)
build/OTB/build/OTBConfig.cmake:99 (otb_module_config)
Utilities/Completion/CMakeLists.txt:21 (find_package)
```
2. building using SuperBuild with `OTB_WRAP_QGIS` works initially (perhaps?), but fails on a second build:
```
[ 87%] ./bin/otbQgisDescriptor OpticalCalibration lib/otb/applications ./share/otb/description/
[ 87%] ./bin/otbQgisDescriptor BundleToPerfectSensor lib/otb/applications ./share/otb/description/
[ 89%] ./bin/otbQgisDescriptor Pansharpening lib/otb/applications ./share/otb/description/
[ 89%] ./bin/otbQgisDescriptor ReadImageInfo lib/otb/applications ./share/otb/description/
[ 89%] ./bin/otbQgisDescriptor ExtractROI lib/otb/applications ./share/otb/description/
[ 89%] ./bin/otbQgisDescriptor DynamicConvert lib/otb/applications ./share/otb/description/
[ 89%] ./bin/otbQgisDescriptor CompareImages lib/otb/applications ./share/otb/description/
[ 89%] ./bin/otbQgisDescriptor ConcatenateImages lib/otb/applications ./share/otb/description/
[ 89%] ./bin/otbQgisDescriptor ManageNoData lib/otb/applications ./share/otb/description/
[ 89%] ./bin/otbQgisDescriptor Rasterization lib/otb/applications ./share/otb/description/
[ 90%] ./bin/otbQgisDescriptor VectorDataTransform lib/otb/applications ./share/otb/description/
[ 90%] ./bin/otbQgisDescriptor Mosaic lib/otb/applications ./share/otb/description/
[ 90%] ./bin/otbQgisDescriptor ResetMargin lib/otb/applications ./share/otb/description/
[ 90%] ./bin/otbQgisDescriptor VectorDataExtractROI lib/otb/applications ./share/otb/description/
/home/grayshade/Projects/otb/build/OTB/build/bin/otbQgisDescriptor: error while loading shared libraries: libtiff.so.6: cannot open shared object file: No such file or directory
[ 90%] ./bin/otbQgisDescriptor ConcatenateVectorData lib/otb/applications ./share/otb/description/
[ 90%] ./bin/otbQgisDescriptor VectorDataSetField lib/otb/applications ./share/otb/description/
[ 90%] ./bin/otbQgisDescriptor ZonalStatistics lib/otb/applications ./share/otb/description/
/home/grayshade/Projects/otb/build/OTB/build/bin/otbQgisDescriptor: error while loading shared libraries: libtiff.so.6: cannot open shared object file: No such file or directory
[ 91%] ./bin/otbQgisDescriptor OrthoRectification lib/otb/applications ./share/otb/description/
[ 91%] ./bin/otbQgisDescriptor RigidTransformResample lib/otb/applications ./share/otb/description/
/home/grayshade/Projects/otb/build/OTB/build/bin/otbQgisDescriptor: error while loading shared libraries: libtiff.so.6: cannot open shared object file: No such file or directory
[ 91%] ./bin/otbQgisDescriptor Superimpose lib/otb/applications ./share/otb/description/
gmake[5]: *** [Modules/Core/Wrappers/QGIS/src/CMakeFiles/generate_descriptors.dir/build.make:416: share/otb/description/OpticalCalibration.txt] Error 127
gmake[5]: *** Waiting for unfinished jobs....
gmake[5]: *** [Modules/Core/Wrappers/QGIS/src/CMakeFiles/generate_descriptors.dir/build.make:196: share/otb/description/BundleToPerfectSensor.txt] Error 127
gmake[5]: *** [Modules/Core/Wrappers/QGIS/src/CMakeFiles/generate_descriptors.dir/build.make:424: share/otb/description/Pansharpening.txt] Error 127
/home/grayshade/Projects/otb/build/OTB/build/bin/otbQgisDescriptor: error while loading shared libraries: libtiff.so.6: cannot open shared object file: No such file or directory
[ 91%] ./bin/otbQgisDescriptor ImageEnvelope lib/otb/applications ./share/otb/description/
[ 91%] ./bin/otbQgisDescriptor VectorDataReprojection lib/otb/applications ./share/otb/description/
[ 91%] ./bin/otbQgisDescriptor ColorMapping lib/otb/applications ./share/otb/description/
[ 91%] ./bin/otbQgisDescriptor MultiResolutionPyramid lib/otb/applications ./share/otb/description/
[ 91%] ./bin/otbQgisDescriptor Quicklook lib/otb/applications ./share/otb/description/
/home/grayshade/Projects/otb/build/OTB/build/bin/otbQgisDescriptor: error while loading shared libraries: libtiff.so.6: cannot open shared object file: No such file or directory
/home/grayshade/Projects/otb/build/OTB/build/bin/otbQgisDescriptor: error while loading shared libraries: libtiff.so.6: cannot open shared object file: No such file or directory
gmake[5]: *** [Modules/Core/Wrappers/QGIS/src/CMakeFiles/generate_descriptors.dir/build.make:280: share/otb/description/ExtractROI.txt] Error 127
/home/grayshade/Projects/otb/build/OTB/build/bin/otbQgisDescriptor: error while loading shared libraries: libtiff.so.6: cannot open shared object file: No such file or directory
/home/grayshade/Projects/otb/build/OTB/build/bin/otbQgisDescriptor: error while loading shared libraries: libtiff.so.6: cannot open shared object file: No such file or directory
/home/grayshade/Projects/otb/build/OTB/build/bin/otbQgisDescriptor: error while loading shared libraries: libtiff.so.6: cannot open shared object file: No such file or directory
[ 91%] ./bin/otbQgisDescriptor TileFusion lib/otb/applications ./share/otb/description/
[ 91%] ./bin/otbQgisDescriptor Synthetize lib/otb/applications ./share/otb/description/
[ 91%] ./bin/otbQgisDescriptor SplitImage lib/otb/applications ./share/otb/description/
[ 91%] ./bin/otbQgisDescriptor PixelValue lib/otb/applications ./share/otb/description/
/home/grayshade/Projects/otb/build/OTB/build/bin/otbQgisDescriptor: error while loading shared libraries: libtiff.so.6: cannot open shared object file: No such file or directory
/home/grayshade/Projects/otb/build/OTB/build/bin/otbQgisDescriptor: error while loading shared libraries: libtiff.so.6: cannot open shared object file: No such file or directory
/home/grayshade/Projects/otb/build/OTB/build/bin/otbQgisDescriptor: error while loading shared libraries: libtiff.so.6: cannot open shared object file: No such file or directory
gmake[5]: *** [Modules/Core/Wrappers/QGIS/src/CMakeFiles/generate_descriptors.dir/build.make:452: share/otb/description/ReadImageInfo.txt] Error 127
/home/grayshade/Projects/otb/build/OTB/build/bin/otbQgisDescriptor: error while loading shared libraries: libtiff.so.6: cannot open shared object file: No such file or directory
gmake[5]: *** [Modules/Core/Wrappers/QGIS/src/CMakeFiles/generate_descriptors.dir/build.make:228: share/otb/description/ConcatenateImages.txt] Error 127
gmake[5]: *** [Modules/Core/Wrappers/QGIS/src/CMakeFiles/generate_descriptors.dir/build.make:208: share/otb/description/CompareImages.txt] Error 127
gmake[5]: *** [Modules/Core/Wrappers/QGIS/src/CMakeFiles/generate_descriptors.dir/build.make:372: share/otb/description/ManageNoData.txt] Error 127
gmake[5]: *** [Modules/Core/Wrappers/QGIS/src/CMakeFiles/generate_descriptors.dir/build.make:448: share/otb/description/Rasterization.txt] Error 127
gmake[5]: *** [Modules/Core/Wrappers/QGIS/src/CMakeFiles/generate_descriptors.dir/build.make:268: share/otb/description/DynamicConvert.txt] Error 127
gmake[5]: *** [Modules/Core/Wrappers/QGIS/src/CMakeFiles/generate_descriptors.dir/build.make:392: share/otb/description/Mosaic.txt] Error 127
gmake[5]: *** [Modules/Core/Wrappers/QGIS/src/CMakeFiles/generate_descriptors.dir/build.make:456: share/otb/description/ResetMargin.txt] Error 127
gmake[5]: *** [Modules/Core/Wrappers/QGIS/src/CMakeFiles/generate_descriptors.dir/build.make:592: share/otb/description/VectorDataTransform.txt] Error 127
/home/grayshade/Projects/otb/build/OTB/build/bin/otbQgisDescriptor: error while loading shared libraries: libtiff.so.6: cannot open shared object file: No such file or directory
/home/grayshade/Projects/otb/build/OTB/build/bin/otbQgisDescriptor: error while loading shared libraries: libtiff.so.6: cannot open shared object file: No such file or directory
/home/grayshade/Projects/otb/build/OTB/build/bin/otbQgisDescriptor: error while loading shared libraries: libtiff.so.6: cannot open shared object file: No such file or directory
/home/grayshade/Projects/otb/build/OTB/build/bin/otbQgisDescriptor: error while loading shared libraries: libtiff.so.6: cannot open shared object file: No such file or directory
/home/grayshade/Projects/otb/build/OTB/build/bin/otbQgisDescriptor: error while loading shared libraries: libtiff.so.6: cannot open shared object file: No such file or directory
gmake[5]: *** [Modules/Core/Wrappers/QGIS/src/CMakeFiles/generate_descriptors.dir/build.make:608: share/otb/description/ZonalStatistics.txt] Error 127
gmake[5]: *** [Modules/Core/Wrappers/QGIS/src/CMakeFiles/generate_descriptors.dir/build.make:460: share/otb/description/RigidTransformResample.txt] Error 127
gmake[5]: *** [Modules/Core/Wrappers/QGIS/src/CMakeFiles/generate_descriptors.dir/build.make:420: share/otb/description/OrthoRectification.txt] Error 127
/home/grayshade/Projects/otb/build/OTB/build/bin/otbQgisDescriptor: error while loading shared libraries: libtiff.so.6: cannot open shared object file: No such file or directory
gmake[5]: *** [Modules/Core/Wrappers/QGIS/src/CMakeFiles/generate_descriptors.dir/build.make:232: share/otb/description/ConcatenateVectorData.txt] Error 127
gmake[5]: *** [Modules/Core/Wrappers/QGIS/src/CMakeFiles/generate_descriptors.dir/build.make:580: share/otb/description/VectorDataExtractROI.txt] Error 127
gmake[5]: *** [Modules/Core/Wrappers/QGIS/src/CMakeFiles/generate_descriptors.dir/build.make:588: share/otb/description/VectorDataSetField.txt] Error 127
/home/grayshade/Projects/otb/build/OTB/build/bin/otbQgisDescriptor: error while loading shared libraries: libtiff.so.6: cannot open shared object file: No such file or directory
/home/grayshade/Projects/otb/build/OTB/build/bin/otbQgisDescriptor: error while loading shared libraries: libtiff.so.6: cannot open shared object file: No such file or directory
gmake[5]: *** [Modules/Core/Wrappers/QGIS/src/CMakeFiles/generate_descriptors.dir/build.make:540: share/otb/description/Superimpose.txt] Error 127
/home/grayshade/Projects/otb/build/OTB/build/bin/otbQgisDescriptor: error while loading shared libraries: libtiff.so.6: cannot open shared object file: No such file or directory
gmake[5]: *** [Modules/Core/Wrappers/QGIS/src/CMakeFiles/generate_descriptors.dir/build.make:332: share/otb/description/ImageEnvelope.txt] Error 127
/home/grayshade/Projects/otb/build/OTB/build/bin/otbQgisDescriptor: error while loading shared libraries: libtiff.so.6: cannot open shared object file: No such file or directory
/home/grayshade/Projects/otb/build/OTB/build/bin/otbQgisDescriptor: error while loading shared libraries: libtiff.so.6: cannot open shared object file: No such file or directory
gmake[5]: *** [Modules/Core/Wrappers/QGIS/src/CMakeFiles/generate_descriptors.dir/build.make:204: share/otb/description/ColorMapping.txt] Error 127
/home/grayshade/Projects/otb/build/OTB/build/bin/otbQgisDescriptor: error while loading shared libraries: libtiff.so.6: cannot open shared object file: No such file or directory
/home/grayshade/Projects/otb/build/OTB/build/bin/otbQgisDescriptor: error while loading shared libraries: libtiff.so.6: cannot open shared object file: No such file or directory
gmake[5]: *** [Modules/Core/Wrappers/QGIS/src/CMakeFiles/generate_descriptors.dir/build.make:544: share/otb/description/Synthetize.txt] Error 127
/home/grayshade/Projects/otb/build/OTB/build/bin/otbQgisDescriptor: error while loading shared libraries: libtiff.so.6: cannot open shared object file: No such file or directory
/home/grayshade/Projects/otb/build/OTB/build/bin/otbQgisDescriptor: error while loading shared libraries: libtiff.so.6: cannot open shared object file: No such file or directory
gmake[5]: *** [Modules/Core/Wrappers/QGIS/src/CMakeFiles/generate_descriptors.dir/build.make:400: share/otb/description/MultiResolutionPyramid.txt] Error 127
gmake[5]: *** [Modules/Core/Wrappers/QGIS/src/CMakeFiles/generate_descriptors.dir/build.make:440: share/otb/description/Quicklook.txt] Error 127
gmake[5]: *** [Modules/Core/Wrappers/QGIS/src/CMakeFiles/generate_descriptors.dir/build.make:432: share/otb/description/PixelValue.txt] Error 127
gmake[5]: *** [Modules/Core/Wrappers/QGIS/src/CMakeFiles/generate_descriptors.dir/build.make:528: share/otb/description/SplitImage.txt] Error 127
gmake[5]: *** [Modules/Core/Wrappers/QGIS/src/CMakeFiles/generate_descriptors.dir/build.make:584: share/otb/description/VectorDataReprojection.txt] Error 127
/home/grayshade/Projects/otb/build/OTB/build/bin/otbQgisDescriptor: error while loading shared libraries: libtiff.so.6: cannot open shared object file: No such file or directory
gmake[5]: *** [Modules/Core/Wrappers/QGIS/src/CMakeFiles/generate_descriptors.dir/build.make:548: share/otb/description/TileFusion.txt] Error 127
gmake[4]: *** [CMakeFiles/Makefile2:11482: Modules/Core/Wrappers/QGIS/src/CMakeFiles/generate_descriptors.dir/all] Error 2
gmake[3]: *** [Makefile:156: all] Error 2
gmake[2]: *** [CMakeFiles/OTB.dir/build.make:87: OTB/src/OTB-stamp/OTB-build] Error 2
gmake[1]: *** [CMakeFiles/Makefile2:974: CMakeFiles/OTB.dir/all] Error 2
gmake: *** [Makefile:91: all] Error 2
```
I do have `libtiff` already built in the current directory:
```
TIFF/build/libtiff/libtiff.so
TIFF/build/libtiff/libtiff.so.6
TIFF/build/libtiff/libtiff.so.6.0.2
```
My workaround was to do something like below, but it isn't ideal, of course:
```
cmake --build . --parallel $(nproc); cp OTB/build/lib/libOTBSampling-9.0.so.1 ../superbuild_install/lib/libOTBSampling-9.0.so.1; cp OTB/build/lib/otb/applications/otbapp_SampleAugmentation.so ../superbuild_install/lib/otb/applications/otbapp_SampleAugmentation.so
```
### Steps to reproduce
```
$ mkdir build
$ cd build
$ ccmake ../SuperBuild # choose your favourite settings
$ cmake --build . --parallel $(nproc)
```
### Configuration information
Fedora 39, tested at c302db4eab9815ba94d83c29ce45aa4b0dc144b6
![image](/uploads/7be70d36a2fbbc1fd96cd1efe57489dc/image.png)https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2374AfterExecuteAndWriteOutputs() not called from python API2024-01-08T10:13:07ZRémi CressonAfterExecuteAndWriteOutputs() not called from python APIIt looks like `AfterExecuteAndWriteOutputs()` is not called in python.
OTB 9.0.0, Ubuntu 22.04
I test with various applications but the most easy is with Mosaic, setting `tmpdir` and `comp.feather` to `large`.
In CLI the tmp files are ...It looks like `AfterExecuteAndWriteOutputs()` is not called in python.
OTB 9.0.0, Ubuntu 22.04
I test with various applications but the most easy is with Mosaic, setting `tmpdir` and `comp.feather` to `large`.
In CLI the tmp files are deleted, in python they are not.https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2367vector files and other result files do not get saved when running OTB from QGIS2023-12-01T12:36:23ZJanOPedersenvector files and other result files do not get saved when running OTB from QGIS### Description
When running for instance the segmentation operation, everything seams to work until the result file and result layer is to be shown. Neither the shape file, nor result layer are produced.
### Steps to reproduce
0. QGI...### Description
When running for instance the segmentation operation, everything seams to work until the result file and result layer is to be shown. Neither the shape file, nor result layer are produced.
### Steps to reproduce
0. QGIS is already installed
1. Install OTB in QGIS
2. Run OTB -> Segmentation -> Segmentation
use default parameters and set the 'output vector file' to 'save as file' and provide a local folder and for instance the name 'segmentation.shp'
3. Press 'run'
4. The logs now show that the result has been saved to the specified file (segmentation.shp) in the specified folder, but the file does not exist.
5. the layer is not added either
### Configuration information
OS, OTB version or tag, information related to build (binaries, superbuild, system libs ...)
OS: Windows 11
OTB: 8.1.2
QGIS: 3.34https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2366no data management with otbcli_Superimpose2023-12-01T10:08:19ZemmaBno data management with otbcli_Superimposeotbcli_Superimpose doesn't seem to take into account (and then to ignore) no data values.
It considers them as usual values so they are used in the computation of new pixel values.
Would it be possible to add a parameter "no data value" ...otbcli_Superimpose doesn't seem to take into account (and then to ignore) no data values.
It considers them as usual values so they are used in the computation of new pixel values.
Would it be possible to add a parameter "no data value" ?
(otb version 7.4.0 in command line)https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2365QGIS Plugin being removed from core2024-03-25T13:21:26ZJulien CabiecesQGIS Plugin being removed from core### Remove OTB QGIS Plugin from core
#### High level description
OTB provider plugin is currently being part of the QGIS core, and some [discussions](https://lists.osgeo.org/pipermail/qgis-developer/2023-November/066221.html) has been ...### Remove OTB QGIS Plugin from core
#### High level description
OTB provider plugin is currently being part of the QGIS core, and some [discussions](https://lists.osgeo.org/pipermail/qgis-developer/2023-November/066221.html) has been raised to remove it so it becomes a fully 3rd party plugin, maintained by the OTB community.
I have both contributed to QGIS and OTB and I'm in favor of this proposal.
#### Risks and benefits
I think it would ease development of the plugin and would lower the pain of managing compatibility between QGIS and OTB.
#### Alternatives for implementations
That would require to move the OTB QGIS Plugin to the [QGIS Plugin platform](https://plugins.qgis.org/) or even embed it in the OTB installer.
### Who will be developing the proposed changes?
At the moment, no one is clearly identified to make the modifications.
OTB is a great tool and we would like to see it still integrated into QGIS.
If you have any questions or concerns, please let us know.
CC @ytanguyhttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2364patchelf error when installing OTB 8.1.2 binaries2023-10-30T14:37:44ZLuc Hermittepatchelf error when installing OTB 8.1.2 binaries### Description
When installing OTB-8.1.2-Linux64.run in a fresh ubuntu docker, the procedure fails on
```
patchelf: unsupported overlap of SHT_NOTE and PT_NOTE
```
### Steps to reproduce
The issue has been reproduced when starting ...### Description
When installing OTB-8.1.2-Linux64.run in a fresh ubuntu docker, the procedure fails on
```
patchelf: unsupported overlap of SHT_NOTE and PT_NOTE
```
### Steps to reproduce
The issue has been reproduced when starting from ubuntu:20.04 and 18.04 dockers and with a few other packages already installed.
Here is a exact Dockerfile that reproduces the issue: https://gitlab.orfeo-toolbox.org/s1-tiling/s1tiling-dockers/-/blob/7ba53957ff28a23a854bdf37e8a2bc55bc65dfce/ubuntu/base/Dockerfile
And a related failing job: https://gitlab.orfeo-toolbox.org/s1-tiling/s1tiling-dockers/-/jobs/78367#L1171
### My investigations
- The issue don't seem to be observed with the dockers you produce. I guess it's related to the other packages I require.
- It seems related to version 0.12 of patchelf https://github.com/NixOS/patchelf/issues/255#issuecomment-907561501
=> upgrading it to the latest version is possibly a simple fix.
### Configuration information
- OS: ubuntu 20.04 and 22.04 dockers
- OTB binaries 8.1.2
- S1Tiling installation procedurehttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2362Windows Python API with Python 3.82023-10-24T15:56:02ZPennyJClarkeWindows Python API with Python 3.8Is there a planned upgrade of pyotb with Python 3.8 for Windows? Or do you have guidance for someone that needs to use pyotb from a Python 3.8 environment?
I would like to use Orfeo Toolbox using Python 3.8, for the operation of additio...Is there a planned upgrade of pyotb with Python 3.8 for Windows? Or do you have guidance for someone that needs to use pyotb from a Python 3.8 environment?
I would like to use Orfeo Toolbox using Python 3.8, for the operation of additional code I am using it is essential that I work in Python version 3.8.
I am aware the current version of Orfeo Toolbox operates with Python 3.7. I am currently trialling the use of an executable as a work around, to operate pyotb within python 3.7 from my python 3.8 environment.
As a .py script in the environment with python 3.7 the code works as expected, when I convert the .py to an executable, I am receiving errors running the executable when importing pyotb, and for each failed attempt to import, the executable restarts until it locates pyotb. As a result each attempted executable then proceeds to run multiple versions of the same process/code. This consumes all my computer memory and the code never completes running.
Can you offer guidance on work arounds for using pyotb with Python 3.8 please, or can you detail if there are any planned upgrades for compatability with Python 3.8 on Windows.
Thank you for your guidance.https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2361ToJSON() method in otbGeometryMetadata returns a string that is not a valid json2024-02-05T17:04:54ZDamiano MissoniToJSON() method in otbGeometryMetadata returns a string that is not a valid jsonThe function does not return a valid json due to trailing comma after the last elements.
```cpp
// JSON export
std::string ToJSON(bool multiline=false) const;
inline static std::string doubleArrayToString(const double* array)
{
...The function does not return a valid json due to trailing comma after the last elements.
```cpp
// JSON export
std::string ToJSON(bool multiline=false) const;
inline static std::string doubleArrayToString(const double* array)
{
std::ostringstream oss;
oss << "[";
for (int loop = 0 ; loop < 20 ; loop++)
oss << " \"" << array[loop] << "\", ";
oss << "]";
return oss.str();
}
```https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2360OrthoRectification of Pleiades HR product using high resolution DSM (50 cm re...2023-10-05T08:44:17ZArnaud JouzeauOrthoRectification of Pleiades HR product using high resolution DSM (50 cm resolution) hangs on indefinitely when gridspacing is set to 50cmThe bug occurs on an HPC cluster (CNES). Even when setting walltime to 200 hours, OTB remains stuck with no output until the job is killed due to time limit reached.
I tried several RAM parameterization but there was no change in the res...The bug occurs on an HPC cluster (CNES). Even when setting walltime to 200 hours, OTB remains stuck with no output until the job is killed due to time limit reached.
I tried several RAM parameterization but there was no change in the result.
The DSM was generated using CARS from the same Pleiades perfect sensor image that is then to be orthorectified by OTB.
export GDAL_NUM_THREADS=44
export ITK_GLOBAL_DEFAULT_NUMBER_OF_THREADS=44
export ITK_USE_THREADPOOL=1
are set in the job script.https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2359Maximum sample size in TrainImagesClassifier2023-09-20T08:01:31ZJulien OsmanMaximum sample size in TrainImagesClassifier### Description
This bug was reported [by a user on the forum](https://forum.orfeo-toolbox.org/t/maximum-sample-size-in-trainimagesclassifier/1651).
The *TrainImageClassifier* application has a mechanism to balance the class representa...### Description
This bug was reported [by a user on the forum](https://forum.orfeo-toolbox.org/t/maximum-sample-size-in-trainimagesclassifier/1651).
The *TrainImageClassifier* application has a mechanism to balance the class representation on the training and validation set. This mechanism should be deactivated when the user sets `sample.bm` to `0`.
The code related to this issue:
- https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/blob/develop/Modules/Applications/AppClassification/include/otbTrainImagesBase.hxx#L169
- https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/blob/develop/Modules/Applications/AppClassification/include/otbTrainImagesBase.hxx#L222
- https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/blob/develop/Modules/Applications/AppClassification/app/otbMultiImageSamplingRate.cxx#L226
### Steps to reproduce
Run *TrainImageClassifier* with options sampling.mt=-1, sampling.mv=-1, and sampling.bm=0. The log says:
> (INFO) TrainImagesClassifier: Sampling strategy : fit the number of samples based on the smallest class
The expected log is
> (INFO) TrainImagesClassifier: Sampling strategy : take all samples
### Configuration information
The user on the forum uses QGIShttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2358Set the proper WL/WB values for the different layers2023-09-19T08:06:19ZDamiano MissoniSet the proper WL/WB values for the different layersHi everyone.
OpticalCalibration misses a feature that can be useful to someone.
When performing atmospheric corrections on a non supported satellite image, it seems not possible to set the values of the wavelengths (or wavebands) of im...Hi everyone.
OpticalCalibration misses a feature that can be useful to someone.
When performing atmospheric corrections on a non supported satellite image, it seems not possible to set the values of the wavelengths (or wavebands) of image channels. otbcli_OpticalCalibration use the same selfdefined WL value for all the bands (i.e. 0.65 microns) and, therefore, the atmospheric correction is not correct.
It would be useful to add the possibility to set proper WL/WB values for every layer.
Also, Mapla GUI doesn’t have a box where indicates the image wavebands.
Link to the forum extended discussion: [Setting wavebands for atmospheric correction of non supported images - Usage - Orfeo Toolbox forum (orfeo-toolbox.org)](https://forum.orfeo-toolbox.org/t/setting-wavebands-for-atmospheric-correction-of-non-supported-images/1649)https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2357Generating slow epipolar grids with a DEM not in lon lat2023-09-11T14:32:14ZFlorian DouziechGenerating slow epipolar grids with a DEM not in lon lat### Description
Generating epipolar grids with a DEM
The application `StereoRectificationGridGenerator` application and the `epi.elevation.dem` parameter takes a very long time when dem is not in lon lat.
result of computing duration ...### Description
Generating epipolar grids with a DEM
The application `StereoRectificationGridGenerator` application and the `epi.elevation.dem` parameter takes a very long time when dem is not in lon lat.
result of computing duration on a small srtm file:
* with lon lat dem : 1.4 sec
* with utm dem : 16 sec
### Steps to reproduce
* geoid: https://github.com/CNES/cars/blob/master/cars/conf/geoid/egm96.grd
* inputs: https://github.com/CNES/cars/blob/master/tutorials/data_gizeh.tar.bz2
untar the file
* dem in lon lat
`srtm_dir/N29E031_KHEOPS.tif`
* dem in utm
```
gdalwarp -t_srs EPSG:32636 srtm_dir/N29E031_KHEOPS.tif dem.tif
```
* generating epipolar grids script
```
import otbApplication
app = otbApplication.Registry.CreateApplication("StereoRectificationGridGenerator")
app.SetParameterString("io.inleft", "data_gizeh/img1.tif")
app.SetParameterString("io.inright", "data_gizeh/img2.tif")
app.SetParameterString("io.outleft", "epi_grid1.tif")
app.SetParameterString("io.outright", "epi_grid2.tif")
app.SetParameterString("epi.elevation.dem", "dem.tif")
app.SetParameterFloat("epi.elevation.default", 0)
app.SetParameterString("epi.elevation.geoid","cars/conf/geoid/egm96.grd")
app.SetParameterInt("epi.step", 30)
app.ExecuteAndWriteOutput()
```
### Configuration information
* OTB 7.4.1 ubuntu 22.04
* install command
```
RUN cmake \
"-DBUILD_COOKBOOK:BOOL=OFF" "-DBUILD_EXAMPLES:BOOL=OFF" "-DBUILD_SHARED_LIBS:BOOL=ON" \
"-DBUILD_TESTING:BOOL=OFF" "-DOTB_USE_6S:BOOL=OFF" "-DOTB_USE_CURL:BOOL=ON" \
"-DOTB_USE_GLEW:BOOL=OFF" "-DOTB_USE_GLFW:BOOL=OFF" "-DOTB_USE_GLUT:BOOL=OFF" \
"-DOTB_USE_GSL:BOOL=OFF" "-DOTB_USE_LIBKML:BOOL=OFF" "-DOTB_USE_LIBSVM:BOOL=ON" \
"-DOTB_USE_MPI:BOOL=OFF" "-DOTB_USE_MUPARSER:BOOL=ON" "-DOTB_USE_MUPARSERX:BOOL=ON" \
"-DOTB_USE_OPENCV:BOOL=OFF" "-DOTB_USE_OPENGL:BOOL=OFF" "-DOTB_USE_OPENMP:BOOL=OFF" \
"-DOTB_USE_QT:BOOL=OFF" "-DOTB_USE_QWT:BOOL=OFF" "-DOTB_USE_SIFTFAST:BOOL=ON" \
"-DOTB_USE_SPTW:BOOL=OFF" "-DOTB_WRAP_PYTHON:BOOL=ON" "-DCMAKE_BUILD_TYPE=Release" \
"-DOTB_USE_SHARK:BOOL=OFF" "-DBUILD_EXAMPLES:BOOL=OFF" \
-DCMAKE_INSTALL_PREFIX="/usr/local/otb" -GNinja .. && \
ninja install && \
```https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2341Misleading docs + bug for nodata declaration in extended filenames (for multi...2023-05-12T14:55:10ZVincent DelbarMisleading docs + bug for nodata declaration in extended filenames (for multi-band images)### Description
I want to remove this GDAL warning :
```
Warning 1: Setting nodata to 65535 on band 1, but band 2 has nodata at 0. The TIFFTAG_GDAL_NODATA only support one value per dataset. This value of 65535 will be used for all ba...### Description
I want to remove this GDAL warning :
```
Warning 1: Setting nodata to 65535 on band 1, but band 2 has nodata at 0. The TIFFTAG_GDAL_NODATA only support one value per dataset. This value of 65535 will be used for all bands on re-opening
```
Following the docs, I added a value for each band as follow : `1:65535,2:65535,3:65535`.
First issue here, the example in the cookbook is contradictory :
* "Band/Value pair" syntax: `image_filename?&nodata=0:-999,1:255,2:254` -> nodata value corresponds to pixels with values [-999,255,254]
* It is important to note that the band numbering in the nodata writer option follows the GDAL convention and **starts at 1**
Moreover, even when using the right syntax and passing 3 values, the warning message ramins.
### Steps to reproduce
`otbcli_BandMathX -il image_3bands.tif -exp 'im1' -out 'out.tif?&nodata=1:65535,2:65535,3:65535'`
### Configuration information
I'm using OTB 8.1.1 on Ubuntu 22.04.https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2339LargeScaleMeanShift logs always say "0 small regions will be removed"2023-04-17T07:23:07ZJulien OsmanLargeScaleMeanShift logs always say "0 small regions will be removed"### Description
When running LargeScaleMeanShift, the logs say "0 small regions will be removed", even if more than 1 small region is removed.
A user reported this issue [on the forum](https://forum.orfeo-toolbox.org/t/largescalemeansh...### Description
When running LargeScaleMeanShift, the logs say "0 small regions will be removed", even if more than 1 small region is removed.
A user reported this issue [on the forum](https://forum.orfeo-toolbox.org/t/largescalemeanshift-dishonour-parameter-settings/1531/1). He used WordlView3 products. I tried with a Sentinel2 product. When the parameter `minsize` is set to 50, I can see that the smallest region's size is 50. And when the parameter is set to 10, the smallest region's size is 10. This shows that some regions are removed.
### Steps to reproduce
Run LargeScaleMeanShift. Read the logs at the "Small regions pruning" step.
### Configuration information
OTB 8.1.1.https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2338C++17 ?2023-04-06T07:49:12ZRémi CressonC++17 ?Hi,
I am trying to switch to C++17, to build OTB along with a project that required it.
From what I saw, setting the `set(CMAKE_CXX_STANDARD 17)` in CMakeLists.txt enables to compile the whole library, at least on Ubuntu:22.04, and my ...Hi,
I am trying to switch to C++17, to build OTB along with a project that required it.
From what I saw, setting the `set(CMAKE_CXX_STANDARD 17)` in CMakeLists.txt enables to compile the whole library, at least on Ubuntu:22.04, and my project's functional tests all pass (I don't use all OTB applications though!). So that is great news.
But when I try to enable `BUILD_TESTING=ON`, I got a lot on compilation errors that I dont well understand.
I tried to solve a few of them but unfortunately I am stuck with some `error: invalid use of 'void'` errors. [Here](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/commits/tryto_compile_cpp17) is my working copy.
Moving from C++14 to C++17 doesn't look so complicated, since the library can be compiled (without tests).
Any plans to switch to C++17? (There was !799 but it's old)