使用 tmap_animation 动画 RasterStack 图层

问题描述

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

是否可以使用 tmap 创建 RasterStack 的 gif 动画?

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

  1. 将每一层转换为一个SF对象
  2. 为每个新的 sf 多边形对象提供一个属性“图层”,代表它从中拉出的 RasterStack 图层
  3. rbindsf 个对象放在一起

完成上述步骤后,就可以绘制 gif 动画了,但是速度很慢。

解决方法

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

library(raster)
library(tmap)

a <- raster(matrix(runif(100),10,10))
b <- raster(matrix(runif(100),10))
c <- raster(matrix(runif(100),10))
d <- raster(matrix(runif(100),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")

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...