Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: amritОтветов: 1

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

raster

Ответы

Ответ 1 · рейтинг 5 · Robert Hijmans

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

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.
}

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы