ver.1.3
大内正己
国立天文台/STScI
2004年8月6日作成
2006年12月2日改訂 (八木雅文、古澤久徳、小宮山裕 & SDFRED support team)
2007年9月25日改訂 (古澤久徳、八木雅文、& SDFRED support team)
2008年5月1日改訂 (八木雅文、& SDFRED support team)
すばる主焦点カメラ(Suprime-Cam)は、2048pix×4096pixのCCDが10枚 からなるモザイクCCDカメラです。Suprime-Camで得られた画像データを 整約する為のパッケージソフトウェアがSuprime-cam Deep Field REDuction (SDFRED)パッケージです。SDFREDは、Suprime-Camの膨大なrawデータを、で きるだけ標準的なパラメータを用いて半自動もしくは自動で処理し、整約済 み画像を作ります。この整約済み画像は、そのままサイエンスに用いること ができます。
SDFREDはその名の通り、deep field(つまりblank field)のデータ解
析に最適化されています。Suprime-Camの視野全体に渡るような巨大な天体
が写っているデータや、天体がひどく込み合ったデータに対しては、一部の
処理においてうまく動作しない場合があります。このような問題が生じてし
まう処理は、手動でSDFRED以外のソフトウェアを使って作業する必要があります。
問題が起こる可能性のある処理に関しては注意書きを載せておきます。
SDFREDの著作権は、作成した大内正己と解析エンジンを提供し改良を行っ た八木雅文とにあります。SDFREDは自由に複製、配布して構いませんが、こ れを用いた研究の論文には必ず以下の2論文を引用することで、著作者を明 記してください。
___Yagi et al., 2002, AJ, 123, 66
___Ouchi et al., 2004, ApJ, 611, 660
SDFREDのパッケージおよび使用マニュアル(本マニュアル)は
http://optik2.mtk.nao.ac.jp/subaru_red/SPCAM/
から取得できます。また、今後新しいバージョンのSDFREDが作られた場合など、SDFREDに関する情報は全てこのホームページにアップされます。
さらに、データ解析練習用のSuprime-Camデータ(753MB相当)もこちらから入手できます。 (spcam_training_data.tar.gz)本マニュアルに示すSDFREDの使用例(具体例)は、この練習用データを用いた場合のもので す。SDFREDを初めて使う方は、実際に自分のデータを解析する前に、この練習用データで使用方法を理解することができます。
- SExtractor
http://terapix.iap.fr/rubrique.php?id_rubrique=91
______ (Bertin & Arnouts 1996, A&AS, 117, 393)
______ (参考)開発者はversion2.5.0にて動作確認を行っています。
- IRAF (必ずしも必要はないがあると便利)
______ 入手先: http://iraf.nao.ac.jp/ or_ http://iraf.net/
______ (参考)開発者は version 2.12.2 にて動作確認を行っています。
- その他の基本ソフトウェア
______ C コンパイラ、perl、sh(bash)、csh
メモリ256MB程度を持ったUNIX系計算機を使います。ハードディスクの容量は解析するデータの量によりますが、普通は数GB−数百GB必要になります。(上記の練習データをつかって解析する場合は、10GBあれば十分です。)
(参考)開発者は Linux で動作確認を行なっています。
ダウンロードしたsdfred20070827.tar.gz を、適当なディレクトリに 展開します。(パッケージは配布ウェブにて最新版を確認して下さい)
例)
% gunzip -c sdfred20070827.tar.gz | tar xvf -
(以下の説明でコマンド例の行頭の%または$はシェルのプロンプトを表 しています。お使いのシェルの設定に応じて適宜読み替えてください。)
current directoryにsdfred20070827/ などという名前がついたディレク
トリーができます。ここで、20070827という数字はSDFREDのバージョンで、
作成された年、月、日に対応します。(バージョン毎にこの数字は変わりま
す。)
展開したSDFREDをコンパイルします。sdfred20070827/ というディレク トリーに移りconfigureとmake allというコマンドを実行します。
例)
% cd sdfred20070827/
% ./configure
% make all
ディレクトリ sdfred20070827 の下に binというサブディレクトリがあるので、ここにpathを通します。
例)
csh/tcshをお使いの場合:
% emacs ~/.cshrc
などとして、
set path=( /mb22a/ouchims/koushukai/bin/sdfred20070827/bin $path )
のようにset pathの中にSDFREDのbinのディレクトリ(実行ファイルディレクトリ) を指定します。ここで、/mb22a/ouchims/koushukai/bin/というのは、 sdfred20070827を置いてあるディレクトリ名なので、ユーザごとに変えてください。 その後、以下の2つのコマンドを実行して、pathの変更を完了してください。
% source ~/.cshrc
% rehash
bashをお使いの場合:
$ emacs ~/.bashrc などとして.bashrcファイルを編集します。
PATH=/mb22a/ouchims/koushukai/bin/sdfred20070827/bin:$PATH
などとして、PATH変数にsdfredの実行ファイルディレクトリを加えます。
ファイルを保存終了した後、以下のコマンドを実行してpath変更を反映します。
$ source ~/.bashrc
SDFREDに含まれるシェルスクリプト、Perlスクリプトが正しく動作する ように、環境変数 LANGおよびLC_ALLを以下のように設定します。
csh/tcshをお使いの場合:
% emacs ~/.cshrc (上記3と同様に.cshrcを編集します。)
setenv LANG C (この2行を加えます。)
setenv LC_ALL C
% source ~/.cshrc (ファイルを読み込んで環境変数の設定を反映します。)
bashをお使いの場合:
$ emacs ~/.bashrc (上記3と同様に.bashrcを編集します。
export LANG=C (この2行を加えます。)
export LC_ALL=C
$ source ~/.bashrc(ファイルを読み込んで環境変数の設定を反映します。)
IRAFを使う場合には、カレントディレクトリで、mkiraf を行っておく 必要があります。その他、各自の解析環境で必要な設定をあらかじめ完了し ておいてください。
一通り設定が完了したら、
% env
% which SDFREDのコマンド名
例 % which namechange.csh
として解析を行おうとしているシェルで環境変数やPATHが正しく設定されているかを確認します。
SDFREDを使ってSuprime-Camのrawデータから整約済み画像を作る手順を
示します。解析は、以下の11の処理からなります。
■■解析の流れ■■
処理の内容 (所要時間A,B): 用いるプログラム名
(1)画像ファイル名の変換および画像の確認___________ (1秒,1秒): namechange.csh
(2)bias引きおよびoverscanの切り取り_______________(20秒,1分): overscansub.csh
(3)flat 作り_____________________________________ (6分,20分): mask_mkflat_HA.csh
(4)感度補正 (flat fielding)______________________ (30秒,2分): ffield.csh
(5)歪補正(distortion correction)および微分大気差補正(1分,6分): distcorr.csh
(6)PSF 合わせ___________________________________ (40分,80分): psfmatch_batch.csh
(7)sky の差し引き________________________________ (1分,3分): skysb.csh
(8)AG probeの影を自動でマスク_____________________(15秒,2分): mask_AGX.csh
(9)画像を目で見て、悪い部分をマスク_______________(15秒*,1分*): blank.cshなど
(10)組み合わせ規則作り(matching)_________________(2分,15分): makemos.csh
(11)組み合わせ(mosaicing)______________________ (3分,12分): imcio2a
*(所要時間)は国立天文台の ana*.adc のローカル作業領域 /wa を使って、 a) 練習用データ(5shot)を解析した場合にかかった時間、 b) 別のデータ(17shot)を解析した場合にかかった時間。 この時間は目安で、データ量や使用するコンピュータに依存します。 また、所要時間はデータ数に対し線形ではないこともわかると思います
■■■■■■■■■
基本的な流れとしては、ユーザーが各処理に用いるデータファイル名を
書いたリストファイルを作り、そのリストファイルをSDFREDのソフトウェアに与え
て実行します。これを上記の11個の処理に対して行えば整約済み画像(最
終画像)が得られます。(本マニュアルのAppendixには、最終画像を得た後
の処理に対して使えるソフトウェアを紹介しています。ここで紹介しているソフト
ウェアは無保証の試験版ですので、使われる際は注意してください。)
ちなみに、処理を終えた画像ファイルには、1つの処理が終わるごとに 名前が変わります。最初の処理を除いて、ファイルの名前には処理を代表す る頭文字がつけられていきます。
以下、SDFREDで作られる画像ファイル名の一例です。
==============================================================
処理前(rawデータ)_ SUPA00204613.fits
(1)の処理後_____ H030425object025_si001s.fits
(2)の処理後_____ To_RH030425object025_si001s.fits
(3)の処理後_____ (変化なし:flat画像*mflat*.fitsが作られる)
(4)の処理後_____ fTo_RH030425object025_si001s.fits
(5)の処理後_____ gfTo_RH030425object025_si001s.fits
(6)の処理後_____ pgfTo_RH030425object025_si001s.fits
(7)の処理後_____ spgfTo_RH030425object025_si001s.fits
(8)の処理後_____ AspgfTo_RH030425object025_si001s.fits
(9)の処理後_____ bAspgfTo_RH030425object025_si001s.fits
(10)の処理後___(変化なし:組み合わせ規則を示したファイル*.mosが作られる)
(11)の処理後___(変化なし:ばらばらの画像が一枚に合わされた最終画像ができる)
==============================================================
(注意1)普通、ある処理を行うときは、その直前の処理で作られた画
像を入力ファイルとして使います。たとえば、(5)の処理を行うときは、
gfTo_RH*.fitsと名前のついたファイルです。したがって、ディスクスペー
スを節約するため、すでに処理に使われなくなった画像ファイルを消しても
かまいません。ただし、いつか解析をやりなおす時のために、「(1)の処
理後」、「(4)の処理後」、「(8)の処理後」の画像(つまり、
H*.fits, fTo_RH*.fits, AspgfTo_RH*.fitsの画像)は消さないでおくと便
利でしょう。
(注意2)各段階で処理される入力ファイルは、カレントディレクトリ に存在しなければなりません。カレントディレクトリ以外の場所にあるファ イルに対して処理を行いたい場合には、それらのファイルにシンボリックリ ンクを張るなどしてカレントディレクトリ上のファイルとしてアクセス出来 るようにしなければなりません。
(シンボリックリンク作成の例)
% ln -s [path to the data directory]/*.fits .
ここから先は、上記の(1)から(11)までの処理について一つ一つ解析方法を解説します。
どのファイルがどの日に撮られ、どのCCD によるデータかがすぐわかる
ように、ファイル名を SUPA.... からH[年月日][fileの種類と番号]_[チッ
プ名].fitsに変えます。namechange.cshというコマンドを使います。
コマンド:
% namechange.csh [SUP file names]
ここで
・[SUP file names]: 名前を変えたいファイル名のリスト
上の注意で述べたように、コマンドは、処理に使うファイルの置かれて いるディレクトリで実行しなければなりません。これは以下の全段階に共通 のルールです。
例)
% cat spcam_training_data.tar.gz | gzip _d | tar xvf -
練習用データを展開する
% cd spcam_training_data
データのあるディレクトリにいく
% ls -1 *.fits > namechange.lis
名前を変えるファイル名のリストを作る(ls -1の -1は「マイナス イチ」です。この後にもあるls -1の-1は全て「マイナス イチ」なので注意。
% namechange.csh namechange.lis
namechange.cshを実行
ちなみに、
% cat namechange.lis
SUPA00195120.fits
SUPA00195121.fits
SUPA00195122.fits
...
実行後)
SUPA...という名前のファイルは以下のようなファイル名に変わる
H030330object044_si001s.fits
H030330object044_si002s.fits
H030330object044_si005s.fits
...
実行後のチェックポイント)
SUPA...という名前のファイルがちゃんとH…という名前に変わっ
ているはずです。lsコマンドで確認できます。
この作業を行ったあと、画像の確認を行ってください。どれがオブジェ クトフレームか?
どれがフラットに使えるか?標準星として使えるフレームはどれか?、 さらにSAOimage (ds9)などを使って、星像が歪んでいる画像はないかなどを 見てください。この時、観測ログがあればそれも参考にしてください。
練習用データなら、
H030425object025_*.fits
H030429object017_*.fits
H030429object021_*.fits
H030429object022_*.fits
H030429object023_*.fits
がオブジェクトフレーム(ターゲットの天体を写した画像)であり、
H030330object044_*.fits
が標準星のフレームです。
(参考)Suprime-Camの10枚のCCDの並び方は次のようになっています。
________ AG プローブの位置 ______
w67c1__ w6c1_ si006s_ si002s__ w7c3
w93c2__ w9c2_ si005s_ si001s__ w4c5
各画像からbiasを引きます。さらに、いらなくなったoverscanの部分を 切り取ります。
overscansub.cshというコマンドを使います。(bias引きは、overscanの
値をbias値と見なし、overscan のそれぞれの行のメジアンを各行から引く
ことで bias 差し引きが行われます。)
コマンド:
% overscansub.csh [overscansub.lis]
ここで
・[overscansub.lis]:biasを引きとoverscanの部分を切り取りたいファ イル名のリスト
例)
% ls -1 H030*.fits > overscansub.lis
解析に使う全て(キャリブレーションも含む)の画像のリストを作る
% overscansub.csh overscansub.lis
overscansub.cshを実行
ちなみに、
% cat overscansub.lis
H030330object044_si001s.fits
H030330object044_si002s.fits
H030330object044_si005s.fits
...
実行後)
以下のようなファイル(overscan bias引きと切り取り済み画像)ができる
To_RH030330object044_si001s.fits
To_RH030330object044_si002s.fits
To_RH030330object044_si005s.fits
...
実行後のチェックポイント)
画像上で、天体が写っていない部分(背景)のカウント数が、元の画像
に比べおよそ1万カウント程度減っているはずです。これは、画像からbias
を引いた結果です。引かれるカウント数(biasの値)は、CCDごと、pixelご
とに異なります。
overscanの部分は切り取られるため、処理後は若干画像が小さくなりま
す。IRAFのimheadなどを使って、画像のpixel数が変化しているのを見てと
ることができます。(例: cl> imhead H*.fits )
感度補正に使う画像(flat)を作ります。mask_mkflat_HA.cshというコマンドを使います。
(天体やAG probeの影などは自動でマスクされ、median flatが作られます。)
コマンド:
% mask_mkflat_HA.csh [mkflat.lis] [head name] [lower value] [uppwer value]
ここで
・[mkflat.lis] : フラットを作るのに使うファイルのリスト
・[head name] : 作られるフラットの頭の部分の名前
・[lower value]: 作られるフラットの最低値(それ以外はマスク)[0.5を推奨]
・[uppwer value]: 作られるフラットの最大値(それ以外はマスク)[1.3を推奨]
例)
% ls -1 To_RH030*.fits | gawk '$1!~/To_RH030330/ {print $0}' > mkflat.lis
フラットを作るのに使うファイルのリストを作る。
標準星(To_RH030330*.fits)を除くオブジェクトフレームからフラットを作る。
% mask_mkflat_HA.csh mkflat.lis obj 0.5 1.3
mask_mkflat_HA.cshを実行
ちなみに、
% cat mkflat.lis
To_RH030425object025_si001s.fits
To_RH030425object025_si002s.fits
To_RH030425object025_si005s.fits
...
実行後)
以下のような名のファイル(フラット画像)ができる
obj_mflat_si001s.fits
obj_mflat_si002s.fits
obj_mflat_si005s.fits
...
実行後のチェックポイント)
フラット画像は、1.0カウントを中心にカウントがばらついているはずで す。また、この画像は場所毎に極端なデコボコは少なく、滑らかにカウント が変わっている場合が多いです。(ただしUバンドやzバンドより赤いバン ドの画像はデコボコが多いです。)しかし、デコボコといっても連続的にカ ウント数が減っているはずです。もし、カウントの場所ごとの変化が不連続 になるようでしたら、うまくフラット画像が作れていない可能性があります。
ちなみに、-32768という極端に小さいカウントが入っているpixelがみら
れるはずです。これは、ブランクするpixelに対して埋め込まれる値で、異
常な結果ではありません。
(注意1)
フラット作りに使える画像は、大きく分けて3種類あります。「blank
fieldの画像」、「twilight画像」、そして「dome画像」です。最も良質の
フラットは、「blank fieldの画像」を使うと作ることができます。
(「blank fieldの画像」は、解析しようとする天域と同じでも問題ありま
せん。100-200pixを越えるような大きな天体が無ければ問題ありません。)
ちなみに、上記の2種類もしくは3種類の画像を混ぜてフラットは作らない
でください。3種類の画像はそれぞれ背景光の傾きが異なるため、出来上が
るフラット画像がおかしくなる場合があります。(たとえば、カウントが不
連続な横筋が入るなど。これは本パッケージのアルゴリズムと関係していま
す。)
(注意2)
フラットは、原理的に3ショット分の画像(つまり各CCDに3枚の画
像)があれば作れます。しかし、フラット作りに使う画像の枚数が少なけれ
ば少ないほど、天体の影響やノイズの影響を受けやすくなります。したがっ
て、少なくとも6−7ショットの画像、理想的には20ショット以上の画像
からフラットを作ることをお勧めします。
(注意3)このコマンドでは、bad column, hot pixelなどの位置を、パ ラメターファイルに基づいて自動的にマスクさせています。デフォルトでは、 2002年8月末以降にとられたデータ(messia V + 現CCD)にパラメターファイ ルを最適化してあります。
もし、それ以前のデータを解析する場合は、mask_mkflat_HA.cshを実行
する前に以下の作業をしてください。
sdfred20070827/ のディレクトリへ行き、
・2001年3月以前のデータの場合 (messia III + old CCDの場合)
% cp sdfredSH/mask_mkflat_HA/blankmap_oldCCD/* sdfredSH/mask_mkflat_HA/blankmap/
・2001年4月以降、2002年8月末以前のデータの場合 (messia III + 現CCDの場合)
% cp sdfredSH/mask_mkflat_HA/blankmap_messiaIII/* sdfredSH/mask_mkflat_HA/blankmap/
を実行します。
また、元の状態に戻す場合は、
% cp sdfredSH/mask_mkflat_HA/blankmap_messiaV/* sdfredSH/mask_mkflat_HA/blankmap/
を実行すれば良いです。
オブジェクトフレームに対して感度の補正をします。
コマンド:
% ffield.csh [ffield_mf.lis] [ffield_im.lis]
ここで
・[ffield_mf.lis]: 使用するフラット画像のリスト
・[ffield_im.lis]: 感度補正を行いたい画像のリスト
例)
% ls -1 obj_mflat*.fits > ffield_mf.lis
(3)で作ったフラットの名前が載ったリストを作る
% ls -1 To_RH030*.fits > ffield_im.lis
感度補正を行う画像(オブジェクトと標準星フレーム)のリストを作る
% ffield.csh ffield_mf.lis ffield_im.lis
ffield.cshを実行
ちなみに、
% cat ffield_mf.lis
obj_mflat_si001s.fits
obj_mflat_si002s.fits
obj_mflat_si005s.fits
...
% cat ffield_im.lis
To_RH030330object044_si001s.fits
To_RH030330object044_si002s.fits
To_RH030330object044_si005s.fits
...
実行後)
以下のような名前のファイル(感度補正済みの画像)ができます
fTo_RH030330object044_si001s.fits
fTo_RH030330object044_si002s.fits
fTo_RH030330object044_si005s.fits
...
(実行後のチェックポイント)
うまく出来た感度補正済み画像を見ると、背景光のカウント数がほぼ平
らになっているはずです。また、視野の端にあるCCDつまり、w67c1, w93c2,
w7c3, w4c5などにあった巨大な背景光のムラ(半月状の形)もほとんど無く
なっているはずです。しかし、たまにこの背景光のムラが消えず、カウント
が数パーセント高く(または低く)なってしまうことがあります。
主焦点光学系および微分大気差による画像中の歪みを同時に補正します。
コマンド:
% distcorr.csh [distcorr.lis]
ここで
・[distcorr.lis]: 歪み補正する画像のリスト
例)
% ls -1 fTo_RH030*.fits | gawk '$1!~/fTo_RH030330/ {print $0}' > distcorr.lis
歪補正を行うオブジェクト画像のリストを作る
% distcorr.csh distcorr.lis
distcorr.cshを実行
ちなみに、
% cat distcorr.lis
fTo_RH030425object025_si001s.fits
fTo_RH030425object025_si002s.fits
fTo_RH030425object025_si005s.fits
...
実行後)
以下のような名前のファイル(歪み補正済みの画像)ができます。
gfTo_RH030425object025_si001s.fits
gfTo_RH030425object025_si002s.fits
gfTo_RH030425object025_si005s.fits
...
実行後のチェックポイント)
出来上がった画像は、元の画像と比べると数pixから数十pix歪んでいる
ように見えます。画像の左右(または上下)の縁の部分に注目すると、その
違いが分かりやすいです。この処理は、ヘッダーの位置情報を読んできて、
計算式に当てはめて補正量を決めています。したがって、この処理で画像作
りに失敗することは(原理的に)ありません。
(参考)なお、本来はこの歪みの量は波長によって異なるのですが、
SDFRED では R band の量を元に全てのバンドで同じ補正をしています。
シーイングによる画像間のPSFの大きさの違いを合わせます。
コマンド:
% psfmatch_batch.csh [psfmatch_batch.lis] [max number of objects] [min peak flux] [max peak flux] [min FWHM] [max FWHM] [target FWHM]
ここで
・[psfmatch_batch.lis]:PSF合わせをする画像のリスト
・[max number of objects]:PSFの測定に使うstellar objectの数
・[min peak flux]:PSF測定に使うstellar objectのflux peakの許容最小値
・[max peak flux]:PSF測定に使うstellar objectのflux peakの許容最大値
・[min FWHM]:PSF測定に使うstellar objectのFWHMの許容最小値
・[max FWHM]:PSF測定に使うstellar objectのFWHMの許容最大値
・[target FWHM]:目標にする画像のFWHM(元々この値よりFWHMが大きい画像は実行後、単にコピーされる)
例)
% ls -1 gfTo_RH03042*.fits > psfmatch_batch.lis
PSF合わせを行うオブジェクト画像のリストを作る
% psfmatch_batch.csh psfmatch_batch.lis 50 2000 30000 2.0 7.0 3.7
psfmatch_batch.cshを実行
ちなみに、
% cat psfmatch.lis
gfTo_RH030425object025_si001s.fits
gfTo_RH030425object025_si002s.fits
gfTo_RH030425object025_si005s.fits
...
実行後)
以下のような名前のファイル(PSF合わせ済みの画像)ができる
pgfTo_RH030425object025_si001s.fits
pgfTo_RH030425object025_si002s.fits
pgfTo_RH030425object025_si005s.fits
...
実行後のチェックポイント)
プログラムの終了時に以下のように処理の結果が示されます。
pgfTo_RH030429object017_si001s.fits 3.70 0 5 38 6 0
これは左から順に1列目が「画像名」、2列目「PSF合わせ後のPSFの FWHMの大きさ(pix単位)」、3−7列目が「PSFのFWHMの大きさを中心に、 FWHMが±0.2pixの範囲にある天体の個数」です。この3−7列目の意味は、 例えば上記の場合なら、PSFの大きさが3.5 pixのものは0天体、3.6pixのも のは5天体、3.7pixのものは38天体、3.8pixのものは6天体、3.9pixのも のは0天体だけ、処理済みの画像上にあることを意味します。
3−7列目の情報は、うまくPSF合わせが出来たかどうか見る指標にな ります。うまく出来た画像は、5列目あたりを中心に3列目または7列目に 行くにつれ、数が減っていく傾向があるはずです。また、うまく処理が出来 た場合、5列目の値(中心の値)はたいてい10を超えています。このよう な傾向が見られないものについては、手動でPSFの大きさを測って確認する ことをお勧めします。
手動でPSFを測るにはIRAFのimexamが便利です(ds9を立ち上げ、
cl> imexam *.fits とし画像上で星らしい天体(以下の参考4を参照)
を探し、rまたはaを押してFWHMを測る)。この際、一つ注意すべき点があり
ます。天体のFWHMの大きさは、測るのに用いたソフトウェアにより
値が変わります。これは用いるフィッティングの関数の違いなどに
よるものです。SDFREDでは、SExtractorが測ったFWHMの値を採用しています。
これは、IRAFで測ったFWHMと値が違います。したがって、IRAFなどを使って
手動でPSFを測って確認する場合は、FWHMの絶対値があっているかどうかを
見るのではなく、いくつかの画像をIRAFで測って同じようなFWHMに
落ち着いているかどうかを確認することになります。
(参考1)psfmatch_batch.cshに使う各種パラメータの決め方
以下の5つのパラメータ
[max number of objects]
[min peak flux]
[max peak flux]
[min FWHM]
[max FWHM]
は、解析する画像によって変える必要があります。これは、画像の質が バンドや積分時間、取得時の天候などによって変わるためです。
これら5つのパラメータは、PSFを測るために使う画像中の星の選ぶ基準
になります。ユーザーが選んだ5つのパラメータが適当かどうかを見るため
にはstarselect.cshを使うと便利です。starselect.cshは、ある画像の中か
ら星を選び、選んだ星の位置ファイルを作るプログラムです。
コマンド:
% starselect.csh [image name] [max number of objects] [min peak flux] [max peak flux] [min FWHM] [max FWHM] [output file]
ここで
・[image name]:星の位置を調べたい画像の名前
・[max number of objects]:stellar objectの数 (psfmatch_batch.cshと同じもの)
・[min peak flux]:stellar objectのflux peakの許容最小値(psfmatch_batch.cshと同じ)
・[max peak flux]:stellar objectのflux peakの許容最大値(psfmatch_batch.cshと同じ)
・[min FWHM]:stellar objectのFWHMの許容最小値(psfmatch_batch.cshと同じ)
・[max FWHM]:stellar objectのFWHMの許容最大値(psfmatch_batch.cshと同じ)
・[output file]:stellar objectの位置を示したファイル(出力)
例)
% starselect.csh gfTo_RH030425object025_si001s.fits 50 2000 30000 2.0 7.0 output.reg
starselect.cshを実行
実行後)
以下のような名前のファイル(stellar objectの位置を示したファイル)ができる
output.reg
stellar objectの位置はds9を使って表示することができます。
% ds9 gfTo_RH030425object025_si001s.fits
として画像を表示させ、上側にあるボタン Regionをクリック、その後、 loadをクリックして、output.reg と打ち込みリターン。選ばれた天体は、 画像上に緑色の丸で示されます。選ばれた天体の半分以上が本物のstellar objectだったら用いた5つのパラメータは妥当と考えて良いです。これと同 じ値をpsfmatch_batch.cshのパラメータに使えます。
もし、解析する画像の中に質が大きく異なるものが含まれる場合は、こ
の作業を異なる質の画像に対しても行ってください。質の異なる画像でも、
決定した5つのパラメータで本当に正しくstellar objectが選べるかどうか
チェックしてください。全ての画像でうまく動くパラメータを探してくださ
い。万一、そういったパラメータの組み合わせが無いようでしたら、
psfmatch_batch.cshは、画像の種類ごと別々に行ってください。
(参考2)目標にする画像のFWHMの決め方
全画像のPSFの大きさを予め測って、目標とするFWHM(つまり[target
FWHM])を決めておく必要があります。この作業には、fwhmpsf_batch.cshと
いうプログラムを使うと便利です。
コマンド:
% fwhmpsf_batch.csh [fwhmpsf_batch.lis] [max number of objects] [min peak flux] [max peak flux] [min FWHM] [max FWHM]
ここで
・[psfmatch_batch.lis]:PSFを測る画像のリスト
・[max number of objects] :(psfmatch_batch.cshと同じもの)
・[min peak flux]:(psfmatch_batch.cshと同じもの)
・[max peak flux]:(psfmatch_batch.cshと同じもの)
・[min FWHM]:(psfmatch_batch.cshと同じもの)
・[max FWHM]:(psfmatch_batch.cshと同じもの)
例)
% ls -1 gfTo_RH03042*.fits > fwhmpsf_batch.lis
PSFの大きさを測るオブジェクト画像のリストを作る
% fwhmpsf_batch.csh fwhmpsf_batch.lis 50 2000 30000 2.0 7.0
fwhmpsf_batch.cshを実行
実行後)
以下のような出力が得られます。
###
results ###
gfTo_RH030425object025_si001s.fits 3.60 1 6 15 13 0
gfTo_RH030425object025_si002s.fits 3.80 1 1 20 16 0
gfTo_RH030425object025_si005s.fits 3.60 2 13 19 0 0
…
3.3 |
3.4 |
3.5 |**
3.6 |**
3.7 |*
3.8 |**
3.9 |**
4.0 |
4.1
|*
出力の前半は、個々の画像に対するPSFの大きさを示します。各列、「個々
の画像の名前、PSFの測定値(pixel単位)、および測定の根拠とした天体の個
数(5列)」を示します。後半は、測定値vs.画像の数 のヒストグラムで
す。
なお、fwhmpsf_batch.cshは多数の画像のPSFを一度に測るプログラムで すが、一つの画像についてだけPSFを測りたい場合はfwhmpsf.cshを使ってく ださい。使い方は、fwhmpsf_batch.cshのリスト名を与える部分を画像名に するだけです。
例)
% fwhmpsf.csh gfTo_RH030425object025_si001s.fits 50 2000 30000 2.0 7.0
実行後)
以下のような出力が得られます。
gfTo_RH030425object025_si001s.fits 3.60 1 6 15 13 0
この結果、gfTo_RH030425object025_si001s.fitsという画像は、PSFの大
きさ(FWHM)が3.6pixであると分かります。
(参考3)実際の観測データの解析を行う際には、fwhmpsf.cshや
fwhmpsf_batch.cshを最初に全オブジェクトデータについて実行し、目標の
PSFサイズの決定に加え、データの取捨選択(どのデータを解析に含めるか)
の指標にすることが出来ます。
(参考4)1フレームの中から星らしい天体を選ぶためには、多少の練習
が必要です。基本的にはバッドピクセルや宇宙線イベントではない通常の天
体の中で、一番小さくかつ真円状に結像しているものを選びます。通常、星
でない銀河などの天体はそのフレームのPSF(星らしい天体が持つべきカウ
ントのプロファイル)に比べて優位に広がった形状をしています。観測条件
によってはPSFが十分に円くないこともありますが、imexamなどでいくつか
の候補天体のcontourとFWHMを見ていくと、数~10天体ほど見たところで、そ
のフレーム内で共通のおおよそのPSFが分かるでしょう。いったんPSFが分か
れば、後はそのPSFと同等のサイズ・形状の天体を探していけばそれが星ら
しい天体(QSOなどの恒星状天体も含みます)ということになります。
(注意)上述のpsfmatch_batch.csh, starselect.csh,
fwhmpsf_batch.cshなどは、Suprime-Camの視野の数分の1から全面に広がる
巨大な天体の画像(球状星団や近傍銀河など)に用いると誤作動する可能性
があります。これは、込み合っている天域では、stellar objectを自動で探
すのが難しくなるためです。うまく動作しているかどうかを手動で確かめて
ください。うまくいっていない場合は、psfmatch_batch.cshなどを用いず、
手動でPSF合わせを行う必要があります。
背景光(sky)を画像から差し引きます。
コマンド:
% skysb.csh_ [skysb.lis] [sky-mesh]
ここで
・[skysb.lis]:skyを引く画像のリスト
・[sky-mesh]:skyを決めるmeshの大きさ(pix単位, 少なくともターゲッ ト天体の大きさの2倍以上の値でなくてはいけない。)
例)
% ls -1 pgfTo_RH03042*.fits > skysb.lis
sky引きを行うオブジェクト画像のリストを作る
% skysb.csh skysb.lis 64
skysb.cshを実行
ちなみに、
% cat skysb.lis
pgfTo_RH030425object025_si001s.fits
pgfTo_RH030425object025_si002s.fits
pgfTo_RH030425object025_si005s.fits
...
実行後)
以下のような名前のファイル(sky引き済み画像)ができる
spgfTo_RH030425object025_si001s.fits
spgfTo_RH030425object025_si002s.fits
spgfTo_RH030425object025_si005s.fits
...
実行後のチェックポイント)
処理済みの画像は、背景(天体の無い場所)が、およそ0カウントを中心に
+/−にばらついているはずです。
(注意)(6)と同様に、Suprime-Camの視野の数分の1から全面に広が
る巨大な天体の画像に用いると誤作動する可能性があります。これは、込み
合っている天域では、背景光の高さを見積もることが難しくなるためです。
うまく動作しているかどうかを手動で確かめてください。うまくいっていな
い場合は、skysb.cshを用いず、手動で背景光の高さを決めて差し引きを行
う必要があります。
画像上にAG probeによってできた影(上側のCCDに現れる)をマスクしま
す。マスクする範囲は、fitsヘッダーにあるAG probeの位置情報から自動的
に決められます。
コマンド:
% mask_AGX.csh [mask_AGX.lis]
ここで
・[mask_AGX.lis]:AG probeの影にマスクをかける画像のリスト
例)
% ls -1 spgfTo_RH03042*.fits > maskAGX.lis
マスクをかけるオブジェクト画像のリストを作る
% mask_AGX.csh maskAGX.lis
skysb.cshを実行
ちなみに、
% cat maskAGX.lis
spgfTo_RH030425object025_si001s.fits
spgfTo_RH030425object025_si002s.fits
spgfTo_RH030425object025_si005s.fits
spgfTo_RH030425object025_si006s.fits
...
実行後)
以下のような名前のファイル(AG probeの影をマスクした画像)ができる。
AspgfTo_RH030425object025_si001s.fits
AspgfTo_RH030425object025_si002s.fits
AspgfTo_RH030425object025_si005s.fits
...
実行後のチェックポイント)
AG probeの影が映っている画像は、上側が数百pixかそれ以下の大きさで
マスクの値(-32768)が埋め込まれているはずです。AG probeの影は、いつも
現れるものではありません。また、現れるにしてもAG probe側にある5つの
CCD (w67c1, w6c1, si006s, si002s, w7c3)しかありません。AG probe
の影が画像に映っていない場合は、何も処理されません。
観測状況や装置の不具合などで、画像の一部分がおかしくなっている場
合があります。このような部分は、マスクして最終画像には残らないように
します。基本的には画像を一枚一枚目で見て、悪い部分を見つけます。正常
な場所では、背景(sky)の値は0を中心にばらついています。sky の値が系
統的に0からずれている領域は、おかしい部分の候補となります。おかしい
部分は、その形(または用途)などによって以下に述べる3つのプログラム
(line_blank, circular_blanks, blank.csh)を用いてマスクします。
(参考)1つのターゲット天体に対して観測データが複数ショットある
場合、仮におかしい部分をマスクするのを忘れてしまっても最終画像がおか
しくなるケースはあまりありません。普通、マスクかけは細かいところまで
行う必要はありません。
(I)satellite trailをマスクする方法(一枚ずつ処理): line_blank
露出している間に視野中を人工衛星が通ったためにできた跡をsatellite
trailと呼びます。観測する方向によっては、satellite trailが数ショット
に一枚程度現れることがあります。
コマンド:
% line_blank [input image] [x1] [y1] [x2] [y2] [width] [blank value] [output image]
ここで
・[input image]:マスクをかける画像名
・[x1] [y1] [x2] [y2] : satellite trailが(x1,y1)と(x2,y2)を通る
・[width]:satellite trailの太さ
・[blank value]:マスク領域に使う値(通常-32768を使う)
・[output image]:マスクをかけた後の画像名
練習データにはsatellite trailは無いので、練習デー
タに対してこの処理を行う必要はありません。しかし、敢えて使い方を示す
と以下のようになります。
例)
% line_blank AspgfTo_RH030425object025_si001s.fits 88 112 1940 837 30 -32768 lAspgfTo_RH030425object025_si001s.fits
中心が(X,Y)=(88,112),(1940,837)を通る太さ30pixのマスクをかける
実行後)
以下のような名前のファイル(マスクした画像)ができます。
lAspgfTo_RH030425object025_si001s.fits
(II) 円形の領域をマスクする場合(一枚ずつ処理): circular_blanks
コマンド:
% circular_blanks [input image] [blanklist( x y radius)] [blank value] [output image]
ここで
・[input image]:マスクをかける画像名
・[blanklist( x y radius)]:円形マスクの中心位置(x,y)と半径radiusが
書かれたリスト(複数行書けば複数個の円形マスクが一度にできる)
・[blank value]:マスク領域に使う値(通常-32768を使う)
・[output image]:マスクをかけた後の画像名
練習データには円形マスクをかけるほど悪い部分は無いので、練習デー
タに対してこの処理を行う必要はありません。しかし、敢えて使い方を示す
と以下のようになります。
例)
% circular_blanks lAspgfTo_RH030425object025_si001s.fits blanklist -32768 clAspgfTo_RH030425object025_si001s.fits
blanklistに書かれた中心位置と半径をもつマスクをかける
ちなみに、
% cat blanklist
356 1835 80
1202 3582 100
...
それぞれ(x,y,r)=(356,1835,80), (1202,3582,100)…の円に対応
実行後)
以下のような名前のファイル(マスクした画像)ができます。
clAspgfTo_RH030425object025_si001s.fits
(III)四角形の領域をマスクする場合(バッチ処理ができる): blank.csh
コマンド:
% blank.csh_ [blank.lis]
ここで
・[blank.lis]:マスク(四角形の領域)をかける画像のリスト
これに加え、blank.cshの入力パラメータとして、同じディレクトリに
blankmap_[画像名(.fitsはつかない)] という名前のblank位置を示した
ファイルを同じディレクトリに置いておく必要がある。
以下の処理は、練習データに対して行ってください。
例)
% ls -1 AspgfTo_RH03042*.fits > blank.lis
マスクをかけるオブジェクト画像のリストを作る
% blank.csh blank.lis
blank.cshを実行
ちなみに、
% cat blank.lis
AspgfTo_RH030425object025_si001s.fits
AspgfTo_RH030425object025_si002s.fits
AspgfTo_RH030425object025_si005s.fits
...
マスク位置を示したファイル(練習データのディレクトリに入っています)
% ls blankmap_AspgfTo_RH03042*
blankmap_AspgfTo_RH030425object025_si002s
blankmap_AspgfTo_RH030429object017_si001s
blankmap_AspgfTo_RH030429object017_si005s
blankmap_AspgfTo_RH030429object021_si002s
blankmap_AspgfTo_RH030429object021_w7c3
blankmap_AspgfTo_RH030429object023_si006s
(注意)これらblankmap_*のパラメータファイルは、SDF projectによっ
て作られたものです。このため、必ずしも使用している練習データに対して、
適切にマスクするようにはなっていません。つまり、マスクすべきでない部
分までマスクするようなパラメータになってしまっています。しかしながら、
解析の仕方を学ぶために練習データをいじるレベルではこのままでも問題あ
りません。(可能なら、自分で適切なパラメータファイルを作り直してみて
ください。)
% cat blankmap_AspgfTo_RH030425object025_si002s
1974 2034 2356 2634
1528 1804 4024 4070
ここで、各行は1個の四角形のマスクを意味します。各行4つの列から
なり、x1 x2 y1 y2 の順で書きます。x=x1-x2, y=y1-y2の四角形の領域がマ
スクされます。上記の例だと、x=1974-2034, y=2356-2634の四角形と
x=1528-1804, y=4024-4070の四角形といった具合にマスクされます。
Blankmap_* のファイルを作る時にはIRAFのimexamを使うと便利です。
(チェックしたい画像をds9に表示した状態で、cl> imexam とします。
ds9の画像上で bを二回押して四角形の2頂点を決めると位置がx1 x2 y1 y2
の順に出力されます。これをそのままカットアンドペーストしてblankmap_*
に書き込むことができます。)
実行後)
以下のような名前のファイル(マスクした画像)ができます。
bAspgfTo_RH030425object025_si001s.fits
bAspgfTo_RH030425object025_si002s.fits
bAspgfTo_RH030425object025_si005s.fits
...
実行後のチェックポイント)
blankmap_* のファイルで指定した位置がマスクされているはずです。
1−2枚取り出して確認してください。対応するblankmap_* のファイルが
無い画像は、何も処理されません。
同じターゲット天体(天域)を複数回撮影した場合、複数の画像を重ね
合わせて画質(S/N)を上げることができます。複数の画像を重ねる為には、
画像間の位置の違いを知らなくてはいけません。また、異なる画像では天体
からのfluxが積分時間や空の透過率の違いによって違ってきてしまいます。
このような画像間の位置やfluxの違いを測定しておく作業がmatchingです。
matchingの作業では、各画像に写っている星(またはstellar objects)を
検出し、それらを元に各画像間の位置関係とflux比を求めます。
コマンド:
% makemos.csh [makemos.lis] [starsel nskysigma] [starsel npix] [starsel peakmin] [starsel peakmax] [aperture phot radius in pix] [output mos-file name]
ここで
・[makemos.lis]:matchingを行う画像のリスト
・[starsel nskysigma]:何倍のskysigmaが有意か(matchingに使う星を選ぶ基準)
・[starsel npix]:有意なskysigmaが何pix連なったとき天体と見なすか (matchingに使う星を選ぶ基準)
・[starsel peakmin]:stellar objectのflux peakの許容最小値(matchingに使う星を選ぶ基準)
・[starsel peakmax]:stellar objectのflux peakの許容最大値(matchingに使う星を選ぶ基準)
・[aperture phot radius in pix]:測光に使う円形apertureの半径の大きさ
・[output mos-file name]:chip間の相対位置、感度が書かれた出力ファイルの名前
例)
% ls -1 bAspgfTo_RH03042*.fits > makemos.lis
matchingをするオブジェクト画像のリストを作る
% makemos.csh makemos.lis 5 20 500 10000 10 all.mos
makemos.cshを実行
ちなみに、
% cat makemos.lis
bAspgfTo_RH030425object025_si001s.fits
bAspgfTo_RH030425object025_si002s.fits
bAspgfTo_RH030425object025_si005s.fits
...
実行後)
以下のような名前のファイルができる
all.mos
中身は、
% cat all.mos
bAspgfTo_RH030425object025_si001s.fits 0.000000 0.000000 0.000000 1.000000
bAspgfTo_RH030425object025_si002s.fits 1.601005 4088.551744 -0.000275 0.989406
bAspgfTo_RH030425object025_si005s.fits
-2118.787371 1.104977 -0.000282 0.983195
のように5列からなるリストです。
このファイルの意味は次のようになっています。まず、
makemos.lisの一番最初に書かれていた画像、
bAspgfTo_RH030425object025_si001s.fits(今回の場合)が基準になります
(基準画像)。all.mosの2行目の情報は、この基準画像に対して、
bAspgfTo_RH030425object025_si002s.fitはX方向(右が正)に1.6pix、Y方
向(上が正)に4088.6pix、回転角が-0.000275radian(反時計回り)、flux
比が、0.989倍であるという意味です。
実行後のチェックポイント)
上記のようにall.mosが5列からなるリストになっていれば大抵の場合は 成功していることを意味します。成功しなかった場合は、all.mos自体が作 られなかったり、作られてもエラーメッセージが含まれていたりおかしなリ ストになっていたりします。
出来上がったall.mosの中身は良く見てください。X,Yの位置やflux比が
リーズナブルになっているかどうか確認してください。これらの項目におか
しな値が入っている場合は、matchingが失敗しています。
all.mosの中身の大まかな確認方法には以下のような例が考えられます。 各自で工夫されてよい方法を確立されたらぜひ開発チームにもお知らせくだ さい。
1.all.mos内の2列目と3列目の値をそれぞれ縦軸・横軸としてプロット してみます。この図は各ショットの基準画像からの位置ずれを表しているの で、観測時のディザーパターンと一致するかどうかを見れば、all.mosのX、 Yの出力がリーズナブルかどうかを判断できます。大きな外れ値がある場合 は、そのチップのmatchingに失敗している可能性があります。
2.各チップ間の距離はショットごとにそれほど変わらずほぼ一定のは ずなので、all.mos内の2列目と3列目を使ってチップ間の距離を計算すれば、 matchingの失敗を判定出来ます。 たとえば、si001sチップとw67c1チップと の間の距離が、とあるショットだけで他のショットでの値と大きく異なって いれば、そのショットのデータのマッチングに失敗している可能性がありま す。
3.all.mos内の5列目の値(flux比)を各ショット間で比較してみます。 安定した天候条件下で取られたショット間のflux比は、積分時間に比例して いると考えられます。
4.all.mosを用いてモザイキングされた画像を直接目で確認することは matchingが成功したかどうかの重要なチェック事項です。次節も参照してく ださい。
makemos.cshを実行中に、各画像に対して、
…
selected stars = 721
…
のように、検出されたstellar objectの個数が表示されます。この数が 極端に少ない(30個以下)または多い場合はall.mos作りが失敗すること があります。次の4つのパラメター値を変えて調節してください。[starsel nskysigma]、[starsel npix]、[starsel peakmin]、および[starsel peakmax]です。matchingが失敗する原因は、この4つのパラメータの取り方 が悪いために適切なstellar objectを画像から選び出せないことにあること が多いです。
(注意)1つの天体(天域)に対して画像が1ショット分しかない場合
や、複数ショットの画像の組み合わせが必要ない場合はこの処理、および
(11)の処理を行う必要はありません。
(参考)次節のモザイキング過程では、all.mosファイル内の値を用いて
以下の公式に従い各入力ファイルの位置変換が行われます。
x_mos cos(-theta), -sin(-theta) (x-x_local) ( )=( )( ) y_mos sin(-theta), cos(-theta) (y-y_local)
ここで、右辺のx、yが入力ファイルの変換される各ピクセルの座標で、
左辺のx_mosとy_mos は、変換後のx, y座標です。右辺のx_local とy_local
はmosファイルの2列目、3列目(x, yオフセット)、thetaは4列目
((x,y)=(0,0) を回転軸としてx軸から左回りに測った回転角度 (rad))に対
応しています。
手順(10)のmatchingで求めた組合せ規則を元に、バラバラの画像を1枚
に組合せ、足し合わせます。
コマンド:
% imcio2a [引数] [mos file] [result image]
ここで
・[引数]:imcio2aで使う引数(-dist_clip -nline=20 -dtype=FITSFLOAT -ignor=-32768)
・[mos file]:matchingで作った組合せ規則のファイル
・[result image]:最終画像の名前
例)
% imcio2a -dist_clip -nline=20 -dtype=FITSFLOAT -pixignr=-32768 all.mos all.fits
imcio2aを実行
ちなみに、
% cat all.mos
bAspgfTo_RH030425object025_si001s.fits 0.000000 0.000000 0.000000 1.000000
bAspgfTo_RH030425object025_si002s.fits 1.601005 4088.551744 -0.000275 0.989406
bAspgfTo_RH030425object025_si005s.fits -2118.787371 1.104977 -0.000282 0.983195
...
実行後)
以下のような名前のファイル(最終画像)ができる
all.fits
これが最終画像になります。この画像を元に、天体のカタログを作った
りするなど、サイエンティフィックな解析を行うことができます。
実行後のチェックポイント)
出来上がった最終画像をSAOimageなどで注意深く見てください。(10)
のmatching がうまくいかなかった場合などは、星像が歪んでいたりするこ
とがあります。
(参考1) [引数]の一つ -dist_clip はclipped meanによる画像合成を
意味します。-dist_clip の代わりに、-dist_med とすれば medianによる画
像合成が、-dist_add とすれば meanによる画像合成を作ることができます。
また、-nlineはモザイク画像作成においてy軸方向に一度に何ピクセル分処
理するかを指定しています。ショット数が大きい場合、メモリ容量の比較的
小さいコンピュータ環境では全画像をうまく扱えずコマンドが失敗すること
がありますが、-nlineを小さく設定すれば、画像を細かく分割して処理する
ことになりますので、コマンドが無事完了する可能性が高くなります。例で
はy軸方向に20ピクセルずつ分割して画像を処理するよう指示しています。
(参考2)[引数]として、-dist_clip, -dist_med, -dist_add の代わ
りに -dist_peakを与えることで、最終画像のチェックを行うことが出来ま
す。このオプションは移動天体を検出するためのもので、各ピクセルの
(max)-(median)が出力されます。通常は出力画像の全視野内に数個の天体が
見つかりますが、もしも特定の領域に多数の天体(明るいピクセル群)が見
つかった場合には、その近辺でマッチングが失敗している可能性があります。
原則として、SDFREDはファーストライトから2001年3月末までに取得され
たデータの解析には対応していません。以のデータにはそれ以降のデータで
は解消された以下のような問題が知られています。
以下の5CCDについてリニアリティに問題があることが知られています。
DET_ID=0, 1, 7, 8, 9.
fitsヘッダのWCS情報が以下のように誤って記録されています。
・CDELT1の符号が+-逆、および対応するCD行列の係数が逆転している
SDFREDのソフトウェアは、(10) matchingの段階でfitsファイルのWCS情
報を用いているため、この期間のデータに対してmatchingを行うと
makemos.cshスクリプトが正しい結果を出力しません。
1枚のCCD(DET_ID=6 (w67c1))が死んでおり、このCCDのデータが存在しません。
ただし、解析は9枚のCCDのデータに対してSDFREDを用いて通常通り行えるはずです。
SMOKAのページにもデータに関する有用な情報が記載されています。http://smoka.nao.ac.jp/about/subaru.jsp
SDFREDに対する貴重なコメントやバグレポートを頂いた以下の方々に感 謝の意を表します。
Takehiko Wada (JAXA), Chiaki Ihara (JAXA), Hitoshi Hanami (Iwate Univ), Myungkook James Jee (JHU), Kazuaki Ota (NAOJ), Yasunori Sato (NAOJ), Ryosuke Yamauchi (Tohoku Univ), Elinor Medezinski (Tel-Aviv Univ), Dovi Poznanski (Tel-Aviv Univ), and Ben Cain (MIT).
おわり
本マニュアルの目的は、以上に述べたSuprime-Camの
rawデータから最終画像を作るまでを説明することにありま
す。しかし、ユーザーの便宜を考えて以降のAppendixに、最
終画像を作った後の処理に関して大雑把なガイドラインを示しておきました。
また、この中で、便利な付属ソフトウェアの説明も行っています。手順の詳細は述
べられていませんが、解析の手助けになれば幸いです。
最終画像(整約済み画像)が出来たあとは、様々な解析ができます。例
えば、天体のカタログを作ったり、突発天体の光度変化を見たり、移動天体
を見つけたり、などなどいろいろあります。しかしながら、まずは天体のカ
タログ作りをする場合が多いです。以下では、いくつかのバンドで撮ったデー
タから天体のカタログを作るまでの流れを例にとって整約済み画像の使い方
を簡単に紹介します。
(注意)
Suprime-Camの観測データには観測時に観測システムから得られた大まか
な天球座標のWCS情報がfitsヘッダに書かれています。この座標系は、典型
的には十数秒角程度、真の天球座標からずれていることが知られており、
SDFREDによって処理された最終画像もこのずれ量を引き継ぎます。したがっ
て、真の天球座標と最終画像のピクセルとの正確な対応付けをするためには、
各ユーザが最終画像に対してアストロトリを行う必要があります。特に、カ
タログ作成時に天球座標をfitsヘッダのWCSキーワードから直接求めたり、
Suprime-Cam画像を用いて分光ターゲットの座標決めやMOSのスリットデザイ
ンを行う場合(Appendix A2)などは注意が必要です。
画像に写っている天体の明るさが何等級なのかを調べるために、標準星のデータを使います。標準星は、その明るさ(等級)が予め分かっている星のこと
です。(観測期間中に1個以上の標準星を撮像するのが普通です。)標準星のデータを元に、整約済み画像に写っている天体の1カウントが何magの明るさに
相当するかを求めます。この1カウントあたりの明るさのことを測光原点(photometric
zero-point)と呼びます。以下では、測光原点の求め方の概略を述べます。
(i) 標準星を測光する
撮像された標準星が、Suprime-CamのCCDに1秒当たり何カウントの天体として写っているかを調べます。まず、感度補正と distortion補正を行った標準星の画像(gfTo_RH*.fits)から標準星を探し出します。この際、標準星カタログにあるファインディング チャートを使います。次に、その標準星を円形の測光円(aperture)を用いて測光して、標準星が画像に合計何カウントの天体として写っているかを調 べます。標準星の画像の積分時間をt、この時の標準星のカウント数をXとすると、測光原点(1秒当たり)は、
m(zero-pt/sec) = m0 +2.5 log10(X/t)
で求められます。
練習データを用いた時の例)
感度+distortion補正済みの標準星の画像は、 gfTo_RH030330object044_*.fits です。(ここでは簡単のため、 gfTo_RH030330object044_si001s.fitsに注目します。)この画像は、2003年 3月30日に撮影したSA110フィールドの画像です。SA110フィールドは、 Landolt (1992, AJ, 104, 340)が作ったカタログに多数の標準星が掲載され ています。この論文で使うのは、標準星のファインディングチャートとそれ らの等級が書かれたリストです。
まず、gfTo_RH030330object044_si001s.fitsからサチュレーションを起
こしていない標準星を探します。次にLandoltが使った測光円の直径と同じ
大きさで、標準星を測光します。(精度はともかくとして、最も簡単な測光
方法は、IRAFのimexamを用い、天体上でaを押します。可能なら、IRAFの
apphotやSExtractorを用いる方が良いですが、0.1等級を超えるような大き
な誤差は出ません。)これで得たカウント数(上記X)に加え、画像
gfTo_RH030330object044_si001s.fitsのfitsヘッダーから積分時間(上記t)
を調べれば、上の式でm(zero-pt/sec)が求まります。
(注意1)このデータはRc bandです。普通Rc bandで得られる m(zero-pt/sec)は、27.7程度(si001sチップの場合)です。しかし、練習デー タにある標準星は、とても天候が悪い時に取得されたものなので、練習デー タの標準星からは25-26程度の値を得るはずです。)
(注意2)標準星の測光はdistortion補正まで行った画像を使います。こ
れは、distortionの補正前と補正後の画像では、点光源がCCD上に結ぶ像の
サイズが異なる、つまり同じ測光値になるべきピクセル数が異なるためです。
(ii)整約済み画像の測光原点に直す
仮に、標準星を撮影した時とターゲット(=整約済み画像に対応)を撮 影したときの空の状態(透過率など)が全く同じだった場合は、(i)で求め たm(zero-pt/sec)の値を元に整約済み画像の測光原点を簡単に求められます。
整約済み画像を作る際、(10)のmatchingの処理の所で、flux比の基 準画像を決めています。(*.mosのリストの最初に来ている画像;flux比が 1.0000になっている画像。)基準画像に全ての画像のfluxを合わせているた め、整約済み画像の測光原点を決める際は、この基準画像の測光原点を求め ることになります。基準画像の積分時間をT(sec) とすると、整約済み画像 の測光原点m_zptは、
m_zpt = m(zero-pt/sec)+2.5 log10(T)
になります。
練習データを用いた時の例)
基準画像は、bAspgfTo_RH030425object025_si001s.fits なので((1 0)を参照)、この画像の積分時間(T)をヘッダーから調べます。(ヘッダ のEXPTIMEキーワードを参照します。たとえば、
% getkey EXPTIME bAspgfTo_RH030425object025_si001s.fits
でEXPTIMEの値を出力することが出来ます。) あとは上記の式に当ては
めるだけです。(積分時間やフィルターによりますが、通常のデータは
m_zptが30-35程度の値になります。)
以上は、標準星の画像が1ショットしかない場合です。2ショット以上
ある場合は、airmass補正などを行い測光原点の精度を上げることもできま
す。(詳しくは、Ouchi, M. 2001, Master thesis, Univ. Tokyoなどを参照)
SExtractorなどを用いて天体を検出し、その天体の位置や明るさ、大き さ、形などの一覧表を作ります。この一覧表のことをカタログと呼びます。) 明るさを求める際には、(A1-1)で求めた測光原点をパラメターとして入力す る必要があります。詳しくは、SExtractorのマニュアルなどをご覧ください。
また、Appendix 2の(A2-2)のプログラムなどを用いると、画像の限界等
級が分かります。それを元に、得られたカタログが何等級より明るいものま
で信頼すべきかが分かります。
多色のカタログを作る場合は、1色のものより多少手間がかかります。
予め2つ以上のバンドの整約済み画像を作り、それに対応する測光原点を求
めておきます。この状況で、次の2つの作業が必要になります。第一に、1
つの画像を基準にして、その画像と同じ位置に天体がくるように他のバンド
の画像の位置合わせをします。この時、各バンドに写っている星の位置を頼
りに位置をあわせます。Appendix 2 (A2-3)のプログラムなどを用いると便
利です。第二に、位置合わせが終わったあと、全てのバンドのPSFの大きさ
が同じになるようにPSF合わせを行います。fwhmpsf.cshで画像のPSFを測り
つつ、IRAFのgaussなどでPSFを合わせていくと良いでしょう。
SDFREDにいくつか便利なオプションプログラムが入っています。現時点
では、試験中のため、動作に関しては保障できませんが、ユーザーの便宜を
考えて公開しています。(バグ等が見つかった場合、すぐには対処できませ
んのでご了承下さい。)
SDFREDでは、マスク処理(上記(10))を除いては、人の手を入れることな
くrawデータから整約済み画像を作ることができます。マスク処理をせずに
整約済み画像を全自動で作るプログラムがspcamred.cshです。
spcamred.cshはクイックルック的にマスク処理なしの画像でも良い場合 に適しています。さらに、spcamred.cshは途中ファイル(画像)を全て残す ため、とりあえずspcamred.cshで処理した後、マスク処理をする直前の途中 ファイルに戻って、マスク処理を行うことで完璧な整約済み画像を作る手間 が大幅に省けます。
(また、画像が10枚以上と多い場合は、マスク処理を行わなくても整
約済み画像に大きな影響を与えない場合が多いです。)
コマンド:
% spcamred.csh [object.lis] [standard.lis] [mkflat.lis] [saturation] [typical sky level] [targetPSFFWHM] [beginning step]
ここで、
・[object.lis]:ターゲット天体の画像のリスト
・[standard.lis]:標準星の画像のリスト
・[mkflat.lis]:フラットを作るのに使う画像のリスト
・[saturation]:saturation level (2001年4月以降は32500を用いればよい)
・[typical sky level]:典型的なskyの高さ(バイアスを引いた後の値であることに注意)
・[targetPSFFWHM]:PSF合わせで目標とするFWHM(pix単位、手順(6)に対応、0とすればPSF合わせは行われない)
・[beginning step]:始める解析のステップ(以下の11通り)
all:手順(2)から最後まで
*最初はallを使ってください、以下やり直しで途中からやる場合
mkflat:手順(3)から最後まで
ffield:手順(4)から最後まで
distcorr:手順(5)から最後まで
psfmatch:手順(6)から最後まで
skysb:手順(7)から最後まで
maskAGX:手順(8)から最後まで
makemos:手順(10)から最後まで
imcio:手順(11)
例)
% ls -1 *.fits > namechange.lis
% namechange.csh namechange.lis
画像ファイル名を変えておく
% ls -1 *.fits | gawk '$1!~/H030330/ {print $0}' > object.lis
ターゲット天体のリストを作る
% ls -1 *.fits | gawk '$1~/H030330/ {print $0}' > standard.lis
標準星のリストを作る
% ls -1 *.fits | gawk '$1!~/H030330/ {print $0}' > mkflat.lis
フラットに使う画像のリストを作る
% spcamred.csh object.lis standard.lis mkflat.lis 32500 21000 3.7 all
実行後)
以下のようなファイル(整約済み画像)ができる
spcamred.fits
これ以外にも、spcamred_mflat*.fitsなどのフラットなども作られます。
基本的にspcamredが生成したファイルには、*spcamred*という名前がついて
います。ただし、解析途中のfits画像は、単にAspgfTo_R などの記号が付
けられます。
(参考)
[typical sky level]や[targetPSFFWHM]を決めるためには、それぞれ
IRAFのimexamやfwhmpsf.cshなどで求めておくとよいです。
例えば、
% cl
cl> imstat *si001s.fits
% gawk '$1~/si001s/ {print $0}' object.lis > fwhmpsf_batch.lis
% fwhmpsf_batch.csh fwhmpsf_batch.lis 50 2000 30000 2.0 7.0
などとします。
プログラム名は limitmag
[SDFREDを置いたディレクトリ]/clscripts/limitmag/limitmag.clにあります。
使用例)
% cl
cl> noao
cl> digi
cl> app
cl> stsdas
cl> ana
cl> fit
必要なパッケージを呼び出しておきます。
cl> task limitmag = [SDFREDを置いたディレクトリ]/clscripts/limitmag/limitmag.cl
cl> limitmag input.fits ratio=10000. ap_diameter=10. zmag=32.24 limit=5 phist_z1=-500 phist_z2=500
input.fits : limitmagを測る画像の名前
ratio : 画像のピクセル数に対するランダムアパーチャーの割合
(この数が少ない方がランダムアパーチャーの数が増える)
ap_diameter: アパーチャーphotometryの測光直径
zmag : ゼロ点の等級
limit : 求めたい限界等級のsigmaの値
phist_z1 : ヒストグラムをガウシアンフィットする時のlower limit
phist_z2 : ヒストグラムをガウシアンフィットする時のupper limit
実行した後tektronix windowが出る。最初にランダムアパーチャーの位 置が表示されます。
少しほっておくと、ヒストグラムが現れます。f を押すとgaussianでフィッ トしてくれます。うまくフィットできたら qボタンを押します。
結果は
1sigma= 273.7 counts : 26.15 mag
5.00 sigma= 1368.3 counts : 24.40 mag
cut_xmmwideR_c1.fits 24.40 mag
のように表され、 画像の限界等級は5sigma limitで24.40 mag (1sigma
は26.15)だと分かります。
プログラム名は geomatch
[SDFREDを置いたディレクトリ]/clscripts/geomatch/geomatch.clにあります。
使用例)
% cl
cl> task geomatch = [SDFREDを置いたディレクトリ]/clscripts/geomatch/geomatch.cl
cl> geomatch input.fits output.fits reference.fits ref_starpos tmptrans_pos 8.0 peak_flux=32500.
ここで
input.fits : geometryを変えるイメージ
output.fits : geometryを変えたイメージ。
reference.fitsと同じピクセルスケールになります。
reference.fits : geometryを変えるのに基準とするイメージ
ref_starpos : reference.fitsに写っている星の位置(starselect.csh で作られる.dsoファイルの2行目と3行目を取り出せばよいです。1000 個程度の星があれば十分です。)
中身は [ x y ]
(例)
1137.584 6930.920
372.023 425.837
130.569 4936.643
692.470 313.470
325.805 2714.143
530.611 3390.951
129.504 2857.943
..
..
..
tmptrans_pos : input.fitsとreference.fitsに共通する4つ星の位置を書き込んだASCII file
(共通する4つの星は予めマニュアルで測らなくてはならなりません。)
中身は [ x(ref) y(ref) x(in) y(in) ]
(例)
1161.73 5307.90 1937.26 1372.28
358.62 5136.53 2105.22 569.26
472.74 1888.91 5353.55 668.60
1226.50 2106.76 5138.76 1423.10
あと、8.0というのはinput.fitsにある天体のうちmatchに使う星(天体)
の最大のFWHMです。また、peak_fluxというのはsatuation fluxのことでこ
れ以上の明るさ(peak値)を持つ天体はmatchに使わないことを意味します。
---
実行したあと、tektronixのwindowが仮matchの法則の確認を
してきます。良かったら q を押してください。
その後、sextractorが走ってしばらくすると、tektronixのwindowが
決定版のmatchの法則の確認をします。ここで、tektronixのwindow 上で
: reject 3
: xxorder 4
: xyorder 4
: yxorder 4
: yyorder 4
さらにtektronix window上で f を押します。
さらに x yなどを押すとx方向のresidual、y方向のresidualを見ることができます。
上記のようにすると 3 sigma rejectionを行ない、かつx**2 xy yx y**2
のtermが3次(4−1次)までとった関数でfittingを行ないます。
tektronix windowに表示されたrmsがおよそ0.2程度に収まっていれば、問題
ありません。
この確認が終ったところで、 tektroinx windowで qを押すと、
input.fitsに今決めた4次式での変換が始まります。(20分くらいで終り
ます。)
プログラム名は SPCAMim2FOCASim.csh
[SDFREDを置いたディレクトリ]/clscripts/SPCAMim2FOCASim/
SPCAMim2FOCASim.cshにあります。
使用例)
SPCAMim2FOCASim.csh suprime.fits 7021 2290 +25 art_focas.fits
などとします。ここで、
suprime.fits:_Suprime-Cam画像(入力)
7021 2290:Suprime-Cam画像上のどの天域(X,Y)から疑似画像を作るか
+25 :疑似画像のPA (-90が回転なし。もしSuprimeの画像がnorth is upならFOCASの装置上でのPAに対応する)
art_focas.fits: FOCAS疑似画像(出力)
です。
* ただいま試験運用中です。保証はできませんので、使用する際は注意 してください。しかし、すでに2回このプログラムで作ったFOCAS 擬似画像 でFOCAS/MOS 観測が行われました。(SDFおよびLockman Holeにて)いずれ も成功しています(2004年7月14日現在)。