(2010年09月30日 更新)

GALFITの入手・インストールと使い方



0.  GALFIT は C. Y. Peng 氏が作成した、銀河2次元光度プロファイルのフィッティング
   コードである。詳しくは Peng, C. Y., Ho, L. C., Impey, C. D. and Rix, Hans-Walter 
   (2002) "Detailed Structural Decomposition of Galaxy Images", AJ, 124, 
   266-293 を参照されたい。

     本ページには GALFIT の入手方法とインストール、そして簡単な使用方法を、私の
   備忘録を兼ねてメモしておく。なお、実際にGALFITの動作に成功した私の個人的な PC 
   環境は以下の通りである。

         CPU    : Celeron 2.4GHz
         OS     : Vine Linux 4.2 (default)
         Memory : 1.5GB

         GALFIT : version 3.0


----- I. GALFITの入手とインストール -----

1.1   GALFIT の入手方法

      GALFIT はソースコードと幾つかのOSに対するバイナリが、開発者のページにて
   公開されている。勿論、誰でも無償で入手可能である。
     公開ページは、

           http://www.ociw.edu/~peng/work/galfit/galfit.html

   であるが、本ページ作成直前の2010年9月6日から上記ページへアクセス出来ない
   状態が続いている。このページ以外に、何らかの形でGALFITを入手する方法を、
   筆者は知らない。このアクセス不可が一時的なものであることを祈りたい。
     本稿執筆時でのGALFITの最新版はバージョン3.0である。

   (2012年01月05日追記):GALFITのページは、以下で復活しておりました。
       http://users.obs.carnegiescience.edu/peng/work/galfit/galfit.html
     峰崎さん、情報ありがとうございました。

     筆者はソースコードではなく、バイナリ(galfit-redhat.tar)をDLした。
   従って、ソースからのコンパイルは、未確認である。
     また、GALFIT本体に加えて、example と称するテスト用のfitsファイルやテキスト
   ファイルが入ったtarボール(確か galfit-ex.tar.gz というやつ)もDL可能である。
   最初はこのexampleデータでGALFITを試すのが良いかも知れない。


1.2   GALFITのインストール

     入手したバイナリを解凍すると、「galfit」という名前のファイルが一つだけ
   得られる。これがGALFITの実行ファイルである。どこか適当なところに置いて
   欲しい。

     GALFITの実行は、動作設定やfittingの初期値などを記したテキストファイル名
  (ここではaho.testとした)を用いて、

           prompt> galfit aho.test[Ret]

  と入力すればよい。ここでのテキストファイルは、自分の好きな名前を付けられる。
     設定や初期値が適切であれば、fitting の様子をテキストで逐一表示してくれる。
   もしも初期値などが不適切で、fitting が収束しないと、「ぼかーーーん!!」と
   なる(本当だよ)。この「ぼかん」は、自分の目で見て欲しい。筆者は初めてこれを
   見たとき、数秒思考が停止したのを憶えている(笑:こう言うノリは嫌いじゃない)。


----- II. GALFITのための画像準備 -----

2.1   観測データとリダクション

     前述した example データでもいいのだが、ここでは折角なので、手持ちのデータを
   GALFIT に食わせることにした。サンプルは、東京大学大学院理学系研究科天文学教育
   研究センター木曽観測所の105cmシュミット望遠鏡と 2kCCD カメラを用いて撮像した
   早期銀河 NGC524 の画像である。NED による NGC524 の基本データは以下の通り。
名称R.A.(J2000)DEC.(J2000)velocity
(km/s)
Morphology
NGC524
UGC 00968
01h 24m 47.7s+09d 32m 20s 2379SA0^+(rs)
また観測条件は以下の通り。
日時天候フィルター/積分時間観測者
2004年08月12日快晴V :300sec * 3 frames筆者および本研究室の、
2004年度観測実習参加者
リダクションには IRAF を使用し、典型的な手法でバイアスの差し引き、フラット・ フィールディングを行った。スカイ(背景光)の差し引きにはSPIRALを用い、スカイ 除去済の3枚の画像を、改めて IRAF でスタックした。その際、画像毎のレベル合わせや、 seeing合わせは行わなかった(imexamによる星像の測定で不要と判断した)。 最後に、画像視野外縁部に残った noisy な領域を切り取った。 以下は、このようにして作成したNGC524のVバンド画像である。北が上、東が左で、 2kCCDの全視野50分角四方にほぼ相当する。画像中央の少し下の明るい楕円天体がNGC524で ある。

