【问题标题】:Wind barbs and vectors in Cartopy - issue with regrid_shapeCartopy 中的风倒钩和矢量 - regrid_shape 问题
【发布时间】:2017-01-12 01:11:33
【问题描述】:

我最近从 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 在此投影下的错误吗,我做错了什么,和/或有其他方法可以让我获得看起来自然的向量吗?

【问题讨论】:

    标签: python matplotlib cartopy


    【解决方案1】:

    这似乎是在此投影的两极变换向量的问题。如果您从输入数据中删除极点,则重新网格化将按预期工作。无论如何,绘制一个在极点处多值的向量场并没有真正意义,尤其是在极点为单点的这个投影中,因此您不会通过删除极点处的数据来做任何不利的事情.

    【讨论】:

    • 非常好,现在完美运行 - 谢谢!也许这可以在函数本身中处理,或者在文档中提到?我不怀疑这是一个太罕见的问题,因为我正在使用纬度/经度坐标中的再分析数据 (CFSR)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多