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

この記事では [Montage](http://montage.ipac.caltech.edu/) の使い方について紹介します。

# 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
の計６つの 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にすることで約半分まで軽くすることができます。
```python
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 で確認します。

<img width="400" alt="スクリーンショット 2021-06-09 15.00.12.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117814/959d7906-2d50-afdb-7a36-05f9b1c57606.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](https://casa.nrao.edu/) の「[imregrid](https://casa.nrao.edu/docs/taskref/imregrid-task.html)」などで速度軸を揃えてから足し合わせることをお勧めします。
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
```

以上です。

リンク
[目次](https://qiita.com/Shinji_Fujita/items/ecb869e5b6a9fa468483)