Использовать animate() с сериями графиков уровней в растре R

У меня есть временной ряд из 25 растровых покровов в год. Поскольку это категориальные данные, я использую levelplot(inputRaster) (часть библиотеки rasterVis) для построения одного растра. Тем не менее, я хотел бы последовательно построить годовые растры, так как animate Функция растровой библиотеки делает. Когда я использую

rasStack <- stack(listOfRasters) animate(rasStack)

Результат не имеет категорической легенды. Итак, вкратце: как я могу объединить функции levelplot а также animate?

1 ответ

Функция animate принимает только растровые объекты в качестве входных данных. Ты можешь попробовать saveGIF для анимации уровней:

library(raster)
library(rasterVis)
library(animation)
library(classInt)

r <- raster(ncol=40, nrow=20)
r[] <- rnorm(n=ncell(r))
s <- stack(x=c(r, r*r, r*r*r, r*r*r*r))

classes <- classIntervals(values(r), n=5, style="fisher", precision = 3)
brks <- classes$brks
brks <- round(brks, 2)

saveGIF({
  for(i in c(1:nlayers(s))){
    l <- levelplot(s[[i]], colorkey=list(at=brks, labels=c(as.character(brks))), margin=FALSE)
    plot(l)
  }
}, interval=0.2, movie.name="animation.gif")

Другие вопросы по тегам