画像、カタログについての QA


Coadd 画像の PSF を見たいのですが

以下のようなスクリプトで PSF モデルを fits で保存することができます。

# (x, y) を patch ローカル座標として、
import lsst.afw.image as afwImage
import leet.afw.geom as afwGeom

exp = afwImage.ExposureF("calexp-[filter]-[tract]-[patch].fits")
x0,y0 = exp.getXy0()
psf = exp.getPsf()
psfImage = psf.computeImage(afwGeom.Point2D(x+x0,y+y0))
psfImage.writeFits("out.fits")

CORR 画像や Coadd 画像に特定の CCD 起因と思われるパターンが見られます

特定の CCD、またはそのチャネルにおいて、ハードの一時的な不具合によりカウント値がおかしくなることがあります。 そのまま解析してしまうと、CORR 画像や Coadd 画像の一部にパターンがのってしまうことがあります。

これを除去するには、CALIB 以下にある FLAT 画像の該当ピクセルをマスクする必要があります。 以下に pyfits を用いた場合の例を示します。

# pyfits で fits ファイルを開く際は、int16 で保存するために以下のようなオプションを付けて下さい。
hdul = pyfits.open('FLAT-xxx.fits', uint=True, do_not_scale_image_data=False, scale_back=True)
data=hdul[2].data
for i in range(該当部分):
        data[該当チャネル] = 256
...
# ここでマスクの値は NO_DATA もしくは BAD のビットになります。
# FLAT の Mask 画像のヘッダで "HIERARCH MP_NO_DATA = 8" のときは 256 を、"MP_BAD = 0" のときは 1 を入れて下さい。

このようにマスクした FLAT 画像をもとの画像と同じ名前にし、再度 reduceFrames から行って下さい。 FLAT 画像にしかマスクをしていないので、reduceFrames を走らせる際は、–config processCcd.isr.doBias=False processCcd.isr.doDark=False をつけて Bias, Dark 引きをしないようにして下さい。


カタログの PSF から天体のサイズを求めたいのですが

天体が点源で、かつガウシアンであるという仮定が成り立つ場合、multiband 後の meas カタログの PSF からサイズを求めることができます。 参照するカラムは “shape_sdss_psf” です。

# pyfits を使う場合、カタログの shape_sdss_psf を読み込むと、array[Ixx, Iyy, Ixy] になっているので、そこから size を計算。
catalog = pyfits.open("meas-*.fits")
catalog[1].data['shape_sdss_psf']

# array[Ixx, Iyy, Ixy] のように値が格納されているので、
size = (Ixx*Iyy-Ixy**2)**(1./4)

最後に pixel から arcsec に変換します。FWHM に直したいときは 2*math.sqrt(2*math.log(2)) をかけて下さい。


観測データと HSC SSP データで multiband カタログを作りたいのですが

国立天文台では台湾、プリンストン大学と共同で、HSC Subaru Strategic Program (SSP) という大規模サーベイを行っています。 SSP には日本人であればどなたでも参加できる資格があります。詳細は Survey website 日本人研究者の方へ をご覧下さい。 また、第一期データは Public release としても公開されています (HSC SSP Data Release1)。

1. データの準備

SSP ではアストロメトリ用カタログとして Pan-STARRS 1 カタログを使用していますので、ご自身のデータを解析される際にも Pan-STARRS を使用するようにして下さい。 さらに、自身で取られたデータについて、tract 定義を SSP のものと同じにする必要があります。方法は こちら を参照して下さい。

次に SSP データリリースサイトから以下のデータセットを取得し、配置します。

  • rerun/[rerun]/deepCoadd/[filter]/[tract]/[patch]/calexp-[filter]-[tract]-[patch].fits
  • rerun/[rerun]/deepCoadd-results/[filter]/[tract]/[patch]/det-[filter]-[tract]-[patch].fits
  • rerun/[rerun]/deepCoadd/skyMap.pickle
  • rerun/[rerun]/schema/deepCoadd_det.fits

rerun/[rerun]/schema/deepCoadd_det.fits については一部存在しない場合がありますが、他の領域のものが使えますので、そちらを取得願います。 このとき、それぞれのファイルのディレクトリ階層を崩さないように配置します。 例えば、SSP データサイトから calexp-HSC-Z-17272-5,0.fits を取得した場合、ご自身の解析ディレクトリの rerun/[rerun]/deepCoadd/HSC-Z/17272/5,0/ の下に配置して下さい。

また、一度 multiband まで走らせた結果が rerun/[rerun]/deepCoadd-results/[filter]/[tract]/[patch] 以下にある場合、プロセスがスキップされます。 一度解析が終了したデータを移動させて、rerun/[rerun]/deepCoadd-results/[filter]/[tract]/[patch] 以下は det のみにして下さい。

SSP データと一緒に multiband を行う際に、新しい rerun 名でディレクトリを作成する場合があると思います。 その場合は新しい rerun/<rerun名> の下に _parent というリンクを作成し、そのリンク先が _mapper が置かれているディレクトリを指すようにして下さい。

ln -s <_mapper があるディレクトリ> $home/hsc/rerun/<rerun>/_parent

2. コマンドの実行

multiBand.py を走らせます。この時、以下のオプションをつけて下さい。

multiBand.py  $home/hsc --calib=$home/hsc/CALIB --rerun=<rerun 名> --id tract=<tract 番号> filter=HSC-I^HSC-G^HSC-Z --config measureCoaddSources.doPropagateFlags=False

# --config measureCoaddSources.doPropagateFlags: default では True。個々の CCD の情報を見に行くかどうかを決める。今回、取得できるデータに個々の CCD の情報はないので、False にする。

また、”Unequal schemas between input record and mapper” というエラーが出た場合、rerun/[rerun]/schema/ 以下に以前のデータが残っているのが原因ですので、deepCoadd_det.fits 以外を消して再度走らせて下さい。