1-3. sngredを動かす(9)


1-3-9. フラットフィールディングをする。

*************************************
*********** Flat Fielding ***********
*************************************
 新カセ分光器はたわみの度合が大きく、一般に天体を撮ったときとフラットフィールド(ドームフラット)を撮ったときではスリット長方向に像がずれている。 実際観測してみれば分かることだが、ひどいときはCCD上で5ピクセル以上像がずれていることもある。 さらに具合いの悪いことに新カセ分光器のスリット開口は一様ではない。 これらのことから単純に天体フレーム÷フラットでフラットフィールド終了とするわけにはいかず、光学系によるケラレのパターンは天体観測時を再現するように人為的にずらして割らなければならない。
 そこで、ここではスリットの汚れのパターンを媒介として天体フレームとフラットフィールドフレーム(光学系によるケラレ成分)の位置合わせを行うという手法を用いている。

>>>>> Which do you use comparison frames or
>>>>> object frames to detect slit pattern ?
    Comparison ==> input 'c'
    Object   ==> input 'o'

いきなり上の様なことを聞いてくるが、これはスリットの汚れパターンの検出のためにコンパリソンのフレームを使うのか、天体フレームを直に使うのかを聞いているのである。 普通は天体フレームはカウントが十分なかったり、星や天体や宇宙線などがスリットの汚れをわかりにくくしてしまっているので用いない方がよい。 天体フレームを用いるのは、観測時にコンパリソンを撮るのをさぼったりして天体フレーム取得時に近い条件で撮ったコンパリソンがない場合である。 いわば最後の手段と言うべきものである。 従って、通常の場合はここは<c>と答える。

図3. フラットフィールディングのためにコンパリソンのフレームでスリットのよごれの位置を検出する。 よごれの位置をマークしたところ。
図4. フラットフィールドフレームで図3.と同じよごれをマークする。 コンパリソンとフラットではスリットへの光の当たり方が異なるのでグローバルなパターンは違って見える。

するとTektroウィンドウにコンパリソンの分散方向に沿った断面がグラフとして表示される(図3)。 コンソールウィンドウには、

>>>>> Select line no. to be used to slit pattern detection
  shift-x: expand x coordinate
  shift-c: value of cursor position
  return: exit to next step

というどこかで見たようなメッセージが表示されているはずである。 言うまでもなく既にIRAFのグラフモードに入っている。 できるだけカウントのある、しかしサチっていない輝線の位置をカーソルを使って読みとる。 カーソルをお目当ての輝線の位置に持っていってSHIFT+cで読める。 読んだらリターンキーでグラフモードから抜ける。
 次に

>>>>> Input line no. to be identified :

と聞いてくるので、先ほど読みとった輝線位置(X座標、整数値)を入力する。

Identify the slit pattern by 'ident' task...

今度は一枚一枚のコンパリソンフレームに対して今入力した位置のスリット長方向の断面がTektroウィンドウにグラフで示される。 このときは実はIRAFのidentifyというコマンドに入っている。 グラフ上ではっきり分かるスリットの汚れの位置付近にカーソルを持っていき、<m>キーを押すとグラフにマークがされる。 コンソールウィンドウには、

x-pixel x-coordinate (  INDEF) :

というような表示がされるが、ここでリターンキーを押すと検出が終了である。<q>キーを押してidentifyコマンドから抜けでる。 その際、

Write feature data to the database ? (yes)

と聞いてくるので検出がうまくいったなら<y>と答える。 自分の検出結果に自信が持てないようなときは絶対に<n>と答えて頂きたい。 ここをいい加減にやるとフラットフィールディングが無茶苦茶になる。 慎重に。 スリットの汚れは一ヶ所検出すればそれでよい。 複数検出しても処理には反映されない(精度が上がるということはない)。 ただし、どの汚れを検出したのかは覚えておかなくてはならない。 これから複数のコンパリソンフレームとフラットフィールドフレームに対して検出を行うが、そのとき全く違う汚れを検出していたのではソフトは正しい動作をしない。
 さて、検出が終了しidentifyコマンドから抜けると

>>>>> OK? <y/n/(skip)s>

と確認してくる。 検出がうまくいったなら<y>、やり直すなら<n>、なんらかの理由でこのフレームを使いたくなければ<s>を入力する。<s>と答えたらそのフレームは処理からはずされてしまう。 ときとして分散方向にも大きく像がずれていて、コンパリソンの輝線位置が変わってしまっていることがあるが、このようなときはidentifyで表示されるスリット長方向に沿った断面のS/Nが悪く、汚れパターンの検出が困難になることがある。 そうした場合はあわてず、汚れ検出をせずにidentifyを抜ける。 つまり、すぐに<q>を押すのである。 そして、

>>>>> OK? <y/n/(skip)s>

で、<n>と答える。<n>と答えると、輝線位置の読み取りからやり直しである。 検出に成功したときと同じ輝線を選ぶようにして、再び汚れ検出をやる。 すべてのコンパリソンフレームに対してスリット汚れ位置の検出を終了すると以下の確認をしてくる。

>>>>> Identify ok? Go to next step? <y/n>

失敗が無ければ<y>である。<n>と答えれば汚れ検出を最初からやり直しである。 今度はフラットフレーム上での検出である(図4)。

Identify the slit pattern of flat...

 再びidentifyコマンドに入るが、今度はフラットフィールドの断面が示されている。 コンパリソンで検出したのと同じ汚れを検出すると、フラットフィールディングが始まる。

Now interpolating the slit image shift...
Now flat fielding...

以降、フラットの光学系依存成分を何ピクセルシフトして割りましたよ、という感じのメッセージが続き、次々と天体フレームがフラットフィールディングされていく。 フラットフィールディングされたフレームには.ffという拡張子がつく。

Now processing objectframe shift value = value
Now shifting slit pattern...
Now objectframe is dividing by the flat field...
resultframe is created...

ここで注意すべきはshift value =の値である。 これはフラットと天体の像のずれを表わしているが、余りに大きな値(絶対値が20を超えるような値)を示していたら処理を疑うことをすすめる。 まず、汚れパターン検出に失敗している(違う汚れを誤って検出してしまった)可能性が高い。 このときは迷わずCTRL+cを押してsngredを止めてしまおう。 心配することはない。 sngredは途中で強制終了しても再開可能なのだ。 sngredの再開の方法は「1--4. sngredの再開」で説明する。

次ページへ 前ページへ SNGRED目次へ