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

如何在Cartopy中为GSHHS高分辨率海岸线应用海洋掩膜?

解决方案

要使用GSHHS的高分辨率数据实现陆地掩膜(匹配高分辨率海岸线),不需要调用NaturalEarth的陆地特征,直接通过GSHHSFeature本身的填充参数即可实现——因为GSHHS数据集包含完整的陆地多边形信息,能同时提供高分辨率海岸线和陆地掩膜。

修改后的代码如下:

import matplotlib.pyplot as plt
import cartopy

fig = plt.figure(figsize=(20,12))
ax = plt.axes(projection=cartopy.crs.PlateCarree())

# 用GSHHS full分辨率同时实现陆地掩膜与高分辨率海岸线
gshhs_land = cartopy.feature.GSHHSFeature(
    scale="full",
    facecolor="lightgray",  # 陆地填充色,即掩膜颜色
    edgecolor="black",      # 海岸线颜色
    linewidth=2             # 海岸线宽度
)
ax.add_feature(gshhs_land)

# 若需要自定义海洋颜色,直接设置坐标轴背景色
ax.set_facecolor("lightblue")

ax.set_extent([-17, -16, 27.9, 28.7])
plt.show()

关键说明:

  • GSHHSFeature的facecolor参数用于填充陆地区域,完全基于GSHHS高分辨率数据,避免了和低分辨率NaturalEarth数据的边界差异。
  • edgecolor和linewidth控制海岸线样式,与掩膜使用同一套高分辨率边界,保证视觉一致性。
  • 通过ax.set_facecolor()可自定义海洋区域颜色,和陆地掩膜形成清晰区分。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 10:35:36