みちびき トラッキング 緯度経度


20140602_satellite_tracking_app 20140602_satellite_tracking_web

「みちびき」 がどこにいるのかを追跡する(トラッキング)アプリを作成しました。

「みちびき」は、23時間56分の周期で地球を周回しています。
しかし、一日のうち約8時間しか、日本上空にいません。
しかも、毎日4分づつずれるので、いつ日本上空にいるのか、分かりません。
そこで、このアプリを作成しました。

公開されているWEBアプリ JavaScriptで人工衛星の位置を表示する と比較すると、
少しずれはあるが、実用的な範囲でしょう。
本アプリ: 北緯 21.2 度、東経 136.4 度
WEBアプリ: 北緯 22.3 度、東経 136.3 度

プログラムの簡単な説明
(1) 衛星の軌道要素
衛星の軌道要素は、2行軌道要素形式 (Two Line Elements) が使われています。
CelesTrak から NORAD のものが公開されています。
通常のGPS衛星は GPS Operational に入っています。
みちびきは Satellite-Based Augmentation System に入っています。
今回のプログラムでは、みちびきの軌道要素のみを assets フォルダーに置いています。

(2) 衛星の軌道計算
衛星の軌道計算には、SGP4 というアルゴリズムを使用します。
CelesTrak から JAVA のライブラリ が公開されています。
さらに、このライブラリでは、vecmath を使用しています。

(3) 衛星軌道から緯度経度へ
衛星軌道から緯度経度に変換するのは、3つのステップを踏みます。

(3-1) xyz軸を緯度経度に変換する。
直交座標と球座標の単純な変換です。

(3-2) 自転の補正をする。
地球の自転周期は約24時間です。
1時間後の衛星の位置は、地球から見たときには、15度 (360/24) ずれています。

(3-3) 公転の補正をする。
地球の公転周期は約365日です。
公転と自転の周期には違いがあるため、どこに太陽があるのか示すものを、恒星時といいます。
恒星時の計算には、WikiPedia星空横丁 の式を採用しました。

プログラム
プログラムは、google code で公開しています。
ビルドするのは、下記のライブラリが必要です。
sgp4
vecmath

課題
恒星時の計算で、違いが出ています。
恒星時の元となるユリウス日で約1日の違いがあり、これは緯度経度の精度に繋がっているようです。

国立天文台 ( ユリウス日グリニジ恒星時 ) の計算結果と比較したもの。
2014年6月1日時点の数値

ユリウス日
本アプリ  2456810.255
国立天文台 2456809.50000

恒星時
本アプリ  16h40m34.8s
国立天文台 16h37m36.2s


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です