我最近从Basemap切换到了Cartopy,并且在绘制风矢量时遇到了一些麻烦。我有一个North Polar Stereographic投影(central_longitude = -100.0),范围[-180,180,10,90]。我有一个netCDF数据集,u,v风值每0.5度经度和纬度。
如果我使用切片绘制倒钩以手动跳过一定数量(因为数据太密集而不能绘制所有数据),我得到的是正确的字段表示(见下面的第一张图片):< / p>
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的错误,我做错了什么,和/或是否有另一种方式让我获得自然的向量?
答案 0 :(得分:1)
这似乎是在这个投影的极点处转换矢量的问题。如果从输入数据中删除极点,则重新排序将按预期工作。无论如何在极点上绘制多值矢量场并没有多大意义,特别是在这个极点是单点的投影中,所以你不会通过去除极点上的数据来做任何不好的事情。