iOSのヘルスケアデータを読み込む
2017年4月のてくてくメモ - まんぼう日記 以降滞ってる記録をどーにかせないかんというわけで,iPhone 上のヘルスケアのデータを抽出してみました.
参考URL
- iPhoneに記録された「ヘルスケア」データを書き出すには? https://news.mynavi.jp/article/20170910-ipadiphonehacks/
- iPhoneのヘルスケアデータから歩数を日別に集計してCSVファイルにする https://qiita.com/masato/items/72cf6cad5aa3179d64cc
Step1: iPhone の「ヘルスケア」でデータを書き出す
参考URLの通りやると「書き出したデータ.zip」というファイルに書き出される takataka の場合,2015年頃からの分全部だったので,ファイルサイズ 164MB. 適当な方法でPCへ転送して zip を展開すると,
ls -l Appleヘルスケア書き出し/ total 8508328 -rw-r--r--@ 1 takataka staff 1091833306 11 3 15:55 export_cda.xml -rw-r--r--@ 1 takataka staff 3255779863 11 3 15:55 書き出したデータ.xml
ということになった.あわせて4GB超.
Step2: XMLを解析して所望のデータを抽出し辞書にする
使ったのはこの辺:
- xmlモジュール のサブモジュール xml.etree.ElementTree
- pandas https://pandas.pydata.org/
- datetimeモジュール
Step3: データを集計・可視化
とりあえず
Out[158]: 3991.5054756587697 # 2017年の総歩行・走行距離 In [159]: df[:"2017-12-31"]['steps'].sum() Out[159]: 4826456.0 # 2017年の総歩数 In [160]: df["2018-01-01":]['dists'].sum() Out[160]: 3172.7595466567236 # 2018年の総歩行・走行距離(10月末まで) In [161]: df["2018-01-01":]['steps'].sum() Out[161]: 3872471.0 # 2018年の総歩数(10月末まで)
1.8万km(3.6万km(目標その1, 地上から静止衛星軌道まで)の半分)とか2万km(4万km(目標その2, 赤道上を地球1周)の半分)とかの節目は気づかぬうちにすぎちゃったのねん( cf. 2017年4月のてくてくメモ - まんぼう日記 ).
グラフを描くとこーなりました.単位は [km/日] と [歩/日] .