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

ひらおかゆみのなげやりブログ

もう、なげやりです…

B-V色指数から天体の色温度を求める

天文 近況

このエントリはJavaFX Advent Calendar 2016の事前準備で、タイトルの通りB-V色指数から天体の色温度を求める方法に関する考察です。

12月19日に公開予定の本編ではJavaFXの3Dモデルで小惑星を描くことになっており、そのための準備を進めています。小惑星の大きさ、扁平率、アルベドなど、3Dモデル作成に当たって調べなければならないことがたくさんありましたが、中でも小惑星の色をどのように表現するかが一番の問題でした。

Wikipediaなどで得られる小惑星の色はB-V色指数で表されていて、これを最終的にRGB(場合によってはHSB)に変換しなければならないのですが、その変換式が見つかりません。ケレスのようなメインベルト天体であれば分かっている組成から色をある程度推測することは可能なのですが、遠く離れた太陽系外縁天体ではそうもいきません。

天体の色指数は、2つのバンド・パス・フィルタを透過する光(電磁波)の強さの差として定義されます。多くの天体の色表現に用いられるB-V色指数はBバンド・フィルタ(青色を透過する)とVバンド・フィルタ(緑色を透過する)を用いるもので、Bバントの値からVバンドの値を差し引いた値であることからその名があります。主な恒星(主系列星)ではB-V色指数を用いますが、南十字星のアクルックスや乙女座のスピカのように青みの強い星ではUバンド・フィルタ(紫外線を透過する)とBバンド・フィルタを用いたU-V色指数も組み合わせて用いられます。

色指数はあくまで波長の異なる光の強さの差分であり、人間が認識できる色ではありません。光の色を表す尺度としては色温度が広く用いられています。色温度は、外部の光や熱をすべて吸収し自身が発する光や熱を全くロスしない「黒体」という仮想の物質を想定し、黒体の温度とその時に黒体が発する(「黒体放射」といいます)色の対応から、色を黒体の温度で表すものです。黒体放射から求めた太陽光の色温度は概ね5,000~6,500 [K]程度となります。太陽の表面温度は5778 [K]ですから、恒星の色温度はその表面温度に近い値であることがわかります。つまり恒星の色と表面温度については、概算レベルでは黒体放射を仮定することで求めることができます(恒星は厳密には黒体ではないため、当然ながら誤差は生じます)。

色温度は有力な指標ですが、それだけでは光の三原色(赤・緑・青)との対応までは分かりません。そこで特定の色温度を白色光として定め、そこから三原色に分解します。なお、白色光が三原色の各成分とどのように対応するのかは、実験的に明らかにされています。基準となる白色光を発するものを標準光源といい、現在ではD65光源(6504 [K])とA光源(2856 [K])が主に用いられています。他にも用途によってはC光源(6774 [K])、D50光源(5003 [K])、D55光源(5503 [K])、D75光源(7504 [K])が用いられることもあります。

さて、小惑星の色を求めるのに当たって、既に分かっているものは小惑星のB-V色指数だけであり、そこから色温度を算出する数式が必要になります。小惑星についても恒星同様に黒体放射を仮定して(小惑星は黒体からかけ離れているためあまりよい方法ではないのですが)、恒星のB-V色指数と表面温度の関係式を小惑星に当てはめればそれなりの値は得られると思うのですが、肝心のB-V色指数と表面温度が見当たりませんでした。それでも1ヶ月以上かけてようやくそれらしき情報を掲載しているWebページ ヒッパルコス星表で太陽近傍恒星のHR図を描こう を探し当てました。こちらでは表面温度Tの計算として、以下の2式が紹介されています。

(a) T = 9000 / ((B-V) + 0.85)

(b) log T = 3.939654 - 0.395361(B-V) + 0.282113(B-V)2 - 0.0604097(B-V)3

※(b)式はWebページでは T = ... となっていますが、原典によると log T = ... が正しいです

