第四节:再分析资料——主流数据集介绍、特点与获取方式
做中长期风电功率预测,说白了,最头疼的问题就是“数据不够用”。
实测气象站就那么几个,还经常缺数。这时候,再分析资料就成了我们的“救命稻草”。
我个人习惯把再分析资料理解为“用现代技术重新解读的历史天气”。它不是直接观测的,而是把过去几十年的观测数据(地面站、探空、卫星、飞机报等)喂给数值模式,再同化出一套完整、连续、物理自洽的格点数据。
嗯,这里要注意:再分析资料不是预报,它是“历史的重分析”。
核心观点:再分析资料是中长期风电功率预测建模的“燃料”。没有它,你的模型就是无米之炊。
4.1 三大主流再分析数据集
目前业界用得最多的,就是下面这三家。我挨个说说我的使用感受。
| 数据集 | 机构 | 时间跨度 | 空间分辨率 | 时间分辨率 |
|---|---|---|---|---|
| ERA5 | ECMWF(欧洲中心) | 1940年至今 | 0.25°×0.25°(约31km) | 1小时 |
| CFSR / CFSv2 | NCEP(美国环境预报中心) | 1979年至今 | 0.5°×0.5°(约55km) | 1小时 / 6小时 |
| MERRA-2 | NASA(美国宇航局) | 1980年至今 | 0.5°×0.625°(约50km) | 1小时 |
你看,ERA5在分辨率上明显占优。我在项目中遇到过好几次,用CFSR做出来的模型,在复杂地形(比如山区、沿海)误差偏大,换成ERA5后,效果立竿见影。
4.2 各数据集的特点与避坑指南
4.2.1 ERA5——目前的首选
ERA5是ECMWF的第五代再分析产品。说实话,它现在是行业标杆。
- 优点:分辨率高(0.25°),时间分辨率1小时,变量极其丰富(风速、风向、温度、气压、辐射、降水……两百多个变量)。
- 优点:同化系统先进,对台风、急流等极端天气的刻画比老一代产品好很多。
- 缺点:数据量巨大。下载全球一年的数据,轻松上百GB。我刚开始用的时候,硬盘差点爆了。
我的小技巧:ERA5提供“子区域下载”功能。你只需要圈定风电场周边2°×2°的范围,数据量能减少90%以上。别傻乎乎下全球数据。
4.2.2 CFSR / CFSv2——老牌劲旅
CFSR是NCEP的产品,它的特点是“耦合模式”——大气、海洋、陆面、海冰一起算。
- 优点:时间跨度长,从1979年到现在,适合做气候态分析。
- 优点:CFSv2是实时运行的,可以获取近实时的再分析数据,对业务化运行很友好。
- 缺点:分辨率偏低(0.5°),在复杂地形区域,风速的细节丢失比较严重。
我曾经踩过的坑:用CFSR做某个沿海风电场的功率预测,模型训练时效果还行,但一到台风季就崩了。后来发现,CFSR对台风的强度估计普遍偏弱。换成ERA5后,这个问题才解决。
4.2.3 MERRA-2——NASA的精品
MERRA-2是NASA的再分析产品,它最大的特色是“注重地球能量和水循环”。
- 优点:对太阳辐射、云量、降水的刻画非常精准。如果你做光伏+风电的混合预测,MERRA-2是很好的选择。
- 优点:数据质量稳定,NASA的质控做得很严格。
- 缺点:变量相对较少,没有ERA5那么丰富。而且它的网格是经纬度不均匀的(0.5°×0.625°),处理起来稍微麻烦一点。
4.3 数据获取方式
数据再好,拿不到手也是白搭。我整理了一下三个数据集的获取渠道。
4.3.1 ERA5 获取
ERA5主要通过CDS(Climate Data Store)下载。你需要注册一个账号,然后使用cdsapi这个Python库。
# 安装 cdsapi
# pip install 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',
'2m_temperature', 'surface_pressure',
],
'year': '2020',
'month': '01',
'day': ['01', '02', '03'],
'time': ['00:00', '06:00', '12:00', '18:00'],
'area': [40, 115, 35, 120], # 北纬40°到35°,东经115°到120°
'format': 'netcdf',
},
'era5_sample.nc')
注意:CDS下载速度有时很慢。我建议你设置好区域和变量后,让脚本在夜间跑。或者用欧洲的云服务器中转一下,速度会快很多。
4.3.2 CFSR 获取
CFSR数据可以从NCEP的服务器直接下载,也可以通过NCAR的RDA(Research Data Archive)获取。
我个人习惯用wget批量下载,因为CFSR的文件命名规则很清晰。
# 下载CFSR 2020年1月1日 00时的数据
wget https://rda.ucar.edu/data/ds094.0/2020/202001/cfsr.20200101.t00z.grb2
警告:CFSR的GRIB2文件需要专门的库来读取(比如pygrib或cfgrib)。别直接用xarray打开,会报错。我曾经在这上面浪费了半天时间。
4.3.3 MERRA-2 获取
MERRA-2数据通过NASA的GES DISC(戈达德地球科学数据与信息服务中心)提供。同样需要注册账号,使用earthaccess库下载。
# 安装 earthaccess
# pip install earthaccess
import earthaccess
earthaccess.login()
files = earthaccess.search(
short_name='M2T1NXSLV',
bounding_box=(-120, 35, -115, 40),
temporal=('2020-01-01', '2020-01-03'),
)
earthaccess.download(files, './merra2_data/')
4.4 知识体系结构图
为了让你更直观地理解这三个数据集的关系和适用场景,我画了一张图。
4.5 我的选择建议
说了这么多,到底该用哪个?
我的建议很简单:
- 如果你做科研、追求精度:无脑选ERA5。分辨率高、变量全、质量好。唯一的代价就是硬盘和下载时间。
- 如果你做业务、需要实时数据:考虑CFSv2。它实时更新,而且数据量适中,适合部署在服务器上每天自动拉取。
- 如果你做光伏+风电混合预测:MERRA-2的辐射数据是独一档的存在。别犹豫,用它。
最后说一句:再分析资料再好,也只是“近似真实”。它和实测数据之间永远存在偏差。我个人的做法是:先用再分析资料训练模型,再用风电场实测数据做微调(fine-tuning)。这样既保证了数据量,又保证了精度。