apply_time.array: Apply a function over pixel time series in a four-dimensional...

Description Usage Arguments Details Note Examples

View source: R/streaming.R

Description

Apply a function over pixel time series in a four-dimensional (band, time, y, x) array

Usage

1
2
## S3 method for class 'array'
apply_time(x, FUN, ...)

Arguments

x

four-dimensional input array with dimensions band, time, y, x (in this order)

FUN

function that receives a vector of band values in a one-dimensional array

...

further arguments passed to FUN

Details

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.

Note

This is a helper function that uses the same dimension ordering as gdalcubes. It can be used to simplify the application of R functions e.g. over time series in a data cube.

Examples

1
2
3
4
5
6
7
8
9
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)

Example output

[1]  2 16 32 32

gdalcubes documentation built on Oct. 28, 2021, 5:06 p.m.