爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 69737|回复: 63

[其他] 以ERA-5为例,从零开始手把手教你使用ECMWF Web API(python)

  [复制链接]

新浪微博达人勋

发表于 2017-10-29 19:34:29 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 Masterpiece 于 2017-11-10 21:54 编辑

欧洲爸爸的interim网页由于某种原因,选择日期的方式改版了。
下个再分析资料十分不方便,不能选当天的,那只好用Web API咯~
之前leeol等人(http://bbs.06climate.com/forum.php?mod=viewthread&tid=24435)也介绍过此类方法
但是目前欧洲中心的API接口(Ver 1.5.0)方式有所改变,主要变现为:
①密钥key存储在单独的文件中,而不是放入模块包中已有的脚本中了;
②模块包的安装采用的是pip命令进行了,更加方便安装;
③MARS脚本(.py文件)并不需要一定放在ecmwf-api-client-python文件夹下,电脑上任意位置均可(下载的资料也会被下到脚本所在的文件夹中)。
本文通过图文的方式对ECMWF新版Web API的安装方式进行说明,也为刚刚接触此类下载再分析资料的研究人员提供一些帮助和指南。


官方说明:
https://software.ecmwf.int/wiki/display/CKB/How+to+download+ERA5+data+via+the+ECMWF+Web+API
(文档中描述最好(highly recommended)是用某nix的系统安装这个API,但是现在测试下来证明Windows也能正常获取数据)

前期必须工作:
①你首先有一台电脑
②前往欧洲中心注册一个账号https://apps.ecmwf.int/registration/

第一步:安装python(2.7或3.6均可)
QQ截图20171031170305.png
首先安装python,请下载对应版本
QQ截图20171031171153.png
注意最好是把python添加入path环境变量给勾上
之后按照提示安装即可
https://www.python.org/downloads/release/python-363/



第二步安装:PIP
QQ截图20171031170922.png
打开命令提示符(WIN+R,输入cmd后运行)
输入以下代码
  1. pip install wheel
复制代码
这时程序会从网上调取资源包安装(有进度条提示)
之后系统会提示安装成功(界面略)
如果PIP之前安装过了这一步就可以跳过了
(检验是否安装成功,输入pip后运行,出现PIP的帮助文档即为成功)
这时候cmd的窗口先别忙关,第三步还要用


第三步:安装ECMWFWeb API
继续在命令提示符的窗口输入(可以用复制过去)

①某nix系统

  1. sudo pip install https://software.ecmwf.int/wiki/download/attachments/56664858/ecmwf-api-client-python.tgz
复制代码
②Windows系统
  1. pip install https://software.ecmwf.int/wiki/download/attachments/56664858/ecmwf-api-client-python.tgz
复制代码

稍等片刻之后,提示success后欧洲爸爸的API模块就安装好了


第四部:获取API key和授权
①保持EC页面的登陆状态,在(https://api.ecmwf.int/v1/key/)获取下边样式的密钥key
{
    "url"   : "https://api.ecmwf.int/v1",
    "key"   : "XXXXXXXXXXXXXXXXXXXXXX",
    "email" : "john.smith@example.com"
}
这个密钥的有效期是一年

②确认API的使用声明
保持EC页面的登陆状态,在(http://apps.ecmwf.int/datasets/licences/copernicus/
在页尾点击accept完成契约(欧洲爸爸:和我签订契约,成为魔法预报员吧!)

③建立.ecmwfapirc文件
这个文件是用来存储4.1步中的key密钥的,需要放在根目录下
①某nix系统
$HOME/.ecmwfapirc
②Windows系统
%USERPROFILE%\.ecmwfapirc

以Windows为例,其绝对路径是 C:\user\“你的用户名”
然后建立一个记事本,这时在重命名框里边输入
.ecmwfapirc.
注意前后都是有“.”的!!
建立成功后,系统识别的文件类型应该是“ECMWFAPIRC文件”
捕获.PNG

建立好之后就用记事本打开,将4.1获得的key复制进去之后保存就OK~
或者直接下一个我建好的,将4.1获得的key复制进去就好。
.ecmwfapirc (128 Bytes, 下载次数: 225)

评分

参与人数 4金钱 +24 收起 理由
临尘lc + 2 很给力!
气象初学者123 + 1
竹下妖 + 1
koala54 + 20 很给力!

查看全部评分

本帖被以下淘专辑推荐:

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-10-30 10:49:11 | 显示全部楼层
感谢楼主的分享,详细而且很实用
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-10-30 10:52:06 | 显示全部楼层
哎呀呀呀呀,好棒!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-10-30 10:57:54 | 显示全部楼层
谢谢楼主分享!!!!!!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-10-30 11:17:52 | 显示全部楼层
请问能下载EC细网格预报资料吗
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-10-30 11:27:18 | 显示全部楼层
很详细实用,感谢楼主分享
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-10-30 19:49:54 | 显示全部楼层
谢谢LZ分享!有个问题想请教LZ,怎样把不同类型的变量下载在一个NC文件中,这个脚本需要怎么修改呢?我下载地面场的2m气温和感热通量,但是2m气温的类型是"type": "an",感热通量是"type": "fc",请问py脚本要怎么写才能把这两个变量下在一个NC文件里呢?官网给出的py脚本并不能下在一起,希望lz能帮忙解答一下,十分感谢!

以下是官网的PY脚本
#!/usr/bin/env python
from ecmwfapi import ECMWFDataServer
server = ECMWFDataServer()
server.retrieve({
    "class": "ei",
    "dataset": "interim",
    "date": "19790101/19790201/19790301/19790401/19790501/19790601/19790701/19790801/19790901/19791001/19791101/19791201",
    "expver": "1",
    "grid": "0.75/0.75",
    "levtype": "sfc",
    "param": "167.128/207.128/235.128",
    "stream": "moda",
    "type": "an",
    "target": "output",
})
server.retrieve({
    "class": "ei",
    "dataset": "interim",
    "date": "19790101/19790201/19790301/19790401/19790501/19790601/19790701/19790801/19790901/19791001/19791101/19791201",
    "expver": "1",
    "grid": "0.75/0.75",
    "levtype": "sfc",
    "param": "231.128",
    "stream": "moda",
    "type": "fc",
    "target": "output",
})
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-10-31 12:07:41 | 显示全部楼层
楼主 下载的时候提示找不着我的.ecmwfapirc.文件可咋整
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\Administrator\\.ecmwfapirc'
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-10-31 12:37:13 | 显示全部楼层
真的是雪中送碳呐!!!谢谢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-10-31 23:28:53 | 显示全部楼层
非常感谢!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表