In [1]:
def eroeiccs(eroei,fop):
return eroei*1.0/(1+fop*eroei)
In [2]:
import matplotlib.pyplot as plt
import matplotlib as mpl
import matplotlib.font_manager as font_manager
In [3]:
#plt.style.use('fivethirtyeight')
#plt.style.use('classic')
plt.style.use('seaborn-darkgrid')
In [4]:
%matplotlib inline
prop = font_manager.FontProperties('Segoe UI')
In [5]:
plt.figure(figsize=(5,4))
x=range(1,100)
colors=['#fed976',
'#feb24c',
#'#fd8d3c',
'#f03b20',
'#bd0036']
plt.plot(0,0,lw=0,label='$f_{op}$ (%)')
rops=[0.05,0.1,0.15,0.2]
for r in range(len(rops)):
rop=rops[r]
y=[eroeiccs(i,rop) for i in x]
plt.plot(x,y,c=colors[r],label=int(rop*100))
plt.ylabel('EROEI$_{CCS}$')
plt.xlabel('EROEI')
plt.legend(framealpha=0,loc=2,fontsize=10)
plt.ylim(0,20)
plt.savefig('x.png',bbox_inches = 'tight', facecolor='w', pad_inches = 0.1, dpi=150)
plt.show()
In [6]:
def eroeist(eroei,fi,eta,esoi):
return 1.0*((1-fi)+(eta*fi))/((1.0/eroei)+(eta*fi/esoi))
In [7]:
eroeist(40,0.1,78,15.2)
Out[7]:
In [8]:
plt.figure(figsize=(5,4))
x=range(1,100)
colors=['#addd8e',
'#78c679',
'#31a354',
'#006837']
plt.plot(0,0,lw=0,label='${\phi}$ (%)')
esoi=15.2 #battery average http://pubs.rsc.org/en/content/articlehtml/2013/ee/c3ee41973h
eta= 0.78 #battery average http://pubs.rsc.org/en/content/articlehtml/2013/ee/c3ee41973h
fis=[0.05,0.1,0.15,0.2]
for r in range(len(fis)):
fi=fis[r]
y=[eroeist(i,fi,eta,esoi) for i in x]
plt.plot(x,y,c=colors[r],label=int(fi*100))
plt.ylabel('EROEI$_{storage}$')
plt.xlabel('EROEI')
plt.legend(framealpha=0,loc=2,fontsize=10)
#plt.ylim(0,20)
#plt.savefig('y.png',bbox_inches = 'tight', facecolor='w', pad_inches = 0.1, dpi=150)
plt.show()
Note: We assumed a storage technology mix of Batteries:CAES:PHS of 85%:7%:8%, leading to S=125 with storage technology ESOIs 15.2 (all batteries averaged), 797 and 704 taken from Table 1 of (Barnhart et al 2013)
In [9]:
eta=[0.90,0.75,0.90,0.75,0.60,0.70,0.85]
S=[32,20,5,10,9,797,704]
shr0=[0.2,0.2,0.2,0.2,0.2,0,0]
shr1=[0.1,0.1,0.1,0.1,0.1,0.25,0.25]
eta0=sum([eta[i]*shr0[i] for i in range(len(eta))])
eta1=sum([eta[i]*shr1[i] for i in range(len(eta))])
S0=sum([S[i]*shr0[i] for i in range(len(eta))])
S1=sum([S[i]*shr1[i] for i in range(len(eta))])
In [10]:
print eta0
print eta1
print S0
print S1
In [11]:
re0=[10,40]
xr0=[eroeist(i,0.4,eta0,S0) for i in re0] #all batteries averaged
re1=[10,33]
xr1=[eroeist(i,0.4,eta1,S1) for i in re1] #all batteries averaged
In [12]:
ff0=[9.6, 41.8]
xf0=[eroeiccs(i,0.147) for i in ff0]
ff1=[8.9, 22.6]
xf1=[eroeiccs(i,0.219) for i in ff1]
In [13]:
plt.figure(figsize=(5,4))
n=101
x=range(1,n)
colors=['#addd8e',
'#78c679',
'#31a354',
'#006837']
cf="#f03b20"
cr="#31a354"
cg="#aaaaaa"
plt.plot(0,0,lw=0,label='${\phi}$ (%)')
#ax=plt.gca().twinx()
esoi=15.2 #battery average http://pubs.rsc.org/en/content/articlehtml/2013/ee/c3ee41973h
eta= 0.78 #battery average http://pubs.rsc.org/en/content/articlehtml/2013/ee/c3ee41973h
fis=[0.1,0.2,0.3,0.4]
for r in range(len(fis)):
fi=fis[r]
y=[eroeist(i,fi,eta,esoi) for i in x]
plt.plot(x,y,c=colors[r],label=int(fi*100))
#plt.ylabel('EROEI$_{storage}$')
plt.xlabel('EROEI')
a=plt.gca()
#plt.legend(framealpha=0,loc=2,fontsize=10)
plt.text(-0.07, 0.65, 'EROEI$_{disp}$',
horizontalalignment='right',
verticalalignment='bottom',rotation=90,#fontproperties=prop,
size=11,color='#006837',transform=plt.gca().transAxes)
plt.text(-0.07, 0.29, 'EROEI$_{CCS}$',
horizontalalignment='right',
verticalalignment='bottom',rotation=90,#fontproperties=prop,
size=11,color='#bd0036',transform=plt.gca().transAxes)
colors=['#fed976',
'#feb24c',
#'#fd8d3c',
'#f03b20',
'#bd0036']
#plt.plot(0,0,lw=0,label=' ')
plt.plot(0,0,lw=0,label='$f_{op}$ (%)')
rops=[0.05,0.1,0.15,0.2]
for r in range(len(rops)):
rop=rops[r]
y=[eroeiccs(i,rop) for i in x]
plt.plot(x,y,c=colors[r],label=int(rop*100))
plt.scatter(ff0,xf0,color="#f03b20",marker='o')
plt.scatter(ff1,xf1,color="#f03b20",marker='^')
plt.scatter(re0,xr0,color="#31a354",marker='d')
plt.scatter(re1,xr1,color="#31a354",marker='s')
plt.xlim(0,100)
plt.ylim(0,80)
plt.text(re0[1]+2, xr0[1]-2, 'PV +Battery',
horizontalalignment='left',
verticalalignment='center',
size=9,color=cr)
plt.text(re1[1]+2, xr1[1]+1.5, 'Wind + Battery +\n PHS + CAES',
horizontalalignment='center',
verticalalignment='bottom',
size=9,color=cr)
plt.text(ff0[1], xf0[1]+2, 'Gas + CCS',
horizontalalignment='center',
verticalalignment='bottom',
size=9,color=cf)
plt.text(ff1[1], xf1[1]+2, 'Coal + CCS',
horizontalalignment='center',
verticalalignment='bottom',
size=9,color=cf)
#plt.ylabel('EROEI$_{CCS}$')
#plt.xlabel('EROEI')
plt.legend(framealpha=0,loc=2,fontsize=9)
#plt.savefig('z1.png',bbox_inches = 'tight', facecolor='w', pad_inches = 0.1, dpi=150)
plt.show()
In [14]:
plt.figure(figsize=(5,4))
n=21
x=range(1,n)
colors=['#addd8e',
'#78c679',
'#31a354',
'#006837']
plt.plot(0,0,lw=0,label='${\phi}$ (%)')
#ax=plt.gca().twinx()
esoi=15.2 #battery average http://pubs.rsc.org/en/content/articlehtml/2013/ee/c3ee41973h
eta= 0.78 #battery average http://pubs.rsc.org/en/content/articlehtml/2013/ee/c3ee41973h
fis=[0.05,0.1,0.15,0.2]
for r in range(len(fis)):
fi=fis[r]
y=[eroeist(i,fi,eta,esoi) for i in x]
plt.plot(x,y,c=colors[r],label=int(fi*100))
#plt.ylabel('EROEI$_{storage}$')
plt.xlabel('EROEI')
a=plt.gca()
#plt.legend(framealpha=0,loc=2,fontsize=10)
plt.text(-0.07, 0.65, 'EROEI$_{disp}$',
horizontalalignment='right',
verticalalignment='bottom',rotation=90,#fontproperties=prop,
size=11,color='#006837',transform=plt.gca().transAxes)
plt.text(-0.07, 0.27, 'EROEI$_{CCS}$',
horizontalalignment='right',
verticalalignment='bottom',rotation=90,#fontproperties=prop,
size=11,color='#bd0036',transform=plt.gca().transAxes)
colors=['#fed976',
'#feb24c',
#'#fd8d3c',
'#f03b20',
'#bd0036']
plt.plot(0,0,lw=0,label=' ')
plt.plot(0,0,lw=0,label='$f_{op}$ (%)')
rops=[0.05,0.1,0.15,0.2]
for r in range(len(rops)):
rop=rops[r]
y=[eroeiccs(i,rop) for i in x]
plt.plot(x,y,c=colors[r],label=int(rop*100))
#plt.ylabel('EROEI$_{CCS}$')
#plt.xlabel('EROEI')
plt.legend(framealpha=0,loc=2,fontsize=9)
#plt.savefig('z2.png',bbox_inches = 'tight', facecolor='w', pad_inches = 0.1, dpi=150)
plt.show()
In [15]:
plt.figure(figsize=(5,4))
n=51
x=range(1,n)
colors=['#addd8e',
'#78c679',
'#31a354',
'#006837']
plt.plot(0,0,lw=0,label='${\phi}$ (%)')
#ax=plt.gca().twinx()
esoi=15.2 #battery average http://pubs.rsc.org/en/content/articlehtml/2013/ee/c3ee41973h
eta= 0.78 #battery average http://pubs.rsc.org/en/content/articlehtml/2013/ee/c3ee41973h
fis=[0.1,0.2,0.3,0.4]
for r in range(len(fis)):
fi=fis[r]
y=[eroeist(i,fi,eta,esoi) for i in x]
plt.plot(x,y,c=colors[r],label=int(fi*100))
#plt.ylabel('EROEI$_{storage}$')
plt.xlabel('EROEI')
a=plt.gca()
#plt.legend(framealpha=0,loc=2,fontsize=10)
plt.text(-0.07, 0.65, 'EROEI$_{disp}$',
horizontalalignment='right',
verticalalignment='bottom',rotation=90,#fontproperties=prop,
size=11,color='#006837',transform=plt.gca().transAxes)
plt.text(-0.07, 0.27, 'EROEI$_{CCS}$',
horizontalalignment='right',
verticalalignment='bottom',rotation=90,#fontproperties=prop,
size=11,color='#bd0036',transform=plt.gca().transAxes)
colors=['#fed976',
'#feb24c',
#'#fd8d3c',
'#f03b20',
'#bd0036']
#plt.plot(0,0,lw=0,label=' ')
plt.plot(0,0,lw=0,label='$f_{op}$ (%)')
rops=[0.05,0.1,0.15,0.2]
for r in range(len(rops)):
rop=rops[r]
y=[eroeiccs(i,rop) for i in x]
plt.plot(x,y,c=colors[r],label=int(rop*100))
cf="#f03b20"
cr="#31a354"
cg="#aaaaaa"
s=30
plt.scatter(ff0,xf0,s,color=cf,marker='o')
plt.scatter(ff1,xf1,s,color=cf,marker='^')
plt.scatter(re0,xr0,s,color=cr,marker='d')
plt.scatter(re1,xr1,s,color=cr,marker='s')
plt.xlim(0,50)
plt.ylim(0,40)
#plt.annotate(' PV +\nbattery', xy=(re0[0],xr0[0]),\
# xycoords='data', fontsize=9, color=cg,
# xytext=(35, 5), textcoords='offset points',
# horizontalalignment='left', verticalalignment='center',
# arrowprops=dict(arrowstyle="->",color=cg))
#plt.annotate(' ', xy=(re0[1],xr0[1]),\
# xycoords='data', fontsize=9, color=cr,
# xytext=(-100, -60), textcoords='offset points',
# horizontalalignment='left', verticalalignment='center',
# arrowprops=dict(arrowstyle="-",linestyle='--',lw=0.5,color=cg))
plt.text(re0[1], xr0[1]-1.5, 'PV +\nBattery',
horizontalalignment='center',
verticalalignment='top',
size=9,color=cr)
plt.text(re1[1], xr1[1]+1.5, 'Wind + Battery +\n PHS + CAES',
horizontalalignment='center',
verticalalignment='bottom',
size=9,color=cr)
plt.text(ff0[1], xf0[1]-2.2, 'Gas + CCS',
horizontalalignment='center',
verticalalignment='top',
size=9,color=cf)
plt.text(ff1[1], xf1[1]-1, 'Coal + CCS',
horizontalalignment='center',
verticalalignment='top',
size=9,color=cf)
#plt.ylabel('EROEI$_{CCS}$')
#plt.xlabel('EROEI')
plt.legend(framealpha=0,loc=2,fontsize=9)
#plt.savefig('z3.png',bbox_inches = 'tight', facecolor='w', pad_inches = 0.1, dpi=150)
plt.show()
In [16]:
plt.figure(figsize=(5,4))
n=21
x=range(1,n)
colors=['#addd8e',
'#78c679',
'#31a354',
'#006837']
plt.plot(0,0,lw=0,label='${\phi}$ (%)')
#ax=plt.gca().twinx()
esoi=15.2 #battery average http://pubs.rsc.org/en/content/articlehtml/2013/ee/c3ee41973h
eta= 0.78 #battery average http://pubs.rsc.org/en/content/articlehtml/2013/ee/c3ee41973h
fis=[0.1,0.2,0.3,0.4]
for r in range(len(fis)):
fi=fis[r]
y=[eroeist(i,fi,eta,esoi) for i in x]
plt.plot(x,y,c=colors[r],label=int(fi*100))
#plt.ylabel('EROEI$_{storage}$')
plt.xlabel('EROEI')
a=plt.gca()
#plt.legend(framealpha=0,loc=2,fontsize=10)
plt.text(-0.07, 0.65, 'EROEI$_{disp}$',
horizontalalignment='right',
verticalalignment='bottom',rotation=90,#fontproperties=prop,
size=11,color='#006837',transform=plt.gca().transAxes)
plt.text(-0.07, 0.27, 'EROEI$_{CCS}$',
horizontalalignment='right',
verticalalignment='bottom',rotation=90,#fontproperties=prop,
size=11,color='#bd0036',transform=plt.gca().transAxes)
colors=['#fed976',
'#feb24c',
#'#fd8d3c',
'#f03b20',
'#bd0036']
plt.plot(0,0,lw=0,label=' ')
plt.plot(0,0,lw=0,label='$f_{op}$ (%)')
rops=[0.05,0.1,0.15,0.2]
for r in range(len(rops)):
rop=rops[r]
y=[eroeiccs(i,rop) for i in x]
plt.plot(x,y,c=colors[r],label=int(rop*100))
#plt.ylabel('EROEI$_{CCS}$')
#plt.xlabel('EROEI')
plt.legend(framealpha=0,loc=2,fontsize=10)
#plt.savefig('z4.png',bbox_inches = 'tight', facecolor='w', pad_inches = 0.1, dpi=150)
plt.show()
In [17]:
plt.figure(figsize=(5,4))
n=6
x=range(1,n)
colors=['#addd8e',
'#78c679',
'#31a354',
'#006837']
plt.plot(0,0,lw=0,label='${\phi}$ (%)')
#ax=plt.gca().twinx()
esoi=15.2 #battery average http://pubs.rsc.org/en/content/articlehtml/2013/ee/c3ee41973h
eta= 0.78 #battery average http://pubs.rsc.org/en/content/articlehtml/2013/ee/c3ee41973h
fis=[0.1,0.2,0.3,0.4]
for r in range(len(fis)):
fi=fis[r]
y=[eroeist(i,fi,eta,esoi) for i in x]
plt.plot(x,y,c=colors[r],label=int(fi*100),lw=2)
#plt.ylabel('EROEI$_{storage}$')
plt.xlabel('EROEI')
a=plt.gca()
#plt.legend(framealpha=0,loc=2,fontsize=10)
plt.text(-0.07, 0.65, 'EROEI$_{disp}$',
horizontalalignment='right',
verticalalignment='bottom',rotation=90,#fontproperties=prop,
size=11,color='#006837',transform=plt.gca().transAxes)
plt.text(-0.07, 0.27, 'EROEI$_{CCS}$',
horizontalalignment='right',
verticalalignment='bottom',rotation=90,#fontproperties=prop,
size=11,color='#bd0036',transform=plt.gca().transAxes)
colors=['#fed976',
'#feb24c',
#'#fd8d3c',
'#f03b20',
'#bd0036']
plt.plot(0,0,lw=0,label=' ')
plt.plot(0,0,lw=0,label='$f_{op}$ (%)')
rops=[0.05,0.1,0.15,0.2]
for r in range(len(rops)):
rop=rops[r]
y=[eroeiccs(i,rop) for i in x]
plt.plot(x,y,c=colors[r],label=int(rop*100),lw=2)
#plt.ylabel('EROEI$_{CCS}$')
#plt.xlabel('EROEI')
plt.legend(framealpha=0,loc=2,fontsize=10)
#plt.savefig('z5.png',bbox_inches = 'tight', facecolor='w', pad_inches = 0.1, dpi=150)
plt.show()
In [ ]: