GPSデータの解析の手順! ~ 既存の解析からはじめます!



2019年8月27日

GPSデータ解析の手順

一通りGPSのデータを読み込むところまでできました!
次は実際にどのような解析をするかです!

いきなり、既存のサービスにない解析をする事もできますが、
まずは足慣らしを兼ねて、既存のサービスが行っている解析をしてみます!
そうすると、既存のサービスのデータと比較する事も出来るので読み込んだデータが
正しいかもある程度分かります。

基本は「違い」

解析の基本は、各レコード間の違いを見るのが基本です。
つまり、一つ前のレコードとの「差」を調べて行きます。
今回のレコードに含まれるデータは
  • タイムスタンプ(秒単位)
  • 距離(m)
  • 標高(m)
  • 心拍数(回/分)
です。位置情報は距離に変換しているので解析の場合は無視して問題ありません。
実際の登山やハイキングの解析の際は、
基準になる場所の特定に使いますが今回の基本の解析では使いません。

このうち、タイムスタンプと距離は増えて行く量なので減る事はありません。
一方で、標高と心拍数は増減します。
解析中のデータから一つ前のデータを引いた数がマイナスの場合は減少になります。

前処理で必要な事

実は、こうしたデータの解析をする場合に大事な事があります。
それは、計算不能な値を予め取り除く事です。
以前にも少し触れましたが、TCX形式のGPSのデータは位置情報が抜ける事があります。
その場合、距離がレコードに含まれない事があります。
この場合、取り込んだ値はJavascriptで数字でない(NaN)になります。
この数を加算したり減算すると、その結果も数字でなくなってしまいます。

そのため、距離情報が無いレコードは前処理で除外した方が後の処理が簡単になります。

もう一つは「0で割るの避ける」必要があります。ご存知の通り、「0」の除算も(NaN)になります。従って解析時に「0除算」をする可能性のあるレコードも除外した方が処理が簡単です。
一般的な解析では、速度を求めるので移動距離を時間で割ります。
つまり、時間の差が「0」になるレコードは除外します。

前のレコードとの差を求める

前処理で問題になるレコードを除外したら、ついでに前レコードとの差を求めておくと
解析時の手間が省けます。
最初のレコードには前のレコードがありませんので、処理は2番目のレコードから
始めます。
  • 時間の差(つまりレコード間の所要時間)
  • 距離の差(つまり移動距離)
  • 標高の差(投稿距離)
  • 心拍数の差
を求めます。
この情報があると、速度を計算できます。
速度 = 距離の差 / 時間の差
です。

まずは概要を求めます

これらの差が分かると、次の概要を計算できます。

  • 全所要時間(時間の差の和)
  • 全移動距離(距離の差の和)
  • 平均速度(速度の平均)
  • 平均心拍数(心拍数の平均)
  • 最高到達標高(標高の最高点)
  • 最低到達標高(標高の最小点)
  • 全登高距離(登った標高)
  • 全下降距離(下った標高)
などを簡単に求める事ができます。

次回はこれを基に他にどんな解析が可能かを考える事にします!



お問い合わせはこちら!

コメント

このブログの人気の投稿

ユーザーインターフェースの設計

足し算以外もできるようにする

Reactで表示する文字に色をつける