天体データの 1 次処理

アストロメトリ用のカタログファイルの設定

1 次処理用データが生成できたら、各 [visit, ccd] の天体データの 1 次処理を行います。 HSC pipeline のコマンドは reduceFrames.py です。 このコマンドでは、天体データの 1 次処理後に、次の解析プロセスである 天体データの位置合わせとフラックススケール決め のためにラフな等級原点と座標決めも行われます。 そこでまずアストロメトリ用のカタログファイルを設定します。

# アストロメトリ用にカタログファイルを指定
# SDSS をカタログファイルとする場合
setup astrometry_net_data sdss-dr9-fink-v5b
# Pan-STARRS をカタログファイルとする場合
setup astrometry_net_data ps1_pv3_3pi_20170110-and

Note

NB 用に別途カタログを用意したい場合等、自身でアストロメトリ用カタログファイルの作成が必要な場合は 次のページを参照してください( アストロメトリ用カタログファイルの作成 )。

Warning

アストロメトリ用のカタログファイルの設定は、 計算機にログインする度に必ず行ってください!!


天体データの 1 次処理:reduceFrames.py の実行

アストロメトリを設定したら reduceFrames.py を実行します。 reduceFrames.py の中では、各 CCD の画像補正、キャリブレーション、天体検出・測定、が行われます。

まず、各 CCD の画像補正では、overscan 引き、bias 引き、dark 引き、フラットフィールディング、そして fringe 引きが行われます。 さらに、サチュレーションピクセルやバッドアンプピクセルに対するマスクも行います。また、bias 引きの後には CCD ごとに線形性補正、クロストーク補正、brighter-fatter 補正が行われます。

画像に対して一通りの処理が終わると、キャリブレーションが走ります。 まず、各 CCD 毎に 128 pixel グリッドで sky 引きを行い、較正に使用する天体を検出します。 検出された天体の PSF を測定し、アストロメトリ用カタログファイルとマッチングを行い、等級原点を見積もります。このあと、宇宙線が除去されます。 最後に天体がマスクされた状態でもう一度 sky 引きが行われ、各 CCD 毎に座標と等級原点が決まります。

次に天体検出と測定が行われます。天体検出時にはデブレンドが行われ、混ざっている天体が分離されます。 検出された天体において、位置・形状・明るさが測定され、ピクセルのマスク情報や測定中のイベントに応じてフラグが立ちます。

最後に WCS (TAN-SIP) が視野全体に渡ってフィッティングされます。 ここでの WCS はディストーション込みでマッピングされたもので、画像については warp されたものは出力されません。

reduceFrames.py ではバッチ処理のオプションが使用できます( 参照 )。 解析には計算機環境次第では数時間かかりますので、他の仕事でもして待ちましょう。

# 天体データの 1 次処理
reduceFrames.py $home/hsc --calib=$home/hsc/CALIB --rerun=dith_16h_test --id filter=HSC-I visit=902798..902808:2 --config processCcd.isr.doFringe=False
reduceFrames.py $home/hsc --calib=$home/hsc/CALIB --rerun=dith_16h_test --id filter=HSC-G visit=903160..903168:2 --config processCcd.isr.doFringe=False

# 1次処理済みデータ (bias, dark 引き、 flat 割り、その他装置固有の処理が終わったデータ, postISR データ) も出力させたい場合
reduceFrames.py $home/hsc --calib=$home/hsc/CALIB --rerun=dith_16h_test --id filter=HSC-I visit=902798..902808:2 --config processCcd.isr.doFringe=False processCcd.isr.doWrite=True

# 使い方:
#   reduceFrames.py <解析用ディレクトリ> --calib=<1 次処理用データディレクトリ> --rerun=<rerun名> --id filter=<filter名> visit=<天体データの visit 番号> --config <解析のオプションを指定>
#
# オプション:
#   --rerun :rerun 名。例では、天体解析用に新しく設定
#   --id    :使用する天体データを指定。例では、filter 名と visit 名を指定。I, G-band それぞれ別に reduceFrame.py を実行
#   --config:解析の追加オプションを指定。例では、Fringe データを使わないことを指定。

Warning

Narrow-band filter NB387 と NB515 の解析の場合、reduceFrames.py の実行については こちら を参照して下さい。

reduceFrames.py が正常に終了すると、 $home/hsc/rerun/[rerun] 下に大量のデータが生成されます。 reduceFrames.py 内での解析の中身とも照らし合わせながら、 生成されたデータを確認していくことにします。

