Astropy Cutout2D возвращает неправильную форму изображения - PullRequest
0 голосов
/ 09 июня 2019

Я пытаюсь разрезать изображение подгонки на 4 квартили.Размеры моего исходного изображения соответствует (4163, 3821).Поэтому я хочу файлы с 4 подгонками, со всей информацией из исходного файла подгонки, но с размерами изображения (2081.5,1910.5)

Я использовал это:

with fits.open("/home/andreas/Desktop/my_fileN.fits") as f:
   original_data=f[0].data
   original_header=f[0].header
   x_dim=original_data.shape[0]
   y_dim=original_data.shape[1]

deg_per_pixel = original_header["CDELT2"]
min_pixels = 20 * deg_per_pixel
min_pixels_arcsec = min_pixels * 3600
w = WCS(original_header)
w = w.celestial

position=((x_dim/4)+(0*x_dim/2)),((y_dim/4)+(0*y_dim/2))
size= ( (x_dim/2)*u.pixel, (y_dim/2)*u.pixel)

patch_data = Cutout2D(data=original_data,
  position=position,
  size=size,
  wcs=w,
  copy=True)

#create a new FITS HDU
patch_hdu = fits.PrimaryHDU(data=patch_data.data,
header=patch_data.wcs.to_header())

patch_hdu.header['BMAJ'] = original_header['BMAJ']
patch_hdu.header['BMIN'] = original_header['BMIN']
#
output_file_path = '/home/andreas/Desktop/' + str(0) + "_" + str(0) + ".fits"
patch_hdu.writeto(output_file_path, overwrite=True)

(0 впозиция для каждого квартиля - там был цикл for ..)

Таким образом, проблема в том, что я получаю файлы с 4 подгонками, но с неправильными размерами, теряя часть изображения.Я получаю следующие размеры: (2082, 1910), (1997, 1910), (2082, 1653), (1997, 1663).

Я также пытался поменять местами положение = (y, x) или размер= (y, x), но проблема остается.

Есть идеи, почему это происходит?И как это правильно решить?

...