上記画像のfitsファイルをDL(注:約12MB、DL後、要解凍)。
2.2 キャリブレーションと開口測光 前節までで、早期型銀河NGC524のVバンド画像を作成した。 続いて、この画像の等級のゼロ点を求めた。方法としては、NGC524周辺部に位置する 恒星で、既に測光されているものを探し出し、その値を観測画像から得た等級(instrumental magnitude)と比較することで、等級のゼロ点の調整を行った。 4個の恒星のVバンドでの等級を、VizieR を用いて、Skiff B. A. (2007, ''UBVRI photometry of faint field stars'', Lowell Observatory)から得た。これによって得られた、 NGC524のVバンド画像の等級のゼロ点は、 28.032+-0.023 mag/pix である。 老婆心で付け加えると、これは、上でDL可能なNGC524のVバンドfits画像で、1 ADU に相当する 等級が、28.032+-0.023 mag である、ということだ。 さらに、IRAF/apphot による開口測光で、大雑把に NGC524 のV等級を測定したところ、 16.002 mag という値を得た。等級のゼロ点とこのNGC524のV等級の値は、後ほど GALFIT が使うので、 きちんと記録しておくこと。 2.3 その他の準備 銀河の画像をGALFITに食わせる前に、予め測定・準備しておくデータは、主に以下のような ものである。 PSFのfits画像は、sssN524V_c.fits 中から、サチっておらず、近くに他の天体が無いような 恒星一つを選び、[1265:1295,774:804]の領域を切り出すことで作成した。下にそれを示す。

上記画像のfitsファイルをDL(注:約6kB、DL後、要解凍)。
これで GALFIT に食わせるデータは全て準備できた。では早速、GALFITを走らせてみよう。 ----- III. GALFITによるの銀河のモデル・フィッティング ----- 3.1 INPUTファイルの設定およびGALFITの実行 GALFITのHPから galfit-ex.tar.gz をDLし、これを解凍すると EXAMPLE.INPUT なる テキストファイルがある。これが GALFIT に食わせるべき設定ファイルである。まぁ、 オリジナルは残して、このコピーファイルを作り、これを編集することにする。なお、 設定ファイル名は「galfit.test」とした。 このファイルは、大きく分けて2つの部分からなる。即ち''IMAGE and GALFIT CONTROL PARAMETERS''なる、画像データの名前や、GALFIT動作の全般に関する情報を入力する部分 と、''OBJECT LIST''なるfitすべき天体の情報を入力する部分である。特に後者では、 表面輝度プロファイルに適用する関数系が幾つか用意されており、サーシック則(sersic), nuker(何これ?), 指数則(expdisk), エッジ・オン・円盤(edgedisk), ド・ボークルール 則(devauc), キング・モデル(king), モファット関数(moffat), ガウシアン(gaussian), ferrer(これも知らん), PSF(psf), スカイ(平面: sky)が選べる。 各パラメータの意味は、大体以下のような感じ... おっと、今回、NGC524とPSFの二つのfits画像、galfitの本体プログラム、そして現在 編集している設定ファイルgalfit.testは、全て同じ階層に置いた。
''IMAGE and GALFIT CONTROL PARAMETERS''
  • A) フィットしたいfits画像名:今回は "sssN524V_c.fits"
  • B) 出力されるフィット画像や残差画像名:defaultの "imgblock.fits" でok
  • C) sigma image名:データから作る場合はブランクか "none" とのこと
  • D) psf画像名:今回は "sssN524V_psf01.fits"
  • E) PSF fine sampling factor って何だろう?:今回は default の "1" で
  • F) Bad pixel mask (fits画像 or 座標テキストデータ):今回は未使用で "none"
  • G) パラメータの制限ファイル:今回は未使用で "none"
  • H) fitting領域を xmin xmax ymin ymax の書式で:今回は "730:1200,350:890"
  • I) convolution box のサイズって何やろか~~??:今回は "32 32" でトライ
  • J) 等級のゼロ点:今回は、さっき導出した "28.032" でok
  • K) plate size : Kiso 105cm Schmidt + 2kCCD camera なので、"1.5 1.5"
  • O) Display type って何?:ここは default の "regular" で
  • P) 何か分からん:default の "0" でいいでしょ
続く OBJECT LIST では、取り合えずド・ボークルール則を選ぶことにする(N524は S0なんだけどね)。
''OBJECT LIST''
  • 0) オブジェクト・タイプ:ド・ボークルール則なので "devauc"
  • 1) fit対象天体の中心座標:予めimexamで調べて "984.4 591.3"
  • 3) 全等級:あくまでfittingの初期値なので、先程調べた "16.002"
  • 4) Effective radius:何となく適当に "10.0" くらいか?
  • 9) 軸比:imexamの結果から適当に "0.900"
  • 10) 位置角(PA): imexamの結果から "133"
  • z) よく分かんないので default の "0" にしとく
最後に OBJECT LIST に sky を設定する。
''OBJECT LIST''
  • 0) オブジェクト・タイプ:スカイなので "sky"
  • 1) fitting対象天体中心におけるスカイの値:skyは引いたつもりなので "0.00"
  • 2) スカイのx方向の傾斜(dsky/dx):skyは引いたつもりなので "0.00"
  • 3) スカイのy方向の傾斜(dsky/dy):skyは引いたつもりなので "0.00"
  • z) よく分かんないので default の "0"
