python 使用cdsapi库获取跨月的era5数据
时间: 2023-12-11 13:06:10 浏览: 248
要获取跨月的ERA5数据,你可以使用CDS API库和Python进行操作。下面是简单的代码示例:
```python
import cdsapi
import datetime
c = cdsapi.Client()
# 设置起始和结束日期
start_date = datetime.datetime(2021, 6, 1)
end_date = datetime.datetime(2021, 9, 1)
# 下面的日期循环将跨越多个月
while start_date < end_date:
# 获取当前月份和下一个月的日期
year_month = start_date.strftime('%Y-%m')
next_month = start_date + datetime.timedelta(days=31)
next_year_month = next_month.strftime('%Y-%m')
# 下载ERA5数据
c.retrieve(
'reanalysis-era5-single-levels',
{
'product_type': 'reanalysis',
'format': 'netcdf',
'variable': [
'2m_temperature', 'mean_sea_level_pressure',
'10m_u_component_of_wind', '10m_v_component_of_wind'
],
'year': start_date.strftime('%Y'),
'month': [start_date.strftime('%m'), next_month.strftime('%m')],
'day': [
start_date.strftime('%d'), next_month.strftime('%d')
],
'time': '00:00',
},
f'era5_{year_month}.nc')
# 更新起始日期为下一个月
start_date = next_month
```
上面的代码将按月循环下载ERA5数据,并将其保存到以年月命名的NetCDF文件中。你可以根据需要更改变量、日期范围和保存路径等参数。
阅读全文