Как зациклить растровый кирпич?

У меня есть растровый блок SCA (nrow=108,ncol=132,nlayers=365), который содержит частичный снежный покров. Я хочу сделать из этого 46 стеков по 8 слоёв и рассчитать максимальный фракционный снежный покров из этих 46 стеков. Как мне это сделать?


person amrit    schedule 02.04.2016    source источник


Ответы (1)


Я думаю, вы можете сделать это следующим образом:

library(raster)
# example data
sca <- brick(nrow=108,ncol=132,nl=365) 
values(sca) <- runif(ncell(sca)*nlayers(sca))

# indices grouping sets of 8
i <- rep(1:ceiling(365/8), each=8)
# the last period is not a complete set of 8 days
i <- i[1:nlayers(sca)]

x <- stackApply(sca, i, max)

Если вам нужен цикл (но это R, старайтесь избегать циклов), вы можете сделать

for (i in 1:nlayers(sca)) {
    x <- sca[[i]]
    # etc.
}
person Robert Hijmans    schedule 02.04.2016