astrometry.net 用カタログの作り方

English

自分で astrometry_net_data を作成する方法を説明します。 本家マニュアル も見つつ読み進めてください。

最新の astrometry.net を用意

hscPipe 3.x 以降をご使用の場合は、この節はスキップしてください。 もし hscPipe 2.12.4d_hsc をご使用の場合は、そのバージョンの hscPipe に付属している astrometry.net は古く、 必要なツールがまだ入っていません。ですので最新の astrometry.net をご自分でビルドしてください。

必要なライブラリ

yum install zlib-devel bzip-devel \
    libpng-devel libjpeg-turbo-devel \
    cairo-devel

ソースをダウンロード

本家ダウンロードページより最新版をダウンロードします。 2014-06-18 現在では 0.49 が最新版です。

ビルド & インストール

[user@example ~]$ cd /dev/shm
[user@example shm]$ tar xvaf ~/astrometry.net-0.49.tar.bz2
[user@example astrometry.net-0.49]$ cd astrometry.net-0.49
[user@example astrometry.net-0.49]$ make \
    INSTALL_DIR=$HOME/usr/astrometry               $(: お好きな場所に) \
    CFITS_INC="-I $HOME/usr/cfitsio/include"       $(: cfitsio のある場所) \
    CFITS_LIB="$HOME/usr/cfitsio/lib/libcfitsio.a" $(: cfitsio のある場所) \
    install
[user@example astrometry.net-0.49]$ cd ..
[user@example shm]$ rm -rf astrometry.net-0.49
[user@example shm]$ cd ~
[user@example ~]$ export PATH="$HOME/usr/astrometry/bin:$PATH"

カタログを用意

まずは何とかして次のような CSV ファイルを用意します。 (同等の FITS BinTable が最初からあるのであればこの節はスキップしてください)

id,ra,dec,ra_err,dec_err,starnotgal,r,u,g,i,z,r_err,u_err,g_err,i_err,z_err
1237645879551066262,348.90252656,1.27188781,0.01384772,0.01628234,0,19.410612,18.237537,17.581324,17.201529,16.901588,0.046767,8.25278E-3,7.026487E-3,8.094831E-3,0.021641
1237645879562862699,15.89612394,1.26484677,0.01108913,7.81238953E-3,0,20.149837,19.282238,19.031107,18.95554,18.782871,0.046607,0.011408,0.012107,0.017041,0.054156
 :
 :
(最初の二行はSDSS DR8より)
各コラムの説明
idオブジェクトのID
rara (degree)
decdec (degree)
ra_errra の誤差
dec_errdec の誤差
starnotgal星 (1) / それ以外 (0)
r,u,g,i,z各フィルタでの magnitude
r_err,u_err,g_err,i_err,z_err各 magnitude の誤差

フィルタの名前や個数は本来自由ですが、hscPipe の中で使用するにはトラブルを防ぐために次のようにしてください:

この等級データは、アストロメトリだけでなくフォトメトリの較正にも使われますので ご注意ください。

FITS BinTable に変換

次にこれを FITS BinTable に変換します。 (CSV から変換するのでなく、最初からお好きな方法で FITS BinTable を用意してもかまいません)

変換スクリプトcsv-to-fits.pyをダウンロードして、次のようにします:

[user@example ~]$ setup-hscpipe
[user@example ~]$ python csv-to-fits.py src-catalog.csv src-catalog.fits

カタログを領域ごとに切り分ける

上↑で用意した FITS BinTable を、Healpix のピクセルごとに切り分けます。次のようにします:

[user@example ~]$ mkdir workdir
[user@example ~]$ hpsplit -o workdir/cat-%i.fits -r ra -d dec -m 1 src-catalog.fits -n 2

indexファイルを作成する

astrometry.net が実際に使用するファイルを作成します。

[user@example ~]$ filter=r # デフォルトにしたいフィルタ
[user@example ~]$ mkdir output
[user@example ~]$ # workdir の中に生成された全てのカタログファイルについて
[user@example ~]$ find workdir -name "cat-*.fits" -print0 | while read -r -d '' catalog
do
    # catalog="workdir/cat-###.fits" から index="output/index-###.fits" を生成
    index="${catalog/"workdir/cat-"/output/index-}"
    # index="output/index-###.fits" から拡張子 .fits をもぎ取る
    index="${index%.*}"

    # プリセット 0
    build-astrometry-index -v -i $catalog -o $index-0.fits -P 0 -S $filter -n 100 -r 1 -j 0.4 -E
    # プリセット 1, 2, 3
    for p in {1..3}
    do
        build-astrometry-index -v -1 $index-0.fits -o $index-$p.fits -P $p -S $filter -n 100 -r 1 -j 0.4 -E
    done
done

コンフィグファイルを作成

indexファイルがどのような内容のものかを記述します。

[user@example ~]$ vi output/andConfig.py
# 下のように記述します
import os.path
import os
import glob

root.starGalaxyColumn = "starnotgal"
filters = ("r", "u", "g", "i", "z") # 最初に用意したカタログ内のフィルタを列挙
root.defaultMagColumn = "r"
root.magColumnMap = dict([(f,f) for f in filters])
root.magErrorColumnMap = dict([(f, f + "_err") for f in filters])
root.indexFiles = [os.path.basename(path) for path in glob.glob(os.path.join(os.environ["ASTROMETRY_NET_DATA_DIR"], "index-*.fits"))]

UPS ディレクトリを生成

以上のように作成した output ディレクトリを、eups で使えるようにします。

[user@example ~]$ mkdir -p output/ups
[user@example ~]$ touch output/ups/astrometry_net_data.table # 空ファイル

インストール

こうしてできたディレクトリ output を、適当な名前に変えて、適当なディレクトリに配置します。

[user@example ~]$ mv output MYCATALOG
[user@example ~]$ mv MYCATALOG /opt/hscpipe/astrometry_net_data/

ここで MYCATALOG は次のうちいずれかのワイルドカードに マッチしなければなりません:

sdss*
カタログを SDSS から取ってきた場合は "sdss" をカタログ名に冠してください。 SDSS と HSC とのフィルタ特性の違いが考慮されます。
ps1*
カタログを Pan-STARRS から取ってきた場合は "ps1" をカタログ名に冠してください。 Pan-STARRS と HSC とのフィルタ特性の違いが考慮されます。
hsc*
本来は HSC 自身からのカタログを用いる場合のものですが、 色補正をしないオプションとして使えます。

これを eups に登録します

[user@example ~]$ eups declare \
    -m /opt/hscpipe/astrometry_net_data/MYCATALOG/ups/astrometry_net_data.table \
    -r /opt/hscpipe/astrometry_net_data/MYCATALOG/ \
    astrometry_net_data  MYCATALOG

以上のようにしてできたデータを使うには、次のようにしてセットアップすれば大丈夫です。

[user@example ~]$ setup-hscpipe
[user@example ~]$ setup astrometry_net_data MYCATALOG