読者です 読者をやめる 読者になる 読者になる

銀河系内全天画像を扱う人は CAR Projection をちゃんと理解したほうが良い

研究

世の中に転がっている銀河系内全天画像 (all-sky map) の FITS の header には、WCS (World Coordinate System) が間違って書き込まれているものを散見します。WCS には様々な projection (投影法) が規定されているのですが、その中で CAR projection を勘違いしたまま使用する人を何度も見てきました。そのような間違った WCS が書き込まれた FITS を解析した場合、座標系が間違っているのでとんでもない解析ミスに繋がる可能性があります。

世の中に落ちている HI、CO、Av など、様々な全天画像の FITS header に間違いが含まれています。どこからか落としてきた FITS 画像を使う場合は、使用前に信頼できる描画ソフトで座標系を描いてみることをお勧めします。

WCS とは

WCS は FITS 画像上の pixel がどのように実際の天球面に対応するかを定めた座標変換の規則のことです。通常の CCD 画像などは 2 次元の広がりを持つだけですが、現実の天体は球面座標で表される天球面上に存在しています。そのため、画像上の見かけの 2 次元座標は何らかの座標変換によって天球面上に配置されなければいけません。さらに光学系の歪みが無視できない場合、この歪みも WCS にて補正することが可能です。

詳細は以下の論文に記述されています。

  1. M. R. Calabretta and E. W. Greisen (2002) A&A, 395, 1077-1122
  2. M. R. Calabretta, F. G. Valdes, E. W. Greisen, and S. L. Allen (2004) A&A に投稿予定のまま?
  3. M. R. Calabretta and B. F. Roukema (2007) MNRAS, 381, 865-872

WCS が登場する前までは FITS の 2 次元画像をそのまま直交座標系だと見做す単純な座標変換が使われていました。次のような FITS header を用意すれば、CRPIX1/CRPIX2 を基準点とし、FITS の (x, y) 座標の点を銀経銀緯上で {\ell = (x - \mathrm{CRPIX1})\times\mathrm{CRDELT1} + \mathrm{CRVAL1}} {b= (y - \mathrm{CRPIX2})\times\mathrm{CRDELT2} + \mathrm{CRVAL2}}
で表すことが出来ます。

CTYPE1  = 'GLON'
CRVAL1  =   1.800000000000E+02
CRPIX1  =                    1
CDELT1  =  -5.000000000000E-01
CTYPE2  = 'GLAT'
CRVAL2  =  -0.000000000000E+01
CRPIX2  =                  181                                      
CDELT2  =   5.000000000000E-01

これは非常に単純で明快です。

CAR Projection とは

WCS には CAR projection という座標変換が存在します。この CAR は plate carrée のことで、本来は Cartesian ではありません*1。一見すると、上述の WCS を使わない単純な座標変換に似ているのですが、同じだと勘違いして使用すると大きな間違いを犯します。

文献 [1] には次のように書かれている為、ここだけ読むと全く同じに思えるでしょう。

5.2.3. CAR: Plate carrée
The equator and all meridians are correctly scaled in the plate carrée projection14, whose main virtue is that of simplicity. Its formulae are
x = φ, (83)
y = θ. (84)

ただし、この {\phi}{\theta} は必ずしも赤経赤緯や銀経銀緯に対応しません。{(x, y) = (\mathrm{CRPIX1}, \mathrm{CRPIX2})} に対応する天球面の場所から大円を引き、その大円上にある座標が等 {\theta} 線になります。そして、{\phi/\theta} から {\alpha/\delta}{\ell/b} への変換が再度必要になります。同じく文献 [1] に以下のような説明がさらにあります。

2.8. Comparison with linear coordinate systems
It must be stressed that the coordinate transformation described here differs from the linear transformation defined by Wells et al. (1981) even for some simple projections where at first glance they may appear to be the same. Consider the plate carrée projection defined in Sect. 5.2.3 with φ = x, θ = y and illustrated in Fig. 18. Figure 1 shows that while the transformation from (x,y) to (φ,θ) may be linear (in fact identical), there still remains the nonlinear transformation from (φ,θ) to (α, δ).

{\mathrm{CRPIX1/CRPIX2}} の場所から大円が描かれて等 {\theta} 線になるということは、例えばその場所が {(\ell, b) = (0^\circ, -30^\circ)} だった場合、2 次元画像上で x の位置だけ移動すると、{(180^\circ, -30^\circ)} に辿り着かずに {(180^\circ, +30^\circ)} に辿り着くことを意味します。

通常の CAR projection の用途では、恐らく WCS 登場前の CTYPE1 = 'GLON'、CTYPE2 = 'GLAT' と同じ使い方をしたいだけでしょう。その場合は、次のような header が最小構成です*2。これは、360 × 180 pixel の 2 次元画像で、1 pixel が 1° に相当しています。また画像の中心 (x, y) = (180.5, 90.5) が銀河中心に対応しています。

SIMPLE  =                    T / file does conform to FITS standard
BITPIX  =                   16 / number of bits per data pixel
NAXIS   =                    2 / number of data axes
NAXIS1  =                  360 / length of data axis 1
NAXIS2  =                  180 / length of data axis 2
CTYPE1  = 'GLON-CAR'           / axis type
CRVAL1  =   0.000000000000E+00 / longitude
CRPIX1  =                180.5 / ref pixel
CDELT1  =  -1.000000000000E-00 / longitude increment
CTYPE2  = 'GLAT-CAR'           / axis type
CRVAL2  =   0.000000000000E+00 / latitude
CRPIX2  =                 90.5 / ref pixel
CDELT2  =   1.000000000000E-00 / longitude increment
END

この画像を DS9 を使って座標軸を表示してみます*3


▲ CRPIX1/CRPIX2 を (ℓ, b) = (0°, 0°) に持ってきた画像の例。緑の十字が CRPIX1/CRPIX2 の場所。

間違った CAR を使った例

画像の上下中央を銀河面に設定したいにも関わらず、CAR projection を理解せずに使用した場合には座標系が歪みます。


▲ CRPIX1/CRPIX2 を (ℓ, b) = (0°, -30°) に持ってきた画像の例。CRPIX2 = 60.5、CRVAL2 = -30 に変更してある。


▲ CRPIX1/CRPIX2 を (ℓ, b) = (0°, -60°) に持ってきた画像の例。CRPIX2 = 30.5、CRVAL2 = -60 に変更してある。


▲ CRPIX1/CRPIX2 を (ℓ, b) = (0°, -90°) に持ってきた画像の例。CRPIX2 = 0.5、CRVAL2 = -90 に変更してある。

間違った FITS Header に出会った場合の修正方法

全天画像などで FITS 作成者が明らかに CAR projection を間違って使っている場合は、基本的に、CRPIX2 の場所を銀河面上に移動すれば座標系は正しいものに直ります。もしくは、'GLON-CAR'、'GLAT-CAR'、'RA---CAR'、'DEC--CAR' などを 'GLON'、'GLAT'、'RA'、'DEC' に置き換えてしまっても良いでしょう。

もし FITS 作成者と連絡が取れる場合は、FITS header に間違いがあることをちゃんと指摘し修正してもらいましょう。

*1:[1] には Although colloquially referred to as “Cartesian” という表現がされています。

*2:Comment は別に必要ありません

*3:DS9 は全天画像をうまく取り扱えず、画像の大きさによっては軸を画像に重ね書き出来ない場合があります。