网上有很多博客分享了下载方法,我也是参照一篇博客下载的,但是忘了哪篇,现附一篇以供参考https://blog.csdn.net/qq_34734252/article/details/108781538
以下两个代码,第一个是师姐给的,第二个是我自己只需要下载几个月数据用的,仅供参考
代码一
import cdsapi
# 创建CDS API客户端
c = cdsapi.Client()
# 设置下载参数
year_range = ['2001'] # 2001年,修改年份即可分别下载对应年份了
variable = 'total_precipitation' # 将变量名称修改为'total_precipitation'
output_dir = 'G:/ERA5-Land' # 输出目录
# 循环下载每年的数据
for year in year_range:
# 设置下载请求参数
request = {
'product_type': 'reanalysis',
'format': 'netcdf',
'variable': variable,
'year': year,
'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',
],
'area': [
25, 73.4, 40, 105, # 北纬25,西经73.4,南纬40,东经105,即73.4°~105°E、25°~40°N范围
],
}
# 发送下载请求
filename = f'era5-land_{variable}_{year}.nc'
c.retrieve('reanalysis-era5-land', request, f'{output_dir}/{filename}')
print(f'{filename} 下载完成!')
代码二
# coding=utf-8
import cdsapi
c = cdsapi.Client()
for year in range(2000,2001):
for month in range(1, 13):
outpath = 'E:\\era5land\\' + str(year) + str(month).zfill(2) + '.nc'
print(outpath)
c.retrieve(
'reanalysis-era5-land',
{
'variable': 'total_precipitation',
'year': str(year),
'month': [
str(month).zfill(2)
],
'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',
'area': [
45, 95, 30,
120,
],
'format': 'netcdf',
},
outpath)