Я ищу способ найти координаты пикселей на моем изображении FITS, которые соответствуют положениям объекта в градусах по ra и dec после передискретизации. Это было бы просто, если бы я не передискретизировал, но мне нужно. Учитывая неизмененное изображение FITS, я могу:
from astropy.wcs import WCS
ra, dec = (43.603, 31.029)
w = WCS('myimage.fits')
x, y = w.all_world2pix(ra, dec, 1) #this gives me the pixel coordinates of the object at (ra, dec) position
Однако, когда я передискретизирую его и ТОГДА пытаюсь найти координаты пикселей, это явно неточно, поскольку (ra, dec) больше не точен для передискретизированного изображения. Так как я передискретизирую 5x5, я попытался просто умножить свой x, y
выше на 5. Но когда я увеличиваю масштаб в этой точке в ds9, он показывает объект не по центру, поэтому я не думаю, что это работает. Ниже приведена моя часть кода с передискретизацией, поскольку это может помочь увидеть это. Здесь data
- это просто двумерный массив данных, содержащихся в моем исходном изображении FITS.
from astropy.nddata import Cutout2D
import numpy as np
from scipy import interpolate
def oversample(data_set, N):
size = 120 #pixel size of my box cutout
geom_ctr = (np.shape(data_set)[0]//2, np.shape(data_set)[1]//2)
cutout = Cutout2D(data_set, geom_ctr, size).data
Y, X = np.shape(cutout)
x = np.linspace(0, 0.5, X)
y = np.linspace(0, 0.5, Y)
f = interpolate.interp2d(x, y, cutout, kind='cubic')
Xnew = np.linspace(0, 0.5, X*N)
Ynew = np.linspace(0, 0.5, Y*N)
new_data = f(Xnew, Ynew)
return new_data
resampled_data = oversample(data, 5)
Если у кого-то есть идеи, как я могу восстановить точные координаты пикселей после передискретизации, это было бы здорово. Спасибо!