otb issueshttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues2022-09-19T07:19:24Zhttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2303Activate checkbox missing in QGIS 3.22.10-Białowieża (Mac)2022-09-19T07:19:24Zefall19Activate checkbox missing in QGIS 3.22.10-Białowieża (Mac)I downloaded QGIS 3.22 and OTB-8.0.1 (under /Applications).
I first checked that the OTB provider is activated in Plugins/Manage and Install Plugins, then I wanted to set up the path in setting/options/processing/provider/OTB, but the a...I downloaded QGIS 3.22 and OTB-8.0.1 (under /Applications).
I first checked that the OTB provider is activated in Plugins/Manage and Install Plugins, then I wanted to set up the path in setting/options/processing/provider/OTB, but the activate checkbox is missing. I tried to find how to make it appear but could not find any solution that works online.
![Screen_Shot_2022-09-07_at_9.58.31_AM](/uploads/1f611d5739e50ae36ad3f462f07e3e82/Screen_Shot_2022-09-07_at_9.58.31_AM.png)https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2302Release 8.1.02022-09-28T08:08:54ZJulien OsmanRelease 8.1.0We are ready to release OTB version 8.1.0. The following steps need to be done:
## Release Candidate 1
### 1. Branches
* [x] Feature freeze: [create the new release branch](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-...We are ready to release OTB version 8.1.0. The following steps need to be done:
## Release Candidate 1
### 1. Branches
* [x] Feature freeze: [create the new release branch](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#create-release-branch)
* [x] Make sure the version number in `CMakeLists.txt` is 8.1.0
### 2. Housekeeping
* [x] In this story, make a list of blocking issues for the release (if any)
* [x] Update release notes (walk the GitLab MR merged history and log all improvements)
* [x] Update the date in RELEASE_NOTES.txt
* [ ] Check [SonarQube](https://sonar.orfeo-toolbox.org/dashboard?id=orfeotoolbox-otb)
* [ ] Run Debian [spelling](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#spelling-check) checker
* [ ] Run shellcheck script from [OTB-Devutils/Scripts/](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb-devutils/blob/master/Scripts/run_shellcheck.sh)
* [x] [Update translation](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#translation-for-monteverdi-mapla) for Monteverdi and Mapla
* [x] [Sanity check the binary packages](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#standalone-packages-sanity-check)
* [x] Windows
* [x] Linux
* [x] Mac
* [x] Test QGIS on qgis docker image
### 3. Actual release
Once all blocking issues are closed, and the previous steps are done:
* [x] [Tag the release candidate](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#release-tag)
* [x] Update GIT_TAG for all official remote modules (if needed)
### 4. Publish and plan next release
* [x] [Prepare and upload source packages](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#prepare-and-upload-source-packages)
* [x] [Promote staging packages](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#promote-staging-packages)
* [x] [Update documentation](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#update-documentation)
* [x] Cookbook
* [x] Doxygen
* [x] [Update the SuperBuild archive](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#superbuild-archive)
* [x] Release Candidate announcement on the forum
## Release Candidate 2
### 1. Branches
* [x] Make sure the version number in `CMakeLists.txt` is 8.1.0
### 2. Housekeeping
* [x] In this story, make a list of blocking issues for the release (if any)
* [x] Update release notes (walk the GitLab MR merged history and log all improvements)
* [x] Update the date in RELEASE_NOTES.txt
* [x] Check [SonarQube](https://sonar.orfeo-toolbox.org/dashboard?id=orfeotoolbox-otb)
* [ ] Run Debian [spelling](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#spelling-check) checker
* [ ] Run shellcheck script from [OTB-Devutils/Scripts/](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb-devutils/blob/master/Scripts/run_shellcheck.sh)
* [x] [Update translation](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#translation-for-monteverdi-mapla) for Monteverdi and Mapla
* [x] [Sanity check the binary packages](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#standalone-packages-sanity-check)
* [x] Windows
* [x] Linux
* [x] Mac
* [x] Test QGIS on qgis docker image
### 3. Actual release
Once all blocking issues are closed, and the previous steps are done:
* [x] [Tag the release candidate](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#release-tag)
* [x] Update GIT_TAG for all official remote modules (if needed)
### 4. Publish and plan next release
* [x] [Prepare and upload source packages](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#prepare-and-upload-source-packages)
* [x] [Promote staging packages](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#promote-staging-packages)
* [x] [Update documentation](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#update-documentation)
* [x] Cookbook
* [x] Doxygen
* [x] [Update the SuperBuild archive](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#superbuild-archive)
* [x] Release Candidate announcement on the forum
## Release
### 1. Branches
* [x] Make sure the version number in `CMakeLists.txt` is 8.1.0
### 2. Housekeeping
* [x] In this story, make a list of blocking issues for the release (if any)
* [x] Fix compilation warnings on CI
* [x] Update release notes (walk the GitLab MR merged history and log all improvements)
* [x] Update the date in RELEASE_NOTES.txt
* [x] Check [SonarQube](https://sonar.orfeo-toolbox.org/dashboard?id=orfeotoolbox-otb)
* [x] Run Debian [spelling](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#spelling-check) checker
* [x] Run shellcheck script from [OTB-Devutils/Scripts/](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb-devutils/blob/master/Scripts/run_shellcheck.sh)
* [x] [Update translation](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#translation-for-monteverdi-mapla) for Monteverdi and Mapla
* [x] [Sanity check the binary packages](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#standalone-packages-sanity-check)
* [x] Windows
* [x] Linux
* [x] Mac
* [x] Test QGIS on qgis docker image
### 3. Actual release
Once all blocking issues are closed, and the previous steps are done:
* [x] [Tag the release](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#release-tag)
* [x] **(if major or minor release)**: Merge the release into develop
* [x] **(if it's the latest release)**: Merge the release into master
* [x] **(if patch release)**: Backport fixes
* [x] Update GIT_TAG for all official remote modules (if needed)
### 4. Publish and plan next release
* [x] [Prepare and upload source packages](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#prepare-and-upload-source-packages)
* [x] [Promote staging packages](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#promote-staging-packages)
* [x] [Update documentation](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#update-documentation)
* [x] Cookbook
* [x] Doxygen
* [x] WordPress page "Home" and "Download" pages
* [x] Upload OTB source archive to [Zenodo](https://zenodo.org/) to create a unique Digital Object Identifier (DOI)
* [x] [Update the SuperBuild archive](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#superbuild-archive)
* [x] Release announcement
* [x] On the [forum](https://forum.orfeo-toolbox.org/)
* [x] On the [blog](https://www.orfeo-toolbox.org/blog/)
* [x] On [Twitter](https://twitter.com/orfeotoolbox)
* [x] Forward announcement to news_item@osgeo.org ([OSGeo news](https://www.osgeo.org/foundation-news/))
* [x] Remove public branches related to MR or bugfix merged before the release8.1.0Julien OsmanJulien Osmanhttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2301Activate checkbox missing - QGIS 3.22.92022-09-28T08:20:51ZoguerrareaActivate checkbox missing - QGIS 3.22.9The activate checkbox is missing in this QGIS version.
When I try to add the OTB application folder and the OTB folder the following occurs:
```
An error has occurred while executing Python code:
TypeError: expected str, bytes or os....The activate checkbox is missing in this QGIS version.
When I try to add the OTB application folder and the OTB folder the following occurs:
```
An error has occurred while executing Python code:
TypeError: expected str, bytes or os.PathLike object, not NoneType
Traceback (most recent call last):
File "C:\PROGRA~1/QGIS32~1.9/apps/qgis-ltr/./python/plugins\processing\gui\ConfigDialog.py", line 81, in apply
self.config_widget.accept()
File "C:\PROGRA~1/QGIS32~1.9/apps/qgis-ltr/./python/plugins\processing\gui\ConfigDialog.py", line 319, in accept
setting.setValue(str(self.items[setting].text()))
File "C:\PROGRA~1/QGIS32~1.9/apps/qgis-ltr/./python/plugins\processing\core\ProcessingConfig.py", line 325, in setValue
self.validator(value)
File "C:\PROGRA~1/QGIS32~1.9/apps/qgis-ltr/./python/plugins\otbprovider\OtbAlgorithmProvider.py", line 167, in validateAppFolders
descr_folder = self.descrFolder(folder)
File "C:\PROGRA~1/QGIS32~1.9/apps/qgis-ltr/./python/plugins\otbprovider\OtbAlgorithmProvider.py", line 206, in descrFolder
if os.path.exists(os.path.join(d, 'description')):
File "C:\PROGRA~1\QGIS32~1.9\apps\Python39\lib\ntpath.py", line 78, in join
path = os.fspath(path)
TypeError: expected str, bytes or os.PathLike object, not NoneType
Python version: 3.9.5 (tags/v3.9.5:0a7dcbd, May 3 2021, 17:27:52) [MSC v.1928 64 bit (AMD64)]
QGIS version: 3.22.9-Białowieża Białowieża, a8e9e6fa
Python Path:
C:/PROGRA~1/QGIS32~1.9/apps/qgis-ltr/./python
C:/Users/oguer/AppData/Roaming/QGIS/QGIS3\profiles\default/python
C:/Users/oguer/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins
C:/PROGRA~1/QGIS32~1.9/apps/qgis-ltr/./python/plugins
C:\Program Files\QGIS 3.22.9\bin\python39.zip
C:\PROGRA~1\QGIS32~1.9\apps\Python39\DLLs
C:\PROGRA~1\QGIS32~1.9\apps\Python39\lib
C:\Program Files\QGIS 3.22.9\bin
C:\PROGRA~1\QGIS32~1.9\apps\Python39
C:\PROGRA~1\QGIS32~1.9\apps\Python39\lib\site-packages
C:\PROGRA~1\QGIS32~1.9\apps\Python39\lib\site-packages\win32
C:\PROGRA~1\QGIS32~1.9\apps\Python39\lib\site-packages\win32\lib
C:\PROGRA~1\QGIS32~1.9\apps\Python39\lib\site-packages\Pythonwin
C:/Users/oguer/AppData/Roaming/QGIS/QGIS3\profiles\default/python
C:\Users/oguer/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\joinmultiplelines
C:\Users\oguer\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\kmltools\libs
C:\Users\oguer\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\mmqgis/forms
```https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2300Allow disconnected builds of remote modules2022-09-05T12:27:17ZStefanBruensAllow disconnected builds of remote modulesAllow/simplify builds of remote modules when no network is available
Currently, OTB requires remote modules to be fetched at cmake configure time. This is problematic for several reasons:
- Build hosts are often isolated for security r...Allow/simplify builds of remote modules when no network is available
Currently, OTB requires remote modules to be fetched at cmake configure time. This is problematic for several reasons:
- Build hosts are often isolated for security reasons
- Fetching git HEAD of a branch makes a build non-reproducible, as HEAD may change
Preferably, OTB would allow to supply remote modules as tarballs (or expanded in the appropriate directory).
Although it is possible to download e.g. https://gitlab.orfeo-toolbox.org/jinglada/temporalgapfilling/-/archive/master/temporalgapfilling-master.tar.bz2 and expand it to the correct directory, this is rejected by `otb_fetch_content` as the tarball does not contain the `.git` subdirectory.
CMake since 3.11 has the [FetchContent module](https://cmake.org/cmake/help/v3.11/module/FetchContent.html) which does everything OTBs homegrown fetch code does, but also allows to disable fetching content using the `FETCHCONTENT_FULLY_DISCONNECTED` cache variable. Using `FetchContent` would require a small bump of the minimum version, from 3.10.2 to 3.11.9.0.0Thibaut ROMAINThibaut ROMAINhttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2299Unexpected result with minsize in LargeScaleMeanShift2023-03-07T09:33:35ZaloboaUnexpected result with minsize in LargeScaleMeanShiftThe following runs
```
otbcli_LargeScaleMeanShift -in 'PL20200706_MICAPCAc_sub05.tif' -spatialr 5 -ranger 5 -minsize 1 -mode.vector.out MSw05_s5_r5_m1.shp -ram 256
otbcli_LargeScaleMeanShift -in 'PL20200706_MICAPCAc_sub05.tif' -spatialr...The following runs
```
otbcli_LargeScaleMeanShift -in 'PL20200706_MICAPCAc_sub05.tif' -spatialr 5 -ranger 5 -minsize 1 -mode.vector.out MSw05_s5_r5_m1.shp -ram 256
otbcli_LargeScaleMeanShift -in 'PL20200706_MICAPCAc_sub05.tif' -spatialr 15 -ranger 5 -minsize 1 -mode.vector.out MSw05_s15_r5_m1.shp -ram 256
otbcli_LargeScaleMeanShift -in 'PL20200706_MICAPCAc_sub05.tif' -spatialr 21 -ranger 5 -minsize 1 -mode.vector.out MSw05_s21_r5_m1.shp -ram 256
```
all produce a 1 pixel grid segmentation.
all produce a 1 pixel grid segmentation:
![image](/uploads/95b3a65e8831d3d8026e47b134ff19c8/image.png)
(zoom of the upper-left corner)
According to the doc, "Minimum Segment Size. If, after the segmentation, a segment is of size strictly lower than this criterion, the segment is merged with the segment that has the closest sepctral signature". Rather, it seems like here 1-pixel segments have been enforced.
If I set -minsize 20, I do get a reasonable segmentation, but identical in all 3 cases:
`otbcli_LargeScaleMeanShift -in 'PL20200706_MICAPCAc_sub05.tif' -spatialr 5 -ranger 5 -minsize 20 -mode.vector.out MSw05_s5_r5_m20.shp -ram 256`
![image](/uploads/49bc79c202369ede4b33e26509abaa5c/image.png)
(zoom of the upper-left corner)
Instead, if I use otbcli_Segmentation, the minsize=1 parameter seems to work fine:
`otbcli_Segmentation -in 'PL20200706_MICAPCAc_sub05.tif' -filter meanshift -filter.meanshift.spatialr 5 -filter.meanshift.ranger 5 -mode vector -mode.vector.minsize 1 -mode.vector.out 'MSw05_s5_r5_m1_B.shp'`
![image](/uploads/a08178b1f63c94e1458309c264ef69db/image.png)
Get the Input image: https://www.dropbox.com/s/u32tsw878dn31az/PL20200706_MICAPCAs_sub05.tif?dl=0https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2298Segmentation app: file named "layer.*" unexpectedly created if output file ex...2023-02-28T17:55:58ZaloboaSegmentation app: file named "layer.*" unexpectedly created if output file exists (both obcli and QGIS)If the file pointed by the output file name exists, this is not overwritten, but a file named "layer.*" is created instead.
Also, in QGIS, no confirmation message of the type ("File exists, overwrite?") pops up, and the same name "layer....If the file pointed by the output file name exists, this is not overwritten, but a file named "layer.*" is created instead.
Also, in QGIS, no confirmation message of the type ("File exists, overwrite?") pops up, and the same name "layer.*" is set to the output.
if MSQB_s5_r5_m1_B.shp exists, the following command:
`otbcli_Segmentation -in QB_Toulouse_Ortho_PAN.tif -filter.meanshift.spatialr 5 -filter.meanshift.ranger 5 -filter.meanshift.minsize 1 -mode vector -mode.vector.out MSQB_s5_r5_m1_B.shp -filter meanshift`
produces file "layer.*" with no clarifying message.
Using OTB 8.0.1https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2297`SARCalibration` doesn't work with RadarSat-2 products2024-02-05T16:35:35ZLaurențiu Nicola`SARCalibration` doesn't work with RadarSat-2 productsFails in 8.0.1, works in 7.4.0. Apparently, it's looking for `/product.xml`.
In addition, the one in 7.4 drops the GCPs, ~~not sure if that's expected~~, I guess that's fine since we write a `.geom`.Fails in 8.0.1, works in 7.4.0. Apparently, it's looking for `/product.xml`.
In addition, the one in 7.4 drops the GCPs, ~~not sure if that's expected~~, I guess that's fine since we write a `.geom`.https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2296OpticalCalibration of Pléiades data : values are always converted to milli re...2022-07-10T11:13:24ZVincent DelbarOpticalCalibration of Pléiades data : values are always converted to milli reflectance when using "-clamp false"### Description
When applying TOA calibration to Pléiades input (using DIMAP file), the parameter "milli" does not work as expected.
If using `-clamp false -milli false`, this results in max pixel values of ~7000, and with `-clamp fal...### Description
When applying TOA calibration to Pléiades input (using DIMAP file), the parameter "milli" does not work as expected.
If using `-clamp false -milli false`, this results in max pixel values of ~7000, and with `-clamp false -milli true`, max values are ~7000000.
The app works as it should when `clamp=true`.
### Steps to reproduce
`otbcli_OpticalCalibration -in DIM_SPOT7_MS_202110181018290_ORT_SPOT7_20211020_1123561t8mvr6c2yiv0_1.XML -level toa -clamp false -milli true -out test.tif`
`gdalinfo test.tif -stats`
### Configuration information
Ubuntu 20.04, same result when using OTB 7.4.1 or 8.0.1.
OTB was built from source using system dependencies (ubuntugis), so GDAL version is 3.4.3.
Same result with fresh OTB 8.0.1 binaries.https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2295Problem when trying to orthorectify an image issued from SuperImpose applicat...2022-08-30T17:50:11ZYannick TANGUYProblem when trying to orthorectify an image issued from SuperImpose application (OTB 8)### Description
Some OTB 8 users reported us the fact that it was impossible to orthorectify an image that was computed by Superimpose application.
The use-case can be describe as following :
- [optional] Extract an ROI of some georef...### Description
Some OTB 8 users reported us the fact that it was impossible to orthorectify an image that was computed by Superimpose application.
The use-case can be describe as following :
- [optional] Extract an ROI of some georeferenced data
- superimpose that data onto a PHR image in its raw sensor geometry
- orthorectify that image
=> we expect that final step to produce an image co-registered with our initial data.
This problem can be reproduced for example with OTB PHR images from Workshop Data. With OTB 7.4, the behaviour was correct but with OTB 8.x, the image issued from Superimpose does not contain the right metadata to compute orthorectification.
### Steps to reproduce
To reproduce that problem on different images, I wrote that little script :
```
#!/bin/sh
DIR=$1
IM_GEO=$2
IM_SENSOR=$3
mkdir -p ${DIR}/step2_extractroi
mkdir -p ${DIR}/step3_superimpose
mkdir -p ${DIR}/step4_ortho
otbcli_ExtractROI -in ${IM_GEO} -out ${DIR}/step2_extractroi/xt_ortho.tif -startx 500 -starty 500 -sizex 500 -sizey 500
otbcli_Superimpose -inr ${IM_SENSOR} -inm ${DIR}/step2_extractroi/xt_ortho.tif -out ${DIR}/step3_superimpose/xt_sensor.tif
otbcli_OrthoRectification -io.in ${DIR}/step3_superimpose/xt_sensor.tif -io.out ${DIR}/step4_ortho/xt_ortho.tif
```
### Configuration information
OTB 8.x or OTB 7.4 (binaries)Julien OsmanJulien Osmanhttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2294The application RefineSensorModel is missing in version 8.0+2024-02-01T08:58:17Zhello-willyThe application RefineSensorModel is missing in version 8.0+# Refactoring the RefineSensorModel application
## Context
The application RefineSensorModel uses a set of tie points to adjust the parameters of a sensor model.
It uses an optimization algorithm (least-square) to fit the model to the...# Refactoring the RefineSensorModel application
## Context
The application RefineSensorModel uses a set of tie points to adjust the parameters of a sensor model.
It uses an optimization algorithm (least-square) to fit the model to the fit points.
The inputs of the application are
- a geom file containing the sensor model
- a text file containing the tie points
The outputs are
- a geom file containing the refined sensor model
- a text file containing output precision statistics
- a text file containing segments representing residues
Since OTB 8, this application is not available.
We want to reintroduce it, since it is of great interest.
## Details of the refactoring
To reintroduce RefineSensorModel, we need to address multiple issues
### OTB doesn't write geom files anymore
The new version of OTB can't produce a geom file as output of the application.
We propose to change the RefineSensorModel application to work at the product level.
Instead of reading and writing a geom file, it will read and write an image file.
Impact:
- The `ingeom` and `outgeom` parameters become `inImage` and `outImage`, and are of type "ParameterType_InputImage" instead of "ParameterType_InputFilename".
- Use the `SensorTransformFactory` to load the RPC or SAR model from the metadata of the input image.
### Hold the fit points
The fit points used to be stored in the SensorModelAdapter class.
This class was removed with OSSIM, so we need to store the fit points somewhere else.
The proposed class for this task is `SensorTransformBase`.
Impact:
- Add the attribute `m_TiePoints` and implement the function `AddTiePoint` to `SensorTransformBase`.
### Run the optimization
The optimization algorithm was provided by OSSIM.
So we need to implement the optimization algorithm and call it for each sensor model (SAR, RPC).
Impact:
- Implement the Least-Square Optimization algorithm ?
- Add an `Optimize` virtual function to `SensorTransformBase`.
- Implement an `Optimize` function in `RPCTransformBase` class that apply the optimization algorithm to the RPC model (RpcParam).
- Implement an `Optimize` function in `SARTransformBase` class that apply the optimization algorithm to the SAR model (SarParam).8.2.0https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2293Orhtorectification of Pleiades products are shifted with OTB 8.2022-08-29T12:27:56ZJulien OsmanOrhtorectification of Pleiades products are shifted with OTB 8.### Description
When processing a Pleiades product with the Orthorectification, the resulting image is shifted along the lines axis by 1 pixel.
### Steps to reproduce
Run an Orthorectification of a Pleiades product with OTB 7.4 and OT...### Description
When processing a Pleiades product with the Orthorectification, the resulting image is shifted along the lines axis by 1 pixel.
### Steps to reproduce
Run an Orthorectification of a Pleiades product with OTB 7.4 and OTB 8, and compare the results.8.1.0Julien OsmanJulien Osmanhttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2292Python export image to numpy is always float322022-08-29T15:47:26ZVincent DelbarPython export image to numpy is always float32It would be really nice to preserve the output data type, because right now, if we try to convert a big 8bit image to numpy, this will come out 4x bigger and since we need a copy in case the app ref is lost, it requires x8 times the imag...It would be really nice to preserve the output data type, because right now, if we try to convert a big 8bit image to numpy, this will come out 4x bigger and since we need a copy in case the app ref is lost, it requires x8 times the image footprint of available RAM...
This does not change anything to set the app's output parameter pixel type.
Ideally this could also apply to the python copy of the array.
Is it something feasible without a lot of code or do you think this should go in the 9.0 roadmap ?https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2291Ram Parameter Ignored In Mosaic2022-06-09T06:26:54ZJamesZDonlineRam Parameter Ignored In Mosaic### Description
When using the Mosaic Application through the python API with a feathering method set, the Ram Parameter is ignored.
### Steps to reproduce
With two images to mosaic (testExample.tif, testExample3.tif)
`TestMosaic = ot...### Description
When using the Mosaic Application through the python API with a feathering method set, the Ram Parameter is ignored.
### Steps to reproduce
With two images to mosaic (testExample.tif, testExample3.tif)
`TestMosaic = otb.Registry.CreateApplication("Mosaic")
TestMosaic.AddParameterStringList('il','testExample.tif')
TestMosaic.AddParameterStringList('il','testExample3.tif')
TestMosaic.SetParameterString("comp.feather","slim")
TestMosaic.SetParameterString("ram", "10000")
TestMosaic.SetParameterString("out", "testExampleOutput.tif")
TestMosaic.ExecuteAndWriteOutput()`
outputs to the terminal
`(INFO): Estimated memory for full processing: 2941.42MB (avail.: 256 MB), optimal image partitioning: 12 blocks`
The same behavior occurs if feathering is set to "large"
If I remove the "TestMosaic.SetParameterString("comp.feather","XXXXX")" line it says
`Estimated memory for full processing: 16950.4MB (avail.: 10000 MB), optimal image partitioning: 2 blocks`
### Configuration information
Windows 10, OTB 8.01 binarieshttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2290Python: behavior of applications differs in pipelines, when writing the inter...2022-08-03T09:10:42ZRémi CressonPython: behavior of applications differs in pipelines, when writing the intermediate outputs### Description
When playing with pipelines in python, some behaviors are not regular.
In particular, the writing of intermediate outputs fails in some cases but not with the same applications composing the pipeline.
As mentioned in iss...### Description
When playing with pipelines in python, some behaviors are not regular.
In particular, the writing of intermediate outputs fails in some cases but not with the same applications composing the pipeline.
As mentioned in issue #2286, several ways exist to write intermediate outputs of a pipeline. however, some of them fail with specific OTB application depending on their order in the pipeline.
In our context, we play with pipelines in two main steps.
- step 1: build a pipeline composed of several apps, without specifying output files names.
- step 2: when we are happy with the created pipeline, we trigger the writings of some specific outputs.
### Steps to reproduce
Reproducible: always.
Code:
This pipeline composed of **Mosaic** --> **ManageNoData** does **work**:
```python
import otbApplication
inp = "input.tif"
# Pipeline creation
app1 = otbApplication.Registry.CreateApplication("Mosaic")
app1.SetParameterStringList("il", [inp])
app1.Execute()
app2 = otbApplication.Registry.CreateApplication("ManageNoData")
app2.SetParameterString("mode", "changevalue")
app2.SetParameterInputImage("in", app1.GetParameterOutputImage("out"))
app2.Execute()
app1.SetParameterString("out", "/tmp/out_1.tif")
app1.WriteOutput()
app2.SetParameterString("out", "/tmp/out_2.tif")
app2.WriteOutput()
```
Note that we could have replaced **Mosaic** with other applications, e.g. **Smoothing** and the pipeline still works.
The exact same pipeline, composed of **BandMath** --> **ManageNoData** does **not work**:
```python
import otbApplication
inp = "input.tif"
# Pipeline creation
app1 = otbApplication.Registry.CreateApplication("BandMath")
app1.SetParameterStringList("il", [inp])
app1.SetParameterString("exp", "im1b1")
app1.Execute()
app2 = otbApplication.Registry.CreateApplication("ManageNoData")
app2.SetParameterString("mode", "changevalue")
app2.SetParameterInputImage("in", app1.GetParameterOutputImage("out"))
app2.Execute()
app1.SetParameterString("out", "/tmp/out_1.tif")
app1.WriteOutput()
app2.SetParameterString("out", "/tmp/out_2.tif")
app2.WriteOutput()
```
The error is the following:
```
itk::ERROR: MultiThreader(0x2cf43f0): Exception occurred during SingleMethodExecute
/usr/include/ITK-4.13/itkImageConstIterator.h:210:
itk::ERROR: Region ImageRegion (0x7ffd29290250)
...
is outside of buffered region ImageRegion (0x3005390)
Dimension: 2
Index: [0, 0]
Size: [0, 0]
```
With OTB 7.4.0, I have noticed the same error replacing **BandMath** with **DynamicConvert**.
So, this happen with some specific applications, but not all.
I have tried to debug at the applications and filters level, with no finding for now. In particular I was trying to determine if `itk::InPlaceFilters` were at the origin, but for now I have no clue.
### Configuration information
- Ubuntu 20.04
- OTB 7.4.0 or 8.0.1https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2288Pyton: Segfault when execute() is not properly called2023-01-06T08:24:16ZRémi CressonPyton: Segfault when execute() is not properly called### Description
A nasty segfault happen under some very basic conditions, when using applications from the Python wrapper and trying to access some image information
### Steps to reproduce
The following script causes a segfault:
```p...### Description
A nasty segfault happen under some very basic conditions, when using applications from the Python wrapper and trying to access some image information
### Steps to reproduce
The following script causes a segfault:
```python
import otbApplication
app = otbApplication.Registry.CreateApplication("BandMath")
app.SetParameterStringList("il", ["some_raster.tif"])
#app.Execute() # Uncomment this: no segfault
print(app.GetImageSize("out"))
```
### Configuration information
Ubuntu 20.04
OTB :
- 7.4.0
- 8.0.18.2.0https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2287Missing feature in DEMHandler2023-11-28T09:00:59ZLuc HermitteMissing feature in DEMHandler**TL;DR:** Provide `DEMHandler::GetGeoidHeight()`
## Rationale
`DEMHandler::GetHeightAboveEllipsoid()` has a convoluted behaviour. Depending on what is visible it would return:
- either geoid offset + DEM offset
- or DEM offset -- alm...**TL;DR:** Provide `DEMHandler::GetGeoidHeight()`
## Rationale
`DEMHandler::GetHeightAboveEllipsoid()` has a convoluted behaviour. Depending on what is visible it would return:
- either geoid offset + DEM offset
- or DEM offset -- almost equivalent to `GetHeightAboveMSL()`
- or default height above ellipsoid
- or geoid offset
Sometimes we only need the geoid offset (it's the case of DiapOTB SARDEMProjection application).
We could make sure to have no DEM information configured, but then the application can not be chained into memory with another application that will need DEM information. Indeed `DEMHandler` is still mostly used as a global object (a singleton) (which is another known issue #2093), which makes it impossible to simultaneously have and not have DEM information.
Even if we don't chain such applications _in-memory_, we must not forget to clear DEM configuration if the applications are used through Python API and not isolated in different _subprocesses_. Indeed the memory would be shared between the various application object, and as such all the singletons...
As a workaround, SARDEMprojection detects `$OTB_GEOID_FILE` value to directly read geoid data from that file, and it falls back to `DEMHandler::GetHeightAboveEllipsoid()` if it's not possible. It's much too easy to use incorrectly.
That's why it'd be better to provide a dedicated `DEMHandler::GetGeoidHeight()` that would simplify applications such as SARDEMProjection, and that would avoid troubles regarding whether we configure DEM information or not in the global `DEMHandler`.https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2286Python Wrapper: issue to generate intermediate results of a pipeline2022-06-07T11:38:49ZRémi CressonPython Wrapper: issue to generate intermediate results of a pipeline### Description
Hi,
We have noticed that we cannot write intermediate outputs from a pipeline composed of OTB applications, from the python wrapper.
Let **App1** and **App2** two OTB applications.
- **App1** inputs the *input.tif* geot...### Description
Hi,
We have noticed that we cannot write intermediate outputs from a pipeline composed of OTB applications, from the python wrapper.
Let **App1** and **App2** two OTB applications.
- **App1** inputs the *input.tif* geotiff file, and write the *out1.tif* geotiff file
- **App2** inputs **App1** output, and write the *out2.tif* geotiff file
It is not possible to write *out1.tif* and *out2.tif* once the entire pipeline has been created (with `Execute()` calls after setting **App1** and **App2**)
```mermaid
graph LR;
'input.tif'-->App1
App1-->App2;
App1-->'out1.tif';
App2-->'out2.tif';
```
### Steps to reproduce
**bug.py**:
```python
import otbApplication
# Pipeline creation
app1 = otbApplication.Registry.CreateApplication("ManageNoData")
app1.SetParameterString("mode", "changevalue")
app1.SetParameterString("in", "input.tif")
app1.Execute()
app2 = otbApplication.Registry.CreateApplication("BandMath")
app2.AddImageToParameterInputImageList("il", app1.GetParameterOutputImage("out"))
app2.SetParameterString("exp", "im1b1")
app2.Execute()
# Later, we want to execute this pipeline
scenario = 3 # Change the value (1, 2 or 3)
if scenario == 1:
# This if OK
app1.SetParameterString("out", "out1.tif")
app1.ExecuteAndWriteOutput()
elif scenario == 2:
# This is OK
app2.SetParameterString("out", "app2.tif")
app2.ExecuteAndWriteOutput()
elif scenario == 3:
# This is NOT OK
app1.SetParameterString("out", "out1.tif")
app1.ExecuteAndWriteOutput()
app2.SetParameterString("out", "app2.tif")
app2.ExecuteAndWriteOutput()
```
Results in an ITK exception for `scenario = 3`:
```
itk::ERROR: Region ImageRegion (0x7ffe0da89c10)
Dimension: 2
Index: [0, 0]
Size: [81, 11]
is outside of buffered region ImageRegion (0x1150f80)
Dimension: 2
Index: [0, 0]
Size: [0, 0]
```
Is this behavior expected?
### Configuration information
OTB 7.4.0
Ubuntu 20.04https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2285i18n for OTB2022-06-01T23:07:59ZAmazingSARi18n for OTB### Description
I'm working on adding Chinese Language Support for OTB, I tried to generate a translation file zh_CN.ts with cmake but failed.
### Steps to reproduce
#### 1、I configured the project with **-DOTB_I18N_MERGE_TS=ON**
```
D:\...### Description
I'm working on adding Chinese Language Support for OTB, I tried to generate a translation file zh_CN.ts with cmake but failed.
### Steps to reproduce
#### 1、I configured the project with **-DOTB_I18N_MERGE_TS=ON**
```
D:\OTBSDK\src\build>cmake %CURRENT_DIR%\src -DCMAKE_PREFIX_PATH=%CURRENT_DIR%\install_%COMPILER_NAME% -DCMAKE_INSTALL_PREFIX=%CURRENT_DIR%\install_%COMPILER_NAME% -DSWIG_EXECUTABLE=%TOOLS_DIR%\swigwin-3.0.10\swig.exe -DCMAKE_BUILD_TYPE=%COMPILER_MODE% -DDOWNLOAD_LOCATION=%CURRENT_DIR%\downloads -DOTB_WRAP_PYTHON=ON -GNinja -DGDAL_CONFIG_CHECKING=OFF -DOTB_USE_GLEW=ON -DOTB_USE_OPENGL=ON -DOTB_USE_QT=ON -DOTB_USE_QWT=ON -DOTB_I18N_MERGE_TS=ON
```
Here's the result:
```
-- OTB-v 7.2.0 - Changes since version 7.1.0 (October 02nd, 2020)
-- 7.2.0
-- M: 7, m: 2, p: 0
-- Performing Test C_HAS_WARNING-Wformat=2
-- Performing Test C_HAS_WARNING-Wformat=2 - Failed
-- Performing Test CXX_HAS_WARNING-Wformat=2
-- Performing Test CXX_HAS_WARNING-Wformat=2 - Failed
-- SIMD extensions requested with OTB_USE_SSE_FLAGS=ON
-- Disabled OTBCurl because OTB_USE_CURL is OFF
-- Disabled OTBGLFW because OTB_USE_GLFW is OFF
-- Disabled OTBIceViewer because OTB_USE_GLFW is OFF
-- Disabled OTBGSL because OTB_USE_GSL is OFF
-- Disabled OTBGlut because OTB_USE_GLUT is OFF
-- Disabled OTBLibSVM because OTB_USE_LIBSVM is OFF
-- Disabled OTBMPI because OTB_USE_MPI is OFF
-- Disabled OTBMPIConfig because OTB_USE_MPI is OFF
-- Disabled OTBMPITiffWriter because OTB_USE_MPI is OFF
-- Disabled OTBMPIVrtWriter because OTB_USE_MPI is OFF
-- Disabled OTBSPTW because OTB_USE_MPI is OFF
-- Disabled OTBMuParser because OTB_USE_MUPARSER is OFF
-- Disabled OTBMathParser because OTB_USE_MUPARSER is OFF
-- Disabled OTBAppClassification because OTB_USE_MUPARSER is OFF
-- Disabled OTBAppMathParser because OTB_USE_MUPARSER is OFF
-- Disabled OTBAppProjection because OTB_USE_MUPARSER is OFF
-- Disabled OTBAppFusion because OTB_USE_MUPARSER is OFF
-- Disabled OTBAppStereo because OTB_USE_MUPARSER is OFF
-- Disabled OTBDempsterShafer because OTB_USE_MUPARSER is OFF
-- Disabled OTBCCOBIA because OTB_USE_MUPARSER is OFF
-- Disabled OTBAppSegmentation because OTB_USE_MUPARSER is OFF
-- Disabled OTBMeanShift because OTB_USE_MUPARSER is OFF
-- Disabled OTBMuParserX because OTB_USE_MUPARSERX is OFF
-- Disabled OTBMathParserX because OTB_USE_MUPARSERX is OFF
-- Disabled OTBAppMathParserX because OTB_USE_MUPARSERX is OFF
-- Disabled OTBOpenCV because OTB_USE_OPENCV is OFF
-- Disabled OTBShark because OTB_USE_SHARK is OFF
-- Disabled OTBlibkml because OTB_USE_LIBKML is OFF
-- Disabled OTBIOKML because OTB_USE_LIBKML is OFF
-- Disabled OTBKMZWriter because OTB_USE_LIBKML is OFF
-- Disabled OTBAppKMZ because OTB_USE_LIBKML is OFF
-- Enabled OTB6S, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBAnomalyDetection, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBAppChangeDetection, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBAppDescriptors, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBAppDimensionalityReduction, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBAppDomainTransform, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBAppEdge, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBAppFiltering, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBAppHyperspectral, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBAppImageUtils, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBAppIndices, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBAppMoments, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBAppMorphology, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBAppOpticalCalibration, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBAppSARCalibration, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBAppSARDecompositions, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBAppSARPolarMatrixConvert, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBAppSARPolarSynth, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBAppSARUtils, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBAppTest, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBAppTextures, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBAppVectorDataTranslation, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBAppVectorUtils, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBApplicationEngine, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBBoost, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBBoostAdapters, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBCarto, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBChangeDetection, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBCloudDetection, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBColorMap, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBCommandLine, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBCommon, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBComplexImage, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBContrast, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBConversion, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBConvolution, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBCorner, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBCurlAdapters, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBDEM, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBDensity, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBDescriptors, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBDimensionalityReduction, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBDimensionalityReductionLearning, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBDisparityMap, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBEdge, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBEndmembersExtraction, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBExtendedFilename, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBFunctor, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBFuzzy, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBGDAL, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBGdalAdapters, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBGeoTIFF, needed by [OTBOssimPlugins].
-- Enabled OTBGlew, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBIOBSQ, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBIOGDAL, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBIOLUM, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBIOMSTAR, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBIOONERA, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBIORAD, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBIOXML, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBITK, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBIce, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBImageBase, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBImageIO, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBImageManipulation, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBImageNoise, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBIndices, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBInterpolation, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBLabelMap, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBLabelling, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBLandSatClassifier, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBLearningBase, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBMajorityVoting, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBMapla, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBMarkov, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBMetadata, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBMetrics, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBMoments, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBMonteverdi, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBMonteverdiCore, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBMonteverdiGUI, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBMorphologicalProfiles, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBMosaic, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBOGRProcessing, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBOSSIMAdapters, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBObjectList, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBOpenGL, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBOpenThreads, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBOpticalCalibration, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBOssim, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBOssimPlugins, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBPanSharpening, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBPath, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBPointSet, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBPolarimetry, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBProjection, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBQGIS, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBQt, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBQtAdapters, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBQtWidget, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBQwt, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBSARCalibration, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBSOM, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBSWIGWrapper, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBSampling, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBSiftFast, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBSimulation, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBSmoothing, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBStatistics, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBStereo, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBStreaming, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBSupervised, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBTestKernel, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBTextures, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBTimeSeries, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBTinyXML, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBTransform, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBUnmixing, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBUnsupervised, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBVectorDataBase, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBVectorDataIO, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBVectorDataManipulation, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBWatersheds, requested by OTB_BUILD_DEFAULT_MODULES.
-- Enabled OTBWavelet, requested by OTB_BUILD_DEFAULT_MODULES.
-- Boost version: 1.69.0
-- Found Qwt: D:/OTBSDK/install_Releasex64/lib/qwt.lib (found version "6.1.5")
======================= Begin of OTB cmake summary =======================
CMAKE_SOURCE_DIR = D:/OTBSDK/src
CMAKE_BINARY_DIR = D:/OTBSDK/src/build
CMAKE_INSTALL_PREFIX = D:/OTBSDK/install_Releasex64
CMAKE_COMMAND = D:/OTBSDK/tools/cmake-3.14.7/bin/cmake.exe
CMAKE_C_COMPILER = C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl.exe
CMAKE_CXX_COMPILER = C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl.exe
CMAKE_MAKE_PROGRAM = D:/OTBSDK/tools/ninja/ninja.exe
CMAKE_GENERATOR = Ninja
CMAKE_BUILD_TYPE = Release
CMAKE_C_FLAGS = -W3 /DWIN32 /D_WINDOWS /W3
CMAKE_CXX_FLAGS = /bigobj -W3 /DWIN32 /D_WINDOWS /W3 /GR /EHsc /bigobj
OTB_USE_6S = ON
OTB_USE_CURL = OFF
OTB_USE_GLEW = ON
OTB_USE_GLFW = OFF
OTB_USE_GLUT = OFF
OTB_USE_GSL = OFF
OTB_USE_LIBKML = OFF
OTB_USE_LIBSVM = OFF
OTB_USE_MPI = OFF
OTB_USE_MUPARSER = OFF
OTB_USE_MUPARSERX = OFF
OTB_USE_OPENCV = OFF
OTB_USE_OPENGL = ON
OTB_USE_QT = ON
OTB_USE_QWT = ON
OTB_USE_SHARK = OFF
OTB_USE_SIFTFAST = ON
OTB_USE_SPTW = OFF
OTB_WRAP_PYTHON = ON
OTB_DATA_ROOT = D:/OTBSDK/src/Data
OTB_USE_OPENMP = OFF
OTB_USE_SSE_FLAGS = ON
Boost = 1.69.0
GDAL = 3.1.0
GDAL_INCLUDE_DIR = D:/OTBSDK/install_Releasex64/include
GDAL_LIBRARY = D:/OTBSDK/install_Releasex64/lib/gdal_i.lib
GEOTIFF = 1.5.1
GEOTIFF_INCLUDE_DIR = D:/OTBSDK/install_Releasex64/include
GEOTIFF_LIBRARY = D:/OTBSDK/install_Releasex64/lib/geotiff_i.lib
ITK = 4.13.2
ITK_DIR = D:/OTBSDK/install_Releasex64/lib/cmake/ITK-4.13
OSSIM = 1.8.20
OSSIM_INCLUDE_DIR = D:/OTBSDK/install_Releasex64/include
OSSIM_LIBRARY = D:/OTBSDK/install_Releasex64/lib/ossim.lib
QT = 5.11.3
TINYXML = 2.6.2
TINYXML_INCLUDE_DIR = D:/OTBSDK/install_Releasex64/include
TINYXML_LIBRARY = D:/OTBSDK/install_Releasex64/lib/tinyxml.lib
CMake 3.14.7 successfully configured OTB using Ninja generator
======================= End of OTB cmake summary =======================
CMake Warning (dev) at i18n/CMakeLists.txt:45 (message):
WARNING: OTB_I18N_MERGE_TS:BOOL option is set to ON. 'make clean' will
delete .ts files from source directory!
This warning is for project developers. Use -Wno-dev to suppress it.
-- Qt I18N source files: D:/OTBSDK/src/Modules/Visualization/MonteverdiCore/src/mvdAbstractWorker.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiCore/src/mvdAbstractModel.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiCore/src/mvdAbstractImageModel.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiCore/src/mvdAbstractLayerModel.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiCore/src/mvdBackgroundTask.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiCore/src/mvdCore.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiCore/src/mvdDataStream.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiCore/src/mvdFilenameInterface.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiCore/src/mvdHistogramModel.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiCore/src/mvdI18nCoreApplication.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiCore/src/mvdImageImporter.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiCore/src/mvdImagePlacenameLoader.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiCore/src/mvdImageProperties.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiCore/src/mvdImageSettings.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiCore/src/mvdImageSettingsInterface.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiCore/src/mvdModifiableInterface.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiCore/src/mvdMyClass.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiCore/src/mvdOverviewBuilder.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiCore/src/mvdProcessObjectObserver.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiCore/src/mvdProgressInterface.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiCore/src/mvdQuicklookModel.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiCore/src/mvdSerializableInterface.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiCore/src/mvdStackedLayerModel.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiCore/src/mvdTextStream.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiCore/src/mvdTypes.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiCore/src/mvdVectorImageModel.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiCore/src/mvdVectorImageSettings.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiCore/src/mvdVisibleInterface.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiCore/src/mvdApplicationsBrowser.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdAboutDialog.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdAbstractDragAndDropEventFilter.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdAbstractModelController.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdColorBandDynamicsWidget.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdColorDynamicsController.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdColorDynamicsWidget.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdColorSetupController.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdColorSetupWidget.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdDoubleValidator.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdDropLineEdit.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdFilenameDragAndDropEventFilter.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdGui.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdHistogramController.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdHistogramPlotPicker.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdHistogramWidget.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdI18nApplication.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdI18nMainWindow.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdImageViewRenderer.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdImageViewManipulator.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdImageViewWidget.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdImportImagesDialog.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdImportSubDatasetDialog.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdKeymapDialog.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdLayerStackController.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdLayerStackItemModel.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdLayerStackWidget.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdMainWindowTitleLoader.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdMultiResolutionPyramidWidget.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdPixelDescriptionWidget.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdProjectionBarWidget.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdQuicklookViewManipulator.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdQuicklookViewRenderer.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdSearchableTreeWidget.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdShaderWidget.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdStatusBarWidget.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdTaskProgressDialog.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdTreeWidget.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdTreeWidgetItem.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdTreeWidgetItemDragAndDropEventFilter.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdApplicationLauncher.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdApplicationsToolBox.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdApplicationsToolBoxController.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdOTBApplicationsModel.cxx;D:/OTBSDK/src/Modules/Visualization/MonteverdiGui/src/mvdQtWidgetView.cxx;D:/OTBSDK/src/Modules/Visualization/Mapla/src/mvdMaplaApplication.cxx;D:/OTBSDK/src/Modules/Visualization/Mapla/src/mvdMaplaMainWindow.cxx;D:/OTBSDK/src/Modules/Visualization/Monteverdi/src/mvdApplication.cxx;D:/OTBSDK/src/Modules/Visualization/Monteverdi/src/mvdMainWindow.cxx;D:/OTBSDK/src/Modules/Visualization/Monteverdi/src/mvdPreferencesDialog.cxx
-- Generating Qt5 'D:/OTBSDK/src/build/i18n/i18n.pro' project file for I18N.
-- Merge TS : D:/OTBSDK/src/i18n/zh_CN.ts
-- Configuring done
-- Generating done
-- Build files have been written to: D:/OTBSDK/src/build
```
#### 2、I build with ninja
```
ninja
```
Here's the result:
```
......
......
[1214/1225] Linking CXX shared library bin\OTBMonteverdi-7.2.dll
[1217/1225] Building RC object Modules\Visualization\Mapla\src\CMakeFiles\mapla.dir\mvdMaplaWin32.rc.res
Microsoft (R) Windows (R) Resource Compiler Version 10.0.10011.16384
Copyright (C) Microsoft Corporation. All rights reserved.
[1219/1225] Building RC object Modules\Visualization\Monteverdi\src\CMakeFiles\monteverdi.dir\mvdWin32.rc.res
Microsoft (R) Windows (R) Resource Compiler Version 10.0.10011.16384
Copyright (C) Microsoft Corporation. All rights reserved.
[1222/1225] Linking CXX executable bin\mapla.exe
[1223/1225] Linking CXX executable bin\monteverdi.exe
```
The program stucked here! I guess there's something wrong with generating ts file.
### Configuration information
Windows 11, OTB version 7.2, vs2015, I changed the CMakeLists.txt in src/i18n line 25 to 29 as follows
```
set( OTB_TS_TRANSLATIONS
# en_US.ts
# fr_FR.ts
zh_CN.ts
)
```
Are there any tricks to fix this issue, and/or what would I do to generate a .ts file for me ?
Many thanks, Haijunhttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2284Large scene segmentation : Error in LargeScaleMeanShift - File size cannot re...2022-06-08T13:35:48ZArthur de GrandpréLarge scene segmentation : Error in LargeScaleMeanShift - File size cannot reach [size]Hi,
I have been using MeanShiftSegmentation in a GEOBIA workflow successfully until larger scenes with large nodata areas appeared in our input images. The large nodata areas generated a very large amount of output polygons, making the ...Hi,
I have been using MeanShiftSegmentation in a GEOBIA workflow successfully until larger scenes with large nodata areas appeared in our input images. The large nodata areas generated a very large amount of output polygons, making the files much harder to manipulate.
To circumvent this issue, I have been trying to implement LargeScaleMeanShift, which seems to perform correctly until the Vectorization step, where the following error message is generated :
`
(FATAL) LargeScaleMeanShift: itk::ERROR: Cannot create a new feature in the layer <.shp>: Failed to write shape object. File size cannot reach 4294967160 + 136
`
The following input command is used to launch the app, where the input is a ~150Go 8 bands GeoTIFF Worldview-2 image:
`
-in image.tif -spatialr 5 -ranger 0.05 -minsize 3 -mode vector -mode.vector.out output/test.shp -cleanup true -ram 4000
`
[edit] I am using using OTB 7.1.0 on Windows 8.1 64bits
I have also tried with higher ram limits, without success.
Are there any tricks to fix this issue, and/or what would be the best practices when applying MeanShiftSegmentation to larger scenes?
Many thanks,
Arthurhttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2283VectorClassifier can't read filenames with spaces2022-05-17T06:16:46ZLinusVectorClassifier can't read filenames with spaces### Description
When I train a model with TrainVectorClassifier. I get a correct output in the location I choose.
When I try to use the model (rf, ann, svm) I get the following error:
### Steps to reproduce
Algorithmus beginnt bei: ...### Description
When I train a model with TrainVectorClassifier. I get a correct output in the location I choose.
When I try to use the model (rf, ann, svm) I get the following error:
### Steps to reproduce
Algorithmus beginnt bei: 2022-05-16T10:26:01
Algorithmus VectorClassifier startet…
Eingabeparameter:
{ 'in' : '/Users/linussommer/ownCloud/HiWi 2/GIS Modell/690_5704_statistic.gpkg', 'instat' : '', 'model' : '/Users/linussommer/ownCloud/HiWi 2/GIS Modell/690_5704_svm_model.svm', 'cfield' : '', 'feat' : ['mean_0','stdev_0','min_0','max_0'], 'confmap' : False, 'out' : **'/Users/linussommer/ownCloud/HiWi 2/GIS Modell/output.shp'** }
2022-05-16 10:26:02 (INFO) VectorClassifier: Default RAM limit for OTB is 256 MB
2022-05-16 10:26:02 (INFO) VectorClassifier: GDAL maximum cache size is 409 MB
2022-05-16 10:26:02 (INFO) VectorClassifier: OTB will use at most 4 threads
**Could not read file /Users/linussommer/ownCloud/HiWi**
Execution completed in 2.70 Sekunden
Ergebnisse:
**{'out': '/Users/linussommer/ownCloud/HiWi 2/GIS Modell/output.shp'}**
Lade Ergebnis Layer
Algorithmus 'VectorClassifier' beendet
### Configuration information
QGIS-Version: 3.22.5-Białowieża
QGIS-Codeversion: 2a0a86f142
Qt-Version: 5.14.2
Python-Version: 3.8.7
GDAL-Version: 3.2.1
GEOS-Version: 3.9.1-CAPI-1.14.2
PROJ-Version: Rel. 6.3.2, May 1st, 2020
OTB Version 8.0.0
macOS Catalina 10.15.7