View source: R/RSAGA-modules.R
rsaga.grid.calculus | R Documentation |
Perform Arithmetic Operations on Grids
rsaga.grid.calculus(in.grids, out.grid, formula, env = rsaga.env(), ...) rsaga.linear.combination( in.grids, out.grid, coef, cf.digits = 16, remove.zeros = FALSE, remove.ones = TRUE, env = rsaga.env(), ... )
in.grids |
input character vector: SAGA grid files (default file extension: |
out.grid |
output: grid file resulting from the cell-by-cell application of 'formula' to the grids. Existing files will be overwritten! |
formula |
character string of formula specifying the arithmetic operation to be performed on the |
env |
RSAGA geoprocessing environment, generated by a call to |
... |
optional arguments to be passed to |
coef |
numeric: coefficient vector to be used for the linear combination of the |
cf.digits |
integer: number of digits used when converting the |
remove.zeros |
logical: if |
remove.ones |
logical: if |
The in.grids
are represented in the formula
by the letters a
(for in.grids[1]
), b
etc. Thus, if in.grids[1]
is Landsat TM channel 3 and in.grids[2]
is channel 4, the NDVI formula (TM3-TM4)/(TM3+TM4) can be represented by the character string "(a-b)/(a+b)"
(any spaces are removed) or the formula ~(a-b)/(a+b)
in the formula
argument.
In addition to +, -, *, and /, the following operators and functions are available for the formula
definition:
+ ^ power
+ sin(a)
sine
+ cos(a)
cosine
+ tan(a)
tangent
+ asin(a)
arc sine
+ acos(a)
arc cosine
+ atan(a)
arc tangent
+ atan2(a,b)
arc tangent of b/a
+ abs(a)
absolute value
+ int(a)
convert to integer
+ sqr(a)
square
+ sqrt(a)
square root
+ ln(a)
natural logarithm
+ log(a)
base 10 logarithm
+ mod(a,b)
modulo
+ gt(a, b)
returns 1 if a greater b
+ lt(a, b)
returns 1 if a lower b
+ eq(a, b)
returns 1 if a equal b
+ ifelse(switch, x, y)
returns x if switch equals 1 else y
Using remove.zeros=FALSE
might have the side effect that no data areas in the grid with coefficient 0 are passed on to the results grid. (To be confirmed.)
The type of object returned depends on the intern
argument passed to the rsaga.geoprocessor()
. For intern=FALSE
it is a numerical error code (0: success), or otherwise (the default) a character vector with the module's console output.
Alexander Brenning (R interface), Olaf Conrad (SAGA module)
local.function()
, focal.function()
, and multi.focal.function()
for a more flexible framework for combining grids or applying local and focal functions; rsaga.geoprocessor()
, rsaga.env()
## Not run: # using SAGA grids: # calculate the NDVI from Landsat TM bands 3 and 4: rsaga.grid.calculus(c("tm3.sgrd","tm4.sgrd"), "ndvi.sgrd", ~(a-b)/(a+b)) # apply a linear regression equation to grids: coefs = c(20,-0.6) # maybe from a linear regression of mean annual air temperature (MAAT) # against elevation - something like: # coefs = coef( lm( maat ~ elevation ) ) rsaga.linear.combination("elevation.sgrd", "maat.sgrd", coefs) # equivalent: rsaga.grid.calculus("elevation.sgrd", "maat.sgrd", "20 - 0.6*a") ## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.