BwUniCluster2.0/Software/R/terra: Difference between revisions
Line 135: | Line 135: | ||
Now, we install |
Now, we install terra and sf from within R. |
||
<pre> |
<pre> |
||
Line 144: | Line 144: | ||
R> install.packages("terra") |
R> install.packages("terra") |
||
R> library(terra) |
R> library(terra) |
||
R> install.packages("sf") |
|||
R> library(sf) |
|||
Linking to GEOS 3.12.1, GDAL 3.8.3, PROJ 9.3.1; sf_use_s2() is TRUE |
|||
</pre> |
</pre> |
||
Revision as of 11:50, 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 terra and sf from within R.
module load math/R/4.1.2 R -q R> install.packages("terra") R> library(terra) R> install.packages("sf") R> library(sf) Linking to GEOS 3.12.1, GDAL 3.8.3, PROJ 9.3.1; sf_use_s2() is TRUE
Preparations to use the terra and sf 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.