powered by
Apply a function over pixel time series in a four-dimensional (band, time, y, x) array
# S3 method for array apply_time(x, FUN, ...)
four-dimensional input array with dimensions band, time, y, x (in this order)
function that receives a vector of band values in a one-dimensional array
further arguments passed to FUN
FUN is expected to produce a matrix (or vector if result has only one band) where rows are interpreted as new bands and columns represent time.
d <- c(4,16,32,32) x <- array(rnorm(prod(d)), d) z <- apply_time(x, function(v) { y = matrix(NA, ncol=ncol(v), nrow=2) y[1,] = (v[1,] + v[2,]) / 2 y[2,] = (v[3,] + v[4,]) / 2 y }) dim(z)
Run the code above in your browser using DataLab