- 2020年に火星へ向かった探査機
- HORIZONS System
- HORIZONS SYSTEM をAPIで取得する(失敗)
- HORIZONS SYSTEM をCGIで取得する(たぶん動く)
- Mars2020の位置をプロットしてみる
- 他の探査機も軌跡を表示してみる
2020年に火星へ向かった探査機
2020年夏に中国の天問1号、UAEのHope、アメリカのMars 2020 Perseverance が火星に向かって5か月くらい経ちました。火星までの航程の半分以上をこなしています。 順調ということでいいのかな?
今回はNASA/JPLが公開している HORIZONS System を使って火星探査機の現在位置を取得してみたいと思います。
HORIZONS System
小惑星や惑星の位置を計算してくれるNASA/JPLのサイトになります。TELNETが使えるとかかなり古めかしく、とっつきにくいところもありますが、システムがわかれば面白いです。メールなんかでも処理をリクエストできるらしいね。
Perseverance の位置を取得してみる。
HORIZONS SYSTEMのサイトにアクセスし、パラメタを以下のスクショのように設定すると、Perseverance の2020年9月1日から2020年12月1日までの一日毎の太陽を中心とした座標がとれます。
「Generate Ephemeris 」をクリックすると、値が返ってきます。
XYZは太陽を中心とした座標になっています。うーん、分かりにくい。 地球の現在地はどこ? ということで、衛星の軌跡、惑星の位置なんかの可視化にチャレンジしてみたいと思います。
HORIZONS SYSTEM をAPIで取得する(失敗)
astropyにJPL Horizons Queriesというモジュールが用意されているのでこれで取得してみます。
うまくいかない.... どうもモジュールの仕様上、惑星探査機は取得できないようです。
HorizonsClass — astroquery v0.4.2.dev1407
仕方ないので、コピペしてCSVを作成するしかないですね。
HORIZONS SYSTEM をCGIで取得する(たぶん動く)
HORIZONS SYSTEMにCGIでクエリを投げると値を返してくれるサービスがあるのでそれを使用してみます。 先ほどはwebで操作しましたが、以下のURLをブラウザのアドレス欄に入力するとヘッダーとかつきますが、csvフォーマットで座標一覧を取得することができます。 ヘッダーに単位とか基準となる場所が書かれてたりするので割と重要です。 今回は単位を天文単位に設定してみます。
https://ssd.jpl.nasa.gov/horizons_batch.cgi?batch=1&COMMAND='-168'&CENTER='@0'&OUT_UNITS='AU-D'&TABLE_TYPE='VECTORS'&START_TIME='2020-09-01'&STOP_TIME='2020-12-01'&STEP_SIZE='1%20d'&CSV_FORMAT='YES'
コンマ区切りのところをエクセルとかでcsvで保存します。ヘッダーも一応入れておくと分かりやすいです。 今回はMars2020.csvとして表示を保存しました。
Mars2020の位置をプロットしてみる
poliastroを使っていきます。 実行環境は前回 と同じです。 今回やることとしては、座標が書かれたCSVを読み込み、座標をつないで線として描写してみます。
とりあえず今回作成したコードです。 csvはdata/以下に保存しています。
今回はその1のほぼ流用です。追加点としては、astropy.coordinatesで座標の集まり(=軌跡)を作成したところです。 これを用いて、plot_trajectoryで軌跡をプロットしました。poliastroにどうも、位置だけをプロットするモジュールが見当たらなかったので、trajectoryでプロットしました。 matplotlibに詳しければ、もう少しうまい方法があったかもしれません。
他の探査機も軌跡を表示してみる
2020年11月現在、Mars2020のほかに、中国の天問1号(Tianwen-1)、UAEのHope、が火星に向かっているのでその軌跡も表示してみましょう。 天問1号(Tianwen-1)、Hopeは以下のCGIで取得できます。 天問1号(Tianwen-1)
https://ssd.jpl.nasa.gov/horizons_batch.cgi?batch=1&COMMAND=%27-9901491%27&CENTER=%27@0%27&OUT_UNITS=%27AU-D%27&TABLE_TYPE=%27VECTORS%27&START_TIME=%272020-09-01%27&STOP_TIME=%272020-12-01%27&STEP_SIZE=%271%20d%27&CSV_FORMAT=%27YES%27&Output_Format=%271%27
HOPE
https://ssd.jpl.nasa.gov/horizons_batch.cgi?batch=1&COMMAND=%27-62%27&CENTER=%27500@0%27&TABLE_TYPE=%27VECTORS%27&START_TIME=%272020-09-01%27&STOP_TIME=%272020-12-01%27&STEP_SIZE=%271%20d%27&CSV_FORMAT=%27YES%27&QUANTITIES=%272%27
Mars2020と同様の手順でcsvに保存します。 プロットしたスクリプトは以下になります。
次は現在地の地球からの距離とかを計算したいですね。