生データに対しレジストリを作成

ダウンロードした生データを解析ディレクトリの中に配置し、レジストリを作成します。 使用する HSC pipeline のコマンドは hscIngestImages.py です。

# 生データのあるディレクトリに移動
cd ~/data

# 解析ディレクトリ下にレジストリを作成
hscIngestImages.py ~/hsc  ./*.fits --mode=link --create

# 使い方:hscIngestImages.py <解析用ディレクトリ> <fits file 名> --mode=*** --create
#
# オプション:
#   --mode   :新たにレジストリを作成する際のデータの配置法を指定。move, copy, link, skip がある
#   --create :新たにレジストリを作成する際の引数

Warning

HSC pipeline のコマンドでディレクトリを指定する時は、必ず 絶対パス で指定してください!!


hscIngestImages.py が正常に動くと ~/hsc 下に <object name> , DOMEFLAT , DARK 等のデータディレクトリが新たに生成され、その中に生データが配置されているはずです。 また、hscIngestImages.py によって ~/hsc 下に配置された画像の情報は registry.sqlite3 というレジストリに登録されます。 registry.sqlite3 に登録された情報は SQL というデータベース言語を用いて検索することができます。

このドキュメント内では DITH-16H という object の G-band、I-band の解析を参考に HSC pipeline の使い方を紹介していきます。 では、どのような画像が登録されたか見てみることにしましょう。

# レジストリを SQL で込む
sqlite3 ~/hsc/registry.sqlite3

# ヘッダー情報の読み込み
sqlite> .header on

# visit 番号、filter 名、field 名、visit 数を選択
sqlite> SELECT visit, filter, field, count(visit)
   ...> FROM raw                                        # 生データのレジストリから上記情報を選択
   ...> GROUP BY visit, filter, field;                  # visit > filter > field 順に並べて表示

   #(ここに 図4 のように検索結果が表示される)

# レジストリの検索終了
sqlite> .q
../_images/sqlite3_1.png

図4 sqlite3 による生データの検索結果

この検索結果から読み取れることは、全ての visit で全ての CCD のデータがある(112個)という点と、各 field で

  • DITH_16H (G-band) :visit 番号 903160, 903162, ... , 903188
  • DITH_16H (I-band) :visit 番号 902798, 902800, ... , 902870
  • BIAS        :visit 番号 902670, 902672, ... , 902678
  • DARK       :visit 番号 006600
  • FLAT (G-band)   :visit 番号 903036, 903038, ... , 903044
  • FLAT (I-band)   :visit 番号 902690, 902692, ... , 902704

のデータがあるという点です。以降の解析はこれらの情報を使って行います。

Warning

HSC pipeline の解析は CCD データが 112 個より少ないと、解析が失敗しているにも関わらず pipeline 処理が進んでしまう場合があります。 必ず各 visit で CCD データが 112 個あることを確認 しておきましょう。


最後に sqlite3 を用いた上記以外のレジストリの検索方法を少しご紹介します。 データの情報は table に分類され格納されています。そこで、まず現時点でどのような table があるか調べます。ここではまだ生データしかありませんので、raw と raw_visit の 2 種類しかありません。 この raw の中に各 object, visit, ccd, filter といった様々な情報が格納されています。例では全ての情報を表示させています。 下記の方法で実行した検索結果は 図5 に表示しています。

# 検索結果のカラムの説明を表示させるおまじない
sqlite> .explain on

# table の内容を表示
sqlite> .table
        raw   raw_visit

# raw という table から全てのヘッダー情報を選択
sqlite> select * from raw
   ...> group by visit;                 # visit 順に表示


# 以下、検索結果
#
id    taiObs         expI  poin  data  visit          da  frameId        filter      field       pa          expTime     ccdTemp     ccd         proposal    config        autoguider
----  -------------  ----  ----  ----  -------------  --  -------------  ----------  ----------  ----------  ----------  ----------  ----------  ----------  ------------  ----------
49    2014-09-19     HSCA00660000  992   DARK  6600   2014-09-19  HSCA00660048   HSC-I  DARK     90.347      30.0        -100.594    111         o14422      20140306.cfg  0
...

sqlite> .help                           # sqlite3 でレジストリを検索する際のヘルプ
../_images/sqlite3_2.png

図5 sqlite3 による生データの検索結果その2