如何从ascii文件(天文光谱)编写拟合文件?

问题描述 投票:0回答:1

我过去曾使用 iraf 来执行此操作,当像素比例不变时我没有问题(尽管我必须手动编辑任务参数才能使其正确工作)。现在我正在处理一些我需要的适合格式的模型光谱,并且“rspectex”任务不会自动将 ascii 文件的第一列转换为真实波长。

我也尝试过使用astropy和specutils,但同样,色散不正确。这不会太复杂,但我已经没有想法了。你以前做过吗,或者有什么想法吗?

谢谢!

data = np.loadtxt('spectrum.ascii')

hdu = fits.PrimaryHDU(data)

hdr = fits.Header()
hdr['SIMPLE'] = True
hdr['OBJECT'] = 'object'
hdr['COMMENT'] = 'comment'

hdu.header = hdr
hdu.writeto('spectrum.fits')
astropy astronomy fits iraf specutils
1个回答
0
投票

通常,如果这是一个相对简单的输入文件,我将使用天文表来完成此操作。所以,它会像下面这样:

from astropy.table import Table    

# The names keyword is only needed if you want to change the column names.
spec = Table.read('spectrum.ascii',format='ascii',names=['wave','flux','err'])

# Add header comments
spec.meta['OBJECT']='object'
spec.meta['COMMENT']='comment'

# Save as FITS file
spec.write('spectrum.fits')

有一些注意事项:此方法不会在第 0 个扩展标头中写入对象名称和注释,仅在第一个扩展标头中写入。不过,我确信有办法做到这一点。另一件需要调整的事情是读取 ascii 文件的格式。您可以查看Table.read文档了解详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.