[ Michi -ログ整形アプリ ]
GPS-CS3K のログを整理していて問題?
$GPGGA,010460,3621.4075,N,13637.0812,E,1,08,00.9,00201.6,M,035.0,M,00,0000*48
最初のデータ “010460” は時分秒なのですが、そのまま読むと「1時4分60秒」ということに…
前後の時間を見てみると、正しくは「1時5分00秒」らしいです。
これはバグかしら、それともNMEA-0183ではこういうのも許容するのでしょうか?
Monoで時間をparseするときにエラーが出たので気がつきました。
補正したデータで作成したログ しらやまさんーせな
ぼくらの黄金時代
![]() |
ツール・ド・フランス黄金時代 枻文庫 北中 康文著 出版 : 枻出版社 サイズ : 15cm / 256p ISBN : 978-4-7779-1292-6 発行年月 : 2009.3 |
これですよ、これ!
私が見ていたツール・ド・フランスがここにある!!
高校生のころTVで見ていたものは、
NHKの特集番組で一ヶ月のツールが1時間に収められていました。
その1時間の濃いことといったら、
いまだに私は自転車に乗っています。
このころのスポーツ番組は、変にドラマ仕立てにすることなく、
あますところなく「走っている」姿を映してくれました。
5連覇したインデュラインももちろん凄いのですが、
もっと違う魅力があった時代。
選手達はレース期間中でも普通に夕食を食べて、普通にワインを飲んでいました。
それを見て、ストイックさを越えた、
レースを楽しんでいる雰囲気にすごく憧れを覚えました。
そういう雰囲気も、今のツールではもうないのでしょうか?
もうずっと見ていないなぁ。
追記:2009.5.6
2回読んだ後、DVDを注文してしまいました。
ツール・ド・フランス 1985〜1991 7YEARS BOX 全7枚セット
ケミカルすげぇ
今日は自転車日和の晴天だったので、
自転車整備をしました。
1. バーテープの交換
乗り始めてから1年あまり、
アオ号のバーテープも薄汚れてきたので交換です。
もともとは薄手のテープでしたが、
私は手が疲れやすいので、厚手のものにします。
もとのテープをはがすと、両面テープがべったりです。
はじめは根性で取ろうかと雑巾でゴシゴシしてましたがラチがあかず、
ホームセンターで「テープはがし」を買ってきました。
その名も「ノリクリンS」(スプレータイプ)
あまり期待せずに試してみたのですが、スゴイ!
スプレーしてしばらくおいて、雑巾でこすると、みるみる溶けていきます!
これは便利。
代わりのテープはシマノPROのものを使用。
これまではチネリのゲルタイプをよく使ってたけど、結構高価。
似たような感じのシマノのものを選んでみました。
実際チネリのものとほとんど変わらないよう。
2. チェーンの清掃
チェーンクリーナーキットは冬に買ってたのですが、初使用。
ディクリーザーも初めて使いましたが、スゴイ!
油汚れがみるみる溶けて流れます。
もっと早くに使ってみればよかった。
本当に面白いようにきれいに汚れが落ちてくれます。
今度はどこを綺麗にしようか♪
命名 Michi
log変換のアプリをとりあえず、”Michi”と命名。
「路」そのまんまです。
htmlのテンプレートを作って、ページを生成するようにしたら、
Freeにして公開しようかしら。
残りの機能はゆっくり追加していく所存です。
今はこんな感じ。
例 → 散策
今日のお散歩記録
GPSログ -高度の記録をグラフで出力する 続き
コードはこんな感じ
protected void SaveGraph( String filename )
{
int count = this.pos.Count;
int [] source = new int[count];
int [] dist = new int[count];
int posIndex;
for (posIndex = 0; posIndex < count; posIndex++)
{
source[posIndex] = (int)altitude[posIndex];
dist[posIndex] = (int)distance[posIndex];
}
Bitmap bitmap = new Bitmap(700, 300);
Graphics g = Graphics.FromImage(bitmap);
g.FillRectangle(Brushes.White, 0, 0, bitmap.Width, bitmap.Height );
NPlot.Bitmap.PlotSurface2D surface = new PlotSurface2D(bitmap);
NPlot.StepPlot plot = new NPlot.StepPlot();
plot.Pen.Color = Color.FromArgb(16, 128, 255);
plot.DataSource = source;
plot.AbscissaData = dist;
surface.Add(plot);
surface.YAxis1.WorldMin = 0;
surface.YAxis1.Label = "高度 (m)";
surface.XAxis1.Label = "走行距離 (m)";
surface.Refresh();
bitmap.Save( filename, ImageFormat.Jpeg );
}
結果はこんな感じ

