「B-5.CLEANします。」の編集履歴(バックアップ)一覧に戻る
B-5.CLEANします。」を以下のとおり復元します。
←[[前へ>http://www39.atwiki.jp/vitaminc/pages/31.html]]↑[[目次>http://www39.atwiki.jp/vitaminc/pages/20.html]]→[[次へ>http://www39.atwiki.jp/vitaminc/pages/33.html]]
*&u(){Difmapによる処理(5)CLEANによるdeconvolution}
----
**&u(){CLEANを実行する}
CLEANによるdeconvolutionのアルゴリズムについて詳しく知りたい人は、[[こちら>http://astro.sci.kagoshima-u.ac.jp/omodaka-nishio/member/kameno/AIPS-Difmap/Lecture/CLEAN.swf]]をご覧下さい。要するに、ダーティマップの中で輝度が最大の場所にCLEAN componentを置き、そのCLEAN componentから導かれるビジビリティを観測データから差し引いて残差ビジビリティにし、その残差ビジビリティを使って新たなダーティマップを描く…というプロセスを繰り返す反復法です。
さて、CLEANの効果を見やすくするために、ちょっと小細工をしてみましょう。残差マップをmapplotで表示するときに、輝度の値と画面上での明るさの対応は、デフォルトでは輝度の最小値・最大値を画面の最小輝度・最大輝度に対応させるように設定されています(この対応を transfer function: 伝達関数といいます)。この可変スケーリングは親切ですけど、CLEANによって残差が減っていくことを実感しづらいでしょう。そこで伝達関数を固定して、CLEANによって残差が減る様子を分かりやすくしてみます。それには、
>&u(){mapfunc linear, -0.5, 3.0}  第1引数は線型の伝達関数を指定, 第2引数は輝度の最小値, 第3引数は輝度の最大値を指定。
>! Mapplot transfer-function = linear, Data range = -0.6 - 3 Jy.
と打ちます。これで輝度の伝達関数が線型に, 最小・最大輝度のレンジが-0.5 - 3.0 Jy/beam に設定されました。
この状態で、再度ダーティマップを表示しておきましょう。
>&u(){mappl}  
>!
>! Move the cursor into the plot window and press 'H' for help
PGPLOT画面上で&bgcolor(#ccff00){x}キーを押して、コマンドプロンプトに戻ります。それではいよいよ&u(){clean}コマンドでCLEANします。
>&u(){clean -1000, 0.001}  CLEAN gainを0.001に設定して、1000回の反復でCLEANする。
>! clean: niter=-1000  gain=0.001  cutoff=0
>! Component: 050  -  total flux cleaned = 0.166858 Jy
>! Component: 100  -  total flux cleaned = 0.325574 Jy
>! Component: 150  -  total flux cleaned = 0.476546 Jy
>! Component: 200  -  total flux cleaned = 0.620151 Jy
>! Component: 250  -  total flux cleaned = 0.756749 Jy
>! Component: 300  -  total flux cleaned = 0.886682 Jy
>! Component: 350  -  total flux cleaned = 1.01027 Jy
>! Component: 400  -  total flux cleaned = 1.12784 Jy
>! Component: 450  -  total flux cleaned = 1.23966 Jy
>! Component: 500  -  total flux cleaned = 1.34603 Jy
>! Component: 550  -  total flux cleaned = 1.44721 Jy
>! Component: 600  -  total flux cleaned = 1.54345 Jy
>! Component: 650  -  total flux cleaned = 1.635 Jy
>! Component: 700  -  total flux cleaned = 1.72208 Jy
>! Component: 750  -  total flux cleaned = 1.80491 Jy
>! Component: 800  -  total flux cleaned = 1.8837 Jy
>! Component: 850  -  total flux cleaned = 1.95864 Jy
>! Component: 900  -  total flux cleaned = 2.02993 Jy
>! Component: 950  -  total flux cleaned = 2.09774 Jy
>! Component: 1000  -  total flux cleaned = 2.16224 Jy
>! Total flux subtracted in 1000 components = 2.16224 Jy
>! Clean residual min=-0.261898 max=1.257721 Jy/beam
>! Clean residual mean=0.000468 rms=0.100505 Jy/beam
>! Combined flux in latest and established models = 2.16224 Jy
&u(){clean}コマンドの第1引数は反復回数です。マイナスを付けるのは、残差マップ中で最小輝度(負の値)の絶対値が最大輝度を上回ったらそこで反復を止める、というオプションです。つまり負のCLEAN成分を避けることができます。第2引数はCLEAN gainで、残差マップの最大値に対してCLEAN gain倍の値を、そこに置くCLEAN componentのフラックス密度とします。通常CLEAN gain は1より小さい値で、ここではとても慎重にCLEANを行うために0.001と小さな値にしています。CLEAN gainが大きすぎると、CLEANのしすぎ(CLEAN成分を差し引きすぎること)の原因になります。特に残差が大きいうち(CLEANがあまり進んでいない段階)ではCLEAN gainを控えめにした方がいいでしょう。強気に攻める場合でも0.1くらい、慎重な人は0.001くらいから始めてください。
さて、CLEAN実行時のメッセージを見てみましょう。total flux cleaned とあるのは、その段階までにCLEANした成分のフラックス密度の和です。理想的にはtotal flux cleanedが天体の全フラックス密度 (= 空間周波数ゼロλにおけるビジビリティ振幅 : [[radpl>http://astro.sci.kagoshima-u.ac.jp/omodaka-nishio/member/kameno/AIPS-Difmap/DA193/image/difmap_radpl01.png]]でチェック!)になるまでCLEANを進めるべきでしょう。1000回の反復が終わった後で、残差マップの最小値が-0.26 Jy/beam, 最大値が1.26 Jy/beamですから、まだ正の側に偏っており、CLEANが十分ではないと判ります。
**&u(){CLEANしたらチェック}
このままCLEANを続けてもいいのですが、ここでCLEANの効果を見るために&u(){mappl}コマンドで残差を表示してみましょう。
>&u(){mappl}  
>!
>! Move the cursor into the plot window and press 'H' for help

復元してよろしいですか?