2006-09-01 [長年日記]

GPS-CS1K

買った。ヨドバシにて\13,800-だったかな。

PCに接続すると、測位状態の場合は測位が中断され、USBマスストレージクラスとして認識される。ストレージとしての容量は32Mbytes。ログを保存できる量は、公称360時間分。測位間隔は15秒なので、86,400point程度ということになる。1pointあたりのログの量は、ほぼ固定で300bytes程度なのでもうちょっといけるとは思うのだけど、クラスタサイズの関係やら何やらからすると、誤差の範囲内だろう。旅行などを考えても、二週間程度はいっぱいにならない計算なので、容量としては十分だと思う。

電源は単三電池一個で、公称10時間程度。ただ、ニッケル水素電池では動作しない可能性があると書いてあった。ニッケル水素は電圧が1.2Vと通常のアルカリ電池の1.5Vより低いためだろう。いまは、オキシライド電池(ちょっと電圧が高い)を入れてみているのだけど、特に問題はなさそう。PCに接続しているときは、バスパワーで動作している模様。

大きさは、35mmフィルムのフィルムケースよりも二周りぐらい大きいぐらい。街歩きのときにぶら下げるにはちょっと大きめだけど、アウトドアな人にとってはほとんど邪魔にならない大きさだと思う。

さっきも書いたとおり、PCからはマスストレージクラスとして認識されるので、中のファイルも普通にみることができる。ルートディレクトリにGPS/というディレクトリがあり、その中にログファイルがある。ログファイルは、電源の入り切りで一個できるらしい。ログファイルの中身はべたテキストで、フォーマットはNMEA-0183そのもの。解析は簡単だろう。

Tags: GPS

Phantasy Star Universe

買った。PS以外のネットワーク環境がないとオンライン登録ができないのはどうなのよ?と思いつつ登録しようと思ったら、ぜんぜんつながらない。あきらめてオフラインをちょっとだけ。

GPS-CS1KのログをALPSLAB slideの経路情報に変換するスクリプト

ALPSLAB slide

ほぼできた。試しに今日の通勤時のログを貼り付けたら、住んでいる場所と勤務先が分かる程度の精度が出ていたのでとりあえず削除。今度どこかに出かけたら貼ってみよう。

  • 電車に乗車中のログはなかった
  • バスの乗車中のログはそこそこ取れていた
    • 速度の問題 or 見通しの問題?
  • トラッキングログとしてはそこそこ
    • 郊外だとまた違う?

スクリプトは、まとめたらどこかにおく予定。面倒なのでここに張っとこう。えい!

#!/usr/bin/env ruby
#
#
# Copyright (c) 2006 kp <kp@mmho.no-ip.org>
# Distributed under the GPL
#

require 'wgs2tky'
require 'optparse'

opt = OptionParser.new
config = Hash.new
opt.on('-f (tdiary|wiki)','output with tDiary or wiki format'){ |v| config[:format] = v}
opt.parse!(ARGV)

track = []

ARGF.each { |l|
   next unless l =~ /^\$GPRMC/
   track << l.chomp.split(',')
}

case config[:format]
when 'tdiary'
print "<%=scrollmap '"
when 'wiki'
print "{{scrollmap '"
when nil
print "<div class=\"alpslab-slide\">"
else
raise "\"#{config[:format]}\" is unknown format."
end

track.each { |t|
   next unless t[2] == 'A' # 'A' is valid data
   lat = [t[3].to_i/100, t[3].to_f - t[3].to_i/100*100, 0]
   lon = [t[5].to_i/100, t[5].to_f - t[5].to_i/100*100, 0]

   Wgs2Tky.conv!(lat,lon)

   print "#{sprintf("%d/%d/%.3f",*lat)},#{sprintf("%d/%d/%.3f",*lon)} "

}

case config[:format]
when 'tdiary'
print "'%>"
when 'wiki'
print "'}}"
when nil
print "</div>"
else
raise "\"#{config[:format]}\" is unknown format."
end

簡単な説明

Rubyが導入されていることが前提です。あと、image_gps.rbに含まれている、wgs2tky.rbがインストールされている必要があります。 このテキストをlog2track.rb等という名前で保存しましょう。以下はこの名前で保存したことを前提として説明します。ファイルに実行権限をつけ、以下のように入力しましょう。

%./log2track.rb ログファイル名

標準出力に変換後のデータが出力されます。オプション -f を指定することにより、出力フォーマットを選択できます。選択できるフォーマットはtDiary形式とwiki形式です。それぞれ、以下のようなコマンドになります。

%./log2track.rb -f tdiary ログファイル名
%./log2track.rb -f wiki ログファイル名

GPS-CS1Kのログから位置情報をExifに埋め込むスクリプト

これは、GPS-CS1Kのメインの機能そのものなのだけど、これを自作するとWindows以外のOSでも同等の機能が実現できる。それってすげくね?MacOSにも対応していたら買うのにというマカーの人も結構いるみたいなので、書いてみるかな。

タグの追加ができるExifのパーサ(読み書きできたらパーサではないような気がしないでもなけど)がないかな。