GPXファイルをpythonで分析する1(取り込みとDataFrame化)

  1. GPXファイルを取り込む(# parse)
    gpxpyというライブラリを使うのが便利。gpxpy.parseでファイルをトラック、セグメント、ポイントといった構造化データとして扱える。
  2. 取り込んだデータをリスト化(# to list)
    parseしたデータ(gpx_p)は、track > segment > point と入れ子になっておりループ処理で取り出す。pointの中にlatitude, longitude, elevation, timeなどのデータが含まれている。
  3. pandas.DataFrameに変換(to pd.DataFrame)
    速度計算やグラフ化など何かと扱いやすいため変換しておく。列名も付加。
import gpxpy
import pandas as pd

# parse
gpx_file = open(filename, 'r')
gpx_p = gpxpy.parse(gpx_file)

# to list
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])
# to pd.DataFrame
colname = ['latitude', 'longitude',
            'elevation', 'time', 'trackname', 'segment_no']
df = pd.DataFrame(gpx_list, columns=colname)