1

我想下载全球(从 1950 年到 2022 年)的 ERA5 再分析每小时数据。我正在尝试使用来自cdsapi.

我只是想下载 5 年(每年只有 3 个月),但由于请求太大而显示失败。

这是我的代码:

import cdsapi

c = cdsapi.Client()

c.retrieve(
    'reanalysis-era5-pressure-levels',
    {
        'product_type': 'reanalysis',
        'variable': [
            'specific_humidity', 'temperature', 'u_component_of_wind',
            'v_component_of_wind',
        ],
        'pressure_level': '500',
        'year': '1979',
        'month': [
            '01', '02', '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',
    },
    'era1979.nc')
4

1 回答 1

1

您需要将检索分解成更小的块,例如通过循环几个月,并每月拥有一个文件。要了解如何做到这一点,我的频道上有一个关于这个主题的 youtube 视频

所以对于你的例子(如果这仍然不够,你将需要在几天内做同样的事情):

import cdsapi

c = cdsapi.Client()
for year in [str(y) for y in range(1979,1985)]:
    for mon in ['01', '02', '12']:
        c.retrieve(
        'reanalysis-era5-pressure-levels',
        {
        'product_type': 'reanalysis',
        'variable': [
            'specific_humidity', 'temperature', 'u_component_of_wind',
            'v_component_of_wind',
        ],
        'pressure_level': '500',
        'year': year,
        'month': mon,
        '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',
    },
    'era_'+year+'_'+mon+'.nc')
于 2022-02-23T11:25:44.770 回答