some attempts ti analyse data
This commit is contained in:
parent
d531cba77a
commit
3484a5a39b
5 changed files with 63 additions and 4 deletions
|
@ -43,7 +43,7 @@ class Emfit:
|
|||
def epochs(self):
|
||||
return self.jj['sleep_epoch_datapoints']
|
||||
|
||||
@property
|
||||
@property # type: ignore
|
||||
@lru_cache()
|
||||
def sleep_start(self) -> datetime:
|
||||
for [ts, e] in self.epochs:
|
||||
|
@ -52,7 +52,7 @@ class Emfit:
|
|||
return fromts(ts)
|
||||
raise RuntimeError
|
||||
|
||||
@property
|
||||
@property # type: ignore
|
||||
@lru_cache()
|
||||
def sleep_end(self) -> datetime:
|
||||
for [ts, e] in reversed(self.epochs):
|
||||
|
@ -79,9 +79,17 @@ class Emfit:
|
|||
|
||||
@property
|
||||
def summary(self):
|
||||
return f"for {hhmm(self.sleep_minutes)} hrv: [{self.hrv_morning:.0f} {self.hrv_evening:.0f} {self.hrv_morning - self.hrv_evening:3.0f} {self.hrv_lf}/{self.hrv_hf}]"
|
||||
return f"""
|
||||
slept for {hhmm(self.sleep_minutes)}
|
||||
hrv morning: {self.hrv_morning:.0f}
|
||||
hrv evening: {self.hrv_evening:.0f}
|
||||
recovery: {self.hrv_morning - self.hrv_evening:3.0f}
|
||||
{self.hrv_lf}/{self.hrv_hf}""".replace('\n', ' ')
|
||||
|
||||
|
||||
def __str__(self) -> str:
|
||||
return f"from {self.sleep_start} to {self.sleep_end}"
|
||||
|
||||
# measured_datapoints
|
||||
# [[timestamp, pulse, breath?, ??? hrv?]] # every 4 seconds?
|
||||
@property
|
||||
|
@ -117,6 +125,10 @@ class Emfit:
|
|||
res.append(rmssd)
|
||||
return tss, res
|
||||
|
||||
@property
|
||||
def measured_hr_avg(self):
|
||||
return self.jj["measured_hr_avg"]
|
||||
|
||||
@property
|
||||
def sleep_hr_coverage(self):
|
||||
tss, hrs = self.sleep_hr
|
||||
|
|
23
emfit/__main__.py
Normal file
23
emfit/__main__.py
Normal file
|
@ -0,0 +1,23 @@
|
|||
from emfit import get_datas
|
||||
|
||||
for e in get_datas():
|
||||
# print("-------")
|
||||
print(f"{e.end} {e.measured_hr_avg} {e.summary}")
|
||||
|
||||
|
||||
# TODO get average HR
|
||||
# TODO get 'quality', that is amount of time it actually had signal
|
||||
|
||||
from kython.plotting import plot_timestamped
|
||||
everything = get_datas()
|
||||
tss = [e.end for e in everything]
|
||||
hrs = [e.measured_hr_avg for e in everything]
|
||||
|
||||
plot_timestamped(
|
||||
tss,
|
||||
hrs,
|
||||
ratio=(15, 3),
|
||||
mavgs=[(5, 'blue'), (10, 'green')],
|
||||
marker='.',
|
||||
ylimits=[40, 70],
|
||||
).savefig('hrs.png')
|
Loading…
Add table
Add a link
Reference in a new issue