风电

海上风资源的再分析评估方法与实战:从 ERA5 到 NEWA

· 南京运梦科技算法团队 · 评审 算法负责人

海上风资源的再分析评估方法与实战:从 ERA5 到 NEWA 封面

做海上风电资源评估的人都清楚一个尴尬:海上测风塔贵到离谱、浮标和卫星各有盲区,而项目前期偏偏要先回答"这片海域到底有多少风、轮毂高度的年均风速是多少"。再分析数据顺理成章地成了底座——可它真能直接信吗?答案是"看口径、看海域、看高度"。要把这件事说清楚,绕不开两套被行业反复参照的成果:ECMWF 的 ERA5 全球再分析,以及在它之上做中尺度降尺度的 NEWA(新欧洲风图谱)。本文不复述任何原文段落,只用工程视角把"再分析评估海上风资源"的方法、边界与落地路径讲透,并在最后给出在运梦气象 API 上可直接跑的下载示例。

关键要点

  • 在 NEWA Part 2 对 291 座高测风塔的验证中,ERA5 年均风速偏差约 −1.50 ± 1.30 m/s,而 WRF 中尺度降尺度后压到 0.02 ± 0.78 m/s,几乎归零。
  • 风速近立方关系会放大电量偏差:同一口径按 NREL 5 MW 折算,ERA5 发电量偏差达 −40.2% ± 32.7%,直接用粗网格再分析估电量会系统性偏低。
  • ERA5 海上偏差是可定位的系统项:约从 10 m/s 起低估强风,近岸尤甚,根因在海面拖曳参数化,Gandoin 与 Garza 2024 建议把 Charnock 参数封顶在约 0.018 订正。
  • NEWA 把 ERA5 全球场用 WRF 降尺度到 3 km × 3 km、30 分钟、7 个高度层、覆盖 1989—2018 共 30 年,覆盖欧洲,是当前事实参照标准。
  • 落地原则:再分析定性筛选海域,中尺度或实测订正绝对风速;运梦气象 API 用 era5 取历史、ger(德国气象局)取预报,字段口径一致。

背景与定位

ERA5 的奠基文献是 Hersbach 等人 2020 年发表于 Quarterly Journal of the Royal Meteorological SocietyThe ERA5 global reanalysis。它是 ECMWF 第五代再分析,提供约 31 km 网格、逐小时、覆盖 1940 年至今的全球场,同化了海量地面、探空与卫星观测,时空一致性远好于把零散站点硬拼起来的拼盘数据——这正是它被用作资源评估底座的根基。

NEWA 则是把这套全球场"降尺度"到工程可用分辨率的代表性工作,分两篇发表于开放获取期刊 Geoscientific Model Development(GMD)。Part 1 为 Hahmann 等人 2020 年的 The making of the New European Wind Atlas – Part 1: Model sensitivity,专讲中尺度模式 WRF 的敏感性与参数化选型;Part 2 为 Dörenkämper 等人 2020 年的 The making of the New European Wind Atlas – Part 2: Production and evaluation,讲生产运行与系统性验证。两篇由横跨八个欧洲国家、约三十家机构的团队历时多年完成,覆盖欧盟全境、挪威、瑞士、巴尔干与土耳其,是当前欧洲风资源评估事实上的参照标准。

方法 / 它做了什么

核心思路是"全球再分析提供大尺度强迫,中尺度模式补回局地物理"。ERA5 网格太粗,海岸线、海陆温差、低空急流这些对近海风至关重要的过程刻画不足;NEWA 用 WRF 中尺度模式做动力降尺度,把空间分辨率提到 3 km × 3 km、时间分辨率 30 分钟,输出 7 个风能相关高度层,覆盖 1989—2018 共 30 年

工程上有两个关键设计值得拆开看。其一是嵌套与拼接:采用 27 km → 9 km → 3 km 的三层 1:3 嵌套,把欧洲拆成 10 个独立高分辨率计算域并行跑,每段以"7 天 + 24 小时 spin-up"的结构滚动,既控制了误差累积,又让海量算力可并行。其二是物理选型:Part 1 系统比较了 MYNN 与 YSU 两套行星边界层(PBL)方案,最终对 MYNN 做了改造后投产。这一步不是学术洁癖——边界层方案直接决定了风从海面到轮毂高度怎么"长"上去,选错了,整套图谱的轮毂高度风速就会系统性偏。

