編集配合ヘッダ

この例では、以下のコマンドを用いてFITSヘッダの値を編集する方法を説明します。 astropy.io.fits それがそうです。

By: Adrian Price-Whelan

ライセンス:BSD

from astropy.io import fits

FITSファイルをダウンロード:

from astropy.utils.data import get_pkg_data_filename

fits_file = get_pkg_data_filename('tutorials/FITS-Header/input_file.fits')

FITSファイルの内容の表示

出て:

Filename: /home/bk/.astropy/cache/download/url/519010d87325a22575dc1d16f3a05d26/contents
No.    Name      Ver    Type      Cards   Dimensions   Format
  0  PRIMARY       1 PrimaryHDU       8   (100, 100)   float64
  1                1 ImageHDU         8   (128, 128)   float64

2つの拡張されたヘッダを表示します。

print("Before modifications:")
print()
print("Extension 0:")
print(repr(fits.getheader(fits_file, 0)))
print()
print("Extension 1:")
print(repr(fits.getheader(fits_file, 1)))

出て:

Before modifications:

Extension 0:
SIMPLE  =                    T / conforms to FITS standard
BITPIX  =                  -64 / array data type
NAXIS   =                    2 / number of array dimensions
NAXIS1  =                  100
NAXIS2  =                  100
EXTEND  =                    T
OBJECT  = 'CAT     '
ANEWKEY = 'some value'

Extension 1:
XTENSION= 'IMAGE   '           / Image extension
BITPIX  =                  -64 / array data type
NAXIS   =                    2 / number of array dimensions
NAXIS1  =                  128
NAXIS2  =                  128
PCOUNT  =                    0 / number of parameters
GCOUNT  =                    1 / number of groups
OBJECT  = 'CAT     '

astropy.io.fits FITSファイルを読み込み,それとインタラクションするためにオブジェクト指向インタフェースを提供しているが,小さな操作(本例のような)に対しては使用している. convenience functions それがそうです。

拡張0のヘッダ中の単一のヘッダ値を編集する場合は、使用してください setval() 機能します。例えば、Objectキーワードを‘m 31’に設定する。

fits.setval(fits_file, 'OBJECT', value='M31')

追加のパラメータがない場合、これは拡張0のヘッダを修正するが、使用することができる。 ext キーワードパラメータ。例えば、内線1を指定することができます。

fits.setval(fits_file, 'OBJECT', value='M31', ext=1)

これは、新しいキーワード対(FITS行の“card”)を作成するためにも使用することができる。

fits.setval(fits_file, 'ANEWKEY', value='some value')

同様に、これは一度の修正に有用であるが、同一ファイル中の複数のヘッダを編集するような操作効率が低い可能性があるからである。 setval() 呼び出しごとにファイル全体をロードします。複数回の修正を行うためには、ファイルを1回ロードすることが望ましい:

with fits.open(fits_file, 'update') as f:
    for hdu in f:
        hdu.header['OBJECT'] = 'CAT'

print("After modifications:")
print()
print("Extension 0:")
print(repr(fits.getheader(fits_file, 0)))
print()
print("Extension 1:")
print(repr(fits.getheader(fits_file, 1)))

出て:

After modifications:

Extension 0:
SIMPLE  =                    T / conforms to FITS standard
BITPIX  =                  -64 / array data type
NAXIS   =                    2 / number of array dimensions
NAXIS1  =                  100
NAXIS2  =                  100
EXTEND  =                    T
OBJECT  = 'CAT     '
ANEWKEY = 'some value'

Extension 1:
XTENSION= 'IMAGE   '           / Image extension
BITPIX  =                  -64 / array data type
NAXIS   =                    2 / number of array dimensions
NAXIS1  =                  128
NAXIS2  =                  128
PCOUNT  =                    0 / number of parameters
GCOUNT  =                    1 / number of groups
OBJECT  = 'CAT     '

スクリプトの総実行時間: (0分0.027秒)

Gallery generated by Sphinx-Gallery