Finds the existing SAGA GIS installation(s),
generates and sets the necessary path and system variables for a seamless use of the command
line calls of the 'SAGA GIS' CLI API, setup valid system variables for calling a default
rsaga.env
and by this makes available the RSAGA
wrapper functions.
All existing installation(s) means that it looks for the saga_cmd
or saga_cmd.exe
executables. If the file is found it is assumed to be a valid 'SAGA GIS' installation. If it is called without any argument the most recent (i.e. highest) SAGA GIS version will be linked.
linkSAGA(
default_SAGA = NULL,
searchLocation = "default",
ver_select = FALSE,
quiet = TRUE,
returnPaths = TRUE
)
string contains path to RSAGA
binaries
drive letter to be searched, for Windows systems default
is C:
, for Linux systems default is /usr
.
boolean default is FALSE. If there is more than one 'SAGA GIS' installation and ver_select
= TRUE the user can select interactively the preferred 'SAGA GIS' version
boolean switch for supressing console messages default is TRUE
boolean if set to FALSE the pathes of the selected version are written
to the PATH variable only, otherwise all paths and versions of the installed SAGA versions ae returned.#'@details If called without any parameter linkSAGA()
it performs a full search over C:
. If it finds one or more 'SAGA GIS' binaries it will take the first hit. You have to set ver_select = TRUE
for an interactive selection of the preferred version. Additionally the selected SAGA pathes are added to the environment and the global variables sagaPath
, sagaModPath
and sagaCmd
will be created.
A list containing the selected RSAGA
path variables $sagaPath
,$sagaModPath
,$sagaCmd
and potentially other installations $installed
The excellent 'SAGA GIS' wrapper RSAGA
package was updated several times however it covers currently (Dec 2019) only 'SAGA GIS'
versions from 2.3.1 - 6.3.0 The fast evolution of 'SAGA GIS' makes it highly impracticable
to keep the wrapper adaptions in line (currently 7.5). RSAGA
will meet all linking needs perfectly if
you use 'SAGA GIS' versions from 2.0.4 - 7.5.0.
However you must call rsaga.env
using the rsaga.env(modules = saga$sagaModPath)
assuming that saga
contains the returnPaths of linkSAGA
In addition most recently the very promising Rsagacmd wrapper package is providing a new list oriented wrapping tool.
if (FALSE) {
# call if you do not have any idea if and where SAGA GIS is installed
# it will return a list with the selected and available SAGA installations
# it prepares the system for running the selected SAGA version via RSAGA or CLI
linkSAGA()
# overriding the default environment of rsaga.env call
saga<-linkSAGA()
if (saga$exist) {
require(RSAGA)
RSAGA::rsaga.env(path = saga$installed$binDir[1],modules = saga$installed$moduleDir[1])
}
}