1 次処理用データの生成

1 次処理用データとして準備するものは、

の 4 種類です。ただしこのうち Fringe データは Y-band 画像の解析のみ使用されます。 解析は、Bias、Dark、Flat の順に行います。Dark には Bias データが、Flat には Bias、Dark データがそれぞれ必要となりますので、必ずこの順番に解析を行ってください。 それでは解析の手順に従って、1 次処理用データを生成しましょう。



Bias データの作成

Bias データは 0 秒積分のデータ(Bias 生データ)から CCD の電荷を空読みした overscan を引くことで生成されます。 HSC の各 CCD 各 CH の左端か右端には overscan 領域が 16 ピクセル分ついています(詳しくは HSC の CCD の仕様 参照)。 HSC pipeline ではまず各 [visit, CCD] 毎に、overscan 領域の短軸方向に平均し、長軸方向に Spline 補間をかけたものをピクセルのカウント値から差引ます。この各 [visit, CCD] のデータから外れ値を除いたものが最終的な Bias データとなります。 HSC pipeline における Bias データ生成は reduceBias.py で実行されます。

# Bias データの生成
# home = ~
reduceBias.py $home/hsc --calib=$home/hsc/CALIB --rerun=calib_dith_16h_bias --id visit=902670..902678:2 --detrendId calibVersion=all

# 使い方:
#   reduceBias.py <解析用ディレクトリ> --calib=<1 次処理用データディレクトリ> --rerun=<rerun名> --id visit=<Bias データの visit 番号> --detrendId calibVersion=<1 次処理用データのバージョン>
#
# オプション:
#   --calib    :生成される1 次処理用データディレクトリ
#   --rerun    :rerun 名
#   --id       :使用する Bias データを指定
#               例では 902670 から 902678 までのうち 2 個飛ばしの visit 番号を指定
#              (visit 番号 902670, 902672, 902674, 902676, 902678 ということ)
#   --detrendId:1 次処理用データのバージョンを指定。名前は適宜

Warning

–calib や calibVersion の値は、正規表現 [A-Za-z0-9_+-] にマッチするものでなければいけません。 ピリオドやカンマは含まないようにしてください。

reduceBias.py を含め、1 次処理用データ解析のコマンドは全てバッチ処理 (ここでのバッチ処理とは、ジョブ管理システムにジョブをサブミットして処理を実行することを指します) が可能です。使用する計算機環境に応じて以下のオプションが用意されています。 使用する pipeline のバージョンによってコマンドが若干異なりますのでご注意下さい。

Warning

HSC データ解析用共同利用計算機 (hanaco) ではジョブ管理システムにジョブをサブミットできません。ですので、必ず以下の「ローカルな計算機で処理を行う場合」のオプションを追加してください。

# ローカルな計算機で処理を行う場合(例:4 スレッド)
# hscPipe 3.x 系
reduceBias.py --... --do-exec --mpiexec "-n 4"

# hscPipe 4.x 系
reduceBias.py --... --batch-type=smp --cores=4

# 別の計算機にバッチスクリプトを投げてコマンドを実行する場合(例:2 ノード 2 プロセスで計 4 スレッド)
# hscPipe 3.x 系
reduceBias.py --... --nodes 2 --procs 2

# hscPipe 4.x 系
reduceBias.py --... --nodes 2 --cores 2

reduceBias.py が正常に終了すると、それぞれ以下のデータが生成されています。最終 Bias データは $home/hsc/CALIB 下に、中間生成データは $home/hsc/rerun/[rerun] 下にそれぞれ生成されています。

  • Bias データ                 :$home/hsc/CALIB/BIAS/[dateObs]/[filter]/[calibVersion]/ 下にある BIAS-[ccd].fits
  • 各 [visit, CCD] の overscan 引きの結果画像  :$home/hsc/rerun/[rerun]/[pointing]/[filter]/thumbs/ 下にある oss-[visit]-[ccd].png
  • 各 [visit, CCD] の Bias データ         :$home/hsc/rerun/[rerun]/postISRCCD/v[visit]-f[filter]/ 下にある c[ccd].fits

図1 には Bias 生データ(左)と reduceBias.py で生成された Bias データ(右)を表示しています。 Bias 生データと比べると Bias データ は一回り小さめです。これは Bias データの生成時に overscan、prescan 領域が切り捨てられるためです。 また、Bias データの中心で y-軸方向に白い線が見られますが、これは他のピクセルと比べてカウント値が高くなっているためです。 この白い線以外のピクセルのカウント値はほぼ 0 となっています。

../_images/bias_raw_2.png

図1 Bias の生データ(左)と reduceBias.py で生成された Bias データ


Bias データが生成されていることを確認したら、レジストリに登録します。この操作を忘れると以降の解析がうまく進みませんので、必ず行ってください。

# Bias データをレジストリに登録
genCalibRegistry.py --create --root=$home/hsc/CALIB --camera=HSC --validity=1000

