我是这个领域的初学者。我有一个包含三列的文本文件:X,Y,(X,Y)处的强度。它们基本上是数组(1X10000),每个数组都通过 python 写在文本文件中。要在 python 中绘制数据集,我可以简单地使用 trisurf 来实现这一点。但为了进一步处理,我需要从中创建一个适合的图像。如何从此文本文件中制作 FITS 图像(而不是简单的 FITS 表)(最好通过 python 或 matlab)。
问问题
3439 次
2 回答
3
您应该能够主要使用 Astropy 来执行此操作。细节有点模糊,但您应该能够将文本文件读入 Astropy 表,例如:
>>> from astropy.table import Table
>>> table = Table.read('/path/to/text/file.txt', format='ascii')
您最终传递给的选项Table
可能在很大程度上取决于表格的格式。
然后,您需要将列转换为 Numpy 数组。您的问题陈述有点含糊,但如果您表中的坐标只是像素坐标,您应该能够执行以下操作:
>>> import numpy as np
>>> img = np.zeros((len(table), len(table))
>>> for x, y, intensity in table:
... img[x, y] = intensity
(我不得不怀疑 Numpy 是否有更巧妙的方式来做到这一点,但我不知道。)
然后将图像保存到 FITS 文件:
>>> from astropy.io import fits
>>> fits.writeto('filename.fits', img)
这是非常高级的过程。细节很大程度上取决于您的数据。
于 2015-03-06T15:54:53.873 回答
0
实际上它更容易,因为您不需要转换为 NumPy 数组阶段。
- 打开 ASCII
from astropy.table import Table
from astropy.io import fits
table = Table.read('filename.txt', format='ascii')
- 写入适合文件:
table.write('filename.fits', format='fits')
于 2017-04-24T08:36:12.220 回答