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

使用scintools的Dynspec读取FITS文件时出现编码错误求助

解决scintools Dynspec读取FITS文件时的编码解码错误

问题重现

使用scintools模块的Dynspec类读取FITS文件查看动态频谱,执行以下代码:

dyn=Dynspec(
    filename="B1133+16_bm4_pa_750_200_16_12mar2018.raw.2.dspec.fits", process=False
)

出现错误:'charmap' codec can't decode byte 0x90 in position 2985: character maps to <undefined>,尝试二进制读取、添加encoding='utf-8'均无效。

解决方案

  • 修改源码编码设置:找到scintools中读取FITS文件头的代码,将文件打开时的编码改为latin-1(该编码能兼容所有字节,适配FITS头中的非标准ASCII字符)。例如把open(filename, 'r')替换为open(filename, 'r', encoding='latin-1')。
  • 通过astropy预读取后传入:绕过scintools的文件读取逻辑,先用astropy读取FITS数据和头信息,再传入Dynspec:
    from astropy.io import fits
    from scintools.dynspec import Dynspec
    
    hdul = fits.open("B1133+16_bm4_pa_750_200_16_12mar2018.raw.2.dspec.fits")
    dyn = Dynspec(data=hdul[0].data, header=hdul[0].header, process=False)
    
  • 检查文件完整性:用专业FITS工具(如DS9)打开目标文件,确认文件未损坏、头信息格式正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 14:55:15