使用numpy处理HDU FITS文件格式时的索引错误

0 投票
1 回答
545 浏览
提问于 2025-04-18 18:37

我正在尝试使用 astropy 模块中的 fits 来读取一个 FITS 文件的数据,然后用标准的 numpy 数组处理这些数据。不过,不知道为什么我收到了以下错误:

IndexError: too many indices

这是我正在使用的代码:

from astropy.io import fits
import matplotlib.pyplot as plt

hdulist = fits.open('/Users/iMacHome/Downloads/spec-1959-53440-0605.fits')
hdu     = hdulist[1]
data    = hdu.data
flux    = data[:, 1] 

^ 错误追踪到 flux = data[:, 1] 这一行。

loglam  = data[:, 2]

这个问题可能是天文学家能回答的(或者,特别是那些熟悉来自 SDSS 的 .fits 文件的天文学家),但我也欢迎 numpy 和 python 用户的意见!

1 个回答

1

我刚刚从SDSS客服那里得到了以下回复:

把:

flux   = data[:,0]
loglam = data[:,1]

换成

flux   = data['flux']
loglam = data['loglam']

这样做是正确的方式来访问Numpy记录数组中的字段。

撰写回答