如何将astropy表的标题和单位保存到ascifi中

2024-04-29 13:30:56 发布

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

我试图创建一个ascii表,其中包含标题、列的名称和单位以及一些数据,它应该如下所示:

 # ... Header Info ...
          Name | Morphology |         ra_u |        dec_u | ...
               | InNS+B+MOI | HH:MM:SS.SSS | ±DD:MM:SS:SSS| ...
 ==============| ========== | ============ | ============ | ...
 1_Cam_A       | I          | 04:32:01.845 | +53:54:39.03   ...
 10_Lac        | I          | 22:39:15.679 | +39:03:01.01   ... 
...

到目前为止我试过numpy.savetxt以及astropy.ascii.书写,纽比不会真正解决我的问题ascii.写入我也得到了一些类似但不完全正确的结论:

^{pr2}$

我用的是这个代码:

formato= {'Name':'%-23s','Morphology':'%-10s','ra_u':'%s','dec_u':'%s',...}
names=['Name','Morphology','ra_u','dec_u','Mag6']
units=['','InNS+B+MOI','HH:MM:SS.SSS','±DD:MM:SS:SSS',...]
ascii.write(data, output='pb.txt',format='fixed_width_two_line',position_char='=',delimiter=' | ',names=names, formats=formato)

所以如果我在我的终端上打印,除了页眉信息外,表格看起来是应该的,但是当我把它保存到一个文件中时,单位就会消失。。。在

有没有办法把它们包括在文件中?,或者我需要保存文件并稍后编辑它?在

p.D.:我也尝试过一些其他格式,比如IPAC forascii.写入,在这种情况下,问题是在标题中包含第四行,例如:“| null | |…”,我不知道如何删除它。。。在

谢谢你的帮助

联合国萨鲁多。在


Tags: 文件name标题nameshhascii单位ss
2条回答

除非表absolute是该格式,否则如果您想要一个包含更复杂的列元数据的ASCII表,请考虑使用ECSV格式。在

使用astropy.tableastropy.io.ascii以通用方式写出列的单位似乎不是一种简单的方法。您可能需要在https://github.com/astropy/astropy/issues上提出一个功能请求问题。在

但是,使用ascii.ipac格式有一个非常简单的解决方法:

tbl.write('test.txt', format='ascii.ipac')
with open('test.txt', 'r') as fh:
    output = []
    for ii, line in enumerate(fh):
        if ii not in (1,3):
            output.append(line)

with open('test.txt', 'w') as fh:
    fh.writelines(output)

它将以IPAC格式写出,然后删除第2行和第4行。在

相关问题 更多 >