一、CRU数据下载

CRU数据官网 官网链接
CRU数据下载链接
我下载的是CRU TS v.4.03的数据,该数据覆盖全球陆地范围,各参数每月得一个平均值。 点击Local Copy进入数据下载界面。如果没有接触过CRU TS v.4.03数据的小伙伴可以先阅读下说明文档,之后点击红框中的链接进行感兴趣参数的下载。
在这里插入图片描述各参数的详细说明和单位如下图所示:
在这里插入图片描述

二、ERA-Interim数据下载

1. ERA-Interim数据逐月下载

ERA-Interim数据逐月下载
点击链接进入后界面如下,可根据需求选择要下载的年份、月份和相关变量。
在这里插入图片描述在这里插入图片描述如选择下载2019年8月的地表温度,每天选择4个时刻,step=0。选择完成后点击“Retrieve NetCDF”可查看所选参数的详细信息。
在这里插入图片描述同时可在Area中更改要下载数据的覆盖区域,默认是全球;在Grid中可选择数据下载的格网大小,默认是0.75*0.75。
点击“Retrieve Now”可进入下一步
在这里插入图片描述点击“Download”,至此,逐月下载ERA-Interim数据完成。

2. 利用python代码下载ERA-Interim数据

有的时候逐月下载数据可能不能满足大家的需求,可考虑通过python代码来实现。官网提供的python下载教程
需要安装ecmwfapi第三方包下载链接
如下是Python 下载ERA-Interim数据的样例,只需要简单更改参数就可以使用。

from ecmwfapi import ECMWFDataServer

server = ECMWFDataServer()
server.retrieve({
    'stream'    : "oper",
    'levtype'   : "sfc",
    # 参数选择:降水228
    'param'     : "228.128",
    'dataset'   : "interim",
    'step'      : "3/6/9/12",
    'grid'      : "0.75/0.75",
    'time'      : "00/12",
    'date'      : "20190101/to/20190831",
    'type'      : "fc",
    'class'     : "ei",
    'format'    : "netcdf",
    'target'    : "D:\\DATA\\interim_20190101to20190831_pre.nc"
 })

通常这样操作之后就可以完成ERA-Interim数据的批量下载,但我下载的时候总会报这个错误;error contacting the webapi, retrying in 60 seconds
查了很久发现是因为缺少一个SSL证书,证书下载链接及添加流程如下图。
在这里插入图片描述

3. ERA-Interim中相关变量的解释

1.对于time和step的解释
官网解释
相关参考
在这里插入图片描述在这里插入图片描述在这里插入图片描述2.ERA-Interim中相关参数的说明
ERA-Interim 中keywords说明
在这里插入图片描述在这里插入图片描述同样,从手动下载逐月参数的数据描述这里,也可以看参数的相关取值。
在这里插入图片描述
需要注意的一点是,如果分析中既用到降水数据,也用到气温数据,class最好选择“fc”,这样两个数据是由一套算法计算得到。

4. 利用python代码批量下载ERA-Interim数据

如果直接用代码连续下载很多年的数据并保存在一个NC文件中,很可能由于网速不稳定等原因造成数据下载不完整,所以我通常是逐年下载并保存成一个NC文件,代码如下:

import datetime
import os

#下载ERA数据
def downECMWFdata(outpath):
    from ecmwfapi import ECMWFDataServer
    server = ECMWFDataServer()
    startdate = datetime.datetime.today()  # 用于生成一个datetime.datetime类型的数据,下同
    enddate = datetime.datetime.today()
    startdate = startdate.replace(year=2000, month=1, day=1, hour=0, minute=0, second=0, microsecond=0)
    enddate = enddate.replace(year=2012, month=12, day=31, hour=0, minute=0, second=0, microsecond=0)
    savepath = outpath + os.sep + "interim_%s_tmp.nc"
    tmpdate = startdate  # 将日期变为当月的第一天
    while tmpdate <= enddate:
        print(tmpdate)
        deltadays = GetDayNum(tmpdate.year) - 1
        #datetme.delta() 用来计算第二个对象(tmpenddate)和第一个对象(tmpdate)之间的插值
        tmpenddate = tmpdate + datetime.timedelta(days=deltadays)  # 根据天数算出年末时间
        datestring = tmpdate.strftime("%Y%m%d") + '/to/' + tmpenddate.strftime("%Y%m%d")
        print (datestring)  
        # 输出效果:D:\data\interim_20191001to20191006_tmp.nc
        tmpsavepath = savepath % (datestring.replace('/to/', 'to'))
        if os.path.exists(tmpsavepath):  # 如果系统中有这个文件夹说明已经下载了,继续直到没有
            tmpdate = tmpenddate + datetime.timedelta(days=1) 
            continue
        server.retrieve({
            "class"  : "ei",
            "dataset": "interim",
            "date"   : datestring,
            "expver" : "1",
            "grid"   : "0.75/0.75",
            "levtype": "sfc",
            # 参数选择:气温167
            "param"  : "167.128/201.128/202.128",
            "step"   : "3/6/9/12",
            "stream" : "oper",
            "time"   : "00:00:00/12:00:00",
            "type"   : "fc",
            "format" : "netcdf",
            "target" : tmpsavepath,
        })
        tmpdate = tmpenddate + datetime.timedelta(days=1)


def GetDayNum(year):
    # 判断是否为闰年
    if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0):
        return 366
    else:
        return 365
        
if __name__ == '__main__':
    path = r'D:\DATA'
    downECMWFdata(path)

三、NCEP-2数据下载

NCEP-2数据下载官网
同样下载的是逐日的地表气温和降水数据。两种方式查找所需的数据。

  1. 第一种方式如下图:
    首先选择高斯网格数据
    在这里插入图片描述点击进入后可查看该数据的时间尺度、空间覆盖范围以及更新频率等参数。
    在这里插入图片描述之后选择感兴趣的数据点击“see list”进行逐年数据的下载即可,如对于每日的地表温度数据(说明:NCEP-2中每日数据包含4个时刻,从0时开始,每6小时一个)。另外,对于感兴趣的数据可先通过列表右侧的Create plot,先进行绘图,查看是否是需要的数据。
    在这里插入图片描述2.第二种方式:
    通过图片红框的链接,可直接查找感兴趣的参数,以每日地表温度为例,流程如下:
    在这里插入图片描述在这里插入图片描述在这里插入图片描述综上,就是三种全球尺度常用气象数据的下载流程。分享给大家,希望对大家有帮助,有不足或不正确的地方也欢迎大家补充指正。
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