健康問題(データ編)
準備が整ったらひとまず使ってみます。運動(とはいっても歩くぐらいですが)とあとは食事データの入力です。
なお、前回の図ではヘルスケアアプリに身長と体重を入力としていましたが、体脂肪も入力できるようなので追加しました。
vivoactive4とヘルスケアの連携状況
vivoactive4を使い始め、専用アプリヘルスケア『Garmin Connect』と見比べると、どうも歩数が一致しません。よくよく見てみると、ヘルスケアのデータ取得元の優先度を設定しなればならないようです。iphoneやipodtouch自体の歩数計が動いていることを知りませんでした。
ここで「Garmin Connect」を一番上にして、vivoactive4の数値が表示されるようにしておきます。若干時間がかかりますが、それぞれ更新していると反映されました。なお、データ自体はそれぞれの歩数を保有しているようです。(後述)
あすけんとヘルスケアの連携状況
端末内で完結しているせいか、こちらは入力するとすぐ反映される感じでした。ヘルスケアでは入力されているデータの合計(朝+昼+夜+間食)が表示されるようです。
ただし、栄養素などのデータは3食登録済みでアドバイスを閲覧しないと確定されないので注意。確認したらホームページの「よくある質問」に書いてありました。
データをエクスポートしてみる
データのエクスポート方法は以下の手順で実施しました(メールで送付しました)。しかし、ここでまた問題発生。「書き出したデータ.zip」が解凍できない。(解凍ソフトはLhaplus)いろいろ奮闘してみると、ファイル名を適当な半角英数字に変更すると解凍できました。これが正しいやり方なのかわかりませんが、一応うまくいくということで。
早速エクスポートしたファイル「export.xml」を解析するのですが、xmlファイルなんて触ったこともありません。手持ちの翔泳社『Pythonの絵本 Pythonを楽しく学ぶ9つの扉』やオライリージャパン『Pythonによるデータ分析入門第2版』にも解説があるのですが、どうもうまくいきません。惜しいところまでいくのですが・・・。
ネットで調べていると、こちらのサイトが簡潔でわかりやすかったです。真似をしながら読み込んでいくと・・・なんとかできました。あとはpython(pandas)で加工してCSVで出力します。
(追記)コードは参考までに。
import xml.etree.ElementTree as ET
import pandas as pd
# 読み込み
tree = ET.parse('export.xml')
root = tree.getroot()
# 抽出
data = []
for child in root:
if child.tag=='Record':
data.append(child.attrib)
# データフレームを作成
df = pd.DataFrame(data)
# df.head()
# csv保存
df.to_csv('export.csv', encoding='shift-jis', index=None)
ここまでくれば、後はExcelにまかせて集計・表現ができそうです。一筋縄ではいかないような気がしますが・・・。もう何日かデータを蓄積してやってみようかと思います。