BwUniCluster2.0/Software/R/terra: Difference between revisions

From bwHPC Wiki
Jump to navigation Jump to search
No edit summary
Line 18: Line 18:


The whole process will take approximately 30 minutes.
The whole process will take approximately 30 minutes.


== Preparations ==
Prepare .R directory (if it does not already exists). This is then filled with information how R should compile the packages (so-called 'compilation flags'). These are written (and can be reviewed) into the (text) file Makevars.

If you already have a .R/Makevars file, check whether these flags are already set.

<pre>
cat ~/.R/Makevars
</pre>

In this case, skip the following block of five commands. If not, please enter the following commands in your shell (command line):
<pre>
mkdir -p ~/.R

echo "CXX14=icpc" > ~/.R/Makevars
echo "CXX17=icpc" >> ~/.R/Makevars
echo "CXX14FLAGS=-O3 -fPIC -std=c++14 -wd308 -axCORE-AVX512,CORE-AVX2,AVX -xSSE4.2 -fp-model strict -qopenmp" >> ~/.R/Makevars
echo "CXX17FLAGS=-O3 -fPIC -std=c++17 -wd308 -axCORE-AVX512,CORE-AVX2,AVX -xSSE4.2 -fp-model strict -qopenmp" >> ~/.R/Makevars
echo "CXXFLAGS += -wd308" >> ~/.R/Makevars
echo "PKG_CXXFLAGS += -std=c++14 -wd308" >> ~/.R/Makevars
</pre>


== Install external programs ==
== Install external programs ==
Line 130: Line 152:


<pre>
<pre>
export LD_LIBRARY_PATH=$HOME/sw/R/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$HOME/sw/R/lib64:$LD_LIBRARY_PATH
export PATH=$PATH:$HOME/sw/R/bin
export PATH=$PATH:$HOME/sw/R/bin
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$HOME/sw/R/lib/pkgconfig
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$HOME/sw/R/lib/pkgconfig

Revision as of 10:49, 15 February 2024

General information

Please note that THIS SITE IS UNDER CONSTRUCTION!!!


sf and terra allow to use the following tools for handling spatial structures in R

  • the 'Geospatial' Data Abstraction Library GDAL
  • Projection/transformation operations from the PROJ library
  • Interface to the open source Geometry Engine GEOS


Installation

Please enter the following code, presented in the boxes below, directly into your shell/command line on bwUniCluster.

The whole process will take approximately 30 minutes.


Preparations

Prepare .R directory (if it does not already exists). This is then filled with information how R should compile the packages (so-called 'compilation flags'). These are written (and can be reviewed) into the (text) file Makevars.

If you already have a .R/Makevars file, check whether these flags are already set.

cat ~/.R/Makevars

In this case, skip the following block of five commands. If not, please enter the following commands in your shell (command line):

mkdir -p ~/.R

echo "CXX14=icpc" > ~/.R/Makevars
echo "CXX17=icpc" >> ~/.R/Makevars
echo "CXX14FLAGS=-O3 -fPIC -std=c++14 -wd308 -axCORE-AVX512,CORE-AVX2,AVX -xSSE4.2 -fp-model strict -qopenmp" >> ~/.R/Makevars
echo "CXX17FLAGS=-O3 -fPIC -std=c++17 -wd308 -axCORE-AVX512,CORE-AVX2,AVX -xSSE4.2 -fp-model strict -qopenmp" >> ~/.R/Makevars
echo "CXXFLAGS += -wd308" >> ~/.R/Makevars
echo "PKG_CXXFLAGS += -std=c++14 -wd308" >> ~/.R/Makevars

Install external programs

First, we download the sources of GDAL, PROJ, GEOS and install the three programs.

We will gather them in a folder src, unpack there and then compile.

We strongly recommend to use a interactive session with multiple cores.

salloc -n 4 -t 30 -p dev_single


First, provide the source directory (if not yet existing)

mkdir -p ~/src
cd ~/src

Then, download and install PROJ

PROJ_VER=9.3.1
wget http://download.osgeo.org/proj/proj-$PROJ_VER.tar.gz
tar xf proj-$PROJ_VER.tar.gz
cd proj-$PROJ_VER

mkdir build
cd build

export CMAKE_BUILD_PARALLEL_LEVEL=8
cmake -DCMAKE_INSTALL_PREFIX=$HOME/sw/R ..
cmake --build .
cmake --build . --target install

Then, install GDAL

cd $HOME/src
GDAL_VER=3.8.3
wget http://download.osgeo.org/gdal/$GDAL_VER/gdal-$GDAL_VER.tar.gz
tar xf gdal-$GDAL_VER.tar.gz
cd gdal-$GDAL_VER

mkdir build
cd build

CMAKE_BUILD_PARALLEL_LEVEL=8
cmake -DCMAKE_INSTALL_PREFIX=$HOME/sw/R ..
cmake --build .
cmake --build . --target install

Finally, install GEOS

cd $HOME/src
GEOS_VER=3.12.1
wget http://download.osgeo.org/geos/geos-$GEOS_VER.tar.bz2
tar xf geos-$GEOS_VER.tar.bz2
cd geos-$GEOS_VER

mkdir _build
cd _build

CMAKE_BUILD_PARALLEL_LEVEL=4
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME/sw/R ..
make
ctest
make install

Installing the R packages

In order to install the two R packages, we need R to understand where we installed the 3 underlying programs, so we export the necessary paths.


export LD_LIBRARY_PATH=$HOME/sw/R/lib64:$LD_LIBRARY_PATH
export PATH=$PATH:$HOME/sw/R/bin
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$HOME/sw/R/lib/pkgconfig
export GDAL_DATA=$HOME/sw/R/share/gdal


Additionally, the R package installation features compilation of built-in C++ code, for which we specify compilation options ('compiler flags')

export CFLAGS=-I$HOME/sw/R/include
export CXX="icpc -std=c++11"
export CXX17=icpc


Now, we install rgdal and rgeos from within R.

module load math/R/4.1.2


R -q
R> install.packages("terra")
R> library(terra)

Preparations to use the rgdal/rgeos packages

Since rgdal and rgeos depend on the external programs we installed, several environment variables have to be set before using the packages to allow R to address these programs.

We recommend to add the export commands

export LD_LIBRARY_PATH=$HOME/sw/R/lib64:$LD_LIBRARY_PATH
export PATH=$PATH:$HOME/sw/R/bin
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$HOME/sw/R/lib/pkgconfig
export GDAL_DATA=$HOME/sw/R/share/gdal

to your batch job scripts that use rgdal and rgeos or to run them directly in the command line if you use an interactive session.