NCEP再分析资料
NCEP/NCAR再分析数据集是由美国气象环境预报中心(NCEP)和美国国家大气研究中心(NCAR)联合制作的,他们采用了当今最先进的全球资料同化系统和完善的数据库。 对各种来源(地面、船舶、无线电探空、测风气球、飞机、卫星等)的观测资料进行质量控制和同化处理,获得了一套完整的再分析资料集,它不仅包含的要素多,范围广,而且延伸的时段长,是一个综合的数据集。
数据介绍
数据下载自NCAR:https://rda.ucar.edu/ 需要自行注册账户,最好是edu结尾的邮箱。
NCEP的FNL资料:http://rda.ucar.edu/data/ds083.2 空间分辨率:1°×1° 时间分辨率:逐6小时
批量下载数据
代码语言:javascript复制import requests
import datetime
# 定义登录函数
def builtSession():
email = "xxxxxxxx" #此处改为注册邮箱
passwd = "xxxxxxxx" #此处为登陆密码
loginurl = "https://rda.ucar.edu/cgi-bin/login"
params = {"email":email, "password":passwd, "action":"login"}
sess = requests.session()
sess.post(loginurl,data=params)
return sess
# 定义下载函数
def download(sess, dt):
g1 = datetime.datetime(1999,7,30,18)
g2 = datetime.datetime(2007,12,6,12)
if dt >= g2:
suffix = "grib2"
elif dt >= g1 and dt <g2:
suffix = "grib1"
else:
raise StandardError("DateTime excess limit")
url = "http://rda.ucar.edu/data/ds083.2"
folder = "{}/{}/{}.{:0>2d}".format(suffix, dt.year, dt.year, dt.month)
filename = "fnl_{}.{}".format(dt.strftime('%Y%m%d_%H_00'), suffix)
fullurl = "/".join([url, folder, filename])
r = sess.get(fullurl)
with open(filename, "wb") as fw:
fw.write(r.content)
print(filename " downloaded")
# 批量下载
if __name__ == '__main__':
print("downloading...")
s = builtSession()
for i in range(2): #共下载多少个时次
startdt = datetime.datetime(2021, 1, 1, 0) #开始时次
interval = datetime.timedelta(hours = i * 6)
dt =startdt interval
download(s,dt)
print("download completed!")
代码语言:javascript复制downloading...
fnl_20210101_00_00.grib2 downloaded
fnl_20210101_06_00.grib2 downloaded
download completed!
读取示例数据
代码语言:javascript复制import xarray as xr
ds = xr.open_dataset('./fnl_20210101_00_00.grib2',engine='pynio')
代码语言:javascript复制ds.TMP_P0_L1_GLL0.plot()