请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 68767|回复: 32

[经验总结] 利用python快速自定义下载ERA5再分析资料

  [复制链接]

新浪微博达人勋

发表于 2019-10-12 14:56:19 | 显示全部楼层 |阅读模式

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

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

x
    之前有帖子曾经说过这个问题,但那种旧的接口已经停止使用了,因此不再有效。而且ECMWF资料全部采用了新的CDS(Climate Data Store)方式共享,需要注册一个CDS账号,才能下载。    CDS主页连接:https://cds.climate.copernicus.eu/#!/home

    通过点击左上角的Datasets——>Product type——>Reanalysis可以查到ERA5多种再分析资料了。
   

ERA主页

ERA主页

    但通过主页下载的ERA5资料存在一个问题,即这里所采用的参数全部是默认值,例如逐小时的气压场再分析资料是全球尺度0.25°分辨率,使用起来非常不方便,仅仅选择几天的数据,都会产生非常庞大的文件。这时我们就需要利用Python通过cds的API接口来自定义下载ERA5资料了。
    1、首先需要在本机上(windows操作系统)安装好python,例如我们安装好了anaconda后,执行以下命令:
    conda config --add channels conda-forge
  
conda install cdsapi
   其中,第二个命令会执行一段时间,下载必要的程序包,并进行安装。我在操作时,第二个命令在安装时会出错,并进行了安装回滚操作,

但有提示,让重新启动系统。重新启动电脑后,安装就没问题了。
  2、在自己电脑上c:/用户/XXXX目录下(XXXX为操作系统登录名)新建一个文件,名字为.cdsapirc(有传言说这个文件名末尾最后也要加一个.号,
但加了也没用,保存时,仍然只会命名为.cdsapirc),在这个文件名里输入两行,第一行是网址,url: https://cds.climate.copernicus.eu/api/v2
,从这行网址可以看出与以前的ERA-Interim再分析资料下载脚本的重大区别,就是ERA5的脚本是v2版本里,而ERA-Interim的是v1版本。第二行是用户id和API Key,
去哪里找呢?首先用注册的用户名和密码登录,在屏幕右上角会出现一个用户名,点击用户名,就能出现一个一个用户档案页面,在页面最下方,就有一个id和API key。
因此第二行需要写成:key: 17???:8cfa2ede-????-????-????-????????????。最终,.cdsapirc文件内容应该有如下
内容:

.cdsapirc文件

.cdsapirc文件

    3、撰写下载脚本。这个版本的python下载脚本不再需要放在指定目录下,随便放在哪个目录下都可以(最好是英文目录),下载的数据默认会自动存放在脚本所在目录。
    脚本内容,可以自己事先在网页上勾选自己所需的资料,然后点击最下方的“Show API request”按钮查看脚本代码。但由于网页上勾选的资料没有空间分辨率和地区选择,需要自己填补上去。例如:
# -*- coding: utf-8 -*-
import cdsapi
c = cdsapi.Client()

c.retrieve(
    'reanalysis-era5-pressure-levels',
    {
        'product_type':'reanalysis',
        'variable':[
            'divergence','geopotential','relative_humidity',
            'specific_humidity','temperature','u_component_of_wind',
            'v_component_of_wind','vertical_velocity','vorticity'
        ],
        'pressure_level':[
            '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':'2018',
        'month':'07',
        'day':[
            '05','06','07'
        ],
        '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'
        ],
        'area':[40,105,20,122],
        'grid':[0.125,0.125],
        'format':'netcdf'
    },
    '20190705.nc')

   然后运行即可。运行结果如下:
   无标题4.png
   表明已经收集到资料,并开始下载!
   祝大家好运!

用户信息

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

新浪微博达人勋

发表于 2021-8-9 08:36:49 | 显示全部楼层
希望有效,感谢楼主
密码修改失败请联系微信:mofangbao
回复 支持 0 反对 1

使用道具 举报

新浪微博达人勋

发表于 2019-11-3 19:54:03 | 显示全部楼层
非常实用
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2019-12-3 17:23:13 | 显示全部楼层
非常实用!学习了!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-12-12 13:36:42 | 显示全部楼层
感谢楼主分享!!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-12-30 16:37:52 | 显示全部楼层
请问经纬度是怎么控制的?'area':[40,105,20,122]哪个是纬度?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-12-31 13:38:32 | 显示全部楼层
请问楼主,这个下载速度超慢怎么解决?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-1-5 20:03:44 | 显示全部楼层
请问一下楼主,你是怎么停留在这个界面的,我的好像报错了,但是一直闪退,没办法看到错误
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-1-9 15:36:58 | 显示全部楼层
请问一下是不是要安装anaconda才行呢 我只安装了python  以前都是python下的 现在这个有点懵呀  还有 conda config --add channels conda-forge
  conda install cdsapi  这两句命令是在哪里运行呢   谢谢楼主!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-1-21 11:25:05 | 显示全部楼层
Effy_yue 发表于 2020-1-9 15:36
请问一下是不是要安装anaconda才行呢 我只安装了python  以前都是python下的 现在这个有点懵呀  还有 conda ...

我是在anaconda下运行的,所以conda是anaconda的命令呢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-1-21 15:54:07 | 显示全部楼层
mrxiaoan 发表于 2020-1-21 11:25
我是在anaconda下运行的,所以conda是anaconda的命令呢

好的好的  谢谢  用python也搞定了
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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