Я хочу проанализировать растровый стек и определить первый слой в стеке, который удовлетворяет условию для каждого пикселя.
# Generate stack of random values
library(raster)
r1 <- r2 <- r3 <- r4 <-r5 <- r6 <- r7 <- raster(ncol=10, nrow=10)
r1[] <- rpois(ncell(r1), 1)
r2[] <- rpois(ncell(r2), 1)
r3[] <- rpois(ncell(r3), 1)
r4[] <- rpois(ncell(r4), 1)
r5[] <- rpois(ncell(r5), 1)
r6[] <- rpois(ncell(r6), 1)
r7[] <- rpois(ncell(r7), 1)
# stack them
s <- stack(r1,r2,r3,r4,r5,r6,r7)
Я хочу взять этот стек и определить, что первый слой удовлетворяет условию, например: «Значение = 1 для 3 последовательных слоев» или «2 из последних 3 слоев имеют значение = 1», например.
Можете ли вы придумать какую-нибудь функцию для этого?
Если я запускаю rasterToPoints, я могу преобразовать стек в кадр данных со столбцами, представляющими каждое значение слоя. Это может сделать вещи проще.
values<-as.data.frame(rasterToPoints(s))
values<-values[,3:ncol(values)] #eliminates two columns at the beginning
values$first<-NA
В этот момент я думаю, что я бы хотел пройтись по циклам и заполнить столбец значений $ first первым столбцом, отвечающим моим условиям.
Как только я определю правильный слой для каждого пикселя, я хочу получить выходной растр с этим правильным номером слоя в качестве значения для каждого пикселя.
Буду признателен за любую помощь!
Примерно такой же вопрос выложен здесь , хотя здесь учитывается количество слоев, удовлетворяющих условию.