ラインのイメージング

ラインのイメージング

ここでは、スペクトル線発光 (輝線、ライン) のイメージングについて説明します。 前回のイメージングチュートリアルの一部としてデータパッケージをダウンロードしたはずです。 まだの方は、"連続波のイメージング" を参照してください。

ここでは、前回のセルフキャリブレーションしたデータから始めます。 セルフキャリブレーションをしていないデータから始めることもできますが、その場合はセルフキャリブレーションによる改善の恩恵を受けられません。

主なサイエンスの目的が輝線のイメージングである場合でも、連続光でセルフキャリブレーションを行うことは、しばしば良い効果をもたらします。 これは、連続光が明るく、過度に複雑でない場合に特に当てはまります。 しかし、時には、輝線でセルフキャリブレーションを行い、その解をデータセット全体に適用する方が理にかなっていることもあります。 今回は、輝線画像を最適化するために、連続光のセルフキャリブレーションの解を輝線データに適用します。

まず、セルフキャリブレーションされた MS を現在のディレクトリにコピーします。 この MS には、サイエンスターゲットの輝線と連続光の両方のデータが含まれています。 前のチュートリアルで作成したセルフキャリブレーション MS をここで使いたい場合は、ファイル名を "sis14_twhya_selfcal.ms" から最良の結果のもの (例えば、"sis14_twhya_selfcal_4.ms") に変更する必要があることに注意してください。

# In CASA
os.system("rm -rf sis14_twhya_selfcal.ms")
os.system("tar -xvf ../working/sis14_twhya_selfcal.ms.tar")

連続光の引き算

最初のステップは、UV データから連続光を除去することです。 ここで、連続光とは、すべてのスペクトルチャンネルにまたがる広帯域の放射を意味します。 連続光は、若干の周波数依存性があるかもしれませんが、それは問題ありません。 連続光の引き算をおこなう方法は、スペクトル線発光 (輝線) のないスペクトルチャンネルのみを使ってフィッティングし、UV データを操作することです。 CASA のタスク uvcontsub を使ってこれをおこないます。

UV 連続光の引き算のもっとも繊細さを必要とする点は、連続光を、ほとんど連続光スペクトル (線ではなく) を含むチャンネルだけを使って振幅 (Amp) をフィッティングすることです。 この目的のために、最初にすることは、plotms タスクを使ってサイエンスターゲットの積分スペクトルをプロットすることです。 サイエンス天体を指定し (フィールド 5)、チャンネル番号の関数として振幅をプロットし、データを時間平均します。 (avgscan=True というパラメータは CASA にスキャン間の時間平均するように指示します)。

# In CASA
plotms(vis='sis14_twhya_selfcal.ms',
       xaxis='channel',
       yaxis='amp',
       field='5',
       avgspw=False,
       avgtime='1e9',
       avgscan=True,
       avgbaseline=True, 
       showgui = True)

図 1: 振幅 (Amp) 対 チャンネル数のプロットでは、輝線を示すいくつかの高い振幅が見られます。輝線ではない部分の振幅はゼロを幾らか超えており、連続放射光を示しています。

タブで、軸を周波数に切り替えたり、チャンネルに戻すたりすることができます。 N2H+ のラインは 372.67249 [GHz]にあり、チャンネル 250 のあたりに、弱いものの輝線を表す幾つかの高い振幅があることがわかります。 残りのスペクトルは、連続光をフィットするのに適しています。すべてのスペクトル線放射を確実に除外するために、チャンネル 240 - 280 を避けて連続体フィットをしましょう。

uvcontsub の呼び出しの中で、fitspw='0:0~239;281~383' をセットして輝線のない領域を指定し、excludechans=False をセットして、CASA にこれらのチャンネルがフィットするチャンネルであることを伝えます。 フィットしない領域 (輝線のある領域) を指定したい場合は excludechans=True を使用します。 この場合、fitorder を 0 にして、一定振幅の (平坦な) 連続光のみをフィッティングします。 個々の UV データポイントごとにこの引き算を試みたいので、積分時間に等しい solint を要求していることに注意します。 より大きなデータセットでは、計算機によっては、このステップに時間がかかるかもしれません。

