я хочу
- прочитать в файле соответствия
- изменить некоторые заголовки
- сохраните его с изменениями в новый файл подгонки.
Пока я думаю, что добился этого, однако в новом файле подгонок при использовании hdu.info () указано «Нет». Я не понимаю, что это значит, почему это там и плохо ли?
Я вставлю свой код ниже со связанными выходными данными:
from astropy.io import fits
hdulist = fits.open('2D_comb_ff_wavcal_red_sci_2.fits')
hdu = hdulist[0]
hdulist.info()
Filename: 2D_comb_ff_wavcal_red_sci_2.fits No. Name Ver Type Cards Dimensions Format 0 PRIMARY 1 PrimaryHDU 287 (1024, 1024) float32
print 'CRVAL1 then = ', hdu.header['CRVAL1']
print 'CRVAL2 then = ', hdu.header['CRVAL2']
CRVAL1 then = 14975.1660156 CRVAL2 then = 1.0
CRVAL1_orig = hdu.header['CRVAL1']
CRVAL2_orig = hdu.header['CRVAL2']
hdu.header['CRVAL1'] = CRVAL2_orig
hdu.header['CRVAL2'] = CRVAL1_orig
print 'CRVAL1 now = ', hdu.header['CRVAL1']
print 'CRVAL2 now = ', hdu.header['CRVAL2']
CRVAL1 now = 1.0 CRVAL2 now = 14975.1660156
hdu.writeto('newheader.fits', overwrite=True)
new = fits.open('newheader.fits')
print new.info()
Filename: newheader.fits No. Name Ver Type Cards Dimensions Format 0 PRIMARY 1 PrimaryHDU 287 (1024, 1024) float32 None
Заголовки обновились (я проверил), но почему здесь написано «Нет»? Является ли hdu.writeto () неправильным? Я пробовал читать о flush (), но это меня смутило.
Спасибо
flush()
или дажеclose()
. Если вы не понимаете, для чего они нужны, то, вероятно, вы не используете библиотеку на том уровне, на котором они вам понадобятся в первую очередь. Возможно, вам будет более поучительно распечатать сам заголовок, поскольку.info()
сам по себе не так информативен. - person Iguananaut   schedule 12.09.2018