添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

ただ、ワークアウトのGPX ファイルに使ってみると、位置情報(Lat、Lon、Elev)は読み込まれますが、ランニングやウォーキングに記録される 速度 の情報が含まれていません。GPX ファイルには含まれているので、gpxread で読み込むときにデータが無視されてしまっているようです。

p = gpxread(fullfile('workout-routes', 'route_2021-08-16_6.09pm.gpx'));
disp(p)Code language: Matlab (matlab)
MATLAB のgpxread 関数で読み込んだワークアウトデータ
MATLAB のgpxread 関数で読み込んだワークアウトデータ
% GPX ファイルをXML として読み込み
xmlObj = readstruct(fullfile('workout-routes', 'route_2021-08-16_6.16pm.gpx'), 'FileType', 'xml');
% 構造体からテーブルに変換
tbl = struct2table(xmlObj.trk.trkseg.trkpt);
% extensions カラムを展開
tbl2 = struct2table(tbl.extensions);
for n=1:length(tbl2.Properties.VariableNames)
    varname = tbl2.Properties.VariableNames{n};
    tbl.(varname) = tbl2.(varname);
% 展開し終えたextensions カラムを空にする
tbl.extensions = [];
% 地図にランニングの速度のヒートマップをプロット
geoscatter(tbl.latAttribute, tbl.lonAttribute, 36, ...
    [tbl.speed/max(tbl.speed) zeros(length(tbl.speed), 1), 1-tbl.speed/max(tbl.speed)], 'filled')Code language: Matlab (matlab)
MATLAB のgeoscatter 関数でApple Watch のワークアウトのランニング速度を地図に可視化
MATLAB のgeoscatter 関数でApple Watch のワークアウトのランニング速度を地図に可視化
tbl = readgeotable(fullfile('workout-routes', 'route_2021-08-16_6.16pm.gpx'));
head(tbl)Code language: Matlab (matlab)
MATLAB のreadgeotable 関数で読み込んだワークアウトデータ
MATLAB のreadgeotable 関数で読み込んだワークアウトデータ

緯度経度がShape というカラムにgeopointshape という形式で保存されています。ちゃんとランニングの速度データもSpeed カラムに入りましたね。GPX ファイルのデータを完全にテーブルとして取り込めています。

<meta charset="utf-8">tbl = readgeotable(fullfile('workout-routes', 'route_2021-08-16_6.16pm.gpx'));
geoscatter(tbl.Shape.Latitude, tbl.Shape.Longitude, [], tbl.Speed, 'filled')
c = colorbar;
c.Label.String = 'Speed [m/s]'; % カラーバーのラベルを設定
c.Limits = [0 5]; % カラーバーの上下限を設定Code language: Matlab (matlab)
geoscatter でcolorbar 付きでプロット
geoscatter でcolorbar 付きでプロット

これでどこで走る速度が上がったり下がったりしているのか見やすくなりましたね。

ただ、一番速いのが黄色っていうのは直感と合わないので、カラーマップをデフォルトの parula から変えてみましょう。

青→黄緑→黄→オレンジ→赤と滑らかに変わっていく turbo にしてみます。

先ほどのコードの最後に以下を追加します。

colormap turboCode language: Matlab (matlab)
geoscatter でcolormap をturbo に変更
geoscatter でcolormap をturbo に変更

これなら速いところが赤くて直感に近くなった気がします。

視覚的な印象を変えるカラーバーとカラーマップ、意外に重要ですね。