从FITS文件头生成Ascii表

2024-05-15 21:49:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我想学习如何从FITS文件头获取信息并将其传输到ascii表。例如,这是我获取信息的方式:

import pyfits
a = pyfits.open('data.fits')
header = a[0].header # Which should return something like this (It is  BinHDUlist)
SIMPLE  =                T / conforms to FITS standards                    
                               / institution responsible for creating this file 
TELESCOP= 'Kepler  '           / telescope                                      
INSTRUME= 'Kepler Photometer'  / detector type                                  
OBJECT  = 'KIC 8631743'        / string version of KEPLERID                     
RA_OBJ  =           294.466516 / [deg] right ascension                          
DEC_OBJ =            44.751131 / [deg] declination                              

如何创建一个包含RA_OBJ和DEC_OBJ的ASCII表?在

编辑:我想创建一个.dat文件,其中包含两列(RA和DEC)的标题。下面是我正在尝试的一个例子:

^{pr2}$

我想让它写一个.dat文件,包含如下内容:

RA    DEC
###   ###
...   ...
...   ...
...   ...

相反,我的代码只是覆盖前面文件的键。有什么想法吗?在


Tags: 文件importobj方式asciiopenthisdec
1条回答
网友
1楼 · 发布于 2024-05-15 21:49:46

我想你可能会受益于更仔细地阅读the pyfits documentation。header属性是一个pyfits.header.Header对象,它是一个类似字典的对象。所以你可以做一些类似的事情:

import pyfits

keys = ['SIMPLE', 'TELESCOP', 'INSTRUME', 'OBJECTS', 'RA_OBJ', 'DEV_OBJ']

hdulist = pyfits.open("data.fits")
header = hdulist[0].header
for k in keys:
    print k, "=", header[k]

您可以添加更复杂的输出,将结果字符串放入变量中,检查是否缺少键等

编辑

下面是如何将其与asciitablenumpy相结合:

^{pr2}$

相关问题 更多 >