-1

複数の拡張子を持つファイルを作成するこのスクリプトがありますが、古いファイルのヘッダーを拡張子に追加したいと考えています。

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 オブジェクトでなければなりません

どうすればこれを修正できますか?

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

http://pastebin.com/JXki7EPVを参照

4

1 に答える 1

1

通常、ファイルから Header オブジェクトとしてヘッダーを取得することは複雑ではありません。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 ファイルでない場合、問題が発生する可能性があります。これが機能しない場合は、質問を編集して、これら 2 つの関数のいずれかの出力を表示できますか?

print(headermain)
于 2016-04-06T18:36:12.090 に答える