# 使い方:
#   genCalibRegistry.py --create --root=<1 次処理用データディレクトリ> --camera=HSC --validity=<日数>
#
# オプション:
#   --create   :1 次処理データレジストリの作成。新たに作る時のみ必須
#   --root     :1 次処理用データディレクトリ
#   --camera   :使用した撮像カメラ名。ここではもちろん HSC
#   --validity :生成された Bias データが適応される日数(default=12)
#               「Bias データを取得した日を挟んだ XX 日間に取得されたデータにはこの Bias データは有効です」という意味
#               天体の観測日と1 次処理用データの取得日に大きく差がある場合は適切な日数を指定しないと以降の解析が進まないので要注意
#               例では、Dark と Bias, Flat データの取得日の間に 1 年以上の開きがあるため validity=1000 としている

Dark データの作成

Dark データはある積分時間の間に CCD にたまる暗電流を較正するためのデータで、Dark 生データから Bias データと overscan を引くことで生成されます。 HSC pipeline ではまず各 [visit, CCD] 毎に overscan の平均をピクセルのカウント値から差し引いた Dark データを作ります。この各 [visit, CCD] の Dark データの平均から Bias データを差し引いたものが最終的な Dark データとなります。 HSC pipeline における Dark データ生成は reduceDark.py で実行されます。

# Dark データの生成
reduceDark.py $home/hsc --calib=$home/hsc/CALIB --rerun=calib_dith_16h_dark --id visit=6600 --detrendId calibVersion=all

# 使い方:
#   reduceDark.py <解析用ディレクトリ> --calib=<較正用データディレクトリ> --rerun=<rerun名> --id visit=<Dark データの visit 番号> --detrendId --detrendId calibVersion=<較正データのバージョン>

Note

基本的なオプションは reduceBias.py と同じです。


reduceDark.py が正常に終了すると以下のデータが生成されます。 最終 Dark データは $home/hsc/CALIB 下に、中間生成データは $home/hsc/rerun/[rerun] 下にそれぞれ生成されています。

  • Dark データ                 :$home/hsc/CALIB/DARK/[dateObs]/[filter]/[calibVersion]/ 下にある DARK-[ccd].fits
  • 各 [visit, CCD] の overscan 引きの結果画像   :$home/hsc/rerun/[rerun]/[pointing]/[filter]/thumbs/ 下にある oss-[visit]-[ccd].png
  • 各 [visit, CCD] を Flat で割った結果画像(※1):$home/hsc/rerun/[rerun]/[pointing]/[filter]/thumbs/ 下にある flattened-[visit]-[ccd].png
  • 各 [visit, CCD] の Dark データ         :$home/hsc/rerun/[rerun]/postISRCCD/v[visit]-f[filter]/ 下にある c[ccd].fits

Note

※1 Dark データの生成に際し「Flat データで割る」計算が行われるわけではありませんが、現在 HSC pipeline のデフォルトの仕様では生成されてしまうようです。 この画像が不要ならば –config doWriteFlattenedThumb=False というオプションをつけることで回避できます。

図2 には Dark 生データ(左)と reduceDark.py で生成された Dark データ(右)を表示しています。 Bias データと同じく、Dark データ生成時に overscan、prescan 領域が切り捨てられるため Dark データは Dark 生データより一回り小さめです。 Dark データのピクセルのカウント値もほぼ 0 となっています。

../_images/dark_raw_1.png

図2 Dark の生データ(左)と reduceDark.py で生成された Dark データ


Dark データが生成されていることを確認したら、忘れずにレジストリに登録しましょう。

# Dark データをレジストリに登録
genCalibRegistry.py --root=~/hsc/CALIB --camera=HSC --validity=1000

Note

Bias データの生成時に1 次処理用データレジストリは作成しているため、 –create のオプションは不要です。


Flat データの作成

Flat データはドーム内の壁やスクリーンを光源で照らして観測される ドームフラット と、 天体を観測した画像から作られる night sky フラット があります。 HSC の観測では主にドームフラットを使用しているため、 ここではドームフラットの解析方法を紹介します。night sky フラットの解析については night sky Flat の作成方法 をご覧ください。

Flat データは、ドームフラットデータ(Flat 生データ)から Bias、Dark データと overscan を引くことで生成されます。 HSC pipeline ではまず各 [visit, CCD] 毎に overscan の平均をピクセルのカウント値から差し引いた Flat データを作ります。この各 [visit, CCD] の Flat データの平均から Bias、Dark データを差し引いたものが最終的な Flat データとなります。 HSC pipeline における Flat データ生成は reduceFlat.py で実行されます。

# Flat データの生成
reduceFlat.py $home/hsc --calib=$home/hsc/CALIB --rerun=calib_dith_16h_flat --id visit=902690..902704:2 --detrendId calibVersion=all

# 使い方:
#   reduceFlat.py <解析用ディレクトリ> --calib=<較正用データディレクトリ> --rerun=<rerun名> --id visit=<Flat データの visit 番号> --detrendId --detrendId calibVersion=<較正データのバージョン>

Warning

Flat データは filter 毎に作成します。例えば、i-band と r-band の観測をしていた場合は、 i-band と r-band の Flat データをそれぞれ作成してください。


