2016-04-06 11 views
-1

У меня есть этот скрипт, который создает файл с несколькими расширениями, но я хотел бы добавить заголовки из старых файлов в расширения.Скопировать заголовок в новый файл astropy

new_hdul = fits.HDUList() 
new_hdul.append(fits.PrimaryHDU(header=headermain)) 
new_hdul.append(fits.ImageHDU(nod1, header=header1, name='Chop1')) 
new_hdul.append(fits.ImageHDU(nod2, header=header2, name='Chop2')) 
new_hdul.append(fits.ImageHDU(diff1, name='Dif')) 

Теперь я попробовал:

headermain = fits.getheader(file,0) 

и

headermain = fits.open(file).header.copy() 

Но оба дают мне ошибки сказать, что

ValueError: header must be a Header object

Как я могу это исправить?

headermain = fits.getheader(file,0) 
print(headermain) 

см http://pastebin.com/JXki7EPV

ответ

1

Обычно получают заголовок в качестве объекта заголовка из файла не сложно. Вы astropy.io.fits.open() файл и извлечь заголовок из PrimaryHDU с:

from astropy.io import fits 

filename = 'test.fits' 

with fits.open(filename) as hdus: 
    headermain = hdus[0].header 

или getheader:

headermain = fits.getheader(filename) # Defaults to primary header! 

и результат будет fits.Header -объект, который можно использовать во время записи.

Но если ваш файл не является допустимым файлом FITS, могут возникнуть проблемы. Если это не поможет, вы можете отредактировать свой вопрос и показать результат любой из этих двух функций?

print(headermain) 
+0

Я пробовал оба метода, и оба дают ту же ошибку. Я вставил вывод headermain. – Coolcrab

+0

Nevermind, нашел проблему! – Coolcrab

+0

@Coolcrab - Если вы нашли ошибку самостоятельно, вы можете ответить на свой вопрос. :) – MSeifert

 Смежные вопросы

  • Нет связанных вопросов^_^