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

如何在R语言栅格绘制的黑海分布图中添加海岸线与陆地区域

给黑海栅格图添加陆地与边界的方法

可以借助rnaturalearth包获取高精度的全球陆地和国家边界数据,快速为你的黑海分布图补充地理要素,以下是修改后的完整实现方案:

步骤1:安装并加载所需扩展包

除你已有的包外,还需安装地理数据相关工具包:

install.packages(c("rnaturalearth", "rnaturalearthdata"))
library(ncdf4) 
library(raster) 
library(rgdal)
library(rnaturalearth)

步骤2:获取黑海区域的地理数据

通过ne_countries获取国家边界与陆地数据,再裁剪到黑海范围:

# 获取中等精度的全球陆地/国家数据
land <- ne_countries(scale = "medium", returnclass = "sp")
# 定义黑海经纬度范围(可根据你的数据微调)
blacksea_extent <- extent(27, 42, 40, 47)
# 裁剪出黑海周边的陆地部分
land_blacksea <- crop(land, blacksea_extent)

步骤3:修改绘图代码,叠加地理要素

在原有栅格处理代码后,添加陆地填充与边界线条:

# 原有数据处理代码保持不变
nc_data0 <- nc_open("Biomass_Simu0.nc")
biomass0 <- ncvar_get(nc_data0, "Biomass")

nc_data1 <- nc_open("Biomass_Simu1.nc")
biomass1 <- ncvar_get(nc_data1, "Biomass")
 
lon <- ncvar_get(nc_data0, "longitude")
lat <- ncvar_get(nc_data0, "latitude", verbose = F)

Biomass_avg <- (biomass0 + biomass1 )/2
a <- apply(Biomass_avg, c(1,2,3), mean)

r1 <- raster(t(a[ , , 1]), xmn=min(lon), xmx=max(lon), ymn=min(lat), ymx=max(lat), crs=CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs+ towgs84=0,0,0"))
r1 <- flip(r1, direction='y')

# 绘制栅格底图
plot(r1, main = "黑海平均生物量分布")
# 叠加陆地填充(灰色,可自定义颜色)
plot(land_blacksea, col = "gray80", add = TRUE)
# 叠加国家边界(黑色粗线条)
plot(land_blacksea, border = "black", lwd = 1.5, add = TRUE)

可选:用ggplot2绘制更美观的可视化

如果偏好ggplot2风格,可采用以下代码:

library(ggplot2)
# 将栅格转为数据框格式
r_df <- as.data.frame(r1, xy = TRUE)
colnames(r_df)[3] <- "Biomass"

ggplot() +
  geom_raster(data = r_df, aes(x = x, y = y, fill = Biomass)) +
  geom_polygon(data = land_blacksea, aes(x = long, y = lat, group = group), fill = "gray80", color = "black") +
  coord_sf(xlim = c(min(lon), max(lon)), ylim = c(min(lat), max(lat))) +
  scale_fill_viridis_c(option = "plasma") +
  labs(title = "黑海平均生物量分布", x = "经度", y = "纬度", fill = "生物量") +
  theme_minimal()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 15:32:11