Compiling OTB SuperBuild with Monteverdi and Remote Modules (Ubuntu 16.04)
Orfeo ToolBox (OTB) is an amazing tool for remote sensing. Some modules are not included in the distribution because they are produced by external users, but some of them are really interesting.
For example there is the mosaik tool for gathering many images with color harmonization. Another one is the Fast Forward Features Selection to keep best features and avoid too many features.
The basics of the compilation is taken form the OTB Software Guide
Get data from git
First, you need to create your Qgis folder and to clone develop OTB git
mkdir ~/OTB cd ~/OTB git clone https://email@example.com/git/otb.git mkdir build mkdir install cd ~/OTB/otb git checkout develop
Setup parameters and install the SuperBuild
Go into the build folder, then choose which library you want. On the cmake line below almost libraries are installed so there’s no problem with remote modules later. If you want to install Shark library, just add -D CMAKE_CXX_FLAGS=–std=gnu++11 for forcing using C++11.
cd ~/OTB/build cmake -D CMAKE_INSTALL_PREFIX=~/OTB/install -D OTB_USE_QWT=ON -D OTB_USE_GLEW=ON -D OTB_USE_GLUT=ON -D OTB_USE_OPENGL=ON -D CMAKE_CXX_FLAGS=--std=gnu++11 ../otb/SuperBuild make
TIPS : If you have a multi-core processor, you can add “-j 4” after “make” for using 4 cores :
make -j 4
Now you need to compile module which are not in the SuperBuild.
Open CMakeCache.txt (in~/OTB/build/OTB/build) with cmake-gui, and check all Module_XXX (or only check those you want).
Temporary Gap Filling and maybe some other remote modules need to have c++ 11 compiler, so force with CMAKE_CXX_FLAGS with gnu++11 :
cd ~/OTB/build/OTB/build/ cmake -DCMAKE_CXX_FLAGS=--std=gnu++11 ~/OTB/otb make make install
Add path for Monteverdi and for OTB app to your .profile to access to OTB apps and to Monteverdi (copy/paste all lines at once):
echo " #PATH for OTB and MONTEVERDI PATH=\$PATH:~/OTB/build/OTB/build/bin OTB_APPLICATION_PATH=~/OTB/build/OTB/build/lib/otb/applications" >> ~/.profile
Then, just check eveything is ok, type on a terminal :