这是我的第一个问题,所以我会尽力解释一下。
我正在使用一些全天空拟合天文图像,这些图像位于银河坐标中(在AITOF投影中)。 我想将这些拟合图像转换为RA,Dec坐标,以便以适当的方式旋转图像(即,星系的平面不再是地图中心的水平,而是扭曲)。 / p>
有没有人知道怎么做?我试图以一种不那么优雅的方式来做,我在这里解释一下:
我打开fit文件,以及图像所在的hdu扩展名。 我读了标题的相应关键字 我创建了一个具有相同形状的数组,但每个元素现在都是几个值,这将是每个像素的坐标。 然后我将每个元素转换为我想要的新坐标(使用astropy.coordinates包),最后我必须移动每个元素以便在新坐标中对它们进行排序(首先它们按银河坐标排序,现在它们必须在天体中分类。)
到目前为止,我所使用的代码非常慢,我确信必须有更好的方法来完成我打算做的事情:
import numpy as np
import pyfits as pf
from astropy.coordinates import ICRS, Galactic
from astropy import units as u
file = pf.open('IC443.fits')
crpixx = file[0].header["CRPIX1"] # X-axis reference pixel number
crpixy = file[0].header["CRPIX2"] # Y-axis reference pixel number
crvalx = file[0].header["CRVAL1"] # X-axis reference pixel value in coordinates (galactic longitude in this case)
crvaly = file[0].header["CRVAL2"] # Y-axis reference pixel value in coordinates (galactic latitude in this case)
stepx = file[0].header["CDELT1"] # X-axis increment per pixel
stepy = file[0].header["CDELT2"] # Y-axis increment per pixel
numpixelsx = file[0].header["NAXIS1"] # number of pixels in X axis
numpixelsy = file[0].header["NAXIS2"] # number of pixels in Y axis
tab = np.zeros([numpixelsx,numpixelsy,2]) # array of zeros with the same
# number of elements than the image, where each element is now a copuple
# of two values
def assign_coords(i,j):
# function to calculate coordinate correspondent to any pixel
coord_i = (-crpix1+i)*step1+crval1
coord_j = (-crpix2+j)*step2 + crval2
return coord_i, coord_j
for k, z in product(np.arange(numpixelsx), np.arange(numpixelsy)):
tab[k][z][0], tab[k][z][1] = assign_coords(k,z)
tab_temp_x = Galactic(tab[k][z][0], tab[k][z][1], unit=(u.degree, u.degree)).fk5.ra.value
tab_temp_y = Galactic(tab[k][z][0], tab[k][z][1], unit=(u.degree, u.degree)).fk5.dec.value
tab[k][z][0] = tab_temp_x # X-coord value in the new coordinates
tab[k][z][1] = tab_temp_y # Y-coord value in the new coordinates
之后,我不知道如何以正确的方式重新排序数组......
非常感谢你们!
答案 0 :(得分:0)
这不是一个pyfits问题。 您必须执行转换。 Numpy可以帮到你。
有几个标准(1932,1958)
请参阅http://scienceworld.wolfram.com/astronomy/GalacticCoordinates.html