# In CASA
os.system('rm -rf sis14_twhya_selfcal.ms.contsub')
uvcontsub(vis = 'sis14_twhya_selfcal.ms',
          field = '5',
          fitspw = '0:0~239;281~383',
          excludechans = False,
          fitorder = 0,
          solint='int')

CASA 6では、uvcontsub が OLD VisibilityIterator を使用しているという警告が表示されます。 Visibility Iterator は、ビジビリティデータを処理する際に使用される反復と検索の基礎となるメカニズムです。 Visibility Iterator の新しいバージョンが開発され、CASA ver. 5.0 以降の他のいくつかのキャリブレーションタスクに導入されています (詳細は CASA eNews を参照してください)。 この警告は無視できます。


WARN calibrater	Forcing use of OLD VisibilityIterator.
".contsub" というファイル拡張子を持つ、連続スペクトルを減算した UV データセットが出力されます。 plotms を使って、以前と同じようにプロットし、スペクトルを見ることができます。 上記ではフィールド 5 に対してのみ uvcontsub を実行し、新しい MS を作成したため、サイエンスデータは新しい MS のフィールド 0 (最初で唯一のフィールド) としてラベル付けされていることに注意してください。 フィールドがどのようにラベル付けされたかを見るために、連続スペクトルが引き算されたデータセットで listobs を実行してみるのもよいでしょう。

# In CASA
plotms(vis='sis14_twhya_selfcal.ms.contsub',
       xaxis='channel',
       yaxis='amp',
       field='0',
       avgspw=False,
       avgtime='1e9',
       avgscan=True,
       avgbaseline=True, 
       showgui = True)

図 2: 連続光成分を引いた後の、振幅 (Amp) 対 チャンネル数のプロット。一定値を引いているので、輝線のないチャンネルで完全に 0 になることは期待できません。

連続スペクトルの引き算はできているように見えます。 イメージングしてキューブデータにしたらよりよく見えるでしょう。

輝線のイメージング

輝線のイメージングは連続スペクトルのイメージングのようなもので、スペクトル情報 (波長) という付加的な次元があります。 tclean の呼び出しでは、specmode="cube" を設定する必要があります。 さらに、start、width、nchan パラメータに適切な値 (および単位) を設定することで、データをグリッド化する第 3 軸を指定することができます。 この第 3 軸は、チャンネル、速度、周波数の単位で指定することができます。 これらのどれを選んでも、これらのデータには有効です。 ここでは、start="0.0km/s"、nchan=15、width="0.5km/s" と設定することで、LSRK 参照フレーム (銀河系と銀河系外の共通のフレーム) で 0 [km/s]から始まる、幅 0.5 [km/s] の 15 チャンネルを出力データキューブにイメージングしています。 速度は N2H+ の静止周波数を基準に定義され、 splatalogue で調べることができます。 N2H+ の静止周波数を以下のように Python 変数に設定します。

# In CASA
restfreq = '372.67249GHz'

次に tclean を使用して、連続スペクトルを引き算したデータを対象としてキューブを作成します。 field を "0"、spw を "0" に設定し (このデータセットの唯一のオプション)、specmode="cube" を使用し、 LSRK 参照フレームで定義された 0.0 [km/s] から始まる 0.5 [km/s] の 15 チャンネルを使用します。 また、restoringbeam="common"とすることで、キューブ内の各平面のビームサイズを一定にしました。 重み付けを "briggsbwtaper" に変更します。これは CASA ver. 6.2 から利用できる新しい重み付けスキームです。 詳細はイメージングアルゴリズム (英語) を参照してください。 さらに、CASA 6.2 からビームフィッティングアルゴリズム (英語) が更新されました。 各種パラメーターを設定し直さないと、この tclean は連続スペクトルをイメージングしたときの以前の呼び出しと同じになります。

# In CASA
os.system('rm -rf twhya_n2hp.*')
tclean(vis = 'sis14_twhya_selfcal.ms.contsub',
       imagename = 'twhya_n2hp',
       field = '0',
       spw = '0',
       specmode = 'cube',
       perchanweightdensity=True,
       nchan = 15,
       start = '0.0km/s',
       width = '0.5km/s',
       outframe = 'LSRK',
       restfreq = restfreq,
       deconvolver= 'hogbom',
       gridder = 'standard',
       imsize = [250, 250],
       cell = '0.08arcsec',
       phasecenter = 0,
       weighting = 'briggsbwtaper',
       robust = 0.5,
       restoringbeam='common',
       interactive = True,
       niter=5000)

