In [8]:
%matplotlib inline
import pandas as pd
data = pd.read_csv('aggregated_PV_data.csv', parse_dates=True, index_col=0)
data.head()
Out[8]:
111 112 113 114 121 122 123 124 131 132 ... 203 204 221 222 223 224 231 232 233 234
DT
2016-01-01 00:00:00 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.0 0.000 0.000 ... 0.0 0.0 0.000 0.000 0.0 0.0 0.000 0.000 0.000 0.0
2016-01-01 00:15:00 0.003 0.005 0.004 0.004 0.004 0.003 0.008 0.0 0.008 0.008 ... 0.0 0.0 0.003 0.004 0.0 0.0 0.004 0.008 0.006 0.0
2016-01-01 00:30:00 0.006 0.010 0.007 0.008 0.009 0.005 0.016 0.0 0.016 0.015 ... 0.0 0.0 0.006 0.007 0.0 0.0 0.007 0.016 0.009 0.0
2016-01-01 00:45:00 0.009 0.015 0.007 0.012 0.014 0.007 0.022 0.0 0.024 0.023 ... 0.0 0.0 0.010 0.011 0.0 0.0 0.010 0.024 0.012 0.0
2016-01-01 01:00:00 0.011 0.020 0.007 0.016 0.019 0.007 0.029 0.0 0.032 0.030 ... 0.0 0.0 0.013 0.015 0.0 0.0 0.013 0.032 0.015 0.0

5 rows × 48 columns

In [9]:
data.plot()
Out[9]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f84047c6c50>
In [10]:
%matplotlib inline
data['111'].plot()
data['112'].plot()
data['113'].plot()
Out[10]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f840297e6d0>
In [11]:
%matplotlib inline
data['121'].plot()
data['122'].plot()
data['123'].plot()
data['124'].plot()
Out[11]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f8402b7fcd0>
In [12]:
%matplotlib inline
data['131'].plot()
data['132'].plot()
data['133'].plot()
data['134'].plot()
Out[12]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f8402860b50>
In [13]:
%matplotlib inline
data['141'].plot()
data['142'].plot()
data['143'].plot()
data['144'].plot()
Out[13]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f8402b7f2d0>
In [14]:
%matplotlib inline
data['151'].plot()
data['152'].plot()
data['153'].plot()
data['154'].plot()
Out[14]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f83fe9d42d0>
In [15]:
%matplotlib inline
data['161'].plot()
data['162'].plot()
data['163'].plot()
data['164'].plot()
Out[15]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f83fe18fd50>
In [16]:
%matplotlib inline
data['171'].plot()
data['172'].plot()
data['173'].plot()
data['174'].plot()
Out[16]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f84022b3f90>
In [17]:
%matplotlib inline
data['181'].plot()
data['182'].plot()
data['183'].plot()
data['184'].plot()
Out[17]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f83fd75d950>
In [18]:
%matplotlib inline
data['191'].plot()
data['192'].plot()
data['193'].plot()
data['194'].plot()
Out[18]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f83fd127410>
In [19]:
%matplotlib inline
data['201'].plot()
data['202'].plot()
data['203'].plot()
data['204'].plot()
Out[19]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f83fc958fd0>
In [20]:
%matplotlib inline
data['221'].plot()
data['222'].plot()
data['223'].plot()
data['224'].plot()
Out[20]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f83fbe669d0>

repetitive candidates for futher inquery as street lights:

outliers for further inquery: 141 had 350, 7 times avg. 144 flat 0 energy 151-154 had issues, 2 0 energy usage, 2 had 350+ 202 had 250, 5 times avg. 223 at 0 energy use

Average energy use seems to fall in the shape of a double bell curve with two maximum usage groups centered around 70 and 35

%matplotlib inline data['181'].diff()

NEW GRAPH WITHOUT OUTLIERS BELOW

In [22]:
import matplotlib
matplotlib.use('nbagg')
import matplotlib.pyplot as plt
/projects/sage/sage-7.5/local/lib/python2.7/site-packages/matplotlib/__init__.py:1350: UserWarning:  This call to matplotlib.use() has no effect
because the backend has already been chosen;
matplotlib.use() must be called *before* pylab, matplotlib.pyplot,
or matplotlib.backends is imported for the first time.

  warnings.warn(_use_error_msg)

