- 如果您没有帐户,请通过https://apps.ecmwf.int/registration/ 进行自我注册,然后转到以下步骤。
-
通过https://api.ecmwf.int/v1/key/ 获取密钥
请注意,该密钥在1年内到期。您将在到期日期前1个月收到注册电子邮件地址的电子邮件,并附上续订说明。要查看当前密钥登录的到期日期,请访问www.ecmwf.int
-
复制此页面中的信息,并将其粘贴到文件 $ HOME / .ecmwfapirc(Unix / Linux)或%USERPROFILE%\ .ecmwfapirc(Windows;
-
如何创建前导点文件?
重命名
- 创建
file.txt
- 重命名
.file.
,最后一个点将被删除,你就得到.file
这里我们需要 创建 .ecmwfapirc 文件 ,并将下面内容拷贝进去
上面的文件放在 %USERPROFILE%下,这里这个路径可以在用户变量中找到,本人电脑用户名为Cronous 路径为 C:\Users\Cronous
- 所以将 .ecmwfapirc 放在上面路径下面
- 创建
"url" : "https://api.ecmwf.int/v1",
"key" : "XXXXXXXXXXXXXXXXXX",
"email" : "example@123.com"
}
该版本的库提供对Python 2.7.x和Python 3的支持。
您可以ecmwfapi
通过在Unix / Linux上运行来安装 python库:
sudo
pip
install
https:
//software
.ecmwf.int
/wiki/download/attachments/56664858/ecmwf-api-client-python
.tgz
|
或在Windows上:
如果您无法运行sudo
或pip
命令,只需下载 ecmwf-api-client-python.tgz。提取其内容并将模块复制ecmwfapi
到环境变量指向的目录中PYTHONPATH
。
要查看ECMWF Public Datasets的可用性,请访问Web界面:
http://apps.ecmwf.int/datasets/
使用此界面,您可以 发现我们存档中提供的所有ECMWF公用数据集。我们强烈建议您浏览我们的公共数据集以熟悉其可用性。您可以选择一个公共数据集,并开始浏览其内容。
请考虑有关内容的一些注意事项:
- 不同的ECMWF公共数据集包括不同的“参数”,“时间”和“步骤”
- 在每个 ECMWF公共数据集中,并非所有“参数”都可以从所有“步骤”
- 在每个 ECMWF公共数据集中,并非所有“时间”都提供所有“步骤”
上面的Web界面将帮助您检查和了解可用性。对于任何类型的选择,系统将以动态方式更新属性以反映当前的可用性。(即如果您更改步骤,一些参数将被添加或删除)。
小费
For more information on how to retrieve data programmatically, in Python, please go to Access ECMWF Public Datasets.
#!/usr/bin/env python
from ecmwfapi import ECMWFDataServer
server = ECMWFDataServer()
server.retrieve({
"class": "ti",
"dataset": "tigge",
"date": "2017-10-01/to/2017-10-20",
"expver": "prod",
"grid": "0.5/0.5",
"levtype": "sfc",
"origin": "ecmf",
"param": "134/167/228228",
"step": "0/6/12/18/24/30/36/42/48/54/60/66/72/78/84/90/96/102/108/114/120/126/132/138/144/150/156/162/168/174/180/186/192/198/204/210/216/222/228/234/240/246/252/258/264/270/276/282/288/294/300/306/312/318/324/330/336/342/348/354/360",
"time": "00:00:00/12:00:00",
"type": "cf",
"target": "output",
})
我们可以对照着学习一下。
转至元数据结尾 转至元数据起始
TIGGE压力水平控制预测
10m风组件,10m v风组件,来自NCEP。所有压力水平。
#!/usr/bin/env python
from
ecmwfapi
import
ECMWFDataServer
server
=
ECMWFDataServer()
server.retrieve({
'origin'
:
"kwbc"
,
'levelist'
:
"200/250/300/500/700/850/925/1000"
,
'levtype'
:
"pl"
,
'expver'
:
"prod"
,
'dataset'
:
"tigge"
,
'step'
:
"0/6/12/18/24/30"
,
'grid'
:
"0.5/0.5"
,
'param'
:
"131/132"
,
'time'
:
"00/06/12/18"
,
'date'
:
"2014-10-01"
,
'type'
:
"cf"
,
'class'
:
"ti"
,
'target'
:
"tigge_2014-10-01_00061218.grib"
})
|
TIGGE表面扰动预测
2m温度。01 NOV 2014,来自ECMWF
#!/usr/bin/env python
from
ecmwfapi
import
ECMWFDataServer
server
=
ECMWFDataServer()
server.retrieve({
'origin'
:
"ecmf"
,
'levtype'
:
"sfc"
,
'number'
:
"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"
,
'expver'
:
"prod"
,
'dataset'
:
"tigge"
,
'step'
:
"0/6/12/18"
,
'grid'
:
"0.5/0.5"
,
'param'
:
"167"
,
'time'
:
"00/12"
,
'date'
:
"2014-11-01"
,
'type'
:
"pf"
,
'class'
:
"ti"
,
'target'
:
"tigge_2014-11-01_0012.grib"
})
|
来自日本东京日本的rjtd
#!/usr/bin/env python
from
ecmwfapi
import
ECMWFDataServer
server
=
ECMWFDataServer()
server.retrieve({
'origin'
:
"rjtd"
,
'levtype'
:
"sfc"
,
'number'
:
"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"
,
'expver'
:
"prod"
,
'dataset'
:
"tigge"
,
'step'
:
"0/6/12/18"
,
'grid'
:
"0.5/0.5"
,
'param'
:
"167"
,
'time'
:
"00/12"
,
'date'
:
"2014-11-01"
,
'type'
:
"pf"
,
'class'
:
"ti"
,
'target'
:
"tigge_2014-11-01_0012.grib"
})
|
来自rksl,韩国:
#!/usr/bin/env python
from
ecmwfapi
import
ECMWFDataServer
server
=
ECMWFDataServer()
server.retrieve({
'origin'
:
"rksl"
,
'levtype'
:
"sfc"
,
'number'
:
"1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18/19/20/21/22/23"
,
'expver'
:
"prod"
,
'dataset'
:
"tigge"
,
'step'
:
"0/6/12/18"
,
'grid'
:
"0.5/0.5"
,
'param'
:
"167"
,
'time'
:
"00/12"
,
'date'
:
"2014-11-01"
,
'type'
:
"pf"
,
'class'
:
"ti"
,
'target'
:
"tigge_2014-11-01_0012.grib"
})
|
监控您的请求(python中我如何知道是否成功,如何取消请求)
我的要求完成需要多长时间?
根据一些因素和限制,请求可能需要一些时间(从几分钟到几个小时)才能完成。(例如,您提交的请求数,Nr当前正在运行的总活动请求数量,所涉及资源的可用性,最重要的是您的请求效率)
如何追溯旧请求?
您的工作列表可用于跟踪旅游请求。
您还可以使用Web-API活动和MARS活动页面。请参阅为什么MARS活动很重要
哪个是取消请求的最佳方式?
- 如果您想取消请求,请访问 您的工作,并单击取消选项。
- 一旦你已经取消了它,请求的状态将成为中止
- 取消不是推荐的方法,因为它可能会影响其他提交的请求的性能。
- 参见下一个常见问题。
我可以在本地环境中杀死我的请求(例如通过CTRL + C)
我的请求已经排队(或活动)了很长时间。我要杀了吗?
进一步
我可以要求“netcdf”格式的数据吗?
- 是的, 你只需要添加你的请求“格式”:“netcdf”
我可以要求有限区域吗?
- 是
- 如果您已经在请求中设置了“grid”关键字,可以添加“area”:“coordinates”关键字。您可以设置预定义的区域,例如欧洲,或者使用北/西/南/东的坐标设置区域。
- 您还可以访问MARS区域关键字以获取更多信息:后处理关键字。
- 见下面的例子。
"area"
:
"europe"
,
|
#area: N/W/S/E
#europe
"area"
:
"75/-20/10/60"
,
#africa
"area"
:
"40/-20/-40/60"
,
|
- 由Cristian Simarro创建,最后修改于五月11,2015
请参阅简要请求语法来了解每个关键字。
TIGGE压力水平控制预测
10m风组件,10m v风组件,来自NCEP。所有压力水平。
#!/usr/bin/env python
from
ecmwfapi
import
ECMWFDataServer
server
=
ECMWFDataServer()
server.retrieve({
'origin'
:
"kwbc"
,
'levelist'
:
"200/250/300/500/700/850/925/1000"
,
'levtype'
:
"pl"
,
'expver'
:
"prod"
,
'dataset'
:
"tigge"
,
'step'
:
"0/6/12/18/24/30"
,
'grid'
:
"0.5/0.5"
,
'param'
:
"131/132"
,
'time'
:
"00/06/12/18"
,
'date'
:
"2014-10-01"
,
'type'
:
"cf"
,
'class'
:
"ti"
,
'target'
:
"tigge_2014-10-01_00061218.grib"
})
|
TIGGE表面扰动预测
2m温度。01 NOV 2014,来自ECMWF
#!/usr/bin/env python
from
ecmwfapi
import
ECMWFDataServer
server
=
ECMWFDataServer()
server.retrieve({
'origin'
:
"ecmf"
,
'levtype'
:
"sfc"
,
'number'
:
"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"
,
'expver'
:
"prod"
,
'dataset'
:
"tigge"
,
'step'
:
"0/6/12/18"
,
'grid'
:
"0.5/0.5"
,
'param'
:
"167"
,
'time'
:
"00/12"
,
'date'
:
"2014-11-01"
,
'type'
:
"pf"
,
'class'
:
"ti"
,
'target'
:
"tigge_2014-11-01_0012.grib"
})
|
来自日本东京日本的rjtd
#!/usr/bin/env python
from
ecmwfapi
import
ECMWFDataServer
server
=
ECMWFDataServer()
server.retrieve({
'origin'
:
"rjtd"
,
'levtype'
:
"sfc"
,
'number'
:
"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"
,
'expver'
:
"prod"
,
'dataset'
:
"tigge"
,
'step'
:
"0/6/12/18"
,
'grid'
:
"0.5/0.5"
,
'param'
:
"167"
,
'time'
:
"00/12"
,
'date'
:
"2014-11-01"
,
'type'
:
"pf"
,
'class'
:
"ti"
,
'target'
:
"tigge_2014-11-01_0012.grib"
})
|
来自rksl,韩国:
#!/usr/bin/env python
from
ecmwfapi
import
ECMWFDataServer
server
=
ECMWFDataServer()
server.retrieve({
'origin'
:
"rksl"
,
'levtype'
:
"sfc"
,
'number'
:
"1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18/19/20/21/22/23"
,
'expver'
:
"prod"
,
'dataset'
:
"tigge"
,
'step'
:
"0/6/12/18"
,
'grid'
:
"0.5/0.5"
,
'param'
:
"167"
,
'time'
:
"00/12"
,
'date'
:
"2014-11-01"
,
'type'
:
"pf"
,
'class'
:
"ti"
,
'target'
:
"tigge_2014-11-01_0012.grib"
})
|