使用rasterVis::plot3D绘制高分辨率DEM出现异常3D输出
问题原因与解决方案
核心原因
你遇到的异常是X/Y轴与Z轴的尺度严重失衡导致的:
- 高分辨率DEM的空间范围极小:X方向仅约3.3米,Y方向仅约4米;而高程差只有0.31米左右。
plot3D默认会使用数据的真实尺度渲染,Z轴的微小起伏在X/Y的相对大尺度下被完全压缩,导致3D显示异常(比如看起来像平面、扭曲或者分层错乱)。- 对比2米分辨率DEM:它的空间范围约584×394米,高程差约40米,X/Y与Z的尺度比例更协调,所以渲染正常。
解决办法
1. 调整Z轴缩放比例(最直接有效)
使用plot3D的zfac参数放大Z轴的高度,让高程起伏清晰可视化:
rgl::open3d() # 可根据实际显示效果微调zfac数值,比如10-20区间 plot3D(dem1cm, zfac = 15)
2. 手动调整3D视角与缩放
如果调整zfac后视角仍不理想,可通过rgl的交互操作或代码调整:
- 交互操作:按住鼠标左键拖动旋转视角,滚轮缩放,右键拖动平移
- 代码设置初始视角:
# theta控制水平旋转角度,phi控制垂直旋转角度,zoom控制缩放比例 rgl::view3d(theta = 45, phi = 30, zoom = 0.8)
3. 可选:归一化高程值(辅助优化)
若需要更突出相对起伏,可先对高程做归一化处理再渲染:
dem1cm_norm <- dem1cm - minValue(dem1cm) plot3D(dem1cm_norm, zfac = 10)
内容的提问来源于stack exchange,提问作者Krystal Randall
相关产品推荐
相关产品推荐

