本文同步发布于公众号『气象学家』传送门。方便下载ERA5的单层(single level)数据以及多层(pressure)数据,使用ECMWF的Python cds API去下载还是很方便和快捷的。目前,ERA5的数据能够提供1979年-Present了,而且是逐小时的数据,对于多层数据能够提供:
1 | 'pressure_level':[ |
根据个人的实际需求,可以最多采用4线程来进行数据下载,实测日常下载速度还是比较可观的,在教育网基本都能稳定在4~5MB/S。考虑到数据量的大小,有两点建议:1.方便数据处理,可以定制需要的数据范围以及有限的时间段,导出为netcdf格式;2.并行多线线程下载;
下载速度:教育网网络环境2019.5.17实时
单层grib并行下载
1 | from queue import Queue |
多层grib并行下载
1 | from queue import Queue |
常用的下载变量名称
tips:根据需要修改即可,个人建议选定少数level层次,若是不需要逐小时数据可以采用逐3小时或者逐6小时数据。不然,每天数据量单文件可以达到17GB,存储空间太浪费了。
1 | ERA5 hourly data on single levels from 1979 to present |
运行
python parallel_download_era5_cds.py
另外非并行(多线程)脚本
tips:输出格式为netcdf为每年一个独立文件,适合较小、单层数据;
1 | import cdsapi |
采用命令行参数指令下载
具体参考:GitHub网址
1 | #!/usr/bin/env python |
总结
基本上述代码1、2能够满足日常需求,后面的是根据不同需求,在官网templates code scripts 基础上造出的轮子,用起来,就好。
参考:
有任何问题都欢迎交流探讨,共同学习进步!