2015年5月29日金曜日

小惑星のサイズ・軌道要素の分布のモデル化

宇宙シミュレーションゲームの中で、小惑星をランダムに生成したいのですが、そのサイズや軌道要素はできるかぎりリアルにしたい、というのが今回の趣旨です。



太陽系には知られている限り30万個以上の小惑星があり、検出下限を下回るものを含めるとそれをはるかに超える数があると予想されます。軌道要素が確定しているものだけでも、すべてをメモリ上に置いて時間発展をシミュレーションするのはオーバーヘッドが大きく、リアルタイムシミュレーションには向いていません。

そこで、小惑星の分布を確率変数でモデル化し、疑似乱数でランダムに生成することを考えます。こうするとメモリは最低限しか必要としませんし、実際にシミュレートする必要があるのはプレイヤー(カメラ)の近くだけで済みます。しかも体感的に無限の小惑星を置くことができます。

さて、小惑星が火星と木星の間に多く存在し、小惑星帯を形成していることはよく知られていますが、定量的にモデル化するにはどうしたらよいでしょう?





まずはローウェル天文台が公開している小惑星データベースを参照させてもらいました。

ftp://ftp.lowell.edu/pub/elgb/astorb.html

ここではテキスト形式で6万8千個、182MBに上る小惑星のデータがダウンロードでき、統計的に処理するデータセットとしては最適のものが得られます。

まずデータ処理するために GNU Octave で読み込むためのスクリプトを書きました。

https://gist.github.com/msakuta/23dea348208c9ecd3b01

それにしても6万8千個のデータは重すぎるので、先頭から1万件で読み込みを打ち切ってしまいました。

--

ともかく、まずはもっとも重要な軌道長半径(Semi-major axis)の分布をプロットしてみます。


火星の公転半径(~1.5AU)と木星の公転半径(~5AU)の間に多くの小惑星がはさまれているのが見て取れますが、一見してガウス分布のような単純な分布ではなさそうです。実際、木星との軌道共鳴によって小惑星が存在しない領域が存在し、カークウッドの間隙と呼ばれている・・・そうです。

しかしゲーム的にはあまり分布の細かいところまでモデル化してもどうせプレイヤーには感知できないので、シンプルに上記のヒストグラム程度の分解能で密度推定すればよさそうです。

--

さて、次に離心率(Eccentricity)をプロットしてみます。


今度は、比較的ガウス分布に近い単純な形の分布になりました。興味深いのは離心率0の付近の密度が0に漸近していることですね。離心率0というのは真円ですから、小惑星のほとんどは真円から「それなりに」離れた楕円軌道を描いていることになります。

なぜでしょうか?単純に考えると、

  • 離心率0の軌道を描く天体に惑星の重力などの外乱が働くと、離心率が増加する方向に軌道が変化する
  • 逆に、楕円軌道を描く天体を円軌道に乗せるには、きわめて限定された向きと大きさの外力を与えなければならない

ということから、離心率0の軌道というのは本質的に不安定なのだと考えられます。

また、離心率が0.4を超えるような小惑星がほとんど存在しないことに関しては、大きすぎると火星か木星の軌道に干渉し弾き飛ばされてしまうということでしょう。

いずれにしても、すべての小惑星が円軌道を描いているようなモデルではリアリティに欠け、ある程度の離心率をランダムに生成したほうが現実味が出るということがわかりました。

--

次は軌道傾斜角(Inclination)です。



これもまた、興味深い分布です。太陽系の形成の歴史からすると、傾斜角0の付近に集まっていそうなものですが、20度付近まで裾を引いており、25度付近にはピークまであります。このような微細な構造は大規模な衝突によって発生した小惑星「群」の表れとみられます。起動共鳴と何か関係があるのかはわかりませんが、軌道長半径と合わせて2次元系で密度推定してみるのも面白そうです(そのような散布図はWikipediaにあります)。

ここでもまた傾斜角0度の密度が0に漸近しているようです。ここで離心率と同じような議論もできますが、軌道要素の自由度という観点からは、黄道と平行な軌道というのは、極めて狭い空間になるのでしょう。

--

次に昇交点黄経(Longitude of Ascending Node)を見てみましょう。


軌道要素について詳しくないとそろそろイメージしづらいパラメータになってきますが、昇交点黄経とは、軌道傾斜角と合わせて軌道面を決定するパラメータです。

基本的に密度が位相に依存しないように思える小惑星帯ですが、何やら分布に偏りがありそうです。木星のトロヤ群か、小惑星帯に対する木星の重力の影響と思われますが、はっきりとした説明は思いつきません。軌道長半径や傾斜角と合わせて多次元でパターンを見てみないと見えてこなそうです。

とりあえずシミュレーションとしては一様乱数で代用することにします。

--

軌道要素としては最後になりますが、近日点引数(Argument of Perihelion)を見てみます。


これは軌道傾斜角と昇交点黄経で決定された軌道平面の中で、楕円軌道の長軸がどちらを向いているかを示すパラメータです。

角度依存性は見受けられず、一様乱数で問題なさそうです。

--

さて、一番大事かもしれないのですが、小惑星の大きさについてのデータはローウェル天文台のデータセットからは得られません。得られますが、抜けているデータが多く、後述の「あかり」のデータと比べると不確かさが大きいようです。小惑星の大きさというのは計測するのが非常に難しく、見かけの明るさとアルベドの兼ね合いで、とても不確かさの大きい推定しかできないものらしいです。

しかし、そんな難しい計測を5120個もの小惑星に対して行った観測衛星がありました。日本の赤外線天文衛星「あかり」です。さらに都合の良いことに、このデータはテキストファイルでダウンロードできます。

http://darts.isas.jaxa.jp/astro/akari/catalogue/AcuA.html

こちらも GNU Octave に読み込むスクリプトを作りました。

https://gist.github.com/msakuta/40b02451f13e4d78abe3

普通に直径のヒストグラムをプロットしてみると、少し極端な分布になってしまいました。


これは、小惑星帯最大の天体であるケレスが1000km近い直径を持つのに対し、ほとんどの小惑星は10km前後の大きさしかないためです。(ケレスは小惑星ですらなく、準惑星です。しかしここではその厳密な区別には大した意味がないため、統計に含めています。)

大きさの分布は広いダイナミックレンジを持つため、対数を取ってからヒストグラムをプロットしてみます。


これでもっとモデル化しやすい分布になりました。

ランダム生成時には対数空間で乱数を生成し、指数関数を通すことで実際のサイズに変換できます。


次回からは、ここで調べた分布に従ってランダムに小惑星を生成してみたいと思います。

0 件のコメント:

コメントを投稿