访问存储在MEF扩展名中的数据

FITS文件通常包含大量多维数据和表格。这个例子打开一个FITS文件,其中包含来自Chandra的HETG-s仪器的信息。

示例使用 astropy.utils.data 要下载多扩展FITS(MEF)文件, astropy.io.fits 调查头部,以及 astropy.table.Table 去探索数据。

By: Lia Corrales, Adrian Price-Whelan, and Kelle Cruz

许可证:BSD

使用 astropy.utils.data 子包下载本例中使用的FITS文件。同时导入 Tableastropy.table 分装和 astropy.io.fits

from astropy.utils.data import get_pkg_data_filename
from astropy.table import Table
from astropy.io import fits

下载FITS文件

event_filename = get_pkg_data_filename('tutorials/FITS-tables/chandra_events.fits')

显示有关FITS文件内容的信息。

fits.info(event_filename)
Filename: /home/bk/.astropy/cache/download/url/333246bccb141ea3b4e86c49e45bf8d6/contents
No.    Name      Ver    Type      Cards   Dimensions   Format
  0  PRIMARY       1 PrimaryHDU      30   ()
  1  EVENTS        1 BinTableHDU    890   483964R x 19C   [1D, 1I, 1I, 1J, 1I, 1I, 1I, 1I, 1E, 1E, 1E, 1E, 1J, 1J, 1E, 1J, 1I, 1I, 32X]
  2  GTI           3 BinTableHDU     28   1R x 2C   [1D, 1D]
  3  GTI           2 BinTableHDU     28   1R x 2C   [1D, 1D]
  4  GTI           1 BinTableHDU     28   1R x 2C   [1D, 1D]
  5  GTI           0 BinTableHDU     28   1R x 2C   [1D, 1D]
  6  GTI           6 BinTableHDU     28   1R x 2C   [1D, 1D]

扩展名1,EVENTS,是一个包含每个X射线光子击中钱德拉的HETG-s探测器的信息的表格。

使用 Table 阅读表格

events = Table.read(event_filename, hdu=1)

打印事件表的列名。

print(events.columns)
<TableColumns names=('time','ccd_id','node_id','expno','chipx','chipy','tdetx','tdety','detx','dety','x','y','pha','pha_ro','energy','pi','fltgrade','grade','status')>

如果列包含单位信息,它将具有 astropy.units 对象。

print(events['energy'].unit)
eV

打印存储在能量列中的数据。

print(events['energy'])
  energy
    eV
---------
13874.715
2621.1938
12119.018
3253.0364
14214.382
1952.7239
3267.5334
3817.0366
2252.7295
6154.1094
      ...
4819.8286
12536.866
2599.5652
15535.768
6653.0815
14362.482
14653.954
 6652.827
 9672.882
1875.9359
Length = 483964 rows

Total running time of the script: (0分55.586秒)

Gallery generated by Sphinx-Gallery