ALMAのデータ解析ページ
ALMAでデータ解析を行う場合のメモ。
非常に勉強になるウェブサイト
アルマのデータ解析をしたければ、まずはデータを取ってきて、これを見ながら解析していくとよい。ただし、やはりこれでも分からない用語や選択肢の分岐はたくさんあるので、その場合は身近にいる電波解析に詳しそうな人に聞いてみるとよい。
電波干渉計のイメージを得る上で重要でやっかいな作業であるcleanの原理が載っている。
国立天文台の干渉計サマースクールで過去に使用された教科書。誤植が非常に多いが、基本的な事項をおさらいするのによい。ただし、これを読むときは少なくとも一人干渉計解析の経験がある人 or 電波観測の解析経験がある人を呼び、ゼミ的に行うのがよい。様々な用語が定義されず、そのまま使用されている場面に多く出くわす。
大事なリンク
ALMAのデータのqueryを出す場所。
ALMAからPI向けにdeliverされるdataの解説。長いので読むのはつらい。
とある周波数に知らない輝線が受かっていた時に、counterpartを調べるのに便利らしい。
dataの取得
アカウントの取得
ALMAデータを取得するためには、まずはALMA science portalにログインするアカウントを取得しなければいけない。
dataのquery
- position search
- coordinate search
などで天体を検索する。検索は異様に時間がかかる場合がある。
この後、"Results Table"と書かれたタブが開かれ、そこにダウンロード可能なファイル群 (project code) が表示される。□のところにチェックを入れ、上部に表示されている"Submit download request"をクリックする。
そうすると、ディレクトリ構造とともに、calibrationされたデータと、元データ (raw) が選択可能になっている。一般的に、元データは超重い (>~10GB)。
ちなみに、この時に自身のメールアドレスにもダウンロード用のリンクが送られてくる。
ほしいデータを選択したのち、"Download Selected" をクリックすると、ダウンロード方法がいくつか表示される。基本的にはダウンロードスクリプトをダウンロードし、しかるべき場所にてデータをダウンロードするのが好ましい。
dataの見方
以下、directory "201X.X.XXXXX.S/science_goal.uid___*/group.uid___*/member.uid___*/" 以下を見ていることにする。
"/qa"
ディレクトリqaには、QA (quality assurance) のレポートが載っている。各図が何を表しているかの解説も、上のリンクのページが詳しい。
"product"
ここには実際のターゲットのfits画像が保管されている。quick lookするならここを見ればよい。いくつかの画像が保管されており、
は、すべての速度成分を足し合わせた画像。つまり、バンド6であれば、バンド6の振動数領域をすべて足し合わせた画像になっている (はず)。
ファイルの情報を見る (listobs)
ファイルの情報 (header) を見たい場合は、CASA上で
CASA <7>: listobs(vis='uid___*.ms.split.cal')
などとすると、GUI上にファイルのヘッダ情報が表示される。
各fieldで観測されている天体情報などを見る時に便利。
data reductionその1 (CLEAN前まで)
この場合、ALMAはすでにdata reduction用のpython scriptを用意している。casaをすでにインストールしているはずとして、以下は話を進める。
CASAへのログイン
CASAにログインする。CASAはログインしたdir下に2つのログファイル
- "casapy-YYYYMMDD-XXXXXX.log"
- "ipython-YYYYMMDD-XXXXXX.log"
を残すので、logファイル用のdirを用意し、そこでCASAnいログインし、その後dirを移動するとよいらしい。
casapy --pipeline
とすればよい。が、複数バージョンのCASAを入れている場合もよくあるのではないかと思われる。その場合、たとえば、/usr/local/にCASAをインストールし、複数バージョン存在する場合は、以下のようにバージョンを指定する。
/usr/local/casa/casa-release-4.5.0-el6/casapy --pipeline
コマンドを打つ。
さきほどのデータが保存されているdir/scriptというところに移動し、lsなどで、scriptForPI.pyというpythonスクリプトが存在することを確認する。
CASA <4>: ls
scriptForImaging.py uid___*.ms.scriptForCalibration.py
その上で、
CASA <5>: execfile('scriptForPI.py')
と打つ。そうすると、データの重さや解析環境に大きく依るが、一時間ほどかけてscriptが動きつづける。
確認
scriptが動き終わると、script dirと同じ階層に、calibrated dirが出来上がっている。
このdirに入り、lsをすると
CASA <7>: ls
uid___*.ms.split.cal
というdirができているはず。そうすれば、次のステップに進んでいくことができる。
ちなみに、ここでの作業の詳細は、
アルマデータ解析の流れが詳しい。今回、我々はscriptForCalibration.pyのかわりにscriptForPI.pyを使用しているが、基本的には同じ作業のはず。*ForPI.pyの方が、中間ファイルが作成されず、すっきりするそう。
data reductionその2 (clean)
cleanという作業を行うまでをまとめる。
データのまとめ上げ (concat)
複数のexecution blocks (EBs) をもつ天体データセットの場合、concatというタスクを行う必要がある。今回、自分が興味のあるターゲットが一つのEBでまとまっている場合、この作業は必要ない。
データをlineとcontinuumに分離 (uvcontsub)
今回のターゲットは、continuumとlineの両方が受かっているとしよう。その場合、まずはcontinuumとlineを分離することが必要となる。それを実現するのがplotmsで分離の場所を確認、uvcontsubで実際に分離だ。
plotms
plotmsはチャンネルとamplitudeを表示してくれ、それによって輝線とcontinuumの分離が可能となる。
使い方はcasa上でplotmsと打てばよい。
CASA <9>: plotms
とすると、GUIが立ち上がる。
基本的に行われる作業の場所は決まっていて、上部にある、左右に並ぶタブのうち、plotタブのみ見ればよい。
1.
まずはbrowseタブをクリックし、ターゲットのdirである"uid___*.ms.split.cal"を読み込む。
2.
次に、上部の"Selection"に、必要なパラメータを読みこませる。たとえば
field=4
spw=0
のように。fieldやspwはblankにしておくと、すべてのfield, spwを読まれてしまう。少なくともfieldは一つ値を指定しておく。すべてのspwを一気に確認したいときはspwをblankでも構わないが、spwを一個ずつ確認するほうがわかりやすい印象。
3.
そして、下部の"Averaging"の、scanボックスにチェックを入れ、大きな値を入れておく。
Time:1e+08
さらに、scanボックスをチェックしておく。
4.
次は、plotのx軸を変更しよう。現状ではx軸はtimeなので、それをchannelかfrequencyなどに分ける。
上下に並ぶタブから"Axes"をクリックし、上に現れた"X Axis"から好きなパラメータを選ぶ。今回はchannelにしておく。
5.
最後は下にある"Plot"タブをクリックすると、時間はかかるが表示がされる。
6.
表示を見て、輝線と思われる部分以外のX軸の値 (channelだったりfrequencyだったり) をメモっておく。この値は後のuvcontsubで必要になる。ちなみに、channelでいうところの両端はあまりデータが入っていない場合があるので、ある程度避けておくのが無難だそうだ。だいたいchannel:0-10あたりはデータが入っていない。
7.
以上を、気になるfield spwごとに行う。
以上で、lineが入っている場所と入っていない場所の確認ができた。
uvcontsub
今度は実際に分離を始めていこう。
"uid___*.ms.split.cal"が見えているdirで、uvcontsubに入れるべきパラメータをチェックしよう。そのためには、inp commandnameというのが便利だ。
CASA <20>: inp uvcontsub
# uvcontsub :: Continuum fitting and subtraction in the uv plane
vis = '' # Name of input MS. Output goes to vis + ".contsub" (will be overwritten if already exists)
field = '' # Select field(s) using id(s) or name(s)
fitspw = '' # Spectral window:channel selection for fitting the continuum
combine = '' # Data axes to combine for the continuum estimation (none, or spw and/or scan)
solint = 'int' # Continuum fit timescale (int recommended!)
fitorder = 0 # Polynomial order for the fits
spw = '' # Spectral window selection for output
want_cont = False # Create vis + ".cont" to hold the continuum estimate.
と打つと、uvcontsubのパラメータが表示される。
今回入っているfieldがどこかは、dir /qaに入っているpngファイルの中の、"target uv coverage"というところを確認してみればよい。あるいは上記に記したlistobsを使ってtargetのfieldを確認してみる。
それらを記入した後、goと打つ。
CASA <22>: go
Executing: uvcontsub()
....10....20....30....40....50....60....70....80....90....100%
....10....20....30....40....50....60....70....80....90....100%
CASA <23>:
となれば成功。
clean
cleanはパラメータが多く、事前に色々と指定してやらないと行けない。
用語集
ALMAのデータ解析を行うと、電波のデータ解析を行ったことがない人には聞き慣れない言葉、略語やALMA特有の言葉にいくつか出会うはず。それらをメモ的にまとめる。
- OUS (Observing Unit Set): サポートアストロノマが作成する観測指示書。ALMAのデータを見ると、Science Goal OUS, Group OUS, Member OUSの順にdirectoryが深くなっていく。
- spw (spectral window): スペクトル範囲のこと。
最終更新:2016年02月16日 17:30