otb issueshttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues2023-02-21T10:20:37Zhttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2327Seg Fault with otb 8.1.1 and SAR Calibration with thermal noise removal with ...2023-02-21T10:20:37ZMickael SavinaudSeg Fault with otb 8.1.1 and SAR Calibration with thermal noise removal with older product### Description
Segmentation Fault when I perform a SARCalibration of a Sentinel 1 product from 2018 with thermal noise removal option.
When I use a production from 2021 => No segfault
When I don't use the thermal noise removal => No se...### Description
Segmentation Fault when I perform a SARCalibration of a Sentinel 1 product from 2018 with thermal noise removal option.
When I use a production from 2021 => No segfault
When I don't use the thermal noise removal => No segfault
Not the case with otb7.4.1 with or without the thermal noise removal and with or without
### Steps to reproduce
After a proper installation from the latest release and the S1A_IW_GRDH_1SDV_20181102T153633_20181102T153700_024411_02ACA1_105A product
```sh
source ~/.local/otb-8.1.1/otbenv.profile
otbcli_SARCalibration -in input/36TWR/S1A_IW_GRDH_1SDV_20181102T153633_20181102T153700_024411_02ACA1_105A/S1A_IW_GRDH_1SDV_20181102T153633_20181102T153700_024411_02ACA1_105A.SAFE/measurement/s1a-iw-grd-vv-20181102t153633-20181102t153700-024411-02aca1-001.tiff -removenoise 1 -out /tmp/vv_cal_8.1.1.tif
2023-02-02 18:02:18 (INFO) SARCalibration: Default RAM limit for OTB is 256 MB
2023-02-02 18:02:18 (INFO) SARCalibration: GDAL maximum cache size is 1597 MB
2023-02-02 18:02:18 (INFO) SARCalibration: OTB will use at most 12 threads
2023-02-02 18:02:18 (INFO): Loading metadata from official product
2023-02-02 18:02:18 (INFO): Estimated memory for full processing: 12131.9MB (avail.: 256 MB), optimal image partitioning: 48 blocks
2023-02-02 18:02:18 (INFO): File /tmp/vv_cal_8.1.1.tif will be written in 42 blocks of 4096x3072 pixels
Writing /tmp/vv_cal_8.1.1.tif...: 82% [***************************************** ]Segmentation fault
```
With a 2021 product:
```
otbcli_SARCalibration -in input/31TCJ/S1A_IW_GRDH_1SDV_20210708T060105_20210708T060130_038682_04908E_8979/S1A_IW_GRDH_1SDV_20210708T060105_20210708T060130_038682_04908E_8979.SAFE/measurement/s1a-iw-grd-vv-20210708t060105-20210708t060130-038682-04908e-001.tiff -out /tmp/vv_cal_8.1.1_removenoise.tif
2023-02-02 18:11:29 (INFO) SARCalibration: Default RAM limit for OTB is 256 MB
2023-02-02 18:11:29 (INFO) SARCalibration: GDAL maximum cache size is 1597 MB
2023-02-02 18:11:29 (INFO) SARCalibration: OTB will use at most 12 threads
2023-02-02 18:11:29 (INFO): Loading metadata from official product
2023-02-02 18:11:29 (INFO): Estimated memory for full processing: 11756.2MB (avail.: 256 MB), optimal image partitioning: 46 blocks
2023-02-02 18:11:29 (INFO): File /tmp/vv_cal_8.1.1_removenoise.tif will be written in 42 blocks of 4096x3072 pixels
Writing /tmp/vv_cal_8.1.1_removenoise.tif...: 100% [**************************************************] (15s)
```
### Configuration information
Ubuntu 20.04 with official package 8.1.1https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/1824Strange memory use with applications from Python using Numpy outputs2023-02-05T16:27:13ZRémi CressonStrange memory use with applications from Python using Numpy outputs### Description
I noticed ~~two anomalies~~ one anomaly when using applications with Python, and getting the application outputs as Numpy arrays.
1. **Core dumped** : Python crashes, when the application instance is deleted but its out...### Description
I noticed ~~two anomalies~~ one anomaly when using applications with Python, and getting the application outputs as Numpy arrays.
1. **Core dumped** : Python crashes, when the application instance is deleted but its output still used
2. ~~**Memory leak** : Trying to workaround the aforementioned point, I've noticed something that looks like a memory leak: when the application instance is deleted, some memory is still used.~~
### Steps to reproduce
#### Core dumped
The python code below enables to reproduce this issue.
The `read_image()` function returns a subset of an image using the `ExtractROI` application, as a numpy array.
When we want to access the numpy array inside the `read_image()` function, everything is fine.
But when we want to do the same thing outside, from the returned numpy array of the function, it crashes.
It looks like when the application is "deleted" (Does that exists in python?) after the `read_image()` function returns, the numpy array isn't referenced any more.
```
# -*- coding: utf-8 -*-
import sys
import otbApplication
import numpy as np
tile_size = 100
def disp_stats(np_array):
print("\tMin:"+str(np.amin(np_array))+", Max:"+str(np.amax(np_array)) )
def read_image(fname):
imageReader = otbApplication.Registry.CreateApplication('ExtractROI')
imageReader.SetParameterString('in', fname)
imageReader.SetParameterInt('sizex', tile_size)
imageReader.SetParameterInt('sizey', tile_size)
imageReader.Execute()
outimg = imageReader.GetVectorImageAsNumpyArray('out', 'float')
print("Compute stats in \"read_image()\"...")
disp_stats(outimg)
print("Compute stats in \"read_image()\"... ok")
return outimg
if __name__ == "__main__":
if len(sys.argv) != 2:
print("Usage : <input_image.tif>")
sys.exit(1)
# Everything works fine
arr1 = read_image(sys.argv[1])
# Crash
print("Compute stats in \"__main()__\"...")
disp_stats(arr1)
print("Compute stats in \"__main()__\"...ok")
```
Output:
```
python bug1.py /path/to/my_image.tif
2019-01-28 09:56:34 (INFO): No kwl metadata found in file /path/to/my_image.tif
Compute stats in "read_image()"...
Min:0.0, Max:8135.0
Compute stats in "read_image()"... ok
Compute stats in "__main()__"...
Segmentation fault
```
From here, I found two workaround:
* Declare the `imageReader` as global
* Change the `read_image()` function to return a `np.copy()` of the actual application output as numpy array.
~~In both cases, I noticed a huge memory leak, that's what I am describing in the next point.~~
#### ~~Memory leak~~
~~I've used `psutil` to perform some memory monitoring.~~
~~The code below show that there is some memory leak inside the `read_image()` function after the previously described workaround.~~
~~An input image of 10000x10000x4 Float32 pixels is used.~~
~~This image weights approximately 1525 MB in RAM, and that is consistent with the RAM used before/after the `np.copy()` that copies the output-as-np-array of the `ExtractROI` application.~~
~~However, there is a huge extra-memory that isn't released after the `read_image()` function... The output shows that before the call to the function, there is 5110 MB RAM available, and after the call to the function, only 7456 MB, that makes 2346 MB RAM used to read the 1525 MB Float32 image... where is the extra 2346-1525=821 MB ?~~
~~I am not surprised that *during* the `read_image()` function, the `ExtractROI` application consumes more than the output image size (late release of input buffer, etc.). But the memory used at the end (when the application instance should not exist anymore) is strange.~~
```
# -*- coding: utf-8 -*-
import sys
import otbApplication
import numpy as np
import time
import psutil
import os
tile_size = 10000
sleep_duration = 10
process = psutil.Process(os.getpid())
# This is wrong!
#def get_ram():
# mem = psutil.virtual_memory()._asdict()
# return mem["used"] / (1024*1024)
# This is correct
def get_ram():
return process.memory_info().rss / (1024*1024)
def read_image(fname):
print("imageReader.Execute()...")
ram_before = get_ram()
imageReader = otbApplication.Registry.CreateApplication('ExtractROI')
imageReader.SetParameterString('in', fname)
imageReader.SetParameterInt('sizex', tile_size)
imageReader.SetParameterInt('sizey', tile_size)
imageReader.Execute()
print("imageReader.Execute()... ok. RAM in use: " + str(get_ram()) + " MB")
time.sleep(sleep_duration)
print("imageReader.GetVectorImageAsNumpyArray...")
outimg = imageReader.GetVectorImageAsNumpyArray('out', 'float')
print("imageReader.GetVectorImageAsNumpyArray...ok. RAM in use: " + str(get_ram()) + " MB")
ram_after = get_ram()
print("imageReader.Execute() + imageReader.GetVectorImageAsNumpyArray() used " + str(ram_after-ram_before) + " MB of RAM)")
time.sleep(sleep_duration)
print("Make a copy...")
ram_before = get_ram()
out = np.copy(outimg)
ram_after = get_ram()
print("Make a copy...ok. RAM in use: " + str(get_ram()) + " MB (np.copy() used " + str(ram_after-ram_before) + " MB of RAM)")
mem_mb = outimg.size * 4 / (1024*1024);
print("It is consistent with the image size " + str(outimg.shape) + " that should use " + str(mem_mb) + " mb of RAM")
time.sleep(sleep_duration)
return out
def test(fname):
print("Beginning test. RAM in use: " + str(get_ram()) + " MB")
ram_before = get_ram()
arr1 = read_image(fname)
ram_after = get_ram()
print("End of test. RAM in use: " + str(get_ram()) + " MB")
print("read_image() function has used " + str(ram_after-ram_before) + " MB of RAM")
time.sleep(sleep_duration)
if __name__ == "__main__":
if len(sys.argv) != 2:
print("Usage : <input_image.tif>")
sys.exit(1)
print("Used RAM: " + str(get_ram()) + " MB")
test(sys.argv[1])
```
### Configuration information
Reproduced this on various Ubuntu like environments (`Ubuntu 16.04 LTS` and `Ubuntu 18.04.1 LTS`) and various OTB versions (6.6.1 (da1daa5253a6485a3b96d3c5181e712bd8b62a1e) and 6.7 (a39cb76d4a1a5ce95f05771a91d9c85e590d56a8)).
linked to #1817 ?https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2039SensorModel factory for external models2023-01-19T16:29:59ZGuillaume PaseroSensorModel factory for external modelsPart of #1506
This item has a low priority for now, but it will be a real asset in the future.
The idea is to improve the SensorModel factory mechanism to load external sensor models. They should be used in association with the metada...Part of #1506
This item has a low priority for now, but it will be a real asset in the future.
The idea is to improve the SensorModel factory mechanism to load external sensor models. They should be used in association with the metadata entry `MDGeom::SensorModel`. The model is stored as a `boost::any`, the SensorModel will be in charge of its usage and serialization (so that GDAL can read/write the model to its metadata).
The SensorModel should derive from `otb::GenericRSTransform` (after its refactoring).
I don't think we need to include the optimization functions in the SensorModel (`AddTiePoint`, `Optimize`), they can be handled separately. The optimization functions are not top priority in this refactoring.
On the packaging side, we can:
* use a plugin mechanism to detect external sensor models in `lib/otb/plugins`
* use the variable `ITK_AUTOLOAD_PATH` to load the plugins
The tests related to Spot-5 were deactivated while implementing RPC models, because it is not based on RPC but in sensor physical characteristics. When the new SensorModel factory is implemented, those tests need to be reactivated:
- prTvSensorModel_spot5-18.0.0https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2324release 8.1.12023-01-18T09:46:35ZThibaut ROMAINrelease 8.1.1We are ready to release OTB version 8.1.1. The following steps need to be done:
## Release
### 1. Branches
* [x] Make sure the version number in `CMakeLists.txt` is 8.1.1
### 2. Housekeeping
* [x] In this story, make a list of blocki...We are ready to release OTB version 8.1.1. The following steps need to be done:
## Release
### 1. Branches
* [x] Make sure the version number in `CMakeLists.txt` is 8.1.1
### 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 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 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.1Thibaut ROMAINThibaut ROMAINhttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2322Application engine: `ExecuteAndWriteOutputs()` does modify `m_ExecuteDone` bu...2023-01-10T08:21:36ZRémi CressonApplication engine: `ExecuteAndWriteOutputs()` does modify `m_ExecuteDone` but not `WriteOutputs()`### Description
`ExecuteAndWriteOutputs()` does modify `m_ExecuteDone` but not `WriteOutputs()`.
Since !932, this cause an issue in the following use-case:
1. set a filename for an output parameter image,
2. directly use `WriteOutput()...### Description
`ExecuteAndWriteOutputs()` does modify `m_ExecuteDone` but not `WriteOutputs()`.
Since !932, this cause an issue in the following use-case:
1. set a filename for an output parameter image,
2. directly use `WriteOutput()`,
3. access output parameters (e.g. image metadata or size)
Since `UpdateParameter()` is called when the filename is set, the `m_ExecuteDone` is set back to `false`.
Even if the `Execute()` has been properly called before setting the filename.
### Steps to reproduce
**Code**
```py
import otbApplication
img_pth = "/vsicurl/https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/raw/develop/Data/Input/SP67_FR_subset_1.tif?inline=false"
app = otbApplication.Registry.CreateApplication("BandMath")
app.SetParameterStringList("il", [img_pth])
app.SetParameterString("exp", "im1b1")
app.Execute()
print(app.GetImageSize("out")) # WORKS
app.SetParameterString("out", "/tmp/toto.tif")
#print(app.GetImageSize("out")) # ERROR, but LGTM (parameters have been modified). Not a bug.
app.WriteOutput()
print(app.GetImageSize("out")) # ERROR: this is a bug since the whole pipeline has been executed.
# If we had used app.ExecuteAndWriteOutput() instead of
# app.WriteOutput(), it would not have raised the error.
```
**Output**
```
itk::ERROR: BandMath(0x12d7870): Call Execute() or ExecuteAndWriteOutput() before trying to reach output image information
```
### Configuration information
Ubuntu 20.04, Any OTB develop branch after !932Rémi CressonRémi Cressonhttps://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/2319Allow deactivate app's progressbar and any stdout when using the python API2022-12-16T11:10:42ZVincent DelbarAllow deactivate app's progressbar and any stdout when using the python APIThe python interface is really useful to implement parallelized workflows. But right now it is impossible to remove every app's std outputs (mainly the progress bar), even if we use `CreateApplicationWithoutLogger`, there is always an ou...The python interface is really useful to implement parallelized workflows. But right now it is impossible to remove every app's std outputs (mainly the progress bar), even if we use `CreateApplicationWithoutLogger`, there is always an output when writing a file.
It would be nice if this function really create an application without logger OR progress bar, so we don't see messed up terminal outputs when using apps in parallel. Moreover this progress bar isn't great when using pure terminal (ssh sessions or tmux) so it could be really useful to deactivate, especially if we want to add a progress logger at the python level.
Edit: I found out this depend on apps and versions, I need to better identify the issue before repostinghttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2312HTTP paths might be misinterpreted with extended filename options2022-10-18T09:39:46ZRémi CressonHTTP paths might be misinterpreted with extended filename optionsHTTP paths used with network based filesystems (managed by the [GDAL vsicurl filesystem handler](https://gdal.org/user/virtual_file_systems.html#network-based-file-systems)) can be misinterpreted with extended filename options.
Typicall...HTTP paths used with network based filesystems (managed by the [GDAL vsicurl filesystem handler](https://gdal.org/user/virtual_file_systems.html#network-based-file-systems)) can be misinterpreted with extended filename options.
Typically, here is an example with some S2 image from the Microsoft Planetary Computer.
```bash
otbcli_ReadImageInfo -in "/vsicurl/https://sentinel2l2a01.blob.core.windows.net/sentinel2-l2/11/S/LT/2022/09/25/S2A_MSIL2A_20220925T183121_N0400_R027_T11SLT_20220926T130320.SAFE/GRANULE/L2A_T11SLT_A037919_20220925T183448/IMG_DATA/R10m/T11SLT_20220925T183121_B03_10m.tif?st=2022-10-04T18%3A40%3A54Z&se=2022-10-05T19%3A25%3A54Z&sp=rl&sv=2021-06-08&sr=c&skoid=c85c15d6-d1ae-42d4-af60-e2ca0f81359b&sktid=72f988bf-86f1-41af-91ab-2d7cd011db47&skt=2022-10-05T17%3A12%3A04Z&ske=2022-10-12T17%3A12%3A04Z&sks=b&skv=2021-06-08&sig=gPEfAaAnyTXmXbutH76BVbyyXDqhqMfEwLwRL6BxzEo%3D"
```
The command above fails because the `otb::ExtendedFilenameToReaderOptions` believes that everything after the first `?` character is some extended filename option. Before failing, it throws many warnings for each "key" it has collected ("se", "sp", "sv", "skoid", etc).
`?` chars are commonly used in HTTP links, and this issue will likely affect other network based systems, in particular when some token have to be passed in the URL.https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2305Improper management of NaN in `GetParameterFloat()`2022-10-18T09:27:23ZLuc HermitteImproper management of NaN in `GetParameterFloat()`### Description
`GetParameterFloat("somefloatparameter")` will return 3.40282e+38 (`std::numeric_limit<float>::max()`) instead of `nan` when an OTB application is executed with `-somefloatparameter NaN`.
### Steps to reproduce
Run `ot...### Description
`GetParameterFloat("somefloatparameter")` will return 3.40282e+38 (`std::numeric_limit<float>::max()`) instead of `nan` when an OTB application is executed with `-somefloatparameter NaN`.
### Steps to reproduce
Run `otbcli_OrthoRectification -io.in sigma0nan.tif -io.out ortho10nan.tiff -map utm -map.utm.zone 31 -map.utm.northhem 1 -outputs.mode autosize -outputs.spacingx 10. -outputs.spacingy -10. -opt.gridspacing 40 -outputs.default NaN`
In the logs, we will see that the output default value will be 3.40282e+38 instead of the expected NaN.
### Use case
There is a real use case for this in S1TIling. After calibration, removed noise will be set to 0 which is not to be confused with nodata extra pixel added outside the rectified image. A really efficient and simple way to distinguish some specific values, from nodata values that shall not be taken into account in the orthorectification would be to use nan as the nodata value.
See https://gitlab.orfeo-toolbox.org/s1-tiling/s1tiling/-/issues/87
Unfortunately, OTB doesn't permit to have application parameters set to nan.
### Technical origin of the issue.
The bug originates:
- from a property of nan values: whatever the comparison, the result will always be false. For instance, with `auto d = nan;`, then `nan != nan` and `nan == nan` will always be false!.
- and the incorrect clamping algorithm used in `otb::NumericalParameter::SetValue()`.
Instead of
```c++
m_Value = (value < m_MinimumValue) ? m_MinimumValue : (value < m_MaximumValue) ? value : m_MaximumValue;
```
it should be
```c++
m_Value = (value < m_MinimumValue) ? m_MinimumValue : (m_MaximumValue < value) ? m_MaximumValue : value;
```
or even better just:
```c++
#include "otbAlgoClamp.h"
...
m_Value = otb::clamp(value, m_MinimumValue, m_MaximumValue); // std::clamp in C++17
```
See the following demonstration on godbolt: https://godbolt.org/z/3jGMK1crb
### Discussion
This will not make OTB magically compatible with NaN values. Some applications will need to specifically take nan into account to support it (was we cannot compare with `if (val == some_nan_value)`). Yet, it'll be a start to correctly take these "numbers" into account in a few applications, and into new applications that could take advantage of nan properties.8.2.0https://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/2280Segmentation application : wrong documentation example2022-09-28T08:08:54ZYannick TANGUYSegmentation application : wrong documentation example### Target documentation resources
The documentation of [Segmentation](https://www.orfeo-toolbox.org/CookBook/Applications/app_Segmentation.html#connected-components-options) application is wrong : when using Connected Components mode, ...### Target documentation resources
The documentation of [Segmentation](https://www.orfeo-toolbox.org/CookBook/Applications/app_Segmentation.html#connected-components-options) application is wrong : when using Connected Components mode, user cannot use "intensity_p(1)" but should use "intensity_p1" (or p2) instead.
````
Message: Unexpected token "intensity_p" found at position 0.
Formula: intensity_p(1)>0.5
Token: intensity_p
Position: 0
````
### Change requested
Correct or precise the example in the application documentation8.1.0https://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/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/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/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/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/22758.0.0 otbcli_OrthoRectification does not read the metadata contained in the g...2022-06-17T07:31:02ZNovius8.0.0 otbcli_OrthoRectification does not read the metadata contained in the geotiff.Hello,
It seems that `otbcli_OrthoRectification` cannot read the metadata contained in the geotiff files, it still needs a `.geom` which is no longer generated by most OTB scripts since the move to 8.0.0.
I use the following pipeline ...Hello,
It seems that `otbcli_OrthoRectification` cannot read the metadata contained in the geotiff files, it still needs a `.geom` which is no longer generated by most OTB scripts since the move to 8.0.0.
I use the following pipeline on Pléiades images, which works correctly in 7.4.0, but does not work anymore in 8.0.0, because the `otbcli_BundleToPerfectSensor` scripts do not generate the `.geom` anymore.
Pipeline:
```shell
$ otbcli_OpticalCalibration -in IMG_PHR1A_MS_002/IMG_PHR1A_MS_202112021049415_SEN_6074118101-2_R2C1.JP2 -level toc -out IMG_PHR1A_MS_002/IMG_PHR1A_MS_202112021049415_SEN_6074118101-2_R2C1_toc.tif
```
```shell
$ otbcli_BundleToPerfectSensor -inp IMG_PHR1A_P_001/IMG_PHR1A_P_202112021049415_SEN_6074118101-1_R2C1.JP2 -inxs IMG_PHR1A_MS_002/IMG_PHR1A_MS_202112021049415_SEN_6074118101-2_R2C1_toc.tif -mode phr -out IMG_PHR1A_PMS_202112021049415_SEN_6074118101-2_R2C1.tif
```
```shell
$ otbcli_OrthoRectification -elev.dem SRTM/ -elev.geoid egm96.grd -io.in IMG_PHR1A_PMS_202112021049415_SEN_6074118101-2_R2C1.tif -io.out IMG_PHR1A_PMS_202112021049415_SEN_6074118101-2_R2C1_ortho.tif
```
- 7.4.0:
```shell
2022-04-15 14:31:53 (INFO) OrthoRectification: Elevation management: setting default height above ellipsoid to 0 meters
2022-04-15 14:31:53 (INFO): Loading kwl metadata from attached geom file IMG_PHR1A_PMS_202112021049415_SEN_6074118101-2_R2C1.geom
...
Writing IMG_PHR1A_PMS_202112021049415_SEN_6074118101-2_R2C1_ortho.tif...: 100% [**************************************************] (1m 05s)
```
- 8.0.0:
```shell
2022-04-15 12:12:09 (INFO) OrthoRectification: Elevation management: setting default height above ellipsoid to 0 meters
2022-04-15 12:12:09 (INFO): Loading metadata from official product
2022-04-15 12:12:09 (FATAL) OrthoRectification: itk::ERROR: ImageToGenericRSOutputParameters(0xa592f0): No information in the metadata, please set an image with non empty metadata
```8.1.0https://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/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, Haijun