用Python获取ERA5数据

本文章参考

三分钟实现Python批量下载ERA5数据

第一步:为python安装下载ECMWF数据必需的库包:cdsapi
1、登录ECMWF,下载秘钥key。
由网址https://www.ecmwf.int/登陆EC账号,再进入https://cds.climate.copernicus.eu/api-how-to

将界面右侧蓝框中的内容复制保存为txt,并命名为.cdsapirc,保存C:\Users\username.cdsapirc,

 第一步略。

第二步:创建一个anaconda环境。

1.首先打开anaconda Prompt。查看版本和存在的环境。

输入指令:

conda --version
conda env list

上图带“*”的表示当前使用的环境。

2.创建环境。

输入指令:

conda create -n {filename} python={version}

{}及其中中内容根据自己的具体情况替换。这里涉及到python版本的获取。python版本获取可以进入命令行窗口。

输入指令:
 

python -V

获取到python版本后就可以输入创建anaconda环境的指令了。

我这个里创建了一个名为test的python版本为3.9的环境。

输入命令:

conda create -n test python=3.9

上图红框部分为创建的环境的位置。

3.激活环境。

activate {filename} 

输入命令:

activate test

 

绿色框线部分是创建环境成功后的提示输入命令。分别为激活环境的命令和退出激活状态的命令。如果创建一个新的环境之后不确定是否激活成功,可以再次使用查看环境的命令查看一下环境是否创建成功。

环境激活成功后,命令行前面的括号内会由原先的base切换成你所激活的环境的名字(如上图红色框线内内容)。

至此,创建anaconda环境已完成。

第三步:安装cdsapi包。

在第二步激活的环境下输入指令:

conda install cdsapi

此时会出现PackagesNotFoundError: The following packages are not available from current channels:错误。

所以换一个方法。先输入指令:

anaconda search -t conda adsapi

这个指令可以查询到获取cdsapi的API及Packages。我们可以使用其中一个去获取到cdsapi。这里我使用conda-forge/cdsapi这个包。

输入指令:

conda install -c https://conda.anaconda.org/conda-forge cdsapi

我这个第一次下载的界面被刷新掉了,所以没截到图。这个是后面输入指令的图,将就看。到这里就下好了cdsapi。下数据的前提条见就准备好了。 

验证一下。输入命令:

python

出现三个尖括号就对了。然后输入:

import cdsapi

import cdsapi意思是导入cdsapi这个包,输入这个指令后回车出现三个尖括号表示导入成功。如果失败会报错,说没有这个包。 

第四步:进入ERA5选取所需的数据。

1.点击页面底部的“ show api request ”生成api代码,复制并存为py文件。

复制这个API文件到自己的激活的anaconda环境所在文件夹里面。 

import cdsapi

c = cdsapi.Client()

c.retrieve(
    'reanalysis-era5-land',
    {
        'variable': 'total_precipitation',
        'year': '2016',
        'month': '01',
        'day': [
            '01', '02', '03',
            '04', '05', '06',
            '07', '08', '09',
            '10', '11', '12',
            '13', '14', '15',
            '16', '17', '18',
            '19', '20', '21',
            '22', '23', '24',
            '25', '26', '27',
            '28', '29', '30',
            '31',
        ],
        'time': [
            '00:00', '01:00', '02:00',
            '03:00', '04:00', '05:00',
            '06:00', '07:00', '08:00',
            '09:00', '10:00', '11:00',
            '12:00', '13:00', '14:00',
            '15:00', '16:00', '17:00',
            '18:00', '19:00', '20:00',
            '21:00', '22:00', '23:00',
        ],
        'area': [
            34, 106, 33,
            111,
        ],
        'format': 'netcdf.zip',
    },
    'download.netcdf.zip')

API中内容如上图。但由于这个网站年份和月份只能单选,所以可以将这个api文件中年份和月份所包含的内容修改一下,修改部分内容如下:

 'year': ['2016','2017','2018','2019','2020',],
 'month': ['01','02','03','04','05','06','07','08','09','10','11','12',],

 然后将文件放置到上面激活的环境中。

2.使用命令行运行这个文件。

首先复制文件路径。

然后打开cmd,输入指令:

cd {filepath}

我这里对应的是:

d:
cd \D:\Apps\anaconda3\envs\test

如果不在c盘就要先输入对应的磁盘,然后再输路径。 

然后对应的python文件运行的语法如下:

python {filename} 

我这里对应的输入命令:

python 2016-2020.py

 运行结果如图。

运行完到ERA5里面去看就已经在请求啦。本教程到此结束。

  • 24
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值