In [5]:
"""
Data Visualization
Parse data from an Full Results CSV, and render it in
Simplified Results form, visualize in graphs, and plot.
"""
from collections import Counter
# import argparse
import csv
import geojson
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import numpy as np
import csv
import glob
import seaborn as sns
import datetime
from numpy import *
%matplotlib inline
In [63]:
def parse(full_output, simple_output):
"""Parses a Full Output CSV file to a Simplified Output CSV file"""
# Open CSV file, and safely close it when we're done
simplified_data = pd.read_csv(full_output, usecols=[2,3,4,5,6,7,8,9,11,12,13,14,15,20,23,26,27,37,39,40,41])
# Read the CSV data
simplified_data.index.names = ['SAID']
simplified_data.to_csv(simple_output)
return simplified_data
def visualize_DR_Capability(parsed_data, zc, cty):
"""Visualize data for all customers at each ZipCode"""
sns.set_context('poster')
fig, (axes) = plt.subplots(1,1, figsize=(10, 6), facecolor='w', edgecolor='k', sharey=True, sharex=True)
# fig.subplots_adjust(hspace = .1, wspace=.1)
fig.suptitle(' '.join(['Potential DR Capability of Customers in', cty, zc]), color='r')
axes.scatter(parsed_data.DR_Capacity_CycleOnOff_50Pct, parsed_data.CycleShed_Building_Ratio * 100, alpha=1.0, s=100)
# axes.scatter(parsed_data[parsed_data.DR_Capacity_CycleOnOff_50Pct>=10].DR_Capacity_CycleOnOff_50Pct, parsed_data[parsed_data.DR_Capacity_CycleOnOff_50Pct>=10].CycleShed_Building_Ratio * 100,facecolor='r',alpha=0.8, s=100)
axes.set_xlabel('Potential DR Capability, [kW]')
axes.set_ylabel('DR Capability of the Whole Builing Power, [%]')
axes.legend(['SAID'], frameon=True, loc= 'upper right')
axes.set_ylim(bottom=0)
axes.set_xlim(left=0)
# x = [10,10,80,80]
# y = [50,20,20,50]
# axes.fill(x,y, alpha=0.2, facecolor='green')
plt.savefig('/Users/ryin/Dropbox/LBNL/PGE/results/Stockton/DR'+ zc +'.png', dpi=300, format='png', bbox_inches='tight')
def visualize_ADR(parsed_data, zc, cty):
"""Visualize data for all customers at each ZipCode"""
sns.set_context('poster')
fig, (axes) = plt.subplots(1,2, figsize=(18, 6), facecolor='w', edgecolor='k', sharey=False, sharex=False)
fig.subplots_adjust(hspace = .25, wspace=.2)
fig.suptitle(' '.join(['Potential DR Capability of Customers in', cty, zc]), color='r')
axes[0].scatter(parsed_data.DR_Capacity_CycleOnOff_50Pct, parsed_data.CycleShed_Building_Ratio * 100, alpha=1.0, s=100)
axes[0].set_xlabel('Potential DR Capability, [kW]')
axes[0].set_ylabel('DR Capability of the Whole Builing Power, [%]')
axes[0].legend(['SAID'], frameon=True, fancybox=True, loc= 'upper right')
axes[0].set_ylim(bottom=0)
axes[0].set_xlim(left=0)
data_sort = parsed_data.sort_values(['DR_Capacity_CycleOnOff_50Pct'],ascending=False)
axes[0].set_title('(a) DR Capabilities of All Customers in ' + zc)
sns.distplot(parsed_data.DR_Capacity_CycleOnOff_50Pct, color = 'green',ax = axes[1])
axes[1].set_title('(b) Ranking of Potential DR Capabilities')
axes[1].set_ylabel('Distribution of DR Capabilities')
axes[1].set_xlabel('Potential DR Capability, [kW]')
axes[1].set_xlim(left=0)
plt.savefig('/Users/ryin/Dropbox/LBNL/PGE/results/'+cty+'/DR'+ zc +'.png', dpi=300, format='png', bbox_inches='tight')
def visualize_ADR_Bldg(parsed_data, zc, cty):
"""Visualize data for all customers at each ZipCode"""
sns.set_context('poster')
fig, (axes) = plt.subplots(1,2, figsize=(18, 6), facecolor='w', edgecolor='k', sharey=False, sharex=False)
fig.subplots_adjust(hspace = .25, wspace=.2)
fig.suptitle(' '.join(['Potential DR Capability of Customers in', cty, zc]), color='r')
axes[0].scatter(parsed_data.DR_Capacity_CycleOnOff_50Pct, parsed_data.DR_Capacity_CycleOnOff_50Pct / parsed_data.CycleShed_Building_Ratio, alpha=1.0, s=100)
axes[0].set_xlabel('Potential DR Capability, [kW]')
axes[0].set_ylabel('Whole Builing Power, [kW]')
axes[0].legend(['SAID'], frameon=True, fancybox=True, loc= 'upper right')
axes[0].set_ylim(bottom=0)
axes[0].set_xlim(left=0)
data_sort = parsed_data.sort_values(['DR_Capacity_CycleOnOff_50Pct'],ascending=False)
axes[0].set_title('(a) DR Capabilities of All Customers in ' + zc)
sns.distplot(parsed_data.DR_Capacity_CycleOnOff_50Pct, color = 'green',ax = axes[1])
axes[1].set_title('(b) Ranking of Potential DR Capabilities')
axes[1].set_ylabel('Distribution of DR Capabilities')
axes[1].set_xlabel('Potential DR Capability, [kW]')
axes[1].set_xlim(left=0)
plt.savefig('/Users/ryin/Dropbox/LBNL/PGE/results/'+cty+'/DR'+ zc +'_Bldg.png', dpi=300, format='png', bbox_inches='tight')
In [9]:
parsed_data = parse('/Users/ryin/Dropbox/LBNL/PGE/results/Stockton/CustSummary_95219.csv', '/Users/ryin/Dropbox/LBNL/PGE/results/Stockton/SimplifiedCustSummary_95219.csv')
In [32]:
visualize_DR_Capability(parsed_data,'95219','Stockon')
In [49]:
parsed_data = parse('/Users/ryin/Dropbox/LBNL/PGE/results/Stockton/CustSummary_95219.csv', '/Users/ryin/Dropbox/LBNL/PGE/results/Stockton/SimplifiedCustSummary_95219.csv')
visualize_ADR(parsed_data,'95219','Stockon')
parsed_data = parse('/Users/ryin/Dropbox/LBNL/PGE/results/Stockton/CustSummary_95215.csv', '/Users/ryin/Dropbox/LBNL/PGE/results/Stockton/SimplifiedCustSummary_95215.csv')
visualize_ADR(parsed_data,'95215','Stockon')
visualize_ADR(parsed_data,'95207','Stockon')
visualize_ADR(parsed_data,'95206','Stockon')
visualize_ADR(parsed_data,'95205','Stockon')
visualize_ADR(parsed_data,'95203','Stockon')
visualize_ADR(parsed_data,'95202','Stockon')
In [50]:
for zc in ['95202','95203','95205','95206','95207','95215','95219']:
parsed_data = parse('/Users/ryin/Dropbox/LBNL/PGE/results/Stockton/CustSummary_'+zc+'.csv', '/Users/ryin/Dropbox/LBNL/PGE/results/Stockton/SimplifiedCustSummary_'+zc+'.csv')
visualize_ADR(parsed_data,zc,'Stockon')
In [64]:
def dataviz(cty, zc):
parsed_data = parse('/Users/ryin/Dropbox/LBNL/PGE/results/'+cty+'/CustSummary_'+zc+'.csv', '/Users/ryin/Dropbox/LBNL/PGE/results/'+cty+'/SimplifiedCustSummary_'+zc+'.csv')
visualize_ADR(parsed_data,zc,cty)
visualize_ADR_Bldg(parsed_data,zc,cty)
In [52]:
dataviz('SanJose','95110')
In [65]:
# dataviz('SanFrancisco','94103')
dataviz('SanFrancisco','94104')
dataviz('SanFrancisco','94105')
dataviz('SanFrancisco','94107')
dataviz('SanFrancisco','94108')
dataviz('SanFrancisco','94111')
In [ ]: