第一章 气象数据获取与处理

各位同行,咱们做风电场气候可行性论证,第一步就是跟数据打交道。说白了,数据就是我们的“原材料”。数据不准,后面算发电量、选机位全是白搭。今天我就把气象数据这块的实战经验掰开揉碎了讲。

1.1 气象站数据:最传统的“老黄历”

气象站数据,大家都不陌生。国家气象局下属的基准站、基本站、一般站,全国有几千个。这些站观测历史长,有的能追溯到上世纪50年代。我个人习惯,做项目第一件事就是查项目周边50公里范围内有哪些气象站。

关键点:气象站数据最大的优势是“实测”,但坑也不少。

我在项目中遇到过这样的情况:某个气象站2015年迁站了,但数据里没标注。结果我拿前后数据做长序列分析,风向频率图直接变了样。嗯,这里要注意——气象站数据必须做“均一性检验”

气象站数据通常包含以下要素:

  • 风速(10分钟平均、最大、极大)
  • 风向(16方位或360°)
  • 温度、气压、湿度
  • 降水量、日照时数

你想想看,这些数据里风速和风向是最关键的。但气象站的风速仪高度一般是10米,而我们风电场轮毂高度动辄80米、100米。所以必须做风速垂直外推。怎么推?我后面会讲。

避坑指南:我曾经拿一个气象站30年数据做风资源评估,结果发现该站2000-2005年期间仪器故障,数据全是插补的。所以拿到数据后,第一件事查“元数据”——仪器变更记录、迁站记录、缺测记录。

1.2 再分析数据:ERA5与MERRA-2

再分析数据,说白了就是“用模式算出来的历史数据”。它把卫星、探空、地面观测等资料同化进数值模式,生成全球格点数据。目前风电行业用得最多的是ERA5MERRA-2

对比项 ERA5(ECMWF) MERRA-2(NASA)
空间分辨率 0.25°×0.25°(约31km) 0.5°×0.625°(约50km)
时间分辨率 1小时 1小时
时间跨度 1940年至今 1980年至今
垂直层数 137层 72层
风速变量 10m/u/v分量 10m/u/v分量

我个人更偏爱ERA5。为什么?分辨率更高,而且有100米高度的风速数据。但要注意,再分析数据是“模式输出”,不是实测。我见过有人直接拿ERA5的100米风速当测风塔数据用,结果偏差20%以上。

实战技巧:再分析数据适合做“长序列订正”。比如你有1年测风塔数据,想订正到30年长序列。那就用ERA5提取对应格点的30年数据,建立测风塔与ERA5的回归关系。我习惯用分风向扇区做线性回归,效果比整体回归好很多。

获取ERA5数据,我一般用Python的cdsapi库:

import cdsapi

c = cdsapi.Client()
c.retrieve(
    'reanalysis-era5-single-levels',
    {
        'product_type': 'reanalysis',
        'variable': ['10m_u_component_of_wind', '10m_v_component_of_wind'],
        'year': ['2020', '2021', '2022'],
        'month': ['01', '02', '03', '04', '05', '06',
                  '07', '08', '09', '10', '11', '12'],
        'day': [f'{d:02d}' for d in range(1, 32)],
        'time': [f'{h:02d}:00' for h in range(0, 24)],
        'area': [40, 110, 30, 120],  # 北纬40-30,东经110-120
        'format': 'netcdf'
    },
    'era5_wind_2020_2022.nc'
)

这段代码下载指定区域3年的10米风场数据。下载后记得算合成风速:ws = sqrt(u² + v²)。嗯,这里要注意,ERA5的u/v分量是气象学定义,跟工程上用的正北坐标系可能差一个角度。

1.3 测风塔数据:我们的“金标准”

测风塔数据,是风电场资源评估的基石。我常说,没有测风塔数据,风资源评估就是“盲人摸象”。测风塔一般安装10m、30m、50m、70m、80m、100m等多层风速仪和风向标。

测风塔数据的特点:

  • 精度高:直接测量,误差小
  • 时间短:通常只有1-3年
  • 代表性强:只代表塔位周边几公里
  • 成本高:一座塔几十万,还得维护

我在项目中遇到过测风塔被雷劈的情况。那年夏天,内蒙古一个项目,测风塔遭雷击,风速仪直接报废。等我们发现时,已经缺了两个月数据。所以我现在做项目,一定要求业主装备份风速仪,而且不同高度交叉备份。