reduceFlat.py が正常に終了すると、以下のデータがそれぞれ生成されます。 最終 Flat データは $home/hsc/CALIB 下に、中間生成データは $home/hsc/rerun/[rerun] 下にそれぞれ生成されています。

  • Flat データ                 :$home/hsc/CALIB/FLAT/[dateObs]/[filter]/[calibVersion]/ 下にある FLAT-[ccd].fits
  • 各 [visit, CCD] の overscan 引きの結果画像  :$home/hsc/rerun/[rerun]/[pointing]/[filter]/thumbs/ 下にある oss-[visit]-[ccd].png
  • 各 [visit, CCD] の Flat で割った結果画像    :$home/hsc/rerun/[rerun]/[pointing]/[filter]/thumbs/ 下にある flattened-[visit]-[ccd].png
  • 各 [visit, CCD] の Flat データ         :$home/hsc/rerun/[rerun]/postISRCCD/v[visit]-f[filter]/ 下にある c[ccd].fits

図3 には Flat 生データ(左)と reduceFlat.py で生成された Flat データ(右)を表示しています。 Bias、Dark データと同じく、Flat データ生成時に overscan、prescan 領域が切り捨てられるため Flat データは Flat 生データより一回り小さめです。

../_images/flat_raw_1_new.png

図3 Flat の生データ(左)と reduceFlat.py で生成された Flat データ


Flat データが生成されていることを確認したら、忘れずにレジストリに登録しましょう。

# Flat データをレジストリに登録
genCalibRegistry.py --root=$home/hsc/CALIB --camera=HSC --validity=1000

ここで今回の解析で必要な1 次処理用データは一通り揃いました。そこで、1 次処理用レジストリの中身を確認することにします。

sqlite> .table                          # table の内容を表示
        bias    dark    flat    fringe

sqlite> select * from bias              # bias のヘッダー情報を選択
   ...> group by ccd;                   # ccd 順に表示


# 以下、検索結果
#
id    validStart     vali  cali  filt  calibVersion   cc
----  -------------  ----  ----  ----  -------------  --
90    2010-09-20     2016-03-12  2013-06-16  NONE  all  0
61    2010-09-20     2016-03-12  2013-06-16  NONE  all  1
...

図4 のように、生成した Bias、Dark、Flat データの情報が1 次処理用レジストリで確認できれば OK です。 なお、今回は Fringe データの生成は行っていないため、 select * from fringe をしても何も表示されません。

../_images/sqlite3_calib.png

図4 sqlite3 による1 次処理用レジストリの検索結果


Fringe データの作成

Fringe は CCD 境界面での干渉により起こる縞模様のことです。赤い波長帯で顕著に現れます。 Pipeline では Y バンドと NB0921 のみ対応しています。

Fringe データは天体画像のスタックから生成されます。そして、Fringe パターンを不変、強度は積分に比例すると仮定して天体画像から差引ます。 HSC pipeline における Fringe データ生成は reduceFringe.py で実行されます。

# Fringe データの生成
reduceFringe.py $home/hsc --calib=$home/hsc/CALIB --rerun=calib_fringe --id visit=6772..6782:2 --detrendId calibVersion=all

# 使い方:
#   reduceFringe.py <解析用ディレクトリ> --calib=<較正用データディレクトリ> --rerun=<rerun名> --id visit=<Object の visit 番号> --detrendId --detrendId calibVersion=<較正データのバージョン>

reduceFringe.py が正常に終了すると、以下のデータがそれぞれ生成されます。 最終 Fringe データは $home/hsc/CALIB 下に、中間生成データは $home/hsc/rerun/[rerun] 下にそれぞれ生成されています。

  • Fringe データ                 :$home/hsc/CALIB/FRINGE/[dateObs]/[filter]/[calibVersion]/ 下にある FRINGE-[ccd].fits
  • 各 [visit, CCD] の overscan 引きの結果画像  :$home/hsc/rerun/[rerun]/[pointing]/[filter]/thumbs/ 下にある oss-[visit]-[ccd].png
  • 各 [visit, CCD] の Flat で割った結果画像    :$home/hsc/rerun/[rerun]/[pointing]/[filter]/thumbs/ 下にある flattened-[visit]-[ccd].png
  • 各 [visit, CCD] の Fringe データ         :$home/hsc/rerun/[rerun]/postISRCCD/v[visit]-f[filter]/ 下にある c[ccd].fits

図5 には Flat 生データ(左)と reduceFringe.py で生成された Fringe データ(右)を表示しています。 Fringe データ生成時に overscan、prescan 領域が切り捨てられるため Fringe データは Fringe 生データより一回り小さめです。

../_images/FRINGE_068_2.png

図5 Fringe の生データ(左)と reduceFringe.py で生成された Fringe データ


Fringe データもレジストリに登録します。

# Fringe データをレジストリに登録
genCalibRegistry.py --root=$home/hsc/CALIB --camera=HSC

以上で Fringe データの生成は終了です。