You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python北极极射投影下稀疏绘制风羽的问题求解

北极极射投影下风羽调整的解决方案

你当前代码中手动稀疏风场不生效的核心原因是barbs方法传入了*regrid_shape=35*参数,该参数会触发cartopy自动对输入风场做重采样,完全覆盖你手动做的经纬度、uv分量切片操作,导致自定义间隔失效。

解决方案

  • 方案1:关闭自动重采样,使用自定义间隔采样
    直接删除regrid_shape参数即可,此时你写的[::2]切片会完全生效,需要更稀疏的风场直接调大切片步长(比如改成[::3]、[::4])即可。
    修改后的参考代码:

    ax3.barbs(u10_2['lon'][::3].values, u10_2['lat'][::3].values, u10_2[::3,::3].values, 
          v10_2[::3,::3].values, transform=ccrs.PlateCarree(), pivot='middle',
          sizes=dict(emptybarb=0.1, height=0.4),
          length=6, color='black',
          linewidth=1, alpha=0.8, barb_increments=dict(half=.5, full=1, flag=5))
    
  • 方案2:使用自动重采样调整稀疏度
    无需手动做切片,直接修改regrid_shape的数值即可,数值越小风羽越稀疏。该方案更适配极射投影这类存在坐标变形的场景,采样点分布更均匀,不会出现高纬/低纬区域疏密不均的问题:
    修改后的参考代码:

    # 无需对lon、lat、u、v做切片,直接用全量数据
    ax3.barbs(u10_2['lon'].values, u10_2['lat'].values, u10_2.values, 
          v10_2.values, transform=ccrs.PlateCarree(), pivot='middle',
          sizes=dict(emptybarb=0.1, height=0.4),
          length=6, color='black', regrid_shape=20, 
          linewidth=1, alpha=0.8, barb_increments=dict(half=.5, full=1, flag=5))
    

其他效果调整建议

  • 极射投影下显示比例和等经纬度投影不同,可适当调大length参数到5~7,风羽会更清晰
  • 原来的emptybarb=0.0000001数值过小,可能导致弱风风羽显示异常,建议改成0.1~0.2
  • sizes中的height参数调整到0.3~0.4,风羽比例会更协调

内容的提问来源于stack exchange,提问作者Evelien

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 08:45:03