спасибо за ваше решение здесь, но я получил следующую ошибку. wmax <- stackApply (snwnc.dt.yr2, indices = indices2, fun = function (i, ...) which.max (i)) Ошибка в .local (x, values, ...): значения должны быть числовыми , целое или логическое. У меня есть индексы 2 как числа.

могу получить два растра, которые дают максимальное значение для каждой ячейки сетки в год, а также даты, когда это максимальное значение произошло. Ниже приведен воспроизводимый пример с некоторыми шагами, которые я реализовал.

library(raster)

# Create a raster

r1 <- raster(nrow=10, ncol=7)
r <- stack(setValues(r1, runif(ncell(r1))),
           setValues(r1, runif(70 ,0.6,0.9)),
           setValues(r1, runif(70 ,0.2,0.4)),
           setValues(r1, runif(70 ,1,2)),
           setValues(r1, runif(70 ,0.5,1.0)),
           setValues(r1, runif(70 ,0.3,0.9)),
           setValues(r1, runif(70 ,1,2)))
r

# Make Dates. This is random, i have about 24000 values.

Dates<-data.frame(Date=c("2000-01-02","2000-01-03","2000-02-03",
           "2001-09-02","2001-09-03","2001-10-01",
           "2001-10-02"))

Date_val<-as.Date(Dates$Date,format="%Y-%m-%d")
Date_val

r.dt<-setZ(r,Date_val)

# Get indices to make annual maxima value for each grid cells

indices <- format(as.Date(getZ(r.dt), format = "%Y-%b-%d"), format = "%Y")

# Implement stackApply to get maximum value each year.

rmax<-stackApply(r.dt,indices = indices,fun=max,na.rm=T)
plot(rmax)

Ответы на вопрос(1)

Ваш ответ на вопрос