You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在lidR包中将LAS点云生成的DTM保存为TIFF文件?

解决plot_dtm3d绘图后savePlot报错“no such device”的问题

plot_dtm3d()是lidR基于rgl包实现的3D交互式绘图,它使用的是rgl专属的3D绘图设备,而savePlot()仅支持R基础绘图系统的设备(比如常规的png、tiff绘图窗口),两者设备不兼容,因此会抛出“no such device”错误。

你可以用rgl包提供的专用函数来保存3D绘图,具体方法如下:

方法1:用rgl.snapshot保存位图格式(png/tiff等)

library(lidR)
library(rgl)

# 生成DTM并绘制3D图
dtm1_tin <- rasterize_terrain(las1, res = 1, algorithm = tin())
plot_dtm3d(dtm1_tin, bg = "white")

# 保存为PNG
rgl.snapshot("dtm1_tin.png")

# 保存为TIFF(需确保已安装tiff包)
install.packages("tiff")
rgl.snapshot("dtm1_tin.tiff")

方法2:用rgl.postscript保存矢量格式(pdf/eps等)

如果需要可缩放的矢量图,使用该方法:

# 绘制3D图后执行
rgl.postscript("dtm1_tin.pdf", fmt = "pdf")
# 保存为EPS格式
rgl.postscript("dtm1_tin.eps", fmt = "eps")

注意事项

  • 确保已安装并加载rgl包,lidR调用plot_dtm3d()时会自动依赖,但手动加载能避免潜在的设备调用问题
  • rgl.snapshot()会捕获当前rgl窗口的实时画面,保存前确保窗口处于正常显示状态

内容的提问来源于stack exchange,提问作者Tahir Saeed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 11:50:22