我最近从 Basemap 切换到 Cartopy 并且在绘制风矢量时遇到了一些麻烦。我有一个北极立体投影(central_longitude=-100.0),范围为 [-180,180,10,90]。我有一个 netCDF 数据集,每 0.5 度纬度和经度都有 u,v 风值。
如果我使用切片绘制倒钩以手动跳过某个数字(因为数据太密集而无法全部绘制),我会得到似乎是该字段的正确表示(参见下面的第一张图片):
sknum = 15
skip=(slice(None,None,sknum),slice(None,None,sknum))
ax.barbs(lons[skip], lats[skip], u[skip],v[skip], length=6,
sizes=dict(emptybarb=0.25, spacing=.2, height=0.5),
zorder = 20,
linewidth=0.95, transform= ccrs.PlateCarree())
但是,这种方法看起来有点不自然,并且在极点附近过于密集。使用 cartopy 的 regrid_shape 功能给我带来了更严重的错误(参见第二张图片),一遍又一遍地出现相同向量的行。
ax.barbs(lons, lats, u,v, length=6,
sizes=dict(emptybarb=0.25, spacing=.2, height=0.5),
zorder = 20,
linewidth=0.95, transform= ccrs.PlateCarree(), regrid_shape=20)
这是此投影下 regrid_shape 的错误吗,我做错了什么,和/或是否有另一种方法可以让我获得看起来自然的向量?