データリダクション
リダクションはASTEサイト・サンペドロ・三鷹のASTE用計算機(aste-1s, aste-at1, aste-mt1等)、 および野辺山の共同利用計算機(注:aste-wではない)で行うことができます。 Linux機をお持ちであれば、 Export版リダクションソフト を使うこともできます。
生データのコピー
生データはサイトの /cosmos3/aste/raw/otfdata/GROUP/PROJECT/otfdata/raw 配下に生成されます。 ファイル名は 指示書名.天体名.観測日時(YYYYMMDDhhmmss).分光計使用アレイ数.N です(例:klotf.OriKL.20050131204055.4.N)。
生データは /home/GROUP/PROJECT/otfdata/raw/ に置かれている必要があります:
- サイトでリダクションをする場合
- /cosmos3/aste/raw/otfdata/GROUP/PROJECT/otfdata/raw/ 配下の生データを /home/GROUP/PROJECT/otfdata/raw/ にコピーする:
- cp /cosmos3/aste/raw/otfdata/GROUP/PROJECT/otfdata/raw/RawDataFile /home/GROUP/PROJECT/otfdata/raw/
- または、/cosmos3/aste/raw/otfdata/GROUP/PROJECT/otfdata/raw への シンボリックリンクを/home/GROUP/PROJECT/otfdata/raw として作る:
- ln -s /cosmos3/aste/raw/otfdata/GROUP/PROJECT/otfdata/raw /home/GROUP/PROJECT/otfdata/raw
- サンペドロでリダクションをする場合
- サイトから持ち帰った生データを /home/GROUP/PROJECT/otfdata/raw/ にコピーする:
- cp RawDataFile /home/GROUP/PROJECT/otfdata/raw/
- 野辺山でリダクションをする場合
- サイトから持ち帰った生データを /home/GROUP/PROJECT/otfdata/raw/ にコピーする:
- cp RawDataFile /home/GROUP/PROJECT/otfdata/raw/
いかなる場合にもディレクトリ /cosmos3/aste/raw/otfdata/GROUP/PROJECT/otfdata/raw/ 配下の内容を変更しないでください。
リダクションソフト起動
- サイトまたはサンペドロでリダクションをする場合
- 以下のようにして起動スクリプトを走らせます:
- /home/asteotf/pro/nostar
- 野辺山でリダクションをする場合
- 起動スクリプトを「-aste」のオプションつきで走らせます。すなわち:
- /home0/otf/IDL/nostar -aste
- CPUサーバ(mpu1u, mpu2u, mpu4u, mpu5u, mpu6u のいずれか)に リモートログインして実行することを強く推奨します。
GroupとProjectを入力して「Start」するとボタンパネルが開きます。
図4-1:リダクションソフトの起動画面。
図4-2:リダクションソフトのボタンパネル。
Split
生データには観測に使用したすべての分光計(A1〜A4 または X1〜X12)のデータがまとめて書かれています。 まず、Splitコマンドによって分光計ごとにデータを分割します。 この「分割後生データ」は /home/GROUP/PROJECT/otfdata/split 配下に生成されます。 生データのファイル名は 指示書名.天体名.観測日時.分光計使用アレイ数.N で、 分割後生データのファイル名は 指示書名.天体名.観測日時.分光計使用アレイ数.N.分光計名 (例:klotf.OriKL.20050131204055.4.N.A01)です。
ボタンパネルの「Split」をクリックすると、図4-3のようなウインドウが現れます。 「Add File(s)」または「Wildcard」ボタンを使ってsplitしたい生データをリストに追加し、 「Execute」すると分割後生データが /home/GROUP/PROJECT/otfdata/split に書かれます。
- 「Add File(s)」では、ファイル選択ダイアログを使ってファイルを追加します。
複数ファイルを一度に選択するには、ダイアログ上で control または shift キーを押しながらファイル名をクリック します。
#ただし、あまり多くのファイル(典型的には数百個)を一度に選択しようとするとフリーズすることがあります (IDLの関数DIALOG_PICKFILEで、ファイルのフルパス名の合計が32768文字に制限されているようです)。 - 「Wildcard」を使うと、ワイルドカードでファイルを選択できます (たとえば「/bin/ls /home/a0011hg/proj0/otfdata/raw/*20070416*」。findなど、他のコマンドも使用可能)。
- 「Remove」で選択したファイル一つ、「Remove All」ですべてのファイルをリストから削除できます。
図4-3:Split画面。
Scale
データの強度に定数(スケーリングファクター)を掛けたい場合にはタスク「Scaling」を使います。 このタスクは、分割後生データに対して(ベースラインを引いた後でもよい)用います。 スケーリングファクターの値はデータヘッダ「MLTSCF0」に格納され、 タスク「Show Header」で確認できます。
ボタンパネルの「Scaling」をクリックすると、図4-4のようなウインドウが現れます。
図4-4:Scale画面。
「Add File(s)」または「Wildcard」で分割後生データを一つまたは複数選択します。 「Search & Add」をクリックすると、他の分光計のデータが自動的に追加されます。 「A1」−「A35」の必要な欄にスケーリングファクターの値を入れて「Execute」すると データにスケーリングファクターが適用されます (WHSFデータでは、AnをXnと読み替えます)。
- 「Load SF」で、スケーリングファクターをテキストファイルから読み込むことができます。 ファイルには、分光計名「An」とスケーリングファクターの値を一行に一組、 スペースかタブで区切って書きます(サンプル)。 分光計名は省略可能で、その場合には1行目から順にA1, A2, ... の値であるとみなされます。
- 「mode」を「replace」とすると、与えた値でヘッダMLTSCF0が上書きされます。 「multiply」では、すでに設定されているMLTSCF0の値に、与えた値が掛けられます。
Base
分割後生データに対してBaselineを引きます。 ファイル名は 指示書名.天体名.観測日時.分光計使用アレイ数.アレイ名.base (例:klotf.OriKL.20050131204055.4.A01.base)となります。 Baselineを引く前の分割後生データは消去されます。 ベースラインの引かれていない分割後生データは、 マップ作成時にはスキップされます。
ボタンパネルの「Baseline」または「Base (Batch)」を使用します。
Baseline
ボタンパネルの「Baseline」をクリックすると図4-5のファイル選択画面が現れます。 「File」で分割後生データを一つ選択して「Load」するとGUI画面(図4-6)が開きます。
図4-5:Baseline ファイル選択画面。
画面右側にデータが表示され、左側で諸パラメータを設定します。 データはスキャン1列ごとに表示されます。 上のパネルは1列分を平均したラインプロファイルで、 下のパネルは横軸に速度(またはチャネル・周波数)、 縦軸にスペクトル番号をとった一種の位置−速度図です。
- 「fitting function」、「order/wave」でフィッティングの関数形を指定します。
- 「fitting range」にベースラインレンジを入力します (表示されているデータ上でのマウスクリック、または手入力)。 「clear」で入力したレンジがリセットされます。
- 「x-axis mode」、「ch binning」でx軸(速度軸)の単位 およびチャネルビニング幅を指定します。
- 「Ref freq」で参照周波数(基準とする静止周波数)を指定します。
- 「xrange」、「yrange」で速度軸および強度軸の表示範囲を指定します。 「yrange」は下のパネルのグレースケール範囲も兼ねています。
- 「Exec」で現在表示中の列に対してベースラインフィットを実行します。
- 「Next」、「Prev」でそれぞれ次の列、前の列に移動します。
- 「Till Last SP」で現在表示中の列から最後の列までに対してベースラインフィットを実行します。
- 「Revert」でファイルをオリジナルの状態に戻します。
- 「Save & Quit」で終了します。
図4-6:Baseline画面。
Base (Batch)
ボタンパネルの「Base (Batch)」をクリックすると図4-7の画面が現れます。 「Add File(s)」、「Search & Add」、「Wildcard」で分割後生データを追加します。 「function type」にフィッティング関数の種別とパラメータ(多項式の次数または正弦波の波数)、 「fitting range」にベースラインレンジと単位を指定し、 「Exec」するとベースラインフィットが実行されます。
図4-7:Base (Batch)画面。
Flag
(もし必要があれば)「Flag」を使って質の悪いデータにフラグを立てます。 フラグを立てたデータは、マップ作成時にスキップされます(データ自体が消えるわけではありません)。
ボタンパネルの「Flag」をクリックすると、ファイル選択/オプション設定画面(図4-8)が現れるので 「File」で分割後生データを一つ選択してください(他の分光計のデータも同時に処理されます)。 このタスクではデータを時系列で(QLOOKと同様に)積分したものを表示しながら 処理を進めます。その際に何秒分のデータを積分するかを「Time averaging」で指定します。 「Divide each scan into」では、各スキャン列を整数個に分割します。 「Number of spectra」では、スキャン列の区切りに関わりなく、先頭から順に指定した個数ずつのデータを束ねて表示します。
「Load」を押すと、表示用の一時ファイル(拡張子".sp")の作成が始まり、しばらく待たされます。 過去に作成した一時ファイルが残っていれば、それを使って処理を進めます (そのため、quitしても一時ファイルは消去されません)。
図4-8:Flag ファイル選択画面。
一時ファイルの作成が終わると、GUI画面(図4-9)が開きます。 ウインドウ右側にスペクトルが表示され、フラグの立ったスペクトルには×印が付きます (積分区間の一部のみにフラグが立っている場合には斜線が表示されます)。
- 「x-axis mode」、「x smoothing」でx軸(速度軸)の単位 およびチャネルビニング幅を指定します。
- 「Ref freq」で参照周波数(基準とする静止周波数)を指定します。
- 「xrange」、「yrange」で速度軸および強度軸の表示範囲を指定します。
- 「Prev」、「Next」で前後のページに移動します。
- 「Exec」でその時点までに設定したフラグ情報をデータファイルに書き込みます。
- 「Flag All CH」、「Unflag All CH」で現在表示中のページに対して 全分光計のフラグON/OFFを行います。
- 「Quit」で終了します。変更したフラグ情報がまだファイルに書かれていない場合には 確認のダイアログ("Force quit" or "Save & quit")が表示されます。
- 「Flag All Data」、「Unflag All Data」で全分光計の全スペクトルに対してフラグをON/OFFします。
- 「Page #」に現在表示中のページ番号が表示されます。 数字を書き換えてReturnキーを叩くとそのページに飛びます。
スペクトルをクリックしてフラグのON/OFFを切り替えます。 スペクトル表示領域にマウスカーソルが乗っている状態では、以下のキーボードショートカットが使用可能です:
- 「b」または「p」:前のページへ
- 「f」または「n」:次のページへ
- 「q」:Quit
図4-9:Flag画面。
Map
ベースラインを引いた分割後生データにconvolutionをかけて マップ(FITSキューブ)を作成します (「はじめに」を参照)。
ボタンパネルの「Make Map」をクリックすると図4-10のファイル・ディレクトリ選択画面が現れるので、 「Add File/Dir」または「Wildcard」で(ベースラインを引いた後の)分割後生データ、 または分割後生データをまとめたディレクトリを追加してください (ディレクトリ指定を推奨。ディレクトリを指定するには、 ファイル選択ダイアログで目的のディレクトリまで移動した後、 何も選択しない状態で「Open」ボタンをクリックします)。 「Position map type」で表示するポジションマップの座標種別を選択後、 「Load」するとGUI画面(図4-11)が開きます。
図4-10:Make Map ファイル・ディレクトリ選択画面。
- 「Coordinates」でポジションマップおよびマップ範囲の座標種別を指定します。
- 「Mapping Range」にマップのBLCおよびTRCを入力します (ポジションマップ上でのマウスクリック、または手入力)。
- 「Spatial Grid」で空間方向のグリッド間隔(Spacing [arcsec])または グリッド数(Number)を指定します。
- 「Freq axis」で速度(周波数)軸の座標種別を指定します。
- 「Range」で速度軸の範囲を指定します。
- 「F/V Grid」で速度方向のグリッド間隔(Spacing [Hz or km/s])または グリッド数(Number)を指定します。
- 「Ref freq」で参照周波数を指定します。
- 「Zoom」をクリック後ポジションマップ上でBLC, TRCをクリックすることで ポジションマップのズームが可能です。 「Unzoom」で初期状態に復帰します。
- 「Convolution func」でConvolution関数とパラメータを指定します。
- 「Load .his」で過去にMapを実行した際の履歴ファイル(拡張子".his")から パラメータを読み込むことができます。
- 出力FITSファイル名を指定して「Exec」で実行します。
図4-11:Make Map画面。
Make Mapを実行すると、出力FITSファイルhoge.fitsのほかに 一時ファイル hoge.fits.grid、 履歴ファイル hoge.fits.his、 マップの各グリッドのrms値が書かれた2次元FITS hoge.fits.rms.fits が作成されます。 ただしhoge.fits.rms.fitsに書かれた値はあくまで目安であり (実際より小さめの値を出す傾向があります)、 最終的にはデータの質の判断は出力FITSキューブ自身から行ってください。 一時ファイル".grid"は消去してかまいません。
Basket-Weave
Scanning effectを除去するため、 (ほぼ)直交する2方向のスキャンからそれぞれ作成したFITSキューブを Emerson & Gräve (1988)の方法 (マップをフーリエ変換してscanning effectにマスクをかけ、 重み付き平均して逆フーリエ変換)で処理します。 二つの入力FITSファイルの座標軸は、まったく同じでなければならない (すなわち、NAXISi, CRVALi, CRPIXi, CDELTi, and CROTAi の値が同じでなければならない) ことにご注意ください。
ボタンパネルの「Basket-Weave」をクリックすると図4-12のようなウインドウが現れます。
- 「Image 1」と「Image 2」のそれぞれについて、
- 「File」をクリックして入力FITSを与えます。
- 「Scanning direction (deg)」にはスキャンの向きを与えます。 X方向のスキャンから作成したマップであれば90、 Y方向のスキャンから作成したマップであれば0としてください。
- 「R.M.S. noise level」にはそれぞれのマップのノイズレベルを与えます。 この値の2乗の逆数が重みとして使われます。
- 「Clip」では、データの質が悪い領域にブランク値を代入することができます。
- 「intensity」に強度の最小値と最大値を与えます。強度がこの範囲外のピクセルはブランクになります。
- 「RMS value」にRMSの最小値を与えます。RMSマップ hoge.fits.rms.fits に書かれたRMS値がこれより大きなピクセルはブランクになります。
- 「Option」で フーリエ変換したマップにかけるマスクの幅を指定します。
- 「Preview」の3つの欄には、 表示する温度スケールの最小・最大値、Z(速度ないし周波数)平面を指定します。 「Show」でプレビューを表示します。 プレビュー画面には、処理前後のイメージと、それらのフーリエ変換が表示されます。
- 「Output」に出力FITSファイル名を指定して、「Exec」で実行します。
図4-12:Basket-Weave画面。
コマンドラインによるリダクション
ネットワーク環境が貧弱でウインドウを飛ばせない場合など、 以下のようにしてコマンドラインでリダクションを行うことができます。 サイトでリダクションを行う場合、 観測やその他の作業に影響を与えないよう十分配慮してください。 コマンドの所在はサイト・サンペドロでは/home/asteotf/bin/、 野辺山では/home0/otf/bin/ です。 野辺山では、CPUサーバ(mpu1u, mpu2u, mpu4u, mpu5u, mpu6u のいずれか)に リモートログインして実行することを強く推奨します。
Split
otf_split 生データ
とするとSplitが実行されます。 生データの所在については生データのコピーをご参照ください。 分割後生データの出力先は環境変数SPLIT_DATA_HOMEで規定されます。 この環境変数が未定義だと /home/GROUP/PROJ/otfdata/split/ が使われます。出力先ディレクトリが存在しないとエラーとなるので、なければあらかじめmkdirしておいてください。
(例) otf_split /home/a0011hg/proj0/otfdata/raw/klotf.OriKL.20050131204055.4.N
Scale
otf_scale 分割後生データ スケーリングファクター モード
とします。 モードは"r"か"m"のいずれかで、 r (replaceの略)とすると与えたスケーリングファクターの値でヘッダ"MLTSCF0"が上書きされます。 m (multiplyの略)とすると与えたファクターが現在設定されている"MLTSCF0"の値に掛けられます。
(例) otf_scale /home/a0011hg/proj0/otfdata/split/klotf.OriKL.20050131204055.4.N.A01 1.42 r
Base
otf_base 分割後生データ 開始SP# 終了SP# フィッティング関数種別 範囲1開始チャネル 範囲1終了チャネル 範囲2開始チャネル 範囲2終了チャネル 範囲3開始チャネル 範囲3終了チャネル 範囲4開始チャネル 範囲4終了チャネル 範囲5開始チャネル 範囲5終了チャネル 範囲6開始チャネル 範囲6終了チャネル 多項式の次数または正弦波の波数
とします。 フィッティング関数種別には"polynomial"または"sincos"を指定します。 "sincos"の場合、波数には複数の値をスペース区切りで指定できます。 ベースライン範囲の指定はチャネル単位でしかできないのでご注意ください。 出力先ディレクトリは環境変数OTF_BASE_DIROで規定されます。 この環境変数が未定義だとエラーとなるので、
setenv OTF_BASE_DIRO /home/GROUP/PROJ/otfdata/split
としておいてください。
(例1) otf_base /home/a0011hg/proj0/otfdata/split/klotf.OriKL.20050131204055.4.N.A01
1 9000 polynomial 150 250 750 850 0 0 0 0 0 0 0 0 1
(例2) otf_base /home/a0011hg/proj0/otfdata/split/klotf.OriKL.20050131204055.4.N.A01
1 9000 sincos 150 250 750 850 0 0 0 0 0 0 0 0 2.3 3.1 4.2
Map
otf_map 座標系 投影法 投影中心座標X 投影中心座標Y BLC座標X BLC座標Y TRC座標X TRC座標Y Z軸種別 Z軸開始点 Z軸終了点 X軸グリッド数 Y軸グリッド数 X軸グリッド間隔 Y軸グリッド間隔 Z軸グリッド数 Z軸グリッド間隔 SearchingRadius 最小データ数 Convolution関数種別 = 関数パラメータ = 参照周波数 出力ファイル名 入力ファイルまたはディレクトリ名
とします。 出力先のディレクトリが存在しないとエラーになります。 各パラメータの意味および書式は次のとおりです:
- 座標系 RADEC, GLGB, XY のいずれか
- 投影法 GLS, ARC のいずれか
- 投影中心座標X 書式は hh:mm:ss.ss (RADECの場合)またはdd:mm:ss.ss。 文字列 DEFAULT を指定するとsource tableで指定した座標が使われる
- 投影中心座標Y dd:mm:ss.ss または DEFAULT
- BLC座標X 書式は hh:mm:ss.ss (RADECの場合)、dd:mm:ss.ss (GLGB)、ssss.ss (XY)
- BLC座標Y 書式は dd:mm:ss.ss (RADEC, GLGBの場合)、ssss.ss (XY)
- TRC座標X 書式は hh:mm:ss.ss (RADECの場合)、dd:mm:ss.ss (GLGB)、ssss.ss (XY)
- TRC座標Y 書式は dd:mm:ss.ss (RADEC, GLGBの場合)、ssss.ss (XY)
- Z軸種別 v (速度), f (周波数) のいずれか
- Z軸開始点 単位は km/s (速度), Hz (周波数)
- Z軸終了点 単位は km/s (速度), Hz (周波数)
- X軸グリッド数 0を指定するとグリッド間隔が優先される
- Y軸グリッド数 0を指定するとグリッド間隔が優先される
- X軸グリッド間隔 単位はarcsec。0を指定するとグリッド数が優先される
- Y軸グリッド間隔 単位はarcsec。0を指定するとグリッド数が優先される
- Z軸グリッド数 0を指定するとグリッド間隔が優先される
- Z軸グリッド間隔 単位は km/s (速度), Hz (周波数)。0を指定するとグリッド数が優先される
- SearchingRadius 単位はarcsec。グリッド点からの距離がこれより小さいスペクトルがConvolutionに使われる
- 最小データ数 Convolutionに使われたスペクトルの数がこれより小さいとマップにブランクが代入される
- Convolution関数種別 BG (Bessel*Gauss), SG (Sinc*Gauss), G (Gaussian), PB (Pillbox), SF (Spheroidal関数) のいずれか
- 関数パラメータ 関数種別によって意味が異なる。パラメータが複数の場合はspaceで区切る。
「=」とパラメータの間にもspace区切りが必要
- BG, SG パラメータa, bを指定する。 ただし単位はpixelsではなくarcsec。 a=グリッド間隔×1.55/, b=グリッド間隔×2.52 とするのがデフォルト
- G パラメータaを指定する。ただし単位はpixelsではなくarcsec。 a=グリッド間隔 とするのがデフォルト
- PB Pillbox関数はパラメータを持たないが、ダミーとして0を指定する
- SF Schwab (1984)のパラメータm, を指定する
- 参照周波数 単位はHz。0を指定するとヘッダの値が使われる
- 出力ファイル名 ファイル名を指定
- 入力ファイルまたはディレクトリ名 ファイル名またはディレクトリ名を指定。 複数指定可、ワイルドカード使用可。 ただしワイルドカードがシェルで展開された結果のコマンド行が10240文字を超えないようにすること
(例) otf_map RADEC GLS DEFAULT DEFAULT 05:35:00.0 -05:40:00.0 5:25:00.0 -05:10:00.0 v -100.0 100.0 0 0 8.0 8.0 0 1.0 24.0 1 BG = 3.947 20.16 = 0 /home/a0011hg/proj0/map/klotf.fits /home/a0011hg/proj0/otfdata/split/klotf.OriKL.*.A01.base /home/a0011hg/proj0/otfdata/split/directoryOfBaselinedFiles