如何在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
相关产品推荐
相关产品推荐

