R语言中如何将Fs值栅格图层叠加到同坐标栅格底图上
R中同坐标栅格图层的叠加绘图方案
不需要合并原始数据,直接叠加绘图即可——因为二者空间坐标、范围完全匹配,R的栅格绘图工具支持直接分层绘制。以下是两种常用工具包的实现示例:
1. 使用terra包(推荐,替代旧版raster)
- 加载栅格对象:
library(terra) # 加载带晕渲的底图栅格 hillshade_rast <- rast("你的晕渲栅格文件路径.tif") # 加载Fs安全系数栅格 fs_rast <- rast("你的Fs栅格文件路径.tif") - 分层叠加绘图:先绘制晕渲底图,再叠加半透明的Fs栅格,保留底图纹理的同时展示Fs分布
# 绘制晕渲底图(关闭默认图例避免冲突) plot(hillshade_rast, col = gray(0:100/100), legend = FALSE) # 叠加Fs栅格,设置透明度与配色 plot(fs_rast, col = viridis::viridis(100), alpha = 0.6, add = TRUE, legend = TRUE)
2. 使用raster包(兼容旧代码)
- 加载栅格对象:
library(raster) hillshade_rast <- raster("你的晕渲栅格文件路径.tif") fs_rast <- raster("你的Fs栅格文件路径.tif") - 分层叠加绘图:
plot(hillshade_rast, col = gray(0:100/100), legend = FALSE) plot(fs_rast, col = RColorBrewer::brewer.pal(9, "RdYlBu"), alpha = 0.6, add = TRUE, legend = TRUE)
注意事项
alpha(透明度)建议设为0.4-0.7,平衡底图晕渲效果与Fs栅格的可读性- 仅当需要对两个栅格进行联合分析(如计算相关性、提取对应值)时,才需要合并为多层栅格对象;单纯绘图无需合并操作
内容的提问来源于stack exchange,提问作者Matlaboverflow
相关产品推荐
相关产品推荐

