ISCE has the following dependencies
Optional dependencies for unit testing and documentation generation are
As of Jan 2020, Centos 7.5 is the operational OS for the NISAR processing system and this is
probably the most tested set of instructions. The instructions for Centos 7.5 / Ubuntu 18.04
are more or less the same except for the parts specific to using the standard package managers
to install compilers and some basic packages.
We will install all dependencies under a folder called ${ISCEHOME} in the instructions below.
Our overall strategy for directory layouts is as follows:
Path | Description |
---|---|
${ISCEHOME}/python/miniconda3 | Miniconda3 installation directory |
${ISCEHOME}/tools/isce/src | git checkout location/ unpacked tarball location of ISCE source |
${ISCEHOME}/tools/isce/build | cmake build location |
${ISCEHOME}/tools/isce/install | cmake install location |
${ISCEHOME}/tools/gcc7 | Directory for gcc7 compiled from source (Only for Centos 7.5) |
Note that ${ISCEHOME} in these can be any directory on your machine. You can even use your home
folder as the base for your directory structure.
This section only applies to installation on Centos 7.5. The following packages and their dependencies
should be installed using "yum".
If CUDA support is desired, install the following set of packages with yum as well:
Centos 7.5 is a fairly old distribution and attempts to guarantee backward compatibility. As a result, the gcc/g++ compilers that are included with this distribution do not support
gcc's dual ABI. Hence, you will have to build a gcc compiler ( version > 6) manually for use.
If you are within JPL, you can get a version of gcc7 here: https://github-fn.jpl.nasa.gov/NISAR-ADT/gcc7/releases/download/v0.0.1/gcc7.tar.gz .
Untar the contents of this file to ${ISCEHOME}/tools/gcc7
tar xzv gcc7.tar.gz -C ${ISCEHOME}/tools
This section only applies to installation on Ubuntu 18.04. The following packages and their
dependencies should be installed using "apt-get".
If CUDA support is desired, install the following set of packages with apt-get as well:
In this set of instructions, we rely on Anaconda for installing
Python dependencies. We will install Python3 to the location ${ISCEHOME}/python/miniconda3.
We will list all the required packages in a text file called "requirements.txt" located under ${ISCEHOME}/python.
The contents of the requirements.txt file is shown below:
cmake cython gdal git h5py libgdal pytest numpy fftw scipy pyproj matplotlib pandas sphinx ruamel.yaml
We can then install Anaconda and these requirements as shown below:
> . ${ISCEHOME}/python/miniconda3/bin/activate root
In this section we will walk through the directory setup and build system instructions for installing ISCE. ISCE can be built with 2 different build systems
In this set of instructions, we focus on cmake as it is already available via standard package managers.
For our cmake build, we follow the practice of building outside of the source parent directory.
To that end, we first create a temporary build directory:
Ensure that you have activated the scl environment (Centos), conda and set
environment variables needed by pyre following instructions provided above.
Note: for some operating systems, if you wish to build the CUDA extensions, you may need to run
Run cmake with the correct inputs and compiler flags
or
Other optional arguments can be added to the cmake line
Option | Description |
---|---|
-DWITH_CUDA=OFF | Do not attempt to detect CUDA support (default "Auto" will auto-detect CUDA toolchain, but can be explicitly required/ignored with ON/OFF) |
-DMEMORY_CHECK_COMMAND=PATH_TO_VALGRIND_EXECUTABLE <br> -DMEMORYCHECK_COMMAND_OPTIONS="--trace-children=yes --leak-check=full --track-origins=yes" <br> -DCMAKE_BUILD_TYPE=Debug | |
Run tests with "-T memcheck" to check for memory leaks. | |
valgrind needs to be installed. | |
-DPYTHON_EXECUTABLE:FILENAME=<path_to_python_exe> | Pass this argument if installing to a python virtual environment |
-DCMAKE_BUILD_TYPE=RelWithDebInfo | Build with optimization flags with release. Default is to build in debug mode |
Following env variables can also be used to control cmake behavior. Use these settings if cmake fails to identify the right compilers or install locations of dependencies.
Variable | Description |
---|---|
CC | Path to the C compiler |
CXX | Path to the C++ compiler |
GDAL_ROOT | Path to location of gdal installation. With anaconda, ${ISCEHOME}/python/miniconda3. |
Build the software
Ensure that you are in the build folder
Install the software
Setup the environment variables.
Variable | Setting | Description |
---|---|---|
PATH | $PATH:${ISCEHOME}/tools/isce/install/bin | For executables installed by ISCE |
PYTHONPATH | $PYTHONPATH:${ISCEHOME}/tools/isce/install/packages | ISCE python package |
LD_LIBRARY_PATH | $LD_LIBRARY_PATH:${ISCEHOME}/tools/isce/install/lib | Shared libraries built by ISCE |
We also recommend setting these environment variables in your appropriate .bashrc
or .bash_profile
file to avoid having to set them for each new session. For example: