QDP#

class astropy.io.ascii.QDP(table_id=None, names=None, err_specs=None, sep=None)[源代码]#

基类:Basic

快速漂亮的绘图表。

例子::

! Initial comment line 1
! Initial comment line 2
READ TERR 1
READ SERR 3
! Table 0 comment
!a a(pos) a(neg) b be c d
53000.5   0.25  -0.5   1  1.5  3.5 2
54000.5   1.25  -1.5   2  2.5  4.5 3
NO NO NO NO NO
! Table 1 comment
!a a(pos) a(neg) b be c d
54000.5   2.25  -2.5   NO  3.5  5.5 5
55000.5   3.25  -3.5   4  4.5  6.5 nan

上面的输入表包含一些初始注释、错误命令,然后是两个表。此文件格式可以包含多个表,由整行 NO s.注释为感叹号,缺少的值为单个 NO 条目。分隔符通常是空格,很少是逗号。QDP格式区分数据列和错误列。上表包含命令:

READ TERR 1
READ SERR 3

这意味着在数据列1之后将有两个包含其正错误条和正错误条的错误列,然后是没有错误条的数据列2,然后是列3,然后是具有列3的对称错误的列,然后是剩余的数据列。

如下所述,表头高度不一致。可能包含列名的注释将被忽略,并且将调用列 col1col2 等,除非用户使用 names= 关键字参数,在传递列名时,请传递 仅数据列的名称,而不是错误列的名称。 错误信息将编码在表列的名称中。(例如 a_perra_nerr 对于列的正负误差 ab_err 柱的对称性误差 b 。)

将表写入此格式时,用户可以将 err_specs 关键字传递词典 {{'serr': [3], 'terr': [1, 2]}} ,这意味着数据列1和2将有两个附加列,每个列都有正误差和负误差,而数据列3将有一个有对称误差的附加列(就像 READ SERRREAD TERR 上述命令)

标题只是注释,不同任务分发的表在使用约定方面可能有很大差异。例如,由Swift-Gehrels任务分发的灯光曲线在一个标题条目中有额外的空间,这使得标签的数量与COLS的数量不一致。因此,我们忽略可能编码列名的注释,并将名称规范留给用户。

例子::

>               Extra space
>                   |
>                   v
>!     MJD       Err (pos)       Err(neg)        Rate            Error
>53000.123456   2.378e-05     -2.378472e-05     NO             0.212439

这些读取器和写入器类将努力了解哪些注释属于所有表,哪些属于每个表。一般评论将存储在 initial_comments 每个表的元。每个表的注释将存储在 comments Meta。

例子::

t = Table.read(example_qdp, format='ascii.qdp', table_id=1, names=['a', 'b', 'c', 'd'])

读取第二个表 (table_id=1 )在文件中 example.qdp 包含上面的表格。有四个列名但是有七个数据列,为什么?因为 READ SERRREAD TERR 命令显示有三个错误列。 t.meta['initial_comments'] 将包含文件中的前两个注释行,而 t.meta['comments'] 将包含 Table 1 comment

可以将该表写入另一个文件,并保留相同的信息,如下所示:

t.write(test_file, err_specs={'terr': [1], 'serr': [3]})

请注意, terrserr 命令被传递给编写器。

方法总结

read \(表)

阅读 table 并以由确定的格式返回结果 outputter 属性。

write \(表)

table 作为字符串列表。

方法文件

read(table)[源代码]#

阅读 table 并以由确定的格式返回结果 outputter 属性。

这个 table 参数是实例可以处理的任何字符串或对象 inputter . 对于基本输入程序类 table 可以是:

  • 文件名

  • 文件状对象

  • 所有标题和数据行的字符串(换行符分开)(必须至少有2行)

  • 字符串列表

参数:
table : strfile-like objectlistPYTHON:字符串,PYTHON:类似文件的对象,PYTHON:列表

输入表。

返回:
桌子Table

输出表

write(table)[源代码]#

table 作为字符串列表。

参数:
桌子Table

输入表格数据。

返回:
lines : listPython :列表

ASCII表对应的字符串列表