在栅格中生成移动时间序列

89_*_*ple 5 r raster

我有一个看起来像这样的栅格:

library(raster)

# Create data
set.seed(123)
r <- raster(ncols=10, nrows=10)
r[] <- sample(10:360, ncell(r),replace = T)
crs(r) <- "+proj=lcc +lat_1=48 +lat_2=33 +lon_0=-100 +ellps=WGS84"
projection(r)
plot(r)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

对于每个网格,栅格包含一年中的某一天作为值.我正在寻找一种生成地图(可能是动画)的方法,从第1天到第365天,当地图到达与网格日相匹配的那天时,网格应该变为绿色.

我很抱歉,但由于我不知道R中是否有可能这样做,我无法生产我所尝试过的东西.

谢谢

编辑

我能想到的一种方法是运行这样的循环:

for(i in 2:365){

    breakpoints <- c(1,i,365)
    colors <- c("green4","white")
    plot(r, breaks = breakpoints,col=colors)
}
Run Code Online (Sandbox Code Playgroud)

将每个循环的ouptut保存为.png,然后开发它的.gif图像

DJa*_*ack 5

使用循环,可以reclassify将栅格转换为二进制栅格(如果小于或等于日,则为0;如果大于或等于日,则为1)。然后,您可以使用该animation包创建gif。

library(animation)
ani.options(interval=.05)

saveGIF({
  for (i in 1:365){
    m <- c(1, i, 0,  i, 365, 1)
    rclmat <- matrix(m, ncol=3, byrow=TRUE)
    rc <- reclassify(r, rclmat)

    plot(rc, col=c("green3", "white"), legend=FALSE, main = paste("Day", i))
  }
}) 
Run Code Online (Sandbox Code Playgroud)

演示(200天)

在此处输入图片说明