バイクアプリの走行データから平均速度を求めたいです。
緯度、経度のデータから平均速度を求めたいです。
今あるデータとしては下のようなテキストファイルのみになります。
;経過時間,緯度,経度,GPSバンク角,GPS加速度,GPSデータ無効
0.000000,34.000000,137.719020,0.000000,0.000000,0
0.024000,34.000000,137.719020,0.000000,0.000000,0
0.048000,34.000000,137.719020,0.000000,0.000000,0
0.072000,34.000000,137.719020,0.000000,0.000000,0
0.096000,34.000000,137.719020,0.000000,0.000000,0
0.120000,34.000000,137.719020,0.000000,0.000000,0
0.144000,34.000000,137.719020,0.000000,0.000000,0
私がやりたいこととしては、まずGPSデータ無効の横に距離という列を作成し、ひとつ下の行の位置情報との距離を表記したいです。
その後その距離と経過時間から速度を求め、それを距離の右側に表記したいです。
私はPythonのpandasとgeodesicというものを利用してみたのですが、for文の書き方すらできてないといった状況です。
以下に私が書いたコードを載せます。
どのようにしたら距離や速度の列を作れるのでしょうか?
大変初歩的な質問になってしまうかもしれません何卒よろしくお願いいたします。
import pandas as pd
riding = pd.read_csv('riding_result.csv')
riding.head()
from geopy.distance import geodesic
for i in range(len(riding) -1):
kyori = geodesic((riding["緯度"].iloc[i], riding["経度"].iloc[i]), (riding["緯度"].iloc[i+1], riding["経度"].iloc[i+1])).km
riding["距離"].iloc[i] = kyori
riding.head()