关键结论

  • ERA5 在高桅杆评测口径下年均风速系统偏低。 在 NEWA Part 2 对 291 座高测风塔的验证中,ERA5 的年均风速偏差约为 −1.50 ± 1.30 m/s;而中尺度降尺度后的 WRF 偏差被压到 0.02 ± 0.78 m/s,几乎归零。这是"再分析直接用还是降尺度后用"差距最直观的一组数字。
  • 风速偏差会被功率曲线放大成巨大的电量偏差。 同一验证里,按 NREL 5 MW 机组折算,ERA5 的发电量偏差达 −40.2% ± 32.7%(严重低估),WRF 则收敛到 +6.2% ± 25.2%。风速近立方关系在这里被放大得淋漓尽致,直接用粗网格再分析估电量会系统性偏保守。
  • ERA5 的偏差结构在强风段、近岸带尤其明显。 Gandoin 与 Garza 2024 年发表于 Wind Energy Science 的研究指出,ERA5 大约从 10 m/s 起开始低估强风,在 IJmuiden 桅杆对最大风段的低估接近 10%;根因在海面拖曳(Charnock/粗糙度)参数化随波浪应力比的非线性放大,作者建议把 Charnock 参数封顶在约 0.018 来修正。这说明 ERA5 海上偏差并非随机噪声,而是可定位、可订正的系统项。
  • 降尺度收益随地形复杂度变化。 NEWA 的验证显示,简单地形(低 RIX)下各方法吻合最好,复杂地形下偏差逐档放大,传统线性微尺度方法在山区尤其吃力。对应到海上,开阔远海再分析最稳,越靠近岸、岛屿与复杂海陆交界,越需要中尺度甚至实测订正。

需要边界限定:上述数字均来自各自论文的特定评测口径(如 NEWA 的高桅杆样本、特定机组功率曲线、欧洲海域),换到中国近海、不同高度或不同样本,量级会变,但"粗网格再分析年均偏低、近岸强风段系统性低估、降尺度可显著收敛偏差"这一定性结论是稳健的。

对新能源 / 运梦平台的意义

把上面的方法学映射到风电、光伏、电网与功率预测的日常工作,有四个直接用法。

资源评估与选址。 前期普查用 ERA5 长序列定位候选海域、看年际变率与季节匹配;但落到轮毂高度的绝对风速,要清醒地知道粗网格再分析在近岸会系统偏低。务实做法是:再分析定性筛选 + 中尺度(或实测 MCP)订正绝对水平,再进 P50/P90。直接拿 ERA5 年均风速报投决,等于把电量系统性算低。

功率预测的训练与回测。 风光功率预测模型需要长时间、物理自洽的历史风场做训练样本与回测基准,ERA5 的连续性正好胜任。但要注意:训练特征里若混入强风段被低估的 ERA5 风速,模型在大风出力区间会学到偏差,需在特征工程阶段做偏差订正或加入降尺度特征。

电网侧的极端与爬坡场景。 ERA5 对强风、极端风速的低估,意味着用它直接刻画极端出力、爬坡事件会偏乐观。做电网调度、备用容量、极端天气压力测试时,应对再分析的强风段做向上订正,或叠加更高分辨率的预报源。

历史口径统一。 评估、预测、回测共用一套标准化历史底座,比在多来源间反复换算更省心——这也是南京运梦科技算法团队在工程上一贯坚持的原则:把历史气象口径锚定在 ERA5,让全链路复用同一基准。

在运梦气象 API 上手

运梦气象 API 通过单一 downloadSync 接口按 dataSourceIdfields 拉数:历史回测用 era5(ERA5 再分析),预报用 ger(德国气象局,覆盖未来约 7 天)。下面拉某近海候选点 10 年的 100m 风分量与派生风速,用于复现"年均 + 季节"刻画。

import os
import numpy as np
import requests

API = "https://console.yun-meng.top/api/energy-weather/search/weather/action/downloadSync"
TOKEN = os.environ["YUNMENG_TOKEN"]

