Я использую пакет musica для уменьшения масштаба климатических проекций
Например, в библиотеке musica есть набор функций, которые предназначены для применения к фрейму данных, но я хочу применить его к моему растровому стеку, и функция требуетНапример,
dec = decomp(basin_PT$obs_ctrl, period = c('Y5', 'Y1', 'M6', 'M3', 'M1', 'D20'))
, где obs_ctrl - таблица данных с 3 переменными: Date (объект даты 1980-2005,), pr (вектор значения осадков) и ts (вектор значения температуры).Применяя к растровому кирпичу, я сначала создаю свой объект даты,
cal <- "365_day"
origin <- "1980-01-01"
origin.pcict <- as.PCICt(origin, cal)
seconds.per.day <- 86400
ts.dat.days <- 0:1989
ts.dat.pcict <- origin.pcict + (ts.dat.days * seconds.per.day)
#convert the object to POSIXlt
dtm<-as.POSIXlt(ts.dat.pcict)
А затем создаю растровый кирпич, у меня есть растровый кирпич из 9490 слоев (ежедневные данные с разбивкой по сетке), Вот растровый кирпич
##### Загрузка необходимого пакета ######### библиотека (musica) библиотека (data.table) библиотека (lubridate) библиотека (растр) библиотека (PCICt)
pr_files= list.files(ipath,pattern='.asc')
rrr<- stack(pr_files)
И, чрезмерно распаковав функцию в растр,
rse <- function(dtm, rrr ,period = c('Y5', 'Y1', 'M6', 'M3', 'M1', 'D20')){
musica::decomp(dtm, pr,period)
}
При применении функции
c <- raster::overlay(rrr, dtm, fun = rse)
я получил следующую ошибку:
Error in (function (classes, fdef, mtable) :
unable to find an inherited method for function ‘overlay’ for signature ‘"RasterStack", "POSIXlt"’
Isв любом случае для применения функции dataframe к растровому кирпичу?Спасибо за вашу помощь