In [1]:
import imp
from datetime import datetime, timedelta
import pandas as pd
# loads module from temp directory
dag = imp.load_source("disaggregator","../disaggregator/disaggregator.py")
In [2]:
# dataframe with power and time
length = 10
now = datetime.utcnow()
times = [now + timedelta(seconds=15*60*x) for x in range(0, length)]
powers = [1. + (.1*x) for x in range(length)]
df1 = pd.DataFrame({'time': times,'power':powers})
df2 = pd.DataFrame({'time': times,'power':powers})
print df1
In [3]:
# single devices with independently sampled data
fridge_example_1 = dag.DeviceInstance(df1)
fridge_example_2 = dag.DeviceInstance(df2)
In [4]:
# grouped devices form a device type
fridges = [fridge_example_1,fridge_example_2]
refrigerator = dag.DeviceType(fridges)
refrigerator.learn_parameters()
In [5]:
# want to disaggregate this data
raw_aggregated_data = pd.DataFrame()
# grouped device_types form a building
device_types = [refrigerator]
building1 = dag.MeteredUnit()
# decide how likely each appliance is
building1.learn_device_types(raw_aggregated_data,device_types)
## (probably does something like this):
# probabilities = []
# for appliance_type in [refrigerator]:
# probabilities.append(appliance_type.probability_present(raw_aggregated_data))
# disaggregation for this building
building1.learn_disaggregator_parameters()
disaggregated_data, confidences = building1.disaggregate(raw_aggregated_data)