从fits文件读取数据时出现问题。通常我可以很好地从fits文件中读取数据,但是现在我有一些数据文件,这给了我一些问题。 当我试图读取该文件时,它应该包含三列和一个标题,我得到的只是一个类似于以下内容的数字表:
[[64 195 45…,0 0 0]]
现在这是整数,数据文件实际上应该包含三列,包含double和float,分为三列,如下所示:
[9819.3801,0.00000,0.00000]
[9820.0025,5.50764e-16,1.62396e-16]
[820.6248,-3.75781e-17,1.51864e-16]
我知道应该获取这些值,因为IDL中名为mrdfits的包可用于检索这些值。我尝试过查看fits文件包含的数据类型和格式,我的代码如下所示:
f=pyfits.open('filename')
dat =f[1].data
print f.info
>> No. Name Type Cards Dimensions Format
>> 0 PRIMARY PrimaryHDU 4 () uint8
>> 1 PRIMARY PrimaryHDU 576 (156288, 1) uint8
>> None
print pyfits.getval('filename','xtension',1)
>> BINTABLE
print dat
>> [[ 64 195 45 ..., 0 0 0]]
我的问题基本上是,有没有其他方法可以读入数据,这样它就可以得到三列非整数数据?我想知道是不是因为这个文件是一个BINTABLE文件,所以它的读取方式与通常不同?有没有其他方法可以加载这三列,而不是我现在所做的? 如果你需要我澄清一些问题,请你问,因为我已经尝试了很多事情,我不知道该走哪个方向。 任何帮助都将不胜感激!在
一旦你下载了PyFITS,你就可以开始了!要使用PyFITS并从FITS文件中获取信息,下面是一个使用三列的小示例。在
现在上面的例子有三列,标题是
J,H,K
。现在可以通过分别说J,H,K
来调用它们。在您在代码中所做的是打印
f.info
,这只会给您FITS文件的头信息和其他信息。它不会打印列和信息。在相关问题 更多 >
编程相关推荐