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

Python使用astropy打开缺失SIMPLE关键字的FITS文件报错如何解决

解决方案

第一步:基础文件完整性排查

  • 比对下载文件的MD5/SHA256校验值与数据源站公布的校验值是否一致,若不一致说明文件在下载过程中损坏,重新下载即可解决
  • 检查文件后缀,若为.gz、.bz2等压缩格式,需先完整解压再尝试读取,未解压的压缩文件无法被astropy直接识别为有效FITS
  • 查看文件大小,若文件小于2880字节(FITS头的最小块长度),说明文件为空,直接重新下载即可

第二步:手动注入SIMPLE关键字

如果上述排查无问题,可通过二进制读写直接修改文件头注入SIMPLE关键字,无需先通过astropy打开文件,单文件修改示例如下,批量处理可遍历文件列表复用逻辑:

file_path = "替换为你的FITS文件路径.fits"
with open(file_path, "r+b") as f:
    # 标准SIMPLE头卡片,固定占80字节,符合FITS格式要求
    simple_card = b"SIMPLE  =                    T / conforms to FITS standard                          "
    # 读取当前第一个头卡片
    current_first = f.read(80)
    if not current_first.startswith(b"SIMPLE  ="):
        # 指针移到文件开头,写入SIMPLE卡片
        f.seek(0)
        f.write(simple_card)

修改完成后再尝试用astropy打开:
fits.open(file_path, ignore_missing_simple=True, lazy_load_hdus=False)

第三步:其他结构损坏排查

如果修改后仍然报错,说明文件存在除缺失SIMPLE关键字外的结构问题:

  • 读取文件前2880字节打印查看,确认是否存在其他有效头关键字,排查是否存在头整体偏移、缺失的情况
  • 若头内容完全为乱码,说明文件下载时出现不可逆损坏,只能更换下载源重新获取

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 06:24:04