RQL's Blog 菜鸟成长记

ERA5数据简介及下载和使用

2021-10-13
renql

ERA5提供逐小时 0.25分辨率,垂直37层的再分析资料。也提供月平均资料。但是没有日平均资料,因此如果需要日平均资料,则需要自己将24小时数据下载后再处理。关于分辨率,除了0.25°的,在下载时,好像也可以通过更改 python下载脚本中的 'grid': [1.0, 1.0], 参数进行下载。

The ERA5 dataset contains one (hourly, 31 km) high resolution realisation (referred to as “reanalysis” or “HRES”) and a reduced resolution ten member ensemble (referred to as “ensemble” or “EDA”).

官网文档介绍:https://confluence.ecmwf.int/display/CKB/ERA5%3A+data+documentation

ERA5数据中Analysis and forecast的区别:https://confluence.ecmwf.int/pages/viewpage.action?pageId=85402030

数据下载

数据下载的准备工作(注册,获得API KEY,在本地创建 .cdsapirc 文件存储API KEY):https://cds.climate.copernicus.eu/api-how-to

ERA5的数据下载使用的python软件包是 cdsapi,和之前 下载ERA-Interim 所用的 ecmwfapi 不同。

数据下载链接

  1. 逐小时:https://cds.climate.copernicus.eu/cdsapp#!/dataset/reanalysis-era5-pressure-levels?tab=overview

  2. 逐月:https://cds.climate.copernicus.eu/cdsapp#!/dataset/reanalysis-era5-pressure-levels-monthly-means?tab=overview

  3. 逐日数据下载接口(有多个分辨率可选,但好像只能逐月的下载,且没有提供python下载脚本) https://cds.climate.copernicus.eu/cdsapp#!/software/app-c3s-daily-era5-statistics?tab=app

从上述网址获得python下载代码中没有指明 expver(experiment version),因此下载得到的数据中会多一个expver的维度。其中,expver=0001是ERA5,expver=0005是ERA5T,因此可以再加一行选项'expver': '1'来进行筛选。

其中,ERA5T是初始发布数据,即滞后于实时时间不超过三个月的数据。如果在ERA5T中检测到严重的缺陷,该数据可能与最终的ERA5数据不同。但在实践中,这种情况不太可能发生。根据迄今为止ERA5的生产经验(以及过去的ERA-Interim),ECMWF预计这样的事件不会每几年发生一次以上,如果真的发生的话。在不太可能的情况下,需要这样的纠正,将尽快通知用户。

关于netcdf文件中ERA5T和ERA5的具体说明可以参考https://confluence.ecmwf.int/display/CUSF/ERA5+CDS+requests+which+return+a+mixture+of+ERA5+and+ERA5T+data

#!/usr/bin/env python
import cdsapi

varname = ['u_component_of_wind','v_component_of_wind']
filname = ['u','v']

c = cdsapi.Client()

for nv in range(0,len(varname),1):
    for year in range(1979,2020,1):
        c.retrieve(
            'reanalysis-era5-pressure-levels', # 也可以是 'reanalysis-era5-single-levels-monthly-means',
            {
                'product_type': 'reanalysis', # 也可以是 'monthly_averaged_reanalysis'
                'expver': '1',
                'variable': varname[nv],
                'pressure_level': [
                    '200', '225', '250',
                    '450', '500', '825',
                    '850',
                ],
                'year': str(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', '06:00', '12:00',
                    '18:00',
                ],
                'area': [
                    90, -180, 0,
                    180,
                ],
                 'grid': [1.0, 1.0
                ],
                'format': 'netcdf',
            },
            '/home/users/data/ERA5_subdaily_NH_%s_%d.nc'%(varname[nv],year))

其他有用的链接

下面这个网址可以将ERA5的逐月数据交互式可视化(如下图),并且提供了相应的python代码: https://cds.climate.copernicus.eu/apps/c3s/app-era5-explorer

ERA5的降水数据是逐小时的,如果要计算日累积降水,就需要将24小时的降水数据加起来,这里提供了代码: https://confluence.ecmwf.int/display/CKB/ERA5%3A+How+to+calculate+daily+total+precipitation


支持 支付宝鼓励 鸡腿鸡腿

喜欢此文!

上一篇 python简介

Content