January 25, 2006

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の最寄の電子基準点を求めるスクリプトを作りました。あわせてどうぞ。

23:59 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | この記事をdel.icio.usでブックマーク | トラックバック
このエントリーのトラックバックURL: http://fenrir.naruoka.org/mt/mt-tb.cgi/458
コメント
コメントする









名前、アドレスを登録しますか?
(次回以降コメント入力が楽になります)
  • 匿名でのコメントは受け付けておりません。
  • 名前(ハンドル名可)とメールアドレスは必ず入力してください。
  • メールアドレスを表示されたくないときはURLも必ず記入してください。
  • コメント欄でHTMLタグは使用できません。
  • コメント本文に日本語(全角文字)がある程度多く含まれている必要があります。
  • コメント欄内のURLと思われる文字列は自動的にリンクに変換されます。