天体データの足し合わせ

モザイキングによりフラックススケールと WCS が決定したので、次は複数ショットを足し合わせます。 ここでは、フラックススケールファイルと WCS 座標ファイルを用いて、天球面座標を平面座標に投影したデータを生成し (warp)、観測された全ショットの積分を行います (coadd)。hscPipe では coaddDriver.py というコマンドを使います。hscPipe 8では、このcoaddDriver.pyの前に、skyCorrection.pyを行う必要があります。これを行うことで、大きな天体周りのsky引きもうまく行うことが可能となります。実行方法は以下です。

# 解析ディレクトリは ~/HSC, rerun 名は test とします。
# local 環境で解析を行う場合。
skyCorrection.py ~/HSC --calib ~/HSC/CALIB --rerun test --id visit=18214..18220:2^18224..18230:2 --batch-type=smp --cores=8

# skyCorrection.py [解析ディレクトリ] --calib [calib データ用ディレクトリ]
#   --rerun [rerun 名] --id filter=[filter] tract=[tract] --selectId [visit, field, filter]
# オプション
#       --id: 出力データの filter と tract 名を指定。
#                 ** 現バージョンではここでccd指定を行うとエラーが起きますので、ccd指定はしないでください **

skyCorrection.pyが完了次第、coaddDriver.pyを実行します。coaddDriver.pyは以下の操作がパッチ毎に行われています。

  • まず jointcal.py で生成された座標ファイル(jointcal_wcs)と fgcmCalibrateTract.py で生成されたフラックススケールファイルfgcm_photoCalib)を用いて各CCDを画像変換します(出力=warp)。
  • 次にスタック(coadd)を実行します。このとき、各ショットのPSFを一致させたWarpとそれらのmedianスタックの差分を取ることで外れ値をクリップし、satellite tail、ゴースト、cosmic rayといった疑似天体を除去します。それから各ピクセルごとにmedianスタックを行います(出力=calexp: 最終天体検出に使われた局所スカイ引き後画像, $(patch):グローバルスカイ補正直後画像)。各CCDのPSFモデル(coaddPSF)も合成されます。
  • 最後に天体検出(DynamicDetection)が行われます。スカイ引き(いくつかの調整を経て最終的に128pixel mesh)をし、天体検出(天体の位置・領域だけを示したリスト作成)を行います (出力= det: BINTABLE、det_bkgd: FITS画像)。

hscPipe4 以前と異なり、PSF がうまくモデル化できていない [visit, ccd] データはカットされ、coadd のプロセスでは外されるようになりました。

coaddDriver.py ではバッチ処理が利用できます。

# 解析ディレクトリは ~/HSC, rerun 名は test とします。
# local 環境で解析を行う場合。
coaddDriver.py ~/HSC --calib ~HSC/CALIB --rerun test --id filter=HSC-G tract=0 --selectId visit=18214..18220:2^18224..18230:2 ccd=0..103 --batch-type=smp --cores=8

# coaddDriver.py [解析ディレクトリ] --rerun [rerun 名] --id filter=[filter] tract=[tract] --selectId [visit, field, filter]
# オプション
#       --id: 出力データの filter と tract 名を指定。
#       --selecteId: 足し合わせる visit を選択。field と filter で選択 (例 field=M33 filter=HSC-G) も可。
#
# jointcal.pyでフラックス攻勢を行った場合、
coaddDriver.py ~/HSC --calib ~HSC/CALIB --rerun test --id filter=HSC-G tract=0 --selectId visit=18214..18220:2^18224..18230:2 ccd=0..103 --batch-type=smp --cores=8 --config makeCoaddTempExp.externalPhotoCalibName=jointcal

検出の閾値はデフォルトで 5σ となっています。–config detectCoaddSources.detection.thresholdValue で値を変更して実行することで閾値を変更できます。

Note

coaddDriver.pyやmultiBandDriver.pyでは計算機が一度に開けるファイル数上限でエラーになることがあります。その場合は上限値を上げるか、–id patch=[patchID]と指定してパッチごとに走らせることで回避できます。

coaddDriver.py を実行するとサイエンスに使用できる coadd 画像が生成されます。以下に生成される画像ファイルをまとめます。

  • warp 画像: ~/HSC/rerun/[rerun]/deepCoadd/[filter]/[tract]/[patch]/warp-[filter]-[tract]-[patch]-[visit].fits
  • coadd 画像: ~/HSC/rerun/[rerun]/deepCoadd-results/[filter]/[tract]/[patch]/calexp-[filter]-[tract]-[patch].fits
  • 天体検出時の sky 引きパターン: ~/HSC/rerun/[rerun]/deepCoadd-results/[filter]/[tract]/[patch]/det_bkgd-[filter]-[tract]-[patch].fits

warp 画像と coadd 画像の例を図 1 に示します。coadd 画像には CORR 画像同様、マスクイメージも含まれています。

../_images/warp_coadd.png

図1:ある patch での warp 画像と coadd 画像。(左、中央) ある visit での warp 画像。(右) coadd 画像。

全ての [patch]/calexp ファイルを一度に表示させるには、以下のようにします。

# ds9 で全ての coadd 画像を表示
cd ~/HSC/rerun/[rerun]/deepCoadd-results/[filter]/[tract]/[patch]
ds9 -mosaic wcs */calexp-*.fits

# Scale -> Global にすると全体で統一されたスケールで表示。
../_images/coadd.png

図2:全 coadd 画像を一度に表示。

また、全ての画像を一つの画像で保存することができるツールを以下に公開しています。

  1. tract内におけるPatch全てを一つの画像にする

https://hsc-gitlab.mtk.nao.ac.jp/snippets/2

  1. 異なったtractにある画像全てを一つの画像にする

https://hsc-gitlab.mtk.nao.ac.jp/snippets/30

Note

画像のゼロ点は27.0mag/aduとなっています。 しかし、aperture correctionがあるので数パーセントレベルでは正しくありません。

プロセスの最後の検出天体カタログは以下に生成されます。

  • 検出天体カタログ: ~/HSC/rerun/[rerun]/deepCoadd-results/[filter]/[tract]/[patch]/det-[filter]-[tract]-[patch].fits

これは各 filter, tract, patch ごとの検出された天体リストで、測光は行われていません。

Warning

coaddDriver.py は warp 画像が存在する場合、上書きせずに warp プロセスをスキップします。coadd 画像を作り直す場合は古いファイルを移動・削除してから行って下さい。