1次解析用データの準備

解析ディレクトリの整備と生データの配置が終わると、解析を走らせることができます。 まずは1次処理用データを生成します。 ここで生成するのは Bias, Dark, Flat, Fringe, Sky データです。 Dark には Bias が必要になりますので、下記の順番で行ってください。 Fringe データは y バンド、NB0921、NB0926、NB0973 の解析で必要になります。 Flat と Fringe は Bias と Dark がなくても作成できますが、必要な場合は Bias と Dark を作ってから行ってください。

  1. Bias データの作成
  2. Dark データの作成
  3. Flat データの作成
  4. Fringe データの作成
  5. Sky データの作成

Note

画像はロスレス圧縮されるのでご注意ください。 fits関連ツール(ds9を含む)は最新版にしておくことを推奨します。

Bias データの作成

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

# Bias データ作成
# 解析ディレクトリは ~/HSC, 1次処理用データディレクトリを ~/HSC/CALIB, rerun 名を calib とする。
# ~/HSC/CALIB がないと 1次処理用データは ~/HSC/rerun/[rerun] にできてしまうので注意。
constructBias.py ~/HSC --calib ~/HSC/CALIB --rerun calib --id visit=18624..18632:2 --batch-type=smp --cores=4

# constructBias.py [解析ディレクトリ] --calib [1次処理用データディレクトリ] --rerun [rerun 名] --id [visit]
# オプション
#       --calib: 正規表現 [A-Za-z0-9_+-] にマッチするものでなければいけません。カンマやピリオドは含まれないようにして下さい。
#       --rerun: rerun 名。
#       --id: データID、ここでは Bias 生データの visit 番号を指定。visit=18624..18632:2 は 18624 から2つおきに 18632 まで指定。
#              一つずつ visit を指定したい場合は visit=18624^18630 のように ^ で連結する。
#              他にも registry.sqlite3 の中のデーブルのコラム名を使って指定することも可能 (例えば field=BIAS)。
#       --batch-type [slurm, pbs, smp]: ジョブを投げるバッチ処理の方法を指定
#       --cores: コア数の指定 (slurm, smp のみ)

また、1 次処理用データ解析のコマンドは全てバッチ処理 (ここでのバッチ処理とは、ジョブ管理システムにジョブをサブミットして処理を実行することを指します) が可能です。 使用する計算機環境に応じて以下のオプションが用意されています。詳細は —help オプションで確認することができます。

# ローカルの計算機で 4 コアで処理を行う場合
--batch-type=smp --cores=4

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

Note

標準出力と標準エラー出力も含めたログを保存したい場合は、各実行コマンドの最後に “2>&1 | tee logfile” をつけると logfile として保存できます。 Helpdesk に問い合わせる場合はこのログが必要になることが多いので、できるだけ保存しておくことをお勧めします。

Warning

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

処理が終了したら、生成されたデータを確認しましょう。 最終 Bias データは ~/HSC/CALIB/BIAS/[dateObs]/NONE/BIAS-[dateObs]-[ccd].fits で、その他中間生成ファイルは ~/HSC/rerun/[rerun] 以下に置かれています。 図1 に Bias 生データと生成された Bias データの一例を示します。 生成された Bias データは overscan と blank 領域がカットされ、一回り小くなっています。

../_images/BIAS_ds9.png

図1:Bias 生データ(左)と最終 Bias データ(右)。右図の中央の白いラインは他のピクセルと比べてカウント値が高くなっているため。この白い線以外のピクセルのカウント値はほぼ 0。

Bias データが問題なく生成されていることを確認したら、レジストリに登録しましょう。 hscPipe5 からは 1次解析用データを登録しなくても動きますが、コア数を多く使う場合はレジストリに登録した方が読み込みが速いです。 ですので、基本的にはレジストリに登録することを推奨します。

# Bias 等のキャリブレーション用データをレジストリに登録
ingestCalibs.py ~/HSC --calib ~/HSC/CALIB/ '~/HSC/rerun/calib/BIAS/*/*/BIAS-*.fits' --validity 30

