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()
结果如下图所示。