如何在内存中处理GRIB2文件?本地解析转内存处理失败求助
内存中处理GRIB2压缩文件的可行方案
你的问题核心在于两点:一是错误地将二进制压缩数据转换为字符串导致数据损坏,二是未在内存中完成gzip解压就传给GRIB库。以下是修正后的实现代码:
using GRIB, HTTP, CodecZlib url = "https://mtarchive.geol.iastate.edu/2022/01/01/mrms/ncep/MultiSensor_QPE_01H_Pass2/MultiSensor_QPE_01H_Pass2_00.00_20220101-000000.grib2.gz" # 获取原始二进制压缩数据,避免转字符串破坏结构 response = HTTP.get(url) # 在内存中创建gzip解压流,直接处理二进制数据 decompress_stream = GzipDecompressorStream(IOBuffer(response.body)) # 读取解压后的GRIB2数据 results = GribFile(decompress_stream)
原代码失败原因说明
String(HTTP.get(url))会将gzip格式的二进制字节强制转换为文本字符串,这会破坏二进制数据的结构,导致GRIB库无法识别有效格式。- 目标文件是gzip压缩的GRIB2文件,必须先解压为原始GRIB2二进制流,才能被
GribFile正确解析。
内容的提问来源于stack exchange,提问作者Rick Hitchcock
相关产品推荐
相关产品推荐

