Hi everyone,

I'm struggling to apply a function on multiple RasterBrick with raster::overlay. In the dummy example below the idea is that the function takes two numeric vectors and returns the slope of the linear model. Therefore I would expect to have a RasterLayer in return with slope for each pixel.
Overlay complains that the function is not vectorized.
I tried to wrap fun in a mapply call to vectorize the function over x and y but that did not work either.
Any ideas?

####
library(raster)

b1 <- brick(ncol=10, nrow=10, nl=15)
b1[] <- rnorm(length(b1), 3, 2)
b2 <- b1 * b1

# Define function to compute slope
fun <- function(x, y) {
  model <- lm(y ~ x)
  model$coefficients[[2]]
}

# Test function for two numeric vectors of same length
fun(c(1,2,3,4), c(4,2,6,7))

# Use function within overlay
out <- overlay(b1, b2, fun = fun2)


Cheers,
Loïc

_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Reply via email to