pygrib
的documentation显示了一个名为fromstring
的函数,该函数从表示二进制grib消息的python字节对象创建gribmessage实例。我可能误解了此函数的用途,但它使我相信我可以使用它来代替下载GRIB文件并在其上使用open
函数。不幸的是,我尝试从NLDAS2打开多消息GRIB文件失败。其他人知道如何在不保存文件的情况下对GRIB数据使用pygrib
吗?下面的代码显示了我希望它如何工作。相反,它在for grib in gribs:
行上给出了错误TypeError: expected bytes, int found
from urllib import request
import pygrib
url = "<remote address of desired file>"
username = "<username>"
password = "<password>"
redirectHandler = request.HTTPRedirectHandler()
cookieProcessor = request.HTTPCookieProcessor()
passwordManager = request.HTTPPasswordMgrWithDefaultRealm()
passwordManager.add_password(None, "https://urls.earthdata.nasa.gov", username, password)
authHandler = request.HTTPBasicAuthHandler(passwordManager)
opener = request.build_opener(redirectHandler, cookieProcessor, authHandler)
request.install_opener(opener)
with request.urlopen(url) as response:
data = response.read()
gribs = pygrib.fromstring(data)
for grib in gribs:
print(grib)
编辑以添加整个错误输出:
Traceback (most recent call last):
File ".\example.py", line 19, in <module>
for grb in grbs:
File "pygrib.pyx", line 1194, in pygrib.gribmessage.__getitem__
TypeError: expected bytes, int found
编辑:此界面不支持多消息GRIB文件,但如果有人想编写代码,作者可以接受拉取请求。不幸的是,我的研究重点已经转移,我没有时间贡献自己
正如jasonharper所说,您可以使用pygrib.fromstring()。我自己也试过了,效果不错
以下是文档的link
相关问题 更多 >
编程相关推荐