Pyfits重新排序轴

时间:2016-11-28 19:49:57

标签: python numpy pyfits

我遇到了问题,有python,pyfits和numpy。我用通常的

打开一个拟合文件
class FileLock {

private static File lock = new File("jar-running.txt");

public static boolean exists()
{
    return lock.exists();
}

public static void createLockFile()
{
  try {

    lock.createNewFile();

} catch (IOException e) {

    // the file already exists
    System.exit(0);}
}

public static void deleteLockFile()
{
    if(lock.exists()) lock.delete();
}

致电

file = pyfits.open('file.fits', memap = True)

它告诉我,包含的数据集具有形状(2,1024,1024,546):

file.info()

然后,我继续通过

将这个数组导入一个numpy数组
No.    Name         Type      Cards   Dimensions   Format
0    PRIMARY     PrimaryHDU      12   (2, 1024, 1024, 546)   float32

当我想要显示这个数组的形状时,使用

data = file[0].data

它显示形状

print (data.shape)

我不知道,为什么会这样做。重要的是要知道哪个维属于哪个轴。

任何帮助表示赞赏! 非常感谢你。

1 个答案:

答案 0 :(得分:1)

请参阅http://docs.astropy.org/en/stable/io/fits/appendix/faq.html#what-convention-does-astropy-use-for-indexing-such-as-of-image-coordinates

events: [ { id: '233', title: 'Tandem Jump', qty: '4', start: '2016-11-29 00:00:00', end: '2016-11-29 00:00:00' }, { id: '239', title: 'Tandem Jump', qty: '2', start: '2016-11-30 00:00:00', end: '2016-11-30 00:00:00' }, ] 关键字中排序的FITS轴(如.info())方法所示,采用FORTRAN顺序。 Numpy,它基于Python,而后者又基于C使用C有序轴。

(顺便说一句,请注意不推荐使用独立的pyfits模块,而应使用NAXISn代替。)