ECWMF数据下载及简单处理
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))