Matplotlib学习笔记:绘制风羽图

目录

气象上常见的矢量图有三种表现形式:箭头图、流线图、风羽图。本文主要介绍风羽图的绘制。

与箭头图一样,流线图需要准备两个分量的数据,并绘制地图。

准备数据

请参考箭头图的数据说明,下面绘制850HPa的风场图。

绘制箭头图

Matplotlib提供barbs绘制流线图图。使用cartopy为数据添加投影,并绘制地图。

直接使用原始数据绘图风羽太密,需要对数据进行采样。

import matplotlib.pyplot as plt
import cartopy.crs as ccrs

f = plt.figure(figsize=(10, 5))

ax = f.add_subplot(
    111,
    projection=ccrs.PlateCarree(central_longitude=150)
)

vector_crs = ccrs.PlateCarree()

x = u_data.lons[::50, ::50]
y = u_data.lats[::50, ::50]
U = u_data.grid_values[::50, ::50]
V = v_data.grid_values[::50, ::50]
S = np.sqrt(U * U + V * V)

print(np.max(S), np.min(S))

ax.barbs(
    x, y, U, V, S,
    transform=vector_crs,
    barb_increments=dict(half=2, full=5, flag=10)
)

ax.coastlines()

plt.show()

结果如下图所示。