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。
  • 图内不放标题,图题由本文件的二级/三级标题承担。
  • 数据为贴近广东实际量级的仿真算例,随机种子固定,重跑结果一致。
posted @ 2026-11-07 08:35  小青蛙电气  阅读(3)  评论(0)    收藏  举报