- GPXファイルを取り込む(# parse)
gpxpyというライブラリを使うのが便利。gpxpy.parseでファイルをトラック、セグメント、ポイントといった構造化データとして扱える。
- 取り込んだデータをリスト化(# to list)
parseしたデータ(gpx_p)は、track > segment > point と入れ子になっておりループ処理で取り出す。pointの中にlatitude, longitude, elevation, timeなどのデータが含まれている。
- pandas.DataFrameに変換(to pd.DataFrame)
速度計算やグラフ化など何かと扱いやすいため変換しておく。列名も付加。
import gpxpy
import pandas as pd
gpx_file = open(filename, 'r')
gpx_p = gpxpy.parse(gpx_file)
gpx_list = []
for track in gpx_p.tracks:
for i, segment in enumerate(track.segments):
for point in segment.points:
gpx_list.append([point.latitude, point.longitude,
point.elevation, point.time, track.name, i])
colname = ['latitude', 'longitude',
'elevation', 'time', 'trackname', 'segment_no']
df = pd.DataFrame(gpx_list, columns=colname)