Я пытаюсь преобразовать некоторые RA и De c для объектов, которые у меня есть в изображении .fits, в значения пикселей, но каждый раз, когда я запускаю WCS.all_world в pix, я получаю следующую ошибку:
NoConvergence: 'WCS.all_world2pix' failed to converge to the requested accuracy.
After 2 iterations, the solution is diverging at least for one input point.
Как мне избежать этого? Я пытался изменить допуск, но, похоже, ничего не помогло.
Это код, который я использую:
coordinates_ID = zip(ID, RA, Dec)
pixRA = []
pixDec = []
#read in the fits file
insciim = fits.open('/home/myname/image.fits')
#working from a copy to avoid overwriting the images
sciim = np.copy(insciim)
#getting the header from the fits file
header = sciim[0].header
header["CTYPE1"] = "RA---TAN-SIP"
header["CTYPE2"] = "DEC--TAN-SIP"
w = wcs.WCS(insciim[0].header)
for i in coordinates_ID:
pixra, pixdec = w.all_world2pix(i[1], i[2], 1)
pixRA.append(pixra)
pixDec.append(pixdec)
test = (pixRA, pixDec)
size = (200, 200)
cut = Cutout2D(sciim[0].data, test, size).data
plt.imshow(cut, origin='lower', cmap='viridis')
plt.colorbar()
img_file = "/home/myname/test.fits"
img_hdu = fits.PrimaryHDU(cut, header=sciimheader)
img_hdu.writeto(img_file, overwrite=True)
Я должен заявить, что адрес_ координаты - это 3 сжатых таблицы (например, три списка). ) координат объектов на моем изображении и соответствующих им имен. Может кто-нибудь определить, что может заставить меня получить ошибку, которую я получаю?