GPS Time (GPS時刻)

時計の話です。
原子時計は正確に時を刻み続けています。何があっても決められた規則どおりに時は過ぎていきます。ところが僕らが住んでいる地球では日の長さ、つまり地球の公転・自転との関係で時刻を決めているので、原子時計が刻む時刻ではずれが生じ、実用上問題が生じてしまいます。そういうわけで地球上で用いている時刻である協定世界時(UTC)には、地球の自転に上手く合うようにある細工がされています。いわゆる『閏(うるう)秒』というやつで、これを挿入したり(正の閏秒)、引いたり(符の閏秒)することで調整がされます。
詳しくはWikipediaの閏秒等を参考にしてください。

なんでこんな話になったかというと、つい最近、2006年1月1日に正の閏秒、23:59:60が挿入されたため、原子時計を用いた時刻であるGPS時刻と、UTCとがまた1秒食い違うこひとになりました。実験でGPSを用いてる関係上、GPS時刻とUTCで同期をとる必要があり、1秒の狂いが重要であったりします。すっかりそのことを忘れていたため、ちょっとトラブルがありました。

ついでにこんなものを作ってみました。RubyでGPS時刻を計算するプログラムです。時刻をいれると[サイクル番号、週番号、時刻(sec)]の配列を返します。

※(2009/1/1追記) 2008/12/31の閏秒にも対応しました。

※※(20012/6/1追記) 2012/6/30の閏秒にも対応しました。
また、単体で起動した際に、GPS衛星軌道の精密歴をとってきてくれるモードを追加しました。例えば、

./gpstime.rb Jun 01 06:00:00 +0900 2012 --igs --mode=r

とすると、日本時間(GMT+9hr)の2012/6/1の朝6時に関係するRapid(--mode=r)の精密歴を取得してくれます。modeは他にUltra Rapid(--mode=u) や Final(--mode=f) があります。

※※※ (2012/6/15追記) GPSの最寄の電子基準点を求めるスクリプトを作りました。あわせてどうぞ。

January 25, 2006 23:59 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク

コメント

コメントする