如何在R中用terra绘制指定样式世界地图并叠加.tif栅格文件
解决terra绘制SP样式世界地图并叠加栅格的问题
方法1:直接使用SP格式边界数据绘图并叠加栅格
这种方法直接调用SP格式的国家边界,保留terra对SP对象的默认绘图样式:
# 加载依赖包 library(terra) library(rnaturalearth) # 获取SP格式的世界国家边界数据 world_sp <- ne_countries(returnclass = "sp") # 绘制SP样式的世界地图(浅填充+黑色细边界) plot(world_sp, col = "antiquewhite", border = "black", lwd = 0.5) # 读取目标TIFF栅格文件 raster_tif <- rast("你的文件路径.tif") # (可选)统一坐标系:将栅格转换为与世界地图匹配的投影 raster_proj <- project(raster_tif, crs(world_sp)) # 叠加栅格到地图上,alpha参数控制透明度避免覆盖边界 plot(raster_proj, add = TRUE, alpha = 0.7)
方法2:调整SF格式数据的绘图参数模拟SP样式
如果偏好使用SF格式数据,可将其转换为terra支持的SpatVector,再通过参数调整实现SP版本的样式:
library(terra) library(rnaturalearth) # 获取SF格式的世界国家边界数据 world_sf <- ne_countries(returnclass = "sf") # 转换为SpatVector并设置绘图参数匹配SP样式 plot(vect(world_sf), col = "antiquewhite", border = "black", lwd = 0.5) # 读取并处理栅格 raster_tif <- rast("你的文件路径.tif") raster_proj <- project(raster_tif, crs(vect(world_sf))) # 叠加栅格 plot(raster_proj, add = TRUE, alpha = 0.7)
关键参数说明
col:设置国家多边形的填充色,用antiquewhite模拟SP版本的默认浅色系border:设置边界线条颜色,SP版本默认黑色lwd:调整边界线粗细,适配SP版本的细线条效果alpha:控制栅格透明度,确保底层国家边界可见project():当栅格与地图投影不一致时,必须执行投影转换才能正确叠加
内容的提问来源于stack exchange,提问作者close2zero
相关产品推荐
相关产品推荐

