Python批量下载ERA5再分析资料:使用API request实现高效下载

最近需要批量下载逐小时的ERA5变量,通过Python批量下载会高效很多,摸索了一下下载方式ERA5 hourly data on single levels from 1940 to present (copernicus.eu)

以2023年的全球降水率为例

选择产品类型为再分析产品

选择变量为降水率

选取时间范围,2023年全年逐小时

区域范围为全球

数据格式为netcdf文件

点击API request后会直接给出python下载的脚本文件,默认下载文件名为download.nc,保存位置是代码所在的当前文件夹,如spyder是保存在页面左上角的路径位置

import cdsapi

c = cdsapi.Client()

c.retrieve(
    'reanalysis-era5-single-levels',
    {
        'product_type': 'reanalysis',
        'variable': 'mean_total_precipitation_rate',
        'year': '2023',
        'month': [
            '01', '02', '03',
            '04', '05', '06',
            '07', '08', '09',
            '10', '11', '12',
        ],
        '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',
        ],
        'format': 'netcdf',
    },
    'download.nc')

到这就可以直接运行python进行脚本下载,但前提是已安装cdsapi模块,官网上也有教程

(How to use the CDS API | Copernicus Climate Data Store)

其中window系统的安装流程如下How to install and use CDS API on Windows – Copernicus Knowledge Base – ECMWF Confluence Wiki

1.首先需要账号,CDS或者ADS的,注册一个就行,然后登上,我用的CDS

2.进入How to use the CDS API | Copernicus Climate Data Store,如果账号没问题,会在右边黑框里看到两行代码,分别是url和key,里面的内容每个人都不一样

在用户路径底下新建一个txt文件,用户路径一般是C:\Users\+用户名,比如我的用户名是    Lenovo,路径就是C:\Users\Lenovo

把这两行粘贴进文本文件,文件名改成.cdsapirc

3.再打开Anaconda power Prompt,直接输入 pip install cdsapi进行安装

到这就大功告成了,安装完成后运行之前的python脚本即可批量下载数据

其他问题:

在用spyder下载的时候遇到连接问题出现很多warning “http error”,不用中断,让它反复尝试就可以了

我还试图用vscode下载,但是遇到报错"Can't connect to HTTPS URL because the SSL module is not available.",但是我的ssl模块是正常安装的,位置也写在环境路径里了,不清楚问题出在哪里,求大佬解答

作者:等一只陨石小边牧

物联沃分享整理
物联沃-IOTWORD物联网 » Python批量下载ERA5再分析资料:使用API request实现高效下载

发表回复