3

我想使用光线着色器包创建地形运动的延时可视化。我发现这篇网络文章通过使用 Venµs 图像提供了一个有用的提示。

文章中的脚本是

library(rayshader)
library(abind)
library(raster)
p="./"
fdem=paste0(p,"HMA_DEM8m_MOS_20170716_tile-677_UTM45_filled_crop_Venus.tif")
pimg=paste0(p,"/VIS1C/")

dem=raster(fdem)
elmat=matrix(extract(dem, extent(dem), buffer = 1000),nrow = ncol(dem), ncol = nrow(dem))

files=list.files(path=pimg, pattern="jpg$", full.names=FALSE, recursive=FALSE)

#rotating view  
th=200
k=0
for (x in files) {
    fimg=paste0(pimg,x)
    fout=paste0(p,"/3Drot/",x)
    print(x)
    txt=substr(x, 36, 43)
    k=k+1
    if (k<length(files)/2){
    th=th+0.5
    }else{
    th=th-0.5
    }
    imgr = raster(fimg,band=1)
    imgg = raster(fimg,band=2)
    imgb = raster(fimg,band=3)
    r = t(matrix(extract(imgr, extent(imgr), buffer = 1000),nrow = ncol(imgr), ncol = nrow(imgr)))
    g = t(matrix(extract(imgg, extent(imgr), buffer = 1000),nrow = ncol(imgr), ncol = nrow(imgr)))
    b = t(matrix(extract(imgb, extent(imgr), buffer = 1000),nrow = ncol(imgr), ncol = nrow(imgr)))
    col=abind(r,g,b,along=3)/255
    plot_3d(col, elmat, zscale = 5, fov = 0, theta = th, zoom = 0.7, phi = 45, windowsize = c(1000, 800))
    render_snapshot(fout,clear = TRUE,title_text = txt, title_color = "black",
               title_font = "Arial", gravity = "NorthEast", title_offset = c(0,0))
    }

我有所有的 RGB 合成时间序列图像,这些图像是按照本文和 DEM 从 sentinel hub 下载的,以显示光线着色器动画,但不知道将这些脚本放在哪里。我一直在理解如何改变实现时间序列动画的路径。

4

0 回答 0