2013年5月28日火曜日

GPSの異常値、外れ値

 セイリングのGPSログはEveryTrail on iPhoneで記録しているのだが、時折、とんでもない異常値が発生する。時速百キロ越えって何?
 原因のひとつはわかっていて沈だ。
 おそらくGPSの電波を再受信したとき、現在位置を求め直していったんデフォルトのポイントが記録されるのだろう。実際、EveryTrailを起動したとき、本栖湖の中央あたりにいったんポイントが位置づけられて現在位置へポイントが移動してくる。
 なのでこれはまぁ、しかたない。
 ぼくが沈しないなんてありえないからだ。

 もうひとつはずっと異常値なのか、確信がなかった。しかし、時折、時速50kmごえが記録されることがあってほんとうに50km/hごえなのか? と。
 vikingでひとつずつtrackpointをたどってみて(「Go to Maxmum Speed」というコマンドがあって最高速のtrackpointへ飛ぶことができる)、なんとなく原因がわかった。丸め問題らしい。下記にあるように57.29km/hを記録した瞬間のTime Diffrenceが1秒になっている。その次のtrackpointは2秒だ。
 ということはだ。
 本来は2秒近いのに、秒に丸めるときに1秒になって速度が計算されたのではないか。

 これについてはどう対応すれば、いいのか、わからなかった。異常値っぽい最高速をひとつひとつ手作業で削除するなんてたるい。対応方法に気づいたのはこのあいだのことだ。
 EveryTrailのtrackpintを取得する間隔を大きめにすれば、よいのではないか。
 元々、ジャイブ中のtrackpointもとりたかったので狭い間隔に設定していた。だから1秒のちがいが大きくなっているのだろう。それなら間隔を広めにすれば、いいのではないか、と。
 そうやってmidaさんの航跡とか、見直してみると、trackpointの間隔はぼくの設定より広いような気がする(とくにジャイブ時、pointがひとつしかないところをみると)。

 今度、試してみることにしよう。