(a)式は簡単で、そのWebページでも恒星の表面温度の算出に使用しているものです。試しに太陽のB-V色指数0.65を入れてみると、T = 6000 [K]が得られます。太陽の実際の表面温度は5778 [K]ですので、まあまあの値といえるのではないでしょうか。肝心の(a)式の出典ですが、はっきりとはわかりませんでした。出典に書かれているはずの前提条件まで確認しないと、本当にこの式を小惑星のB-V色指数に適用してもよいのかわからないのです。断片的な情報では、(a)式はベガのデータからはじき出した近似式らしいことまではわかったのですが…

一方、(b)式は論文 A Study of the B−V Color-Temperature Relation - IOPscience からの引用で、元の式はもっと複雑です。

log T = c0 + c1(B-V) + c2(B-V)2 + c3(B-V)3 + f1[Fe/H] + f2[Fe/H]2 + g1 log g + h1(B-V) log g

ただし、(B-V) : B-V色指数、[Fe/H] : 金属量、log g : 表面重力(cgs単位系)とし、定数c0、c1、c2、c3、f1、f2、g1、h1は以下の通り。

  • c0=3.939654±0.0115
  • c1=-0.395361±0.0263
  • c2=0.2082113±0.0293
  • c3=-0.0604097±0.0107
  • f1=0.027153±0.00166
  • f2=0.005036±0.000972
  • g1=0.007367±0.00231
  • h1=-0.01069±0.00224

さらに前提として、論文の冒頭に "In this paper we confine our further analysis to the range Teff < 7000, i.e., F0 or later." とあります。7000 [K]未満(スペクトル型F0以降)でないとこの近似式は成り立たないと。

実際に一等星のデータを使って試してみたら、確かにスペクトル型BやAの星では大きくずれました。特に20,000 [K]を優に超えるアクルックス(B0.5、B-V: -0.24)やスピカ(B1、B-V: -0.23)だと半分の10,000 [K]くらいになってしまいました。一方で太陽(G2、B-V:+0.65)やプロキオン(F5、B-V:+0.421)はかなり正確な値が算出できました。小惑星のB-V色指数は高めなので、小惑星を黒体放射とみなす前提が大きく間違っていなければ、この式は適用できそうです。

さて、この式を使うに当たって、私にはいくつか懸案がありました。

[1] 紹介していたWebページでは5項(f1[Fe/H])以降を省略していたが、本当に問題ないのか?(5項以降がほぼ0になる前提で省略したと思われるが、それは妥当な判断か?)

[2] 論文の冒頭では7,000 [K]未満(スペクトル型F0以降)の恒星にしか適用できないとあるが、7,000 [K]以上(スペクトル型O0~A9)の恒星に当てはめたらどのくらいの誤差が生じるのか?

これらを解決?するため、私は全天にある21の一等星のデータを使って、検証してみることにしました。計算はGoogle先生で(笑)

JavaFX Advent Calendarの準備なのだからJavaでプログラム書けと言われそうですが、別にいいんです、本職じゃないから。

準備

まず、使用する式を具体的なものにします(またの名を、Google先生対応(笑))。定数は±をゼロにして、すべての項を揃えたものと5項以降を省略したものの2つを作ります。

log(T) = 3.939654 - 0.395361*(B-V) + 0.2082113*(B-V)^2 - 0.0604097*(B-V)^3 + 0.027153*[Fe/H] + 0.005036*[Fe/H]^2 + 0.007367*log(g) - 0.01069*(B-V)*log(g) ―(1)

log(T) = 3.939654 - 0.395361*(B-V) + 0.2082113*(B-V)^2 - 0.0604097*(B-V)^3 ―(2)

あとは変数(B-V)、[Fe/H]、log(g)に一等星のデータを入れていけばよいわけです。ちなみに、今回使う一等星のデータがこちら。

