本文章参考
第一步:为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里面去看就已经在请求啦。本教程到此结束。