位置とフラックススケール決定

CCD 毎の解析が終了したら、次は tract を定義し、位置とフラックススケールを決定します。

tract 定義

ここで使うコマンドは makeDiscreteSkyMap.py です。 makeDiscreteSkyMap.py ではヘッダーの座標情報を元に、引数で指定した全観測領域が収まる最大の正方形を設定し、これを 1 tract と定義します。 tract は指定した観測領域で決まるため、必ず全ての領域とフィルタを指定して下さい。 例えば、同じ天体を2つ以上のフィルタで観測し、そのフィルタごとに makeDiscreteSkyMap を行うと tract/patch の切り方は若干ずれてしまいます。 その後 stack, multiband と進む場合はうまくいかなくなりますのでご注意下さい。

# 解析ディレクトリは ~/HSC, rerun 名は test とします。field 名は registry.sqlite3 を見て確認しましょう。例では test_field とします。
makeDiscreteSkyMap.py ~/HSC --calib ~/HSC/CALIB --rerun test --id field=test_field

# makeDiscreteSkyMap.py [解析ディレクトリ] --rerun [rerun 名] --id [visit, field, filter..]
# オプション
#       --id : tract 決めに使用する全ての天体データを指定。

以下のようなメッセージが表示されれば成功です。

makeDiscreteSkyMap INFO: tract 0 has corners (177.676, 57.388), (173.867, 57.388), (173.752, 59.440), (177.790, 59.440) (RA, Dec deg) and 11 x 11 patches

# この場合は 11x11 patch の tract 0 が定義されています。

HSC-SSPと同じtractを定義したい場合は、 makeSkyMap.py を使います (SSP と同じ tract 定義をしたい場合)。

Note

patch=31x31よりも縦横のパッチ数が大きくなった場合、object IDのパッチ指定で使えるbit数を超えてしまうため、 このあとのcoaddDriver.pyが正常に動作しないことが報告されています。 31x31よりも小さなパッチ数になるようにしてください。

モザイキング

Note

jointcal.pyとmosaic.pyのいずれかを使ってください。

hscpipe7以降ではmosaic.pyからより効率的なモザイクソフトウェアのjointcal.pyへ移行しています。 ただし、2019年11月現在、jointcal.pyを使った場合に一部のデータで測光精度が良くない(>~5% error)ことがわかっており、 現在もまだ原因を調査中です。問題が解消されるまではmosaic.pyを利用する方が安全です。

mosaic.py と jointcal.py は、ファイルを出力する場所が違いますので注意してください。 jointcal.py を走らせた後 mosaic.py を走らせると、jointcal.py の出力ファイルは上書きされず残ったままになります。 結果的にどちらが使われたかはcoadd画像から判りますが、紛らわしいので避けましょう。

次に各フィルター毎に複数積分の CCD データを足し合わせるために、各 CCD の座標とフラックススケールを合わせる必要があります。 それを行うのが joincal.py です。 複数積分に写っている同じ星の座標が一致するように、かつその星とマッチした外部カタログの座標とも一致するように各 CCD の WCS を改善します。 さらに、複数積分で写っている同じ星のカウントが一致するように、かつ外部カタログの等級と一致するように各 CCD の等級原点を CCD 面内の位置の関数として求めます。

# 解析ディレクトリは ~/HSC, rerun 名は test とする。
# 各フィルター毎に行ってください。
jointcal.py ~/HSC/ --calib ~/HSC/CALIB --rerun test --id visit=20878..20890:2 tract=0 ccd=0..103

# jointcal.py [解析ディレクトリ] --rerun [rerun 名] --id [visit, field, filter, ccd] tract=[tract]
# オプション
#       --id : モザイクを実行する天体データを指定。visit 指定の他に、field と filter で指定しても良い。tract は必ず指定。
#               makeskyMap.pyでHSC-SSPと同じtractにしたが、tract IDがよくわからないときは、tract指定なしで走らせる。

hscpipe6以前では mosaic.py を推奨していました。mosaic.pyを使ってモザイクを行う場合は下記のコマンドになります。

# 解析ディレクトリは ~/HSC, rerun 名は test とする。
# 各フィルター毎に行ってください。
# もしもmosaic.pyでversion `GLIBCXX_***' not foundといったエラーが出た場合は
# export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/work/hscpipe/7.9.1/lib64"
# 等として、パスを通してください(2019年11月現在、国立天文台多波長解析システムで走らせる場合に必要です)。
mosaic.py ~/HSC/ --calib ~/HSC/CALIB --rerun test --id visit=20878..20890:2 tract=0 ccd=0..103

# mosaic の評価結果を ~/HSC/rerun/mosaic_diag 以下に出力させたい場合。
mosaic.py ~/HSC/ --calib ~/HSC/CALIB --rerun test --id visit=20878..20890:2 tract=0 ccd=0..103 --diagnostics --diagDir ~/HSC/rerun/mosaic_diag


