您的位置:首页 > 编程语言 > Python开发

如何使用python访问ECMWF公共数据集

2017-10-23 19:41 651 查看
1.安装ECMWF KEY

如果您没有帐户,请通过https://apps.ecmwf.int/registration/
进行自我注册,然后转到以下步骤。

登录https://apps.ecmwf.int/auth/login/

通过https://api.ecmwf.int/v1/key/
获取密钥

请注意,该密钥在1年内到期。您将在到期日期前1个月收到注册电子邮件地址的电子邮件,并附上续订说明。要查看当前密钥登录的到期日期,请访问www.ecmwf.int

复制此页面中的信息,并将其粘贴到文件 $ HOME / .ecmwfapirc(Unix / Linux)或%USERPROFILE%[b]\
.ecmwfapirc
[/b](Windows;

如何创建前导点文件?


重命名

创建
file.txt

重命名
.file.
,最后一个点将被删除,你就得到
.file

这里我们需要 创建  .ecmwfapirc 文件 ,并将下面内容拷贝进去

上面的文件放在 %USERPROFILE%下,这里这个路径可以在用户变量中找到,本人电脑用户名为Cronous 路径为 C:\Users\Cronous

所以将 .ecmwfapirc 放在上面路径下面

$ HOME / .ecmwfapirc(Unix / Linux)或%USERPROFILE%\。ecmwfapirc(Windows)的内容

该版本的库提供对Python 2.7.x和Python 3的支持。

您可以
ecmwfapi
通过在Unix / Linux上运行来安装 python库:

或在Windows上:

如果您无法运行
sudo
pip
命令,只需下载 ecmwf-api-client-python.tgz。提取其内容并将模块复制
ecmwfapi
到环境变量指向的目录中
PYTHONPATH


3.检查数据可用性

要查看ECMWF Public Datasets的可用性,请访问Web界面:

http://apps.ecmwf.int/datasets/

使用此界面,您可以 发现我们存档中提供的所有ECMWF公用数据集。我们强烈建议您浏览我们的公共数据集以熟悉其可用性。您可以选择一个公共数据集,并开始浏览其内容。

请考虑有关内容的一些注意事项:

不同的ECMWF公共数据集包括不同的“参数”,“时间”和“步骤”
在每个 ECMWF公共数据集中,并非所有“参数”都可以从所有“步骤”
在每个 ECMWF公共数据集中,并非所有“时间”都提供所有“步骤”

上面的Web界面将帮助您检查和了解可用性。对于任何类型的选择,系统将以动态方式更新属性以反映当前的可用性。(即如果您更改步骤,一些参数将被添加或删除)。

小费

选择完成后,我们鼓励用户使用页面底部的“ 查看MARS请求 ”功能。使用这个MARS请求,你可以建立自己的Python脚本。
这里说一下查看MARS请求可以自动生成python脚本样例文件,我们可以对照着学习一下,如下面的我选择的数据源:



自动生成的python脚本如下:
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数据源的示例

转至元数据结尾转至元数据起始

TIGGE压力水平控制预测
TIGGE表面扰动预测


TIGGE压力水平控制预测

10m风组件,10m v风组件,来自NCEP。所有压力水平。

ECMWF公共数据集Web界面


TIGGE表面扰动预测

2m温度。01 NOV 2014,来自ECMWF

ECMWF公共数据集Web界面

来自日本东京日本的rjtd

来自rksl,韩国:

转至元数据起始


监控您的请求(python中我如何知道是否成功,如何取消请求)


我的要求完成需要多长时间?

根据一些因素和限制,请求可能需要一些时间(从几分钟到几个小时)才能完成。(例如,您提交的请求数,Nr当前正在运行的总活动请求数量,所涉及资源的可用性,最重要的是您的请求效率


如何追溯旧请求?

您的工作列表可用于跟踪旅游请求。

您还可以使用Web-API活动MARS活动页面。请参阅为什么MARS活动很重要


哪个是取消请求的最佳方式?

如果您想取消请求,请访问 您的工作,并单击取消选项。
一旦你已经取消了它,请求的状态将成为中止
取消不是推荐的方法,因为它可能会影响其他提交的请求的性能。
参见下一个常见问题。


我可以在本地环境中杀死我的请求(例如通过CTRL + C)



如果您只是
本地环境中杀死一个Web
API请求(例如通过CTRL + C),那么在web-API服务级别上的相应作业不会被取消,但仍在运行。
您的请求将在您的工作列表中继续有效
http://apps.ecmwf.int/webmars/joblist/ 这个是查看请求的列表的网站,执行完的请求数据以及请求状态都可以看到,请求完成的数据

也可以在这里下载
请参阅以前的常见问题,以查看如何正确取消您的请求。
图为joblist




我的请求已经排队(或活动)了很长时间。我要杀了吗?

根据许多因素和限制,请求可能需要一些时间才能完成。
访问您的工作列表以查看请求的状态
您可能需要访问我们的疑难解答页面了解更多信息。


进一步


我可以要求“netcdf”格式的数据吗?

是的,

你只需要添加你的请求“格式”:“netcdf”


我可以要求有限区域吗?




如果您已经在请求中设置了“grid”关键字,可以添加“area”:“coordinates”关键字。您可以设置预定义的区域,例如欧洲,或者使用北/西/南/东的坐标设置区域。
您还可以访问MARS区域关键字以获取更多信息:后处理关键字
见下面的例子。

转至元数据结尾

由Cristian
Simarro创建,最后修改于五月11,2015

转至元数据起始

TIGGE压力水平控制预测
TIGGE表面扰动预测

请参阅简要请求语法来了解每个关键字。


TIGGE压力水平控制预测

10m风组件,10m v风组件,来自NCEP。所有压力水平。

ECMWF公共数据集Web界面


TIGGE表面扰动预测

2m温度。01 NOV 2014,来自ECMWF

ECMWF公共数据集Web界面

来自日本东京日本的rjtd

来自rksl,韩国:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: