ECWMF数据下载及简单处理

1 minute read

Published:

简介

ECWMF数据是欧洲数值预报中心就气象预报产品的结果,ECMWF的MARS(EC自己的数据管理系统)API是基于Python语言的,可以便捷用户进行数据下载。

具体开源数据介绍在重分析数据集

使用方式

ERA-Interim 有效时段为Jan. 1st 1979-Aug. 31th,2019。 获取月平均模型:

#!/usr/bin/env python3
from ecmwfapi import ECMWFDataServer
import netCDF4 as nc
def fServerRetrieve(aDate,aName):
    server = ECMWFDataServer()
    server.retrieve({
        "class": "ei",
        "dataset": "interim",
        "date": aDate,
        "expver": "1",
        "grid": "0.75/0.75",
        "levtype": "sfc",
        "param": "167.128/228.128",
        "step": "3/6/9/12",
        "stream": "mnth",
        "target": aName,
        "time": "12",
        "type": "fc",
        "format" : "netcdf"})

fServerRetrieve('200801','200801.nc')
data=nc.Dataset('200801.nc')
print(data)
print(data.variables.keys())
print('------------')
for i in data.variables.keys():
    print(i)
print('------------')
for i in data.variables.keys():
    print(data.variables[i])
print('------------')
for i in data.variables.keys():
    print(data.variables[i].ncattrs())
    print(data.variables[i][:])
print('------------')

获取重分析结果:

#!/usr/bin/env python
from ecmwfapi import ECMWFDataServer
server = ECMWFDataServer()
server.retrieve({
    "class": "mc",
    "dataset": "macc",
    "date": "2012-12-01/to/2012-12-31",
    "expver": "rean",
    "grid": "0.75/0.75",
    "levelist": "1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18/19/20/21/22/23/24/25/26/27/28/29/30/31/32/33/34/35/36/37/38/39/40/41/42/43/44/45/46/47/48/49/50/51/52/53/54/55/56/57/58/59/60",
    "levtype": "ml",
    "param": "130.128",
    "step": "3",
    "stream": "oper",
    "time": "00:00:00",
    "type": "fc",
    "target": "output",
})

获得ERA5的数据:

#!/usr/bin/env python
import cdsapi
import sys
year = sys.argv[1]
month = sys.argv[2]
day=sys.argv[3]
c = cdsapi.Client()
c.retrieve(
    'reanalysis-era5-pressure-levels',
    {
        'product_type': 'reanalysis',
        'format': 'netcdf',
        'variable': [
            'geopotential', 'relative_humidity', 'specific_humidity', 'specific_cloud_ice_water_content',
            'specific_cloud_liquid_water_content',
            'temperature',
        ],
        'grid':'0.5/0.5',
        'pressure_level': [
            '1', '2', '3',
            '5', '7', '10',
            '20', '30', '50',
            '70', '100', '125',
            '150', '175', '200',
            '225', '250', '300',
            '350', '400', '450',
            '500', '550', '600',
            '650', '700', '750',
            '775', '800', '825',
            '850', '875', '900',
            '925', '950', '975',
            '1000',
        ],
        'year': '%s' % (year),
        'month': '%s' % (month),
        'day': '%s' % (day),
        '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',
        ],
    },
    'era5-%s-%s-%s.nc' % (year, month, day))