download - 从 ERA-Interim 下载降雪和地表降水数据时出错
问题描述
我正在使用 python 脚本从 ERA-Interim 再分析数据集中下载一些参数。除了地表降雪量和总降水量外,它适用于所有其他参数。它给出了错误
ecmwfapi.api.APIException:u'ecmwf.API 错误 1:错误 6(MARS_EXPECTED_FIELDS):预期 62,得到 0'
我在他们的网站上查看过,数据应该是完全可用的。我不知道这里有什么问题。下面是下载降雪数据的脚本。如果出现任何问题,请告诉我。谢谢你。
#!/usr/bin/env python
import calendar
from ecmwfapi import ECMWFDataServer
server = ECMWFDataServer()
def retrieve_interim():
"""
A function to demonstrate how to iterate efficiently over several years and months etc
for a particular interim_request.
Change the variables below to adapt the iteration to your needs.
You can use the variable 'target' to organise the requested data in files as you wish.
In the example below the data are organised in files per month. (eg "interim_daily_201510.grb")
"""
yearStart = 1984
yearEnd = 1989
monthStart = 1
monthEnd = 12
startDate = '%04d%02d%02d' % (yearStart, monthStart, 1)
lastDate = '%04d%02d%02d' % (yearEnd, monthEnd, 31)
target = "sf_daily_%04dto%04d.nc" % (yearStart, yearEnd)
requestDates = (startDate + "/TO/" + lastDate)
interim_request(requestDates, target)
def interim_request(requestDates, target):
"""
An ERA interim request for analysis pressure level data.
Change the keywords below to adapt it to your needs.
(eg to add or to remove levels, parameters, times etc)
Request cost per day is 112 fields, 14.2326 Mbytes
"""
server.retrieve({
"class": "ei",
"stream": "oper",
"type": "an",
"dataset": "interim",
"date": requestDates,
"expver": "1",
"levtype": "sfc",
#"levelist": "1000",
"param": "sf",
"target": target,
"time": "00/12",
"grid": "0.75/0.75",
"format": "netcdf"
})
if __name__ == '__main__':
retrieve_interim()
解决方案
在 ERA-interim ( http://apps.ecmwf.int/datasets/data/interim-full-daily/levtype=sfc/ ) 中,降雪量和降水量仅作为预报产品,而不是分析产品。在上面的链接中,如果您在步骤 0 中打勾,您会发现降水量和降雪量显示为灰色(表示不可用)。
另请参见https://www.ecmwf.int/sites/default/files/elibrary/2011/8174-era-interim-archive-version-20.pdf中的表 9 。降水量和降雪量是从每次预报开始时累积的。我建议你去第一个网站,点击一个月的降水和降雪,点击view MARS request
并获取一个模板,火星请求应该是什么样子。
推荐阅读
- android - 如何在 Kotlin 中使用适用于 Android 的 Go Ethereum (Geth) 部署以太坊合约?
- sql - 使用 group by 选择行,并在每个组中根据另一列值的最高值获取列值
- reactjs - 在地图函数中反应 onClick 处理程序。无法读取未定义的属性“handleButton”
- javascript - 在安全规则中验证 Firebase 数据库密钥中的电子邮件地址
- asp.net-core - 一个人如何从单例中消耗 Bugsnag?
- .net - 部署到 F5 环境时找不到 Web 服务抛出 404
- android - PainterSVG 无法加载 .svgz 文件,如何将其转换为 .svg 文件进行加载?
- excel - 从电子邮件格式 firstname.lastname@email.com 中提取名字和姓氏的 VBA 代码
- php - 在运行测试套件之前只初始化一次变量
- typescript - How to transform union type into union of arrays in typescript?