核心原则:测风塔数据必须经过严格质量控制,才能用于后续分析。

1.4 数据质量控制:别让垃圾数据害了你

数据质量控制,说白了就是“去伪存真”。我见过太多项目,拿着没清洗的数据直接算发电量,结果偏差30%以上。质量控制分三步走:

  1. 合理性检查:风速0-40m/s,风向0-360°,温度-40~50℃。超出范围直接标记为无效。
  2. 时间一致性检查:相邻10分钟风速变化超过10m/s,或者风向突变超过90°,大概率是仪器故障。
  3. 空间一致性检查:同一测风塔不同高度,风速应该随高度增加而增大。如果80m风速比50m还小,那肯定有问题。

我曾经遇到一个项目,测风塔70m和80m风速曲线几乎重合。查了半天,发现是安装工人把两个风速仪的线接反了。所以数据质量控制不只是算法问题,还得结合现场情况判断。

警告:不要用自动化程序直接清洗数据。我习惯先画散点图、时序图,肉眼过一遍。机器能发现“异常值”,但发现不了“合理但错误”的数据。

1.5 数据插补:把缺失的数据“补回来”

数据插补,是风资源评估的必修课。测风塔数据总有缺测的时候——仪器故障、结冰、雷击、人为破坏。缺测率超过10%,这个测风塔的数据质量就要打问号了。

常用的插补方法:

  • 线性插值:适用于短时间缺测(<2小时)
  • 相关关系法:用相邻高度或相邻测风塔建立回归方程
  • 再分析数据插补:用ERA5/MERRA-2数据填补长时段缺测
  • MCP法:Measure-Correlate-Predict,用长期参考站订正短期测风数据

我个人最常用的是MCP法。原理很简单:找到项目附近一个长期气象站(>10年数据),建立测风塔与气象站同期数据的回归关系,然后用这个关系把测风塔数据“延长”到长期序列。

MCP法的Python实现示例:

import numpy as np
from sklearn.linear_model import LinearRegression

# 假设 mast_data 是测风塔数据,ref_data 是参考站数据
# 按风向扇区分别建立回归模型
sectors = [0, 22.5, 45, 67.5, 90, 112.5, 135, 157.5,
           180, 202.5, 225, 247.5, 270, 292.5, 315, 337.5]

models = {}
for i in range(16):
    # 提取该扇区内的数据
    mask = (mast_wdir >= sectors[i]) & (mast_wdir < sectors[i] + 22.5)
    if np.sum(mask) < 10:
        continue
    X = ref_data[mask].reshape(-1, 1)
    y = mast_data[mask]
    model = LinearRegression()
    model.fit(X, y)
    models[sectors[i]] = model

# 用模型插补缺失数据
for i in range(len(mast_data)):
    if np.isnan(mast_data[i]):
        sector = int(mast_wdir[i] // 22.5) * 22.5
        if sector in models:
            mast_data[i] = models[sector].predict([[ref_data[i]]])

这段代码按16个风向扇区分别建立线性回归模型。为什么分扇区?因为不同风向的气流路径不同,风速相关性也不同。我试过整体回归,误差比分扇区大15%左右。

小技巧:插补完成后,一定要做“回代检验”。把已知数据假装成缺失,用插补方法算一遍,看误差有多大。如果误差超过10%,说明插补方法不合适,得换。

知识体系总览

下面这张图,是我自己总结的气象数据获取与处理的知识体系。你把它打印出来贴在工位上,做项目时对照着看,基本不会漏掉关键步骤。

气象数据获取与处理知识体系 气象站数据 再分析数据 测风塔数据 数据预处理:格式转换、时间对齐、坐标转换 数据质量控制:合理性检查 → 时间一致性 → 空间一致性 数据插补与订正:线性插值 → MCP法 → 再分析数据订正 长序列风资源数据集(输出) 数据流向

这张图把整个流程串起来了。从数据来源到最终输出,每一步都不能跳过。我见过有人为了省事,直接拿ERA5数据当测风塔用,结果项目融资时被银行质疑,最后补了一年测风才过关。

好了,气象数据获取与处理这块,核心就是这些。记住一句话:数据质量决定分析质量,分析质量决定项目成败。下一章咱们聊风资源评估的具体方法,到时候见。


公众号:蓝海资料掘金营,微信deep3321