payload = {
    "dataSourceId": "era5",                  # 历史回测用 ERA5;预报请用 "ger"(德国气象局)
    "lat": 30.5, "lon": 122.5,               # 某近海候选点(示例)
    "stime": "2014-01-01 00:00",
    "etime": "2023-12-31 23:00",             # 10 年长序列,便于季节统计
    "timezone": "8",                          # 必填,东八区
    "fields": ["u100", "v100"],  # 100m 风分量(下面用 hypot 合成 100m 风速)
}

resp = requests.post(
    API,
    headers={"Authorization": f"Bearer {TOKEN}"},
    json=payload,
    timeout=600,
)
resp.raise_for_status()
result = resp.json()                          # 统一 JSON envelope
if not result.get("success"):
    raise RuntimeError(result.get("msg", "查询失败"))

data = result["data"]
u100 = np.asarray(data["u100"], dtype=float)
v100 = np.asarray(data["v100"], dtype=float)
ws100 = np.hypot(u100, v100)                  # 100m 风速
print(f"小时数={len(data['timeList'])}, 年均100m风速={ws100.mean():.2f} m/s")

# 风功率密度(空气密度按 1.225 kg/m³ 粗算),近岸点建议再叠加中尺度/实测订正
pd_wm2 = 0.5 * 1.225 * (ws100 ** 3)
print(f"年均风功率密度={pd_wm2.mean():.0f} W/m^2(近岸点请结合订正使用)")

拿到多年逐小时 u100/v100 后,就能做年度与季节聚合,复现资源评估最关心的"季节分布"维度。做短期功率预测时把 dataSourceId 换成 ger(德国气象局,未来约 7 天),字段口径与 ERA5 一致,业务侧不必维护两套换名逻辑。再次提醒:近岸与复杂海陆交界处,请把再分析当起点而非终点,结合中尺度降尺度或本地实测做偏差订正。

常见问题

ERA5 能直接用来评估海上风资源吗? 能作为底座做长序列普查与海域筛选,但不能直接信轮毂高度的绝对风速。在 NEWA Part 2 的高桅杆验证中,ERA5 年均风速偏差约 −1.50 ± 1.30 m/s,近岸更明显,务实做法是再分析定性筛选 + 中尺度或实测订正后再进 P50/P90。

ERA5 在海上风速会偏高还是偏低? 系统性偏低。在 291 座高测风塔验证里 ERA5 年均风速偏低约 1.5 m/s,且大约从 10 m/s 起开始低估强风,在 IJmuiden 桅杆对最大风段低估接近 10%。

为什么风速偏差几个点,电量却差几十个百分点? 因为风功率与风速近立方关系,小风速偏差会被功率曲线放大。同一验证里按 NREL 5 MW 机组折算,ERA5 发电量偏差达 −40.2% ± 32.7%,远大于风速偏差本身。

NEWA 用什么方法把 ERA5 降尺度?分辨率多少? 用 WRF 中尺度模式做动力降尺度,采用 27 km → 9 km → 3 km 三层嵌套,输出 3 km × 3 km、30 分钟、7 个风能高度层,覆盖 1989—2018 共 30 年;降尺度后 WRF 年均风速偏差收敛到约 0.02 ± 0.78 m/s。

运梦气象 API 怎么取历史和预报风场? 通过单一 downloadSync 接口按 dataSourceId 取数:历史回测用 era5,预报用 ger(德国气象局,覆盖未来约 7 天),两者字段口径一致,业务侧不必维护两套换名逻辑。

引用与原文

Hersbach, H., Bell, B., Berrisford, P., et al. (2020). The ERA5 global reanalysis. Quarterly Journal of the Royal Meteorological Society, 146(730), 1999–2049. DOI: 10.1002/qj.3803

Hahmann, A. N., Sīle, T., Witha, B., et al. (2020). The making of the New European Wind Atlas – Part 1: Model sensitivity. Geoscientific Model Development, 13(10), 5053–5078. DOI: 10.5194/gmd-13-5053-2020

Dörenkämper, M., Olsen, B. T., Witha, B., et al. (2020). The making of the New European Wind Atlas – Part 2: Production and evaluation. Geoscientific Model Development, 13(10), 5079–5102. DOI: 10.5194/gmd-13-5079-2020

Gandoin, R., & Garza, J. (2024). Underestimation of strong wind speeds offshore in ERA5: evidence, discussion and correction. Wind Energy Science, 9(8), 1727–1745. DOI: 10.5194/wes-9-1727-2024