First Steps¶
You can install and use OTB via 3 different methods :
- the standalone package
- the docker image
- building from source
In this page, we describe the necessary system dependencies to install for these use cases You can follow these tutorials depending on your operating system
Linux¶
In order to run the OTB applications, you have to make sure you installed some necessary dependencies on your system if you plan to use the Python interface or the graphical version of the apps
System dependencies to run the standalone package¶
OTB 8 has both command line and graphical interface, the latter needs some system dependencies to run properly. Here are provided provide examples of package installations on popular distributions, using package managers to install the required dependencies.
The following commands can be executed separately, depending on your needs
Ubuntu 20.04 and 22.04¶
# Required packages to extract OTB from the archive
apt update && apt install -y --no-install-recommends file python3 python3-dev python3-numpy
# Required tools to recompile the python bindings
apt install -y --no-install-recommends g++ swig cmake make
# Required tools to run OTB apps with graphical interface
apt install -y --no-install-recommends libgl-dev libgl1 libxcb1 '^libxcb.*' libx11-xcb1 libglu1-mesa libxrender1 libxi6 libxkbcommon0 libxkbcommon-x11-0 libxinerama1
RedHat 8 / Fedora 37+¶
# Required packages to extract OTB from the archive
dnf update && dnf install -y python38 python38-devel python38-numpy
# Required tools to recompile the python bindings
dnf install gcc gcc-c++ cmake3 swig make which
# Required tools to run OTB apps with graphical interface
dnf install -y mesa-libGL mesa-libGL-devel mesa-libGLU libXcursor libXi libXinerama libXrandr libxcb-devel libxkbcommon-devel libxkbcommon-x11-devel xcb-util-devel xcb-util-image-devel xcb-util-keysyms-devel xcb-util-renderutil-devel xcb-util-wm-devel
System dependencies to run the docker image¶
In order to run the docker image, you only need docker installed on your machine. The docker image is known to work on MacOS (Intel and Silicon), any Linux, and Windows in the WSL Linux Environment
Please follow this tutorial to install docker depending on your OS : https://docs.docker.com/engine/install/
System dependencies to build from source¶
You have two choices to build from source, they are detailed in the “Compile OTB from source” section.
- Native build: you need to install the OTB dependencies packaged in your OS.
- Superbuild build: you need to install the packages required to build all the OTB dependencies
Common dependencies¶
Ubuntu 20.04 and 22.04¶
apt update -y && apt install -y --no-install-recommends ca-certificates curl make cmake g++ gcc git git-lfs libtool swig python3 python3-dev python3-pip python3-numpy pkg-config patch # Additional dependencies if you need to build the documentation apt install -y texlive-latex-base texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended doxygen graphviz gnuplot dvipng python3-sphinx sphinx-rtd-theme-common pip install sphinx_rtd_theme
RedHat 8 / Fedora 37+¶
dnf -y update && dnf install -y git git-lfs cmake3 which procps swig gcc gcc-c++ make glibc-static patch patchelf pcre-devel python38 python38-devel python38-numpy python38-pip openssl-devel perl-devel zlib-devel curl-devel # Additional dependencies if you need to build the documentation dnf install -y texlive texlive-dvipng doxygen graphviz gnuplot python38-sphinx pip install sphinx_rtd_theme
Dependencies for a native build¶
Ubuntu 20.04 and 22.04¶
# Install mandatory dependencies apt install -y --no-install-recommends libboost-filesystem-dev libboost-serialization-dev libboost-system-dev libboost-thread-dev libcurl4-gnutls-dev libgdal-dev python3-gdal libexpat1-dev libfftw3-dev libgeotiff-dev libgsl-dev libinsighttoolkit4-dev libgeotiff-dev libpng-dev libtinyxml-dev # Install optional dependencies apt install -y --no-install-recommends libmuparser-dev libmuparserx-dev libkml-dev libopencv-core-dev libopencv-ml-dev libopenmpi-dev libsvm-dev # Install graphical dependencies apt install -y --no-install-recommends libegl1-mesa-dev libglvnd-dev libglu1-mesa-dev libglx-dev libgles2-mesa-dev libglew-dev libglfw3-dev freeglut3-dev qtbase5-dev qttools5-dev libqt5opengl5-dev libqwt-qt5-dev
RedHat 8 / Fedora 37+¶
# Install mandatory dependencies dnf install -y boost-devel gdal-devel python3-gdal expat-devel libgeotiff-devel fftw-devel InsightToolkit-devel gsl-devel libpng-devel tinyxml-devel # Install optional dependencies (for muparserX, you have to manually add a third party repository) dnf install -y muParser-devel opencv-devel libsvm-devel libkml-devel # Install graphical dependencies dnf install -y mesa-libGL mesa-libGLU libXcursor libXi libXinerama libXrandr libpnglibjpeg libxcb libxkbcommon libxkbcommon-x11 xcb-util xcb-util-image xcb-util-keysyms xcb-util-renderutil xcb-util-wm
Dependencies for a SuperBuild build¶
Ubuntu 20.04 and 22.04¶
# Install graphical dependencies apt install '^libxcb.*-dev' libglvnd-dev libglu1-mesa-dev libegl1-mesa-dev mesa-utils libgles2-mesa-dev libperl-dev libwayland-dev libxi-dev libxrandr-dev libxinerama-dev libxcursor-dev libxkbcommon-x11-dev libxkbcommon-dev libxcb-xinerama0-dev libx11-xcb-dev
RedHat 8 / Fedora 37+¶
dnf -y install mesa-libGL-devel mesa-libGLU-devel libXcursor-devel libXi-devel libXinerama-devel libXrandr-devel libpng-devel libjpeg-devel libxcb-devel libxkbcommon-devel libxkbcommon-x11-devel xcb-util-devel xcb-util-image-devel xcb-util-keysyms-devel xcb-util-renderutil-devel xcb-util-wm-devel
Windows¶
Windows binary packages are available for Windows 10 64bits or higher. In order to run properly, you need to make sure you installed the required system dependencies
- You must have “Visual C++ Redistributable for Visual Studio 2019” installed for using this package. It can be downloaded freely from microsoft
- If you plan to run the graphical interface, monteverdi could crash if you run Windows on a VM because of the lack of OpenGL support. to cope with that problem you can download here the MESA project opensource OpenGL dll , and put it in the ‘bin’ folder of the OTB installation, before launching any OTB graphical app
Monteverdi will be deprecated in the future OTB 9 version, we strongly recommend to switch to QGIS which will be the default viewer for OTB
MacOS¶
MacOS support will be deprecated in OTB > 8 because the Toolbox cannot be compiled natively on ARM (Apple Silicon) architecture. We recommend using the docker image which works perfectly on both Intel and Apple Silicon architectures