LoginSignup
9
5

天文データ解析入門 その2 (Montageの使い方)

Last updated at Posted at 2021-06-09

この記事では Montage の使い方について紹介します。

Montage のインストール

http://montage.ipac.caltech.edu/docs/download.html
からドキュメントに従って自身の環境に合わせてインストールします。
そしてパスを通し、ターミナルでどこからでも「mImgtbl」などのコマンドが使える状態であることを確認します。

データの準備

今回は例として、Spitzer 24 µm のアーカイブデータを使用します。
https://irsa.ipac.caltech.edu/data/SPITZER/MIPSGAL/
から、W43 付近のデータをダウンロードします。
または、
https://irsa.ipac.caltech.edu/data/SPITZER/MIPSGAL/images/mosaics24/
からダウンロードすることも可能です。

MG0290n005_024.fits
MG0290p005_024.fits
MG0300n005_024.fits
MG0300p005_024.fits
MG0310n005_024.fits
MG0310p005_024.fits
の計6つの fits をつなぎ合わせたいと思います。

Montage 使用方法 (2D)

まず、「imagedir」というディレクトリを作成し、その中に fits を全て入れます。
ターミナルで fits のあるディレクトリに移動し、

mkdir imagedir
mkdir resultdir
mv MG*_024.fits imagedir/

と実行します。

そして

mImgtbl imagedir images.tbl

を実行します。images.tbl という名前のファイルが生成されます。ファイルのリストです。
次に、

mMakeHdr images.tbl template.hdr GAL

を実行します。template.hdr という名前のファイルが生成されます。新しいヘッダーです。「GAL」を後ろにつけることで座標系を銀経銀緯にできます。
次に、

mProjExec -p imagedir images.tbl template.hdr resultdir stats.tbl

を実行します。resultdir の中にreprojectされた fits が生成されます。少し計算に時間がかかります。
次に、

mImgtbl resultdir/ resultimages.tbl

を実行します。resultimages.tbl という名前のファイルが生成されます。
次に、

mAdd -p resultdir/ resultimages.tbl template.hdr W43_24um.fits

を実行します。resultdir の中の fits が足し合わされます。W43_24um.fits は保存する名前です。少し計算に時間がかかります。W43_24um_area.fits というものも生成されますが、これは中間ファイルのようなものなので消して大丈夫です。
生成された fits の値はfloat64で書かれています。python の astropy.io.fits などで開いてfloat32にすることで約半分まで軽くすることができます。

from astropy.io import fits
hdu_24 = fits.open("./W43_24um.fits")[0]
fits.PrimaryHDU(hdu_24.data.astype("float32"), hdu_24.header).writeto("./W43_24um.float32.fits")

最後に、生成された fits を ds9 で確認します。

スクリーンショット 2021-06-09 15.00.12.png

Spitzer IRAC の合成がうまくいかないとき

IRAC の fits を合成する際、mProjExec でエラー無しに失敗することがありました。「-d」オプションで調べてみると、途中で内部的に呼び出されている mTANHdr の中で、altout.hdr というファイルを作るようなのですが、ファイル名が誤っており、正しくは altin.hdr のようです。

Output wcs ptype: [TAN]

Image 0:
Input wcs ptype: [CAR]
mGetHdr(imagedir/GLM_31500+0000_mosaic_I4.fits) -> [ncard=105]
mTANHdr() -> [fwdxerr=0.00109851, fwdyerr=0.0416789, fwditer=51, revxerr=0.00205488, revyerr=0.0185355, reviter=51]
Using distorted TAN on input: max error = 0.0416789
mProjectPP(imagedir/GLM_31500+0000_mosaic_I4.fits) -> [File resultdir/altin.hdr not found.] (COMPUTED/INTRINSIC)
 inp2p = COMPUTED
outp2p = INTRINSIC

Montage のバグのようです。まだ修正されていないようですので、以下のようにして対処してください。
mProjExec で一回失敗する (altout.hdr が生成される) → altout.hdr を altin.hdr に rename → もう一度 mProjExec という手順です。少々間抜けな感じですが、一応これで正確に合成できることを確認しました。(途中平気で「rm -rf」などを使っているので、取り扱いには注意してください。)

imagedir: 合成したい fits が全て入ったディレクトリ
imagedir_tempo: 一時的なディレクトリ
resultdir: 生成物 (中間ファイル) が入っていくディレクトリ (あらかじめ作っておいてください)
GLIMPSE.fits: 最終的な生成物

mImgtbl imagedir images.tbl
mMakeHdr images.tbl template.hdr GAL

for infile in imagedir/*.fits; do
rm -rf ./imagedir_tempo ;
mkdir imagedir_tempo ;
cp $infile imagedir_tempo/${infile##*/} ;
mImgtbl imagedir_tempo images_tempo.tbl
mProjExec -p imagedir_tempo images_tempo.tbl template.hdr resultdir stats.tbl ;
mv resultdir/altout.hdr resultdir/altin.hdr  ;
mProjExec -p imagedir_tempo images_tempo.tbl template.hdr resultdir stats.tbl ;
rm -f resultdir/altin.hdr ;
done

mImgtbl resultdir/ resultimages.tbl
mAdd -p resultdir/ resultimages.tbl template.hdr GLIMPSE.fits

Montage 使用方法 (3D)

3D の fits (cube) 同士を足し合わせたいこともあるかと思います。
一応、Montage は cube にも対応していますが、速度軸がちょっとおかしな挙動をすることがあるので、できれば casa の「imregrid」などで速度軸を揃えてから足し合わせることをお勧めします。
casa の使い方については別の記事を参照してください。

mImgtbl imagedir/ images.tbl 

mMakeHdr images.tbl template.hdr

for infile in imagedir/*.fits; do
mProjectCube $infile resultdir/${infile##*/}_proj.fits template.hdr ;
done

mImgtbl resultdir/ resultimages.tbl

mAddCube -p resultdir resultimages.tbl template.hdr result.fits

以上です。

リンク
目次

9
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
5