爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 18555|回复: 8

[经验总结] 【已解决】ERA-interim气柱总水汽逐月资料下载问题怎么解决

[复制链接]

新浪微博达人勋

发表于 2021-2-8 20:16:08 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 LemonTree007 于 2021-2-9 21:56 编辑

from ecmwfapi import ECMWFDataServer
server = ECMWFDataServer()
server.retrieve({
    "class": "ei",
    "dataset": "interim",
    "date": "19790101/to/20171201",
    "expver": "1",
    "grid": "2.5/2.5",
    "levtype": "sfc",
    "param": "137.128",#total column water vapour
    "stream": "moda",
    "type": "an",
    "target": "D:\\ERA-Interim\\vapour.nc",
})出错信息:ecmwfapi.api.APIException: 'ecmwf.API error 1: ERROR 6 (MARS_EXPECTED_FIELDS): Expected 14215, got 0'
解决办法:写循环下载每年的12个月平均数据,然后参考http://bbs.06climate.com/forum.p ... B2%A2nc%CE%C4%BC%FE合并,目前代码还在跑着下载,希望成功别出错。把循环代码传上来了(做了一些更改,每两年循环一次哈)。
更新1:我发现下载速度会随着时间推移变慢,简单粗暴的办法就是把循环起始时间改到最新要下载的年份,重新run一遍,不然要等到猴年马月了,比如我下载1979-1985之后就开始没动静了,那就改到从1986年重新run。
这个办法还是不错的,是我这智商能想出来的。。。。大概下载个6-7年就开始很慢了,可以重新设置for循环起始值了。又想到一个笨方法,但下载速度会更快:就是里面的date你可以设置成多年循环的,看自己情况吧,我这个脚本是2年循环一次,比一年的快,建议5-10年,下载会更快吧(毕竟不需要重复调用那些参数了)
更新2:
合并格式相同的nc文件有个特简单的代码!!!如下:*代表文件名中的变量,我的是yyyy,也就是年份在变。
import xarray as xr
ds = xr.open_mfdataset('D:/ERA-Interim/divergence/*divergence.nc')
ds.to_netcdf(r'D:/ERA-Interim/divergence/divergence.nc')

这是要获取逐日的资料,可是我要的是逐月的呀

这是要获取逐日的资料,可是我要的是逐月的呀

ERA-interim-vapour.py

852 Bytes, 下载次数: 0, 下载积分: 金钱 -5

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

新浪微博达人勋

 楼主| 发表于 2021-2-8 22:45:22 | 显示全部楼层
到底要怎么设置date呀,我看这里的https://confluence.ecmwf.int/pag ... ionpageId=118817289
设置了19790100/to/20171200试试
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-2-9 00:59:47 | 显示全部楼层
还是不行,哭了啊
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-2-9 09:13:27 | 显示全部楼层
本帖最后由 华仔_beyond 于 2021-2-9 09:15 编辑
LemonTree007 发表于 2021-2-9 00:59
还是不行,哭了啊

https://confluence.ecmwf.int/dis ... y+data+using+Python
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-2-9 10:13:33 | 显示全部楼层
华仔_beyond 发表于 2021-2-9 09:13
https://confluence.ecmwf.int/display/CKB/How+to+specify+dates+for+ERA-Interim+daily+and+monthly+da ...

哎,谢谢,所以是不能用19790101/to/20171201,只能写循环了,就没有那种直接读取逐月数据的设置吗?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-2-9 10:34:22 | 显示全部楼层
本帖最后由 华仔_beyond 于 2021-2-9 10:47 编辑
LemonTree007 发表于 2021-2-9 10:13
哎,谢谢,所以是不能用19790101/to/20171201,只能写循环了,就没有那种直接读取逐月数据的设置吗?

你运行一下CodeExample前几行,人家只是把日期用循环表示出来了,不影响你下载啊,你把日期改成你想要的就行了呀?

你想怎么直接读取呢?而且人家有说明的,你的这种表示方法是下载日数据的啊。。你完整看一遍说明
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-2-9 11:10:02 | 显示全部楼层
华仔_beyond 发表于 2021-2-9 10:34
你运行一下CodeExample前几行,人家只是把日期用循环表示出来了,不影响你下载啊,你把日期改成你想要的 ...

不好意思,麻烦您了。是这样的,我代码里面stream设置的是moda,就是需要月平均数据(monthly means of daily means)的意思,我的需要就是让他直接下载197901/197902/197903......./201701/201702/201703......./201712,但目前看来如果用”to“的话,他还是按逐日的来获取的,按理说不应该是显示逐月吗?也许他只是显示逐日然后会自动计算出月平均吧
一年的我可以用date把逐月的都列出来,现在问题是想直接读取多年逐月数据。。。。不知道date有没有这种设置。。。一直也没找到,https://confluence.ecmwf.int/pag ... ionpageId=118817289,这个网址也有关于date的说明,说月平均把DD设置成00,我试过了也没用。
可能我这里还有别的问题,谢谢您了,我再研究研究。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-2-9 12:05:22 | 显示全部楼层
本帖最后由 华仔_beyond 于 2021-2-9 12:06 编辑
LemonTree007 发表于 2021-2-9 11:10
不好意思,麻烦您了。是这样的,我代码里面stream设置的是moda,就是需要月平均数据(monthly means of da ...

再读一遍说明


“When you extract monthly means, the monthly means are timestamped to the first day of the month, and you have to extract for exactly these dates.”

另外,你给的网址打怎么不开呢!

密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-2-9 13:52:16 | 显示全部楼层

谢谢,我看了这个说明,我的理解就是必须得一个一个写出来,不能用to。所以打算写个循环然后再合并。
网址应该是粘贴的时候出错了,请看这个
https://confluence.ecmwf.int/pag ... on?pageId=118817289
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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