まず最初は、天体データの 1 次処理に関係するデータです。画像データそのものは $home/hsc/rerun/[rerun]/[pointing]/[filter]/corr/ 下に、サムネイル画像は $home/hsc/rerun/[rerun]/[pointing]/[filter]/thumbs/ 下にそれぞれ生成されます。 オプションで postISR 画像を出力させた場合は、$home/hsc/rerun/[rerun]/[pointing]/[filter]/output/postISR 以下にデータが生成されます。

  • 1 次処理済天体画像(sky も引き済)   :CORR-[visit]-[ccd].fits
  • sky 引きで用いられた sky 画像      :BKGD-[visit]-[ccd].fits
  • overscan 引きの結果サムネイル     :oss-[visit]-[ccd].png
  • Flat データで補正した天体画像サムネイル :flattened-[visit]-[ccd].png
../_images/reduceFrame_2.jpeg

図1 reduceFrames.py の実行結果。左から、天体生画像、overscan 引き後天体画像、Flat 補正後天体画像、sky 画像、sky 引き済 1 次処理済天体画像


次に、ラフな等級原点と座標決めのために用いられたカタログデータを紹介します。 reduceFrames.py において用いられたカタログデータは全て $home/hsc/rerun/[rerun]/[pointing]/[filter]/output/ 下に出力されます。

  • 1 度目の等級原点、座標決めのために検出された比較的明るい天体のカタログ: ICSRC-[visit]-[ccd].fits
  • 1 度目の等級原点、座標決めに用いられた天体のマッチリスト       : MATCH-[visit]-[ccd].fits
  • MATCH-[visit]-[ccd].fits をカラムに展開したもの            : ML-[visit]-[ccd].fits
  • 2 度目の等級原点、座標決めのために検出された天体のカタログ      : SRC-[visit]-[ccd].fits
  • 2 度目の等級原点、座標決めに用いられた天体のマッチリスト       : SRCMATCH-[visit]-[ccd].fits
  • SRCMATCH-[visit]-[ccd].fits をカラムに展開したもの          : SRCML-[visit]-[ccd].fits

このリストの中にある MATCH-ML- の中の情報は基本的には同じです。 しかし、MATCH- では HSC pipeline の中でのみ参照できるような独自の ID 番号が割り振られているのに対し、ML- では座標情報等が追加されており HSC pipeline 以外でも参照できる仕様になっています。 これらカタログデータは .fits の形式ですが画像データではありませんので、 ds9 では中身を見ることはできません。カタログデータの .fits ファイルの中身を見るソフトとして FvTABLES/STSDAS/IRAF などがあります。また、python や IDL を使ってカタログ内の情報を調べることもできます。

../_images/reduceFrame_3.png

図2 Fv を使って SRC-.fits を見た結果(左)と TABLES/STSDAS/IRAF を使って ICSRC-.fits を見た結果(右)

では、最終的にどの天体が等級原点と座標決めに用いられたのか確認してみましょう。 今回は、HSC pipelnie バイナリパッケージに同梱されている pyfits を使って SRC-[visit]-[ccd].fits のカタログ情報を引き出します。なお、 SRC-[visit]-[ccd].fits の測定情報は 一次処理済天体データのカタログファイル(src)中身 に一覧を載せていますので参考にしてください。

# モジュールの呼び出し
import pyfits
import lsst.afw.display.ds9 as ds9
import lsst.afw.image as afwImage

# ds9 を使って CORR-[visit]-[ccd].fits を開く
im = afwImage.ImageF("~/hsc/rerun/dith_16h_test/00532/HSC-I/corr/CORR-0902798-059.fits")
ds9.mtv(im)

# pyfits を使って SRC-[visit]-[ccd].fits の情報を引き出す
cat = pyfits.open("~/hsc/rerun/dith_16h_test/00532/HSC-I/output/SRC-0902798-059.fits")

# カタログデータのデータタイプとその中身を調べる
cat[1].data

        # 出力
        # ...
        # dtype=[('flags', 'u1', (11,)), ('id', '>i8'), ('coord', '>f8', (2,)), ..., ('centroid_sdss', '>f8', (2,))

cat[1].data['centroid_sdss']

        # 出力
        # array([[ 20058.,  19905.],
        #       [ 20126.,  19910.],
        #       [ 20491.,  19907.],
        #       ...,
        #       [ 23760.,  24088.],
        #       [ 23830.,  24054.],
        #       [ 23819.,  24060.]])


# 検出された天体の位置情報を引き出す
xy = cat[1].data["centroid_sdss"]

# ds9 上に検出された天体を表示する
for x, y in xy:
        ds9.dot("o", x, y, size=30)

Note

この他 HSC pipeline に同梱されている pyfits や afw パッケージの使い方は $AFW_DIR/doc/html/index.html から検索できます。

../_images/reduceFrame_10.png

図3 左から CORR-[visit]-[ccd].fits の結果と SRC-[visit]-[ccd].fits 内の天体を表示した結果



おまけ 1:各 [visit, ccd] の評価

