gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 18:01:17 25 4
gpt4 key购买 nike

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

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)

enter image description here

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

我很抱歉,但我无法生产我尝试过的东西,因为我不知道这种事情在 R 中是否可行。

谢谢

编辑

我能想到的一种方法是运行这样的循环:
for(i in 2:365){

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

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

最佳答案

使用循环,您可以 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))
}
})

演示 (200 天)

enter image description here

关于r - 在栅格中生成移动时间序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49734639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com