首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从这个文件中读取光谱数据?

如何从这个文件中读取光谱数据?
EN

Stack Overflow用户
提问于 2022-07-24 20:07:38
回答 1查看 33关注 0票数 1

我是SpecUtils的新用户,我只是尝试从FITS文件中读取光谱数据并绘制频谱,就像在SpecUtils的第一页上一样。

我的代码与SpecUtils的第一页相同,如下所示:

代码语言:javascript
复制
from astropy.io import fits
from astropy import units as u
import numpy as np
from matplotlib import pyplot as plt
from astropy.visualization import quantity_support
quantity_support()  # for getting units on the axes below  

f = fits.open('GIRAF.2021-02-14T01:00:34.723.fits')  
# The spectrum is in the second HDU of this file.
specdata = f[0].data 
f.close() 

from specutils import Spectrum1D
lamb = 10**specdata['loglam'] * u.AA 
flux = specdata['flux'] * 10**-17 * u.Unit('erg cm-2 s-1 AA-1') 
spec = Spectrum1D(spectral_axis=lamb, flux=flux)

但是,loglamflux似乎不是该文件中的可接受标识符。

代码语言:javascript
复制
IndexError                                Traceback (most recent call last)
Input In [22], in <cell line: 2>()
      1 from specutils import Spectrum1D
----> 2 lamb = 10**specdata['loglam'] * u.AA 
      3 flux = specdata['flux'] * 10**-17 * u.Unit('erg cm-2 s-1 AA-1') 
      4 spec = Spectrum1D(spectral_axis=lamb, flux=flux)

IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices

有没有人建议我如何找出我的文件中的标题,如何读取它们,然后最终绘制光谱数据?下面是到FITS文件的链接:链接

EN

回答 1

Stack Overflow用户

发布于 2022-07-30 04:35:56

在执行操作之前,尝试将变量specdata转换为numpy。

替换

specdata = f.data

specdata = np.array(f.data)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73101660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档