# mosaic.py [解析ディレクトリ] --rerun [rerun 名] --id [visit, field, filter, ccd] tract=[tract]
# オプション
#       --id : モザイクを実行する天体データを指定。visit 指定の他に、field と filter で指定しても良い。tract は必ず指定。
#       --diagnostics : 評価結果を保存するときに使用。
#       --diagDir : 評価結果を保存するディレクトリを指定。

Note

解析環境によっては

Mosaic INFO: Reading catalogs…

Mosaic INFO: Use 1 cores for reading source catalog

のプロセスで 30 分以上かかる場合があります。

jointcal.pyによるmosaic が完了すると、~/HSC/rerun/[rerun]/jointcal-results/[tract] の下に jointcal_photoCalib-[visit]-[ccd].fitsjointcal_wcs-[visit]-[ccd].fits ができます。 それぞれ各 visit, CCD のフラックススケールと WCS 座標のファイルです。

mosaic.pyでモザイクの評価結果を出力した場合は、以下のデータが –diagDir で指定したディレクトリに出力されます。

  • visit 毎の評価結果

    • WCS のずれ                 : ResPosArrow2D_[visit].png

    • フラックスから distortion パターンを割った残差: fcont_[visit].png

    • reduceFlat でかかる distortion パターン    : jcont_[visit].png(同心円状になっていることを確認する)

  • 全 visit からの評価結果

    • 各 visit のフラックス平均値からの差分: DFlux2D.png

    • フラックスの残差          : ResFlux.png

    • 検出天体の等級の差分(※)     : MdM.png

    • WCS 座標のずれ          : PosDPos.png

    • WCS 座標のずれ          : ResPosScatter.png

  • その他データ
    • catalog.fits

    • ccd.dat

    • ccdScale.dat

    • coeffs.dat

    • dmag.dat

    • dpos.dat

(※)緑は MATCH カタログに含まれる天体と外部カタログ内の差分、赤は検出天体のうち MATCH に含まれない天体の各 visit の平均との差分。

../_images/mosaic_diag_1.png
../_images/mosaic_diag_2.png
../_images/mosaic_diag_3.png

モザイク結果の反映

ここではモザイク結果のフラックススケールと WCS 座標情報を各 visit, CCD に適用します。

Note

2019年11月現在、calibrateExposure.py , calibrateCatalog.py の出力が欠けていることが報告されています。 この手順は各 CCD 画像/カタログを詳細に見たいという場合は mosaic 直後に行うことをお勧めします。それ以外の足し合わせたデータを優先的に見たい場合は解析の一番最後に行ってください。 また、WCS とゼロ点の較正された CCD 画像/カタログが不要な場合は行う必要はありません。

モザイクの結果を各 CCD 画像に反映させるコマンドは calibrateExposure.py です。

# モザイク結果を各 visit, CCD に反映。
# 解析ディレクトリは ~/HSC, rerun 名は test とする。
calibrateExposure.py ~/HSC --calib ~HSC/CALIB --rerun test --id field=NGC604 tract=0 ccd=0..103 -j 8

# calibrateExposure.py [解析ディレクトリ] --rerun [rerun 名] --id [field, tract, ccd] -j [スレッド数]
# オプション
#       --id : 例では field, tract, ccd の組み合わせだが、tract, visit と ccd の組み合わせでも可。
#       -j : スレッド数を指定。-j 8 だと 8 スレッドで、の意味。

calibrateExposure.py を実行すると、~/HSC/rerun/[rerun]/[pointing]/[filter]/corr/[tract]/CALEXP-[visit]-[ccd].fits というファイルができます。

次に、モザイクの結果を src カタログに反映させます。使うコマンドは calibrateCatalog.py です。

# モザイク結果をカタログに反映。
# 解析ディレクトリは ~/HSC, rerun 名は test とする。
calibrateCatalog.py ~/HSC --calib ~/HSC/CALIB --rerun test --id field=NGC604 tract=0 ccd=0..103 --config doApplyCalib=False -j 8

# calibrateCatalog.py [解析ディレクトリ] --rerun [rerun 名] --id [field, tract, ccd] -j [スレッド数]
# オプション
#       --id : 例では field, tract, ccd の組み合わせだが、visit と ccd の組み合わせでも可。
#       --config doApplyCalib=False : カタログのフラックスを等級に較正しない場合は False。
#       -j : スレッド数を指定。-j 8 だと 8 スレッドで、の意味。

calibrateCatalog.py 実行後、~/HSC/rerun/[rerun]/[pointing]/[filter]/output/[tract]/CALSRC-[visit]-[ccd].fits が生成されます。