otb issueshttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues2023-10-30T14:37:44Zhttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2364patchelf error when installing OTB 8.1.2 binaries2023-10-30T14:37:44ZLuc Hermittepatchelf error when installing OTB 8.1.2 binaries### Description
When installing OTB-8.1.2-Linux64.run in a fresh ubuntu docker, the procedure fails on
```
patchelf: unsupported overlap of SHT_NOTE and PT_NOTE
```
### Steps to reproduce
The issue has been reproduced when starting ...### Description
When installing OTB-8.1.2-Linux64.run in a fresh ubuntu docker, the procedure fails on
```
patchelf: unsupported overlap of SHT_NOTE and PT_NOTE
```
### Steps to reproduce
The issue has been reproduced when starting from ubuntu:20.04 and 18.04 dockers and with a few other packages already installed.
Here is a exact Dockerfile that reproduces the issue: https://gitlab.orfeo-toolbox.org/s1-tiling/s1tiling-dockers/-/blob/7ba53957ff28a23a854bdf37e8a2bc55bc65dfce/ubuntu/base/Dockerfile
And a related failing job: https://gitlab.orfeo-toolbox.org/s1-tiling/s1tiling-dockers/-/jobs/78367#L1171
### My investigations
- The issue don't seem to be observed with the dockers you produce. I guess it's related to the other packages I require.
- It seems related to version 0.12 of patchelf https://github.com/NixOS/patchelf/issues/255#issuecomment-907561501
=> upgrading it to the latest version is possibly a simple fix.
### Configuration information
- OS: ubuntu 20.04 and 22.04 dockers
- OTB binaries 8.1.2
- S1Tiling installation procedurehttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2362Windows Python API with Python 3.82023-10-24T15:56:02ZPennyJClarkeWindows Python API with Python 3.8Is there a planned upgrade of pyotb with Python 3.8 for Windows? Or do you have guidance for someone that needs to use pyotb from a Python 3.8 environment?
I would like to use Orfeo Toolbox using Python 3.8, for the operation of additio...Is there a planned upgrade of pyotb with Python 3.8 for Windows? Or do you have guidance for someone that needs to use pyotb from a Python 3.8 environment?
I would like to use Orfeo Toolbox using Python 3.8, for the operation of additional code I am using it is essential that I work in Python version 3.8.
I am aware the current version of Orfeo Toolbox operates with Python 3.7. I am currently trialling the use of an executable as a work around, to operate pyotb within python 3.7 from my python 3.8 environment.
As a .py script in the environment with python 3.7 the code works as expected, when I convert the .py to an executable, I am receiving errors running the executable when importing pyotb, and for each failed attempt to import, the executable restarts until it locates pyotb. As a result each attempted executable then proceeds to run multiple versions of the same process/code. This consumes all my computer memory and the code never completes running.
Can you offer guidance on work arounds for using pyotb with Python 3.8 please, or can you detail if there are any planned upgrades for compatability with Python 3.8 on Windows.
Thank you for your guidance.https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2361ToJSON() method in otbGeometryMetadata returns a string that is not a valid json2024-02-05T17:04:54ZDamiano MissoniToJSON() method in otbGeometryMetadata returns a string that is not a valid jsonThe function does not return a valid json due to trailing comma after the last elements.
```cpp
// JSON export
std::string ToJSON(bool multiline=false) const;
inline static std::string doubleArrayToString(const double* array)
{
...The function does not return a valid json due to trailing comma after the last elements.
```cpp
// JSON export
std::string ToJSON(bool multiline=false) const;
inline static std::string doubleArrayToString(const double* array)
{
std::ostringstream oss;
oss << "[";
for (int loop = 0 ; loop < 20 ; loop++)
oss << " \"" << array[loop] << "\", ";
oss << "]";
return oss.str();
}
```https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2360OrthoRectification of Pleiades HR product using high resolution DSM (50 cm re...2023-10-05T08:44:17ZArnaud JouzeauOrthoRectification of Pleiades HR product using high resolution DSM (50 cm resolution) hangs on indefinitely when gridspacing is set to 50cmThe bug occurs on an HPC cluster (CNES). Even when setting walltime to 200 hours, OTB remains stuck with no output until the job is killed due to time limit reached.
I tried several RAM parameterization but there was no change in the res...The bug occurs on an HPC cluster (CNES). Even when setting walltime to 200 hours, OTB remains stuck with no output until the job is killed due to time limit reached.
I tried several RAM parameterization but there was no change in the result.
The DSM was generated using CARS from the same Pleiades perfect sensor image that is then to be orthorectified by OTB.
export GDAL_NUM_THREADS=44
export ITK_GLOBAL_DEFAULT_NUMBER_OF_THREADS=44
export ITK_USE_THREADPOOL=1
are set in the job script.https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2359Maximum sample size in TrainImagesClassifier2023-09-20T08:01:31ZJulien OsmanMaximum sample size in TrainImagesClassifier### Description
This bug was reported [by a user on the forum](https://forum.orfeo-toolbox.org/t/maximum-sample-size-in-trainimagesclassifier/1651).
The *TrainImageClassifier* application has a mechanism to balance the class representa...### Description
This bug was reported [by a user on the forum](https://forum.orfeo-toolbox.org/t/maximum-sample-size-in-trainimagesclassifier/1651).
The *TrainImageClassifier* application has a mechanism to balance the class representation on the training and validation set. This mechanism should be deactivated when the user sets `sample.bm` to `0`.
The code related to this issue:
- https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/blob/develop/Modules/Applications/AppClassification/include/otbTrainImagesBase.hxx#L169
- https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/blob/develop/Modules/Applications/AppClassification/include/otbTrainImagesBase.hxx#L222
- https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/blob/develop/Modules/Applications/AppClassification/app/otbMultiImageSamplingRate.cxx#L226
### Steps to reproduce
Run *TrainImageClassifier* with options sampling.mt=-1, sampling.mv=-1, and sampling.bm=0. The log says:
> (INFO) TrainImagesClassifier: Sampling strategy : fit the number of samples based on the smallest class
The expected log is
> (INFO) TrainImagesClassifier: Sampling strategy : take all samples
### Configuration information
The user on the forum uses QGIShttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2358Set the proper WL/WB values for the different layers2023-09-19T08:06:19ZDamiano MissoniSet the proper WL/WB values for the different layersHi everyone.
OpticalCalibration misses a feature that can be useful to someone.
When performing atmospheric corrections on a non supported satellite image, it seems not possible to set the values of the wavelengths (or wavebands) of im...Hi everyone.
OpticalCalibration misses a feature that can be useful to someone.
When performing atmospheric corrections on a non supported satellite image, it seems not possible to set the values of the wavelengths (or wavebands) of image channels. otbcli_OpticalCalibration use the same selfdefined WL value for all the bands (i.e. 0.65 microns) and, therefore, the atmospheric correction is not correct.
It would be useful to add the possibility to set proper WL/WB values for every layer.
Also, Mapla GUI doesn’t have a box where indicates the image wavebands.
Link to the forum extended discussion: [Setting wavebands for atmospheric correction of non supported images - Usage - Orfeo Toolbox forum (orfeo-toolbox.org)](https://forum.orfeo-toolbox.org/t/setting-wavebands-for-atmospheric-correction-of-non-supported-images/1649)https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2357Generating slow epipolar grids with a DEM not in lon lat2023-09-11T14:32:14ZFlorian DouziechGenerating slow epipolar grids with a DEM not in lon lat### Description
Generating epipolar grids with a DEM
The application `StereoRectificationGridGenerator` application and the `epi.elevation.dem` parameter takes a very long time when dem is not in lon lat.
result of computing duration ...### Description
Generating epipolar grids with a DEM
The application `StereoRectificationGridGenerator` application and the `epi.elevation.dem` parameter takes a very long time when dem is not in lon lat.
result of computing duration on a small srtm file:
* with lon lat dem : 1.4 sec
* with utm dem : 16 sec
### Steps to reproduce
* geoid: https://github.com/CNES/cars/blob/master/cars/conf/geoid/egm96.grd
* inputs: https://github.com/CNES/cars/blob/master/tutorials/data_gizeh.tar.bz2
untar the file
* dem in lon lat
`srtm_dir/N29E031_KHEOPS.tif`
* dem in utm
```
gdalwarp -t_srs EPSG:32636 srtm_dir/N29E031_KHEOPS.tif dem.tif
```
* generating epipolar grids script
```
import otbApplication
app = otbApplication.Registry.CreateApplication("StereoRectificationGridGenerator")
app.SetParameterString("io.inleft", "data_gizeh/img1.tif")
app.SetParameterString("io.inright", "data_gizeh/img2.tif")
app.SetParameterString("io.outleft", "epi_grid1.tif")
app.SetParameterString("io.outright", "epi_grid2.tif")
app.SetParameterString("epi.elevation.dem", "dem.tif")
app.SetParameterFloat("epi.elevation.default", 0)
app.SetParameterString("epi.elevation.geoid","cars/conf/geoid/egm96.grd")
app.SetParameterInt("epi.step", 30)
app.ExecuteAndWriteOutput()
```
### Configuration information
* OTB 7.4.1 ubuntu 22.04
* install command
```
RUN cmake \
"-DBUILD_COOKBOOK:BOOL=OFF" "-DBUILD_EXAMPLES:BOOL=OFF" "-DBUILD_SHARED_LIBS:BOOL=ON" \
"-DBUILD_TESTING:BOOL=OFF" "-DOTB_USE_6S:BOOL=OFF" "-DOTB_USE_CURL:BOOL=ON" \
"-DOTB_USE_GLEW:BOOL=OFF" "-DOTB_USE_GLFW:BOOL=OFF" "-DOTB_USE_GLUT:BOOL=OFF" \
"-DOTB_USE_GSL:BOOL=OFF" "-DOTB_USE_LIBKML:BOOL=OFF" "-DOTB_USE_LIBSVM:BOOL=ON" \
"-DOTB_USE_MPI:BOOL=OFF" "-DOTB_USE_MUPARSER:BOOL=ON" "-DOTB_USE_MUPARSERX:BOOL=ON" \
"-DOTB_USE_OPENCV:BOOL=OFF" "-DOTB_USE_OPENGL:BOOL=OFF" "-DOTB_USE_OPENMP:BOOL=OFF" \
"-DOTB_USE_QT:BOOL=OFF" "-DOTB_USE_QWT:BOOL=OFF" "-DOTB_USE_SIFTFAST:BOOL=ON" \
"-DOTB_USE_SPTW:BOOL=OFF" "-DOTB_WRAP_PYTHON:BOOL=ON" "-DCMAKE_BUILD_TYPE=Release" \
"-DOTB_USE_SHARK:BOOL=OFF" "-DBUILD_EXAMPLES:BOOL=OFF" \
-DCMAKE_INSTALL_PREFIX="/usr/local/otb" -GNinja .. && \
ninja install && \
```https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2341Misleading docs + bug for nodata declaration in extended filenames (for multi...2023-05-12T14:55:10ZVincent DelbarMisleading docs + bug for nodata declaration in extended filenames (for multi-band images)### Description
I want to remove this GDAL warning :
```
Warning 1: Setting nodata to 65535 on band 1, but band 2 has nodata at 0. The TIFFTAG_GDAL_NODATA only support one value per dataset. This value of 65535 will be used for all ba...### Description
I want to remove this GDAL warning :
```
Warning 1: Setting nodata to 65535 on band 1, but band 2 has nodata at 0. The TIFFTAG_GDAL_NODATA only support one value per dataset. This value of 65535 will be used for all bands on re-opening
```
Following the docs, I added a value for each band as follow : `1:65535,2:65535,3:65535`.
First issue here, the example in the cookbook is contradictory :
* "Band/Value pair" syntax: `image_filename?&nodata=0:-999,1:255,2:254` -> nodata value corresponds to pixels with values [-999,255,254]
* It is important to note that the band numbering in the nodata writer option follows the GDAL convention and **starts at 1**
Moreover, even when using the right syntax and passing 3 values, the warning message ramins.
### Steps to reproduce
`otbcli_BandMathX -il image_3bands.tif -exp 'im1' -out 'out.tif?&nodata=1:65535,2:65535,3:65535'`
### Configuration information
I'm using OTB 8.1.1 on Ubuntu 22.04.https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2339LargeScaleMeanShift logs always say "0 small regions will be removed"2023-04-17T07:23:07ZJulien OsmanLargeScaleMeanShift logs always say "0 small regions will be removed"### Description
When running LargeScaleMeanShift, the logs say "0 small regions will be removed", even if more than 1 small region is removed.
A user reported this issue [on the forum](https://forum.orfeo-toolbox.org/t/largescalemeansh...### Description
When running LargeScaleMeanShift, the logs say "0 small regions will be removed", even if more than 1 small region is removed.
A user reported this issue [on the forum](https://forum.orfeo-toolbox.org/t/largescalemeanshift-dishonour-parameter-settings/1531/1). He used WordlView3 products. I tried with a Sentinel2 product. When the parameter `minsize` is set to 50, I can see that the smallest region's size is 50. And when the parameter is set to 10, the smallest region's size is 10. This shows that some regions are removed.
### Steps to reproduce
Run LargeScaleMeanShift. Read the logs at the "Small regions pruning" step.
### Configuration information
OTB 8.1.1.https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2338C++17 ?2023-04-06T07:49:12ZRémi CressonC++17 ?Hi,
I am trying to switch to C++17, to build OTB along with a project that required it.
From what I saw, setting the `set(CMAKE_CXX_STANDARD 17)` in CMakeLists.txt enables to compile the whole library, at least on Ubuntu:22.04, and my ...Hi,
I am trying to switch to C++17, to build OTB along with a project that required it.
From what I saw, setting the `set(CMAKE_CXX_STANDARD 17)` in CMakeLists.txt enables to compile the whole library, at least on Ubuntu:22.04, and my project's functional tests all pass (I don't use all OTB applications though!). So that is great news.
But when I try to enable `BUILD_TESTING=ON`, I got a lot on compilation errors that I dont well understand.
I tried to solve a few of them but unfortunately I am stuck with some `error: invalid use of 'void'` errors. [Here](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/commits/tryto_compile_cpp17) is my working copy.
Moving from C++14 to C++17 doesn't look so complicated, since the library can be compiled (without tests).
Any plans to switch to C++17? (There was !799 but it's old)https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2334Python in-memory pipeline ZonalStatistics error with small images : free(): i...2023-07-11T08:35:39ZVincent DelbarPython in-memory pipeline ZonalStatistics error with small images : free(): invalid next size (fast)I have a python script (pyotb) that is supposed to work nicely, here is the workflow :
BandMath -> ConcatenateImages -> BandMathX -> ManageNoData -> ZonalStatistics (the only output on disk is a gpkg vector file)
I'm looping on direct...I have a python script (pyotb) that is supposed to work nicely, here is the workflow :
BandMath -> ConcatenateImages -> BandMathX -> ManageNoData -> ZonalStatistics (the only output on disk is a gpkg vector file)
I'm looping on directories to process Theia's Sentinel2 products one by one.
The script works well with average size images (~ 2000x2000), but now I'm trying to use it with a smaller ROI.
Input cropped images are 179x189 pixels.
And I always run into the following error :
```
free(): invalid next size (fast)
IOT instruction (core dumped)
```
Which is even more strange is that the script is working well when launched with `valgrind` (but quite slow as expected with this program).
So I can't send you a proper memory trace, since the error does not occur with the valgrind command.
The python verbose mode does not help.
I attached the OTB debug log. Not really useful either.
[debug.log](/uploads/abcd8a0b3dbd7e5a555ab633357ea144/debug.log)
I can confirm this is failing at the end of the pipeline (after the ZonalStatistics app exec, when it should flush to disk).
Same error with OTB 7.4 or 8.1.1. My system is Ubuntu 22.04.
Any ideas ?https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2332Improve and update docs for a working Python installation2023-10-13T13:33:37ZVincent DelbarImprove and update docs for a working Python installationToday I had to help a colleague who was having trouble running `import otbApplication`.
This is something I see a lot here in the Maison de la Télédétection with linux newbies / interns that needs OTB and are confused by the docs.
Th...Today I had to help a colleague who was having trouble running `import otbApplication`.
This is something I see a lot here in the Maison de la Télédétection with linux newbies / interns that needs OTB and are confused by the docs.
The CookBook is well updated regarding Python related caveats.
Nonetheless there are still missing recommendations for some specific cases and versions.
Especially regarding conda, since the latest package version updated there is 7.1. And it seems everyone is using conda (I believe this is hell).
We need a section about how to import the python API of a fresh binary installation, within a conda env.
May be I can create a MR - I still need to learn the the docs contribution workflow.
Here is what I suggest :
- May be update the FAQ section about the libpython3.5 symlink with current python versions, or both
- Warn that python-otb is missing in any recent ubuntu distributions (even in ubuntugis - is it fixable ?)
- Extend the conda section, add command line examples to create a working conda env (py37 or py38 + symlinks for libpython on Linux)
- Add a section about Jupyter / Google Colab environments
- I sometimes had to downgrade numpy in order to recompile bindings, I don't know about the state of this in v8.0, is there a max version number that we can provide ?
- Explain this "recompile python bindings" thing will not work every time
(this only work when using the python exe found in /usr - I was unable to use it for a conda env - using python > 3.8)
Regarding this last point, it would be really great to ease the process and also create a dedicated shell script, that support any PYTHON_EXE.
I really have a hard time to understand this ctest trick, and was unable to adapt it to my env needs.
And what about Windows ? For example if I want to run OTB with python 3.10, is this even possible ?https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2330Application performances when using extended filename2023-05-02T08:08:16ZGermain SalguesApplication performances when using extended filenameWe encountered significant slow down when processing raster and using extended filename to access a specific band. The input raster is a JP2000 with several compressed band:
Band 1 Block=1024x1024 Type=Byte, ColorInterp=Red
Overviews:...We encountered significant slow down when processing raster and using extended filename to access a specific band. The input raster is a JP2000 with several compressed band:
Band 1 Block=1024x1024 Type=Byte, ColorInterp=Red
Overviews: 5490x5490, 2745x2745, 1373x1373, 687x687
Overviews: arbitrary
Image Structure Metadata:
COMPRESSION=JPEG2000
For example, the access to a specific band in a vector image using the OTB extended filename feature, seems to cause the problem, example:
> otbcli_Superimpose -inr DTM.tif -inm "L1CFOLDER/QI_DATA/MSK_QUALIT_B08.jp2?&bands=8" -out "./superimpose.tif" -interpolator linear -ram 6560
This command takes around 30sec, while the same command ran directly on a mono band raster (of the same resolution and content), is almost instantaneous. This is mostly likely cause by the combinaition of the otb extended file band and the raster inner compression (jp2 + internal overviews).https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2328otbcli_OrthoRectification regression between otb7.4 et otb8.12023-02-07T14:39:40Zfabien contivalotbcli_OrthoRectification regression between otb7.4 et otb8.1Il y a une régression entre otb7.4 et otb8.1 sur le module Orthorectification:
otbcli_OrthoRectification -io.in /work/scratch/contivf/toulouse/S1A_IW_GRDH_1SDV_20210923T060919_20210923T060944_039805_04B546_3C23/S1A_IW_GRDH_1SDV_20210923...Il y a une régression entre otb7.4 et otb8.1 sur le module Orthorectification:
otbcli_OrthoRectification -io.in /work/scratch/contivf/toulouse/S1A_IW_GRDH_1SDV_20210923T060919_20210923T060944_039805_04B546_3C23/S1A_IW_GRDH_1SDV_20210923T060919_20210923T060944_039805_04B546_3C23.SAFE/measurement/s1a-iw-grd-vh-20210923t060919-20210923t060944-039805-04b546-002.tiff -io.out s1a-iw-grd-vh-20210923t060919-20210923t060944-039805-04b546-002-80.tiff -opt.gridspacing 40
test de base sans options.
7.4
![image](/uploads/4cf404a98d58d5760eb229b708491a2b/image.png)
![image](/uploads/64da493ae4afcb1dd0ce031595d6130e/image.png)
8.1
![image](/uploads/f6a19b73c2986da784ae524a43431c5c/image.png)
![image](/uploads/ef7cf159c0821be938f748c2f2774b56/image.png)https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2326regression otbcli_SARDeburst entre otb7. et otb8.x2023-02-14T13:27:31Zfabien contivalregression otbcli_SARDeburst entre otb7. et otb8.xUne ligne apparait différente entre otb7.4-python3.8.4 et otb8.1-python3.8.4 (voir sur les images au niveau du curseur).
![image](/uploads/0d55eebb8c399b6604ee3ea141ac27fa/image.png)
![image](/uploads/a9778adb4dc53005c6b9ed4af8236117/i...Une ligne apparait différente entre otb7.4-python3.8.4 et otb8.1-python3.8.4 (voir sur les images au niveau du curseur).
![image](/uploads/0d55eebb8c399b6604ee3ea141ac27fa/image.png)
![image](/uploads/a9778adb4dc53005c6b9ed4af8236117/image.png)
Même comportement dans QGis:
![image](/uploads/67c8e6ae2e5195f752479caff40b50ce/image.png)https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2325SPOT5 orthorectification fails in 8.0.12023-05-02T08:08:16Zadescamps-aslSPOT5 orthorectification fails in 8.0.1### Description
Applying the orthorectification process in monteverdi fails when the input image is loaded with the following error: "(FATAL) OrthoRectification: itk::ERROR: ImageToGenericRSOutputParameters(0000024E4F8AD130): No informa...### Description
Applying the orthorectification process in monteverdi fails when the input image is loaded with the following error: "(FATAL) OrthoRectification: itk::ERROR: ImageToGenericRSOutputParameters(0000024E4F8AD130): No information in the metadata, please set an image with non empty metadata"
I get the same error with the otbcli_Orthorectification program.
It worked in 7.4.1, but fails in 8.0.1 and 8.1.1
### Steps to reproduce
In Monteverdi, open OrthoRectification application and select the SPOT5 image as input. The error should appear in the log tab.
### Configuration information
Tested on :
- 8.1.1 (Windows Monteverdi binary) : fails
- 8.1.1 (Docker cli) : fails
- 8.0.1 (Docker cli) : fails
- 7.4.4 (Windows Monteverdi binary) : ok
SPOT5 image is a Level1A from SPOT World Heritage (002-003_S5_042-247-0_2013-06-07-10-55-23_HRG-1_J_DT_TT)9.0.0https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2321pleiade neo pansharpening2023-10-19T14:02:43Znicodebopleiade neo pansharpeningHello and happy new year,
I tried to use the bundletoperfectsensor application on pleiades neo images and the results seems blurry.
I'm wondering if this issue comes from the input data or the pansharpening algorithm.Hello and happy new year,
I tried to use the bundletoperfectsensor application on pleiades neo images and the results seems blurry.
I'm wondering if this issue comes from the input data or the pansharpening algorithm.https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2320Eager mode for ReadImageFilter2024-01-09T14:11:43ZRémi CressonEager mode for ReadImageFilterI was wondering if one could enable/disable a specific behavior of the processing workflow.
In particular I am wondering if the reading and the processing operations could be done in parallel in an OTB pipeline.
This could be an interest...I was wondering if one could enable/disable a specific behavior of the processing workflow.
In particular I am wondering if the reading and the processing operations could be done in parallel in an OTB pipeline.
This could be an interesting feature when accessing the input takes a while, e.g. when processing remote images (/vsicurl/http://.../image.tif). Indeed one region could be downloaded while another one is processed.
The typical processing flow in OTB is the following (we consider a simple pipeline composed of 1 reader --> 1 filter --> 1 writer):
1. Propagates the filter's requested output region to the reader. At the end of this step, the filter knows which region of the input it has to fetch.
2. Read the input data over this requested region
3. Process the requested region
4. Write the output
It's sequential.
What if we could run step 2 and 3 in parallel?
I am just wondering if that is somehow possible.
The only thing to do is for the reader, to not wait until the filter ask him the data, to go grab it. But this supposes that the reader knows in advance what the next requested region would be. I am wondering if somehow this is doable in the ITK framework?
I'll ask for toughs here, then I guess I will ask the ITK community...
Thanks,
Rémihttps://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2317GridBasedResampling y origin weird behaviour2023-11-28T09:00:59ZJonathan GuinetGridBasedResampling y origin weird behaviourWhen using GridBasedResampling an half pixel shift occurs between user specified value in command and output image, for example :
- user UL : [311000.0, 58818000.000] with spacing [0.5,-0.5] gives an output with origin at [310999.75, 58...When using GridBasedResampling an half pixel shift occurs between user specified value in command and output image, for example :
- user UL : [311000.0, 58818000.000] with spacing [0.5,-0.5] gives an output with origin at [310999.75, 58818000.25]
if we try to compensate that by shifting by an half spacing the input
- user UL : [311000.25, 58817999.75] with spacing [0.5,-0.5] gives an output with origin at [311000.00, 58818000.25]
- user UL : [311000.25, 58817999.74] with spacing [0.5,-0.5] gives an output with origin at [311000.00, 58817999.75]
only N*spacing + spacing/2 ULY seems to be reachable with a spacing set to 0.5
This problem doesn't occur with 5.0 spacing
OTB version : 8.1.0 (same problem with OTB 7.4)
[test_GridBased.tar.gz](/uploads/381e1c6c1487be81ee9d2afb94a225ac/test_GridBased.tar.gz)9.0.0https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/2316multiwriter incompatible with automatic-adaptative-streaming2023-03-11T18:57:07Zdemaetmultiwriter incompatible with automatic-adaptative-streamingThe following function cannot work proprely:
`multi_writer->SetAutomaticAdaptativeStreaming(availableRAM)`
The reason is here
https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/blob/develop/Modules/IO/ImageIO/src/otbMultiImageFileWrite...The following function cannot work proprely:
`multi_writer->SetAutomaticAdaptativeStreaming(availableRAM)`
The reason is here
https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/blob/develop/Modules/IO/ImageIO/src/otbMultiImageFileWriter.cxx#L406
`m_StreamingManager->GetSplitter()->GetSplit(m_CurrentDivision, m_NumberOfDivisions, region);`
requests a custom split, but it is not supported by this steaming manager:
https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/blob/develop/Modules/Core/Common/include/otbImageRegionAdaptativeSplitter.hxx#L55
`GetSplit(unsigned int i, unsigned int itkNotUsed(numberOfPieces) ...`
The result is images half-written as the number of divisions is not consistent.