Cartopy中的风倒钩和向量 - 与regrid_shape一起出现问题

时间:2017-01-12 01:11:33

标签: python matplotlib cartopy

我最近从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的错误,我做错了什么,和/或是否有另一种方式让我获得自然的向量?

Manual skip image Regrid_Shape = 20 image

1 个答案:

答案 0 :(得分:1)

这似乎是在这个投影的极点处转换矢量的问题。如果从输入数据中删除极点,则重新排序将按预期工作。无论如何在极点上绘制多值矢量场并没有多大意义,特别是在这个极点是单点的投影中,所以你不会通过去除极点上的数据来做任何不好的事情。