不知不觉停更了一个多月,除了写论文之外,还参加了上海气象学会主办的 第二届人工智能天气预报创新大赛,主要是对数值模式预报的2m气温和降水进行订正。
这是第二次参加上海气象学会主办的比赛,第一届的短临预报比赛和小伙伴一起最后获得了二等奖。这一次只有我一个人,最后因为各种原因只参加了前半程,提交了大概3次结果,从最初的双赛道第一最后定格到第四。
这几年国内外和气象相关的AI大赛比较多,改天再细聊一下AI+气象大赛。
刚好近两天ECMWF开放了预报数据,那就来看一下如何获取到全球各大气象机构发布的数值预报产品吧。
全球有不少机构对外发布了数值预报产品,但是大多都比较分散,通常需要自己去寻找再写不少代码来下载这些产品。前几天发现了一个工具,可以非常方便的下载常用的数值预报产品。ECMWF刚对外发布预报数据,开发者就更新了下载接口,非常给力了哈哈!
废话不多说了,下面就来介绍一下这个工具。
Herbie 属于 NOAA 的大数据项目,旨在更方便的从各云存储中获取数值天气预报结果。最初,是在 Brian K.Blaylock 博士期间开发用来获取 HRRR数据的。2020年此工具成为 NOAA 大数据项目的一部分,于是开始开发适用更多的数据源,目前支持获取如下数据:
其数值天气预报结果的数据源包括:
最好使用 Python3.8+ 版本,安装方式如下:
pip install herbie-data
或
pip install git+https://github.com/blaylockbk/Herbie.git
Herbie 目前具有如下功能:
总的来说,Herbie 使用方便,而且兼容目前常用的工具。
from herbie.archive import Herbie
# Herbie object for the HRRR model 6-hr surface forecast product
H = Herbie('2021-01-01 12:00',
model='hrrr',
product='sfc',
fxx=6)
# Download the full GRIB2 file
H.download()
# Download a subset, like all fields at 500 mb
H.download(":500 mb")
# Read subset with xarray, like 2-m temperature.
H.xarray("TMP:2 m")
有时可能需要下载大量的数据, Herbie 也提供了非常方便的工具函数:
from herbie.tools import bulk_download
import pandas as pd
# Download HRRR analysis for every hour of a day
DATES = pd.date_range('2021-01-01 00:00', '2021-01-01 06:00', freq='1H')
bulk_download(DATES, model='hrrr', product='sfc', fxx=0, searchString='TMP:2 m')
可以通过如下命令下载ECMWF最新公开的数据集:
from datetime import datetime
from herbie.archive import Herbie
now = datetime.now()
today = datetime(now.year, now.month, now.day)
H = Herbie(today, model="ecmwf", product="oper", save_dir="./")
H.download() # 下载所有文件
H.download(":t:") # 下载所有层的温度
就是下载速度有点慢,好了就介绍到这,感兴趣的可以去 GitHub (https://github.com/blaylockbk/Herbie) 网页查看。目前主要是获取数值预报产品,数据处理和绘图部分正处于开发中,如果有什么问题也可以去反馈。