【问题标题】:Animating RasterStack layers using tmap_animation使用 tmap_animation 为 RasterStack 图层设置动画
【发布时间】:2021-03-07 22:38:22
【问题描述】:

我一直在尝试使用tmap::tmap_animation() 为光栅堆栈设置动画。每个图层覆盖完全相同的地理范围,但日期不同。输出的 GIF 动画是带有多个小图的单帧。

是否可以使用tmap 制作 RasterStack 的 gif 动画?

我发现的唯一解决方法是:

  1. 将每一层转换为 SF 对象
  2. 为每个新的sf 多边形对象提供一个属性“层”,表示从中提取它的 RasterStack 层
  3. rbind sf 对象在一起

完成上述步骤后,可以绘制 gif 动画,但速度非常慢。

【问题讨论】:

    标签: r animation raster sf tmap


    【解决方案1】:

    tmap 可以直接将光栅堆栈或光栅砖绘制为动画。最简单的方法是指定tm_facets(),将每帧中的行数和列数限制为1,从而阻止它创建小的倍数,例如:

    library(raster)
    library(tmap)
    
    a <- raster(matrix(runif(100), 10, 10))
    b <- raster(matrix(runif(100), 10, 10))
    c <- raster(matrix(runif(100), 10, 10))
    d <- raster(matrix(runif(100), 10, 10))
    
    my_stack <- stack(a, b, c, d)
    
    anim <- tm_shape(my_stack) + tm_raster() + tm_facets(nrow = 1, ncol = 1)
    
    tmap_animation(anim, "anim_file.gif")
    

    【讨论】:

    • 谢谢您-我刚刚尝试了您的建议,这是解决我问题的有效方法。
    猜你喜欢
    • 1970-01-01
    • 2011-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多