You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Colab中用PyGRIB读取网页GRIB2文件

在Google Colab中读取远程NOAA GRIB2文件的解决方案

问题背景

读取NOAA提供的远程GRIB2文件时,遇到两类错误:

  • 直接用pygrib.open()传入URL触发OSError:pygrib不支持直接读取远程URL路径的文件
  • 通过urllib.request.urlopen()获取HTTPResponse后传入pygrib.open()触发TypeError:pygrib.open()仅支持本地文件路径字符串或字节对象,不兼容HTTPResponse类型

解决方案

核心是先将远程文件的二进制内容加载到内存,再用pygrib.fromstring()解析(该方法支持直接传入二进制数据)。

完整代码示例

import numpy
import pygrib
import requests

# 目标GRIB2文件的远程链接
grib_url = 'https://www.ncei.noaa.gov/data/north-american-mesoscale-model/access/forecast/202212/20221216/nam_218_20221216_1200_000.grb2'

# 发起请求获取文件二进制内容
response = requests.get(grib_url)
response.raise_for_status()  # 捕获请求失败的异常
grib_binary = response.content

# 解析二进制GRIB数据
grbs = pygrib.fromstring(grib_binary)

# 验证:打印第一个GRIB消息的键值
print(grbs[0].keys())

关键说明

  1. 二进制数据读取:使用requests.get()的response.content获取文件二进制内容,比urllib更简洁易用
  2. 兼容pygrib的解析方式:pygrib.fromstring()直接处理字节数据,绕过了本地文件路径或对象类型的限制
  3. 异常处理:response.raise_for_status()确保请求失败时及时抛出异常,便于排查网络或文件访问问题

消除pyproj警告

若遇到pyproj unable to set database path警告,可在Colab中执行以下命令安装兼容版本:

!pip install pyproj==3.2.1

内容的提问来源于stack exchange,提问作者user3550783

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 20:35:13