数据介绍
ERA5是ECMWF(欧洲中期天气预报中心)对1950年1月至今全球气候的第五代大气再分析数据集。ERA5由ECMWF的哥白尼气候变化服务(C3S)生产。ERA5提供了大量大气、陆地和海洋气候变量的每小时估计值。这些数据覆盖了30公里网格上的地球,并使用137个从地表到80公里高度的高度来解析大气,包括在降低空间和时间分辨率时所有变量的不确定性信息。ERA5将模型数据与来自世界各地的观测数据结合起来,形成一个全球完整的、一致的数据集,取代了其前身ERA-Interim再分析。
其中ERA5 DAILY提供每天7个ERA5气候再分析参数的汇总值:2m空气温度、2m露点温度、总降水量、平均海平面气压、表面气压、10m的u风分量和10m的v风分量。此外,根据每小时的2米空气温度数据,计算出2m处的每日最低和最高空气温度。每日总降水值以每日总和给出。所有其他参数都以日平均数提供。
图1 全球1979-2020年平均降水总量(mm);图片来自:https://cds.climate.copernicus.eu/cdsapp#!/software/app-era5-explorer?tab=app
时间分辨率:Hourly, Daily, Monthly
空间分辨率:0.1°×0.1°
时间跨度:1950年1月-至今
引用格式:Muñoz Sabater, J., (2019): ERA5-Land hourly data from 1981 to present. Copernicus Climate Change Service (C3S) Climate Data Store (CDS). (Accessed on < DD-MMM-YYYY >), 10.24381/cds.e2161bac
来源:https://www.ecmwf.int/en/forecasts/dataset/ecmwf-reanalysis-v5
数据批量下载
- 打开ERA5官网ERA5-Land hourly data from 1950 to present (copernicus.eu),注册账号并登录。
2. 打开How to use the CDS API | (copernicus.eu),可以看到自己的uid和api key,并复制。
3. 在“C:\Users\用户名”路径下新建一个txt文本文件,并写入刚刚复制好的内容,将文件名改为“.cdsapirc”。
4. 在ERA5-Land hourly data from 1950 to present (copernicus.eu)中,选择需要下载的数据类型、时间范围和空间范围。并下拉至最后选择“Show API request”。
5. 复制API中关键信息。
6. 利用Python批量下载ERA5数据(以1979-2021年所有月份数据为例,参考:批量下载ERA5数据(Python+IDM)_菩提有树的博客-CSDN博客_era5下载):
import cdsapi
import calendar
#在运行前先安装cdsapi包
c = cdsapi.Client()
dic = {
&#39;product_type&#39;: &#39;reanalysis&#39;, #选择数据集
&#39;format&#39;: &#39;netcdf&#39;, #选择数据格式
&#39;variable&#39;: &#39;total_precipitation&#39;, #选择要素
&#39;year&#39;: &#39;&#39;,
&#39;month&#39;: &#39;&#39;,
&#39;day&#39;: [],
&#39;time&#39;: [
&#39;00:00&#39;, &#39;01:00&#39;, &#39;02:00&#39;, &#39;03:00&#39;, &#39;04:00&#39;, &#39;05:00&#39;,
&#39;06:00&#39;, &#39;07:00&#39;, &#39;08:00&#39;, &#39;09:00&#39;, &#39;10:00&#39;, &#39;11:00&#39;,
&#39;12:00&#39;, &#39;13:00&#39;, &#39;14:00&#39;, &#39;15:00&#39;, &#39;16:00&#39;, &#39;17:00&#39;,
&#39;18:00&#39;, &#39;19:00&#39;, &#39;20:00&#39;, &#39;21:00&#39;, &#39;22:00&#39;, &#39;23:00&#39;
]
}
# 批量下载1979年到2021年所有月份数据
for i in range(1979, 2022):
for j in range(1, 13):
day_num = calendar.monthrange(i, j)[1] # 根据年月,获取当月日数
dic[&#39;year&#39;] = str(i)
dic[&#39;month&#39;] = str(j).zfill(2)
dic[&#39;day&#39;] = [str(d).zfill(2) for d in range(1, day_num + 1)]
filename = &#39;E:\\ERA5\\1979-2021\\total_precipitation&#39; + str(i) + str(j).zfill(2) + &#39;.nc&#39; # 文件存储路径
c.retrieve(&#39;reanalysis-era5-single-levels&#39;, dic, filename) # 下载数据
作者:徐源浩,潘晓龙
上一篇:欧洲和乌克兰释放和谈信号,美国立马拆台,逼着俄乌继续打 下一篇:拟议的欧盟人工智能责任规则:轻松还是负担? |