Local functions for two RasterLayer objects (using a focal neighborhood)

# S4 method for RasterLayer,RasterLayer
localFun(x, y, ngb=5, fun, filename='', ...)

Arguments

x

RasterLayer or RasterStack/RasterBrick

y

object of the same class as x, and with the same number of layers

ngb

integer. rectangular neighbourhood size. Either a single integer or a vector of two integers c(rows, cols), such as c(3,3) to have a 3 x 3 focal window

fun

function

filename

character. Output filename (optional)

...

additional arguments as for writeRaster

Note

The first two arguments that fun needs to accept are vectors representing the local cells of RasterLayer x and y (each of length ngb * ngb). It also must have an ellipsis (...) argument

Value

RasterLayer

See also

corLocal, localFun

Examples

set.seed(0)
b <- stack(system.file("external/rlogo.grd", package="raster"))
x <- flip(b[[2]], 'y') + runif(ncell(b))
y <- b[[1]] + runif(ncell(b))

f <- localFun(x, y, fun=cor)

if (FALSE) {
# local regression:
rfun <- function(x, y, ...) {
  m <- lm(y~x)
  # return R^2
  summary(m)$r.squared
}

ff <- localFun(x, y, fun=rfun)
plot(f, ff)
}