軌道力学ライブラリ
人工衛星や国際宇宙ステーションが宇宙で何処を飛んでいるかを計算したい。計算式ばかり並んでいる軌道力学の理論を用いて、実際に活用方法や実際のデータ処理を学びたい。私ももっと自由に気軽に自分のPCを使って、軌道力学の演算処理を実行し、処理結果をグラフィック表示させたいと考えています。数式や理論だけでは理解が難しいところを説明図でわかりやすくしたいです。
理論に基づいて最初からプログラムを組み上げるのは膨大な労力と時間が必要なため、オープンソースで誰でも利用可能な軌道力学ライブラリを使用していきたいです。調査したところ、幾つかのパッケージが配布されています。
【Orekit】
Java言語によって書かれた軌道力学アプリケーションです。軌道力学に関する基本的な要素(プログラム集)から構成されており、簡単な学習から実際の複雑な運用まで用いることができます。Orekitプロジェクトには、欧州各国が共同で設立した欧州宇宙機関(ESA : European Space Agency)やフランス国立宇宙研究センター(CNES : Centre national d'études spatiales)も参加しており、Orekitを活用しています。ESAが国際宇宙ステーションへ物資を運んだ輸送船ATV (Automated Transfer Vehicle)の実時間モニタにOrekitが採用されました。
Orekitは、javaで組まれているため、直接Pythonでは使用できません。スウェーデン宇宙公社(SSC : Swedish Space Corporation)では、Pythonが他の言語が作成されたコードを引用できる汎用性(wrapper : 包むもの)を活用して、Python環境上でもOrekitが使えるようになっています。"orekit-python-wrapper"とも呼ばれています。
【SpiceyPy】
SPICEツールキットと呼ばれるNASAジェット推進研究所が開発した軌道力学ライブラリがあります。SPICEとは、Spacecraft(宇宙機)、Planet(惑星)、Instrument(計器)、Camera Matrix(カメラ行列)、Events(イベント)の頭文字を取った名称です。提供されているプログラミング言語は、FORTRAN、C、IDL、MATLAB、Javaの5種類です
SpiceyPyは、C言語版のSPICEツールキットをPythonでも使えるようにしています。NASA公認にはなっていませんが、SPICEバージョンはN0066なので2017年の最新版が使用できます。軌道計算には、様々な物理定数やパラメータの設定が必要となりますが、SPICEの軌道力学データベースを共用できるのも魅力です。
参照先 https://naif.jpl.nasa.gov/naif/index.html
https://spiceypy.readthedocs.io/en/main/
【poliastro】
航空宇宙技術者が提供しているパッケージで純粋にPythonコードのみで書かれています。オープンソースですが、MITライセンスの元で提供されています。もともとは大学の研究プロジェクトのため、MATLABやFORTRANのアルゴリズムをPythonから読み込んで活用していたそうです。自分のコンピュータで使用したところ、長時間の計算時間が必要となったため、Pythonのみで実行できるように修正を加えられています。
参照先 https://www.poliastro.space