マツドサイエンティスト・研究日誌 保存版
惑星と小惑星の軌道

初出:2009年08月16日 元々のブログ・コンテンツへのリンク
カテゴリーのインデックス: 宇宙
シリーズのインデックス: 人類は宇宙へ飛び出そう まずは小惑星から

小惑星に移り住もうと言うのだが、実際に小惑星は何処にあるのだろう?
では、簡単に小惑星の位置を計算する方法を紹介しよう。

まず、惑星とか小惑星の軌道データを公開している場所を探そう。
ネット上を探してみると、JPLのホームページに軌道データが公開してあった。
JPL Solar System DynamicsEphemerides である。

最初は、惑星の軌道だ。
Keplerian Elements for Approximate Positions of the Major Planets のページにある惑星の軌道データである p_elem_t1.txt が使いやすそうだ。
これは、ケプラリアン要素と言い、楕円軌道の長半径とか離心率、軌道面の傾きなどの6つの要素で軌道を示すものだ。これを使って、軌道を太陽を焦点とした楕円として計算すれば、好きな日時の惑星の位置が判る訳だ。
とは言え、惑星の軌道は正確には楕円ではない。惑星にかかる引力が太陽の引力だけなら、正確な楕円になるのだが、実際には他の惑星の引力もかかるので、楕円から少しずつずれる(これを摂動と言う)。だから、楕円近似の計算だけでは、正確な位置計算はできない。
もっと正確な惑星の軌道を計算するには、DE405 や DE406 と言う軌道データが良い。これらは ジェット推進研究所(JPL)のWeb ページJPLのデータフォルダ の中に Fortran や C のソースコードと共に公開されている。使い方は、DE405 や DE406 と言うキーワードでググると使い方が沢山見つかると思う。


正確な軌道計算は、DE405 や DE406 を使えば良いのだが、今回は使わないで、先ほどのケプラリアン要素による楕円近似計算を使う事にする。理由は、DE405 や DE406 の計算は時間がかかるのと、肝心の小惑星軌道の軌道データはケプラリアンだけで、DE405 や DE406 に匹敵する高精度な要素が無いからだ。また、楕円近似計算とは言え、50年程度の近未来では大きくずれないから、小惑星の配置を理解する程度なら十分な精度だと言えるからだ。

さて、いよいよ肝心の小惑星の軌道データだ。
同じく、JPL の AsteroidsSmall-Body Orbital Elements のページにある
ELEMENTS.NUMBR (圧縮版は ELEMENTS.NUMBR.gz )と ELEMENTS.UNNUM (圧縮版は ELEMENTS.UNNUM.gz )が小惑星の軌道データだ。
ELEMENTS.NUMBR は 名前や番号の付けられた小惑星、ELEMENTS.UNNUM は未だ名前や番号の無い小惑星の軌道データが入っている。これらのデータは常に最新の情報に更新されている。(私の見る限り5日毎に更新されているようだ)
現状、ELEMENTS.NUMBR に約22万個の小惑星、ELEMENTS.UNNUM に約24万個の小惑星、合計約46万個の小惑星が入っている。(ELEMENTS.UNNUM の中に ELEMENTS.NUMBR のデータが重複して入っていないかチェックしていない)
「宇宙暮らしのススメ」には、「小惑星は何万もある」と書いちゃったけど、何十万個もあるねぇ。まあ、増えた分には良いか?

このままじゃ、数字の羅列なので、グラフィック表示してみよう。
データの読み込みと計算には ruby 、グラフィック表示には gnome2 (gtk2) を使った ruby-gnome2 を使ってみよう。

ruby-gnome2 は、マルチプラットフォームで使える。
Ubuntuなら、Synaptic で ruby と ruby-gnome2 をインストするだけだ。

Windows の場合、次のように ruby-gnome2 をインストする。
まず、ruby をインストする。 One-Click Ruby Installer for Windows から、たどって、ruby186-26.exe を ダウンロードし、インストール。インスト後、再起動。
次にruby-gnome2 本体をインストする。 SourceForge.net: Ruby-GNOME 2: Files から、辿って、 SourceForge.net: Ruby-GNOME 2: Files で、ruby-gnome2-0.16.0-1-i386-mswin32.exe をダウンロードして、インストール。

ruby-gnome2 は、マックでも使える筈なのだが、私がマック環境を持っていないので、確認していない。誰か、確認できたら教えてください。

さて、小惑星の位置の表示プログラムは、 asteroid.rb だ。(実は、このプログラム、愛媛の実家で作っていた。ネット環境が余り良くないので、帰省前に軌道データだけダウンロードしておいて、向こうでプログラム本体を作った。去年、帰省したときは、小惑星開拓のコンテンツを書いていた。ネット環境が良くないと、逆に集中して作業がはかどるね)

ruby-gnome2 をインストしたパソコンに、先にダウンロードした p_elem_t1.txt ELEMENTS.NUMBR ELEMENTS.UNNUM と共に asteroid.rb を同じフォルダ/ディレクトリに入れて実行するだけだ。
最初に軌道データを読み込む時間がかかり、画面表示が遅れることは許してもらおう。

実行すると、時間がかかるが、実行日の惑星・小惑星の位置が表示される。これが冒頭の画像だ。また、プログラム中のコメントアウトした部分を書き換えると、黄道面を横から見た画像も得られる。これが2つ目の画像だ。
小惑星の表示が完全に終わった後、メニューの「編集」「日時の設定」を選ぶと任意の日時の位置が表示できる。

さて、やってみると色々判る。
まず、意外と遠い軌道、4AUのスノーラインより遠い軌道には小惑星が少ない。とは言え、5千個弱あるのだから、決して少ないとは言えないか?
また、水分のある D型小惑星は 2.5AU 位のところからあると言うが、そこには20万個以上の小惑星がある。これらが全て D型小惑星ではないが、ほんの少しでもあったら、大変な数だ。

また、最初の画像を見ると、明らかに木星のラグランジュ・ポイントの4と5(木星と同一軌道半径で、位置が60度前後に離れている場所)の付近に小惑星が集まっている。

表示する日時を変えると、30年位の未来までならラグランジュ・ポイントの4と5に集まっていた小惑星は、そんなにばらけないが、100年後だと完全にばらけてしまっている。これは、やはり木星の引力の影響を計算していないためだ。まあ、近未来しか計算できないことさえ、納得していれば良いだろう。

さて、小惑星の位置が判ったので、徐々に小惑星探査の方法について検討してみようと思う。

なお、プログラム asteroid.rb はオープンソース GPL とするので、改変したり再配布可能だ。ruby と言う判り易い言語で書いてあるので、色々いじって遊んでください。
inserted by FC2 system