小惑星に移り住もうと言うのだが、実際に小惑星は何処にあるのだろう?
では、簡単に小惑星の位置を計算する方法を紹介しよう。
まず、惑星とか小惑星の軌道データを公開している場所を探そう。
ネット上を探してみると、JPLのホームページに軌道データが公開してあった。
JPL Solar System Dynamics の Ephemeridesである。
最初は、惑星の軌道だ。
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 のAsteroids の Small-Body Orbital Elements のページにある
bELEMENTS.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 と言う判り易い言語で書いてあるので、色々いじって遊んでください。
注意
ブログのコンテンツの内、「告知」など時期よって情報価値が無くなるのは除いてある。また、コンテンツに付いたコメントは書き込み者に著作権があるものと判断し、ここに持ってきていないので、コメントを見るときは、元々のブログコンテンツを参照してもらいたい。
その他、ブログ発表後、コメントなどの内容を反映するなど、内容を変更しているものもあるので、注意してほしい。