当前位置: 移动技术网 > IT编程>脚本编程>Python > TC气象数据下载包括NCEP的FNL(python脚本)、STI的Best_track、NOAA的SST

TC气象数据下载包括NCEP的FNL(python脚本)、STI的Best_track、NOAA的SST

2020年08月01日  | 移动技术网IT编程  | 我要评论
TC气象数据的下载,首先需要下载每一年的台风的最佳路径数据集,然后根据最佳路径数据集上的台风的时间点,经纬度去NCEP上的FNL数据查找对应时间点,经纬度的环境变量,最后海温的数据从NOAA上下载。1.NCEP的FNL资料下载NCEP/NCAR再分析数据集是由美国气象环境预报中心(NCEP)和美国国家大气研究中心(NCAR)联合制作的,他们采用了当今最先进的全球资料同化系统和完善的数据库,对各种来源(地面、船舶、无线电探空、测风气球、飞机、卫星等)的观测资料进行质量控制和同化处理,获得了一套完整的再分析

TC气象数据的下载,首先需要下载每一年的台风的最佳路径数据集,然后根据最佳路径数据集上的台风的时间点,经纬度去NCEP上的FNL数据查找对应时间点,经纬度的环境变量,最后海温的数据从NOAA上下载。

1.NCEP的FNL资料下载

NCEP/NCAR再分析数据集是由美国气象环境预报中心(NCEP)和美国国家大气研究中心(NCAR)联合制作的,他们采用了当今最先进的全球资料同化系统和完善的数据库,对各种来源(地面、船舶、无线电探空、测风气球、飞机、卫星等)的观测资料进行质量控制和同化处理,获得了一套完整的再分析资料集,它不仅包含的要素多,范围广,而且延伸的时段长,是一个综合的数据集。
下载的话可以通过python脚本快速实现。但需要先注册一个邮箱账号,代码如下:

import sys, os

import requests

import datetime

def check_file_status(filepath, filesize):

    sys.stdout.write('\r')

    sys.stdout.flush()

    size = int(os.stat(filepath).st_size)

    percent_complete = (size/filesize)*100

    sys.stdout.write('%.3f %s' % (percent_complete, '% Completed'))

    sys.stdout.flush()

url = 'https://rda.ucar.edu/cgi-bin/login'

values = {'email' : '*****', 'passwd' : '******', 'action' : 'login'}

# Authenticate

ret = requests.post(url,data=values)

if ret.status_code != 200:

    print('Bad Authentication')

    print(ret.text)

    exit(1)

dspath = 'http://rda.ucar.edu/data/ds083.2/'

stime = datetime.datetime(2017,1,1)

etime = datetime.datetime(2019,12,31)

shour = ['_00','_06','_12','_18']

filelist=[]

while stime <= etime:

    for j in range(4):

        print ('grib2/'+stime.strftime('%Y')+'/'+stime.strftime('%Y.%m')+'/fnl_'

              +stime.strftime('%Y%m%d') + shour[j] + '_00.grib2')

        filelist.append('grib2/'+stime.strftime('%Y')+'/'+stime.strftime('%Y.%m')+'/fnl_'

              +stime.strftime('%Y%m%d') + shour[j] + '_00.grib2')

    stime = stime + datetime.timedelta(days=1)

for file in filelist:

    filename=dspath+file

    file_base = os.path.basename(file)

    print('Downloading',file_base)

    req = requests.get(filename, cookies = ret.cookies, allow_redirects=True, stream=True)

    filesize = int(req.headers['Content-length'])

    with open(file_base, 'wb') as outfile:

        chunk_size=1048576

        for chunk in req.iter_content(chunk_size=chunk_size):

            outfile.write(chunk)

            if chunk_size < filesize:

                check_file_status(file_base, filesize)

    check_file_status(file_base, filesize)

    print()

本代码需要修改的地方如下:
1.values:更改为自己注册的邮箱账号和密码即可
2.时间:可以直接选择需要下载数据的时间,通过stime和etime修改。
如果不想通过脚本下载,可以参考官方网站https://rda.ucar.edu/datasets/ds083.2/#!access
注:下载的数据为grib2文件,2007年之前为grib文件,2007年以后是grib2文件,如果想在Windows上处理grib2文件转为nc文件可以参考windows上python处理grib2文件

2.Best_track数据下载

中国台风所的最佳路径数据集的官方网站
数据按年份下载,选择你想要的年份,文件为txt文件。
文件数据说明如下:
在这里插入图片描述![在这里插入图片描述](https://img-blog.csdnimg.cn/20200827155751723.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA1MjA1NQ==,size_16,color_FFFFFF,t_70#pic_center

3.NOAA下载SST数据

NOAA里面的最优插值OI SST逐月海温资料,加入了海冰数据和卫星数据。NOAA网站AVHRR卫星数据绘图(SST)。数据选用原因:它本身是已经被处理过的全球月平均数据,而且数据精度非常高,对于研究全球SST的气候态特征有较好的说服性。
下载的官方网站https://psl.noaa.gov/data/gridded/data.noaa.oisst.v2.html
在这里插入图片描述下载的数据为nc文件,python读取nc文件见Windows上python读取nc文件第三节或者参考python处理nc文件的一些例子

本文地址:https://blog.csdn.net/weixin_44052055/article/details/108262388

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网