早く解析をすすめたい人は以下の内容はスキップしても構いません。

reduceFrames.py を実行すると、天体データの1 次処理以外に各 [visit, ccd] の評価も行ってくれます。 評価結果は $home/hsc/rerun/[rerun]/[pointing]/[filter]/qa 下に出力されています。 それでは中身を確認していきます。

  • シーイング

    • 星選択に使った天体の個数分布サムネイル画像:magHist-[visit]-[ccd].png
    • シーイング測定途中経過サムネイル画像   :seeingRough-[visit]-[ccd].png
    • シーイング測定サムネイル画像       :seeingRobust-[visit]-[ccd].png
../_images/reduceFrame_4.png

図4 左から順に、magHist-、seeingRough-、seeingRobust- のサムネイル画像

  • PSF
    • PSF 決めに用いられた星のカタログ       :seeingMap-[visit]-[ccd].txt
    • PSF 決めに用いられた星の FWHM と位置     :seeingMap-[visit]-[ccd].png
    • グリッド毎の星のカタログ           :seeingGrid-[visit]-[ccd].txt
    • グリッド毎の星の平均的な FWHM        :fwhmGrid-[visit]-[ccd].png
    • グリッド毎の星の平均的な FWHM の値     :fwhmGrid-[visit]-[ccd].fits
    • PSF 決めに用いられた星の楕円体の大きさと位置 :ellipseMap-[visit]-[ccd].png
    • グリッド毎の星の平均的な楕円体の大きさ    :ellipseGrid-[visit]-[ccd].png
    • PSF 決めに用いられた星の楕円率と位置     :ellipticityMap-[visit]-[ccd].png
    • グリッド毎の星の平均的な楕円率        :ellipticityGrid-[visit]-[ccd].png
    • グリッド毎の星の平均的な楕円率の値       :ellipticityGrid-[visit]-[ccd].fits
    • グリッド毎の星の伸び方向と楕円率の値     :ellPaGrid-[visit]-[ccd].fits
    • グリッド毎の星の stack 画像          :psfSrcGrid-[visit]-[ccd].fits
    • グリッド毎の星の stack 画像(コントア)    :psfSrcGrid-[visit]-[ccd].png
    • グリッド毎の PSF モデル画像          :psfModelGrid-[visit]-[ccd].fits
    • グリッド毎の PSF モデル画像(コントア)    :psfModelGrid-[visit]-[ccd].png

Note

グリッドは 1024 × 1024 pix 毎で定義されています。 また、ピンクで表示されている丸は CCD 全面の平均を表示しています。

../_images/reduceFrame_5.png

図5 左から順に、seeingMap-、fwhmGrid- のサムネイル画像と fwhmGrid-.fits 画像

../_images/reduceFrame_6.png

図6 左から順に、ellipseMap-、ellipseGrid-、ellipticityMap-、ellipticityGrid- のサムネイル画像と ellipticityGrid-.fits 画像

../_images/reduceFrame_7.png

図7 左から順に、ellPaGrid-fits、psfSrcGrid-fits 画像、psfSrcGrid- のサムネイル画像、psfModelGrid-.fits 画像、psfModelGrid- のサムネイル画像と


おまけ 2:CORR-[visit]-[ccd].fits の画像データ詳細

reduceFrames.py の実行で生成される CORR-[visit]-[ccd].fits には、 1 次処理済画像の他に天体のマスク画像と variance 画像も含まれています。 1 次処理済画像は [1] に、天体のマスク画像は [2]、variance 画像は [3] に格納されています。 ds9 の起動時にどちらの画像を開くか指定することで、中身を確認できます。

# 1 次処理済画像を開く
ds9 CORR-[visit]-[ccd].fits[1]

# 天体のマスク画像を開く
ds9 CORR-[visit]-[ccd].fits[2]

# variance 画像を開く
ds9 CORR-[visit]-[ccd].fits[3]
../_images/reduceFrame_8.png

図8 左から CORR-[visit]-[ccd].fits[1], CORR-[visit]-[ccd].fits[2]

おまけ 3:その他生成されるデータ

reduceFrames.py の実行で生成されるデータとして他に $home/hsc/rerun/[rerun]/schema 以下に icSrc.fits, src.fits というファイルがあります。 これらは前述の天体のカタログファイルのカラム情報が格納されているデータです。 HSC pipeline を実行する過程で生成されますが、 以降の解析で特別使用することはありません。

また、$home/hsc/rerun/[rerun]/visitim/v[visit]-f[filter] 以下に c[104-111].fits が生成されています。 これは、focusing 用 CCD に対して 1 次処理を行ったデータです。 しかしこちらも以降の解析で使用することはありません。

../_images/reduceFrame_9.png

図9 左から、ある focusing 用 CCD の 生データと reduceFrames.py 実行後の画像