StarSpectralTeff(B-V)[Fe/H]log(g)
Acrux B0.5 IV 24,000 K -0.25 N/A N/A
Mimosa B1 IV 27,000 K -0.23 -0.08 3.6
Spica B1 III-IV 22,400 K -0.23 N/A 3.7
Hadar B1 III 25,000 K -0.23 N/A 3.5
Achernar B6 Vep 15,000 K -0.16 N/A 3.5
Rigel B8 Ia 12,100 K -0.03 -0.06 1.75
Regulus B8 IVn 12,460 K -0.11 N/A 3.54
Vega A0 Va 9,602 K 0.00 -0.5 4.1
Sirius A1 Vm 9,940 K 0.00 0.50 4.33
Deneb A2 Ia 8,525 K +0.09 -0.25 1.10
Fomalhaut A4 V 8,590 K +0.09 -0.03 4.21
Altair A7 V 6,900 to 8,500 K +0.22 -0.2 4.29
Canopus A9 II 6,998 K +0.15 -0.07 1.64
Procyon F5 IV-V 6,530 K +0.421 -0.05 3.96
Rigil Kentaurus G2 V 5,790 K +0.71 0.20 4.30
Capella K0 III 4,970 K +0.80 N/A 2.691
Arcturus K0 III 4,286 K +1.23 -0.52 1.66
Pollux K0 III 4,666 K +1.00 -0.07 to +0.19 2.685
Aldebaran K5 III 3,910 K +1.44 -0.34 1.59
Antares M1.5 Iab 3,400 K +1.83 N/A 0.1
Betelgeuse M1-M2 Ia-ab 3,590 K +1.85 +0.05 -0.5

懸案 [1] に対する検証

ご覧の通りデータに抜けがあるので、検証に使えるのはミモサ(ベクルックス)、リゲル、ベガ、シリウス、デネブ、フォーマルハウト、アルタイル、カノープスプロキオン、リギル・ケンタウルスケンタウルスα)、アークトゥルスアルデバランベテルギウスの13星です。

StarSpectralTeff(B-V)[Fe/H]log(g)Teff (1)Teff (2)
Acrux B0.5 IV 24,000 K -0.25 N/A N/A N/A --
Mimosa B1 IV 27,000 K -0.23 -0.08 3.6 11,901 K 11,024 K
Spica B1 III-IV 22,400 K -0.23 N/A 3.7 N/A --
Hadar B1 III 25,000 K -0.23 N/A 3.5 N/A --
Achernar B6 Vep 15,000 K -0.16 N/A 3.5 N/A --
Rigel B8 Ia 12,100 K -0.03 -0.06 1.75 9,195 K 8,948 K
Regulus B8 IVn 12,460 K -0.11 N/A 3.54 N/A --
Vega A0 Va 9,602 K 0.00 -0.5 4.1 9,069 K 8,073 K
Sirius A1 Vm 9,940 K 0.00 0.50 4.33 N/A 8,073 K
Deneb A2 Ia 8,525 K +0.09 -0.25 1.10 8,059 K 8,048 K
Fomalhaut A4 V 8,590 K +0.09 -0.03 4.21 8,548 K 8,048 K
Altair A7 V 6,900 to 8,500 K +0.22 -0.2 4.29 7,558 K 7,280 K
Canopus A9 II 6,998 K +0.15 -0.07 1.64 7,806 K 7,671 K
Procyon F5 IV-V 6,530 K +0.421 -0.05 3.96 6,540 K 6,392 K
Rigil Kentaurus G2 V 5,790 K +0.71 0.20 4.30 5,584 K 5,524 K
Capella K0 III 4,970 K +0.80 N/A 2.691 N/A --
Arcturus K0 III 4,286 K +1.23 -0.52 1.66 4,301 K 4,528 K
Pollux K0 III 4,666 K +1.00 -0.07 to +0.19 2.685 N/A --
Aldebaran K5 III 3,910 K +1.44 -0.34 1.59 4,921 K 4,185 K
Antares M1.5 Iab 3,400 K +1.83 N/A 0.1 N/A --
Betelgeuse M1-M2 Ia-ab 3,590 K +1.85 +0.05 -0.5 3,515 K 3,454 K