図 3: テープデッキ・コントロールを使ってチャンネル 5 に変えた後のビューワー画像。

対話的モードを指定したので、GUI が表示されます。 表示されたら、テープデッキ・コントロールを使って、キューブ内のチャンネルを変更してしてください。 キューブの中央付近のいくつかのチャンネルに放射が見られます。 放射の位置がチャンネルごとにシフトしていることに注目してください。これは回転ディスクからの速度構造を示しています。

輝線は S/N がかなり低いので、クリーニングによる劇的な改善は期待できません。 しかし、画像を改善するために試してみましょう。 スペクトルキューブでは、各速度チャンネルに個別にクリーンマスクを指定することもできるし、すべてのチャンネルに適用される単一のマスクを指定することもできます。 tclean の GUI の上部に、これらのオプションを切り替えるボタンがあります。 ALMA のような精度の高い望遠鏡では、全チャンネルに単一のマスクを使用するのが良い場合が多いです (常にではありません)。 連続スペクトルのイメージングで行ったように、対話的にクリーンマスクを描画してみてください。 "このチャンネル" だけをクリーン化するボタンを選択するか、その下の "全チャンネル" "ボタンを選択してクリーンマスクを全チャンネルに適用するかします。 そして、クリーンボックス内の残差の最大値が周囲のノイズと同程度になるまで、100 回ほど繰り返しクリーンをおこないます。 最後に、赤い "X" をクリックして、ウィンドウを閉じます。

tclean タスクの出力はデータ・キューブです。 ビューワーを使ってキューブからスペクトルをプロットし、ノイズを推定し、この結果を先の連続スペクトル画像と重ね合わせることができます。

# In CASA
imview("twhya_n2hp.image")

図 4: 輝線のスペクトルプロファイルのビューワー画像。

この時点で、ビューワーで遊んでみてください。 速度軸の定義を変更したり、イメージプレーンから統計量を測定したり、など。

ビューワーには、スペクトルプロファイルプロットを作成する機能があります。 ビューワー GUI で、"Tools -> Spectral Profile ..." を選択します。 次に、関心のある領域を囲むボックスまたは楕円を描画するか、"point marking" ボタンを使用して 1 つの点を設定すると、画像上の 1 つのピクセルに対するスペクトルが得られます。 この図は、明るい輝線のローブにピクセルを設定し、キューブを 1 ピクセルで切り取ったスペクトルを示しています。

プライマリービーム補正

連続光イメージングと同様に、CASA が生成するラインデータキューブには、デフォルトでプライマリービーム補正はありません。 天文学的に正しい画像を形成するためには、tclean の出力をこのプライマリービーム (モザイクの場合は、モザイクを作成するために使用されたプライマリービームパターンの組み合わせ) で割る必要があることを覚えておいてください。 したがって、最終的な計算には、キューブのプライマリービーム補正バージョンを作成する必要があります。 tclean でパラメータ pbcor = True を設定すると、プライマリービーム補正されたキューブを作成できます。 これにより、".image.pbcor" という拡張子を持つ追加ファイルが生成されます。 このファイルは、プライマリービームで補正されたクリーニング済みキューブです。

既にデータをクリーニング済みで tclean を再実行したくない場合、CASA はこの補正に必要なプライマリービーム情報を拡張子 ".pb" のファイルに保存します。 CASA のタスク impbcor は、この .pb 画像と tclean の出力画像を組み合わせて、プライマリービーム補正画像を生成するために使用します。 まず、古いプライマリービーム補正画像があれば、それを削除します。

# In CASA
os.system('rm -rf twhya_n2hp.pbcor.image')

そして、補正します。

# In CASA
impbcor(imagename='twhya_n2hp.image',
        pbimage='twhya_n2hp.pb',
        outfile='twhya_n2hp.pbcor.image')



ページ先頭に戻る
CASA guides "First Look at Line Imaging CASA 6.4" へ (本家のサイト:英語)

Last Update: 2023.09.30