Tableauのマップ機能でGoogle Fitを可視化

Image from Gyazo

Tableauのマップ機能

Tableauでは 緯度・経度 の情報を利用して,地図上にデータを可視化することが出来ます. 背景には,Tableauに組み込みの簡易的な地図に加え, Mapboxを利用して独自のスタイルの地図を設定することが可能です(MapboxはOpenStreetMapを採用しています). ここでは,Google Fitに記録された活動データ( tcx形式 )を,Tableauで可視化することに挑戦してみます.

Google Fit

Google Fitは,Googleが開発している日々の活動を記録するためのアプリです. iOSAndroidのアプリとして提供されており,向は毎日の行動をこのアプリで記録しています. 記録されるデータは,緯度・経度などの情報を含む tcx形式 であり,自由に自身のデータを下記リンクからエクスポート(ダウンロード)することが可能です.

https://takeout.google.com/

tcx形式 は下記のように XML で記述されています. ここで, LatitudeDegrees が緯度, LongitudeDegrees は経度, AltitudeMeters は高度を表しています.

<Trackpoint>
    <DistanceMeters>209.93287658691406</DistanceMeters>
    <Time>2019-02-01T11:12:16.277Z</Time>
    <Position>
        <LatitudeDegrees>35.1597349</LatitudeDegrees>
        <LongitudeDegrees>136.9893828</LongitudeDegrees>
    </Position>
    <AltitudeMeters>126.15887451171875</AltitudeMeters>
</Trackpoint>
<Trackpoint>
    <DistanceMeters>209.93287658691406</DistanceMeters>
    <Time>2019-02-01T11:12:17.267Z</Time>
    <Position>
        <LatitudeDegrees>35.1597831</LatitudeDegrees>
        <LongitudeDegrees>136.9894012</LongitudeDegrees>
    </Position>
    <AltitudeMeters>126.45513916015625</AltitudeMeters>
</Trackpoint>

残念ながら,Tableauでは,この tcx形式 をサポートしていないため, csv形式 に変換が必要です. 変換のための様々なツールがありますが,ここでは備忘録で提供されているツールを利用します. 開発者に感謝です. ここでは,CSVに変換後に,冗長なデータを取り除き,下記のデータを用いることにします.

Number,Longitude,Latitude,Altitude
1,136.9665898,35.1939918,58.8405151
2,136.9665682,35.1939896,59.8150635
3,136.9665054,35.1939806,59.0309448
4,136.9664823,35.1939769,58.8773193
5,136.9664522,35.1939796,60.03302
6,136.9664263,35.193978,59.5482788
7,136.9663482,35.1939649,60.1946411
8,136.9662975,35.1939603,60.557251
9,136.966274,35.1939573,59.7888794
10,136.9662431,35.1939565,60.3270264

マップ

それでは,Tableauのマップ機能を利用してみましょう. まずは,データソースの読み込みです. 問題なく NumberLongitudeLatitudeAttitude が取り込まれていることが確認できます.

Image from Gyazo

次にワークシートを表示します. ここで,メジャーとして認識されている Latitude(緯度)Longitude(経度) をディメンションに変更します. 次に,Longitude を列,Latitude を行に設定すれば地図が表示され,地図上にGoogle Fitのデータがプロットされていることがわかります.

Image from Gyazo

ここで,色とフィルタを設定しましょう. 高度で色分けをするため,Attitude を色に設定します. また, Number連続値 に変換した後で,フィルタに設定します(フィルタを表示しておきます). フィルタの数値の範囲を変更することで,部分的な経路をプロットすることが出来るようになります.

Image from Gyazo

これで,一応完成ですが,なんだかパッとしませんね. 背景に表示されているのは,Tableauに組み込まれた簡易的な地図であるため,プロットされた経路がどこなのか検討もつきません. そこで, Mapbox を利用しましょう(Mapbox のアカウント登録に関しては割愛). 「マップ」→「バックグラウンドマップ」→「マップサービス」を選択します. さらに,「追加」→「Mapbox マップの追加」を選択し,APIアクセストークンユーザ名スタイルID を入力します.

Image from Gyazo

これで,背景に Mapbox の地図が表示され,プロットされた経路の位置が分かるようになりました. このように位置情報を地図に重ねて表示することで,空間的な分析も可能になります.

Image from Gyazo

参考書籍

スポンサーリンク