(1) 式の結果 Teff (1) と (2) の結果 Teff (2) を実際の表面温度 Teff と比較してみると、スペクトル型 A4 のフォーマルハウト以降、(2) 式が非常に良好な値を出していることが分かると思います。また、(1) 式は精度こそ (2) 式には及ばないものの、B-V色指数のみの1変数式ながら比較的良い結果となっています。スペクトル型 A2 のデネブまでの白~青の星では実際の表面温度との乖離は大きいものの、論文の前提条件においては (1) (2) 式とも良好な値を示すことがわかりました。 

懸案 [2] に対する検証

先の検証で、(2)式を用いても十分な結果が得られるとわかりました。そこで、こちらでは(2)式を残るアクルックス、スピカ、ハダル(ケンタウルスβ)、アケルナル、レグルス、カペラ、ポルックス、アンタレスの8星にも当てはめてみます。

StarSpectralTeff(B-V)[Fe/H]log(g)Teff (1)Teff (2)
Acrux B0.5 IV 24,000 K -0.25 N/A N/A N/A 11,284 K
Mimosa B1 IV 27,000 K -0.23 -0.08 3.6 11,901 K 11,024 K
Spica B1 III-IV 22,400 K -0.23 N/A 3.7 N/A 11,024 K
Hadar B1 III 25,000 K -0.23 N/A 3.5 N/A 11,024 K
Achernar B6 Vep 15,000 K -0.16 N/A 3.5 N/A 10,197 K
Rigel B8 Ia 12,100 K -0.03 -0.06 1.75 9,195 K 8,948 K
Regulus B8 IVn 12,460 K -0.11 N/A 3.54 N/A 9,677 K
Vega A0 Va 9,602 K 0.00 -0.5 4.1 9,069 K 8,073 K
Sirius A1 Vm 9,940 K 0.00 0.50 4.33 N/A 8,073 K
Deneb A2 Ia 8,525 K +0.09 -0.25 1.10 8,059 K 8,048 K
Fomalhaut A4 V 8,590 K +0.09 -0.03 4.21 8,548 K 8,048 K
Altair A7 V 6,900 to 8,500 K +0.22 -0.2 4.29 7,558 K 7,280 K
Canopus A9 II 6,998 K +0.15 -0.07 1.64 7,806 K 7,671 K
Procyon F5 IV-V 6,530 K +0.421 -0.05 3.96 6,540 K 6,392 K
Rigil Kentaurus G2 V 5,790 K +0.71 0.20 4.30 5,584 K 5,524 K
Capella K0 III 4,970 K +0.80 N/A 2.691 N/A 5,317 K
Arcturus K0 III 4,286 K +1.23 -0.52 1.66 4,301 K 4,528 K
Pollux K0 III 4,666 K +1.00 -0.07 to +0.19 2.685 N/A 4,921 K
Aldebaran K5 III 3,910 K +1.44 -0.34 1.59 4,921 K 4,185 K
Antares M1.5 Iab 3,400 K +1.83 N/A 0.1 N/A 3,493 K
Betelgeuse M1-M2 Ia-ab 3,590 K +1.85 +0.05 -0.5 3,515 K 3,454 K

全体傾向は懸案[1]に対する検証の結果とほぼ同様です。結論として、

  • (1) (2) 式とも概ね 8,000~8,500 [K] 以下において適用可能である。
  • B-V色指数、金属量、表面重力がすべて分かっている場合には (1) 式で高精度な結果が得られる。
  • B-V色指数だけでも分かっていれば (2) 式で表面温度を概算できる。

と言えます。

(1) 式または (2) 式を小惑星に当てはめる場合、恒星と小惑星では組成が全く異なるため金属量は該当するものがなく、また規模の違いから表面重力がそのままでは適用できない恐れがあります。そこで、B-V色指数のみを変数とする (2) 式を使用することで、大まかな色温度を算出できるものと考えます。

それでは、19日の本編をお楽しみに。