これで、準備は完了。EXAMPLE.INPUT に目を通すと、本当は他にも隠れパラメータが あるようだが、今回は取り合えず GALFIT を動かすのが目的なので、無視しよう。 そしてファイルの置き場所などに気を付けて、コマンドラインから、 prompt> galfit galfit.test[RET] でOK。 ぐるぐると iteration をかけながら fitting の暫定結果を表示していく。 初期値がうまくなく、fitが収束しなければ「ぼか~~~ん!」。これは、 例えば、total magnitude の初期値を滅茶苦茶巨大にするor滅茶苦茶微小にする、 や、convolution box のサイズを滅茶苦茶大きくする、などで体験できる。 まぁ、一回見れば十分だろう(fittingが上手く行っていないのだから、あまり 見たくない[笑])。無事、fitting が終われば、fit.log に書き出したよ、って 感じのメッセージが表示されて、プロンプトが帰って来る。 ちなみに iteration の回数が101に達したら、ここで fitting は打ち切られる。 今回は、ものの数10秒で fitting 終了。 3.2 GALFITによるフィッティング結果 GALFIT による fitting の結果は、fit.log, galfit.xx(xxは2ケタの通し番号), imgblock.fits(設定によっては別のfitsファイル名になる)の三つのファイルに書き 出される。 まず、GALFIT を動かす度に、フィットの概要が fit.log に追記されていく。 フィット結果の詳細は、個別に galfit.xx に書き出される。 また fit によって得られたモデル画像や、入力画像からモデル画像を差し引いた 残差画像等は、imgblock.fits に出力される。なお、これはmulti-fits形式になって いるので、何も考えずに IRAF から display しようとすると、 cl> display imgblock.fits 1[Ret] ERROR: FXF: must specify which FITS extension (imgblock.fits) と怒られる。「ちゃんと、どの fits画像 なのか教えてよ~~」ってな意味かしら? 具体的には、 cl> display imgblock[0].fits 1[Ret] : ---> 表示されるけど何これ??? cl> display imgblock[1].fits 1[Ret] : ---> fitting した領域の元画像 cl> display imgblock[2].fits 1[Ret] : ---> fitting で得られたモデル画像 cl> display imgblock[3].fits 1[Ret] : ---> 元からモデルを引いた残差画像 となっている。 早速、これらを見てみることにしよう。 左から順に、元画像のfitting領域の画像、モデル画像、元画像からモデル画像を 差し引いた残差画像である。

上記画像のfitsファイルをDL(注:約2.7MB、DL後、要解凍)。
まぁ、結構上手くフィットできたように見える。ただし銀河の中心に怪しい構造が 残ってしまうのはお約束だろう。改めて Peng (2002)の図と本文をチェックすると、 このような構造が残るのは、従来の方法によるモデル・フィットの結果だ、というように 読める。つまり、このような結果では、まだ GALFIT の真の力が発揮された訳では無い、 ということのようだ。一応、ド・ボークルール以外にも expdisk や gaussian 成分も 加えてフィットしろということらしい。 GALFIT道は、まだまだ奥が深い。まぁ、まずはここまで。

と、言いつつ、折角なので観測データとモデルのプロファイルを比較してみた。表面 測光には SPIRAL/mmprof を使用した。下の二つの図が結果である。左は横軸に銀河中心 からの距離をlinearで、右は1/4乗で表記した。

図を左クリックすると、より大きな画像を見ることができます。
ほうほう、フィッティングには銀河中心に近い比較的内側の明るい部分が使われており、 銀河外縁部ではモデルの方が明るくなっている。なるほど、なので残差画像は外縁部が引き 過ぎで黒くなってるんだね。 NGC524の観測データを見ると、中心から 50 arcsec あたりで表面輝度分布が折れとる。 何かヘンな構造でも持ってるのかしらね? 前述したように、パラメータをうまく調節してGALFITの性能をフルに発揮させることが できれば、NGC524の真ん中辺りに残ったビミョ~なドーナッツ状の残差が結構綺麗に無く なることが期待される。しかし、少しやってみたがなかなか上手く行かない。まずはここ までにしておく。 (2012年01月05日追記): 50 arcsec あたりの表面輝度分布の折れ曲がりって、 S0銀河のバルジとディスクの輝度の勢力の境目かしら?

西浦クンのメモへ

西浦クンのお部屋トップページへ

東京学芸大学天文学研究室ホームページへ

東京学芸大学宇宙地球科学分野ホームページへ

東京学芸大学ホームページへ

Created: Wed Sep 08 16:03 JST 2010
Last modified: Fri Jan 15 12:40 JST 2021