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 coefficients |
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:
+ \hat{\ } 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.