【学习记录】服务器上用Python代码下载ERA5 Hourly 数据
一、问题背景
需要下载至少20年的多个变量不同pressure level的ERA5 hourly数据,其中单一变量31层、4个时刻的数据约为245MB,所有数据下下来约有8T。在对比了网上现有的下载ERA5数据的方法考虑到储存问题,决定借助服务器利用python脚本下载数据,将单个变量的每日的结果存成一个文件。
ERA5数据下载(三种方式) - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/611543405Python脚本使用CDSAPI批量下载ERA5气象数据_cdsapi怎么安装_Toblerone_Wind的博客-博客https://blog..net/qq_42276781/article/details/129131784
二、如何下载
1、申请账号
哥白尼数据中心(cds.climate.copernicus.eu/#!/home)有大量的气候数据,其中包括了我们想要的ERA5数据集,想要下载这些数据,首先需要拥有一个账号。
2、利用API下载数据前的准备工作
数据中心出具了官方文档(How to use the CDS API | Copernicus Climate Data Store)教我们怎么使用数据接口下载数据,我需要在服务器上下载,所有主要关注“For linux users”这部分内容。
安装CDS API
在服务器里创建.cdsapirc 文件, 文件中的内容直接复制上图中黑色方框中的内容。图上展示的是未登陆账号时的状态,如果登陆自己的账号会出现个人的uid和api-key信息。下载ERA5的数据需要用户先向数据中心提出申请,将.cdsapirc 文件放在HOME目录下相当于把账号和密码存在了服务器上,方便下数据时使用你的账户。
vim $HOME/.cdsapirc
安装cdsapi库包
官方给出的利用API下载数据的python代码中用到了cdsapi库,需要我们用pip命令自己安装好。
CDS API访问数据
选择要下载的变量信息(变量名,时间,空间范围),让官方生成API request,然后再在上面修改。
3、修改python代码
我希望将单个变量每一日的数据存成一个文件,勾选时选择了下载specific humidity,所有高度层,2011-01-01,四个时刻的数据。生成的代码中variable、year、month、day,和储存的文件名是需要变化的。利用循环语句,更改这些变量即可。
网上有很多提供代码参考的帖子:
linux系统批量下载ERA5日数据_cds api-博客https://blog..net/LHgwei/article/details/127807676?spm=1001.2014.3001.5502
4、在服务器上跑代码
修改好download.py文件后先在服务器上用python download.py命令进行试运行,等开始下载才说明这个代码改对了。
接着可以将这个代码放在后台运行:
nohup python download.py &