我遇到了一些问题,我找不到任何问题的答案。
我试图在python中创建一个datacube,其中三个轴是andThen(Single.just(player))
,即2个天空位置和红色移位。
我认为我生成多维数据集的代码有效,我将多维数据集定义为:
(RA,DEC,z)
其中cube = np.zeros([int(size_x),int(size_y),int(Nchannel)])
和x
是像素坐标,红色切片在通道中切片。有这个立方体,我用一些线条的强度填充它。最后,我将我的.fits标题定义如下:
y
这就是问题,我的cube.fits在"坏"方向。当我用ds9打开它时,z轴不是红移z ... 我怀疑标题不好,但在哪里可以在fit标题中指定轴? 干杯
答案 0 :(得分:2)
轴确实是反转的,FITS使用Fortran约定(列主要顺序),而Python / Numpy使用C约定(行主要顺序)。 http://docs.astropy.org/en/latest/io/fits/appendix/faq.html#what-convention-does-astropy-use-for-indexing-such-as-of-image-coordinates
因此,对于您的多维数据集,您需要将轴定义为(z, y, x)
:
In [1]: import numpy as np
In [2]: from astropy.io import fits
In [3]: fits.ImageHDU(data=np.zeros((5,4,3))).header
Out[3]:
XTENSION= 'IMAGE ' / Image extension
BITPIX = -64 / array data type
NAXIS = 3 / number of array dimensions
NAXIS1 = 3
NAXIS2 = 4
NAXIS3 = 5
PCOUNT = 0 / number of parameters
GCOUNT = 1 / number of groups