前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据下载 | NCEP再分析数据自动批量下载

数据下载 | NCEP再分析数据自动批量下载

作者头像
MeteoAI
发布2021-07-01 15:54:03
2.8K0
发布2021-07-01 15:54:03
举报
文章被收录于专栏:MeteoAIMeteoAI

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()
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-06-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MeteoAI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • NCEP再分析资料
  • 数据介绍
  • 批量下载数据
  • 读取示例数据
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档