チェックボックスアイコン 手順9: 背景光引き

背景光を引きます。 天体fluxが来ていないファイバーをいくつか選んで、medianで重ね合わせて背景光のスペクトルを作り、天体フレームから引きます。 点源や一部のファイバーにしか天体fluxが来ていないフレームであれば、背景光ファイバーを指定するのは容易でしょう。 天体が広がった天体で、全ファイバーに天体fluxが来ている場合は、観測時に天体フレームとは別に、スカイフレームを撮っておく必要があるかもしれません。 標準星など積分時間が極めて短い場合は、この処理を行う必要はないでしょう。

背景光として使うファイバーを指定するときに、天体が2次元ファイバーアレイ上でどの位置にあるか確認したい場合があります。 そこで、以下のソフトウェアを使って、とある波長における再合成画像を作ることができます。

#第1引数が入力ファイル名、第2と第3引数が切り出す波長範囲 (x座標) の始点と終点。
kools_ifu_red.fiber_make_image(['kls00040992-gain.ms.fits',656,660])
#この例だと"kls00040992-gain.ms-image-656-660.fits"という名前のファイルができ、ds9で開くと以下のような画像が現れる。
#画像のアスペクト比が実際より縦長になることに注意。

画像再合成の例

….ms.fitsのファイバーID (y座標) と、上記の2次元再合成画像のファイバーの対応が知りたいことがあると思います。 例えば、2次元画像上で最も明るいファイバーは、….ms.fitsでどのファイバーに対応するか、などといった場合です。 その対応を回答するソフトウェアがあります。

#2次元再合成画像のxとy座標を入れると、ms形式のy座標を返すプログラム。
#第1引数が2次元再合成画像上のx座標、第2引数がy座標。
kools_ifu_red.fiber_pos_to_id([13,13])
#返り値は"position(x, y) = (13, 13) ID = 37"。
#これは2次元再合成画像で(x, y) = (13, 13)のファイバーは、ms形式でy = 37に対応することを表す。

#ms形式のy座標を入力すると、2次元再合成画像のxとy座標を返すプログラム。
#第1引数はms形式でのy座標。
kools_ifu_red.fiber_id_to_pos([64])
#返り値は"ID = 64 position(x, y) = (20, 15)"。
#これはms形式でy = 64のファイバーは、2次元再合成画像上で座標が(x, y) = (20, 15)のファイバーに対応することを表す。

以下が背景光引き処理です。 指定したファイバーの、波長ごとのmedian強度を背景光強度とし、それを全ファイバーのスペクトルから引きます。

#第1引数が入力ファイル名、第2引数が出力ファイル名。
#第3引数が背景光ファイバーの指定で、….ms.fitsファイルにおけるy座標をリストで入力する。
#背景光スペクトルをmedianで作るので、10ファイバー程度指定する。
kools_ifu_red.subtract_sky(["kls00040992-gain.ms.fits","kls00040992-sky.fits",[17,18,19,20,21,22,95,96,97,98,99,100,101]])

#できたfitsファイルをds9で開き、背景光がきれいに引けたことを確認する。

#背景光引きを行う各フレームに対して背景光引きを行う。