Extract Energy consumption time-series for the Pool-Pump from the time series energy consumption data for a home over 1 year period sampled at 15 min granularity.
This is aggregate energy consumption data for one home that contains different appliances including HVAC, water heater, pool pump, etc.
- The Pool Pump starts and stops at fixed timings everyday.
- It maintains consistent power consumption during its operations.
- Its Power rating is between 1000W to 3000W.
- The Energy data in Wh is loaded into the python environment as a dataframe using the pandas package. It is then converted to Power-load (in Watts) series by multiplying by 4, as Energy at 15 mins -> Power/4.
- To Smoothen out the noise, A rolling average of dimension 5 is taken over the Power data.
- Now the 1st difference is taken to extract the timings of maximum increment and decrement in the power-load
- Now the start-time and end-time of the pump is estimated to be when there is maximum power-delta in the +ve and -ve directions respectively.
Visualizing Power-data vis-a-vis estimated start-time and end-time of the pump
Visualizing power-load patter - before Pump operation, during and after the pump is stopped.
- From start and end timings of all the days, based on the majority voting (highest frequency), choose global start and end timing of the pump across all days.
Visualizing power-load patter - before Pump operation, during and after the pump is stopped, at the global start and stop timings, calculated above
- Remove the power values before and after the estimated pump operational timings , from the main series, by making those as zero.
- Remove power-load of other appliances from the total power during (estimated) pump operational timings, by subtracting median power during off-pump duration from the on-duration.
- Now we have estimated the power-load of the pump for each day. We set its lower-limit as maximum of 1000W and 1st Quartile value. Upper-limit as minimum of 3000W and 3rd Quartile. For any day, if the estimated power-load is less than the lower-limit, we reduce it to zero, assuming the pump wasn’t used that day. If it's above the upper limit, we clip it to the upper-limit. Else the value stays the same.
- Finally, we divide the power series by 4 to get the energy consumption series in Wh.
Visualize first 10-day energy consumption of the pump
Please refer to the Pump_energy_series.csv file.
- Gained perspective on basic energy disaggregation problem.
- Hands-on experience with time-series analysis and tools.
- Proposing hypothesis and implementing a solution based on that.
- Interesting visualizations / observations
- Please refer the jupyter notebook - Energy_Disaggregation_Vishal_Submission_notebook.pdf / Energy_Disaggregation_Vishal_Submission.ipynb
O(# data points in 1 day). As the code made use of matrix/vector calculation advantages.