位置とフラックススケール決定¶
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 --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 が定義されています。
モザイキング¶
次に各フィルター毎に複数積分の CCD データを足し合わせるために、各 CCD の座標とフラックススケールを合わせる必要があります。 それを行うのが mosaic.py です。 複数積分に写っている同じ星の座標が一致するように、かつその星とマッチした外部カタログの座標とも一致するように各 CCD の WCS を改善します。 さらに、複数積分で写っている同じ星のカウントが一致するように、かつ外部カタログの等級と一致するように各 CCD の等級原点を CCD 面内の位置の関数として求めます。
# 解析ディレクトリは ~/HSC, rerun 名は test とする。
# 各フィルター毎に行ってください。
mosaic.py ~/HSC/ --rerun test --id visit=20878..20890:2 tract=0 ccd=0..103
# mosaic の評価結果を ~/HSC/rerun/mosaic_diag 以下に出力させたい場合。
mosaic.py ~/HSC/ --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 分以上かかる場合があります。
mosaic が完了すると、~/HSC/rerun/[rerun]/jointcal-results/[tract] の下に fcr-[visit]-[ccd].fits と wcs-[visit]-[ccd].fits ができます。 それぞれ各 visit, CCD のフラックススケールと WCS 座標のファイルです。
モザイクの評価結果としては、以下のデータが –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 の平均との差分。
モザイク結果の反映¶
ここではモザイク結果のフラックススケールと WCS 座標情報を各 visit, CCD に適用します。
Note
この手順は各 CCD 画像/カタログを詳細に見たいという場合は mosaic 直後に行うことをお勧めします。それ以外の足し合わせたデータを優先的に見たい場合は解析の一番最後に行ってください。 また、WCS とゼロ点の較正された CCD 画像/カタログが不要な場合は行う必要はありません。
モザイクの結果を各 CCD 画像に反映させるコマンドは calibrateExposure.py です。
# モザイク結果を各 visit, CCD に反映。
# 解析ディレクトリは ~/HSC, rerun 名は test とする。
calibrateExposure.py ~/HSC --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 の組み合わせだが、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 --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 が生成されます。