Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions analysis/SleepReportModule.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import pandas as pd
from pandas import DataFrame
import numpy as np


class SleepReportAnalysis(object):
"""A Class to Produce a morning Sleep Report"""

def __init__(self, data=None, dataframe=None, frame1=None, frame2=None):
self.data = data
self.dataframe = dataframe
self.frame1 = frame1
self.frame2 = frame2

def ProduceDataFrame(self, data):
"""Function to produce dataframe"""
df = pd.read_csv(self.data, header=None, names=['Timestamp',
'Magnitude'])
df = df.dropna()
df['Timestamp'] = df['Timestamp'].astype(np.datetime64)
return df

def DataOverview(self, dataframe):
"""Function to provide top level overview of data"""
return dataframe.describe()

def HighestPeaks(self, dataframe):
"""Fucntion to ID highest peaks in data"""
dfsorted1= dataframe.sort_values('Magnitude', axis=0,
ascending=False).head(n=150)
dfsorted2= dfsorted1.sort_values('Timestamp', axis=0, ascending=True)
return dfsorted2

def CalcDiff(self, dataframe):
"""Function to calculate the time span between readings"""
difference = dataframe.diff(periods=1, axis=0)
difference2 = difference[difference.Timestamp >= '00:10:00']
#update the timestamp to desired length of time span
return difference2

def ProduceSleepReport(self, frame1, frame2):
"""Function to produce the Sleep Report,
Frame1 should be CalcDiff Output"""
frames = [frame1, frame2]
result = pd.concat(frames, axis=1).dropna().drop('Magnitude', axis=1)
cols=['Length Between Peak', 'Timestamp of Peak']
result.columns = cols
return result
45 changes: 45 additions & 0 deletions analysis/html_output_mod.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import pandas as pd
from pandas import DataFrame
import bokeh.charts
import numpy as np

class Produce_html_files(object):
"""Class that prduces html format report files"""

def __init__(self, dataframe=None, x=None, y=None,
title=None, xlabel=None, ylabel=None,
directory=None, filename=None):
self.dataframe = dataframe
self.x = x
self.y = y
self.title =title
self.xlabel = xlabel
self.ylabel = ylabel
self.directory = directory
self.filename = filename

def plotscatter(self, dataframe, x, y, title, xlabel,
ylabel, directory, filename):
"""Function to plot and export Scatter Chart to html"""
filename = directory+filename
plot = bokeh.charts.Scatter(dataframe, x=x, y=y,
title = title, xlabel=xlabel,
ylabel=ylabel)
bokeh.charts.output_file(filename)

def plotline(self, dataframe, x, y, title, xlabel,
ylabel, directory, filename):
"""Function to plot and export Line Chart to html"""
filename = directory+filename
plot = bokeh.charts.Line(dataframe, x=x, y=y,
title = title, xlabel=xlabel,
ylabel=ylabel)
bokeh.charts.output_file(filename)

def WritetoHTML(self, dataframe, directory, filename):
"""Writes reports to html"""
filename = directory+filename
html_str= dataframe.to_html()
html_file = open(filename, 'w')
html_file.write(html_str)
html_file.close()