Я хочу создать мозаику, используя различные HDU внутри уникального файла .fits, как вы можете это сделать, используя SAOimage DS9 и выбрав «Файл > Открыть как > Mosaic WCS». Когда я искал, как это сделать с помощью астропии, я столкнулся с репроектом и попытался следовать руководству по адресу https://reproject.readthedocs.io/en/stable/mosaicking.html. Тем не менее, я не могу заставить его работать на меня.
У меня есть объект HDUList, когда я открываю файл, поэтому я попытался следовать документации «reproject_and_coadd» (https://reproject.readthedocs.io/en/stable/api/reproject.mosaicking.reproject_and_coadd.html#reproject.mosaicking.reproject_and_coadd) и использовать некоторые другие параметры, которые не использовались в учебнике. Это код, который я пытался использовать:
f = fits.open(input_file, memmap=True)
print(f)
array, footprint = reproject_and_coadd(input_data=f, output_projection=f[5].header, hdu_in=f[0].header, reproject_function=reproject_interp)
f.close()
Вывод для f представляет собой следующий список (когда я набираю (f), я получаю сообщение о том, что это HDUList):
[<astropy.io.fits.hdu.image.PrimaryHDU object at 0x7fdcc468aa50>, <astropy.io.fits.hdu.compressed.CompImageHDU object at 0x7fdcc462aa10>, <astropy.io.fits.hdu.compressed.CompImageHDU object at 0x7fdcc4632690>, <astropy.io.fits.hdu.compressed.CompImageHDU object at 0x7fdcc462a110>, <astropy.io.fits.hdu.compressed.CompImageHDU object at 0x7fdcc4638310>, <astropy.io.fits.hdu.compressed.CompImageHDU object at 0x7fdcc463bf50>, <astropy.io.fits.hdu.compressed.CompImageHDU object at 0x7fdcc4642b90>, <astropy.io.fits.hdu.compressed.CompImageHDU object at 0x7fdcc4649810>, <astropy.io.fits.hdu.compressed.CompImageHDU object at 0x7fdcc464e4d0>, <astropy.io.fits.hdu.compressed.CompImageHDU object at 0x7fdcc4655150>]
И ошибка, которую я сейчас получаю:
WARNING: FITSFixedWarning: The WCS transformation has more axes (2) than the image it is associated with (0) [astropy.wcs.wcs]
Traceback (most recent call last):
File "/home/oi/border.py", line 74, in make_pieces
array, footprint = reproject_and_coadd(input_data=f[1:9], output_projection=f[0].header, hdu_in=f[0].header, reproject_function=reproject_interp)
File "/home/oi/anaconda3/lib/python3.7/site-packages/reproject/mosaicking/coadd.py", line 91, in reproject_and_coadd
shape_out=shape_out)
File "/home/oi/anaconda3/lib/python3.7/site-packages/reproject/utils.py", line 98, in parse_output_projection
raise ValueError("The shape of the output image should not be an "
ValueError: The shape of the output image should not be an empty tuple
Буду очень рад, если кто-нибудь сможет мне помочь :)
Кроме того, если возможно, есть ли способ открыть только два составных изображения и сделать из них мозаику? Таким образом, вместо того, чтобы открывать все 9 плиток одновременно, просто получите плитку 11 и плитку 12. Я новичок в том, чтобы возиться с .fits, так что это тоже было бы здорово знать.
Спасибо!
reproject_and_coadd
, еслиinput_file
является файлом FITS, аргументhdu_in
должен быть индексом или EXTNAME используемого HDU, а не заголовком. - person Iguananaut   schedule 13.06.2020