17 风羽图 barbs
17 风羽图 barbs
用途
气象标准风场符号,羽数表示风速、朝向表示风向。
示例(5 张)
17-1 风电场风场风羽图

17-2 区域气象站地面风场

17-3 输电线路走廊沿线风场

17-4 山顶风资源的垂直风廓线风羽

17-5 海上风电场海面风场

代码
以下 5 个函数取自 code/第三批_场与三角网格261107.py,直接调用即可出图。样式(宋体 + Times、10 磅、刻度朝内四边、留白自检)由 code/公共配置261107.py 的 setup_cn_style() 和 save() 统一提供,本节不再重复。
# 摘自 code/第三批_场与三角网格261107.py
def bb_01():
"""风电场风场风羽图。"""
fig, ax = new_fig(left=0.19, bottom=0.21, right=0.86)
x = np.linspace(0, 6, 13)
y = np.linspace(0, 4, 11)
X, Y = np.meshgrid(x, y)
U = 9.5 + 1.6 * np.sin(Y / 1.3) * np.cos(X / 2.4)
V = 1.4 * np.cos(X / 1.9) * np.sin(Y / 1.1) - 0.5
m = ax.barbs(X, Y, U, V, np.hypot(U, V), cmap=CMAP_SEQ, length=5.2,
linewidth=0.6, barb_increments={"half": 2, "full": 4, "flag": 20})
ax.set_xlabel("东向距离 " + IT["x"] + " / km")
ax.set_ylabel("北向距离 " + IT["y"] + " / km")
ax.set_aspect("equal")
cbar(fig, ax, m, "风速 " + IT["v"] + " / (m/s)")
save(fig, "17_风羽图", "17_风羽图_风电场风羽")
def bb_02():
"""区域气象站地面风场。"""
fig, ax = new_fig(left=0.19, bottom=0.21, right=0.86)
x = np.linspace(0, 8, 15)
y = np.linspace(0, 6, 12)
X, Y = np.meshgrid(x, y)
U = 5.2 + 2.4 * np.cos(Y / 2.2) - 1.2 * np.sin(X / 3.1)
V = 2.1 * np.sin(X / 2.4) + 1.1 * np.cos(Y / 1.8)
m = ax.barbs(X, Y, U, V, np.hypot(U, V), cmap=CMAP_SEQ, length=5.0,
linewidth=0.6, barb_increments={"half": 1, "full": 2, "flag": 10})
ax.set_xlabel("东向距离 " + IT["x"] + " / km")
ax.set_ylabel("北向距离 " + IT["y"] + " / km")
ax.set_aspect("equal")
cbar(fig, ax, m, "风速 " + IT["v"] + " / (m/s)")
save(fig, "17_风羽图", "17_风羽图_区域气象站风场")
def bb_03():
"""输电线路走廊沿线风场。"""
fig, ax = new_fig(left=0.19, bottom=0.21, right=0.86)
x = np.linspace(0, 10, 17)
y = np.linspace(0, 2.5, 7)
X, Y = np.meshgrid(x, y)
U = 7.8 + 1.4 * np.sin(X / 2.0) * np.exp(-Y / 3.0)
V = 0.9 * np.cos(X / 1.6) * (1 - Y / 4.0)
m = ax.barbs(X, Y, U, V, np.hypot(U, V), cmap=CMAP_SEQ, length=5.0,
linewidth=0.6, barb_increments={"half": 1, "full": 2, "flag": 10})
ax.set_xlabel("沿线距离 " + IT["x"] + " / km")
ax.set_ylabel("离地高度 " + IT["y"] + " / 10 m")
cbar(fig, ax, m, "风速 " + IT["v"] + " / (m/s)")
save(fig, "17_风羽图", "17_风羽图_线路走廊风场")
def bb_04():
"""山顶风资源的垂直风廓线风羽。"""
fig, ax = new_fig(left=0.19, bottom=0.21, right=0.86)
x = np.linspace(0, 5, 11)
y = np.linspace(0, 5, 11)
X, Y = np.meshgrid(x, y)
U = 6.4 * (1 + 0.14 * Y)
V = 0.8 * np.sin(X / 1.8) * (1 + 0.1 * Y)
m = ax.barbs(X, Y, U, V, np.hypot(U, V), cmap=CMAP_SEQ, length=5.0,
linewidth=0.6, barb_increments={"half": 2, "full": 4, "flag": 20})
ax.set_xlabel("东向距离 " + IT["x"] + " / km")
ax.set_ylabel("海拔高度 " + IT["z"] + " / 100 m")
cbar(fig, ax, m, "风速 " + IT["v"] + " / (m/s)")
save(fig, "17_风羽图", "17_风羽图_山顶风廓线")
def bb_05():
"""海上风电场海面风场。"""
fig, ax = new_fig(left=0.19, bottom=0.21, right=0.86)
x = np.linspace(0, 12, 19)
y = np.linspace(0, 8, 13)
X, Y = np.meshgrid(x, y)
U = 10.2 + 2.2 * np.sin(Y / 2.4 + X / 6.0)
V = 2.8 * np.cos(X / 3.2) * np.sin(Y / 3.0)
m = ax.barbs(X, Y, U, V, np.hypot(U, V), cmap=CMAP_SEQ, length=5.0,
linewidth=0.6, barb_increments={"half": 2, "full": 4, "flag": 20})
ax.set_xlabel("东向距离 " + IT["x"] + " / km")
ax.set_ylabel("北向距离 " + IT["y"] + " / km")
ax.set_aspect("equal")
cbar(fig, ax, m, "风速 " + IT["v"] + " / (m/s)")
save(fig, "17_风羽图", "17_风羽图_海上风电场风场")
说明
- 图片尺寸 1181×944 px(100 mm × 80 mm @ 300 dpi),三维图为 1181×1122 px。
- 图内不放标题,图题由本文件的二级/三级标题承担。
- 数据为贴近广东实际量级的仿真算例,随机种子固定,重跑结果一致。

浙公网安备 33010602011771号