^ We were trying to import Python script in order to find the means of a couple of data points, but it did not work. ^

In [23]:
%matplotlib.plt
data['111'].plot()
data['112'].plot()
data['113'].plot()
data['114'].plot()
data['121'].plot()
data['122'].plot()
data['123'].plot()
data['124'].plot()
data['131'].plot()
data['132'].plot()
data['133'].plot()
data['134'].plot()

data['142'].plot()
data['143'].plot()


data['161'].plot()
data['162'].plot()
data['163'].plot()
data['164'].plot()
data['171'].plot()
data['172'].plot()
data['173'].plot()
data['174'].plot()
data['181'].plot()
data['182'].plot()
data['183'].plot()
data['184'].plot()
data['191'].plot()
data['192'].plot()
data['193'].plot()
data['194'].plot()
data['201'].plot()

data['203'].plot()
data['204'].plot()
data['221'].plot()
data['222'].plot()

data['224'].plot()
Out[23]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f83fbe0e1d0>

Total amount of time that data was offline: 2,730 minutes,Total time of recorded date: 32,616 minutes, Percent of total time that data was offline: 8.37%,The system is at least 91.63% reliable as far as we know

In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [37]:
%matplotlib inline
data['113'].diff(1)['2016-03-01':'2016-03-05'].plot()
Out[37]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f83f8578050>

finding total appliances/lighting: 5 applications at one time

In [38]:
%matplotlib inline
data['113'].diff(1)['2016-03-05':'2016-03-10'].plot()
Out[38]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f83f8455ad0>

4 applications at one time

In [39]:
%matplotlib inline
data['113'].diff(1)['2016-03-10':'2016-03-15'].plot()
Out[39]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f83f84ee650>

5 appliances at one time

In [40]:
%matplotlib inline
data['113'].diff(1)['2016-03-20':'2016-03-25'].plot()
Out[40]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f83f8420fd0>

4 appliances at one time

In [41]:
.001*1000
Out[41]:
1.0

they use three 1 watt appliances; most probably a mixture of 1 watt clock, led lightbulbs and phone charger. aside from that they use a single 3 watt appliance. This could likely be two things; either a clock or a double A battery charger which is exactly 3 watts to run.

In [ ]:
 
In [61]:
%matplotlib inline
data['193'].plot()
Out[61]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f83f6897710>
In [48]:
%matplotlib inline
data['113'].diff(1)['2016-08-10':'2016-08-15'].plot()
Out[48]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f83f7c5b110>
In [ ]:
maximum of 6 appliances, three to four 1 watt appliances, a 2 watt appliance and rarely a 6 watt appliance
In [49]:
%matplotlib inline
data['113'].diff(1)['2016-08-10':'2016-08-12'].plot()
Out[49]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f83f73ed1d0>
In [51]:
%matplotlib inline
data['141'].diff(1)['2016-06-10':'2016-06-15'].plot()
Out[51]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f83f799a150>
In [58]:
%matplotlib inline
data['141'].diff(1)['2016-05-10':'2016-05-12'].plot()
Out[58]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f83f6fed1d0>
<matplotlib.figure.Figure at 0x7f83f6f84110>

this is one of the most energy using families-at times consuming 30 watts+, this is one of the families that could have a television. From the energy usage data it seems that less than 20% of households own a tv.

In [ ]:
 

We have been looking at the data in lots of different ways, cumulative kwh yearly usage as well as looking at daily houshold power usage and comparing high and low usage household appliances. We found that the average monthly usage without the upper and lower outliers comes to around 3.0 kwh. We also found the minumim offline time of the overall grid and found that the grid is online at least 91.63% of the time. This is counting all missing data points as offline so the real online time of the grid is definitely above 91%, although is still does not compare to the US reliance of above 99% for our grid systems. The reliance could be closer to 99% but the data was not recorded. When looking at individual households we found that most houses use two to four 1 watt led light bulbs along with phone chargers, clocks, and radios. A smaller portion of the households, around 15% use higher amounts of power at once which leads us to believe that they own televisions which run on 25-30 watts. Most households power spikes occur in the evenings, with noticable light bulbs being turned on for 4-6 hour periods.