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

Python无需写入本地直接读取NDFD Grib二进制文件实现问题

错误原因

GRIB属于二进制格式文件,无文本编码属性,你之前对二进制内容调用decode()转为字符串的操作不符合格式要求,因此触发编码类报错。

解决方案

借助Python标准库io模块的BytesIO类,将请求获取的二进制内容直接包装为内存中的类文件对象,即可直接传入xarray读取,无需写入本地磁盘。

import pandas as pd
import requests
import xarray as xr
import cfgrib
from io import BytesIO

r = requests.get(
    'https://tgftp.nws.noaa.gov/SL.us008001/ST.opnl/DF.gr2/DC.ndfd/AR.neast/VP.001-003/ds.wspd.bin'
)

# 二进制内容包装为内存类文件对象,直接读取
with BytesIO(r.content) as grib_file:
    xr_set = xr.load_dataset(grib_file, engine="cfgrib")

windspeed_df = xr_set.to_dataframe()

BytesIO会将内存中的二进制数据模拟为标准磁盘文件对象,支持cfgrib读取时所需的所有文件操作,完全绕过本地磁盘IO流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 08:39:03