ログはこんな感じ
GPSログ -高度の記録をグラフで出力する
NPlotが.netやmonoで使えそうなので試してみた.
参考:.NETグラフライブラリ「NPlot」 (Database tearoomの夜明け)
■MonoDevelopでNPlotを使用する準備
1. NPlotのホームページから最新のnplot-0.9.10.0.zipをダウンロード
2. nplot-0.9.10.0.zipを適当なフォルダに展開
binフォルダ以下には, netに並んでmonoフォルダも用意されています
3. MonoDevelopを開いて(プロジェクト)を開く
4. ソリューション ビューで(プロジェクトの)参照を右クリックして「参照アセンブリの編集」を選択
5. 「.NETアセンブリ」タブを選択
6. 2.で展開した nplot-0.9.10.0/bin/mono/2.0/release/NPlot.dllを選択して追加する
7. 実行ファイルのフォルダにNPlot.dllをコピーしておく
試しにソースに次を設定して,コンパイルが通りました.
using NPlot.Bitmap;
当面の目的はWindows.Formに表示するのではなく,
画像ファイルに出力してhtmlに表示できるようにすること.
■サンプルプログラム
using System.Drawing;
using System.Drawing.Imaging;
using NPlot.Bitmap;
int [] source = { ,,, };
Bitmap bitmap = new Bitmap(500, 250);
NPlot.Bitmap.PlotSurface2D surface = new PlotSurface2D(bitmap);
NPlot.HistogramPlot plot = new NPlot.HistogramPlot();
plot.DataSource = source;
surface.Add(plot);
surface.Refresh();
bitmap.Save( “aaa.bmp”, ImageFormat.Bmp );
結果は下のように.

とりあえずはグラフが出せました.
色々と整形が必要ですね.
GPSログの処理 2
少し進展。
A, B点があった場合に、その距離をd(A, B)とする。
「d(A, C) * 1.2 < d(A, B) + d(B, C) の場合にはB点を省く。」 というルールでルートを縮約します。 結果、少し改善されたようです。
→ 
上記の方法だと、コーナーではどうしてもルートを丸めてしまうので、
距離が少なめに評価されてしまいます。
ログそのままだと距離が長めに評価されるので、それよりはいいと思ってますが。
// total distance
20.064 km → 19.774 km
走行距離は1.5%くらい短くなりました。
GPSログの処理
GPSログの処理で、積算距離を求める。
ヒュベニの距離計算式
これで2点間の距離を求め、距離を積算できました。
で、問題は次のようなログ。

実際は10分ほど休憩しているのですが、
誤差のため、ポイントが飛び回っています(泣。
■次で解決できる?
A, B点があった場合に、その距離をd(A, B)とすると、
d(A, C) > d(A, B) + d(B, C)
の場合にはB点を省く。
許容する最大距離と時間を制限すれば、何とかなりそうな?
春はじめました
手取キャニオンロード 往路 20km分
金曜日には金沢でも桜の開花宣言がでました。
土曜日にようやく自転車で走れました!
13度くらいまで気温はあがったけど、体質なのか、
走り出しても体温が上がらず、筋肉が硬く悪循環。
帰ってからすぐに風呂に入りました。
ログ出力は未完成もいいところですが、使用を始めます。
現在は走行距離の計算ルーチンを作成中。
どうしても多めに積算されるので、インテリジェントに処理したいところ。
GPS-CS3でテスト
GPS-CS3を早速テスト。
GPS-CS1KSPと比較してみます。
■起動
電源ボタンを押してから衛星を認識するまでの時間を測定(ただし、目測)
1回目
CS1: 約60秒
CS3: 約30秒
2回目
CS1: 約32秒
CS3: 約16秒
おおっ、約半分の時間で認識してますね。
■自転車で走ってみる(ゆっくりポタリング)
→ ログ
赤のラインがCS3、黄色のラインがCS1です。
こんな感じでログをとってみました。
拡大してみると、CS3の方は、ほぼ道路上に載っていますが、
CS1は全体的にずれている感じ。
とりあえず、CS3になり精度がアップしたことを確認できました。
■GPS情報書き込み
Cyber-shot DSC-T7で撮ったメモリースティックデュオをCS3に入れて、
GPS情報を書き込みます。
一枚あたり3〜4秒ほどかかりました。
■問題点
実は、HP2133 + ubuntu では、CS1をつないでも認識できていません。
CS3は問題なくできているので、今後は大丈夫ですけど。
ゆっくり歩いてのログもとったのですが、
CS3のログはWadachiではエラーが出て、
読み込めませんでした。
■総括
私的にはCS1でも、ロガーとしてはOKなレベルでした。
CS3になり精度は上がっていますが、劇的というほどでもない感じ。
緯度経度が表示されるのは判りやすくていいですね。
見てどうするというわけでもないですが。
今のところ、使い道は考えてないけど、
単体で画像にGPS情報を書き込めるのは便利そうです。
1万6千円ほどだして買い換える必要があったかどうかは微妙ですが、
まぁ、面白いので結果的によかったと思います。

