Kubiosへのデータ取り込みとHRV解析 Standard版のKubiosはRR間隔データしか読み込まない。しょうがないので、PolarSensorLoggerが出力する***RR.txtを加工してRR部分だけを食わせてみる。ふむふむグラフが表示されますね。分析区間は、samples for analysisのAddボタンを押して、追加することができる。時間領域や周波数領域だけでなく、非線形のポアンカレプロットなどもできて良い感じです。大抵の分析なら、これで良いのでは。この「いかにも分析してる」感が意外に楽しいのかもしれん。
import sys
import fitbit
import gather_keys_oauth2 as Oauth2
from datetime import datetime, date, timedelta
print('Fitbit02')
USER_ID = "ほげほげ"
CLIENT_SECRET = "ほげほげ"
DATE = "2023-03-24" # 取得したい日付
print('Hello fitbit02')
def requestFitbit(DATE):
rval=""
global auth2_client
fitbit_stats = auth2_client.intraday_time_series('activities/heart', DATE, detail_level='1sec')
HRstats = fitbit_stats['activities-heart-intraday']['dataset']
OUTPUT_FILE = "ALL2.csv"
csv_file = open(OUTPUT_FILE, 'a')
csv_file.write(DATE+",")
for num1 in range(24):
for num2 in range(60):
for num3 in range(60):
key='{:02}'.format(num1)+':{:02}'.format(num2)+':{:02}'.format(num3)
hr=""
for var in range(0, len(HRstats)):
#csv_file.write(str(HRstats[var]['time']))
#csv_file.write(",")
if str(HRstats[var]['time']) == key:
hr=str(HRstats[var]['value'])
#print("hit")
break
print(key+"/"+hr)
csv_file.write(key+","+hr)
csv_file.write("\n")
csv_file.write("\n")
csv_file.close()
return rval
##################################################
def writeindex():
OUTPUT_FILE = "ALL.csv"
csv_file = open(OUTPUT_FILE, 'a')
csv_file.write(",")
for num1 in range(24):
for num2 in range(60):
key='{:02}'.format(num1)+':{:02}'.format(num2)+':00'
csv_file.write(key)
csv_file.write(",")
csv_file.write("\n")
csv_file.close()
##################################################
"""Get tokens"""
server = Oauth2.OAuth2Server(USER_ID, CLIENT_SECRET)
server.browser_authorize()
ACCESS_TOKEN = str(server.fitbit.client.session.token['access_token'])
REFRESH_TOKEN = str(server.fitbit.client.session.token['refresh_token'])
#print(ACCESS_TOKEN)
#print(REFRESH_TOKEN)
"""Authorization"""
auth2_client = fitbit.Fitbit(USER_ID, CLIENT_SECRET, oauth2=True, access_token=ACCESS_TOKEN, refresh_token=REFRESH_TOKEN)
"""request"""
#writeindex()
today = datetime.today()
for var in range(0, 1):
#day=today + timedelta(days=1)
#print(var+":" + datetime.strftime(yesterday, '%Y-%m-%d'))
stamp=datetime.strftime(today - timedelta(days=var), '%Y-%m-%d')
print("target: " + stamp)
requestFitbit(stamp)
測定されたHRの比較 FitbitCharge4のデータをPythonで取得し、同区間のPolarUniteのデータに重ねてみた。PolatUniteは3色10点のPolar Precision Primeセンサー搭載でいかにも正確に測れそうだ。対するFitbitCharge4は単色で測定点数も少なくやや心もとない。結果を見比べると、概ね一緒なのだが、Charge4は中盤の走っている場面で値が低めというか、かなり遅れて変化している事が見て取れる。また、PolarUniteのデータが1秒間隔で全量取得できるのに対し、Fitbitは1~5秒程度の不定間隔データとなっている。走り終わって座っている後半区間に関しては、両者はほとんど一緒だ。動きが大きくなると正確な測定が難しくなるという研究もあり、その結果を裏付ける比較結果であった。動きが少ない場面ではFitbitでも良いと言えそうだが、心理学実験での利便性は、総合的にPolarが高いと言えそうだ。 追記:わー!!文献:Assessment of the Fitbit Charge 2 for monitoring heart rateでも同様の結果だ。Charge4と2は同じアルゴリズムと思われる。30BPM低く見積もることがある、と。
・TreePerimeterなどの設定で、道路わきから何メートルまで木を生やさなくするかなどの設定ができる。が、この設定は、エリア下方のResetAllRoadTypes and Objectsのボタンを押さないと反映されない。
ふー2:21になった。
・・・と思ったら、Activeを押してもResetAllRoadTypes and Objectsを押しても反映されなくなった。なんでやー涙。これバグなんじゃないの!?と思い、藁にもすがる思いでUnity再起動して設定してみると、ちゃんと動くのだった。・・・バグじゃん!怒EasyRoadには悩まされてばかりだ。