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

使用SatPy读取EUMETSAT SEVIRI L1.5原生文件遇报错求助

问题解决:SatPy读取SEVIRI L1.5原生文件报错

错误原因及修复方案

1. 嵌套列表导致的AttributeError: 'list' object has no attribute 'decode'

前两段代码均存在嵌套列表传参的问题:

  • glob()返回的本身就是列表对象,你写成filenames=[fnames]会把列表再嵌套一层(变成[[文件路径]])
  • 第二段代码中filenames=[filenames]同样是嵌套列表,SatPy无法识别这种格式的路径,进而抛出解码错误。

修复后的第一段代码:

import glob
from satpy import Scene

fnames = glob('C:/Users/nk22017786/Desktop/satellite/MSG4-SEVI-MSG15-0100-NA-20190615165742.199000000Z-NA.nat')
# 直接传入glob返回的列表,无需额外嵌套
scn = Scene(filenames=fnames, reader="seviri_l1b_native", reader_kwargs={'fill_disk': True})
scn.load(['VIS006'], upper_right_corner='NE')
print(scn['VIS006'])

修复后的第二段代码:

from satpy import Scene

# 直接传入文件路径列表,避免嵌套
filenames = ['C:/Users/nk22017786/Desktop/satellite/MSG4-SEVI-MSG15-0100-NA-20190313151244.440000000Z-NA.nat']
global_scene = Scene(reader='seviri_l1b_native', filenames=filenames)
global_scene.load(['VIS006'])

2. 文件路径/名称错误导致的No filenames found for reader

第三段代码存在两个关键问题:

  • 文件名缺少.nat后缀,SatPy无法识别文件类型
  • 未提供完整文件路径,Python当前工作目录大概率不是文件所在的Desktop/satellite文件夹,导致找不到文件。

修复后的第三段代码:

from satpy import Scene

# 传入完整路径+带.nat后缀的正确文件名
filenames = ['C:/Users/nk22017786/Desktop/satellite/MSG4-SEVI-MSG15-0100-NA-20190313151244.440000000Z-NA.nat']
scn = Scene(filenames=filenames, reader='seviri_l1b_native')
scn.load(['VIS006', 'IR_108'], upper_right_corner='NE')
print(scn['IR_108'])

额外注意事项

  • 确保SatPy已安装SEVIRI相关依赖(如pyresample、h5py),依赖缺失也可能导致读取失败
  • 验证文件完整性:可使用EUMETSAT官方工具确认文件未损坏

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 00:00:12