2017-09-27 4 views
0

定義されていません。 彼らは次のとおりです。FITSのヘッダがastropyでファイルを印刷:NameError:名「ヘッダーを」私は、私はこのウェブサイト上の指示に従ってい<a href="http://docs.astropy.org/en/stable/io/fits/" rel="nofollow noreferrer">http://docs.astropy.org/en/stable/io/fits/</a></p> <p>経由astropyを通じて使用することを学ぶための操作をFITSしようとしています

"To see the entire header as it appears in the FITS file (with the END card and padding stripped), simply enter the header object by itself, or print(repr(header)) "

しかし、私はheaderを入力すると、私は次のエラーを取得する:

NameError: name 'header' is not defined 

私はprint(header)またはprint(repr(header))コマンドを入れたときに、私は同じエラーを取得します。

私の質問は、「ヘッダー」コマンドが機能しなかった理由です。

何とかそれを定義すると思いますか?

マイコード:

from astropy.io import fits 
hdulist = fits.open('test1.fits') 
hdulist.info() 
header 

私はキャノピーを経由してjupyterノートブックを使用しています。

+0

glibではなく、Astropyを使うにはPythonを少しは学ばなければなりません。つまり、これらのドキュメントを読むと、例では 'prihdr'という名前の変数を使用しないために混乱しますが、' header'という名前の変数でヘッダーを使用してヘッダーを印刷する方法については、読者が'header'はジェネリックヘッダを参照する変数です。 Pythonの構文に精通している場合、これはかなり明確ですが、初心者のために混乱する可能性があり、変更する必要があります。 – Iguananaut

+0

しかし、Pythonインタプリタを起動して、 'asdf'だけを入力してみてください。Pythonで未定義の変数を使用しようとすると、 'NameError'が得られます。 Pythonはあなたが定義していない場合、 'header 'が何を意味するのかを知らない。 – Iguananaut

+0

はい、ドキュメントは紛らわしく、 'header'の代わりに' prihdr'を使うべきです。 – saimn

答えて

2

My question is why is it that the "header" command did not work?

Am I supposed to define it somehow?

要約:コマンドではないため、定義する必要はありません。実際には属性なので、hdulistで検索する必要があります。

hdulisthdu Sが含まれており、各hduので、使用する最初のHDUのヘッダにアクセスするには、dataheader含まれています。私は最初のHDU(Pythonの用途が欲しかったので

print(repr(hdulist[0].header)) 

[0]ですゼロベースのインデックス付け)、.headerはこのHDUのヘッダー属性にアクセスします。 HDUsが存在しているどのように多くの

header = hdulist[0].header # define a variable named "header" storing the header of the first HDU 
print(repr(header)) # now it's defined and you can print it. 

ので、hdulist.info()によって示されるべきである:私はあなたががそれを定義するは必要ありませんが、あなたヘッダと呼ばれる変数を定義することができたにもかかわらず

印刷または保管したいものを決めることができます。それは自動的にファイルをクローズするように、あなたは常に(でもエラーの場合)コンテキストマネージャとしてopenを使用する必要があります

注:

from astropy.io import fits 

with fits.open('test1.fits') as hdulist: # this is like the "hdulist = fits.open('test1.fits')" 
    hdulist.info() 
    for hdu in hdulist: 
     print(repr(hdu.header)) 
# After leaving the "with" the file closes. 

また、この例は、あなたがオーバー行くことforループを使用する方法を示しHDUListのすべてのHDU

関連する問題

 関連する問題