Skip to content
Prev 24761 / 29559 Next

difficulties on applying a function trough calc on a rasterstack

Works for me like this

library(raster)
r1 <- raster (matrix(ncol=3, data = 1,nrow = 3))
r2 <- raster (matrix(ncol=3, data = 21,nrow = 3))
r3 <- raster (matrix(ncol=3, data = 72,nrow = 3))
rst <- stack(r1, r2, r3)

calc (rst, mfri.test)


Here is an improved version (I think) of mfri.test


mfri.test2 <- function (a){
  a2 <- sort(unique(a[a>0]))
  n <- length(a2)
  if (n==0) {
      b <-0
  } else if (n==1){
      b <- a2
  } else {
      b <- diff(a2)
  }
  if (a2[n] != 85){
      b <- c(b, 85 - a2[n])
  }
  return (mean(b))
}
On Fri, Aug 5, 2016 at 10:21 AM, Pep SD <pep.bioalerts at gmail.com> wrote: