👏

かんたん Appleのヘルスデータをエクスポート、解析、csvに変換する方法

2020/10/26に公開

はじめに

みなさんは iOS アプリ Healthをつかってますか?
そんなみなさんは、体重や睡眠時間、歩数などの健康データはApple Healthのアプリ上に記録されていると思います。
このアプリは、健康状態の情報を記録し、アプリ上ではみえますが、実際には自分でデータ分析を行うことはできません。
データ分析とデータの可視化にはいろんな形式があると思いますが。今回はExcelやGoogle Sheetsのようなスプレッドシートアプリケーションを使って、解析するためにcsv 出力したいです。
今回、そんなみなさんにぴったりのCLIを作ったのでご紹介させていただきます.

Apple health dataの抽出方法

まずはこの動画を開いてみてください

  • iPhoneでHealthを開きます。
  • 上隅にあるプロフィールのアイコンをタップすしてください。
  • ヘルスのプロフィールの一番下までスクロールして、"Export All Health Data"をタップします。
  • 更に"Export"をタップすると、データをエクスポートすることを確認してエクスポート処理を開始します(完了するまでに少し時間がかかる場合があります)
  • 上記で抽出したファイルをローカルやGoogle Driveに保存してください

抽出したファイル

image.png
抽出したなら、その中の export.xml を使います

Nodejs環境設定

本当の初心者のためのNode.js超入門 ~環境構築編~
などを参考にローカルにNodejsの環境を構築してください

コマンドインストール方法

下記のコマンドを叩いてahcdというコマンドをインストールしてください

$ npm i -g ahcd

使い方

$ ahcd                                                                                                                                                                                                
================================================================================
Apple Health Care Data convert xml to csv

Author     : Fumikazu Fujiwara 
Homepage   : https://github.com/freddiefujiwara/ahcd#readme
LICENSE    : MIT
Report bugs: https://github.com/freddiefujiwara/ahcd/issues
================================================================================

Usage: ahcd [-h] <file> [-t <type>] [-d <dir>]
  • 引数の<file>は必ずexport.xmlを指定してください
  • -t は特定のcsvだけ出力します (例えば -t BodyMass など)
  • -d は出力先のディレクトリを指定します (例えば -d /path/to など)

実際に使ってみると

$ ahcd -d . export.xml                                                                                                                                                                                
Read export.xml
Analyze export.xml
Wrote ./Height.csv (1 records)
Wrote ./HeartRate.csv (87 records)
Wrote ./BodyMassIndex.csv (50 records)
Wrote ./BloodPressureDiastolic.csv (165 records)
Wrote ./BodyMass.csv (51 records)
Wrote ./BodyFatPercentage.csv (50 records)
Wrote ./FlightsClimbed.csv (1045 records)
Wrote ./BloodPressureSystolic.csv (165 records)
Wrote ./SleepAnalysis.csv (1193 records)
Wrote ./StepCount.csv (12032 records)
Wrote ./DistanceWalkingRunning.csv (13631 records)

#最後に
さぁ ちょっと長かったですが、
これで、Excelなどのシートで解析できますね
またahcdpull request大歓迎です
よろしくおねがいします

Discussion