# ingestCalibs.py [解析ディレクトリ] --calib [1次処理用データディレクトリ] '[登録したい fits ファイル]' --validity [days]
# オプション
#       --validity: キャリブレーションデータが適用される日数。
#                   キャリブレーションデータを取得した日を挟んだ XX 日間に取得されたデータにはこのキャリブレーションデータは有効、という意味。

処理が終わると ~/HSC/CALIB 以下に calibRegistry.sqlite3 というレジストリができています。 これも生データ同様 SQLite で確認することができます。

# レジストリを SQLite で読み込む
sqlite3 calibRegistry.sqlite3

# ヘッダ情報読み込み
sqlite> .header on
# テーブルを表示
sqlite> .tables
bias          dark          flat          fringe
bias_visit    dark_visit    flat_visit    fringe_visit
# bias テーブルに登録した Bias データが入っている
sqlite> select * from bias;
id|filter|ccd|validStart|calibDate|validEnd
1|NONE|60|2014-12-19|2015-01-18|2015-02-17
2|NONE|99|2014-12-19|2015-01-18|2015-02-17
3|NONE|85|2014-12-19|2015-01-18|2015-02-17
4|NONE|23|2014-12-19|2015-01-18|2015-02-17
5|NONE|35|2014-12-19|2015-01-18|2015-02-17
6|NONE|32|2014-12-19|2015-01-18|2015-02-17
7|NONE|102|2014-12-19|2015-01-18|2015-02-17
8|NONE|74|2014-12-19|2015-01-18|2015-02-17
...

# ccd が全て揃っているか、validStart/validEnd は --validity で指定した日数になっているかは見ておきましょう。
# この段階では bias しか登録されていませんので、他のテーブルを見ても中身は空です。

Dark データの作成

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

# Dark データ作成
constructDark.py ~/HSC --calib ~/HSC/CALIB --rerun calib  --id visit=18336 --batch-type=smp --cores=4

# constructDark.py [解析ディレクトリ] --calib [1次処理用データディレクトリ] --rerun [rerun 名] --id [visit, field, ...]
# オプションは constructBias.py と同じです。

処理が終了したらデータを確認します。 生成された Dark データは ~/HSC/CALIB/DARK/[dateObs]/NONE/DARK-[dateObs]-[ccd].fits です。その他中間生成ファイルは ~/HSC/rerun/[rerun] 以下にあります。 図2 は Dark 生データと生成された Dark データです。Bias データと同様に、 overscan と blank 領域がカットされ、一回り小くなっています。

../_images/Dark_ds9.png

図2:Dark 生データ(左)と最終 Dark データ(右)。

Dark データの確認後、登録が必要な場合は Bias データと同様にできます。

# Dark データをレジストリに登録
# オプションは Bias データの時と同じ
ingestCalibs.py ~/HSC --calib ~/HSC/CALIB/ '~/HSC/rerun/calib/DARK/*/*/DARK-*.fits' --validity 30

Flat データの作成

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

Flat データはドームフラットデータ (Flat 生データ) から Bias, Dark データと overscan を引くことで作成されます。 hscPipe ではまず各 [visit, CCD] 毎に overscan の平均をピクセルのカウント値から差し引いた Flat データを作ります。 この各 [visit, CCD] の Flat データの平均から Bias、Dark データを差し引いたものが最終的な Flat データとなります。 Bias 引き、Dark 引きを行わない場合はその部分はスキップされます。 Flat データ作成は constructFlat.py で実行されます。constructFlat.py もバッチ処理が可能です。

Note

Bias, Dark については適宜スキップできますが、Flat は必ず行ってください。

# Flat データ作成
constructFlat.py ~/HSC --calib ~/HSC/CALIB/ --rerun calib --id visit=17636..17646:2 --batch-type=smp --cores=4

# constructFlat.py [解析ディレクトリ] --calib [1次処理用データディレクトリ] --rerun [rerun 名] --id [visit, field, filter...]
# Flat データは filter 毎に作成して下さい。
# sky フラットの場合は --id で sky フラットデータを指定して下さい。だいたい 30 ショットくらい必要になります。
# オプション
#       --config isr.doBias=False isr.doDark=False: Bias, Dark をスキップした場合はこのオプションを追加して下さい。

