Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 使用tmap_动画设置光栅堆栈层动画_R_Animation_Raster_Sf_Tmap - Fatal编程技术网

R 使用tmap_动画设置光栅堆栈层动画

R 使用tmap_动画设置光栅堆栈层动画,r,animation,raster,sf,tmap,R,Animation,Raster,Sf,Tmap,我一直在尝试使用tmap::tmap\u animation()为光栅堆栈设置动画。每层覆盖的地理范围完全相同,但日期不同。输出的GIF动画是具有多个小绘图的单帧 是否可以使用tmap创建光栅堆栈的gif动画? 我发现的唯一解决办法是: 将每个层转换为SF对象 为每个新的sfpolygon对象指定一个属性“layer”,表示从中提取的光栅堆栈层 rbind将sf对象放在一起 完成上述步骤后,可以绘制gif动画,但速度非常慢。tmap可以直接将光栅堆栈或光栅砖绘制为动画。最简单的方法是指定tm_f

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

是否可以使用
tmap
创建光栅堆栈的gif动画?

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

  • 将每个层转换为SF对象
  • 为每个新的
    sf
    polygon对象指定一个属性“layer”,表示从中提取的光栅堆栈层
  • rbind
    sf
    对象放在一起

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

    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")
    
    库(光栅)
    图书馆(tmap)
    
    a谢谢-我刚刚尝试了你的建议,这是解决我问题的有效方法。