Dependencies

There are a number of required open-source dependencies. The suggested installation procedures are tested with Ubuntu 18.04 LTS and Ubuntu 20.04 LTS.

FORCE can also be installed on other Liunx distributions (e.g. CentOS). The installation of packages generally works similarly, but some adaptation might be needed.

Note

As FORCE is being developed further, dependencies are growing, and installation becomes more complex. Thus, we suggest to consider using FORCE with Docker or Singularity, see Docker / Singularity support. This allows you to skip the complete installation, and to always use the latest FORCE version.

  • GNU parallel is used for some parallelization tasks. We developed the code using version 20140322. The software can be installed with:

    sudo apt-get install parallel
    

    Parallel has to use --gnu mode, not --tollef. If --tollef is your default (occurred on older installations), fix this permanently by deleting the --tollef flag in /etc/parallel/config. Refer to the manpage of parallel for details. Parallel will display a citation request. To silence this citation notice run this code here once:

    parallel --bibtex
    
  • The GDAL API and commandline tools are used for I/O and various image processing tasks. We developed the code using version 2.2.2. Note that different Ubuntu versions come with different GDAL versions.

    • Ubuntu 18.04 LTS: The software can be installed with:

      sudo apt-get install libgdal-dev gdal-bin python-gdal
      
    • Ubuntu 16.04 LTS (and before): Upgrade GDAL by adding the unstable UbuntuGIS repository:

      sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable
      sudo apt-get update
      

      If GDAL was already installed, upgrade:

      sudo apt-get dist-upgrade
      

      If not, install with

      sudo apt-get install libgdal1-dev gdal-bin python-gdal
      

    There are known problems with earlier releases (< 1.10.0). FORCE < 3.5 should not be used with GDAL >= 3.0. However, the reporting of errors and warnings differs between versions, and GDAL may report many non-critical errors to stderr (e.g. ``ERROR 6 - not supported``, please refer to the GDAL error code description whether these are critical errors or just warnings that can be ignored). Please note that GDAL is a very dynamic development, therefore it is hard to develop applications that cover all cases and exceptions in all possible GDAL versions and builds. If you come across a GDAL version that does not work, please inform us.

  • The GSL library is used for optimization purposes. We developed the code using version 1.15. The software can be installed with:

    sudo apt-get install libgsl0-dev
    
  • The cURL library is used to download MODIS water vapor data. We developed the code using version 7.22.0. The software can be installed with:

    sudo apt-get install curl
    
  • unzip is used to extract Sentinel-2 data. We developed the code using version 6. The software can be installed with:

    sudo apt-get install unzip
    
  • lockfile-progs is used to place a temporary lock on file queues. The utility is already included in some distributions. The software can be installed with:

    sudo apt-get install lockfile-progs
    

    There is a known problem with CIFS mounted network drives. You may get a lot of warnings like ``lockfile creation failed: exceeded maximum number of lock attempts``. You can ignore these warnings; they are no fatal errors. But you might want to inspect the file queue after Level 2 processing, as there is a minor possibility that there were some conflicts due to parallel write attempts: a few images might not have been switched from ``QUEUED`` to ``DONE`` status.

  • rename is used to rename files. The tool is missing in new Ubuntu distributions (Ubuntu > 17.10). The software can be installed with:

    sudo apt-get install rename
    
  • python3 is used by a couple of auxilliary scripts. python3 should already be installed. If not, you can install like this:

    sudo apt install software-properties-common
    sudo add-apt-repository ppa:deadsnakes/ppa
    sudo apt-get install python3.8 python3-pip python3-dev
    echo 'alias python=python3' >> ~/.bashrc
    echo 'alias pip=pip3' >> ~/.bashrc
    
  • Some python packages are needed:

    pip install numpy gsutil git+https://github.com/ernstste/landsatlinks.git
    
  • pandoc is used to convert from markdown to html. The software can be installed with:

    sudo apt-get install pandoc
    
  • R is used by a couple of auxilliary scripts.

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
    sudo add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -sc)-cran40/"
    sudo apt-get install r-base
    
  • Some R packages are needed:

    Rscript -e 'install.packages("rmarkdown", repos="https://cloud.r-project.org")'
    Rscript -e 'install.packages("plotly",    repos="https://cloud.r-project.org")'
    Rscript -e 'install.packages("stringi",   repos="https://cloud.r-project.org")'
    Rscript -e 'install.packages("knitr",     repos="https://cloud.r-project.org")'
    Rscript -e 'install.packages("dplyr",     repos="https://cloud.r-project.org")'
    Rscript -e 'install.packages("snow",      repos="https://cloud.r-project.org")'
    Rscript -e 'install.packages("snowfall",  repos="https://cloud.r-project.org")'
    
  • OpenCV is used for machine learning and image processing tasks. We developed the code using OpenCV v. 4.1. The installation process might need some more dependencies, e.g. cmake. The software needs to be installed manually. See the installation instructions or try following recipe:

    mkdir -p ~/src/opencv
    cd ~/src/opencv
    wget https://github.com/opencv/opencv/archive/4.1.0.zip
    unzip 4.1.0.zip
    cd opencv-4.1.0
    mkdir build
    cd build
    cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
    make -j
    sudo make install
    make clean
    
  • aria2 is used to download Landsat Level 1 product bundles with force-level1-landsat.

    sudo apt install aria2