処理が終了したら作成されたデータを確認します。 Flat データは ~/HSC/CALIB/FLAT/[dateObs]/[filter]/FLAT-[dateObs]-[filter]-[ccd].fits で、その他中間生成ファイルは ~/HSC/rerun/[rerun] 以下にあります。

図3 は Flat 生データと生成された Flat データです。

../_images/FLAT_ds9.png

図3:Flat 生データ(左)と最終 Flat データ(右)。

データを確認したら、レジストリに登録します。登録方法は Bias, Dark の時と同じです。

# Flat データをレジストリに登録
# オプションは Bias データの時と同じ
ingestCalibs.py ~/HSC --calib ~/HSC/CALIB/ '~/HSC/rerun/calib/FLAT/*/*/FLAT-*.fits' --validity 30

Fringe データの作成

Fringe は CCD 境界面での干渉により起こる縞模様のことで、赤い波長帯で顕著に現れます。 hscPipe のデフォルトでは y バンド、NB0921、NB0926、NB0973 が対応しています。 Fringe データは天体画像のスタックから生成されます。そして、Fringe パターンを不変、強度は積分に比例すると仮定して天体画像から差し引きます。 Fringe データは constructFringe.py で実行されます。

# Fringe データ作成
constructFringe.py ~/HSC --calib ~/HSC/CALIB --rerun calib --id visit=18480..18490:2 --batch-type=smp --cores=4

# constructFringe.py [解析ディレクトリ] --calib [1次処理用データディレクトリ] --rerun [rerun 名] --id [visit, field, filter..]
# オプションは Bias データの時と同じ。
# 入力するデータは y-band、NB0921、NB0926、NB0973 で取得された天体データを指定して下さい。
# オプション
#       --config isr.doBias=False isr.doDark=False: Bias, Dark をスキップした場合はこのオプションを追加して下さい。

Fringe データは ~/HSC/CALIB/FRINGE/[dataObs]/[filter]/FRINGE-[dateObs]-[filter]-[ccd].fits です。 中間生成ファイルは ~/HSC/rerun/[rerun] 以下にできます。 元の天体データと Fringe データを図4に示します。

../_images/Fringe_ds9.png

図4:天体の生データ(左)と最終 Fringe データ(右)。

Fringe データも忘れずに登録しましょう。

# Fringe データをレジストリに登録
ingestCalibs.py ~/HSC --calib ~/HSC/CALIB/ '~/HSC/rerun/calib/FRINGE/*/*/FRINGE-*.fits' --validity 30

Sky データの作成

hscPipe 6以前では、特に大きな天体周りのskyを引き過ぎてしまう問題がありました。hscPipe 6からは、Sky データを作成し、それを利用することで、sky引きの方法が改善され、大きな天体周りのsky引きもうまくできるようになりました(Global sky subtractionについて)。 Sky データは constructSky.py を実行することで作成されます。

# Sky データ作成
constructSky.py ~/HSC --calib ~/HSC/CALIB --rerun calib --id visit=18480..18490:2 --batch-type=smp --cores=4

# constructSky.py [解析ディレクトリ] --calib [1次処理用データディレクトリ] --rerun [rerun 名] --id [visit, field, filter..]
# オプションは Bias データの時と同じ。
# オプション
#       --config isr.doBias=False isr.doDark=False: Bias, Dark をスキップした場合はこのオプションを追加して下さい。

Sky データは ~/HSC/rerun/calib/SKY/[dataObs]/[filter]/SKY-[dateObs]-[filter]-[ccd].fits です。

Sky データも忘れずに登録しましょう。

# Sky データをレジストリに登録
ingestCalibs.py ~/HSC --calib ~/HSC/CALIB '~/HSC/rerun/calib/SKY/*/*/SKY-*.fits' --validity 30

以上で1次解析用データの準備は終了です。