Сезонное растровое средство с функцией cal c в R - PullRequest
1 голос
/ 02 февраля 2020

Я искал способ агрегирования нескольких растров по сезонному индексу в R. Я пытался использовать функцию stackApply, но у полученных слоев есть значения NA во всех слоях. Кроме того, я пробовал использовать zApply, но в полученном слое слои не сортируются, и они не совпадают с именами слоев. Cal c медленнее, но безопаснее при обработке.

Функция Cal c имеет следующую ошибку. Cal c работает для месячных и годовых средств, но не для сезонных

r_name<-str_sub(r_files,-12,-5);r_name

groups <- function(x) {
  d <- as.POSIXlt(idx)
  ans <- character(length(x))
  ans[d$mon %in% c(11,0,1)] <- "DJF"
  ans[d$mon %in%  2:4] <- "MAM"
  ans[d$mon %in%  5:7] <- "JJA"
  ans[d$mon %in% 8:10] <- "SON"
  ans
}

idx<-as.Date(r_name, format = "%Y%m%d")

NDVI<-stack(r_files)

rstack <- setZ(NDVI,idx)
NDVI_seasonal_hist <- calc(rstack,fun=function(x) { by(x, format(groups(format(idx,"%Y%m"))), mean, na.rm = T)})
Error in .calcTest(x[1:5], fun, na.rm, forcefun, forceapply) : 
  cannot use this function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...