{
"cells": [
{
"cell_type": "code",
"execution_count": 1269,
"metadata": {},
"outputs": [],
"source": [
"# -*- coding: utf-8 -*-\n",
"\"\"\"\n",
"Model for analysing the effects of coincident peak vs AoB charges\n",
"\n",
"Created on Sun Dec 16 14:46:14 2018\n",
"\n",
"The overall model has 3 components: \n",
"(1) Demand \n",
"(2) Demand-side investment in DG\n",
"(3) Supply-side investment in grid-connected generation\n",
"\n",
"This version only looks at allocative efficiency effects (demand with no investment response)\n",
"\n",
"(1) Demand is differentiated by:\n",
"(a) type {Mass,DirectConnect}\n",
"(b) time of use {Peak,Shoulder,OffPeak,Low} \n",
"(c) region {Backbone node...}\n",
"(d) connection (DG, Grid)\n",
"\n",
"\"\"\"\n",
"import numpy as np\n",
"import pandas as pd\n",
"import random\n",
"import matplotlib\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 1270,
"metadata": {},
"outputs": [],
"source": [
"path='/media/usb/notebooks/Doug/'\n",
"#db = DB(profile=\"hallj\") "
]
},
{
"cell_type": "code",
"execution_count": 1386,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" bb | \n",
" type | \n",
" p_yr | \n",
" m_yr | \n",
" pk_s | \n",
" dg_s | \n",
" sh_s | \n",
" off_s | \n",
" pk_p | \n",
" dg_p | \n",
" ... | \n",
" sh_theta | \n",
" off_theta | \n",
" pk_pr | \n",
" dg_pr | \n",
" sh_pr | \n",
" off_pr | \n",
" pk_rev | \n",
" dg_rev | \n",
" sh_rev | \n",
" off_rev | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" MDN | \n",
" 1 | \n",
" 2010 | \n",
" 2008 | \n",
" 0.233045 | \n",
" 0.012877 | \n",
" 0.229934 | \n",
" 0.524144 | \n",
" 329.388268 | \n",
" 228.193293 | \n",
" ... | \n",
" 1.0 | \n",
" 1.0 | \n",
" 102.040969 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 14702371.94 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 1 | \n",
" MDN | \n",
" 1 | \n",
" 2011 | \n",
" 2009 | \n",
" 0.342330 | \n",
" 0.023511 | \n",
" 0.216721 | \n",
" 0.417438 | \n",
" 241.814622 | \n",
" 143.721361 | \n",
" ... | \n",
" 1.0 | \n",
" 1.0 | \n",
" 103.018564 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 14460397.68 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 2 | \n",
" MDN | \n",
" 1 | \n",
" 2012 | \n",
" 2010 | \n",
" 0.246905 | \n",
" 0.022182 | \n",
" 0.207982 | \n",
" 0.522932 | \n",
" 223.576552 | \n",
" 119.284856 | \n",
" ... | \n",
" 1.0 | \n",
" 1.0 | \n",
" 103.891211 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 14016131.77 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 3 | \n",
" MDN | \n",
" 1 | \n",
" 2013 | \n",
" 2011 | \n",
" 0.244829 | \n",
" 0.021192 | \n",
" 0.236435 | \n",
" 0.497544 | \n",
" 200.192769 | \n",
" 104.327737 | \n",
" ... | \n",
" 1.0 | \n",
" 1.0 | \n",
" 103.699741 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 14291101.08 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 4 | \n",
" MDN | \n",
" 1 | \n",
" 2014 | \n",
" 2012 | \n",
" 0.204420 | \n",
" 0.019323 | \n",
" 0.220055 | \n",
" 0.556201 | \n",
" 233.224559 | \n",
" 135.009161 | \n",
" ... | \n",
" 1.0 | \n",
" 1.0 | \n",
" 108.014962 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 15003145.65 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
"
\n",
"
5 rows × 82 columns
\n",
"
"
],
"text/plain": [
" bb type p_yr m_yr pk_s dg_s sh_s off_s pk_p \\\n",
"0 MDN 1 2010 2008 0.233045 0.012877 0.229934 0.524144 329.388268 \n",
"1 MDN 1 2011 2009 0.342330 0.023511 0.216721 0.417438 241.814622 \n",
"2 MDN 1 2012 2010 0.246905 0.022182 0.207982 0.522932 223.576552 \n",
"3 MDN 1 2013 2011 0.244829 0.021192 0.236435 0.497544 200.192769 \n",
"4 MDN 1 2014 2012 0.204420 0.019323 0.220055 0.556201 233.224559 \n",
"\n",
" dg_p ... sh_theta off_theta pk_pr dg_pr sh_pr off_pr \\\n",
"0 228.193293 ... 1.0 1.0 102.040969 0 0 0 \n",
"1 143.721361 ... 1.0 1.0 103.018564 0 0 0 \n",
"2 119.284856 ... 1.0 1.0 103.891211 0 0 0 \n",
"3 104.327737 ... 1.0 1.0 103.699741 0 0 0 \n",
"4 135.009161 ... 1.0 1.0 108.014962 0 0 0 \n",
"\n",
" pk_rev dg_rev sh_rev off_rev \n",
"0 14702371.94 0 0 0 \n",
"1 14460397.68 0 0 0 \n",
"2 14016131.77 0 0 0 \n",
"3 14291101.08 0 0 0 \n",
"4 15003145.65 0 0 0 \n",
"\n",
"[5 rows x 82 columns]"
]
},
"execution_count": 1386,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#A. DATA import and export\n",
"data=pd.read_csv(path+\"Data/model_data_bb.csv\")\n",
"data_gen=pd.read_csv(path+\"Data/model_data_bb_gen.csv\")\n",
"coef_m=pd.read_csv(path+\"Data/tou_coef_mass.csv\")\n",
"coef_i=pd.read_csv(path+\"Data/tou_coef_ind.csv\")\n",
"\n",
"reg_pop_params=pd.read_csv(path+\"Data/reg_pop.csv\")#no variable defns for data in this dataframe\n",
"\n",
"reg_inc_params=pd.read_csv(path+\"Data/reg_inc.csv\")#no variable defns for data in this dataframe\n",
"\n",
"tp_rev=pd.read_csv(path+\"Data/forecast_revenue.csv\")\n",
"\n",
"exist_s = pd.read_csv(path+\"Data/aob_existing_asset_benefit_shares_2022_equal.csv\")#no variable defns for data in this dataframe\n",
"exist_g=pd.read_csv(path+\"Data/existing_gen.csv\")\n",
"poss_g=pd.read_csv(path+\"Data/possible_gen.csv\")\n",
"major = pd.read_csv(path+\"Data/major_capex.csv\")\n",
"initial_aob = pd.read_csv(path+\"Data/Initial_AoB.csv\")\n",
"data.head()"
]
},
{
"cell_type": "code",
"execution_count": 892,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 892,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"major.major_capex.plot()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# B. PARAMETERS"
]
},
{
"cell_type": "code",
"execution_count": 1119,
"metadata": {},
"outputs": [],
"source": [
"# B.1 Number of trading periods\n",
"pk_tp = 1600 \n",
"sh_tp = 3075\n",
"off_tp = 12845\n",
"mwh=np.array([pk_tp/2,sh_tp/2,off_tp/2])"
]
},
{
"cell_type": "code",
"execution_count": 1120,
"metadata": {},
"outputs": [],
"source": [
"# B.2 Base period values - that do not change\n",
"yr_0 = 2017 #capacity measurement year ended August 2017\n",
"base_year = 2010"
]
},
{
"cell_type": "code",
"execution_count": 1121,
"metadata": {},
"outputs": [],
"source": [
"# B.3 Mass market Time of Use (TOU) elasticity/LAAIDS parameters - from data\n",
"gamma=np.column_stack(np.array(coef_m[coef_m['type']=='gamma']['coef']))\n",
"gamma = np.transpose(np.reshape(gamma,(4,4)))\n",
"beta=np.column_stack(np.array(coef_m[coef_m['type']=='beta']['coef']))\n",
"beta=np.transpose(np.matrix(beta))\n",
"dg_c = np.column_stack(np.array(coef_m[coef_m['type']=='dg']['coef']))"
]
},
{
"cell_type": "code",
"execution_count": 1122,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 0.152, 0.009, -0.038, -0.123],\n",
" [ 0.009, 0.01 , -0.018, -0.001],\n",
" [-0.038, -0.018, 0.155, -0.099],\n",
" [-0.123, -0.001, -0.099, 0.224]])"
]
},
"execution_count": 1122,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gamma"
]
},
{
"cell_type": "code",
"execution_count": 1123,
"metadata": {},
"outputs": [],
"source": [
"# B.4 Large industrials TOU elasticity/LAAIDS parameters - from data\n",
"gamma_i=np.column_stack(np.array(coef_i[coef_i['type']=='gamma']['coef']))\n",
"gamma_i = np.transpose(np.reshape(gamma_i,(4,4)))\n",
"beta_i=np.column_stack(np.array(coef_i[coef_i['type']=='beta']['coef']))\n",
"beta_i=np.transpose(np.matrix(beta_i))\n",
"dg_c_i = np.column_stack(np.array(coef_i[coef_i['type']=='dg']['coef']))"
]
},
{
"cell_type": "code",
"execution_count": 1124,
"metadata": {},
"outputs": [],
"source": [
"# B.5 Market aggregate price and demand parameters (non TOU)\n",
"p_e = -0.11 #Aggregate mass market price (per ICP) elasticity\n",
"m_e = 0.11 #Aggregate mass market income (per ICP) elasticity\n",
"p_e_i = -0.02 #Aggregate industrial price (per ICP) elasticity\n",
"VOLL = 1000 #Value of lost load for calculating consumer surplus\n",
"disc = 0.08 #Discount rate\n",
"p_disc = 1/((1+disc)**(19/12)) #Discounting expected interconnection charges"
]
},
{
"cell_type": "code",
"execution_count": 1125,
"metadata": {},
"outputs": [],
"source": [
"# B.6 Dimensions \n",
"share_n=4\n",
"ones=np.matrix(np.ones((1,share_n)))\n",
"T=33 #Projections time period\n",
"yr_l=list(range(yr_0,yr_0+T)) #Years for projections\n",
"reg_l=[\"MDN\",\"OTA\",\"HLY\",\"TRK\",\"WKM\",\"RDF\",\"SFD\",\n",
" \"BPE\",\"HAY\",\"KIK\",\"ISL\",\"BEN\",\"ROX\",\"TWI\"] # Backbone nodes in model\n",
"ind_l=[\"OTA\",\"HLY\",\"TRK\",\"RDF\",\"SFD\",\"BPE\",\"ISL\",\"TWI\"] #Nodes with large industrial or direct connect demands\n",
"gen_l=[\"HLY\",\"TRK\",\"WKM\",\"RDF\",\"SFD\",\n",
" \"BPE\",\"HAY\",\"KIK\",\"ISL\",\"BEN\",\"ROX\",\"TWI\"] #Nodes with grid connected generation (excludes Otahuhu gen now closed)\n",
"si_nodes=[\"KIK\",\"ISL\",\"BEN\",\"ROX\",\"TWI\"] \n",
"ni_nodes=[\"MDN\",\"OTA\",\"HLY\",\"TRK\",\"WKM\",\"RDF\",\"SFD\",\n",
" \"BPE\",\"HAY\"] \n",
"ctype_l=[1,2] #Consumer types, 1= Mass market, 2=Large industrial or direct connect demand"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [],
"source": [
"# B.7 Initial demand growth parameters, need to add\n",
"\"\"\"\n",
"Need to add (a) node-specific values, (b) shifters for scenarios for\n",
"electrification or reductions in growth (c) shifters for one off shocks (Tiwai) \n",
"\"\"\"\n",
"nz_m_g_mu = 1.01 #Mean income growth rate (1+g), labour market earnings per ICP\n",
"nz_m_g_sd = 0.005 #Std deviation of income growth rate (1+g), earnings per ICP\n",
"icp_g_mu = 1.01 #Mean ICP growth rate (1+g)\n",
"icp_g_sd = 0.005 #Std deviation of ICP growth rate\n",
"\n",
"pot4_mw = 50 #Adding Tiwai fourth potline from 2019 to 2022\n",
"pot4_on = 2018 # year after which potline turns on\n",
"pot4_off = 2022 # year after which potline turns off\n",
"pot4 = np.array([(pk_tp/2)*pot4_mw,0,(sh_tp/2)*pot4_mw,(off_tp/2)*pot4_mw])"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 40000., 0., 76875., 321125.])"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pot4"
]
},
{
"cell_type": "code",
"execution_count": 161,
"metadata": {},
"outputs": [],
"source": [
"# B.8 Initial generation cost parameters\n",
"# (a) Parameters\n",
"#pg_mu = [89.0,89.0,72.5,58.0] #Mean and standard deviation of generation prices\n",
"#pg_sd = [38.0,38.0,27.0,21.0] # 2008 prices\n",
"pg_mu = [115.3,115.3,91.6,72.8] #2018 dollars: Mean and standard deviation of generation prices\n",
"pg_sd = [49.6,49.6,34.1,28.0]\n",
"# (b) Function for generating new generation prices from a \n",
"# log normal distribution Note ideally this would be \n",
"# mutivariate with a covariance matrix, but for simplicity \n",
"# we assume the values are perfectly correlated (i.e. same random seed)\n",
"\n",
"def rand_pg(mu=pg_mu,sd=pg_sd,n=1):\n",
" cases=len(mu) \n",
" out=np.zeros((n,cases))\n",
" rnd_num=random.randint(0,10000) #Set a random seed number to ensure values similar (simpler than multivariate)\n",
" for i in range(cases):\n",
" loc=np.log(mu[i]**2/np.sqrt(sd[i]**2+mu[i]**2))\n",
" scale=np.sqrt(np.log(1+(sd[i]**2/mu[i]**2)))\n",
" np.random.seed(rnd_num)\n",
" rnd=np.random.lognormal(loc,scale,n)\n",
" out[:,i]=rnd\n",
" return out \n",
"\n",
"# (c) Function for generating the expected value of generation costs, \n",
"#given a weighed average and std deviation \n",
"def ln_exp(mu=pg_mu,sd=pg_sd,n=1):\n",
" cases=len(mu) \n",
" out=np.zeros((n,cases))\n",
" for i in range(cases):\n",
" loc=np.log(mu[i]**2/np.sqrt(sd[i]**2+mu[i]**2))\n",
" scale=np.sqrt(np.log(1+(sd[i]**2/mu[i]**2)))\n",
" out[:,i] = np.exp(loc+0.5*scale)\n",
" return out\n",
"\n",
"# (d) Assumed cost of DG (sensitivity will add a random draw to test different price levels)\n",
"# and supply elasticity (percentage change in DG if price breached) \n",
"dg_lrmc_mu=250 # lrmc - capital and fixed O&M only, based on network batteries, with input/'fuel' cost calculated in the model\n",
"dg_capex = 733000\n",
"dg_fixed = 67000\n",
"hybrid_arbitrage_discount = 0.225 # To discount arbitrage outside peak demand months\n",
"max_dg = 2 # Maximum MW dg/batteries capacity to total peak demand, 2 = 50% of peak met by batteries\n",
"dg_mwh = 3225\n",
"dg_lrmc_g = 0.93 #Assume a 7% cost reduction\n",
"dg_ds = 0.5 #Supply elasticity - implies 1% cost advantage increases DG by 1% but is also decreasing function of pk_mw/(dg_mw+pk_mw)\n",
"dg_horizon = 15 #Years factored into the DG investment decision"
]
},
{
"cell_type": "code",
"execution_count": 311,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"4.745675408093123\n",
"0.06102489953928338\n",
"[1.20761355e+48]\n",
"[104.29596548]\n"
]
}
],
"source": [
"mu=115.3\n",
"sd=49.6\n",
"n=1\n",
"\n",
"\n",
"# This is in the code now\n",
"# loc=np.log(mu**2/np.sqrt(sd**2+mu**2))\n",
"# scale=np.sqrt(np.log(1+(sd**2/mu**2)))\n",
"\n",
"\n",
"#this is corrected\n",
"loc=np.log(mu**2/np.sqrt(sd+mu**2))\n",
"scale=np.sqrt(np.log(1+(sd/mu**2)))\n",
"\n",
"\n",
"print(loc)\n",
"print(scale)\n",
"print(np.random.lognormal(mu,sd,n))\n",
"print(np.random.lognormal(loc,scale,n))\n"
]
},
{
"cell_type": "code",
"execution_count": 1558,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mu=115.3\n",
"sd=49.6\n",
"n=1\n",
"\n",
"\n",
"# This is in the code now\n",
"loc=np.log(mu**2/np.sqrt(sd**2+mu**2))\n",
"scale=np.sqrt(np.log(1+(sd**2/mu**2)))\n",
"\n",
"\n",
"#this is corrected\n",
"# loc=np.log(mu**2/np.sqrt(sd+mu**2))\n",
"# scale=np.sqrt(np.log(1+(sd/mu**2)))\n",
"\n",
"s = np.random.lognormal(loc, scale, 1000)\n",
"\n",
"import matplotlib.pyplot as plt\n",
"count, bins, ignored = plt.hist(s, 50,cumulative=False, align='mid')\n",
"\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 362,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"114.87814196803892"
]
},
"execution_count": 362,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"s.mean()"
]
},
{
"cell_type": "code",
"execution_count": 309,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mu, sigma = 3., 1. # mean and standard deviation\n",
"s = np.random.lognormal(mu, sigma, 1000)\n",
"\n",
"import matplotlib.pyplot as plt\n",
"count, bins, ignored = plt.hist(s, 100,cumulative=False, align='mid')\n",
"\n",
"x = np.linspace(min(bins), max(bins), 10000)\n",
"pdf = (np.exp(-(np.log(x) - mu)**2 / (2 * sigma**2)) / (x * sigma * np.sqrt(2 * np.pi)))\n",
"\n",
"# plt.plot(x, pdf, linewidth=2, color='r')\n",
"# plt.axis('tight')\n",
"# plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 174,
"metadata": {},
"outputs": [],
"source": [
"# B.9 AOB parameters\n",
"r_s = 0.695 #Share of DC + AC IC revenue not recovered via AoB [file aob_existing has the info on IC and DC allocations]\n",
"aob_yr=2022 #Year implemented - for measurement purposes(i.e. m_yr) \n",
"aob_tp=[pk_tp,pk_tp,sh_tp,off_tp]"
]
},
{
"cell_type": "code",
"execution_count": 169,
"metadata": {},
"outputs": [],
"source": [
"# B.10 Transpower revenue parameters \n",
"roi=0.06 # A constant return on investment\n",
"opex_r=0.06 # An opex allowance - as a share of RAB\n",
"deprn=0.05 # Constant average depreciation\n",
"gror = roi+opex_r+deprn #Gross rate of return [missing tax?]\n",
"ic_s = [1.0,0.0,0.0,0.0] #Share of trading periods to which RCPD applies, by TOU categories - note assumption that average peak price is what matters\n",
"ic_s_mwh = [1.0,0.0,1.0,1.0] #Values for application of RCPD to MWh - not applied to DG "
]
},
{
"cell_type": "code",
"execution_count": 79,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" bb | \n",
" type | \n",
" p_yr | \n",
" m_yr | \n",
" pk_s | \n",
" dg_s | \n",
" sh_s | \n",
" off_s | \n",
" pk_p | \n",
" dg_p | \n",
" ... | \n",
" sh_theta | \n",
" off_theta | \n",
" pk_pr | \n",
" dg_pr | \n",
" sh_pr | \n",
" off_pr | \n",
" pk_rev | \n",
" dg_rev | \n",
" sh_rev | \n",
" off_rev | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" MDN | \n",
" 1 | \n",
" 2010 | \n",
" 2008 | \n",
" 0.233045 | \n",
" 0.012877 | \n",
" 0.229934 | \n",
" 0.524144 | \n",
" 329.388268 | \n",
" 228.193293 | \n",
" ... | \n",
" 1.0 | \n",
" 1.0 | \n",
" 102.040969 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 14702371.94 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 1 | \n",
" MDN | \n",
" 1 | \n",
" 2011 | \n",
" 2009 | \n",
" 0.342330 | \n",
" 0.023511 | \n",
" 0.216721 | \n",
" 0.417438 | \n",
" 241.814622 | \n",
" 143.721361 | \n",
" ... | \n",
" 1.0 | \n",
" 1.0 | \n",
" 103.018564 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 14460397.68 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 2 | \n",
" MDN | \n",
" 1 | \n",
" 2012 | \n",
" 2010 | \n",
" 0.246905 | \n",
" 0.022182 | \n",
" 0.207982 | \n",
" 0.522932 | \n",
" 223.576552 | \n",
" 119.284856 | \n",
" ... | \n",
" 1.0 | \n",
" 1.0 | \n",
" 103.891211 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 14016131.77 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 3 | \n",
" MDN | \n",
" 1 | \n",
" 2013 | \n",
" 2011 | \n",
" 0.244829 | \n",
" 0.021192 | \n",
" 0.236435 | \n",
" 0.497544 | \n",
" 200.192769 | \n",
" 104.327737 | \n",
" ... | \n",
" 1.0 | \n",
" 1.0 | \n",
" 103.699741 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 14291101.08 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 4 | \n",
" MDN | \n",
" 1 | \n",
" 2014 | \n",
" 2012 | \n",
" 0.204420 | \n",
" 0.019323 | \n",
" 0.220055 | \n",
" 0.556201 | \n",
" 233.224559 | \n",
" 135.009161 | \n",
" ... | \n",
" 1.0 | \n",
" 1.0 | \n",
" 108.014962 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 15003145.65 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 5 | \n",
" MDN | \n",
" 1 | \n",
" 2015 | \n",
" 2013 | \n",
" 0.223055 | \n",
" 0.016960 | \n",
" 0.215613 | \n",
" 0.544373 | \n",
" 219.210132 | \n",
" 98.956611 | \n",
" ... | \n",
" 1.0 | \n",
" 1.0 | \n",
" 124.871152 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 17044472.77 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 6 | \n",
" MDN | \n",
" 1 | \n",
" 2016 | \n",
" 2014 | \n",
" 0.250691 | \n",
" 0.018841 | \n",
" 0.205249 | \n",
" 0.525219 | \n",
" 233.080919 | \n",
" 106.815616 | \n",
" ... | \n",
" 1.0 | \n",
" 1.0 | \n",
" 138.773448 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 19192288.28 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 7 | \n",
" MDN | \n",
" 1 | \n",
" 2017 | \n",
" 2015 | \n",
" 0.237338 | \n",
" 0.014619 | \n",
" 0.188878 | \n",
" 0.559165 | \n",
" 225.819836 | \n",
" 84.556454 | \n",
" ... | \n",
" 1.0 | \n",
" 1.0 | \n",
" 147.003834 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 20373836.16 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 8 | \n",
" MDN | \n",
" 1 | \n",
" 2018 | \n",
" 2016 | \n",
" 0.260092 | \n",
" 0.019825 | \n",
" 0.177982 | \n",
" 0.542101 | \n",
" 230.384014 | \n",
" 98.191994 | \n",
" ... | \n",
" 1.0 | \n",
" 1.0 | \n",
" 155.417791 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 22036337.84 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 9 | \n",
" MDN | \n",
" 1 | \n",
" 2019 | \n",
" 2017 | \n",
" 0.308484 | \n",
" 0.027642 | \n",
" 0.202029 | \n",
" 0.461845 | \n",
" 272.800330 | \n",
" 142.986996 | \n",
" ... | \n",
" 1.0 | \n",
" 1.0 | \n",
" 150.642525 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 22082968.22 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
"
\n",
"
10 rows × 82 columns
\n",
"
"
],
"text/plain": [
" bb type p_yr m_yr pk_s dg_s sh_s off_s pk_p \\\n",
"0 MDN 1 2010 2008 0.233045 0.012877 0.229934 0.524144 329.388268 \n",
"1 MDN 1 2011 2009 0.342330 0.023511 0.216721 0.417438 241.814622 \n",
"2 MDN 1 2012 2010 0.246905 0.022182 0.207982 0.522932 223.576552 \n",
"3 MDN 1 2013 2011 0.244829 0.021192 0.236435 0.497544 200.192769 \n",
"4 MDN 1 2014 2012 0.204420 0.019323 0.220055 0.556201 233.224559 \n",
"5 MDN 1 2015 2013 0.223055 0.016960 0.215613 0.544373 219.210132 \n",
"6 MDN 1 2016 2014 0.250691 0.018841 0.205249 0.525219 233.080919 \n",
"7 MDN 1 2017 2015 0.237338 0.014619 0.188878 0.559165 225.819836 \n",
"8 MDN 1 2018 2016 0.260092 0.019825 0.177982 0.542101 230.384014 \n",
"9 MDN 1 2019 2017 0.308484 0.027642 0.202029 0.461845 272.800330 \n",
"\n",
" dg_p ... sh_theta off_theta pk_pr dg_pr sh_pr off_pr \\\n",
"0 228.193293 ... 1.0 1.0 102.040969 0 0 0 \n",
"1 143.721361 ... 1.0 1.0 103.018564 0 0 0 \n",
"2 119.284856 ... 1.0 1.0 103.891211 0 0 0 \n",
"3 104.327737 ... 1.0 1.0 103.699741 0 0 0 \n",
"4 135.009161 ... 1.0 1.0 108.014962 0 0 0 \n",
"5 98.956611 ... 1.0 1.0 124.871152 0 0 0 \n",
"6 106.815616 ... 1.0 1.0 138.773448 0 0 0 \n",
"7 84.556454 ... 1.0 1.0 147.003834 0 0 0 \n",
"8 98.191994 ... 1.0 1.0 155.417791 0 0 0 \n",
"9 142.986996 ... 1.0 1.0 150.642525 0 0 0 \n",
"\n",
" pk_rev dg_rev sh_rev off_rev \n",
"0 14702371.94 0 0 0 \n",
"1 14460397.68 0 0 0 \n",
"2 14016131.77 0 0 0 \n",
"3 14291101.08 0 0 0 \n",
"4 15003145.65 0 0 0 \n",
"5 17044472.77 0 0 0 \n",
"6 19192288.28 0 0 0 \n",
"7 20373836.16 0 0 0 \n",
"8 22036337.84 0 0 0 \n",
"9 22082968.22 0 0 0 \n",
"\n",
"[10 rows x 82 columns]"
]
},
"execution_count": 79,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.head(10)"
]
},
{
"cell_type": "code",
"execution_count": 149,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"717127090.5\n",
"[ 4544238.781 372593.37 8584774.075 27529342.259]\n",
"157.810169108717\n"
]
}
],
"source": [
"year=2015\n",
"rcpd_n=ic_s\n",
"q_tou=data.loc[(data['m_yr']==year+1),['pk_q','dg_q','sh_q','off_q']]\n",
"Q_tou=np.array(q_tou.sum())\n",
"Q_ic_tou=np.multiply(Q_tou,rcpd_n)\n",
"Q_ic = np.sum(Q_ic_tou) \n",
"ic_p_update=np.multiply(np.divide(ac_ic,Q_ic),rcpd_n)\n",
"px1=np.array(data.loc[(data['m_yr']==year+1),['pk_px','dg_px','sh_px','off_px']])\n",
"p_update = np.add(px1,ic_p_update)\n",
"print(ac_ic)\n",
"# print(rcpd_n)\n",
"# print(q_tou)\n",
"print(Q_tou)\n",
"# print(Q_ic_tou)\n",
"# print(Q_ic)\n",
"# print(ic_p_update)\n",
"# print(ic_p_update)\n",
"print(ac_ic/Q_ic)\n",
"# print(px1)\n",
"# print(p_update)\n",
"\n",
"data.loc[(data['m_yr']==year+1),['pk_i','dg_i','sh_i','off_i']]=ic_p_update\n",
"data.loc[(data['m_yr']==year+1),['pk_p','dg_p','sh_p','off_p']]=p_update\n",
"\n",
"#print(data.loc[(data['m_yr']==year+1),['pk_i','dg_i','sh_i','off_i']])\n",
"#print(data.loc[(data['m_yr']==year+1),['pk_p','dg_p','sh_p','off_p']])\n",
"\n",
"\n",
"#data.loc[(data['m_yr']==year+1)]"
]
},
{
"cell_type": "code",
"execution_count": 834,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[1.0, 0.0, 0.0, 0.0]"
]
},
"execution_count": 834,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ic_s"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"# Function for updating RCPD interconnection/transmission charges - \n",
"# from expectations to \"actuals\" based on consumption (price component is forward looking)\n",
"\n",
"\n",
"# have checked this function. It takes the interconnect revenue for a particular year, divides it by peak MWH\n",
"# this gives a $/MWh for interconnect charges. This is allocated to all regions evenly (). it allocates to peak prices\n",
"# it doesn't affect prices at other times. \n",
"# The main dataframe is updated for that particular year. \n",
"# It is not clear to me why the code generates only one price per year for all nodes. Maybe because this is RCPD\n",
"# and this is the postage stamp. However, ic_p_update only has one price in it and the dataframe it is updateing\n",
"# has a price for each bb node which is presumably calculated using historic data. So this doesn't make sense to me. \n",
"#Doug\n",
"\n",
"\n",
"\n",
"def rcpd_ic_update(data, year, tp_rev=tp_rev, rcpd_n=ic_s):\n",
" ac_ic = np.asscalar(\n",
" tp_rev.loc[(tp_rev['m_yr'] == year +\n",
" 2), ['ac_ic']].values) # Interconnection charge\n",
" q_tou = data.loc[(data['m_yr'] == year + 1),\n",
" ['pk_q', 'dg_q', 'sh_q',\n",
" 'off_q']] # Market TOU quantities\n",
" Q_tou = np.array(q_tou.sum()) #Aggregate market quantities by TOU\n",
" Q_ic_tou = np.multiply(\n",
" Q_tou,\n",
" rcpd_n) #Adjust for shares of charges by TOU - default peak only\n",
" Q_ic = np.sum(Q_ic_tou)\n",
" ic_p_update = np.multiply(np.divide(ac_ic, Q_ic), rcpd_n)\n",
" #Get grid price - ex IC\n",
" px1 = np.array(data.loc[(data['m_yr'] == year +\n",
" 1), ['pk_px', 'dg_px', 'sh_px', 'off_px']])\n",
" #Add new IC price into the calculations\n",
" p_update = np.add(px1, ic_p_update)\n",
" #Add new prices back into dataframe\n",
" data.loc[(data['m_yr'] == year +\n",
" 1), ['pk_i', 'dg_i', 'sh_i', 'off_i']] = ic_p_update\n",
" data.loc[(data['m_yr'] == year +\n",
" 1), ['pk_p', 'dg_p', 'sh_p', 'off_p']] = p_update\n",
" return data"
]
},
{
"cell_type": "code",
"execution_count": 867,
"metadata": {},
"outputs": [],
"source": [
"c_ic = np.asscalar(\n",
" tp_rev.loc[(tp_rev['m_yr'] == year +\n",
" 2), ['ac_ic']].values) # Interconnection charge\n",
"q_tou = data.loc[(data['m_yr'] == year + 1),\n",
" ['pk_q', 'dg_q', 'sh_q',\n",
" 'off_q']] # Market TOU quantities\n",
"Q_tou = np.array(q_tou.sum()) #Aggregate market quantities by TOU\n",
"Q_ic_tou = np.multiply(\n",
" Q_tou,\n",
" rcpd_n) #Adjust for shares of charges by TOU - default peak only\n",
"Q_ic = np.sum(Q_ic_tou)\n",
"ic_p_update = np.multiply(np.divide(ac_ic, Q_ic), rcpd_n)\n",
"#Get grid price - ex IC\n",
"px1 = np.array(data.loc[(data['m_yr'] == year +\n",
" 1), ['pk_px', 'dg_px', 'sh_px', 'off_px']])\n",
"#Add new IC price into the calculations\n",
"p_update = np.add(px1, ic_p_update)\n",
"#Add new prices back into dataframe\n",
"data.loc[(data['m_yr'] == year +\n",
" 1), ['pk_i', 'dg_i', 'sh_i', 'off_i']] = ic_p_update\n",
"data.loc[(data['m_yr'] == year +\n",
" 1), ['pk_p', 'dg_p', 'sh_p', 'off_p']] = p_update"
]
},
{
"cell_type": "code",
"execution_count": 869,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([158.48481608, 0. , 0. , 0. ])"
]
},
"execution_count": 869,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ic_p_update"
]
},
{
"cell_type": "code",
"execution_count": 1306,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"717127090.5\n",
"157.810169108717\n",
"[ 4544238.781 372593.37 8584774.075 27529342.259]\n",
"4544238.781\n",
"[4544238.781 0. 0. 0. ]\n",
"[1.0, 0.0, 0.0, 0.0]\n"
]
},
{
"data": {
"text/plain": [
"4544238.781"
]
},
"execution_count": 1306,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ac_ic = np.asscalar(tp_rev.loc[(tp_rev['m_yr']==year+2),['ac_ic']].values)\n",
"q_tou=data.loc[(data['m_yr']==year+1),['pk_q','dg_q','sh_q','off_q']]\n",
"Q_tou=np.array(q_tou.sum()) #Aggregate market quantities by TOU\n",
"Q_ic_tou=np.multiply(Q_tou,rcpd_n) #Adjust for shares of charges by TOU - default peak only\n",
"Q_ic = np.sum(Q_ic_tou) \n",
"ic_pr_update=np.divide(ac_ic,Q_ic) \n",
"px1 = np.array(data.loc[(data['m_yr'] == year +1), ['pk_px', 'dg_px', 'sh_px', 'off_px']])\n",
"\n",
"print(ac_ic)\n",
"#print (q_tou)\n",
"print(ic_pr_update)\n",
"print(Q_tou)\n",
"print(Q_ic)\n",
"print(Q_ic_tou)\n",
"print(rcpd_n)\n",
"\n",
"Q_ic"
]
},
{
"cell_type": "code",
"execution_count": 1297,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" m_yr | \n",
" bb | \n",
" type | \n",
" pk_i | \n",
" dg_i | \n",
" sh_i | \n",
" off_i | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 2008 | \n",
" MDN | \n",
" 1 | \n",
" 101.194975 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 1 | \n",
" 2009 | \n",
" MDN | \n",
" 1 | \n",
" 98.093260 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 2 | \n",
" 2010 | \n",
" MDN | \n",
" 1 | \n",
" 104.291695 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 3 | \n",
" 2011 | \n",
" MDN | \n",
" 1 | \n",
" 95.865032 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 4 | \n",
" 2012 | \n",
" MDN | \n",
" 1 | \n",
" 98.215397 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 5 | \n",
" 2013 | \n",
" MDN | \n",
" 1 | \n",
" 120.253521 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 6 | \n",
" 2014 | \n",
" MDN | \n",
" 1 | \n",
" 126.265303 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 7 | \n",
" 2015 | \n",
" MDN | \n",
" 1 | \n",
" 141.263382 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 8 | \n",
" 2016 | \n",
" MDN | \n",
" 1 | \n",
" 132.192020 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 9 | \n",
" 2017 | \n",
" MDN | \n",
" 1 | \n",
" 129.813335 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 10 | \n",
" 2008 | \n",
" OTA | \n",
" 1 | \n",
" 111.064809 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 11 | \n",
" 2009 | \n",
" OTA | \n",
" 1 | \n",
" 106.258707 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 12 | \n",
" 2010 | \n",
" OTA | \n",
" 1 | \n",
" 106.224646 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 13 | \n",
" 2011 | \n",
" OTA | \n",
" 1 | \n",
" 102.657033 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 14 | \n",
" 2012 | \n",
" OTA | \n",
" 1 | \n",
" 106.820083 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 15 | \n",
" 2013 | \n",
" OTA | \n",
" 1 | \n",
" 140.407089 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 16 | \n",
" 2014 | \n",
" OTA | \n",
" 1 | \n",
" 135.947884 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 17 | \n",
" 2015 | \n",
" OTA | \n",
" 1 | \n",
" 155.825826 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 18 | \n",
" 2016 | \n",
" OTA | \n",
" 1 | \n",
" 150.069102 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 19 | \n",
" 2017 | \n",
" OTA | \n",
" 1 | \n",
" 139.225159 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 20 | \n",
" 2008 | \n",
" OTA | \n",
" 2 | \n",
" 103.228697 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 21 | \n",
" 2009 | \n",
" OTA | \n",
" 2 | \n",
" 91.460392 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 22 | \n",
" 2010 | \n",
" OTA | \n",
" 2 | \n",
" 63.773588 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 23 | \n",
" 2011 | \n",
" OTA | \n",
" 2 | \n",
" 76.465132 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 24 | \n",
" 2012 | \n",
" OTA | \n",
" 2 | \n",
" 102.549878 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 25 | \n",
" 2013 | \n",
" OTA | \n",
" 2 | \n",
" 114.589211 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 26 | \n",
" 2014 | \n",
" OTA | \n",
" 2 | \n",
" 126.720467 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 27 | \n",
" 2015 | \n",
" OTA | \n",
" 2 | \n",
" 131.065312 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 28 | \n",
" 2016 | \n",
" OTA | \n",
" 2 | \n",
" 114.602168 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 29 | \n",
" 2017 | \n",
" OTA | \n",
" 2 | \n",
" 79.403309 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 190 | \n",
" 2008 | \n",
" ROX | \n",
" 1 | \n",
" 69.542530 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 191 | \n",
" 2009 | \n",
" ROX | \n",
" 1 | \n",
" 20.111431 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 192 | \n",
" 2010 | \n",
" ROX | \n",
" 1 | \n",
" 69.425340 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 193 | \n",
" 2011 | \n",
" ROX | \n",
" 1 | \n",
" 19.679018 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 194 | \n",
" 2012 | \n",
" ROX | \n",
" 1 | \n",
" 105.930142 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 195 | \n",
" 2013 | \n",
" ROX | \n",
" 1 | \n",
" 126.440195 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 196 | \n",
" 2014 | \n",
" ROX | \n",
" 1 | \n",
" 65.469811 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 197 | \n",
" 2015 | \n",
" ROX | \n",
" 1 | \n",
" 152.093769 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 198 | \n",
" 2016 | \n",
" ROX | \n",
" 1 | \n",
" 142.675860 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 199 | \n",
" 2017 | \n",
" ROX | \n",
" 1 | \n",
" 113.015860 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 200 | \n",
" 2008 | \n",
" TWI | \n",
" 1 | \n",
" 74.297970 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 201 | \n",
" 2009 | \n",
" TWI | \n",
" 1 | \n",
" 20.147345 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 202 | \n",
" 2010 | \n",
" TWI | \n",
" 1 | \n",
" 73.353425 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 203 | \n",
" 2011 | \n",
" TWI | \n",
" 1 | \n",
" 18.899842 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 204 | \n",
" 2012 | \n",
" TWI | \n",
" 1 | \n",
" 95.877739 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 205 | \n",
" 2013 | \n",
" TWI | \n",
" 1 | \n",
" 121.552137 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 206 | \n",
" 2014 | \n",
" TWI | \n",
" 1 | \n",
" 76.909135 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 207 | \n",
" 2015 | \n",
" TWI | \n",
" 1 | \n",
" 144.270086 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 208 | \n",
" 2016 | \n",
" TWI | \n",
" 1 | \n",
" 148.992544 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 209 | \n",
" 2017 | \n",
" TWI | \n",
" 1 | \n",
" 145.908164 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 210 | \n",
" 2008 | \n",
" TWI | \n",
" 2 | \n",
" 75.389457 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 211 | \n",
" 2009 | \n",
" TWI | \n",
" 2 | \n",
" 15.341432 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 212 | \n",
" 2010 | \n",
" TWI | \n",
" 2 | \n",
" 70.824874 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 213 | \n",
" 2011 | \n",
" TWI | \n",
" 2 | \n",
" 12.563837 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 214 | \n",
" 2012 | \n",
" TWI | \n",
" 2 | \n",
" 92.528342 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 215 | \n",
" 2013 | \n",
" TWI | \n",
" 2 | \n",
" 121.707549 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 216 | \n",
" 2014 | \n",
" TWI | \n",
" 2 | \n",
" 75.093803 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 217 | \n",
" 2015 | \n",
" TWI | \n",
" 2 | \n",
" 125.700249 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 218 | \n",
" 2016 | \n",
" TWI | \n",
" 2 | \n",
" 126.387411 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 219 | \n",
" 2017 | \n",
" TWI | \n",
" 2 | \n",
" 127.857634 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
"
\n",
"
220 rows × 7 columns
\n",
"
"
],
"text/plain": [
" m_yr bb type pk_i dg_i sh_i off_i\n",
"0 2008 MDN 1 101.194975 0 0 0\n",
"1 2009 MDN 1 98.093260 0 0 0\n",
"2 2010 MDN 1 104.291695 0 0 0\n",
"3 2011 MDN 1 95.865032 0 0 0\n",
"4 2012 MDN 1 98.215397 0 0 0\n",
"5 2013 MDN 1 120.253521 0 0 0\n",
"6 2014 MDN 1 126.265303 0 0 0\n",
"7 2015 MDN 1 141.263382 0 0 0\n",
"8 2016 MDN 1 132.192020 0 0 0\n",
"9 2017 MDN 1 129.813335 0 0 0\n",
"10 2008 OTA 1 111.064809 0 0 0\n",
"11 2009 OTA 1 106.258707 0 0 0\n",
"12 2010 OTA 1 106.224646 0 0 0\n",
"13 2011 OTA 1 102.657033 0 0 0\n",
"14 2012 OTA 1 106.820083 0 0 0\n",
"15 2013 OTA 1 140.407089 0 0 0\n",
"16 2014 OTA 1 135.947884 0 0 0\n",
"17 2015 OTA 1 155.825826 0 0 0\n",
"18 2016 OTA 1 150.069102 0 0 0\n",
"19 2017 OTA 1 139.225159 0 0 0\n",
"20 2008 OTA 2 103.228697 0 0 0\n",
"21 2009 OTA 2 91.460392 0 0 0\n",
"22 2010 OTA 2 63.773588 0 0 0\n",
"23 2011 OTA 2 76.465132 0 0 0\n",
"24 2012 OTA 2 102.549878 0 0 0\n",
"25 2013 OTA 2 114.589211 0 0 0\n",
"26 2014 OTA 2 126.720467 0 0 0\n",
"27 2015 OTA 2 131.065312 0 0 0\n",
"28 2016 OTA 2 114.602168 0 0 0\n",
"29 2017 OTA 2 79.403309 0 0 0\n",
".. ... ... ... ... ... ... ...\n",
"190 2008 ROX 1 69.542530 0 0 0\n",
"191 2009 ROX 1 20.111431 0 0 0\n",
"192 2010 ROX 1 69.425340 0 0 0\n",
"193 2011 ROX 1 19.679018 0 0 0\n",
"194 2012 ROX 1 105.930142 0 0 0\n",
"195 2013 ROX 1 126.440195 0 0 0\n",
"196 2014 ROX 1 65.469811 0 0 0\n",
"197 2015 ROX 1 152.093769 0 0 0\n",
"198 2016 ROX 1 142.675860 0 0 0\n",
"199 2017 ROX 1 113.015860 0 0 0\n",
"200 2008 TWI 1 74.297970 0 0 0\n",
"201 2009 TWI 1 20.147345 0 0 0\n",
"202 2010 TWI 1 73.353425 0 0 0\n",
"203 2011 TWI 1 18.899842 0 0 0\n",
"204 2012 TWI 1 95.877739 0 0 0\n",
"205 2013 TWI 1 121.552137 0 0 0\n",
"206 2014 TWI 1 76.909135 0 0 0\n",
"207 2015 TWI 1 144.270086 0 0 0\n",
"208 2016 TWI 1 148.992544 0 0 0\n",
"209 2017 TWI 1 145.908164 0 0 0\n",
"210 2008 TWI 2 75.389457 0 0 0\n",
"211 2009 TWI 2 15.341432 0 0 0\n",
"212 2010 TWI 2 70.824874 0 0 0\n",
"213 2011 TWI 2 12.563837 0 0 0\n",
"214 2012 TWI 2 92.528342 0 0 0\n",
"215 2013 TWI 2 121.707549 0 0 0\n",
"216 2014 TWI 2 75.093803 0 0 0\n",
"217 2015 TWI 2 125.700249 0 0 0\n",
"218 2016 TWI 2 126.387411 0 0 0\n",
"219 2017 TWI 2 127.857634 0 0 0\n",
"\n",
"[220 rows x 7 columns]"
]
},
"execution_count": 1297,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data[['m_yr','bb','type','pk_i', 'dg_i', 'sh_i', 'off_i']]"
]
},
{
"cell_type": "code",
"execution_count": 180,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"157.810169108717"
]
},
"execution_count": 180,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ac_ic/Q_tou[0]"
]
},
{
"cell_type": "code",
"execution_count": 860,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[142.9869956 , 142.9869956 , 87.51277281, 59.39836854],\n",
" [137.5031164 , 137.5031164 , 83.89976492, 58.78023563],\n",
" [131.5892185 , 131.5892185 , 82.86606681, 56.1929616 ],\n",
" [130.0618036 , 130.0618036 , 80.93394831, 57.64557627],\n",
" [125.1394375 , 125.1394375 , 79.59626545, 54.55442993],\n",
" [124.4205488 , 124.4205488 , 77.73455822, 55.27048365],\n",
" [101.422641 , 101.422641 , 72.85830361, 52.20686852],\n",
" [122.7598795 , 122.7598795 , 76.73200656, 54.51184247],\n",
" [123.4674974 , 123.4674974 , 77.41476046, 55.37969405],\n",
" [110.0557931 , 110.0557931 , 76.34046277, 53.04390556],\n",
" [122.510615 , 122.510615 , 76.05471361, 54.67065502],\n",
" [115.8993122 , 115.8993122 , 74.30357087, 53.26018971],\n",
" [129.2963952 , 129.2963952 , 79.56758099, 56.32897839],\n",
" [117.2277506 , 117.2277506 , 76.5202847 , 53.49902842],\n",
" [134.3600803 , 134.3600803 , 81.44087612, 57.22816389],\n",
" [151.4447833 , 151.4447833 , 86.20724042, 61.80358813],\n",
" [140.3539104 , 140.3539104 , 80.79162761, 58.67503836],\n",
" [149.1884576 , 149.1884576 , 86.15987571, 60.87901898],\n",
" [132.2618011 , 132.2618011 , 78.1734691 , 54.71354774],\n",
" [133.1569536 , 133.1569536 , 79.71183002, 56.3113811 ],\n",
" [131.820316 , 131.820316 , 75.9715819 , 54.33576479],\n",
" [135.231789 , 135.231789 , 79.07293024, 55.35947358]])"
]
},
"execution_count": 860,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"px1"
]
},
{
"cell_type": "code",
"execution_count": 853,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[300.79716471, 142.9869956 , 87.51277281, 59.39836854],\n",
" [295.31328551, 137.5031164 , 83.89976492, 58.78023563],\n",
" [289.39938761, 131.5892185 , 82.86606681, 56.1929616 ],\n",
" [287.87197271, 130.0618036 , 80.93394831, 57.64557627],\n",
" [282.94960661, 125.1394375 , 79.59626545, 54.55442993],\n",
" [282.23071791, 124.4205488 , 77.73455822, 55.27048365],\n",
" [259.23281011, 101.422641 , 72.85830361, 52.20686852],\n",
" [280.57004861, 122.7598795 , 76.73200656, 54.51184247],\n",
" [281.27766651, 123.4674974 , 77.41476046, 55.37969405],\n",
" [267.86596221, 110.0557931 , 76.34046277, 53.04390556],\n",
" [280.32078411, 122.510615 , 76.05471361, 54.67065502],\n",
" [273.70948131, 115.8993122 , 74.30357087, 53.26018971],\n",
" [287.10656431, 129.2963952 , 79.56758099, 56.32897839],\n",
" [275.03791971, 117.2277506 , 76.5202847 , 53.49902842],\n",
" [292.17024941, 134.3600803 , 81.44087612, 57.22816389],\n",
" [309.25495241, 151.4447833 , 86.20724042, 61.80358813],\n",
" [298.16407951, 140.3539104 , 80.79162761, 58.67503836],\n",
" [306.99862671, 149.1884576 , 86.15987571, 60.87901898],\n",
" [290.07197021, 132.2618011 , 78.1734691 , 54.71354774],\n",
" [290.96712271, 133.1569536 , 79.71183002, 56.3113811 ],\n",
" [289.63048511, 131.820316 , 75.9715819 , 54.33576479],\n",
" [293.04195811, 135.231789 , 79.07293024, 55.35947358]])"
]
},
"execution_count": 853,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p_update = np.add(px1, ic_p_update)\n",
"p_update"
]
},
{
"cell_type": "code",
"execution_count": 861,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[300.79716471, 142.9869956 , 87.51277281, 59.39836854],\n",
" [295.31328551, 137.5031164 , 83.89976492, 58.78023563],\n",
" [289.39938761, 131.5892185 , 82.86606681, 56.1929616 ],\n",
" [287.87197271, 130.0618036 , 80.93394831, 57.64557627],\n",
" [282.94960661, 125.1394375 , 79.59626545, 54.55442993],\n",
" [282.23071791, 124.4205488 , 77.73455822, 55.27048365],\n",
" [259.23281011, 101.422641 , 72.85830361, 52.20686852],\n",
" [280.57004861, 122.7598795 , 76.73200656, 54.51184247],\n",
" [281.27766651, 123.4674974 , 77.41476046, 55.37969405],\n",
" [267.86596221, 110.0557931 , 76.34046277, 53.04390556],\n",
" [280.32078411, 122.510615 , 76.05471361, 54.67065502],\n",
" [273.70948131, 115.8993122 , 74.30357087, 53.26018971],\n",
" [287.10656431, 129.2963952 , 79.56758099, 56.32897839],\n",
" [275.03791971, 117.2277506 , 76.5202847 , 53.49902842],\n",
" [292.17024941, 134.3600803 , 81.44087612, 57.22816389],\n",
" [309.25495241, 151.4447833 , 86.20724042, 61.80358813],\n",
" [298.16407951, 140.3539104 , 80.79162761, 58.67503836],\n",
" [306.99862671, 149.1884576 , 86.15987571, 60.87901898],\n",
" [290.07197021, 132.2618011 , 78.1734691 , 54.71354774],\n",
" [290.96712271, 133.1569536 , 79.71183002, 56.3113811 ],\n",
" [289.63048511, 131.820316 , 75.9715819 , 54.33576479],\n",
" [293.04195811, 135.231789 , 79.07293024, 55.35947358]])"
]
},
"execution_count": 861,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.add(px1, ic_p_update)"
]
},
{
"cell_type": "code",
"execution_count": 862,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([157.81016911, 0. , 0. , 0. ])"
]
},
"execution_count": 862,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ic_p_update"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"# Function for updating RCPD revenue per MWh collected by Transpower in each measurement year\n",
"# this takes the amount of real revenue to be collected in the year, from forecast/actual revenue\n",
"# gets peak demand from the prior year and calculates prices \n",
"\n",
"# Only difference from above function is the year which q_tou is calculated, year instead of year+1. \n",
"# Otherwise it is the same. It also does not update the main data frame, it just returns the per MWh\n",
"# price for interconnection. \n",
"\n",
"def rcpd_rev_update(data,year,tp_rev=tp_rev,ic_s=ic_s,rcpd_n=ic_s):\n",
" ac_ic = np.asscalar(tp_rev.loc[(tp_rev['m_yr']==year+1),['ac_ic']].values) # Interconnection charge \n",
" q_tou=data.loc[(data['m_yr']==year),['pk_q','dg_q','sh_q','off_q']] # Market TOU quantities\n",
" Q_tou=np.array(q_tou.sum()) #Aggregate market quantities by TOU\n",
" Q_ic_tou=np.multiply(Q_tou,rcpd_n) #Adjust for shares of charges by TOU - default peak only\n",
" Q_ic = np.sum(Q_ic_tou) \n",
" ic_pr_update=np.divide(ac_ic,Q_ic) #New price\n",
" return ic_pr_update "
]
},
{
"cell_type": "code",
"execution_count": 871,
"metadata": {},
"outputs": [],
"source": [
"ac_ic = np.asscalar(tp_rev.loc[(tp_rev['m_yr']==year+1),['ac_ic']].values) # Interconnection charge \n",
"q_tou=data.loc[(data['m_yr']==year),['pk_q','dg_q','sh_q','off_q']] # Market TOU quantities\n",
"Q_tou=np.array(q_tou.sum()) #Aggregate market quantities by TOU\n",
"Q_ic_tou=np.multiply(Q_tou,rcpd_n) #Adjust for shares of charges by TOU - default peak only\n",
"Q_ic = np.sum(Q_ic_tou) \n",
"ic_pr_update=np.divide(ac_ic,Q_ic) #New price"
]
},
{
"cell_type": "code",
"execution_count": 872,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"157.810169108717"
]
},
"execution_count": 872,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ic_pr_update"
]
},
{
"cell_type": "code",
"execution_count": 878,
"metadata": {},
"outputs": [],
"source": [
"#tp_rev[['m_yr' , 'ac_ic']]\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# D. PROPOSAL PARAMETERS incl forecast revenue and shares of existing assets"
]
},
{
"cell_type": "code",
"execution_count": 1391,
"metadata": {},
"outputs": [],
"source": [
"# D.1 Residual revenue, calculated from a given year of AOB implementation\n",
"\n",
"# The first line takes total TP revenue for a year and multiplies it by a parameter r_s\n",
"# r_s is the share of TP rev not recovered by AoB\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"tp_rev[\"resid_rev\"] = 0 # Initialise residual revenue series, then get intial value:\n",
"rev0=np.asscalar(tp_rev.loc[(tp_rev['m_yr']==aob_yr),['totrev']].values)*r_s\n",
"unallocated = 160000000\n",
"# Revenue calculated as a function of gror and depreciation \n",
"tp_rev.loc[(tp_rev['m_yr']>=aob_yr),['resid_rev']]=unallocated + np.array(\n",
" [gror*(((rev0-unallocated)/gror)*(1-deprn)**i) \n",
" for i in range(tp_rev['m_yr'].max()-(aob_yr-1))])"
]
},
{
"cell_type": "code",
"execution_count": 1392,
"metadata": {},
"outputs": [],
"source": [
"#tp_rev.loc[(tp_rev['m_yr']>=aob_yr),['resid_rev']]"
]
},
{
"cell_type": "code",
"execution_count": 1393,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"715870458.8"
]
},
"execution_count": 1393,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rev0/r_s"
]
},
{
"cell_type": "code",
"execution_count": 1394,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.695"
]
},
"execution_count": 1394,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"r_s"
]
},
{
"cell_type": "code",
"execution_count": 1395,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2022"
]
},
"execution_count": 1395,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aob_yr"
]
},
{
"cell_type": "code",
"execution_count": 1396,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" p_yr | \n",
" m_yr | \n",
" ac_ic | \n",
" dc_ic | \n",
" ic_g | \n",
" dc_g | \n",
" totrev | \n",
" totrev_g | \n",
" base_capex | \n",
" major_capex | \n",
" resid_rev | \n",
"
\n",
" \n",
" \n",
" \n",
" 14 | \n",
" 2024 | \n",
" 2022 | \n",
" 6.234522e+08 | \n",
" 96271373.37 | \n",
" 0.993464 | \n",
" 0.97127 | \n",
" 715870458.8 | \n",
" 0.99042 | \n",
" 21215572.84 | \n",
" 1926548.132 | \n",
" 4.975300e+08 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" p_yr m_yr ac_ic dc_ic ic_g dc_g totrev \\\n",
"14 2024 2022 6.234522e+08 96271373.37 0.993464 0.97127 715870458.8 \n",
"\n",
" totrev_g base_capex major_capex resid_rev \n",
"14 0.99042 21215572.84 1926548.132 4.975300e+08 "
]
},
"execution_count": 1396,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tp_rev[(tp_rev['m_yr']==2022)]"
]
},
{
"cell_type": "code",
"execution_count": 1397,
"metadata": {},
"outputs": [],
"source": [
"# D.2 AOB revenue - pre approvals or major capex \n",
"tp_rev[\"aob_rev\"]=tp_rev[\"totrev\"]-tp_rev['resid_rev']\n",
"tp_rev.loc[(tp_rev['m_yr']\n",
"\n",
"\n",
" \n",
" \n",
" | \n",
" pk_q | \n",
" sh_q | \n",
" off_q | \n",
" pk_s_pt_mu | \n",
" sh_s_pt_mu | \n",
" off_s_pt_mu | \n",
" pk_ns_pt_mu | \n",
" sh_ns_pt_mu | \n",
" off_ns_pt_mu | \n",
" pk_pg | \n",
" sh_pg | \n",
" off_pg | \n",
" pk_theta | \n",
" sh_theta | \n",
" off_theta | \n",
" lce | \n",
"
\n",
" \n",
" \n",
" \n",
" 12 | \n",
" 1194459.817 | \n",
" 2022159.978 | \n",
" 5723124.948 | \n",
" 1.111301 | \n",
" 1.121337 | \n",
" 1.090349 | \n",
" 1.067274 | \n",
" 1.081621 | \n",
" 0.8506 | \n",
" 91.110773 | \n",
" 75.595875 | \n",
" 64.103242 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 0.999969 | \n",
" 6.380470e+07 | \n",
"
\n",
" \n",
"
\n",
""
],
"text/plain": [
" pk_q sh_q off_q pk_s_pt_mu sh_s_pt_mu \\\n",
"12 1194459.817 2022159.978 5723124.948 1.111301 1.121337 \n",
"\n",
" off_s_pt_mu pk_ns_pt_mu sh_ns_pt_mu off_ns_pt_mu pk_pg sh_pg \\\n",
"12 1.090349 1.067274 1.081621 0.8506 91.110773 75.595875 \n",
"\n",
" off_pg pk_theta sh_theta off_theta lce \n",
"12 64.103242 1.0 1.0 0.999969 6.380470e+07 "
]
},
"execution_count": 1136,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a.head()"
]
},
{
"cell_type": "code",
"execution_count": 1137,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"12 1.211273e+07\n",
"dtype: float64"
]
},
"execution_count": 1137,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a.pk_theta*(a.pk_q*(a.pk_s_pt_mu-1)*a.pk_pg)\n",
"\n",
"#price difference times Q times prob-so this is LCE for peak periods where there is scarcity. the rest of the\n",
"#function is just the converses, three TP types times scarce, not scarce. "
]
},
{
"cell_type": "code",
"execution_count": 1138,
"metadata": {},
"outputs": [],
"source": [
"a.loc[(a['lce']>0),['lce']]=0"
]
},
{
"cell_type": "code",
"execution_count": 1139,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"12 0.111301\n",
"Name: pk_s_pt_mu, dtype: float64"
]
},
"execution_count": 1139,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a.pk_s_pt_mu-1"
]
},
{
"cell_type": "code",
"execution_count": 1377,
"metadata": {},
"outputs": [],
"source": [
"## D.4 Calculate AOB initial charges/shares (for load) \n",
"# based on exist_s e.g. exist_ls (load share of benefits of existing assets)\n",
"# from the 2nd issues paper (not board paper cause those numbers not by location) \n",
"# Needs to be split between industrials and mass, which we do by LCE shares\n",
"\n",
"# (i) First find average benefits at stake for each type in each node - i.e. LCE\n",
"# [Creating later functions that calculate lce by choice of all periods]\n",
"#lce_hist = data.loc[:,['bb','type','m_yr','pk_q','sh_q','off_q','pk_pt','sh_pt','off_pt']]\n",
"#lce_hist['lce']=lce_hist.pk_q*lce_hist.pk_pt+lce_hist.sh_q*lce_hist.sh_pt+lce_hist.off_q*lce_hist.off_pt\n",
"#lce_hist.loc[(lce_hist['lce']<0),['lce']]=0 #Get rid of net negative benefits in a year\n",
"#lce_node_hist = lce_hist.groupby(['bb', 'type']).agg({'lce': 'sum'})\n",
"#lce_shares = lce_node_hist.groupby(level=0).apply(lambda x: x / float(x.sum())).reset_index()\n",
"#\n",
"## (ii) Then multiply LCE shares by shares of existing assets\n",
"#aob_s0=pd.merge(lce_shares,exist_s,on='bb',how='left')\n",
"#aob_s0['aob_s0']=aob_s0['lce']*aob_s0['exist_ls']\n",
"#aob_s0['bbtype']=aob_s0['bb']+aob_s0.type.map(str)\n",
"#aob_s0['aob_rev0']=np.asscalar(tp_rev.loc[(tp_rev['m_yr']==aob_yr),['aob_rev']].values)\n",
"#aob_s0['aob_rev0']=aob_s0['aob_rev0']*aob_s0['aob_s0']\n",
"#\n",
"## (iii) Generation values\n",
"#exist_s['type']=0\n",
"#exist_s['bbtype']=exist_s['bb']+exist_s.type.map(str)\n",
"#exist_s['aob_rev0']=np.asscalar(tp_rev.loc[(tp_rev['m_yr']==aob_yr),['aob_rev']].values)\n",
"#exist_s['aob_rev0_gen']=exist_s['aob_rev0']*exist_s['exist_gs']\n",
"#\n",
"#gen_aob_shr = exist_s.exist_gs.sum() # For allocations of AOB revenue in the demand model - if want a fixed amount\n",
"gen_aob_adj = 0.3333 #Assume area under generation offer curve that is 0.5 \n",
"\n",
"# (iv) Create a generic trasnport/lce cost function (returns costs as a positive number)\n",
"def lce(data=data,reg=\"OTA\",year=yr_0,ctype=1):\n",
" a = data.loc[(data['m_yr']==year)&(data['bb']==reg)&\n",
" (data['type']==ctype),['pk_q','sh_q','off_q','pk_s_pt_mu','sh_s_pt_mu','off_s_pt_mu',\n",
" 'pk_ns_pt_mu','sh_ns_pt_mu','off_ns_pt_mu','pk_pg','sh_pg','off_pg','pk_theta','sh_theta','off_theta']]\n",
" a['lce'] = (a.pk_theta*(a.pk_q*(a.pk_s_pt_mu-1)*a.pk_pg)+(1-a.pk_theta)*(a.pk_q*(a.pk_ns_pt_mu-1)*a.pk_pg)+ \n",
" a.sh_theta*(a.sh_q*(a.sh_s_pt_mu-1)*a.sh_pg)+(1-a.sh_theta)*(a.sh_q*(a.sh_ns_pt_mu-1)*a.sh_pg)+\n",
" a.off_theta*(a.off_q*(a.off_s_pt_mu-1)*a.off_pg)+(1-a.off_theta)*(a.off_q*(a.off_ns_pt_mu-1)*a.off_pg))\n",
" if ctype==0:\n",
" a.loc[(a['lce']>0),['lce']]=0\n",
" b = a.lce.sum()*(-1*gen_aob_adj)\n",
" else:\n",
" a.loc[(a['lce']<0),['lce']]=0\n",
" b = a.lce.sum()\n",
" return b\n",
"\n",
"\n",
"#lce(data=data_gen,reg=\"SFD\",year=2010,ctype=0) \n",
"\n",
"# (v) Lce share function - for load\n",
"\n",
"\n",
"#not used\n",
"\n",
"def lceshr_load(data=data,reg=\"OTA\",yr=yr_0,ctype=1): \n",
" a = data.loc[data['m_yr']==yr,['pk_q','sh_q','off_q','pk_pt','sh_pt','off_pt']]\n",
" a['lce'] = a.pk_q*a.pk_pt+a.sh_q*a.sh_pt+a.off_q*a.off_pt\n",
" a.loc[(a['lce']<0),['lce']]=0\n",
" b = a.lce.sum()\n",
" c=lce(data,reg=reg,yr=yr,ctype=ctype)\n",
" c[c<0]=0 #Only count positive benefits when calculating shares\n",
" d = np.asscalar(c/b)\n",
" return d\n",
"\n",
"\n",
"# (v) Lce benefit function \n",
"def lceshr(data=data,data_gen=data_gen,reg=\"OTA\",year=yr_0,ctype=1):\n",
" #All load\n",
" a = data.loc[data['m_yr']==year,['pk_q','sh_q','off_q','pk_s_pt_mu','sh_s_pt_mu','off_s_pt_mu',\n",
" 'pk_ns_pt_mu','sh_ns_pt_mu','off_ns_pt_mu','pk_pg','sh_pg','off_pg','pk_theta','sh_theta','off_theta']]\n",
" a['lce'] = (a.pk_theta*(a.pk_q*(a.pk_s_pt_mu-1)*a.pk_pg)+(1-a.pk_theta)*(a.pk_q*(a.pk_ns_pt_mu-1)*a.pk_pg)+ \n",
" a.sh_theta*(a.sh_q*(a.sh_s_pt_mu-1)*a.sh_pg)+(1-a.sh_theta)*(a.sh_q*(a.sh_ns_pt_mu-1)*a.sh_pg)+\n",
" a.off_theta*(a.off_q*(a.off_s_pt_mu-1)*a.off_pg)+(1-a.off_theta)*(a.off_q*(a.off_ns_pt_mu-1)*a.off_pg))\n",
" a.loc[(a['lce']<0),['lce']]=0\n",
" b = a.lce.sum()\n",
" #All Generation \n",
" c = data_gen.loc[data_gen['m_yr']==year,['pk_q','sh_q','off_q','pk_s_pt_mu','sh_s_pt_mu','off_s_pt_mu',\n",
" 'pk_ns_pt_mu','sh_ns_pt_mu','off_ns_pt_mu','pk_pg','sh_pg','off_pg','pk_theta','sh_theta','off_theta']]#generation\n",
" c['lce'] = (c.pk_theta*(c.pk_q*(c.pk_s_pt_mu-1)*c.pk_pg)+(1-c.pk_theta)*(c.pk_q*(c.pk_ns_pt_mu-1)*c.pk_pg)+ \n",
" c.sh_theta*(c.sh_q*(c.sh_s_pt_mu-1)*c.sh_pg)+(1-c.sh_theta)*(c.sh_q*(c.sh_ns_pt_mu-1)*c.sh_pg)+\n",
" c.off_theta*(c.off_q*(c.off_s_pt_mu-1)*c.off_pg)+(1-c.off_theta)*(c.off_q*(c.off_ns_pt_mu-1)*c.off_pg))\n",
" c['lce'] = c['lce']*(-1*gen_aob_adj) #Reverse sign and adjust value to account for area under offer curves \n",
" c.loc[(c['lce']<0),['lce']]=0\n",
" d=c.lce.sum()\n",
" e = d+b\n",
" #Numerator \n",
" if ctype==0:\n",
" f=lce(data_gen,reg=reg,year=year,ctype=ctype)\n",
" else:\n",
" f=lce(data,reg=reg,year=year,ctype=ctype)\n",
" if f.size==0:\n",
" g=0\n",
" else:\n",
" g = np.asscalar(f/e)\n",
" return g\n",
"\n",
"#for reg in reg_l: \n",
"# print(lceshr(data=df_aob,data_gen=gen_aob,reg=reg,year=2022,ctype=0))\n",
"#"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"data=data\n",
"reg=\"OTA\"\n",
"year=yr_0\n",
"ctype=1\n",
"\n",
"\n",
"a = data.loc[(data['m_yr']==year)&(data['bb']==reg)&\n",
" (data['type']==ctype),['pk_q','sh_q','off_q','pk_s_pt_mu','sh_s_pt_mu','off_s_pt_mu',\n",
" 'pk_ns_pt_mu','sh_ns_pt_mu','off_ns_pt_mu','pk_pg','sh_pg','off_pg','pk_theta','sh_theta','off_theta']]\n",
"\n",
"\n",
"a['lce'] = (a.pk_theta*(a.pk_q*(a.pk_s_pt_mu-1)*a.pk_pg)+(1-a.pk_theta)*(a.pk_q*(a.pk_ns_pt_mu-1)*a.pk_pg)+ \n",
" a.sh_theta*(a.sh_q*(a.sh_s_pt_mu-1)*a.sh_pg)+(1-a.sh_theta)*(a.sh_q*(a.sh_ns_pt_mu-1)*a.sh_pg)+\n",
" a.off_theta*(a.off_q*(a.off_s_pt_mu-1)*a.off_pg)+(1-a.off_theta)*(a.off_q*(a.off_ns_pt_mu-1)*a.off_pg))\n",
"if ctype==0:\n",
" a.loc[(a['lce']>0),['lce']]=0\n",
" b = a.lce.sum()*(-1*gen_aob_adj)\n",
"else:\n",
" a.loc[(a['lce']<0),['lce']]=0\n",
" b = a.lce.sum()\n",
"return b"
]
},
{
"cell_type": "code",
"execution_count": 1321,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"64603110.63079208"
]
},
"execution_count": 1321,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#lce\n",
"\n",
"data=data\n",
"reg=\"OTA\"\n",
"year=2017\n",
"ctype=1\n",
"\n",
"#gets some data\n",
"a = data.loc[(data['m_yr']==year)&(data['bb']==reg)&\n",
" (data['type']==ctype),['pk_q','sh_q','off_q','pk_s_pt_mu','sh_s_pt_mu','off_s_pt_mu',\n",
" 'pk_ns_pt_mu','sh_ns_pt_mu','off_ns_pt_mu','pk_pg','sh_pg','off_pg','pk_theta','sh_theta','off_theta']]\n",
"\n",
"#Makes the LCE calc which is an over complicated way of saying (p_gen-p_load)*quant for 2 scarcity scenarios\n",
"# and three TP types. \n",
"# in a loop it could do all nodes which is what is needed as AOB is allocated with LCE. \n",
"# Returns a single number for a year a node and a customer type\n",
"\n",
"a['lce'] = (a.pk_theta*(a.pk_q*(a.pk_s_pt_mu-1)*a.pk_pg)+(1-a.pk_theta)*(a.pk_q*(a.pk_ns_pt_mu-1)*a.pk_pg)+ \n",
" a.sh_theta*(a.sh_q*(a.sh_s_pt_mu-1)*a.sh_pg)+(1-a.sh_theta)*(a.sh_q*(a.sh_ns_pt_mu-1)*a.sh_pg)+\n",
" a.off_theta*(a.off_q*(a.off_s_pt_mu-1)*a.off_pg)+(1-a.off_theta)*(a.off_q*(a.off_ns_pt_mu-1)*a.off_pg))\n",
"\n",
"# sets ctype 0 LCE to zero if it is positive, then sets b equal to the product of LCE which must be less than or\n",
"#equal to zero\n",
"#0 generation\n",
"if ctype==0:\n",
" a.loc[(a['lce']>0),['lce']]=0\n",
" b = a.lce.sum()*(-1*gen_aob_adj)\n",
"\n",
"#sets ctype 1 LCE to zero if it is negative then sums\n",
" \n",
"else:\n",
" a.loc[(a['lce']<0),['lce']]=0\n",
" b = a.lce.sum()\n",
"\n",
"b"
]
},
{
"cell_type": "code",
"execution_count": 1320,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"19 6.460311e+07\n",
"Name: lce, dtype: float64"
]
},
"execution_count": 1320,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a['lce']"
]
},
{
"cell_type": "code",
"execution_count": 1410,
"metadata": {},
"outputs": [],
"source": [
"def lce(data=data,reg=\"OTA\",year=yr_0,ctype=1):\n",
" a = data.loc[(data['m_yr']==year)&(data['bb']==reg)&\n",
" (data['type']==ctype),['pk_q','sh_q','off_q','pk_s_pt_mu','sh_s_pt_mu','off_s_pt_mu',\n",
" 'pk_ns_pt_mu','sh_ns_pt_mu','off_ns_pt_mu','pk_pg','sh_pg','off_pg','pk_theta','sh_theta','off_theta']]\n",
" a['lce'] = (a.pk_theta*(a.pk_q*(a.pk_s_pt_mu-1)*a.pk_pg)+(1-a.pk_theta)*(a.pk_q*(a.pk_ns_pt_mu-1)*a.pk_pg)+ \n",
" a.sh_theta*(a.sh_q*(a.sh_s_pt_mu-1)*a.sh_pg)+(1-a.sh_theta)*(a.sh_q*(a.sh_ns_pt_mu-1)*a.sh_pg)+\n",
" a.off_theta*(a.off_q*(a.off_s_pt_mu-1)*a.off_pg)+(1-a.off_theta)*(a.off_q*(a.off_ns_pt_mu-1)*a.off_pg))\n",
" if ctype==0:\n",
" a.loc[(a['lce']>0),['lce']]=0\n",
" b = a.lce.sum()*(-1*gen_aob_adj)\n",
" else:\n",
" a.loc[(a['lce']<0),['lce']]=0\n",
" b = a.lce.sum()\n",
" return b"
]
},
{
"cell_type": "code",
"execution_count": 1559,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"64603110.63079208"
]
},
"execution_count": 1559,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data=data\n",
"reg=\"OTA\"\n",
"year=yr_0\n",
"ctype=1\n",
"\n",
"a = data.loc[(data['m_yr']==year)&(data['bb']==reg)&\n",
" (data['type']==ctype),['pk_q','sh_q','off_q','pk_s_pt_mu','sh_s_pt_mu','off_s_pt_mu',\n",
" 'pk_ns_pt_mu','sh_ns_pt_mu','off_ns_pt_mu','pk_pg','sh_pg','off_pg','pk_theta','sh_theta','off_theta']]\n",
"a['lce'] = (a.pk_theta*(a.pk_q*(a.pk_s_pt_mu-1)*a.pk_pg)+(1-a.pk_theta)*(a.pk_q*(a.pk_ns_pt_mu-1)*a.pk_pg)+ \n",
" a.sh_theta*(a.sh_q*(a.sh_s_pt_mu-1)*a.sh_pg)+(1-a.sh_theta)*(a.sh_q*(a.sh_ns_pt_mu-1)*a.sh_pg)+\n",
" a.off_theta*(a.off_q*(a.off_s_pt_mu-1)*a.off_pg)+(1-a.off_theta)*(a.off_q*(a.off_ns_pt_mu-1)*a.off_pg))\n",
"if ctype==0:\n",
" a.loc[(a['lce']>0),['lce']]=0\n",
" b = a.lce.sum()*(-1*gen_aob_adj)\n",
"else:\n",
" a.loc[(a['lce']<0),['lce']]=0\n",
" b = a.lce.sum()\n",
"b"
]
},
{
"cell_type": "code",
"execution_count": 1560,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" pk_q | \n",
" sh_q | \n",
" off_q | \n",
" pk_s_pt_mu | \n",
" sh_s_pt_mu | \n",
" off_s_pt_mu | \n",
" pk_ns_pt_mu | \n",
" sh_ns_pt_mu | \n",
" off_ns_pt_mu | \n",
" pk_pg | \n",
" sh_pg | \n",
" off_pg | \n",
" pk_theta | \n",
" sh_theta | \n",
" off_theta | \n",
" lce | \n",
"
\n",
" \n",
" \n",
" \n",
" 19 | \n",
" 1180527.262 | \n",
" 1998874.563 | \n",
" 5840465.686 | \n",
" 1.111301 | \n",
" 1.121337 | \n",
" 1.090349 | \n",
" 1.067274 | \n",
" 1.081621 | \n",
" 0.8506 | \n",
" 131.550025 | \n",
" 77.526802 | \n",
" 54.043133 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 0.999969 | \n",
" 6.460311e+07 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" pk_q sh_q off_q pk_s_pt_mu sh_s_pt_mu \\\n",
"19 1180527.262 1998874.563 5840465.686 1.111301 1.121337 \n",
"\n",
" off_s_pt_mu pk_ns_pt_mu sh_ns_pt_mu off_ns_pt_mu pk_pg \\\n",
"19 1.090349 1.067274 1.081621 0.8506 131.550025 \n",
"\n",
" sh_pg off_pg pk_theta sh_theta off_theta lce \n",
"19 77.526802 54.043133 1.0 1.0 0.999969 6.460311e+07 "
]
},
"execution_count": 1560,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a"
]
},
{
"cell_type": "code",
"execution_count": 1383,
"metadata": {},
"outputs": [
{
"ename": "TypeError",
"evalue": "'numpy.float64' object does not support item assignment",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 17\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 18\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 19\u001b[0;31m \u001b[0mc\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m<\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0\u001b[0m \u001b[0;31m#Only count positive benefits when calculating shares\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 20\u001b[0m \u001b[0;31m# d = np.asscalar(c/b)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 21\u001b[0m \u001b[0;31m# d\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mTypeError\u001b[0m: 'numpy.float64' object does not support item assignment"
]
}
],
"source": [
"#Not used lce_load\n",
"\n",
"\n",
"data=data\n",
"reg=\"OTA\"\n",
"yr=2017\n",
"ctype=1 \n",
" \n",
" \n",
"a = data.loc[data['m_yr']==yr,['pk_q','sh_q','off_q','pk_pt','sh_pt','off_pt']]\n",
"a['lce'] = a.pk_q*a.pk_pt+a.sh_q*a.sh_pt+a.off_q*a.off_pt\n",
"a.loc[(a['lce']<0),['lce']]=0\n",
"b = a.lce.sum()\n",
"c=lce(data,reg=reg,year=2017,ctype=ctype)\n",
"\n",
"#Not sure what happens here as lce returns just a number but this function is expecting a dataframe. \n",
"\n",
"\n",
"c[c<0]=0 #Only count positive benefits when calculating shares\n",
"# d = np.asscalar(c/b)\n",
"# d "
]
},
{
"cell_type": "code",
"execution_count": 1382,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"64603110.63079208"
]
},
"execution_count": 1382,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"c"
]
},
{
"cell_type": "code",
"execution_count": 1563,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.37008787687917494"
]
},
"execution_count": 1563,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#XXXWriteIntoSpreadshee\n",
"\n",
"\n",
"#lceshr\n",
"\n",
"gen_aob_adj = 0.3333\n",
"data=data\n",
"data_gen=data_gen\n",
"reg=\"OTA\"\n",
"year=2012\n",
"ctype=1\n",
" #All load\n",
" \n",
"#gets a data frame using some data from data, all BB and both c types all TP types\n",
"a = data.loc[data['m_yr']==year,['bb','m_yr','type','pk_q','sh_q','off_q','pk_s_pt_mu','sh_s_pt_mu','off_s_pt_mu',\n",
" 'pk_ns_pt_mu','sh_ns_pt_mu','off_ns_pt_mu','pk_pg','sh_pg','off_pg','pk_theta','sh_theta','off_theta']]\n",
"#Calculates LCE for scarce and not scarce periods. \n",
"# this is probability\n",
"# times quantity times price difference (calculated from the price ratio)\n",
"# all for each TP type\n",
"a['lce'] = (a.pk_theta*(a.pk_q*(a.pk_s_pt_mu-1)*a.pk_pg)+(1-a.pk_theta)*(a.pk_q*(a.pk_ns_pt_mu-1)*a.pk_pg)+ \n",
" a.sh_theta*(a.sh_q*(a.sh_s_pt_mu-1)*a.sh_pg)+(1-a.sh_theta)*(a.sh_q*(a.sh_ns_pt_mu-1)*a.sh_pg)+\n",
" a.off_theta*(a.off_q*(a.off_s_pt_mu-1)*a.off_pg)+(1-a.off_theta)*(a.off_q*(a.off_ns_pt_mu-1)*a.off_pg))\n",
"#makes sure no negative LCE\n",
"a.loc[(a['lce']<0),['lce']]=0\n",
"#sums the LCE for the year and for all nodes/both types\n",
"b = a.lce.sum()\n",
"# #All Generation \n",
"#same calc as above from different data\n",
"c = data_gen.loc[data_gen['m_yr']==year,['pk_q','sh_q','off_q','pk_s_pt_mu','sh_s_pt_mu','off_s_pt_mu',\n",
" 'pk_ns_pt_mu','sh_ns_pt_mu','off_ns_pt_mu','pk_pg','sh_pg','off_pg','pk_theta','sh_theta','off_theta']]#generation\n",
"c['lce'] = (c.pk_theta*(c.pk_q*(c.pk_s_pt_mu-1)*c.pk_pg)+(1-c.pk_theta)*(c.pk_q*(c.pk_ns_pt_mu-1)*c.pk_pg)+ \n",
" c.sh_theta*(c.sh_q*(c.sh_s_pt_mu-1)*c.sh_pg)+(1-c.sh_theta)*(c.sh_q*(c.sh_ns_pt_mu-1)*c.sh_pg)+\n",
" c.off_theta*(c.off_q*(c.off_s_pt_mu-1)*c.off_pg)+(1-c.off_theta)*(c.off_q*(c.off_ns_pt_mu-1)*c.off_pg))\n",
"\n",
"c['lce'] = c['lce']*(-1*gen_aob_adj) #Reverse sign and adjust value to account for area under offer curves \n",
"#removes negative LCE\n",
"c.loc[(c['lce']<0),['lce']]=0\n",
"#sums it up\n",
"d=c.lce.sum()\n",
"#adds it up\n",
"e = d+b\n",
" #Numerator \n",
"#gets LCE for a node year and c type. uses different data for different C type... \n",
"#not sure what the difference between the dataframes is... Thought c type\n",
"if ctype==0:\n",
" f=lce(data_gen,reg=reg,year=year,ctype=ctype)\n",
"else:\n",
" f=lce(data,reg=reg,year=year,ctype=ctype)\n",
"\n",
" \n",
"#Get rid of empty results \n",
"if f.size==0:\n",
" g=0\n",
"else:\n",
" #calculate a ratio. \n",
" #e is all LCE and f is the node specific lce from the lce function...\n",
" g = np.asscalar(f/e)\n",
"g"
]
},
{
"cell_type": "code",
"execution_count": 1570,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.37008787687917494"
]
},
"execution_count": 1570,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"g"
]
},
{
"cell_type": "code",
"execution_count": 1315,
"metadata": {},
"outputs": [],
"source": [
"c = data_gen.loc[data_gen['m_yr']==year,['pk_q','sh_q','off_q','pk_s_pt_mu','sh_s_pt_mu','off_s_pt_mu',\n",
" 'pk_ns_pt_mu','sh_ns_pt_mu','off_ns_pt_mu','pk_pg','sh_pg','off_pg','pk_theta','sh_theta','off_theta']]#generation\n",
"c['lce'] = (c.pk_theta*(c.pk_q*(c.pk_s_pt_mu-1)*c.pk_pg)+(1-c.pk_theta)*(c.pk_q*(c.pk_ns_pt_mu-1)*c.pk_pg)+ \n",
" c.sh_theta*(c.sh_q*(c.sh_s_pt_mu-1)*c.sh_pg)+(1-c.sh_theta)*(c.sh_q*(c.sh_ns_pt_mu-1)*c.sh_pg)+\n",
" c.off_theta*(c.off_q*(c.off_s_pt_mu-1)*c.off_pg)+(1-c.off_theta)*(c.off_q*(c.off_ns_pt_mu-1)*c.off_pg))\n",
"\n",
"c['lce'] = c['lce']*(-1*gen_aob_adj)\n",
"c.loc[(c['lce']<0),['lce']]=0\n",
"d=c.lce.sum()"
]
},
{
"cell_type": "code",
"execution_count": 1316,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"27255008.69479385"
]
},
"execution_count": 1316,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"d"
]
},
{
"cell_type": "code",
"execution_count": 1207,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" bb | \n",
" type | \n",
" p_yr | \n",
" m_yr | \n",
" pk_s | \n",
" dg_s | \n",
" sh_s | \n",
" off_s | \n",
" pk_p | \n",
" dg_p | \n",
" ... | \n",
" off_theta | \n",
" srmc | \n",
" pk_pr | \n",
" dg_pr | \n",
" sh_pr | \n",
" off_pr | \n",
" pk_rev | \n",
" dg_rev | \n",
" sh_rev | \n",
" off_rev | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" HLY | \n",
" 0 | \n",
" 2010 | \n",
" 2008 | \n",
" 0.180993 | \n",
" 0 | \n",
" 0.229458 | \n",
" 0.589549 | \n",
" 227.286022 | \n",
" 227.286022 | \n",
" ... | \n",
" 0.004359 | \n",
" 73.172167 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
"
\n",
" \n",
" 1 | \n",
" HLY | \n",
" 0 | \n",
" 2011 | \n",
" 2009 | \n",
" 0.265497 | \n",
" 0 | \n",
" 0.250811 | \n",
" 0.483692 | \n",
" 124.415054 | \n",
" 124.415054 | \n",
" ... | \n",
" 0.004359 | \n",
" 73.172167 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
"
\n",
" \n",
" 2 | \n",
" HLY | \n",
" 0 | \n",
" 2012 | \n",
" 2010 | \n",
" 0.156696 | \n",
" 0 | \n",
" 0.229997 | \n",
" 0.613307 | \n",
" 101.997249 | \n",
" 101.997249 | \n",
" ... | \n",
" 0.004359 | \n",
" 73.172167 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
"
\n",
" \n",
" 3 | \n",
" HLY | \n",
" 0 | \n",
" 2013 | \n",
" 2011 | \n",
" 0.165332 | \n",
" 0 | \n",
" 0.220481 | \n",
" 0.614186 | \n",
" 95.144030 | \n",
" 95.144030 | \n",
" ... | \n",
" 0.004359 | \n",
" 73.172167 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
"
\n",
" \n",
" 4 | \n",
" HLY | \n",
" 0 | \n",
" 2014 | \n",
" 2012 | \n",
" 0.163924 | \n",
" 0 | \n",
" 0.238337 | \n",
" 0.597739 | \n",
" 119.442274 | \n",
" 119.442274 | \n",
" ... | \n",
" 0.004359 | \n",
" 73.172167 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
"
\n",
" \n",
"
\n",
"
5 rows × 83 columns
\n",
"
"
],
"text/plain": [
" bb type p_yr m_yr pk_s dg_s sh_s off_s pk_p \\\n",
"0 HLY 0 2010 2008 0.180993 0 0.229458 0.589549 227.286022 \n",
"1 HLY 0 2011 2009 0.265497 0 0.250811 0.483692 124.415054 \n",
"2 HLY 0 2012 2010 0.156696 0 0.229997 0.613307 101.997249 \n",
"3 HLY 0 2013 2011 0.165332 0 0.220481 0.614186 95.144030 \n",
"4 HLY 0 2014 2012 0.163924 0 0.238337 0.597739 119.442274 \n",
"\n",
" dg_p ... off_theta srmc pk_pr dg_pr sh_pr off_pr \\\n",
"0 227.286022 ... 0.004359 73.172167 0.0 0.0 0.0 0.0 \n",
"1 124.415054 ... 0.004359 73.172167 0.0 0.0 0.0 0.0 \n",
"2 101.997249 ... 0.004359 73.172167 0.0 0.0 0.0 0.0 \n",
"3 95.144030 ... 0.004359 73.172167 0.0 0.0 0.0 0.0 \n",
"4 119.442274 ... 0.004359 73.172167 0.0 0.0 0.0 0.0 \n",
"\n",
" pk_rev dg_rev sh_rev off_rev \n",
"0 0.0 0.0 0.0 0.0 \n",
"1 0.0 0.0 0.0 0.0 \n",
"2 0.0 0.0 0.0 0.0 \n",
"3 0.0 0.0 0.0 0.0 \n",
"4 0.0 0.0 0.0 0.0 \n",
"\n",
"[5 rows x 83 columns]"
]
},
"execution_count": 1207,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data_gen.head()"
]
},
{
"cell_type": "code",
"execution_count": 1101,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" p_yr | \n",
" m_yr | \n",
" ac_ic | \n",
" dc_ic | \n",
" ic_g | \n",
" dc_g | \n",
" totrev | \n",
" totrev_g | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 2010 | \n",
" 2008 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" 1 | \n",
" 2011 | \n",
" 2009 | \n",
" 492627703.1 | \n",
" 1.008221e+08 | \n",
" NaN | \n",
" NaN | \n",
" 593449775.7 | \n",
" NaN | \n",
"
\n",
" \n",
" 2 | \n",
" 2012 | \n",
" 2010 | \n",
" 492881211.6 | \n",
" 9.681609e+07 | \n",
" 1.000515 | \n",
" 0.960267 | \n",
" 589697305.7 | \n",
" 0.993677 | \n",
"
\n",
" \n",
" 3 | \n",
" 2013 | \n",
" 2011 | \n",
" 500805092.2 | \n",
" 1.150981e+08 | \n",
" 1.016077 | \n",
" 1.188833 | \n",
" 615903233.1 | \n",
" 1.044440 | \n",
"
\n",
" \n",
" 4 | \n",
" 2014 | \n",
" 2012 | \n",
" 561302926.3 | \n",
" 1.402350e+08 | \n",
" 1.120801 | \n",
" 1.218395 | \n",
" 701537909.5 | \n",
" 1.139039 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" p_yr m_yr ac_ic dc_ic ic_g dc_g totrev \\\n",
"0 2010 2008 NaN NaN NaN NaN NaN \n",
"1 2011 2009 492627703.1 1.008221e+08 NaN NaN 593449775.7 \n",
"2 2012 2010 492881211.6 9.681609e+07 1.000515 0.960267 589697305.7 \n",
"3 2013 2011 500805092.2 1.150981e+08 1.016077 1.188833 615903233.1 \n",
"4 2014 2012 561302926.3 1.402350e+08 1.120801 1.218395 701537909.5 \n",
"\n",
" totrev_g \n",
"0 NaN \n",
"1 NaN \n",
"2 0.993677 \n",
"3 1.044440 \n",
"4 1.139039 "
]
},
"execution_count": 1101,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tp_rev.head()"
]
},
{
"cell_type": "code",
"execution_count": 1484,
"metadata": {
"scrolled": false
},
"outputs": [],
"source": [
"# D.4 Create an AoB account and a revenue account - for convenience\n",
"# Columns that indicate node + type\n",
"cols=['p_yr','m_yr']+[s + str(1) for s in reg_l]+[s + str(2) for s in ind_l]+[s + str(0) for s in reg_l]\n",
"\n",
"# AOB account\n",
"initial_aob['aob_rev0']=np.asscalar(tp_rev.loc[(tp_rev['m_yr']==aob_yr),['aob_rev']].values)*initial_aob.aob_s0 \n",
"cols=['p_yr','m_yr']+[s + str(1) for s in reg_l]+[s + str(2) for s in ind_l]+[s + str(0) for s in reg_l]\n",
"aob_accnt=pd.DataFrame(columns=cols)\n",
"aob_accnt['m_yr']=tp_rev['m_yr']\n",
"aob_accnt['p_yr']=tp_rev['p_yr']\n",
"aob_accnt=aob_accnt.fillna(0)\n",
"load_cols=[s + str(1) for s in reg_l]+[s + str(2) for s in ind_l]\n",
"gen_cols = [s + str(0) for s in reg_l]\n",
"\n",
"for i in load_cols:\n",
" #aob_accnt.loc[aob_accnt['m_yr']==aob_yr,[i]]=aob_s0.loc[aob_s0['bbtype']==i,['aob_rev0']].values\n",
" aob_accnt.loc[aob_accnt['m_yr']==aob_yr,[i]]=initial_aob.loc[initial_aob['bbtype']==i,['aob_rev0']].values\n",
"for i in gen_cols:\n",
" #aob_accnt.loc[aob_accnt['m_yr']==aob_yr,[i]]=exist_s.loc[exist_s['bbtype']==i,['aob_rev0_gen']].values\n",
" aob_accnt.loc[aob_accnt['m_yr']==aob_yr,[i]]=initial_aob.loc[initial_aob['bbtype']==i,['aob_rev0']].values"
]
},
{
"cell_type": "code",
"execution_count": 1634,
"metadata": {},
"outputs": [],
"source": [
"# D.5 Initialise an AMD function - allowing for periodic resets \n",
"# This allocation assumes industrial consumers pay based on Offtake (net) and \n",
"# mass market pay for load (gross)\n",
"def amdshr_f(data=data,window=5,gross=1):\n",
" amd0=data.loc[:,['p_yr','m_yr','bb','type']]\n",
" amd0['Load']=data.pk_q+data.dg_q\n",
" amd0['Offtake']=data.loc[:,['pk_q']]\n",
" amd0['Offtake']=data.loc[:,['pk_q']]\n",
" amd0['AMDvol_t']=np.where(amd0['type']==1, amd0['Load'],amd0['Offtake'])\n",
" amd0['AMDvol']=amd0.groupby(['bb','type']).AMDvol_t.apply(lambda x: x.rolling(window=window).sum()).values\n",
" amd0['AMDvol_tot'] = amd0['AMDvol'].groupby(amd0['m_yr']).transform('sum')\n",
" amd0['AMDshr']=amd0.AMDvol/amd0.AMDvol_tot\n",
"\n",
" return amd0 \n",
"\n",
"#Set initial value for AMD share\n",
"amdshr=amdshr_f()"
]
},
{
"cell_type": "code",
"execution_count": 1635,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" p_yr | \n",
" m_yr | \n",
" bb | \n",
" type | \n",
" Load | \n",
" Offtake | \n",
" AMDvol_t | \n",
" AMDvol | \n",
" AMDvol_tot | \n",
" AMDshr | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 2010 | \n",
" 2008 | \n",
" MDN | \n",
" 1 | \n",
" 1.558805e+05 | \n",
" 144083.029 | \n",
" 1.558805e+05 | \n",
" NaN | \n",
" 0.000000e+00 | \n",
" NaN | \n",
"
\n",
" \n",
" 1 | \n",
" 2011 | \n",
" 2009 | \n",
" MDN | \n",
" 1 | \n",
" 1.577338e+05 | \n",
" 140366.912 | \n",
" 1.577338e+05 | \n",
" NaN | \n",
" 0.000000e+00 | \n",
" NaN | \n",
"
\n",
" \n",
" 2 | \n",
" 2012 | \n",
" 2010 | \n",
" MDN | \n",
" 1 | \n",
" 1.573033e+05 | \n",
" 134911.622 | \n",
" 1.573033e+05 | \n",
" NaN | \n",
" 0.000000e+00 | \n",
" NaN | \n",
"
\n",
" \n",
" 3 | \n",
" 2013 | \n",
" 2011 | \n",
" MDN | \n",
" 1 | \n",
" 1.606188e+05 | \n",
" 137812.312 | \n",
" 1.606188e+05 | \n",
" NaN | \n",
" 0.000000e+00 | \n",
" NaN | \n",
"
\n",
" \n",
" 4 | \n",
" 2014 | \n",
" 2012 | \n",
" MDN | \n",
" 1 | \n",
" 1.615703e+05 | \n",
" 138898.772 | \n",
" 1.615703e+05 | \n",
" 7.931067e+05 | \n",
" 2.493535e+07 | \n",
" 0.031807 | \n",
"
\n",
" \n",
" 5 | \n",
" 2015 | \n",
" 2013 | \n",
" MDN | \n",
" 1 | \n",
" 1.594903e+05 | \n",
" 136496.480 | \n",
" 1.594903e+05 | \n",
" 7.967164e+05 | \n",
" 2.465271e+07 | \n",
" 0.032318 | \n",
"
\n",
" \n",
" 6 | \n",
" 2016 | \n",
" 2014 | \n",
" MDN | \n",
" 1 | \n",
" 1.608143e+05 | \n",
" 138299.427 | \n",
" 1.608143e+05 | \n",
" 7.997970e+05 | \n",
" 2.446266e+07 | \n",
" 0.032695 | \n",
"
\n",
" \n",
" 7 | \n",
" 2017 | \n",
" 2015 | \n",
" MDN | \n",
" 1 | \n",
" 1.610786e+05 | \n",
" 138593.910 | \n",
" 1.610786e+05 | \n",
" 8.035723e+05 | \n",
" 2.442513e+07 | \n",
" 0.032899 | \n",
"
\n",
" \n",
" 8 | \n",
" 2018 | \n",
" 2016 | \n",
" MDN | \n",
" 1 | \n",
" 1.662916e+05 | \n",
" 141787.743 | \n",
" 1.662916e+05 | \n",
" 8.092452e+05 | \n",
" 2.429747e+07 | \n",
" 0.033306 | \n",
"
\n",
" \n",
" 9 | \n",
" 2019 | \n",
" 2017 | \n",
" MDN | \n",
" 1 | \n",
" 1.706945e+05 | \n",
" 146591.862 | \n",
" 1.706945e+05 | \n",
" 8.183694e+05 | \n",
" 2.425592e+07 | \n",
" 0.033739 | \n",
"
\n",
" \n",
" 10 | \n",
" 2010 | \n",
" 2008 | \n",
" OTA | \n",
" 1 | \n",
" 1.207333e+06 | \n",
" 1183840.102 | \n",
" 1.207333e+06 | \n",
" NaN | \n",
" 0.000000e+00 | \n",
" NaN | \n",
"
\n",
" \n",
" 11 | \n",
" 2011 | \n",
" 2009 | \n",
" OTA | \n",
" 1 | \n",
" 1.230646e+06 | \n",
" 1219108.248 | \n",
" 1.230646e+06 | \n",
" NaN | \n",
" 0.000000e+00 | \n",
" NaN | \n",
"
\n",
" \n",
" 12 | \n",
" 2012 | \n",
" 2010 | \n",
" OTA | \n",
" 1 | \n",
" 1.207086e+06 | \n",
" 1194459.817 | \n",
" 1.207086e+06 | \n",
" NaN | \n",
" 0.000000e+00 | \n",
" NaN | \n",
"
\n",
" \n",
" 13 | \n",
" 2013 | \n",
" 2011 | \n",
" OTA | \n",
" 1 | \n",
" 1.224309e+06 | \n",
" 1210772.119 | \n",
" 1.224309e+06 | \n",
" NaN | \n",
" 0.000000e+00 | \n",
" NaN | \n",
"
\n",
" \n",
" 14 | \n",
" 2014 | \n",
" 2012 | \n",
" OTA | \n",
" 1 | \n",
" 1.219633e+06 | \n",
" 1205481.349 | \n",
" 1.219633e+06 | \n",
" 6.089006e+06 | \n",
" 2.493535e+07 | \n",
" 0.244192 | \n",
"
\n",
" \n",
" 15 | \n",
" 2015 | \n",
" 2013 | \n",
" OTA | \n",
" 1 | \n",
" 1.210206e+06 | \n",
" 1198370.529 | \n",
" 1.210206e+06 | \n",
" 6.091880e+06 | \n",
" 2.465271e+07 | \n",
" 0.247108 | \n",
"
\n",
" \n",
" 16 | \n",
" 2016 | \n",
" 2014 | \n",
" OTA | \n",
" 1 | \n",
" 1.205916e+06 | \n",
" 1193017.741 | \n",
" 1.205916e+06 | \n",
" 6.067150e+06 | \n",
" 2.446266e+07 | \n",
" 0.248017 | \n",
"
\n",
" \n",
" 17 | \n",
" 2017 | \n",
" 2015 | \n",
" OTA | \n",
" 1 | \n",
" 1.234350e+06 | \n",
" 1221458.225 | \n",
" 1.234350e+06 | \n",
" 6.094414e+06 | \n",
" 2.442513e+07 | \n",
" 0.249514 | \n",
"
\n",
" \n",
" 18 | \n",
" 2018 | \n",
" 2016 | \n",
" OTA | \n",
" 1 | \n",
" 1.202472e+06 | \n",
" 1187312.464 | \n",
" 1.202472e+06 | \n",
" 6.072577e+06 | \n",
" 2.429747e+07 | \n",
" 0.249926 | \n",
"
\n",
" \n",
" 19 | \n",
" 2019 | \n",
" 2017 | \n",
" OTA | \n",
" 1 | \n",
" 1.197480e+06 | \n",
" 1180527.262 | \n",
" 1.197480e+06 | \n",
" 6.050424e+06 | \n",
" 2.425592e+07 | \n",
" 0.249441 | \n",
"
\n",
" \n",
" 20 | \n",
" 2010 | \n",
" 2008 | \n",
" OTA | \n",
" 2 | \n",
" 1.123786e+05 | \n",
" 61535.658 | \n",
" 6.153566e+04 | \n",
" NaN | \n",
" 0.000000e+00 | \n",
" NaN | \n",
"
\n",
" \n",
" 21 | \n",
" 2011 | \n",
" 2009 | \n",
" OTA | \n",
" 2 | \n",
" 1.109761e+05 | \n",
" 88640.291 | \n",
" 8.864029e+04 | \n",
" NaN | \n",
" 0.000000e+00 | \n",
" NaN | \n",
"
\n",
" \n",
" 22 | \n",
" 2012 | \n",
" 2010 | \n",
" OTA | \n",
" 2 | \n",
" 1.193461e+05 | \n",
" 96119.999 | \n",
" 9.612000e+04 | \n",
" NaN | \n",
" 0.000000e+00 | \n",
" NaN | \n",
"
\n",
" \n",
" 23 | \n",
" 2013 | \n",
" 2011 | \n",
" OTA | \n",
" 2 | \n",
" 1.187659e+05 | \n",
" 101729.079 | \n",
" 1.017291e+05 | \n",
" NaN | \n",
" 0.000000e+00 | \n",
" NaN | \n",
"
\n",
" \n",
" 24 | \n",
" 2014 | \n",
" 2012 | \n",
" OTA | \n",
" 2 | \n",
" 1.185614e+05 | \n",
" 92482.659 | \n",
" 9.248266e+04 | \n",
" 4.405077e+05 | \n",
" 2.493535e+07 | \n",
" 0.017666 | \n",
"
\n",
" \n",
" 25 | \n",
" 2015 | \n",
" 2013 | \n",
" OTA | \n",
" 2 | \n",
" 1.174963e+05 | \n",
" 84464.206 | \n",
" 8.446421e+04 | \n",
" 4.634362e+05 | \n",
" 2.465271e+07 | \n",
" 0.018799 | \n",
"
\n",
" \n",
" 26 | \n",
" 2016 | \n",
" 2014 | \n",
" OTA | \n",
" 2 | \n",
" 1.133792e+05 | \n",
" 81427.923 | \n",
" 8.142792e+04 | \n",
" 4.562239e+05 | \n",
" 2.446266e+07 | \n",
" 0.018650 | \n",
"
\n",
" \n",
" 27 | \n",
" 2017 | \n",
" 2015 | \n",
" OTA | \n",
" 2 | \n",
" 1.111012e+05 | \n",
" 79871.060 | \n",
" 7.987106e+04 | \n",
" 4.399749e+05 | \n",
" 2.442513e+07 | \n",
" 0.018013 | \n",
"
\n",
" \n",
" 28 | \n",
" 2018 | \n",
" 2016 | \n",
" OTA | \n",
" 2 | \n",
" 1.178996e+05 | \n",
" 85294.465 | \n",
" 8.529446e+04 | \n",
" 4.235403e+05 | \n",
" 2.429747e+07 | \n",
" 0.017431 | \n",
"
\n",
" \n",
" 29 | \n",
" 2019 | \n",
" 2017 | \n",
" OTA | \n",
" 2 | \n",
" 1.217916e+05 | \n",
" 88363.849 | \n",
" 8.836385e+04 | \n",
" 4.194215e+05 | \n",
" 2.425592e+07 | \n",
" 0.017292 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 190 | \n",
" 2010 | \n",
" 2008 | \n",
" ROX | \n",
" 1 | \n",
" 1.641231e+05 | \n",
" 138057.427 | \n",
" 1.641231e+05 | \n",
" NaN | \n",
" 0.000000e+00 | \n",
" NaN | \n",
"
\n",
" \n",
" 191 | \n",
" 2011 | \n",
" 2009 | \n",
" ROX | \n",
" 1 | \n",
" 1.563985e+05 | \n",
" 138411.985 | \n",
" 1.563985e+05 | \n",
" NaN | \n",
" 0.000000e+00 | \n",
" NaN | \n",
"
\n",
" \n",
" 192 | \n",
" 2012 | \n",
" 2010 | \n",
" ROX | \n",
" 1 | \n",
" 1.637344e+05 | \n",
" 133450.301 | \n",
" 1.637344e+05 | \n",
" NaN | \n",
" 0.000000e+00 | \n",
" NaN | \n",
"
\n",
" \n",
" 193 | \n",
" 2013 | \n",
" 2011 | \n",
" ROX | \n",
" 1 | \n",
" 1.670257e+05 | \n",
" 135724.284 | \n",
" 1.670257e+05 | \n",
" NaN | \n",
" 0.000000e+00 | \n",
" NaN | \n",
"
\n",
" \n",
" 194 | \n",
" 2014 | \n",
" 2012 | \n",
" ROX | \n",
" 1 | \n",
" 1.575375e+05 | \n",
" 124734.103 | \n",
" 1.575375e+05 | \n",
" 8.088191e+05 | \n",
" 2.493535e+07 | \n",
" 0.032437 | \n",
"
\n",
" \n",
" 195 | \n",
" 2015 | \n",
" 2013 | \n",
" ROX | \n",
" 1 | \n",
" 1.612832e+05 | \n",
" 127376.091 | \n",
" 1.612832e+05 | \n",
" 8.059793e+05 | \n",
" 2.465271e+07 | \n",
" 0.032693 | \n",
"
\n",
" \n",
" 196 | \n",
" 2016 | \n",
" 2014 | \n",
" ROX | \n",
" 1 | \n",
" 1.603286e+05 | \n",
" 125608.143 | \n",
" 1.603286e+05 | \n",
" 8.099094e+05 | \n",
" 2.446266e+07 | \n",
" 0.033108 | \n",
"
\n",
" \n",
" 197 | \n",
" 2017 | \n",
" 2015 | \n",
" ROX | \n",
" 1 | \n",
" 1.637120e+05 | \n",
" 128329.755 | \n",
" 1.637120e+05 | \n",
" 8.098871e+05 | \n",
" 2.442513e+07 | \n",
" 0.033158 | \n",
"
\n",
" \n",
" 198 | \n",
" 2018 | \n",
" 2016 | \n",
" ROX | \n",
" 1 | \n",
" 1.576343e+05 | \n",
" 123696.330 | \n",
" 1.576343e+05 | \n",
" 8.004956e+05 | \n",
" 2.429747e+07 | \n",
" 0.032946 | \n",
"
\n",
" \n",
" 199 | \n",
" 2019 | \n",
" 2017 | \n",
" ROX | \n",
" 1 | \n",
" 1.631780e+05 | \n",
" 125151.168 | \n",
" 1.631780e+05 | \n",
" 8.061361e+05 | \n",
" 2.425592e+07 | \n",
" 0.033235 | \n",
"
\n",
" \n",
" 200 | \n",
" 2010 | \n",
" 2008 | \n",
" TWI | \n",
" 1 | \n",
" 1.208363e+05 | \n",
" 103184.227 | \n",
" 1.208363e+05 | \n",
" NaN | \n",
" 0.000000e+00 | \n",
" NaN | \n",
"
\n",
" \n",
" 201 | \n",
" 2011 | \n",
" 2009 | \n",
" TWI | \n",
" 1 | \n",
" 1.174155e+05 | \n",
" 100157.693 | \n",
" 1.174155e+05 | \n",
" NaN | \n",
" 0.000000e+00 | \n",
" NaN | \n",
"
\n",
" \n",
" 202 | \n",
" 2012 | \n",
" 2010 | \n",
" TWI | \n",
" 1 | \n",
" 1.159799e+05 | \n",
" 100854.940 | \n",
" 1.159799e+05 | \n",
" NaN | \n",
" 0.000000e+00 | \n",
" NaN | \n",
"
\n",
" \n",
" 203 | \n",
" 2013 | \n",
" 2011 | \n",
" TWI | \n",
" 1 | \n",
" 1.221440e+05 | \n",
" 102444.416 | \n",
" 1.221440e+05 | \n",
" NaN | \n",
" 0.000000e+00 | \n",
" NaN | \n",
"
\n",
" \n",
" 204 | \n",
" 2014 | \n",
" 2012 | \n",
" TWI | \n",
" 1 | \n",
" 1.245789e+05 | \n",
" 106588.337 | \n",
" 1.245789e+05 | \n",
" 6.009545e+05 | \n",
" 2.493535e+07 | \n",
" 0.024101 | \n",
"
\n",
" \n",
" 205 | \n",
" 2015 | \n",
" 2013 | \n",
" TWI | \n",
" 1 | \n",
" 1.201576e+05 | \n",
" 101979.485 | \n",
" 1.201576e+05 | \n",
" 6.002759e+05 | \n",
" 2.465271e+07 | \n",
" 0.024349 | \n",
"
\n",
" \n",
" 206 | \n",
" 2016 | \n",
" 2014 | \n",
" TWI | \n",
" 1 | \n",
" 1.211288e+05 | \n",
" 103401.556 | \n",
" 1.211288e+05 | \n",
" 6.039892e+05 | \n",
" 2.446266e+07 | \n",
" 0.024690 | \n",
"
\n",
" \n",
" 207 | \n",
" 2017 | \n",
" 2015 | \n",
" TWI | \n",
" 1 | \n",
" 1.227345e+05 | \n",
" 104582.768 | \n",
" 1.227345e+05 | \n",
" 6.107438e+05 | \n",
" 2.442513e+07 | \n",
" 0.025005 | \n",
"
\n",
" \n",
" 208 | \n",
" 2018 | \n",
" 2016 | \n",
" TWI | \n",
" 1 | \n",
" 1.205239e+05 | \n",
" 100611.685 | \n",
" 1.205239e+05 | \n",
" 6.091237e+05 | \n",
" 2.429747e+07 | \n",
" 0.025069 | \n",
"
\n",
" \n",
" 209 | \n",
" 2019 | \n",
" 2017 | \n",
" TWI | \n",
" 1 | \n",
" 1.203534e+05 | \n",
" 102849.534 | \n",
" 1.203534e+05 | \n",
" 6.048983e+05 | \n",
" 2.425592e+07 | \n",
" 0.024938 | \n",
"
\n",
" \n",
" 210 | \n",
" 2010 | \n",
" 2008 | \n",
" TWI | \n",
" 2 | \n",
" 4.824518e+05 | \n",
" 482451.805 | \n",
" 4.824518e+05 | \n",
" NaN | \n",
" 0.000000e+00 | \n",
" NaN | \n",
"
\n",
" \n",
" 211 | \n",
" 2011 | \n",
" 2009 | \n",
" TWI | \n",
" 2 | \n",
" 4.353852e+05 | \n",
" 435385.136 | \n",
" 4.353851e+05 | \n",
" NaN | \n",
" 0.000000e+00 | \n",
" NaN | \n",
"
\n",
" \n",
" 212 | \n",
" 2012 | \n",
" 2010 | \n",
" TWI | \n",
" 2 | \n",
" 4.955712e+05 | \n",
" 495571.192 | \n",
" 4.955712e+05 | \n",
" NaN | \n",
" 0.000000e+00 | \n",
" NaN | \n",
"
\n",
" \n",
" 213 | \n",
" 2013 | \n",
" 2011 | \n",
" TWI | \n",
" 2 | \n",
" 5.101073e+05 | \n",
" 510107.258 | \n",
" 5.101073e+05 | \n",
" NaN | \n",
" 0.000000e+00 | \n",
" NaN | \n",
"
\n",
" \n",
" 214 | \n",
" 2014 | \n",
" 2012 | \n",
" TWI | \n",
" 2 | \n",
" 4.882432e+05 | \n",
" 488243.191 | \n",
" 4.882432e+05 | \n",
" 2.411759e+06 | \n",
" 2.493535e+07 | \n",
" 0.096720 | \n",
"
\n",
" \n",
" 215 | \n",
" 2015 | \n",
" 2013 | \n",
" TWI | \n",
" 2 | \n",
" 4.562451e+05 | \n",
" 456245.048 | \n",
" 4.562450e+05 | \n",
" 2.385552e+06 | \n",
" 2.465271e+07 | \n",
" 0.096766 | \n",
"
\n",
" \n",
" 216 | \n",
" 2016 | \n",
" 2014 | \n",
" TWI | \n",
" 2 | \n",
" 4.713079e+05 | \n",
" 471307.884 | \n",
" 4.713079e+05 | \n",
" 2.421475e+06 | \n",
" 2.446266e+07 | \n",
" 0.098987 | \n",
"
\n",
" \n",
" 217 | \n",
" 2017 | \n",
" 2015 | \n",
" TWI | \n",
" 2 | \n",
" 4.740372e+05 | \n",
" 474037.226 | \n",
" 4.740372e+05 | \n",
" 2.399941e+06 | \n",
" 2.442513e+07 | \n",
" 0.098257 | \n",
"
\n",
" \n",
" 218 | \n",
" 2018 | \n",
" 2016 | \n",
" TWI | \n",
" 2 | \n",
" 4.698825e+05 | \n",
" 469882.436 | \n",
" 4.698824e+05 | \n",
" 2.359716e+06 | \n",
" 2.429747e+07 | \n",
" 0.097118 | \n",
"
\n",
" \n",
" 219 | \n",
" 2019 | \n",
" 2017 | \n",
" TWI | \n",
" 2 | \n",
" 4.714362e+05 | \n",
" 471436.197 | \n",
" 4.714362e+05 | \n",
" 2.342909e+06 | \n",
" 2.425592e+07 | \n",
" 0.096591 | \n",
"
\n",
" \n",
"
\n",
"
220 rows × 10 columns
\n",
"
"
],
"text/plain": [
" p_yr m_yr bb type Load Offtake AMDvol_t \\\n",
"0 2010 2008 MDN 1 1.558805e+05 144083.029 1.558805e+05 \n",
"1 2011 2009 MDN 1 1.577338e+05 140366.912 1.577338e+05 \n",
"2 2012 2010 MDN 1 1.573033e+05 134911.622 1.573033e+05 \n",
"3 2013 2011 MDN 1 1.606188e+05 137812.312 1.606188e+05 \n",
"4 2014 2012 MDN 1 1.615703e+05 138898.772 1.615703e+05 \n",
"5 2015 2013 MDN 1 1.594903e+05 136496.480 1.594903e+05 \n",
"6 2016 2014 MDN 1 1.608143e+05 138299.427 1.608143e+05 \n",
"7 2017 2015 MDN 1 1.610786e+05 138593.910 1.610786e+05 \n",
"8 2018 2016 MDN 1 1.662916e+05 141787.743 1.662916e+05 \n",
"9 2019 2017 MDN 1 1.706945e+05 146591.862 1.706945e+05 \n",
"10 2010 2008 OTA 1 1.207333e+06 1183840.102 1.207333e+06 \n",
"11 2011 2009 OTA 1 1.230646e+06 1219108.248 1.230646e+06 \n",
"12 2012 2010 OTA 1 1.207086e+06 1194459.817 1.207086e+06 \n",
"13 2013 2011 OTA 1 1.224309e+06 1210772.119 1.224309e+06 \n",
"14 2014 2012 OTA 1 1.219633e+06 1205481.349 1.219633e+06 \n",
"15 2015 2013 OTA 1 1.210206e+06 1198370.529 1.210206e+06 \n",
"16 2016 2014 OTA 1 1.205916e+06 1193017.741 1.205916e+06 \n",
"17 2017 2015 OTA 1 1.234350e+06 1221458.225 1.234350e+06 \n",
"18 2018 2016 OTA 1 1.202472e+06 1187312.464 1.202472e+06 \n",
"19 2019 2017 OTA 1 1.197480e+06 1180527.262 1.197480e+06 \n",
"20 2010 2008 OTA 2 1.123786e+05 61535.658 6.153566e+04 \n",
"21 2011 2009 OTA 2 1.109761e+05 88640.291 8.864029e+04 \n",
"22 2012 2010 OTA 2 1.193461e+05 96119.999 9.612000e+04 \n",
"23 2013 2011 OTA 2 1.187659e+05 101729.079 1.017291e+05 \n",
"24 2014 2012 OTA 2 1.185614e+05 92482.659 9.248266e+04 \n",
"25 2015 2013 OTA 2 1.174963e+05 84464.206 8.446421e+04 \n",
"26 2016 2014 OTA 2 1.133792e+05 81427.923 8.142792e+04 \n",
"27 2017 2015 OTA 2 1.111012e+05 79871.060 7.987106e+04 \n",
"28 2018 2016 OTA 2 1.178996e+05 85294.465 8.529446e+04 \n",
"29 2019 2017 OTA 2 1.217916e+05 88363.849 8.836385e+04 \n",
".. ... ... ... ... ... ... ... \n",
"190 2010 2008 ROX 1 1.641231e+05 138057.427 1.641231e+05 \n",
"191 2011 2009 ROX 1 1.563985e+05 138411.985 1.563985e+05 \n",
"192 2012 2010 ROX 1 1.637344e+05 133450.301 1.637344e+05 \n",
"193 2013 2011 ROX 1 1.670257e+05 135724.284 1.670257e+05 \n",
"194 2014 2012 ROX 1 1.575375e+05 124734.103 1.575375e+05 \n",
"195 2015 2013 ROX 1 1.612832e+05 127376.091 1.612832e+05 \n",
"196 2016 2014 ROX 1 1.603286e+05 125608.143 1.603286e+05 \n",
"197 2017 2015 ROX 1 1.637120e+05 128329.755 1.637120e+05 \n",
"198 2018 2016 ROX 1 1.576343e+05 123696.330 1.576343e+05 \n",
"199 2019 2017 ROX 1 1.631780e+05 125151.168 1.631780e+05 \n",
"200 2010 2008 TWI 1 1.208363e+05 103184.227 1.208363e+05 \n",
"201 2011 2009 TWI 1 1.174155e+05 100157.693 1.174155e+05 \n",
"202 2012 2010 TWI 1 1.159799e+05 100854.940 1.159799e+05 \n",
"203 2013 2011 TWI 1 1.221440e+05 102444.416 1.221440e+05 \n",
"204 2014 2012 TWI 1 1.245789e+05 106588.337 1.245789e+05 \n",
"205 2015 2013 TWI 1 1.201576e+05 101979.485 1.201576e+05 \n",
"206 2016 2014 TWI 1 1.211288e+05 103401.556 1.211288e+05 \n",
"207 2017 2015 TWI 1 1.227345e+05 104582.768 1.227345e+05 \n",
"208 2018 2016 TWI 1 1.205239e+05 100611.685 1.205239e+05 \n",
"209 2019 2017 TWI 1 1.203534e+05 102849.534 1.203534e+05 \n",
"210 2010 2008 TWI 2 4.824518e+05 482451.805 4.824518e+05 \n",
"211 2011 2009 TWI 2 4.353852e+05 435385.136 4.353851e+05 \n",
"212 2012 2010 TWI 2 4.955712e+05 495571.192 4.955712e+05 \n",
"213 2013 2011 TWI 2 5.101073e+05 510107.258 5.101073e+05 \n",
"214 2014 2012 TWI 2 4.882432e+05 488243.191 4.882432e+05 \n",
"215 2015 2013 TWI 2 4.562451e+05 456245.048 4.562450e+05 \n",
"216 2016 2014 TWI 2 4.713079e+05 471307.884 4.713079e+05 \n",
"217 2017 2015 TWI 2 4.740372e+05 474037.226 4.740372e+05 \n",
"218 2018 2016 TWI 2 4.698825e+05 469882.436 4.698824e+05 \n",
"219 2019 2017 TWI 2 4.714362e+05 471436.197 4.714362e+05 \n",
"\n",
" AMDvol AMDvol_tot AMDshr \n",
"0 NaN 0.000000e+00 NaN \n",
"1 NaN 0.000000e+00 NaN \n",
"2 NaN 0.000000e+00 NaN \n",
"3 NaN 0.000000e+00 NaN \n",
"4 7.931067e+05 2.493535e+07 0.031807 \n",
"5 7.967164e+05 2.465271e+07 0.032318 \n",
"6 7.997970e+05 2.446266e+07 0.032695 \n",
"7 8.035723e+05 2.442513e+07 0.032899 \n",
"8 8.092452e+05 2.429747e+07 0.033306 \n",
"9 8.183694e+05 2.425592e+07 0.033739 \n",
"10 NaN 0.000000e+00 NaN \n",
"11 NaN 0.000000e+00 NaN \n",
"12 NaN 0.000000e+00 NaN \n",
"13 NaN 0.000000e+00 NaN \n",
"14 6.089006e+06 2.493535e+07 0.244192 \n",
"15 6.091880e+06 2.465271e+07 0.247108 \n",
"16 6.067150e+06 2.446266e+07 0.248017 \n",
"17 6.094414e+06 2.442513e+07 0.249514 \n",
"18 6.072577e+06 2.429747e+07 0.249926 \n",
"19 6.050424e+06 2.425592e+07 0.249441 \n",
"20 NaN 0.000000e+00 NaN \n",
"21 NaN 0.000000e+00 NaN \n",
"22 NaN 0.000000e+00 NaN \n",
"23 NaN 0.000000e+00 NaN \n",
"24 4.405077e+05 2.493535e+07 0.017666 \n",
"25 4.634362e+05 2.465271e+07 0.018799 \n",
"26 4.562239e+05 2.446266e+07 0.018650 \n",
"27 4.399749e+05 2.442513e+07 0.018013 \n",
"28 4.235403e+05 2.429747e+07 0.017431 \n",
"29 4.194215e+05 2.425592e+07 0.017292 \n",
".. ... ... ... \n",
"190 NaN 0.000000e+00 NaN \n",
"191 NaN 0.000000e+00 NaN \n",
"192 NaN 0.000000e+00 NaN \n",
"193 NaN 0.000000e+00 NaN \n",
"194 8.088191e+05 2.493535e+07 0.032437 \n",
"195 8.059793e+05 2.465271e+07 0.032693 \n",
"196 8.099094e+05 2.446266e+07 0.033108 \n",
"197 8.098871e+05 2.442513e+07 0.033158 \n",
"198 8.004956e+05 2.429747e+07 0.032946 \n",
"199 8.061361e+05 2.425592e+07 0.033235 \n",
"200 NaN 0.000000e+00 NaN \n",
"201 NaN 0.000000e+00 NaN \n",
"202 NaN 0.000000e+00 NaN \n",
"203 NaN 0.000000e+00 NaN \n",
"204 6.009545e+05 2.493535e+07 0.024101 \n",
"205 6.002759e+05 2.465271e+07 0.024349 \n",
"206 6.039892e+05 2.446266e+07 0.024690 \n",
"207 6.107438e+05 2.442513e+07 0.025005 \n",
"208 6.091237e+05 2.429747e+07 0.025069 \n",
"209 6.048983e+05 2.425592e+07 0.024938 \n",
"210 NaN 0.000000e+00 NaN \n",
"211 NaN 0.000000e+00 NaN \n",
"212 NaN 0.000000e+00 NaN \n",
"213 NaN 0.000000e+00 NaN \n",
"214 2.411759e+06 2.493535e+07 0.096720 \n",
"215 2.385552e+06 2.465271e+07 0.096766 \n",
"216 2.421475e+06 2.446266e+07 0.098987 \n",
"217 2.399941e+06 2.442513e+07 0.098257 \n",
"218 2.359716e+06 2.429747e+07 0.097118 \n",
"219 2.342909e+06 2.425592e+07 0.096591 \n",
"\n",
"[220 rows x 10 columns]"
]
},
"execution_count": 1635,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"amdshr"
]
},
{
"cell_type": "code",
"execution_count": 1549,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" | \n",
" | \n",
" | \n",
" Offtake | \n",
" dg_q | \n",
" Load | \n",
" AMDvol_t | \n",
" AMDvol | \n",
"
\n",
" \n",
" p_yr | \n",
" m_yr | \n",
" bb | \n",
" type | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 2010 | \n",
" 2008 | \n",
" MDN | \n",
" 1 | \n",
" 144083.029 | \n",
" 11797.4595 | \n",
" 1.558805e+05 | \n",
" 1.558805e+05 | \n",
" 1.611476e+06 | \n",
"
\n",
" \n",
" 2011 | \n",
" 2009 | \n",
" MDN | \n",
" 1 | \n",
" 140366.912 | \n",
" 17366.8980 | \n",
" 1.577338e+05 | \n",
" 1.577338e+05 | \n",
" 1.611476e+06 | \n",
"
\n",
" \n",
" 2012 | \n",
" 2010 | \n",
" MDN | \n",
" 1 | \n",
" 134911.622 | \n",
" 22391.6450 | \n",
" 1.573033e+05 | \n",
" 1.573033e+05 | \n",
" 1.611476e+06 | \n",
"
\n",
" \n",
" 2013 | \n",
" 2011 | \n",
" MDN | \n",
" 1 | \n",
" 137812.312 | \n",
" 22806.4640 | \n",
" 1.606188e+05 | \n",
" 1.606188e+05 | \n",
" 1.611476e+06 | \n",
"
\n",
" \n",
" 2014 | \n",
" 2012 | \n",
" MDN | \n",
" 1 | \n",
" 138898.772 | \n",
" 22671.5450 | \n",
" 1.615703e+05 | \n",
" 1.615703e+05 | \n",
" 1.611476e+06 | \n",
"
\n",
" \n",
" 2015 | \n",
" 2013 | \n",
" MDN | \n",
" 1 | \n",
" 136496.480 | \n",
" 22993.7990 | \n",
" 1.594903e+05 | \n",
" 1.594903e+05 | \n",
" 1.611476e+06 | \n",
"
\n",
" \n",
" 2016 | \n",
" 2014 | \n",
" MDN | \n",
" 1 | \n",
" 138299.427 | \n",
" 22514.8860 | \n",
" 1.608143e+05 | \n",
" 1.608143e+05 | \n",
" 1.611476e+06 | \n",
"
\n",
" \n",
" 2017 | \n",
" 2015 | \n",
" MDN | \n",
" 1 | \n",
" 138593.910 | \n",
" 22484.7400 | \n",
" 1.610786e+05 | \n",
" 1.610786e+05 | \n",
" 1.611476e+06 | \n",
"
\n",
" \n",
" 2018 | \n",
" 2016 | \n",
" MDN | \n",
" 1 | \n",
" 141787.743 | \n",
" 24503.8910 | \n",
" 1.662916e+05 | \n",
" 1.662916e+05 | \n",
" 1.611476e+06 | \n",
"
\n",
" \n",
" 2019 | \n",
" 2017 | \n",
" MDN | \n",
" 1 | \n",
" 146591.862 | \n",
" 24102.6640 | \n",
" 1.706945e+05 | \n",
" 1.706945e+05 | \n",
" 1.611476e+06 | \n",
"
\n",
" \n",
" 2010 | \n",
" 2008 | \n",
" OTA | \n",
" 1 | \n",
" 1183840.102 | \n",
" 23492.4160 | \n",
" 1.207333e+06 | \n",
" 1.207333e+06 | \n",
" 1.213943e+07 | \n",
"
\n",
" \n",
" 2011 | \n",
" 2009 | \n",
" OTA | \n",
" 1 | \n",
" 1219108.248 | \n",
" 11537.7990 | \n",
" 1.230646e+06 | \n",
" 1.230646e+06 | \n",
" 1.213943e+07 | \n",
"
\n",
" \n",
" 2012 | \n",
" 2010 | \n",
" OTA | \n",
" 1 | \n",
" 1194459.817 | \n",
" 12626.2800 | \n",
" 1.207086e+06 | \n",
" 1.207086e+06 | \n",
" 1.213943e+07 | \n",
"
\n",
" \n",
" 2013 | \n",
" 2011 | \n",
" OTA | \n",
" 1 | \n",
" 1210772.119 | \n",
" 13536.3880 | \n",
" 1.224309e+06 | \n",
" 1.224309e+06 | \n",
" 1.213943e+07 | \n",
"
\n",
" \n",
" 2014 | \n",
" 2012 | \n",
" OTA | \n",
" 1 | \n",
" 1205481.349 | \n",
" 14151.6620 | \n",
" 1.219633e+06 | \n",
" 1.219633e+06 | \n",
" 1.213943e+07 | \n",
"
\n",
" \n",
" 2015 | \n",
" 2013 | \n",
" OTA | \n",
" 1 | \n",
" 1198370.529 | \n",
" 11835.7340 | \n",
" 1.210206e+06 | \n",
" 1.210206e+06 | \n",
" 1.213943e+07 | \n",
"
\n",
" \n",
" 2016 | \n",
" 2014 | \n",
" OTA | \n",
" 1 | \n",
" 1193017.741 | \n",
" 12898.2790 | \n",
" 1.205916e+06 | \n",
" 1.205916e+06 | \n",
" 1.213943e+07 | \n",
"
\n",
" \n",
" 2017 | \n",
" 2015 | \n",
" OTA | \n",
" 1 | \n",
" 1221458.225 | \n",
" 12891.6350 | \n",
" 1.234350e+06 | \n",
" 1.234350e+06 | \n",
" 1.213943e+07 | \n",
"
\n",
" \n",
" 2018 | \n",
" 2016 | \n",
" OTA | \n",
" 1 | \n",
" 1187312.464 | \n",
" 15159.3290 | \n",
" 1.202472e+06 | \n",
" 1.202472e+06 | \n",
" 1.213943e+07 | \n",
"
\n",
" \n",
" 2019 | \n",
" 2017 | \n",
" OTA | \n",
" 1 | \n",
" 1180527.262 | \n",
" 16952.7390 | \n",
" 1.197480e+06 | \n",
" 1.197480e+06 | \n",
" 1.213943e+07 | \n",
"
\n",
" \n",
" 2010 | \n",
" 2008 | \n",
" OTA | \n",
" 2 | \n",
" 61535.658 | \n",
" 50842.9600 | \n",
" 1.123786e+05 | \n",
" 6.153566e+04 | \n",
" 8.599292e+05 | \n",
"
\n",
" \n",
" 2011 | \n",
" 2009 | \n",
" OTA | \n",
" 2 | \n",
" 88640.291 | \n",
" 22335.7890 | \n",
" 1.109761e+05 | \n",
" 8.864029e+04 | \n",
" 8.599292e+05 | \n",
"
\n",
" \n",
" 2012 | \n",
" 2010 | \n",
" OTA | \n",
" 2 | \n",
" 96119.999 | \n",
" 23226.1480 | \n",
" 1.193461e+05 | \n",
" 9.612000e+04 | \n",
" 8.599292e+05 | \n",
"
\n",
" \n",
" 2013 | \n",
" 2011 | \n",
" OTA | \n",
" 2 | \n",
" 101729.079 | \n",
" 17036.8170 | \n",
" 1.187659e+05 | \n",
" 1.017291e+05 | \n",
" 8.599292e+05 | \n",
"
\n",
" \n",
" 2014 | \n",
" 2012 | \n",
" OTA | \n",
" 2 | \n",
" 92482.659 | \n",
" 26078.7700 | \n",
" 1.185614e+05 | \n",
" 9.248266e+04 | \n",
" 8.599292e+05 | \n",
"
\n",
" \n",
" 2015 | \n",
" 2013 | \n",
" OTA | \n",
" 2 | \n",
" 84464.206 | \n",
" 33032.1290 | \n",
" 1.174963e+05 | \n",
" 8.446421e+04 | \n",
" 8.599292e+05 | \n",
"
\n",
" \n",
" 2016 | \n",
" 2014 | \n",
" OTA | \n",
" 2 | \n",
" 81427.923 | \n",
" 31951.2370 | \n",
" 1.133792e+05 | \n",
" 8.142792e+04 | \n",
" 8.599292e+05 | \n",
"
\n",
" \n",
" 2017 | \n",
" 2015 | \n",
" OTA | \n",
" 2 | \n",
" 79871.060 | \n",
" 31230.0950 | \n",
" 1.111012e+05 | \n",
" 7.987106e+04 | \n",
" 8.599292e+05 | \n",
"
\n",
" \n",
" 2018 | \n",
" 2016 | \n",
" OTA | \n",
" 2 | \n",
" 85294.465 | \n",
" 32605.1460 | \n",
" 1.178996e+05 | \n",
" 8.529446e+04 | \n",
" 8.599292e+05 | \n",
"
\n",
" \n",
" 2019 | \n",
" 2017 | \n",
" OTA | \n",
" 2 | \n",
" 88363.849 | \n",
" 33427.7390 | \n",
" 1.217916e+05 | \n",
" 8.836385e+04 | \n",
" 8.599292e+05 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 2010 | \n",
" 2008 | \n",
" ROX | \n",
" 1 | \n",
" 138057.427 | \n",
" 26065.6565 | \n",
" 1.641231e+05 | \n",
" 1.641231e+05 | \n",
" 1.614955e+06 | \n",
"
\n",
" \n",
" 2011 | \n",
" 2009 | \n",
" ROX | \n",
" 1 | \n",
" 138411.985 | \n",
" 17986.4830 | \n",
" 1.563985e+05 | \n",
" 1.563985e+05 | \n",
" 1.614955e+06 | \n",
"
\n",
" \n",
" 2012 | \n",
" 2010 | \n",
" ROX | \n",
" 1 | \n",
" 133450.301 | \n",
" 30284.0660 | \n",
" 1.637344e+05 | \n",
" 1.637344e+05 | \n",
" 1.614955e+06 | \n",
"
\n",
" \n",
" 2013 | \n",
" 2011 | \n",
" ROX | \n",
" 1 | \n",
" 135724.284 | \n",
" 31301.3990 | \n",
" 1.670257e+05 | \n",
" 1.670257e+05 | \n",
" 1.614955e+06 | \n",
"
\n",
" \n",
" 2014 | \n",
" 2012 | \n",
" ROX | \n",
" 1 | \n",
" 124734.103 | \n",
" 32803.4190 | \n",
" 1.575375e+05 | \n",
" 1.575375e+05 | \n",
" 1.614955e+06 | \n",
"
\n",
" \n",
" 2015 | \n",
" 2013 | \n",
" ROX | \n",
" 1 | \n",
" 127376.091 | \n",
" 33907.1540 | \n",
" 1.612832e+05 | \n",
" 1.612832e+05 | \n",
" 1.614955e+06 | \n",
"
\n",
" \n",
" 2016 | \n",
" 2014 | \n",
" ROX | \n",
" 1 | \n",
" 125608.143 | \n",
" 34720.4530 | \n",
" 1.603286e+05 | \n",
" 1.603286e+05 | \n",
" 1.614955e+06 | \n",
"
\n",
" \n",
" 2017 | \n",
" 2015 | \n",
" ROX | \n",
" 1 | \n",
" 128329.755 | \n",
" 35382.2500 | \n",
" 1.637120e+05 | \n",
" 1.637120e+05 | \n",
" 1.614955e+06 | \n",
"
\n",
" \n",
" 2018 | \n",
" 2016 | \n",
" ROX | \n",
" 1 | \n",
" 123696.330 | \n",
" 33937.9490 | \n",
" 1.576343e+05 | \n",
" 1.576343e+05 | \n",
" 1.614955e+06 | \n",
"
\n",
" \n",
" 2019 | \n",
" 2017 | \n",
" ROX | \n",
" 1 | \n",
" 125151.168 | \n",
" 38026.8040 | \n",
" 1.631780e+05 | \n",
" 1.631780e+05 | \n",
" 1.614955e+06 | \n",
"
\n",
" \n",
" 2010 | \n",
" 2008 | \n",
" TWI | \n",
" 1 | \n",
" 103184.227 | \n",
" 17652.0640 | \n",
" 1.208363e+05 | \n",
" 1.208363e+05 | \n",
" 1.205853e+06 | \n",
"
\n",
" \n",
" 2011 | \n",
" 2009 | \n",
" TWI | \n",
" 1 | \n",
" 100157.693 | \n",
" 17257.7680 | \n",
" 1.174155e+05 | \n",
" 1.174155e+05 | \n",
" 1.205853e+06 | \n",
"
\n",
" \n",
" 2012 | \n",
" 2010 | \n",
" TWI | \n",
" 1 | \n",
" 100854.940 | \n",
" 15124.9930 | \n",
" 1.159799e+05 | \n",
" 1.159799e+05 | \n",
" 1.205853e+06 | \n",
"
\n",
" \n",
" 2013 | \n",
" 2011 | \n",
" TWI | \n",
" 1 | \n",
" 102444.416 | \n",
" 19699.5720 | \n",
" 1.221440e+05 | \n",
" 1.221440e+05 | \n",
" 1.205853e+06 | \n",
"
\n",
" \n",
" 2014 | \n",
" 2012 | \n",
" TWI | \n",
" 1 | \n",
" 106588.337 | \n",
" 17990.5300 | \n",
" 1.245789e+05 | \n",
" 1.245789e+05 | \n",
" 1.205853e+06 | \n",
"
\n",
" \n",
" 2015 | \n",
" 2013 | \n",
" TWI | \n",
" 1 | \n",
" 101979.485 | \n",
" 18178.1560 | \n",
" 1.201576e+05 | \n",
" 1.201576e+05 | \n",
" 1.205853e+06 | \n",
"
\n",
" \n",
" 2016 | \n",
" 2014 | \n",
" TWI | \n",
" 1 | \n",
" 103401.556 | \n",
" 17727.2210 | \n",
" 1.211288e+05 | \n",
" 1.211288e+05 | \n",
" 1.205853e+06 | \n",
"
\n",
" \n",
" 2017 | \n",
" 2015 | \n",
" TWI | \n",
" 1 | \n",
" 104582.768 | \n",
" 18151.7690 | \n",
" 1.227345e+05 | \n",
" 1.227345e+05 | \n",
" 1.205853e+06 | \n",
"
\n",
" \n",
" 2018 | \n",
" 2016 | \n",
" TWI | \n",
" 1 | \n",
" 100611.685 | \n",
" 19912.2220 | \n",
" 1.205239e+05 | \n",
" 1.205239e+05 | \n",
" 1.205853e+06 | \n",
"
\n",
" \n",
" 2019 | \n",
" 2017 | \n",
" TWI | \n",
" 1 | \n",
" 102849.534 | \n",
" 17503.8740 | \n",
" 1.203534e+05 | \n",
" 1.203534e+05 | \n",
" 1.205853e+06 | \n",
"
\n",
" \n",
" 2010 | \n",
" 2008 | \n",
" TWI | \n",
" 2 | \n",
" 482451.805 | \n",
" 0.0425 | \n",
" 4.824518e+05 | \n",
" 4.824518e+05 | \n",
" 4.754667e+06 | \n",
"
\n",
" \n",
" 2011 | \n",
" 2009 | \n",
" TWI | \n",
" 2 | \n",
" 435385.136 | \n",
" 0.0160 | \n",
" 4.353852e+05 | \n",
" 4.353851e+05 | \n",
" 4.754667e+06 | \n",
"
\n",
" \n",
" 2012 | \n",
" 2010 | \n",
" TWI | \n",
" 2 | \n",
" 495571.192 | \n",
" 0.0160 | \n",
" 4.955712e+05 | \n",
" 4.955712e+05 | \n",
" 4.754667e+06 | \n",
"
\n",
" \n",
" 2013 | \n",
" 2011 | \n",
" TWI | \n",
" 2 | \n",
" 510107.258 | \n",
" 0.0130 | \n",
" 5.101073e+05 | \n",
" 5.101073e+05 | \n",
" 4.754667e+06 | \n",
"
\n",
" \n",
" 2014 | \n",
" 2012 | \n",
" TWI | \n",
" 2 | \n",
" 488243.191 | \n",
" 0.0280 | \n",
" 4.882432e+05 | \n",
" 4.882432e+05 | \n",
" 4.754667e+06 | \n",
"
\n",
" \n",
" 2015 | \n",
" 2013 | \n",
" TWI | \n",
" 2 | \n",
" 456245.048 | \n",
" 0.0210 | \n",
" 4.562451e+05 | \n",
" 4.562450e+05 | \n",
" 4.754667e+06 | \n",
"
\n",
" \n",
" 2016 | \n",
" 2014 | \n",
" TWI | \n",
" 2 | \n",
" 471307.884 | \n",
" 0.0280 | \n",
" 4.713079e+05 | \n",
" 4.713079e+05 | \n",
" 4.754667e+06 | \n",
"
\n",
" \n",
" 2017 | \n",
" 2015 | \n",
" TWI | \n",
" 2 | \n",
" 474037.226 | \n",
" 0.0240 | \n",
" 4.740372e+05 | \n",
" 4.740372e+05 | \n",
" 4.754667e+06 | \n",
"
\n",
" \n",
" 2018 | \n",
" 2016 | \n",
" TWI | \n",
" 2 | \n",
" 469882.436 | \n",
" 0.0310 | \n",
" 4.698825e+05 | \n",
" 4.698824e+05 | \n",
" 4.754667e+06 | \n",
"
\n",
" \n",
" 2019 | \n",
" 2017 | \n",
" TWI | \n",
" 2 | \n",
" 471436.197 | \n",
" 0.0240 | \n",
" 4.714362e+05 | \n",
" 4.714362e+05 | \n",
" 4.754667e+06 | \n",
"
\n",
" \n",
"
\n",
"
220 rows × 5 columns
\n",
"
"
],
"text/plain": [
" Offtake dg_q Load AMDvol_t \\\n",
"p_yr m_yr bb type \n",
"2010 2008 MDN 1 144083.029 11797.4595 1.558805e+05 1.558805e+05 \n",
"2011 2009 MDN 1 140366.912 17366.8980 1.577338e+05 1.577338e+05 \n",
"2012 2010 MDN 1 134911.622 22391.6450 1.573033e+05 1.573033e+05 \n",
"2013 2011 MDN 1 137812.312 22806.4640 1.606188e+05 1.606188e+05 \n",
"2014 2012 MDN 1 138898.772 22671.5450 1.615703e+05 1.615703e+05 \n",
"2015 2013 MDN 1 136496.480 22993.7990 1.594903e+05 1.594903e+05 \n",
"2016 2014 MDN 1 138299.427 22514.8860 1.608143e+05 1.608143e+05 \n",
"2017 2015 MDN 1 138593.910 22484.7400 1.610786e+05 1.610786e+05 \n",
"2018 2016 MDN 1 141787.743 24503.8910 1.662916e+05 1.662916e+05 \n",
"2019 2017 MDN 1 146591.862 24102.6640 1.706945e+05 1.706945e+05 \n",
"2010 2008 OTA 1 1183840.102 23492.4160 1.207333e+06 1.207333e+06 \n",
"2011 2009 OTA 1 1219108.248 11537.7990 1.230646e+06 1.230646e+06 \n",
"2012 2010 OTA 1 1194459.817 12626.2800 1.207086e+06 1.207086e+06 \n",
"2013 2011 OTA 1 1210772.119 13536.3880 1.224309e+06 1.224309e+06 \n",
"2014 2012 OTA 1 1205481.349 14151.6620 1.219633e+06 1.219633e+06 \n",
"2015 2013 OTA 1 1198370.529 11835.7340 1.210206e+06 1.210206e+06 \n",
"2016 2014 OTA 1 1193017.741 12898.2790 1.205916e+06 1.205916e+06 \n",
"2017 2015 OTA 1 1221458.225 12891.6350 1.234350e+06 1.234350e+06 \n",
"2018 2016 OTA 1 1187312.464 15159.3290 1.202472e+06 1.202472e+06 \n",
"2019 2017 OTA 1 1180527.262 16952.7390 1.197480e+06 1.197480e+06 \n",
"2010 2008 OTA 2 61535.658 50842.9600 1.123786e+05 6.153566e+04 \n",
"2011 2009 OTA 2 88640.291 22335.7890 1.109761e+05 8.864029e+04 \n",
"2012 2010 OTA 2 96119.999 23226.1480 1.193461e+05 9.612000e+04 \n",
"2013 2011 OTA 2 101729.079 17036.8170 1.187659e+05 1.017291e+05 \n",
"2014 2012 OTA 2 92482.659 26078.7700 1.185614e+05 9.248266e+04 \n",
"2015 2013 OTA 2 84464.206 33032.1290 1.174963e+05 8.446421e+04 \n",
"2016 2014 OTA 2 81427.923 31951.2370 1.133792e+05 8.142792e+04 \n",
"2017 2015 OTA 2 79871.060 31230.0950 1.111012e+05 7.987106e+04 \n",
"2018 2016 OTA 2 85294.465 32605.1460 1.178996e+05 8.529446e+04 \n",
"2019 2017 OTA 2 88363.849 33427.7390 1.217916e+05 8.836385e+04 \n",
"... ... ... ... ... \n",
"2010 2008 ROX 1 138057.427 26065.6565 1.641231e+05 1.641231e+05 \n",
"2011 2009 ROX 1 138411.985 17986.4830 1.563985e+05 1.563985e+05 \n",
"2012 2010 ROX 1 133450.301 30284.0660 1.637344e+05 1.637344e+05 \n",
"2013 2011 ROX 1 135724.284 31301.3990 1.670257e+05 1.670257e+05 \n",
"2014 2012 ROX 1 124734.103 32803.4190 1.575375e+05 1.575375e+05 \n",
"2015 2013 ROX 1 127376.091 33907.1540 1.612832e+05 1.612832e+05 \n",
"2016 2014 ROX 1 125608.143 34720.4530 1.603286e+05 1.603286e+05 \n",
"2017 2015 ROX 1 128329.755 35382.2500 1.637120e+05 1.637120e+05 \n",
"2018 2016 ROX 1 123696.330 33937.9490 1.576343e+05 1.576343e+05 \n",
"2019 2017 ROX 1 125151.168 38026.8040 1.631780e+05 1.631780e+05 \n",
"2010 2008 TWI 1 103184.227 17652.0640 1.208363e+05 1.208363e+05 \n",
"2011 2009 TWI 1 100157.693 17257.7680 1.174155e+05 1.174155e+05 \n",
"2012 2010 TWI 1 100854.940 15124.9930 1.159799e+05 1.159799e+05 \n",
"2013 2011 TWI 1 102444.416 19699.5720 1.221440e+05 1.221440e+05 \n",
"2014 2012 TWI 1 106588.337 17990.5300 1.245789e+05 1.245789e+05 \n",
"2015 2013 TWI 1 101979.485 18178.1560 1.201576e+05 1.201576e+05 \n",
"2016 2014 TWI 1 103401.556 17727.2210 1.211288e+05 1.211288e+05 \n",
"2017 2015 TWI 1 104582.768 18151.7690 1.227345e+05 1.227345e+05 \n",
"2018 2016 TWI 1 100611.685 19912.2220 1.205239e+05 1.205239e+05 \n",
"2019 2017 TWI 1 102849.534 17503.8740 1.203534e+05 1.203534e+05 \n",
"2010 2008 TWI 2 482451.805 0.0425 4.824518e+05 4.824518e+05 \n",
"2011 2009 TWI 2 435385.136 0.0160 4.353852e+05 4.353851e+05 \n",
"2012 2010 TWI 2 495571.192 0.0160 4.955712e+05 4.955712e+05 \n",
"2013 2011 TWI 2 510107.258 0.0130 5.101073e+05 5.101073e+05 \n",
"2014 2012 TWI 2 488243.191 0.0280 4.882432e+05 4.882432e+05 \n",
"2015 2013 TWI 2 456245.048 0.0210 4.562451e+05 4.562450e+05 \n",
"2016 2014 TWI 2 471307.884 0.0280 4.713079e+05 4.713079e+05 \n",
"2017 2015 TWI 2 474037.226 0.0240 4.740372e+05 4.740372e+05 \n",
"2018 2016 TWI 2 469882.436 0.0310 4.698825e+05 4.698824e+05 \n",
"2019 2017 TWI 2 471436.197 0.0240 4.714362e+05 4.714362e+05 \n",
"\n",
" AMDvol \n",
"p_yr m_yr bb type \n",
"2010 2008 MDN 1 1.611476e+06 \n",
"2011 2009 MDN 1 1.611476e+06 \n",
"2012 2010 MDN 1 1.611476e+06 \n",
"2013 2011 MDN 1 1.611476e+06 \n",
"2014 2012 MDN 1 1.611476e+06 \n",
"2015 2013 MDN 1 1.611476e+06 \n",
"2016 2014 MDN 1 1.611476e+06 \n",
"2017 2015 MDN 1 1.611476e+06 \n",
"2018 2016 MDN 1 1.611476e+06 \n",
"2019 2017 MDN 1 1.611476e+06 \n",
"2010 2008 OTA 1 1.213943e+07 \n",
"2011 2009 OTA 1 1.213943e+07 \n",
"2012 2010 OTA 1 1.213943e+07 \n",
"2013 2011 OTA 1 1.213943e+07 \n",
"2014 2012 OTA 1 1.213943e+07 \n",
"2015 2013 OTA 1 1.213943e+07 \n",
"2016 2014 OTA 1 1.213943e+07 \n",
"2017 2015 OTA 1 1.213943e+07 \n",
"2018 2016 OTA 1 1.213943e+07 \n",
"2019 2017 OTA 1 1.213943e+07 \n",
"2010 2008 OTA 2 8.599292e+05 \n",
"2011 2009 OTA 2 8.599292e+05 \n",
"2012 2010 OTA 2 8.599292e+05 \n",
"2013 2011 OTA 2 8.599292e+05 \n",
"2014 2012 OTA 2 8.599292e+05 \n",
"2015 2013 OTA 2 8.599292e+05 \n",
"2016 2014 OTA 2 8.599292e+05 \n",
"2017 2015 OTA 2 8.599292e+05 \n",
"2018 2016 OTA 2 8.599292e+05 \n",
"2019 2017 OTA 2 8.599292e+05 \n",
"... ... \n",
"2010 2008 ROX 1 1.614955e+06 \n",
"2011 2009 ROX 1 1.614955e+06 \n",
"2012 2010 ROX 1 1.614955e+06 \n",
"2013 2011 ROX 1 1.614955e+06 \n",
"2014 2012 ROX 1 1.614955e+06 \n",
"2015 2013 ROX 1 1.614955e+06 \n",
"2016 2014 ROX 1 1.614955e+06 \n",
"2017 2015 ROX 1 1.614955e+06 \n",
"2018 2016 ROX 1 1.614955e+06 \n",
"2019 2017 ROX 1 1.614955e+06 \n",
"2010 2008 TWI 1 1.205853e+06 \n",
"2011 2009 TWI 1 1.205853e+06 \n",
"2012 2010 TWI 1 1.205853e+06 \n",
"2013 2011 TWI 1 1.205853e+06 \n",
"2014 2012 TWI 1 1.205853e+06 \n",
"2015 2013 TWI 1 1.205853e+06 \n",
"2016 2014 TWI 1 1.205853e+06 \n",
"2017 2015 TWI 1 1.205853e+06 \n",
"2018 2016 TWI 1 1.205853e+06 \n",
"2019 2017 TWI 1 1.205853e+06 \n",
"2010 2008 TWI 2 4.754667e+06 \n",
"2011 2009 TWI 2 4.754667e+06 \n",
"2012 2010 TWI 2 4.754667e+06 \n",
"2013 2011 TWI 2 4.754667e+06 \n",
"2014 2012 TWI 2 4.754667e+06 \n",
"2015 2013 TWI 2 4.754667e+06 \n",
"2016 2014 TWI 2 4.754667e+06 \n",
"2017 2015 TWI 2 4.754667e+06 \n",
"2018 2016 TWI 2 4.754667e+06 \n",
"2019 2017 TWI 2 4.754667e+06 \n",
"\n",
"[220 rows x 5 columns]"
]
},
"execution_count": 1549,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test=data.loc[:,['p_yr','m_yr','bb','type', 'pk_q', 'dg_q']]\n",
"test=test.set_index(['p_yr','m_yr','bb','type',])\n",
"test['Load']=test.pk_q+test.dg_q\n",
"test=test.rename(index=str, columns={\"pk_q\": \"Offtake\"})\n",
"test['AMDvol_t']=np.where(amd0['type']==1, test['Load'],amd0['Offtake'])\n",
"test['AMDvol']=test['AMDvol_t'].groupby(level=[2,3]).transform(sum)\n",
"\n",
"\n",
"test"
]
},
{
"cell_type": "code",
"execution_count": 1545,
"metadata": {},
"outputs": [],
"source": [
"#share calculator\n",
"def rollitup(x):\n",
" for x in x:\n",
" return x/x.rolling(5).sum()\n",
"\n",
"#IPC_hhi['IPC_share'] = IPC_hhi.IPC_counts.groupby(level=0).transform(ipc_share) "
]
},
{
"cell_type": "code",
"execution_count": 1557,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" Offtake | \n",
" dg_q | \n",
" Load | \n",
" AMDvol_t | \n",
" AMDvol | \n",
"
\n",
" \n",
" AMDvol_t | \n",
" p_yr | \n",
" m_yr | \n",
" bb | \n",
" type | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 1.558805e+05 | \n",
" 2010 | \n",
" 2008 | \n",
" MDN | \n",
" 1 | \n",
" 144083.029 | \n",
" 11797.4595 | \n",
" 1.558805e+05 | \n",
" 1.558805e+05 | \n",
" 1.611476e+06 | \n",
"
\n",
" \n",
" 1.577338e+05 | \n",
" 2011 | \n",
" 2009 | \n",
" MDN | \n",
" 1 | \n",
" 140366.912 | \n",
" 17366.8980 | \n",
" 1.577338e+05 | \n",
" 1.577338e+05 | \n",
" 1.611476e+06 | \n",
"
\n",
" \n",
" 1.573033e+05 | \n",
" 2012 | \n",
" 2010 | \n",
" MDN | \n",
" 1 | \n",
" 134911.622 | \n",
" 22391.6450 | \n",
" 1.573033e+05 | \n",
" 1.573033e+05 | \n",
" 1.611476e+06 | \n",
"
\n",
" \n",
" 1.606188e+05 | \n",
" 2013 | \n",
" 2011 | \n",
" MDN | \n",
" 1 | \n",
" 137812.312 | \n",
" 22806.4640 | \n",
" 1.606188e+05 | \n",
" 1.606188e+05 | \n",
" 1.611476e+06 | \n",
"
\n",
" \n",
" 1.615703e+05 | \n",
" 2014 | \n",
" 2012 | \n",
" MDN | \n",
" 1 | \n",
" 138898.772 | \n",
" 22671.5450 | \n",
" 1.615703e+05 | \n",
" 1.615703e+05 | \n",
" 1.611476e+06 | \n",
"
\n",
" \n",
" 1.594903e+05 | \n",
" 2015 | \n",
" 2013 | \n",
" MDN | \n",
" 1 | \n",
" 136496.480 | \n",
" 22993.7990 | \n",
" 1.594903e+05 | \n",
" 1.594903e+05 | \n",
" 1.611476e+06 | \n",
"
\n",
" \n",
" 1.608143e+05 | \n",
" 2016 | \n",
" 2014 | \n",
" MDN | \n",
" 1 | \n",
" 138299.427 | \n",
" 22514.8860 | \n",
" 1.608143e+05 | \n",
" 1.608143e+05 | \n",
" 1.611476e+06 | \n",
"
\n",
" \n",
" 1.610786e+05 | \n",
" 2017 | \n",
" 2015 | \n",
" MDN | \n",
" 1 | \n",
" 138593.910 | \n",
" 22484.7400 | \n",
" 1.610786e+05 | \n",
" 1.610786e+05 | \n",
" 1.611476e+06 | \n",
"
\n",
" \n",
" 1.662916e+05 | \n",
" 2018 | \n",
" 2016 | \n",
" MDN | \n",
" 1 | \n",
" 141787.743 | \n",
" 24503.8910 | \n",
" 1.662916e+05 | \n",
" 1.662916e+05 | \n",
" 1.611476e+06 | \n",
"
\n",
" \n",
" 1.706945e+05 | \n",
" 2019 | \n",
" 2017 | \n",
" MDN | \n",
" 1 | \n",
" 146591.862 | \n",
" 24102.6640 | \n",
" 1.706945e+05 | \n",
" 1.706945e+05 | \n",
" 1.611476e+06 | \n",
"
\n",
" \n",
" 1.207333e+06 | \n",
" 2010 | \n",
" 2008 | \n",
" OTA | \n",
" 1 | \n",
" 1183840.102 | \n",
" 23492.4160 | \n",
" 1.207333e+06 | \n",
" 1.207333e+06 | \n",
" 1.213943e+07 | \n",
"
\n",
" \n",
" 1.230646e+06 | \n",
" 2011 | \n",
" 2009 | \n",
" OTA | \n",
" 1 | \n",
" 1219108.248 | \n",
" 11537.7990 | \n",
" 1.230646e+06 | \n",
" 1.230646e+06 | \n",
" 1.213943e+07 | \n",
"
\n",
" \n",
" 1.207086e+06 | \n",
" 2012 | \n",
" 2010 | \n",
" OTA | \n",
" 1 | \n",
" 1194459.817 | \n",
" 12626.2800 | \n",
" 1.207086e+06 | \n",
" 1.207086e+06 | \n",
" 1.213943e+07 | \n",
"
\n",
" \n",
" 1.224309e+06 | \n",
" 2013 | \n",
" 2011 | \n",
" OTA | \n",
" 1 | \n",
" 1210772.119 | \n",
" 13536.3880 | \n",
" 1.224309e+06 | \n",
" 1.224309e+06 | \n",
" 1.213943e+07 | \n",
"
\n",
" \n",
" 1.219633e+06 | \n",
" 2014 | \n",
" 2012 | \n",
" OTA | \n",
" 1 | \n",
" 1205481.349 | \n",
" 14151.6620 | \n",
" 1.219633e+06 | \n",
" 1.219633e+06 | \n",
" 1.213943e+07 | \n",
"
\n",
" \n",
" 1.210206e+06 | \n",
" 2015 | \n",
" 2013 | \n",
" OTA | \n",
" 1 | \n",
" 1198370.529 | \n",
" 11835.7340 | \n",
" 1.210206e+06 | \n",
" 1.210206e+06 | \n",
" 1.213943e+07 | \n",
"
\n",
" \n",
" 1.205916e+06 | \n",
" 2016 | \n",
" 2014 | \n",
" OTA | \n",
" 1 | \n",
" 1193017.741 | \n",
" 12898.2790 | \n",
" 1.205916e+06 | \n",
" 1.205916e+06 | \n",
" 1.213943e+07 | \n",
"
\n",
" \n",
" 1.234350e+06 | \n",
" 2017 | \n",
" 2015 | \n",
" OTA | \n",
" 1 | \n",
" 1221458.225 | \n",
" 12891.6350 | \n",
" 1.234350e+06 | \n",
" 1.234350e+06 | \n",
" 1.213943e+07 | \n",
"
\n",
" \n",
" 1.202472e+06 | \n",
" 2018 | \n",
" 2016 | \n",
" OTA | \n",
" 1 | \n",
" 1187312.464 | \n",
" 15159.3290 | \n",
" 1.202472e+06 | \n",
" 1.202472e+06 | \n",
" 1.213943e+07 | \n",
"
\n",
" \n",
" 1.197480e+06 | \n",
" 2019 | \n",
" 2017 | \n",
" OTA | \n",
" 1 | \n",
" 1180527.262 | \n",
" 16952.7390 | \n",
" 1.197480e+06 | \n",
" 1.197480e+06 | \n",
" 1.213943e+07 | \n",
"
\n",
" \n",
" 6.153566e+04 | \n",
" 2010 | \n",
" 2008 | \n",
" OTA | \n",
" 2 | \n",
" 61535.658 | \n",
" 50842.9600 | \n",
" 1.123786e+05 | \n",
" 6.153566e+04 | \n",
" 8.599292e+05 | \n",
"
\n",
" \n",
" 8.864029e+04 | \n",
" 2011 | \n",
" 2009 | \n",
" OTA | \n",
" 2 | \n",
" 88640.291 | \n",
" 22335.7890 | \n",
" 1.109761e+05 | \n",
" 8.864029e+04 | \n",
" 8.599292e+05 | \n",
"
\n",
" \n",
" 9.612000e+04 | \n",
" 2012 | \n",
" 2010 | \n",
" OTA | \n",
" 2 | \n",
" 96119.999 | \n",
" 23226.1480 | \n",
" 1.193461e+05 | \n",
" 9.612000e+04 | \n",
" 8.599292e+05 | \n",
"
\n",
" \n",
" 1.017291e+05 | \n",
" 2013 | \n",
" 2011 | \n",
" OTA | \n",
" 2 | \n",
" 101729.079 | \n",
" 17036.8170 | \n",
" 1.187659e+05 | \n",
" 1.017291e+05 | \n",
" 8.599292e+05 | \n",
"
\n",
" \n",
" 9.248266e+04 | \n",
" 2014 | \n",
" 2012 | \n",
" OTA | \n",
" 2 | \n",
" 92482.659 | \n",
" 26078.7700 | \n",
" 1.185614e+05 | \n",
" 9.248266e+04 | \n",
" 8.599292e+05 | \n",
"
\n",
" \n",
" 8.446421e+04 | \n",
" 2015 | \n",
" 2013 | \n",
" OTA | \n",
" 2 | \n",
" 84464.206 | \n",
" 33032.1290 | \n",
" 1.174963e+05 | \n",
" 8.446421e+04 | \n",
" 8.599292e+05 | \n",
"
\n",
" \n",
" 8.142792e+04 | \n",
" 2016 | \n",
" 2014 | \n",
" OTA | \n",
" 2 | \n",
" 81427.923 | \n",
" 31951.2370 | \n",
" 1.133792e+05 | \n",
" 8.142792e+04 | \n",
" 8.599292e+05 | \n",
"
\n",
" \n",
" 7.987106e+04 | \n",
" 2017 | \n",
" 2015 | \n",
" OTA | \n",
" 2 | \n",
" 79871.060 | \n",
" 31230.0950 | \n",
" 1.111012e+05 | \n",
" 7.987106e+04 | \n",
" 8.599292e+05 | \n",
"
\n",
" \n",
" 8.529446e+04 | \n",
" 2018 | \n",
" 2016 | \n",
" OTA | \n",
" 2 | \n",
" 85294.465 | \n",
" 32605.1460 | \n",
" 1.178996e+05 | \n",
" 8.529446e+04 | \n",
" 8.599292e+05 | \n",
"
\n",
" \n",
" 8.836385e+04 | \n",
" 2019 | \n",
" 2017 | \n",
" OTA | \n",
" 2 | \n",
" 88363.849 | \n",
" 33427.7390 | \n",
" 1.217916e+05 | \n",
" 8.836385e+04 | \n",
" 8.599292e+05 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 1.641231e+05 | \n",
" 2010 | \n",
" 2008 | \n",
" ROX | \n",
" 1 | \n",
" 138057.427 | \n",
" 26065.6565 | \n",
" 1.641231e+05 | \n",
" 1.641231e+05 | \n",
" 1.614955e+06 | \n",
"
\n",
" \n",
" 1.563985e+05 | \n",
" 2011 | \n",
" 2009 | \n",
" ROX | \n",
" 1 | \n",
" 138411.985 | \n",
" 17986.4830 | \n",
" 1.563985e+05 | \n",
" 1.563985e+05 | \n",
" 1.614955e+06 | \n",
"
\n",
" \n",
" 1.637344e+05 | \n",
" 2012 | \n",
" 2010 | \n",
" ROX | \n",
" 1 | \n",
" 133450.301 | \n",
" 30284.0660 | \n",
" 1.637344e+05 | \n",
" 1.637344e+05 | \n",
" 1.614955e+06 | \n",
"
\n",
" \n",
" 1.670257e+05 | \n",
" 2013 | \n",
" 2011 | \n",
" ROX | \n",
" 1 | \n",
" 135724.284 | \n",
" 31301.3990 | \n",
" 1.670257e+05 | \n",
" 1.670257e+05 | \n",
" 1.614955e+06 | \n",
"
\n",
" \n",
" 1.575375e+05 | \n",
" 2014 | \n",
" 2012 | \n",
" ROX | \n",
" 1 | \n",
" 124734.103 | \n",
" 32803.4190 | \n",
" 1.575375e+05 | \n",
" 1.575375e+05 | \n",
" 1.614955e+06 | \n",
"
\n",
" \n",
" 1.612832e+05 | \n",
" 2015 | \n",
" 2013 | \n",
" ROX | \n",
" 1 | \n",
" 127376.091 | \n",
" 33907.1540 | \n",
" 1.612832e+05 | \n",
" 1.612832e+05 | \n",
" 1.614955e+06 | \n",
"
\n",
" \n",
" 1.603286e+05 | \n",
" 2016 | \n",
" 2014 | \n",
" ROX | \n",
" 1 | \n",
" 125608.143 | \n",
" 34720.4530 | \n",
" 1.603286e+05 | \n",
" 1.603286e+05 | \n",
" 1.614955e+06 | \n",
"
\n",
" \n",
" 1.637120e+05 | \n",
" 2017 | \n",
" 2015 | \n",
" ROX | \n",
" 1 | \n",
" 128329.755 | \n",
" 35382.2500 | \n",
" 1.637120e+05 | \n",
" 1.637120e+05 | \n",
" 1.614955e+06 | \n",
"
\n",
" \n",
" 1.576343e+05 | \n",
" 2018 | \n",
" 2016 | \n",
" ROX | \n",
" 1 | \n",
" 123696.330 | \n",
" 33937.9490 | \n",
" 1.576343e+05 | \n",
" 1.576343e+05 | \n",
" 1.614955e+06 | \n",
"
\n",
" \n",
" 1.631780e+05 | \n",
" 2019 | \n",
" 2017 | \n",
" ROX | \n",
" 1 | \n",
" 125151.168 | \n",
" 38026.8040 | \n",
" 1.631780e+05 | \n",
" 1.631780e+05 | \n",
" 1.614955e+06 | \n",
"
\n",
" \n",
" 1.208363e+05 | \n",
" 2010 | \n",
" 2008 | \n",
" TWI | \n",
" 1 | \n",
" 103184.227 | \n",
" 17652.0640 | \n",
" 1.208363e+05 | \n",
" 1.208363e+05 | \n",
" 1.205853e+06 | \n",
"
\n",
" \n",
" 1.174155e+05 | \n",
" 2011 | \n",
" 2009 | \n",
" TWI | \n",
" 1 | \n",
" 100157.693 | \n",
" 17257.7680 | \n",
" 1.174155e+05 | \n",
" 1.174155e+05 | \n",
" 1.205853e+06 | \n",
"
\n",
" \n",
" 1.159799e+05 | \n",
" 2012 | \n",
" 2010 | \n",
" TWI | \n",
" 1 | \n",
" 100854.940 | \n",
" 15124.9930 | \n",
" 1.159799e+05 | \n",
" 1.159799e+05 | \n",
" 1.205853e+06 | \n",
"
\n",
" \n",
" 1.221440e+05 | \n",
" 2013 | \n",
" 2011 | \n",
" TWI | \n",
" 1 | \n",
" 102444.416 | \n",
" 19699.5720 | \n",
" 1.221440e+05 | \n",
" 1.221440e+05 | \n",
" 1.205853e+06 | \n",
"
\n",
" \n",
" 1.245789e+05 | \n",
" 2014 | \n",
" 2012 | \n",
" TWI | \n",
" 1 | \n",
" 106588.337 | \n",
" 17990.5300 | \n",
" 1.245789e+05 | \n",
" 1.245789e+05 | \n",
" 1.205853e+06 | \n",
"
\n",
" \n",
" 1.201576e+05 | \n",
" 2015 | \n",
" 2013 | \n",
" TWI | \n",
" 1 | \n",
" 101979.485 | \n",
" 18178.1560 | \n",
" 1.201576e+05 | \n",
" 1.201576e+05 | \n",
" 1.205853e+06 | \n",
"
\n",
" \n",
" 1.211288e+05 | \n",
" 2016 | \n",
" 2014 | \n",
" TWI | \n",
" 1 | \n",
" 103401.556 | \n",
" 17727.2210 | \n",
" 1.211288e+05 | \n",
" 1.211288e+05 | \n",
" 1.205853e+06 | \n",
"
\n",
" \n",
" 1.227345e+05 | \n",
" 2017 | \n",
" 2015 | \n",
" TWI | \n",
" 1 | \n",
" 104582.768 | \n",
" 18151.7690 | \n",
" 1.227345e+05 | \n",
" 1.227345e+05 | \n",
" 1.205853e+06 | \n",
"
\n",
" \n",
" 1.205239e+05 | \n",
" 2018 | \n",
" 2016 | \n",
" TWI | \n",
" 1 | \n",
" 100611.685 | \n",
" 19912.2220 | \n",
" 1.205239e+05 | \n",
" 1.205239e+05 | \n",
" 1.205853e+06 | \n",
"
\n",
" \n",
" 1.203534e+05 | \n",
" 2019 | \n",
" 2017 | \n",
" TWI | \n",
" 1 | \n",
" 102849.534 | \n",
" 17503.8740 | \n",
" 1.203534e+05 | \n",
" 1.203534e+05 | \n",
" 1.205853e+06 | \n",
"
\n",
" \n",
" 4.824518e+05 | \n",
" 2010 | \n",
" 2008 | \n",
" TWI | \n",
" 2 | \n",
" 482451.805 | \n",
" 0.0425 | \n",
" 4.824518e+05 | \n",
" 4.824518e+05 | \n",
" 4.754667e+06 | \n",
"
\n",
" \n",
" 4.353851e+05 | \n",
" 2011 | \n",
" 2009 | \n",
" TWI | \n",
" 2 | \n",
" 435385.136 | \n",
" 0.0160 | \n",
" 4.353852e+05 | \n",
" 4.353851e+05 | \n",
" 4.754667e+06 | \n",
"
\n",
" \n",
" 4.955712e+05 | \n",
" 2012 | \n",
" 2010 | \n",
" TWI | \n",
" 2 | \n",
" 495571.192 | \n",
" 0.0160 | \n",
" 4.955712e+05 | \n",
" 4.955712e+05 | \n",
" 4.754667e+06 | \n",
"
\n",
" \n",
" 5.101073e+05 | \n",
" 2013 | \n",
" 2011 | \n",
" TWI | \n",
" 2 | \n",
" 510107.258 | \n",
" 0.0130 | \n",
" 5.101073e+05 | \n",
" 5.101073e+05 | \n",
" 4.754667e+06 | \n",
"
\n",
" \n",
" 4.882432e+05 | \n",
" 2014 | \n",
" 2012 | \n",
" TWI | \n",
" 2 | \n",
" 488243.191 | \n",
" 0.0280 | \n",
" 4.882432e+05 | \n",
" 4.882432e+05 | \n",
" 4.754667e+06 | \n",
"
\n",
" \n",
" 4.562450e+05 | \n",
" 2015 | \n",
" 2013 | \n",
" TWI | \n",
" 2 | \n",
" 456245.048 | \n",
" 0.0210 | \n",
" 4.562451e+05 | \n",
" 4.562450e+05 | \n",
" 4.754667e+06 | \n",
"
\n",
" \n",
" 4.713079e+05 | \n",
" 2016 | \n",
" 2014 | \n",
" TWI | \n",
" 2 | \n",
" 471307.884 | \n",
" 0.0280 | \n",
" 4.713079e+05 | \n",
" 4.713079e+05 | \n",
" 4.754667e+06 | \n",
"
\n",
" \n",
" 4.740372e+05 | \n",
" 2017 | \n",
" 2015 | \n",
" TWI | \n",
" 2 | \n",
" 474037.226 | \n",
" 0.0240 | \n",
" 4.740372e+05 | \n",
" 4.740372e+05 | \n",
" 4.754667e+06 | \n",
"
\n",
" \n",
" 4.698824e+05 | \n",
" 2018 | \n",
" 2016 | \n",
" TWI | \n",
" 2 | \n",
" 469882.436 | \n",
" 0.0310 | \n",
" 4.698825e+05 | \n",
" 4.698824e+05 | \n",
" 4.754667e+06 | \n",
"
\n",
" \n",
" 4.714362e+05 | \n",
" 2019 | \n",
" 2017 | \n",
" TWI | \n",
" 2 | \n",
" 471436.197 | \n",
" 0.0240 | \n",
" 4.714362e+05 | \n",
" 4.714362e+05 | \n",
" 4.754667e+06 | \n",
"
\n",
" \n",
"
\n",
"
220 rows × 5 columns
\n",
"
"
],
"text/plain": [
" Offtake dg_q Load \\\n",
"AMDvol_t p_yr m_yr bb type \n",
"1.558805e+05 2010 2008 MDN 1 144083.029 11797.4595 1.558805e+05 \n",
"1.577338e+05 2011 2009 MDN 1 140366.912 17366.8980 1.577338e+05 \n",
"1.573033e+05 2012 2010 MDN 1 134911.622 22391.6450 1.573033e+05 \n",
"1.606188e+05 2013 2011 MDN 1 137812.312 22806.4640 1.606188e+05 \n",
"1.615703e+05 2014 2012 MDN 1 138898.772 22671.5450 1.615703e+05 \n",
"1.594903e+05 2015 2013 MDN 1 136496.480 22993.7990 1.594903e+05 \n",
"1.608143e+05 2016 2014 MDN 1 138299.427 22514.8860 1.608143e+05 \n",
"1.610786e+05 2017 2015 MDN 1 138593.910 22484.7400 1.610786e+05 \n",
"1.662916e+05 2018 2016 MDN 1 141787.743 24503.8910 1.662916e+05 \n",
"1.706945e+05 2019 2017 MDN 1 146591.862 24102.6640 1.706945e+05 \n",
"1.207333e+06 2010 2008 OTA 1 1183840.102 23492.4160 1.207333e+06 \n",
"1.230646e+06 2011 2009 OTA 1 1219108.248 11537.7990 1.230646e+06 \n",
"1.207086e+06 2012 2010 OTA 1 1194459.817 12626.2800 1.207086e+06 \n",
"1.224309e+06 2013 2011 OTA 1 1210772.119 13536.3880 1.224309e+06 \n",
"1.219633e+06 2014 2012 OTA 1 1205481.349 14151.6620 1.219633e+06 \n",
"1.210206e+06 2015 2013 OTA 1 1198370.529 11835.7340 1.210206e+06 \n",
"1.205916e+06 2016 2014 OTA 1 1193017.741 12898.2790 1.205916e+06 \n",
"1.234350e+06 2017 2015 OTA 1 1221458.225 12891.6350 1.234350e+06 \n",
"1.202472e+06 2018 2016 OTA 1 1187312.464 15159.3290 1.202472e+06 \n",
"1.197480e+06 2019 2017 OTA 1 1180527.262 16952.7390 1.197480e+06 \n",
"6.153566e+04 2010 2008 OTA 2 61535.658 50842.9600 1.123786e+05 \n",
"8.864029e+04 2011 2009 OTA 2 88640.291 22335.7890 1.109761e+05 \n",
"9.612000e+04 2012 2010 OTA 2 96119.999 23226.1480 1.193461e+05 \n",
"1.017291e+05 2013 2011 OTA 2 101729.079 17036.8170 1.187659e+05 \n",
"9.248266e+04 2014 2012 OTA 2 92482.659 26078.7700 1.185614e+05 \n",
"8.446421e+04 2015 2013 OTA 2 84464.206 33032.1290 1.174963e+05 \n",
"8.142792e+04 2016 2014 OTA 2 81427.923 31951.2370 1.133792e+05 \n",
"7.987106e+04 2017 2015 OTA 2 79871.060 31230.0950 1.111012e+05 \n",
"8.529446e+04 2018 2016 OTA 2 85294.465 32605.1460 1.178996e+05 \n",
"8.836385e+04 2019 2017 OTA 2 88363.849 33427.7390 1.217916e+05 \n",
"... ... ... ... \n",
"1.641231e+05 2010 2008 ROX 1 138057.427 26065.6565 1.641231e+05 \n",
"1.563985e+05 2011 2009 ROX 1 138411.985 17986.4830 1.563985e+05 \n",
"1.637344e+05 2012 2010 ROX 1 133450.301 30284.0660 1.637344e+05 \n",
"1.670257e+05 2013 2011 ROX 1 135724.284 31301.3990 1.670257e+05 \n",
"1.575375e+05 2014 2012 ROX 1 124734.103 32803.4190 1.575375e+05 \n",
"1.612832e+05 2015 2013 ROX 1 127376.091 33907.1540 1.612832e+05 \n",
"1.603286e+05 2016 2014 ROX 1 125608.143 34720.4530 1.603286e+05 \n",
"1.637120e+05 2017 2015 ROX 1 128329.755 35382.2500 1.637120e+05 \n",
"1.576343e+05 2018 2016 ROX 1 123696.330 33937.9490 1.576343e+05 \n",
"1.631780e+05 2019 2017 ROX 1 125151.168 38026.8040 1.631780e+05 \n",
"1.208363e+05 2010 2008 TWI 1 103184.227 17652.0640 1.208363e+05 \n",
"1.174155e+05 2011 2009 TWI 1 100157.693 17257.7680 1.174155e+05 \n",
"1.159799e+05 2012 2010 TWI 1 100854.940 15124.9930 1.159799e+05 \n",
"1.221440e+05 2013 2011 TWI 1 102444.416 19699.5720 1.221440e+05 \n",
"1.245789e+05 2014 2012 TWI 1 106588.337 17990.5300 1.245789e+05 \n",
"1.201576e+05 2015 2013 TWI 1 101979.485 18178.1560 1.201576e+05 \n",
"1.211288e+05 2016 2014 TWI 1 103401.556 17727.2210 1.211288e+05 \n",
"1.227345e+05 2017 2015 TWI 1 104582.768 18151.7690 1.227345e+05 \n",
"1.205239e+05 2018 2016 TWI 1 100611.685 19912.2220 1.205239e+05 \n",
"1.203534e+05 2019 2017 TWI 1 102849.534 17503.8740 1.203534e+05 \n",
"4.824518e+05 2010 2008 TWI 2 482451.805 0.0425 4.824518e+05 \n",
"4.353851e+05 2011 2009 TWI 2 435385.136 0.0160 4.353852e+05 \n",
"4.955712e+05 2012 2010 TWI 2 495571.192 0.0160 4.955712e+05 \n",
"5.101073e+05 2013 2011 TWI 2 510107.258 0.0130 5.101073e+05 \n",
"4.882432e+05 2014 2012 TWI 2 488243.191 0.0280 4.882432e+05 \n",
"4.562450e+05 2015 2013 TWI 2 456245.048 0.0210 4.562451e+05 \n",
"4.713079e+05 2016 2014 TWI 2 471307.884 0.0280 4.713079e+05 \n",
"4.740372e+05 2017 2015 TWI 2 474037.226 0.0240 4.740372e+05 \n",
"4.698824e+05 2018 2016 TWI 2 469882.436 0.0310 4.698825e+05 \n",
"4.714362e+05 2019 2017 TWI 2 471436.197 0.0240 4.714362e+05 \n",
"\n",
" AMDvol_t AMDvol \n",
"AMDvol_t p_yr m_yr bb type \n",
"1.558805e+05 2010 2008 MDN 1 1.558805e+05 1.611476e+06 \n",
"1.577338e+05 2011 2009 MDN 1 1.577338e+05 1.611476e+06 \n",
"1.573033e+05 2012 2010 MDN 1 1.573033e+05 1.611476e+06 \n",
"1.606188e+05 2013 2011 MDN 1 1.606188e+05 1.611476e+06 \n",
"1.615703e+05 2014 2012 MDN 1 1.615703e+05 1.611476e+06 \n",
"1.594903e+05 2015 2013 MDN 1 1.594903e+05 1.611476e+06 \n",
"1.608143e+05 2016 2014 MDN 1 1.608143e+05 1.611476e+06 \n",
"1.610786e+05 2017 2015 MDN 1 1.610786e+05 1.611476e+06 \n",
"1.662916e+05 2018 2016 MDN 1 1.662916e+05 1.611476e+06 \n",
"1.706945e+05 2019 2017 MDN 1 1.706945e+05 1.611476e+06 \n",
"1.207333e+06 2010 2008 OTA 1 1.207333e+06 1.213943e+07 \n",
"1.230646e+06 2011 2009 OTA 1 1.230646e+06 1.213943e+07 \n",
"1.207086e+06 2012 2010 OTA 1 1.207086e+06 1.213943e+07 \n",
"1.224309e+06 2013 2011 OTA 1 1.224309e+06 1.213943e+07 \n",
"1.219633e+06 2014 2012 OTA 1 1.219633e+06 1.213943e+07 \n",
"1.210206e+06 2015 2013 OTA 1 1.210206e+06 1.213943e+07 \n",
"1.205916e+06 2016 2014 OTA 1 1.205916e+06 1.213943e+07 \n",
"1.234350e+06 2017 2015 OTA 1 1.234350e+06 1.213943e+07 \n",
"1.202472e+06 2018 2016 OTA 1 1.202472e+06 1.213943e+07 \n",
"1.197480e+06 2019 2017 OTA 1 1.197480e+06 1.213943e+07 \n",
"6.153566e+04 2010 2008 OTA 2 6.153566e+04 8.599292e+05 \n",
"8.864029e+04 2011 2009 OTA 2 8.864029e+04 8.599292e+05 \n",
"9.612000e+04 2012 2010 OTA 2 9.612000e+04 8.599292e+05 \n",
"1.017291e+05 2013 2011 OTA 2 1.017291e+05 8.599292e+05 \n",
"9.248266e+04 2014 2012 OTA 2 9.248266e+04 8.599292e+05 \n",
"8.446421e+04 2015 2013 OTA 2 8.446421e+04 8.599292e+05 \n",
"8.142792e+04 2016 2014 OTA 2 8.142792e+04 8.599292e+05 \n",
"7.987106e+04 2017 2015 OTA 2 7.987106e+04 8.599292e+05 \n",
"8.529446e+04 2018 2016 OTA 2 8.529446e+04 8.599292e+05 \n",
"8.836385e+04 2019 2017 OTA 2 8.836385e+04 8.599292e+05 \n",
"... ... ... \n",
"1.641231e+05 2010 2008 ROX 1 1.641231e+05 1.614955e+06 \n",
"1.563985e+05 2011 2009 ROX 1 1.563985e+05 1.614955e+06 \n",
"1.637344e+05 2012 2010 ROX 1 1.637344e+05 1.614955e+06 \n",
"1.670257e+05 2013 2011 ROX 1 1.670257e+05 1.614955e+06 \n",
"1.575375e+05 2014 2012 ROX 1 1.575375e+05 1.614955e+06 \n",
"1.612832e+05 2015 2013 ROX 1 1.612832e+05 1.614955e+06 \n",
"1.603286e+05 2016 2014 ROX 1 1.603286e+05 1.614955e+06 \n",
"1.637120e+05 2017 2015 ROX 1 1.637120e+05 1.614955e+06 \n",
"1.576343e+05 2018 2016 ROX 1 1.576343e+05 1.614955e+06 \n",
"1.631780e+05 2019 2017 ROX 1 1.631780e+05 1.614955e+06 \n",
"1.208363e+05 2010 2008 TWI 1 1.208363e+05 1.205853e+06 \n",
"1.174155e+05 2011 2009 TWI 1 1.174155e+05 1.205853e+06 \n",
"1.159799e+05 2012 2010 TWI 1 1.159799e+05 1.205853e+06 \n",
"1.221440e+05 2013 2011 TWI 1 1.221440e+05 1.205853e+06 \n",
"1.245789e+05 2014 2012 TWI 1 1.245789e+05 1.205853e+06 \n",
"1.201576e+05 2015 2013 TWI 1 1.201576e+05 1.205853e+06 \n",
"1.211288e+05 2016 2014 TWI 1 1.211288e+05 1.205853e+06 \n",
"1.227345e+05 2017 2015 TWI 1 1.227345e+05 1.205853e+06 \n",
"1.205239e+05 2018 2016 TWI 1 1.205239e+05 1.205853e+06 \n",
"1.203534e+05 2019 2017 TWI 1 1.203534e+05 1.205853e+06 \n",
"4.824518e+05 2010 2008 TWI 2 4.824518e+05 4.754667e+06 \n",
"4.353851e+05 2011 2009 TWI 2 4.353851e+05 4.754667e+06 \n",
"4.955712e+05 2012 2010 TWI 2 4.955712e+05 4.754667e+06 \n",
"5.101073e+05 2013 2011 TWI 2 5.101073e+05 4.754667e+06 \n",
"4.882432e+05 2014 2012 TWI 2 4.882432e+05 4.754667e+06 \n",
"4.562450e+05 2015 2013 TWI 2 4.562450e+05 4.754667e+06 \n",
"4.713079e+05 2016 2014 TWI 2 4.713079e+05 4.754667e+06 \n",
"4.740372e+05 2017 2015 TWI 2 4.740372e+05 4.754667e+06 \n",
"4.698824e+05 2018 2016 TWI 2 4.698824e+05 4.754667e+06 \n",
"4.714362e+05 2019 2017 TWI 2 4.714362e+05 4.754667e+06 \n",
"\n",
"[220 rows x 5 columns]"
]
},
"execution_count": 1557,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df1 = (test.iloc[::-1].groupby('AMDvol_t', sort=False).rolling(7, on='AMDvol',min_periods=0).sum().iloc[::-1])\n",
"df1"
]
},
{
"cell_type": "code",
"execution_count": 1507,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" p_yr | \n",
" m_yr | \n",
" bb | \n",
" type | \n",
" Load | \n",
" DG | \n",
" Offtake | \n",
" AMDvol_t | \n",
" AMDvol | \n",
" AMDvol_tot | \n",
" AMDshr | \n",
"
\n",
" \n",
" \n",
" \n",
" 5 | \n",
" 2015 | \n",
" 2013 | \n",
" MDN | \n",
" 1 | \n",
" 159490.279 | \n",
" 22993.799 | \n",
" 136496.480 | \n",
" 159490.279 | \n",
" 796716.449 | \n",
" 24652710.46 | \n",
" 0.032318 | \n",
"
\n",
" \n",
" 15 | \n",
" 2015 | \n",
" 2013 | \n",
" OTA | \n",
" 1 | \n",
" 1210206.263 | \n",
" 11835.734 | \n",
" 1198370.529 | \n",
" 1210206.263 | \n",
" 6091879.925 | \n",
" 24652710.46 | \n",
" 0.247108 | \n",
"
\n",
" \n",
" 25 | \n",
" 2015 | \n",
" 2013 | \n",
" OTA | \n",
" 2 | \n",
" 117496.335 | \n",
" 33032.129 | \n",
" 84464.206 | \n",
" 84464.206 | \n",
" 463436.234 | \n",
" 24652710.46 | \n",
" 0.018799 | \n",
"
\n",
" \n",
" 35 | \n",
" 2015 | \n",
" 2013 | \n",
" HLY | \n",
" 1 | \n",
" 351824.632 | \n",
" 39995.545 | \n",
" 311829.087 | \n",
" 351824.632 | \n",
" 1756133.355 | \n",
" 24652710.46 | \n",
" 0.071235 | \n",
"
\n",
" \n",
" 45 | \n",
" 2015 | \n",
" 2013 | \n",
" HLY | \n",
" 2 | \n",
" 53993.838 | \n",
" 0.033 | \n",
" 53993.805 | \n",
" 53993.805 | \n",
" 272056.259 | \n",
" 24652710.46 | \n",
" 0.011036 | \n",
"
\n",
" \n",
" 55 | \n",
" 2015 | \n",
" 2013 | \n",
" TRK | \n",
" 1 | \n",
" 248115.627 | \n",
" 33489.279 | \n",
" 214626.348 | \n",
" 248115.627 | \n",
" 1255901.948 | \n",
" 24652710.46 | \n",
" 0.050944 | \n",
"
\n",
" \n",
" 65 | \n",
" 2015 | \n",
" 2013 | \n",
" TRK | \n",
" 2 | \n",
" 39058.020 | \n",
" 0.018 | \n",
" 39058.002 | \n",
" 39058.002 | \n",
" 348328.752 | \n",
" 24652710.46 | \n",
" 0.014129 | \n",
"
\n",
" \n",
" 75 | \n",
" 2015 | \n",
" 2013 | \n",
" WKM | \n",
" 1 | \n",
" 66698.892 | \n",
" 31436.077 | \n",
" 35262.815 | \n",
" 66698.892 | \n",
" 340747.806 | \n",
" 24652710.46 | \n",
" 0.013822 | \n",
"
\n",
" \n",
" 85 | \n",
" 2015 | \n",
" 2013 | \n",
" RDF | \n",
" 1 | \n",
" 124346.834 | \n",
" 67.142 | \n",
" 124279.692 | \n",
" 124346.834 | \n",
" 642229.460 | \n",
" 24652710.46 | \n",
" 0.026051 | \n",
"
\n",
" \n",
" 95 | \n",
" 2015 | \n",
" 2013 | \n",
" RDF | \n",
" 2 | \n",
" 41247.726 | \n",
" 0.006 | \n",
" 41247.720 | \n",
" 41247.720 | \n",
" 192460.065 | \n",
" 24652710.46 | \n",
" 0.007807 | \n",
"
\n",
" \n",
" 105 | \n",
" 2015 | \n",
" 2013 | \n",
" SFD | \n",
" 1 | \n",
" 142655.638 | \n",
" 10648.043 | \n",
" 132007.595 | \n",
" 142655.638 | \n",
" 701846.555 | \n",
" 24652710.46 | \n",
" 0.028469 | \n",
"
\n",
" \n",
" 115 | \n",
" 2015 | \n",
" 2013 | \n",
" SFD | \n",
" 2 | \n",
" 5347.152 | \n",
" 0.010 | \n",
" 5347.142 | \n",
" 5347.142 | \n",
" 21297.137 | \n",
" 24652710.46 | \n",
" 0.000864 | \n",
"
\n",
" \n",
" 125 | \n",
" 2015 | \n",
" 2013 | \n",
" BPE | \n",
" 1 | \n",
" 164111.464 | \n",
" 39238.882 | \n",
" 124872.582 | \n",
" 164111.464 | \n",
" 838516.430 | \n",
" 24652710.46 | \n",
" 0.034013 | \n",
"
\n",
" \n",
" 135 | \n",
" 2015 | \n",
" 2013 | \n",
" BPE | \n",
" 2 | \n",
" 25360.363 | \n",
" 0.021 | \n",
" 25360.342 | \n",
" 25360.342 | \n",
" 132065.617 | \n",
" 24652710.46 | \n",
" 0.005357 | \n",
"
\n",
" \n",
" 145 | \n",
" 2015 | \n",
" 2013 | \n",
" HAY | \n",
" 1 | \n",
" 425854.112 | \n",
" 4101.506 | \n",
" 421752.606 | \n",
" 425854.112 | \n",
" 2227987.637 | \n",
" 24652710.46 | \n",
" 0.090375 | \n",
"
\n",
" \n",
" 155 | \n",
" 2015 | \n",
" 2013 | \n",
" KIK | \n",
" 1 | \n",
" 158358.927 | \n",
" 2118.888 | \n",
" 156240.039 | \n",
" 158358.927 | \n",
" 800499.650 | \n",
" 24652710.46 | \n",
" 0.032471 | \n",
"
\n",
" \n",
" 165 | \n",
" 2015 | \n",
" 2013 | \n",
" ISL | \n",
" 1 | \n",
" 628149.713 | \n",
" 21696.297 | \n",
" 606453.416 | \n",
" 628149.713 | \n",
" 3176017.658 | \n",
" 24652710.46 | \n",
" 0.128830 | \n",
"
\n",
" \n",
" 175 | \n",
" 2015 | \n",
" 2013 | \n",
" ISL | \n",
" 2 | \n",
" 6203.010 | \n",
" 0.009 | \n",
" 6203.001 | \n",
" 6203.001 | \n",
" 31860.301 | \n",
" 24652710.46 | \n",
" 0.001292 | \n",
"
\n",
" \n",
" 185 | \n",
" 2015 | \n",
" 2013 | \n",
" BEN | \n",
" 1 | \n",
" 103959.116 | \n",
" 12368.323 | \n",
" 91590.793 | \n",
" 103959.116 | \n",
" 770922.222 | \n",
" 24652710.46 | \n",
" 0.031271 | \n",
"
\n",
" \n",
" 195 | \n",
" 2015 | \n",
" 2013 | \n",
" ROX | \n",
" 1 | \n",
" 161283.245 | \n",
" 33907.154 | \n",
" 127376.091 | \n",
" 161283.245 | \n",
" 805979.285 | \n",
" 24652710.46 | \n",
" 0.032693 | \n",
"
\n",
" \n",
" 205 | \n",
" 2015 | \n",
" 2013 | \n",
" TWI | \n",
" 1 | \n",
" 120157.641 | \n",
" 18178.156 | \n",
" 101979.485 | \n",
" 120157.641 | \n",
" 600275.890 | \n",
" 24652710.46 | \n",
" 0.024349 | \n",
"
\n",
" \n",
" 215 | \n",
" 2015 | \n",
" 2013 | \n",
" TWI | \n",
" 2 | \n",
" 456245.069 | \n",
" 0.021 | \n",
" 456245.048 | \n",
" 456245.048 | \n",
" 2385551.825 | \n",
" 24652710.46 | \n",
" 0.096766 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" p_yr m_yr bb type Load DG Offtake AMDvol_t \\\n",
"5 2015 2013 MDN 1 159490.279 22993.799 136496.480 159490.279 \n",
"15 2015 2013 OTA 1 1210206.263 11835.734 1198370.529 1210206.263 \n",
"25 2015 2013 OTA 2 117496.335 33032.129 84464.206 84464.206 \n",
"35 2015 2013 HLY 1 351824.632 39995.545 311829.087 351824.632 \n",
"45 2015 2013 HLY 2 53993.838 0.033 53993.805 53993.805 \n",
"55 2015 2013 TRK 1 248115.627 33489.279 214626.348 248115.627 \n",
"65 2015 2013 TRK 2 39058.020 0.018 39058.002 39058.002 \n",
"75 2015 2013 WKM 1 66698.892 31436.077 35262.815 66698.892 \n",
"85 2015 2013 RDF 1 124346.834 67.142 124279.692 124346.834 \n",
"95 2015 2013 RDF 2 41247.726 0.006 41247.720 41247.720 \n",
"105 2015 2013 SFD 1 142655.638 10648.043 132007.595 142655.638 \n",
"115 2015 2013 SFD 2 5347.152 0.010 5347.142 5347.142 \n",
"125 2015 2013 BPE 1 164111.464 39238.882 124872.582 164111.464 \n",
"135 2015 2013 BPE 2 25360.363 0.021 25360.342 25360.342 \n",
"145 2015 2013 HAY 1 425854.112 4101.506 421752.606 425854.112 \n",
"155 2015 2013 KIK 1 158358.927 2118.888 156240.039 158358.927 \n",
"165 2015 2013 ISL 1 628149.713 21696.297 606453.416 628149.713 \n",
"175 2015 2013 ISL 2 6203.010 0.009 6203.001 6203.001 \n",
"185 2015 2013 BEN 1 103959.116 12368.323 91590.793 103959.116 \n",
"195 2015 2013 ROX 1 161283.245 33907.154 127376.091 161283.245 \n",
"205 2015 2013 TWI 1 120157.641 18178.156 101979.485 120157.641 \n",
"215 2015 2013 TWI 2 456245.069 0.021 456245.048 456245.048 \n",
"\n",
" AMDvol AMDvol_tot AMDshr \n",
"5 796716.449 24652710.46 0.032318 \n",
"15 6091879.925 24652710.46 0.247108 \n",
"25 463436.234 24652710.46 0.018799 \n",
"35 1756133.355 24652710.46 0.071235 \n",
"45 272056.259 24652710.46 0.011036 \n",
"55 1255901.948 24652710.46 0.050944 \n",
"65 348328.752 24652710.46 0.014129 \n",
"75 340747.806 24652710.46 0.013822 \n",
"85 642229.460 24652710.46 0.026051 \n",
"95 192460.065 24652710.46 0.007807 \n",
"105 701846.555 24652710.46 0.028469 \n",
"115 21297.137 24652710.46 0.000864 \n",
"125 838516.430 24652710.46 0.034013 \n",
"135 132065.617 24652710.46 0.005357 \n",
"145 2227987.637 24652710.46 0.090375 \n",
"155 800499.650 24652710.46 0.032471 \n",
"165 3176017.658 24652710.46 0.128830 \n",
"175 31860.301 24652710.46 0.001292 \n",
"185 770922.222 24652710.46 0.031271 \n",
"195 805979.285 24652710.46 0.032693 \n",
"205 600275.890 24652710.46 0.024349 \n",
"215 2385551.825 24652710.46 0.096766 "
]
},
"execution_count": 1507,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data=data\n",
"window=5\n",
"gross=1\n",
"\n",
"#reads in some data\n",
"amd0=data.loc[:,['p_yr','m_yr','bb','type']]\n",
"amd0['Load']=data.pk_q+data.dg_q\n",
"amd0['DG']=data.dg_q\n",
"amd0['Offtake']=data.loc[:,['pk_q']]\n",
"amd0['Offtake']=data.loc[:,['pk_q']]\n",
"\n",
"#two cases, type one and two, load if one (mass market), and offtake if 2 (large industrials) DG the difference\n",
"amd0['AMDvol_t']=np.where(amd0['type']==1, amd0['Load'],amd0['Offtake'])\n",
"#5 yearly rolling sum by BB and type\n",
"amd0['AMDvol']=amd0.groupby(['bb','type']).AMDvol_t.apply(lambda x: x.rolling(window=window).sum()).values\n",
"#Sum of the sums but over years, so for each year the total is the sum for all nodes and types of the rolling sums \n",
"#at that year this is the same number for all nodes and bb and type\n",
"amd0['AMDvol_tot'] = amd0['AMDvol'].groupby(amd0['m_yr']).transform('sum')\n",
"#divides the amd volume by the total for that year. \n",
"#the amd volume is a 5 yearly rolling average divided by the sum of the rolling averages for that year\n",
"#so the 5 years is averaged out\n",
"amd0['AMDshr']=amd0.AMDvol/amd0.AMDvol_tot\n",
"\n",
"#amd0[(amd0.bb=='OTA')]\n",
"amd0[(amd0.m_yr==2013)]"
]
},
{
"cell_type": "code",
"execution_count": 1117,
"metadata": {},
"outputs": [],
"source": [
"# D.6 Share of investments for reliability vs economic value\n",
"econ_share=1\n",
"load_reliab_shr = 20000/(20000+200)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
"# D.6 Create a benefit share calculation function"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# E. OTHER functions"
]
},
{
"cell_type": "code",
"execution_count": 1023,
"metadata": {},
"outputs": [],
"source": [
"# South island mean injection\n",
"def simi_f(data_gen=data_gen,window=5,ctype=0):\n",
" simi0=data_gen.loc[:,['p_yr','m_yr','bb','type']]\n",
" simi0['SIMIvol_t']=data_gen.pk_q+data_gen.sh_q+data_gen.off_q\n",
" simi0['SIMIvol_pk_t']=data_gen.pk_q\n",
" simi0['SIMIvol_dg_t']=data_gen.dg_q\n",
" simi0['SIMIvol_sh_t']=data_gen.sh_q\n",
" simi0['SIMIvol_off_t']=data_gen.off_q\n",
" simi0.loc[simi0['bb'].isin(ni_nodes), ['SIMIvol_t','SIMIvol_pk_t','SIMIvol_dg_t','SIMIvol_sh_t','SIMIvol_off_t']] = 0\n",
" simi0['SIMIvol']=simi0.groupby(['bb','type']).SIMIvol_t.apply(lambda x: x.rolling(window=window).sum()).values\n",
" simi0['SIMIvol_pk']=simi0.groupby(['bb','type']).SIMIvol_pk_t.apply(lambda x: x.rolling(window=window).sum()).values\n",
" simi0['SIMIvol_dg']=simi0.groupby(['bb','type']).SIMIvol_dg_t.apply(lambda x: x.rolling(window=window).sum()).values\n",
" simi0['SIMIvol_sh']=simi0.groupby(['bb','type']).SIMIvol_sh_t.apply(lambda x: x.rolling(window=window).sum()).values\n",
" simi0['SIMIvol_off']=simi0.groupby(['bb','type']).SIMIvol_off_t.apply(lambda x: x.rolling(window=window).sum()).values\n",
" simi0['SIMIvol_tot'] = simi0['SIMIvol'].groupby(simi0['m_yr']).transform('sum')\n",
" simi0['SIMIshr']=simi0.SIMIvol/simi0.SIMIvol_tot\n",
" return simi0"
]
},
{
"cell_type": "code",
"execution_count": 1465,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" p_yr | \n",
" m_yr | \n",
" bb | \n",
" type | \n",
" SIMIvol_t | \n",
" SIMIvol_pk_t | \n",
" SIMIvol_dg_t | \n",
" SIMIvol_sh_t | \n",
" SIMIvol_off_t | \n",
" SIMIvol | \n",
" SIMIvol_pk | \n",
" SIMIvol_dg | \n",
" SIMIvol_sh | \n",
" SIMIvol_off | \n",
" SIMIvol_tot | \n",
" SIMIshr | \n",
"
\n",
" \n",
" \n",
" \n",
" 5 | \n",
" 2015 | \n",
" 2013 | \n",
" HLY | \n",
" 0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 8.139707e+07 | \n",
" 0.0 | \n",
"
\n",
" \n",
" 15 | \n",
" 2015 | \n",
" 2013 | \n",
" TRK | \n",
" 0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 8.139707e+07 | \n",
" 0.0 | \n",
"
\n",
" \n",
" 25 | \n",
" 2015 | \n",
" 2013 | \n",
" WKM | \n",
" 0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 8.139707e+07 | \n",
" 0.0 | \n",
"
\n",
" \n",
" 35 | \n",
" 2015 | \n",
" 2013 | \n",
" RDF | \n",
" 0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 8.139707e+07 | \n",
" 0.0 | \n",
"
\n",
" \n",
" 45 | \n",
" 2015 | \n",
" 2013 | \n",
" SFD | \n",
" 0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 8.139707e+07 | \n",
" 0.0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" p_yr m_yr bb type SIMIvol_t SIMIvol_pk_t SIMIvol_dg_t \\\n",
"5 2015 2013 HLY 0 0.0 0.0 0 \n",
"15 2015 2013 TRK 0 0.0 0.0 0 \n",
"25 2015 2013 WKM 0 0.0 0.0 0 \n",
"35 2015 2013 RDF 0 0.0 0.0 0 \n",
"45 2015 2013 SFD 0 0.0 0.0 0 \n",
"\n",
" SIMIvol_sh_t SIMIvol_off_t SIMIvol SIMIvol_pk SIMIvol_dg SIMIvol_sh \\\n",
"5 0.0 0.0 0.0 0.0 0.0 0.0 \n",
"15 0.0 0.0 0.0 0.0 0.0 0.0 \n",
"25 0.0 0.0 0.0 0.0 0.0 0.0 \n",
"35 0.0 0.0 0.0 0.0 0.0 0.0 \n",
"45 0.0 0.0 0.0 0.0 0.0 0.0 \n",
"\n",
" SIMIvol_off SIMIvol_tot SIMIshr \n",
"5 0.0 8.139707e+07 0.0 \n",
"15 0.0 8.139707e+07 0.0 \n",
"25 0.0 8.139707e+07 0.0 \n",
"35 0.0 8.139707e+07 0.0 \n",
"45 0.0 8.139707e+07 0.0 "
]
},
"execution_count": 1465,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#TAKE A CLOSER LOOK. think that SIMI volume is share of last 5 years vol in SI\n",
"\n",
"#this function reads in quantities for each TP type.\n",
"#Sets NI data to zero.\n",
"#Calculates a total volume and cumulative volumes for each TP type in SI. \n",
"#calculates the annual total SIMIvolume (what is this?)\n",
"#calculates the share for each node for each year\n",
"#checked that the annual total is the total using a filter and .sum() at the end: \n",
"# simi0[(simi0.m_yr==2017)].sum()\n",
"#same code checks sum of shares for the year is 1\n",
"\n",
"data_gen=data_gen\n",
"window=5\n",
"ctype=0\n",
"simi0=data_gen.loc[:,['p_yr','m_yr','bb','type']]\n",
"\n",
"#reads in data\n",
"simi0['SIMIvol_t']=data_gen.pk_q+data_gen.sh_q+data_gen.off_q\n",
"#reads in mostly the same data\n",
"simi0['SIMIvol_pk_t']=data_gen.pk_q\n",
"simi0['SIMIvol_dg_t']=data_gen.dg_q\n",
"simi0['SIMIvol_sh_t']=data_gen.sh_q\n",
"simi0['SIMIvol_off_t']=data_gen.off_q\n",
"\n",
"#simi0['testit']=simi0.\n",
"\n",
"#zero's out NI nodes\n",
"simi0.loc[simi0['bb'].isin(ni_nodes), ['SIMIvol_t','SIMIvol_pk_t','SIMIvol_dg_t','SIMIvol_sh_t','SIMIvol_off_t']] = 0\n",
"\n",
"#cumulative 5 year sum of total volume excluding the dg_q data which seems to be zero by node/cust type\n",
"#The cumsum is only by BB as the function only reads in one type\n",
"simi0['SIMIvol']=simi0.groupby(['bb','type']).SIMIvol_t.apply(lambda x: x.rolling(window=window).sum()).values\n",
"\n",
"#cumulative 5 year sum of volume by bb, the type is superfluous. \n",
"simi0['SIMIvol_pk']=simi0.groupby(['bb','type']).SIMIvol_pk_t.apply(lambda x: x.rolling(window=window).sum()).values\n",
"simi0['SIMIvol_dg']=simi0.groupby(['bb','type']).SIMIvol_dg_t.apply(lambda x: x.rolling(window=window).sum()).values\n",
"simi0['SIMIvol_sh']=simi0.groupby(['bb','type']).SIMIvol_sh_t.apply(lambda x: x.rolling(window=window).sum()).values\n",
"simi0['SIMIvol_off']=simi0.groupby(['bb','type']).SIMIvol_off_t.apply(lambda x: x.rolling(window=window).sum()).values\n",
"\n",
"#This column is the sum of SIMIvol for that year for all nodes and TP types\n",
"simi0['SIMIvol_tot'] = simi0['SIMIvol'].groupby(simi0['m_yr']).transform('sum')\n",
"\n",
"#this is the share for each node\n",
"simi0['SIMIshr']=simi0.SIMIvol/simi0.SIMIvol_tot\n",
"#simi0\n",
"\n",
"\n",
"#12 nodes times 10 year in simi0 when created\n",
"# CodeList=numpy.unique(simi0['type']).tolist()\n",
"# CodeList\n",
"\n",
"\n",
"#len(simi0)\n",
"\n",
"simi0[(simi0.m_yr==2013)].head()"
]
},
{
"cell_type": "code",
"execution_count": 1572,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" p_yr | \n",
" m_yr | \n",
" bb | \n",
" type | \n",
" SIMIvol_t | \n",
" SIMIvol_pk_t | \n",
" SIMIvol_dg_t | \n",
" SIMIvol_sh_t | \n",
" SIMIvol_off_t | \n",
" SIMIvol | \n",
" SIMIvol_pk | \n",
" SIMIvol_dg | \n",
" SIMIvol_sh | \n",
" SIMIvol_off | \n",
" SIMIvol_tot | \n",
" SIMIshr | \n",
"
\n",
" \n",
" \n",
" \n",
" 5 | \n",
" 2015 | \n",
" 2013 | \n",
" HLY | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 0.000 | \n",
" 0.0 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 8.139707e+07 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 15 | \n",
" 2015 | \n",
" 2013 | \n",
" TRK | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 0.000 | \n",
" 0.0 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 8.139707e+07 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 25 | \n",
" 2015 | \n",
" 2013 | \n",
" WKM | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 0.000 | \n",
" 0.0 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 8.139707e+07 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 35 | \n",
" 2015 | \n",
" 2013 | \n",
" RDF | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 0.000 | \n",
" 0.0 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 8.139707e+07 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 45 | \n",
" 2015 | \n",
" 2013 | \n",
" SFD | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 0.000 | \n",
" 0.0 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 8.139707e+07 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 55 | \n",
" 2015 | \n",
" 2013 | \n",
" BPE | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 0.000 | \n",
" 0.0 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 8.139707e+07 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 65 | \n",
" 2015 | \n",
" 2013 | \n",
" HAY | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 0.000 | \n",
" 0.0 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 8.139707e+07 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 75 | \n",
" 2015 | \n",
" 2013 | \n",
" KIK | \n",
" 0 | \n",
" 232336.344 | \n",
" 29153.744 | \n",
" 0 | \n",
" 49195.648 | \n",
" 153986.952 | \n",
" 1.139625e+06 | \n",
" 145640.115 | \n",
" 0.0 | \n",
" 247421.440 | \n",
" 7.465638e+05 | \n",
" 8.139707e+07 | \n",
" 0.014001 | \n",
"
\n",
" \n",
" 85 | \n",
" 2015 | \n",
" 2013 | \n",
" ISL | \n",
" 0 | \n",
" 380544.321 | \n",
" 44176.836 | \n",
" 0 | \n",
" 71313.731 | \n",
" 265053.754 | \n",
" 2.071212e+06 | \n",
" 235051.542 | \n",
" 0.0 | \n",
" 415679.469 | \n",
" 1.420481e+06 | \n",
" 8.139707e+07 | \n",
" 0.025446 | \n",
"
\n",
" \n",
" 95 | \n",
" 2015 | \n",
" 2013 | \n",
" BEN | \n",
" 0 | \n",
" 6977419.066 | \n",
" 786015.011 | \n",
" 0 | \n",
" 1500436.622 | \n",
" 4690967.433 | \n",
" 3.594608e+07 | \n",
" 4050826.904 | \n",
" 0.0 | \n",
" 7434782.604 | \n",
" 2.446047e+07 | \n",
" 8.139707e+07 | \n",
" 0.441614 | \n",
"
\n",
" \n",
" 105 | \n",
" 2015 | \n",
" 2013 | \n",
" ROX | \n",
" 0 | \n",
" 3988810.505 | \n",
" 499429.484 | \n",
" 0 | \n",
" 864158.253 | \n",
" 2625222.768 | \n",
" 1.870422e+07 | \n",
" 2196591.339 | \n",
" 0.0 | \n",
" 4006186.223 | \n",
" 1.250145e+07 | \n",
" 8.139707e+07 | \n",
" 0.229790 | \n",
"
\n",
" \n",
" 115 | \n",
" 2015 | \n",
" 2013 | \n",
" TWI | \n",
" 0 | \n",
" 4918507.964 | \n",
" 523996.664 | \n",
" 0 | \n",
" 969935.174 | \n",
" 3424576.126 | \n",
" 2.353593e+07 | \n",
" 2418239.973 | \n",
" 0.0 | \n",
" 4656528.412 | \n",
" 1.646116e+07 | \n",
" 8.139707e+07 | \n",
" 0.289150 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" p_yr m_yr bb type SIMIvol_t SIMIvol_pk_t SIMIvol_dg_t \\\n",
"5 2015 2013 HLY 0 0.000 0.000 0 \n",
"15 2015 2013 TRK 0 0.000 0.000 0 \n",
"25 2015 2013 WKM 0 0.000 0.000 0 \n",
"35 2015 2013 RDF 0 0.000 0.000 0 \n",
"45 2015 2013 SFD 0 0.000 0.000 0 \n",
"55 2015 2013 BPE 0 0.000 0.000 0 \n",
"65 2015 2013 HAY 0 0.000 0.000 0 \n",
"75 2015 2013 KIK 0 232336.344 29153.744 0 \n",
"85 2015 2013 ISL 0 380544.321 44176.836 0 \n",
"95 2015 2013 BEN 0 6977419.066 786015.011 0 \n",
"105 2015 2013 ROX 0 3988810.505 499429.484 0 \n",
"115 2015 2013 TWI 0 4918507.964 523996.664 0 \n",
"\n",
" SIMIvol_sh_t SIMIvol_off_t SIMIvol SIMIvol_pk SIMIvol_dg \\\n",
"5 0.000 0.000 0.000000e+00 0.000 0.0 \n",
"15 0.000 0.000 0.000000e+00 0.000 0.0 \n",
"25 0.000 0.000 0.000000e+00 0.000 0.0 \n",
"35 0.000 0.000 0.000000e+00 0.000 0.0 \n",
"45 0.000 0.000 0.000000e+00 0.000 0.0 \n",
"55 0.000 0.000 0.000000e+00 0.000 0.0 \n",
"65 0.000 0.000 0.000000e+00 0.000 0.0 \n",
"75 49195.648 153986.952 1.139625e+06 145640.115 0.0 \n",
"85 71313.731 265053.754 2.071212e+06 235051.542 0.0 \n",
"95 1500436.622 4690967.433 3.594608e+07 4050826.904 0.0 \n",
"105 864158.253 2625222.768 1.870422e+07 2196591.339 0.0 \n",
"115 969935.174 3424576.126 2.353593e+07 2418239.973 0.0 \n",
"\n",
" SIMIvol_sh SIMIvol_off SIMIvol_tot SIMIshr \n",
"5 0.000 0.000000e+00 8.139707e+07 0.000000 \n",
"15 0.000 0.000000e+00 8.139707e+07 0.000000 \n",
"25 0.000 0.000000e+00 8.139707e+07 0.000000 \n",
"35 0.000 0.000000e+00 8.139707e+07 0.000000 \n",
"45 0.000 0.000000e+00 8.139707e+07 0.000000 \n",
"55 0.000 0.000000e+00 8.139707e+07 0.000000 \n",
"65 0.000 0.000000e+00 8.139707e+07 0.000000 \n",
"75 247421.440 7.465638e+05 8.139707e+07 0.014001 \n",
"85 415679.469 1.420481e+06 8.139707e+07 0.025446 \n",
"95 7434782.604 2.446047e+07 8.139707e+07 0.441614 \n",
"105 4006186.223 1.250145e+07 8.139707e+07 0.229790 \n",
"115 4656528.412 1.646116e+07 8.139707e+07 0.289150 "
]
},
"execution_count": 1572,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data_gen=data_gen\n",
"window=5\n",
"ctype=0\n",
"simi0=data_gen.loc[:,['p_yr','m_yr','bb','type']]\n",
"\n",
"#reads in data\n",
"simi0['SIMIvol_t']=data_gen.pk_q+data_gen.sh_q+data_gen.off_q\n",
"#reads in mostly the same data\n",
"simi0['SIMIvol_pk_t']=data_gen.pk_q\n",
"simi0['SIMIvol_dg_t']=data_gen.dg_q\n",
"simi0['SIMIvol_sh_t']=data_gen.sh_q\n",
"simi0['SIMIvol_off_t']=data_gen.off_q\n",
"\n",
"#simi0['testit']=simi0.\n",
"\n",
"#zero's out NI nodes\n",
"simi0.loc[simi0['bb'].isin(ni_nodes), ['SIMIvol_t','SIMIvol_pk_t','SIMIvol_dg_t','SIMIvol_sh_t','SIMIvol_off_t']] = 0\n",
"\n",
"#cumulative 5 year sum of total volume excluding the dg_q data which seems to be zero by node/cust type\n",
"simi0['SIMIvol']=simi0.groupby(['bb','type']).SIMIvol_t.apply(lambda x: x.rolling(window=window).sum()).values\n",
"\n",
"\n",
"simi0['SIMIvol_pk']=simi0.groupby(['bb','type']).SIMIvol_pk_t.apply(lambda x: x.rolling(window=window).sum()).values\n",
"simi0['SIMIvol_dg']=simi0.groupby(['bb','type']).SIMIvol_dg_t.apply(lambda x: x.rolling(window=window).sum()).values\n",
"simi0['SIMIvol_sh']=simi0.groupby(['bb','type']).SIMIvol_sh_t.apply(lambda x: x.rolling(window=window).sum()).values\n",
"simi0['SIMIvol_off']=simi0.groupby(['bb','type']).SIMIvol_off_t.apply(lambda x: x.rolling(window=window).sum()).values\n",
"\n",
"simi0['SIMIvol_tot'] = simi0['SIMIvol'].groupby(simi0['m_yr']).transform('sum')\n",
"\n",
"simi0['SIMIshr']=simi0.SIMIvol/simi0.SIMIvol_tot\n",
"\n",
"#simi0[(simi0.bb=='BEN')]\n",
"simi0[(simi0.m_yr==2013)]#.sum()"
]
},
{
"cell_type": "code",
"execution_count": 1089,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"16279414.343400002"
]
},
"execution_count": 1089,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"simi0[(simi0.m_yr==2013)]['SIMIvol'].sum()/5"
]
},
{
"cell_type": "code",
"execution_count": 1278,
"metadata": {},
"outputs": [],
"source": [
"def genshr_f(data_gen=data_gen,window=5,year=yr_0):\n",
" gen=data_gen.loc[:,['p_yr','m_yr','bb','pk_q','sh_q','off_q']]\n",
" gen['pk_roll']=gen.groupby(['bb']).pk_q.apply(lambda x: x.rolling(window=window).sum()).values\n",
" gen['sh_roll']=gen.groupby(['bb']).sh_q.apply(lambda x: x.rolling(window=window).sum()).values\n",
" gen['off_roll']=gen.groupby(['bb']).off_q.apply(lambda x: x.rolling(window=window).sum()).values\n",
" gen['pk_tot']=gen.groupby(['m_yr']).pk_roll.transform('sum')\n",
" gen['sh_tot']=gen.groupby(['m_yr']).sh_roll.transform('sum')\n",
" gen['off_tot']=gen.groupby(['m_yr']).off_roll.transform('sum')\n",
" gen['pk_s']=gen.pk_roll/gen.pk_tot\n",
" gen['sh_s']=gen.sh_roll/gen.sh_tot \n",
" gen['off_s']=gen.off_roll/gen.off_tot\n",
" shares = gen.loc[gen['m_yr']==year,['m_yr','bb','pk_s','sh_s','off_s']]\n",
" return shares"
]
},
{
"cell_type": "code",
"execution_count": 1347,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" m_yr | \n",
" bb | \n",
" pk_s | \n",
" sh_s | \n",
" off_s | \n",
"
\n",
" \n",
" \n",
" \n",
" 7 | \n",
" 2015 | \n",
" HLY | \n",
" 0.175414 | \n",
" 0.170930 | \n",
" 0.162331 | \n",
"
\n",
" \n",
" 17 | \n",
" 2015 | \n",
" TRK | \n",
" 0.033038 | \n",
" 0.033586 | \n",
" 0.038738 | \n",
"
\n",
" \n",
" 27 | \n",
" 2015 | \n",
" WKM | \n",
" 0.204402 | \n",
" 0.200291 | \n",
" 0.207529 | \n",
"
\n",
" \n",
" 37 | \n",
" 2015 | \n",
" RDF | \n",
" 0.000139 | \n",
" 0.000048 | \n",
" 0.000024 | \n",
"
\n",
" \n",
" 47 | \n",
" 2015 | \n",
" SFD | \n",
" 0.059497 | \n",
" 0.055775 | \n",
" 0.053375 | \n",
"
\n",
" \n",
" 57 | \n",
" 2015 | \n",
" BPE | \n",
" 0.062321 | \n",
" 0.057684 | \n",
" 0.054045 | \n",
"
\n",
" \n",
" 67 | \n",
" 2015 | \n",
" HAY | \n",
" 0.011881 | \n",
" 0.012731 | \n",
" 0.015323 | \n",
"
\n",
" \n",
" 77 | \n",
" 2015 | \n",
" KIK | \n",
" 0.006284 | \n",
" 0.006327 | \n",
" 0.005987 | \n",
"
\n",
" \n",
" 87 | \n",
" 2015 | \n",
" ISL | \n",
" 0.011370 | \n",
" 0.011298 | \n",
" 0.012045 | \n",
"
\n",
" \n",
" 97 | \n",
" 2015 | \n",
" BEN | \n",
" 0.203507 | \n",
" 0.212502 | \n",
" 0.206773 | \n",
"
\n",
" \n",
" 107 | \n",
" 2015 | \n",
" ROX | \n",
" 0.111397 | \n",
" 0.113331 | \n",
" 0.107639 | \n",
"
\n",
" \n",
" 117 | \n",
" 2015 | \n",
" TWI | \n",
" 0.120750 | \n",
" 0.125498 | \n",
" 0.136190 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" m_yr bb pk_s sh_s off_s\n",
"7 2015 HLY 0.175414 0.170930 0.162331\n",
"17 2015 TRK 0.033038 0.033586 0.038738\n",
"27 2015 WKM 0.204402 0.200291 0.207529\n",
"37 2015 RDF 0.000139 0.000048 0.000024\n",
"47 2015 SFD 0.059497 0.055775 0.053375\n",
"57 2015 BPE 0.062321 0.057684 0.054045\n",
"67 2015 HAY 0.011881 0.012731 0.015323\n",
"77 2015 KIK 0.006284 0.006327 0.005987\n",
"87 2015 ISL 0.011370 0.011298 0.012045\n",
"97 2015 BEN 0.203507 0.212502 0.206773\n",
"107 2015 ROX 0.111397 0.113331 0.107639\n",
"117 2015 TWI 0.120750 0.125498 0.136190"
]
},
"execution_count": 1347,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data_gen=data_gen\n",
"window=5\n",
"year=2015\n",
"\n",
"#reads in data for all years\n",
"gen=data_gen.loc[:,['p_yr','m_yr','bb','pk_q','sh_q','off_q']]\n",
"\n",
"#creates rolling sum of quantities for 5 yearly windows lagged for each TP type by BB\n",
"gen['pk_roll']=gen.groupby(['bb']).pk_q.apply(lambda x: x.rolling(window=window).sum()).values\n",
"gen['sh_roll']=gen.groupby(['bb']).sh_q.apply(lambda x: x.rolling(window=window).sum()).values\n",
"gen['off_roll']=gen.groupby(['bb']).off_q.apply(lambda x: x.rolling(window=window).sum()).values\n",
"\n",
"\n",
"#For each year calculates the total of the rolling sums of 5 yearly quantities for each TP type\n",
"#first 4 years there is nothing as the rolling window is 5 years\n",
"gen['pk_tot']=gen.groupby(['m_yr']).pk_roll.transform('sum')\n",
"gen['sh_tot']=gen.groupby(['m_yr']).sh_roll.transform('sum')\n",
"gen['off_tot']=gen.groupby(['m_yr']).off_roll.transform('sum')\n",
"\n",
"#calculates shares for each node for each TP type. The share is the share for each node of the previous 5 year's \n",
"#quantity over the total 5 yearly quantity\n",
"#tested with this gen[(gen.m_yr==2012)].sum() showing the sums of the shares is 1\n",
"\n",
"gen['pk_s']=gen.pk_roll/gen.pk_tot\n",
"gen['sh_s']=gen.sh_roll/gen.sh_tot \n",
"gen['off_s']=gen.off_roll/gen.off_tot\n",
"\n",
"#filtered for one year and returns the one year\n",
"\n",
"#For each node there is a 5 year rolling sum of quantity. \n",
"#These rolling sums are summed up for each year across BB nodes\n",
"#then the total for the year is calculated\n",
"# then the share for each BB node is calculated by dividing each nodes rolling sum for that year by the total\n",
"shares = gen.loc[gen['m_yr']==year,['m_yr','bb','pk_s','sh_s','off_s']]\n",
"\n",
"\n",
"\n",
"#gen['testit']=gen.pk_q.cumsum()\n",
"gen[(gen.m_yr==2012)].sum()\n",
"\n",
"shares"
]
},
{
"cell_type": "code",
"execution_count": 1356,
"metadata": {},
"outputs": [],
"source": [
"data_gen=data_gen\n",
"window=5\n",
"year=2015\n",
"\n",
"#reads in data for all years\n",
"gen=data_gen.loc[:,['p_yr','m_yr','bb','pk_q','sh_q','off_q']]\n",
"\n",
"#creates rolling sum of quantities for 5 yearly windows lagged for each TP type by BB\n",
"gen['pk_roll']=gen.groupby(['bb']).pk_q.apply(lambda x: x.rolling(window=window).sum()).values\n",
"gen['sh_roll']=gen.groupby(['bb']).sh_q.apply(lambda x: x.rolling(window=window).sum()).values\n",
"gen['off_roll']=gen.groupby(['bb']).off_q.apply(lambda x: x.rolling(window=window).sum()).values\n",
"\n",
"gen['pk_tot']=gen.groupby(['m_yr']).pk_roll.transform('sum')\n",
"gen['sh_tot']=gen.groupby(['m_yr']).sh_roll.transform('sum')\n",
"gen['off_tot']=gen.groupby(['m_yr']).off_roll.transform('sum')\n",
"\n",
"gen['pk_s']=gen.pk_roll/gen.pk_tot\n",
"gen['sh_s']=gen.sh_roll/gen.sh_tot \n",
"gen['off_s']=gen.off_roll/gen.off_tot"
]
},
{
"cell_type": "code",
"execution_count": 1359,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" p_yr | \n",
" m_yr | \n",
" bb | \n",
" pk_q | \n",
" sh_q | \n",
" off_q | \n",
" pk_roll | \n",
" sh_roll | \n",
" off_roll | \n",
" pk_tot | \n",
" sh_tot | \n",
" off_tot | \n",
" pk_s | \n",
" sh_s | \n",
" off_s | \n",
"
\n",
" \n",
" \n",
" \n",
" 4 | \n",
" 2014 | \n",
" 2012 | \n",
" HLY | \n",
" 1004315.796 | \n",
" 1689102.435 | \n",
" 4756177.519 | \n",
" 4.662942e+06 | \n",
" 7.983587e+06 | \n",
" 2.422414e+07 | \n",
" 2.114056e+07 | \n",
" 3.727023e+07 | \n",
" 1.194514e+08 | \n",
" 0.220569 | \n",
" 0.214208 | \n",
" 0.202795 | \n",
"
\n",
" \n",
" 14 | \n",
" 2014 | \n",
" 2012 | \n",
" TRK | \n",
" 149051.018 | \n",
" 265167.921 | \n",
" 991563.274 | \n",
" 6.708696e+05 | \n",
" 1.142302e+06 | \n",
" 4.039834e+06 | \n",
" 2.114056e+07 | \n",
" 3.727023e+07 | \n",
" 1.194514e+08 | \n",
" 0.031734 | \n",
" 0.030649 | \n",
" 0.033820 | \n",
"
\n",
" \n",
" 24 | \n",
" 2014 | \n",
" 2012 | \n",
" WKM | \n",
" 838602.803 | \n",
" 1445338.436 | \n",
" 4918014.280 | \n",
" 3.917253e+06 | \n",
" 6.760128e+06 | \n",
" 2.161065e+07 | \n",
" 2.114056e+07 | \n",
" 3.727023e+07 | \n",
" 1.194514e+08 | \n",
" 0.185296 | \n",
" 0.181381 | \n",
" 0.180916 | \n",
"
\n",
" \n",
" 34 | \n",
" 2014 | \n",
" 2012 | \n",
" RDF | \n",
" 516.940 | \n",
" 139.930 | \n",
" 257.760 | \n",
" 3.383963e+04 | \n",
" 3.812557e+04 | \n",
" 6.055712e+04 | \n",
" 2.114056e+07 | \n",
" 3.727023e+07 | \n",
" 1.194514e+08 | \n",
" 0.001601 | \n",
" 0.001023 | \n",
" 0.000507 | \n",
"
\n",
" \n",
" 44 | \n",
" 2014 | \n",
" 2012 | \n",
" SFD | \n",
" 384035.031 | \n",
" 640762.082 | \n",
" 1859694.918 | \n",
" 1.589682e+06 | \n",
" 2.410654e+06 | \n",
" 7.477642e+06 | \n",
" 2.114056e+07 | \n",
" 3.727023e+07 | \n",
" 1.194514e+08 | \n",
" 0.075196 | \n",
" 0.064680 | \n",
" 0.062600 | \n",
"
\n",
" \n",
" 54 | \n",
" 2014 | \n",
" 2012 | \n",
" BPE | \n",
" 238246.822 | \n",
" 400045.942 | \n",
" 1392865.836 | \n",
" 1.242843e+06 | \n",
" 2.064689e+06 | \n",
" 6.414161e+06 | \n",
" 2.114056e+07 | \n",
" 3.727023e+07 | \n",
" 1.194514e+08 | \n",
" 0.058789 | \n",
" 0.055398 | \n",
" 0.053697 | \n",
"
\n",
" \n",
" 64 | \n",
" 2014 | \n",
" 2012 | \n",
" HAY | \n",
" 41338.524 | \n",
" 87146.217 | \n",
" 337284.161 | \n",
" 1.572828e+05 | \n",
" 3.006487e+05 | \n",
" 1.137517e+06 | \n",
" 2.114056e+07 | \n",
" 3.727023e+07 | \n",
" 1.194514e+08 | \n",
" 0.007440 | \n",
" 0.008067 | \n",
" 0.009523 | \n",
"
\n",
" \n",
" 74 | \n",
" 2014 | \n",
" 2012 | \n",
" KIK | \n",
" 29318.792 | \n",
" 52014.229 | \n",
" 170196.052 | \n",
" 1.422022e+05 | \n",
" 2.454623e+05 | \n",
" 7.276538e+05 | \n",
" 2.114056e+07 | \n",
" 3.727023e+07 | \n",
" 1.194514e+08 | \n",
" 0.006727 | \n",
" 0.006586 | \n",
" 0.006092 | \n",
"
\n",
" \n",
" 84 | \n",
" 2014 | \n",
" 2012 | \n",
" ISL | \n",
" 46809.319 | \n",
" 81337.196 | \n",
" 262747.233 | \n",
" 2.330062e+05 | \n",
" 4.298243e+05 | \n",
" 1.436471e+06 | \n",
" 2.114056e+07 | \n",
" 3.727023e+07 | \n",
" 1.194514e+08 | \n",
" 0.011022 | \n",
" 0.011533 | \n",
" 0.012026 | \n",
"
\n",
" \n",
" 94 | \n",
" 2014 | \n",
" 2012 | \n",
" BEN | \n",
" 652484.589 | \n",
" 1357147.853 | \n",
" 4416361.010 | \n",
" 4.092358e+06 | \n",
" 7.472173e+06 | \n",
" 2.415515e+07 | \n",
" 2.114056e+07 | \n",
" 3.727023e+07 | \n",
" 1.194514e+08 | \n",
" 0.193579 | \n",
" 0.200486 | \n",
" 0.202217 | \n",
"
\n",
" \n",
" 104 | \n",
" 2014 | \n",
" 2012 | \n",
" ROX | \n",
" 373663.928 | \n",
" 702627.439 | \n",
" 2078867.769 | \n",
" 2.067206e+06 | \n",
" 3.866841e+06 | \n",
" 1.215547e+07 | \n",
" 2.114056e+07 | \n",
" 3.727023e+07 | \n",
" 1.194514e+08 | \n",
" 0.097784 | \n",
" 0.103751 | \n",
" 0.101761 | \n",
"
\n",
" \n",
" 114 | \n",
" 2014 | \n",
" 2012 | \n",
" TWI | \n",
" 493248.138 | \n",
" 835357.176 | \n",
" 2523064.069 | \n",
" 2.331074e+06 | \n",
" 4.555796e+06 | \n",
" 1.601215e+07 | \n",
" 2.114056e+07 | \n",
" 3.727023e+07 | \n",
" 1.194514e+08 | \n",
" 0.110266 | \n",
" 0.122237 | \n",
" 0.134047 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" p_yr m_yr bb pk_q sh_q off_q pk_roll \\\n",
"4 2014 2012 HLY 1004315.796 1689102.435 4756177.519 4.662942e+06 \n",
"14 2014 2012 TRK 149051.018 265167.921 991563.274 6.708696e+05 \n",
"24 2014 2012 WKM 838602.803 1445338.436 4918014.280 3.917253e+06 \n",
"34 2014 2012 RDF 516.940 139.930 257.760 3.383963e+04 \n",
"44 2014 2012 SFD 384035.031 640762.082 1859694.918 1.589682e+06 \n",
"54 2014 2012 BPE 238246.822 400045.942 1392865.836 1.242843e+06 \n",
"64 2014 2012 HAY 41338.524 87146.217 337284.161 1.572828e+05 \n",
"74 2014 2012 KIK 29318.792 52014.229 170196.052 1.422022e+05 \n",
"84 2014 2012 ISL 46809.319 81337.196 262747.233 2.330062e+05 \n",
"94 2014 2012 BEN 652484.589 1357147.853 4416361.010 4.092358e+06 \n",
"104 2014 2012 ROX 373663.928 702627.439 2078867.769 2.067206e+06 \n",
"114 2014 2012 TWI 493248.138 835357.176 2523064.069 2.331074e+06 \n",
"\n",
" sh_roll off_roll pk_tot sh_tot off_tot \\\n",
"4 7.983587e+06 2.422414e+07 2.114056e+07 3.727023e+07 1.194514e+08 \n",
"14 1.142302e+06 4.039834e+06 2.114056e+07 3.727023e+07 1.194514e+08 \n",
"24 6.760128e+06 2.161065e+07 2.114056e+07 3.727023e+07 1.194514e+08 \n",
"34 3.812557e+04 6.055712e+04 2.114056e+07 3.727023e+07 1.194514e+08 \n",
"44 2.410654e+06 7.477642e+06 2.114056e+07 3.727023e+07 1.194514e+08 \n",
"54 2.064689e+06 6.414161e+06 2.114056e+07 3.727023e+07 1.194514e+08 \n",
"64 3.006487e+05 1.137517e+06 2.114056e+07 3.727023e+07 1.194514e+08 \n",
"74 2.454623e+05 7.276538e+05 2.114056e+07 3.727023e+07 1.194514e+08 \n",
"84 4.298243e+05 1.436471e+06 2.114056e+07 3.727023e+07 1.194514e+08 \n",
"94 7.472173e+06 2.415515e+07 2.114056e+07 3.727023e+07 1.194514e+08 \n",
"104 3.866841e+06 1.215547e+07 2.114056e+07 3.727023e+07 1.194514e+08 \n",
"114 4.555796e+06 1.601215e+07 2.114056e+07 3.727023e+07 1.194514e+08 \n",
"\n",
" pk_s sh_s off_s \n",
"4 0.220569 0.214208 0.202795 \n",
"14 0.031734 0.030649 0.033820 \n",
"24 0.185296 0.181381 0.180916 \n",
"34 0.001601 0.001023 0.000507 \n",
"44 0.075196 0.064680 0.062600 \n",
"54 0.058789 0.055398 0.053697 \n",
"64 0.007440 0.008067 0.009523 \n",
"74 0.006727 0.006586 0.006092 \n",
"84 0.011022 0.011533 0.012026 \n",
"94 0.193579 0.200486 0.202217 \n",
"104 0.097784 0.103751 0.101761 \n",
"114 0.110266 0.122237 0.134047 "
]
},
"execution_count": 1359,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gen[(gen.m_yr==2012)]"
]
},
{
"cell_type": "code",
"execution_count": 1353,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" p_yr | \n",
" m_yr | \n",
" bb | \n",
" pk_q | \n",
" sh_q | \n",
" off_q | \n",
" pk_roll | \n",
" sh_roll | \n",
" off_roll | \n",
" pk_tot | \n",
" sh_tot | \n",
" off_tot | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 2010 | \n",
" 2008 | \n",
" HLY | \n",
" 1121976.897 | \n",
" 1914136.437 | \n",
" 6090902.882 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 1 | \n",
" 2011 | \n",
" 2009 | \n",
" HLY | \n",
" 974616.392 | \n",
" 1631058.522 | \n",
" 4873540.191 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 2 | \n",
" 2012 | \n",
" 2010 | \n",
" HLY | \n",
" 846532.617 | \n",
" 1506636.856 | \n",
" 4659079.944 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 3 | \n",
" 2013 | \n",
" 2011 | \n",
" HLY | \n",
" 715499.904 | \n",
" 1242652.302 | \n",
" 3844438.997 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 4 | \n",
" 2014 | \n",
" 2012 | \n",
" HLY | \n",
" 1004315.796 | \n",
" 1689102.435 | \n",
" 4756177.519 | \n",
" 4662941.606 | \n",
" 7983586.552 | \n",
" 2.422414e+07 | \n",
" 2.114056e+07 | \n",
" 3.727023e+07 | \n",
" 1.194514e+08 | \n",
"
\n",
" \n",
" 5 | \n",
" 2015 | \n",
" 2013 | \n",
" HLY | \n",
" 722574.582 | \n",
" 1262982.716 | \n",
" 3929906.713 | \n",
" 4263539.291 | \n",
" 7332432.831 | \n",
" 2.206314e+07 | \n",
" 2.098582e+07 | \n",
" 3.718395e+07 | \n",
" 1.200507e+08 | \n",
"
\n",
" \n",
" 6 | \n",
" 2016 | \n",
" 2014 | \n",
" HLY | \n",
" 673406.281 | \n",
" 1141529.183 | \n",
" 3290831.185 | \n",
" 3962329.180 | \n",
" 6842903.492 | \n",
" 2.048043e+07 | \n",
" 2.107113e+07 | \n",
" 3.733272e+07 | \n",
" 1.199059e+08 | \n",
"
\n",
" \n",
" 7 | \n",
" 2017 | \n",
" 2015 | \n",
" HLY | \n",
" 560257.320 | \n",
" 1027594.637 | \n",
" 3610120.391 | \n",
" 3676053.883 | \n",
" 6363861.273 | \n",
" 1.943147e+07 | \n",
" 2.095640e+07 | \n",
" 3.723088e+07 | \n",
" 1.197026e+08 | \n",
"
\n",
" \n",
" 8 | \n",
" 2018 | \n",
" 2016 | \n",
" HLY | \n",
" 607837.372 | \n",
" 1085345.378 | \n",
" 3590814.947 | \n",
" 3568391.351 | \n",
" 6206554.349 | \n",
" 1.917785e+07 | \n",
" 2.111299e+07 | \n",
" 3.759073e+07 | \n",
" 1.204231e+08 | \n",
"
\n",
" \n",
" 9 | \n",
" 2019 | \n",
" 2017 | \n",
" HLY | \n",
" 728593.382 | \n",
" 1104151.315 | \n",
" 3317202.250 | \n",
" 3292668.937 | \n",
" 5621603.229 | \n",
" 1.773888e+07 | \n",
" 2.132996e+07 | \n",
" 3.792744e+07 | \n",
" 1.213879e+08 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" p_yr m_yr bb pk_q sh_q off_q pk_roll \\\n",
"0 2010 2008 HLY 1121976.897 1914136.437 6090902.882 NaN \n",
"1 2011 2009 HLY 974616.392 1631058.522 4873540.191 NaN \n",
"2 2012 2010 HLY 846532.617 1506636.856 4659079.944 NaN \n",
"3 2013 2011 HLY 715499.904 1242652.302 3844438.997 NaN \n",
"4 2014 2012 HLY 1004315.796 1689102.435 4756177.519 4662941.606 \n",
"5 2015 2013 HLY 722574.582 1262982.716 3929906.713 4263539.291 \n",
"6 2016 2014 HLY 673406.281 1141529.183 3290831.185 3962329.180 \n",
"7 2017 2015 HLY 560257.320 1027594.637 3610120.391 3676053.883 \n",
"8 2018 2016 HLY 607837.372 1085345.378 3590814.947 3568391.351 \n",
"9 2019 2017 HLY 728593.382 1104151.315 3317202.250 3292668.937 \n",
"\n",
" sh_roll off_roll pk_tot sh_tot off_tot \n",
"0 NaN NaN 0.000000e+00 0.000000e+00 0.000000e+00 \n",
"1 NaN NaN 0.000000e+00 0.000000e+00 0.000000e+00 \n",
"2 NaN NaN 0.000000e+00 0.000000e+00 0.000000e+00 \n",
"3 NaN NaN 0.000000e+00 0.000000e+00 0.000000e+00 \n",
"4 7983586.552 2.422414e+07 2.114056e+07 3.727023e+07 1.194514e+08 \n",
"5 7332432.831 2.206314e+07 2.098582e+07 3.718395e+07 1.200507e+08 \n",
"6 6842903.492 2.048043e+07 2.107113e+07 3.733272e+07 1.199059e+08 \n",
"7 6363861.273 1.943147e+07 2.095640e+07 3.723088e+07 1.197026e+08 \n",
"8 6206554.349 1.917785e+07 2.111299e+07 3.759073e+07 1.204231e+08 \n",
"9 5621603.229 1.773888e+07 2.132996e+07 3.792744e+07 1.213879e+08 "
]
},
"execution_count": 1353,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gen[(gen.bb=='HLY')]"
]
},
{
"cell_type": "code",
"execution_count": 1346,
"metadata": {},
"outputs": [],
"source": [
"def simi_rev_update(data_gen=data_gen,tp_rev=tp_rev,year=yr_0,window=5):\n",
" dc_ic = np.asscalar(tp_rev.loc[(tp_rev['m_yr']==year+1),['dc_ic']].values) # DC charge\n",
" simishr=simi_f(data_gen=data_gen,window=5)\n",
" vol = simishr[simishr['m_yr']==year].SIMIvol_tot.mean()/window\n",
" vol_q = simishr.loc[simishr['m_yr']==year,['SIMIvol_pk','SIMIvol_dg','SIMIvol_sh','SIMIvol_off']]/window\n",
" price = dc_ic/vol\n",
" rev_q = vol_q*price\n",
" data_gen.loc[(data_gen['m_yr']==year+1),['pk_pr','dg_pr','sh_pr','off_pr']]=price\n",
" data_gen.loc[data_gen['bb'].isin(ni_nodes), ['pk_pr','dg_pr','sh_pr','off_pr']] = 0\n",
" data_gen.loc[(data_gen['m_yr']==year+1),['pk_rev','dg_rev','sh_rev','off_rev']]= rev_q.values \n",
" return data_gen "
]
},
{
"cell_type": "code",
"execution_count": 1338,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"16279414.3434"
]
},
"execution_count": 1338,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"vol_q.sum().sum()"
]
},
{
"cell_type": "code",
"execution_count": 1638,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"10.538371767013427"
]
},
"execution_count": 1638,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data_gen=data_gen\n",
"tp_rev=tp_rev\n",
"year=2013\n",
"window=5\n",
"\n",
"#gets a value which is the DC interconnect value for that year\n",
"dc_ic = np.asscalar(tp_rev.loc[(tp_rev['m_yr']==year+1),['dc_ic']].values) # DC charge\n",
"\n",
"\n",
"#gets SIMI share by node and year using a function from above\n",
"simishr=simi_f(data_gen=data_gen,window=5)\n",
"\n",
"#Gets mean annual total SIMI volume over the window. but this number is the same for all nodes as it is the total\n",
"#SIMI volume for the year. SIMIvol is a 5 year total volume so vol is an annual number\n",
"#this is the SIMIvol_tot number (scaler) divided by the window size. The mean is just a way to get a scaler from\n",
"#the dataframe\n",
"vol = simishr[simishr['m_yr']==year].SIMIvol_tot.mean()/window\n",
"\n",
"# divides the 5 year SIMI volumes by TP type in simishr by the window size and makes new Df.\n",
"# The volume shares are 5 year numbers, so this gives annual volume shares\n",
"vol_q = simishr.loc[simishr['m_yr']==year,['SIMIvol_pk','SIMIvol_dg','SIMIvol_sh','SIMIvol_off']]/window\n",
"\n",
"\n",
"#Gets price by dividing the revenue required by the volume for the year. These are both scalers\n",
"#So this is a number in $/MWh\n",
"price = dc_ic/vol\n",
"\n",
"#multiplies the annual volume numbers by the price to get revenue by node\n",
"rev_q = vol_q*price\n",
"\n",
"#updates data_gen with a single price for all TP types for all nodes for the following year\n",
"#so the same number in all nodes in data_gen for that year\n",
"data_gen.loc[(data_gen['m_yr']==year+1),['pk_pr','dg_pr','sh_pr','off_pr']]=price\n",
"\n",
"#zeros out NI data for the step above\n",
"data_gen.loc[data_gen['bb'].isin(ni_nodes), ['pk_pr','dg_pr','sh_pr','off_pr']] = 0\n",
"\n",
"#inserts rev_q data into data_gen for the following hear\n",
"data_gen.loc[(data_gen['m_yr']==year+1),['pk_rev','dg_rev','sh_rev','off_rev']]= rev_q.values \n",
"# data_gen\n",
"\n",
"price"
]
},
{
"cell_type": "code",
"execution_count": 1640,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SIMIvol_pk | \n",
" SIMIvol_dg | \n",
" SIMIvol_sh | \n",
" SIMIvol_off | \n",
"
\n",
" \n",
" \n",
" \n",
" 5 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 15 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 25 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 35 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 45 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 55 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 65 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 75 | \n",
" 3.069619e+05 | \n",
" 0.0 | \n",
" 5.214838e+05 | \n",
" 1.573513e+06 | \n",
"
\n",
" \n",
" 85 | \n",
" 4.954121e+05 | \n",
" 0.0 | \n",
" 8.761170e+05 | \n",
" 2.993911e+06 | \n",
"
\n",
" \n",
" 95 | \n",
" 8.537824e+06 | \n",
" 0.0 | \n",
" 1.567010e+07 | \n",
" 5.155471e+07 | \n",
"
\n",
" \n",
" 105 | \n",
" 4.629699e+06 | \n",
" 0.0 | \n",
" 8.443736e+06 | \n",
" 2.634898e+07 | \n",
"
\n",
" \n",
" 115 | \n",
" 5.096862e+06 | \n",
" 0.0 | \n",
" 9.814446e+06 | \n",
" 3.469477e+07 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SIMIvol_pk SIMIvol_dg SIMIvol_sh SIMIvol_off\n",
"5 0.000000e+00 0.0 0.000000e+00 0.000000e+00\n",
"15 0.000000e+00 0.0 0.000000e+00 0.000000e+00\n",
"25 0.000000e+00 0.0 0.000000e+00 0.000000e+00\n",
"35 0.000000e+00 0.0 0.000000e+00 0.000000e+00\n",
"45 0.000000e+00 0.0 0.000000e+00 0.000000e+00\n",
"55 0.000000e+00 0.0 0.000000e+00 0.000000e+00\n",
"65 0.000000e+00 0.0 0.000000e+00 0.000000e+00\n",
"75 3.069619e+05 0.0 5.214838e+05 1.573513e+06\n",
"85 4.954121e+05 0.0 8.761170e+05 2.993911e+06\n",
"95 8.537824e+06 0.0 1.567010e+07 5.155471e+07\n",
"105 4.629699e+06 0.0 8.443736e+06 2.634898e+07\n",
"115 5.096862e+06 0.0 9.814446e+06 3.469477e+07"
]
},
"execution_count": 1640,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"vol_q*price"
]
},
{
"cell_type": "code",
"execution_count": 1574,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"10.538371767013427"
]
},
"execution_count": 1574,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"price"
]
},
{
"cell_type": "code",
"execution_count": 1482,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" p_yr | \n",
" m_yr | \n",
" bb | \n",
" type | \n",
" SIMIvol_t | \n",
" SIMIvol_pk_t | \n",
" SIMIvol_dg_t | \n",
" SIMIvol_sh_t | \n",
" SIMIvol_off_t | \n",
" SIMIvol | \n",
" SIMIvol_pk | \n",
" SIMIvol_dg | \n",
" SIMIvol_sh | \n",
" SIMIvol_off | \n",
" SIMIvol_tot | \n",
" SIMIshr | \n",
"
\n",
" \n",
" \n",
" \n",
" 5 | \n",
" 2015 | \n",
" 2013 | \n",
" HLY | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 0.000 | \n",
" 0.0 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 8.139707e+07 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 15 | \n",
" 2015 | \n",
" 2013 | \n",
" TRK | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 0.000 | \n",
" 0.0 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 8.139707e+07 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 25 | \n",
" 2015 | \n",
" 2013 | \n",
" WKM | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 0.000 | \n",
" 0.0 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 8.139707e+07 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 35 | \n",
" 2015 | \n",
" 2013 | \n",
" RDF | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 0.000 | \n",
" 0.0 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 8.139707e+07 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 45 | \n",
" 2015 | \n",
" 2013 | \n",
" SFD | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 0.000 | \n",
" 0.0 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 8.139707e+07 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 55 | \n",
" 2015 | \n",
" 2013 | \n",
" BPE | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 0.000 | \n",
" 0.0 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 8.139707e+07 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 65 | \n",
" 2015 | \n",
" 2013 | \n",
" HAY | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 0.000 | \n",
" 0.0 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 8.139707e+07 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 75 | \n",
" 2015 | \n",
" 2013 | \n",
" KIK | \n",
" 0 | \n",
" 232336.344 | \n",
" 29153.744 | \n",
" 0 | \n",
" 49195.648 | \n",
" 153986.952 | \n",
" 1.139625e+06 | \n",
" 145640.115 | \n",
" 0.0 | \n",
" 247421.440 | \n",
" 7.465638e+05 | \n",
" 8.139707e+07 | \n",
" 0.014001 | \n",
"
\n",
" \n",
" 85 | \n",
" 2015 | \n",
" 2013 | \n",
" ISL | \n",
" 0 | \n",
" 380544.321 | \n",
" 44176.836 | \n",
" 0 | \n",
" 71313.731 | \n",
" 265053.754 | \n",
" 2.071212e+06 | \n",
" 235051.542 | \n",
" 0.0 | \n",
" 415679.469 | \n",
" 1.420481e+06 | \n",
" 8.139707e+07 | \n",
" 0.025446 | \n",
"
\n",
" \n",
" 95 | \n",
" 2015 | \n",
" 2013 | \n",
" BEN | \n",
" 0 | \n",
" 6977419.066 | \n",
" 786015.011 | \n",
" 0 | \n",
" 1500436.622 | \n",
" 4690967.433 | \n",
" 3.594608e+07 | \n",
" 4050826.904 | \n",
" 0.0 | \n",
" 7434782.604 | \n",
" 2.446047e+07 | \n",
" 8.139707e+07 | \n",
" 0.441614 | \n",
"
\n",
" \n",
" 105 | \n",
" 2015 | \n",
" 2013 | \n",
" ROX | \n",
" 0 | \n",
" 3988810.505 | \n",
" 499429.484 | \n",
" 0 | \n",
" 864158.253 | \n",
" 2625222.768 | \n",
" 1.870422e+07 | \n",
" 2196591.339 | \n",
" 0.0 | \n",
" 4006186.223 | \n",
" 1.250145e+07 | \n",
" 8.139707e+07 | \n",
" 0.229790 | \n",
"
\n",
" \n",
" 115 | \n",
" 2015 | \n",
" 2013 | \n",
" TWI | \n",
" 0 | \n",
" 4918507.964 | \n",
" 523996.664 | \n",
" 0 | \n",
" 969935.174 | \n",
" 3424576.126 | \n",
" 2.353593e+07 | \n",
" 2418239.973 | \n",
" 0.0 | \n",
" 4656528.412 | \n",
" 1.646116e+07 | \n",
" 8.139707e+07 | \n",
" 0.289150 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" p_yr m_yr bb type SIMIvol_t SIMIvol_pk_t SIMIvol_dg_t \\\n",
"5 2015 2013 HLY 0 0.000 0.000 0 \n",
"15 2015 2013 TRK 0 0.000 0.000 0 \n",
"25 2015 2013 WKM 0 0.000 0.000 0 \n",
"35 2015 2013 RDF 0 0.000 0.000 0 \n",
"45 2015 2013 SFD 0 0.000 0.000 0 \n",
"55 2015 2013 BPE 0 0.000 0.000 0 \n",
"65 2015 2013 HAY 0 0.000 0.000 0 \n",
"75 2015 2013 KIK 0 232336.344 29153.744 0 \n",
"85 2015 2013 ISL 0 380544.321 44176.836 0 \n",
"95 2015 2013 BEN 0 6977419.066 786015.011 0 \n",
"105 2015 2013 ROX 0 3988810.505 499429.484 0 \n",
"115 2015 2013 TWI 0 4918507.964 523996.664 0 \n",
"\n",
" SIMIvol_sh_t SIMIvol_off_t SIMIvol SIMIvol_pk SIMIvol_dg \\\n",
"5 0.000 0.000 0.000000e+00 0.000 0.0 \n",
"15 0.000 0.000 0.000000e+00 0.000 0.0 \n",
"25 0.000 0.000 0.000000e+00 0.000 0.0 \n",
"35 0.000 0.000 0.000000e+00 0.000 0.0 \n",
"45 0.000 0.000 0.000000e+00 0.000 0.0 \n",
"55 0.000 0.000 0.000000e+00 0.000 0.0 \n",
"65 0.000 0.000 0.000000e+00 0.000 0.0 \n",
"75 49195.648 153986.952 1.139625e+06 145640.115 0.0 \n",
"85 71313.731 265053.754 2.071212e+06 235051.542 0.0 \n",
"95 1500436.622 4690967.433 3.594608e+07 4050826.904 0.0 \n",
"105 864158.253 2625222.768 1.870422e+07 2196591.339 0.0 \n",
"115 969935.174 3424576.126 2.353593e+07 2418239.973 0.0 \n",
"\n",
" SIMIvol_sh SIMIvol_off SIMIvol_tot SIMIshr \n",
"5 0.000 0.000000e+00 8.139707e+07 0.000000 \n",
"15 0.000 0.000000e+00 8.139707e+07 0.000000 \n",
"25 0.000 0.000000e+00 8.139707e+07 0.000000 \n",
"35 0.000 0.000000e+00 8.139707e+07 0.000000 \n",
"45 0.000 0.000000e+00 8.139707e+07 0.000000 \n",
"55 0.000 0.000000e+00 8.139707e+07 0.000000 \n",
"65 0.000 0.000000e+00 8.139707e+07 0.000000 \n",
"75 247421.440 7.465638e+05 8.139707e+07 0.014001 \n",
"85 415679.469 1.420481e+06 8.139707e+07 0.025446 \n",
"95 7434782.604 2.446047e+07 8.139707e+07 0.441614 \n",
"105 4006186.223 1.250145e+07 8.139707e+07 0.229790 \n",
"115 4656528.412 1.646116e+07 8.139707e+07 0.289150 "
]
},
"execution_count": 1482,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"simishr[(gen.m_yr==2013)]#[\"SIMIvol_pk\"]/5\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 1064,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"10.538371767013427"
]
},
"execution_count": 1064,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dc_ic/(simishr[(gen.m_yr==2013)]['SIMIvol_tot'].mean()/5)"
]
},
{
"cell_type": "code",
"execution_count": 1324,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" p_yr | \n",
" m_yr | \n",
" bb | \n",
" type | \n",
" SIMIvol_t | \n",
" SIMIvol_pk_t | \n",
" SIMIvol_dg_t | \n",
" SIMIvol_sh_t | \n",
" SIMIvol_off_t | \n",
" SIMIvol | \n",
" SIMIvol_pk | \n",
" SIMIvol_dg | \n",
" SIMIvol_sh | \n",
" SIMIvol_off | \n",
" SIMIvol_tot | \n",
" SIMIshr | \n",
"
\n",
" \n",
" \n",
" \n",
" 5 | \n",
" 2015 | \n",
" 2013 | \n",
" HLY | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 0.000 | \n",
" 0.0 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 8.139707e+07 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 15 | \n",
" 2015 | \n",
" 2013 | \n",
" TRK | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 0.000 | \n",
" 0.0 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 8.139707e+07 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 25 | \n",
" 2015 | \n",
" 2013 | \n",
" WKM | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 0.000 | \n",
" 0.0 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 8.139707e+07 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 35 | \n",
" 2015 | \n",
" 2013 | \n",
" RDF | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 0.000 | \n",
" 0.0 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 8.139707e+07 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 45 | \n",
" 2015 | \n",
" 2013 | \n",
" SFD | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 0.000 | \n",
" 0.0 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 8.139707e+07 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 55 | \n",
" 2015 | \n",
" 2013 | \n",
" BPE | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 0.000 | \n",
" 0.0 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 8.139707e+07 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 65 | \n",
" 2015 | \n",
" 2013 | \n",
" HAY | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 0.000 | \n",
" 0.0 | \n",
" 0.000 | \n",
" 0.000000e+00 | \n",
" 8.139707e+07 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 75 | \n",
" 2015 | \n",
" 2013 | \n",
" KIK | \n",
" 0 | \n",
" 232336.344 | \n",
" 29153.744 | \n",
" 0 | \n",
" 49195.648 | \n",
" 153986.952 | \n",
" 1.139625e+06 | \n",
" 145640.115 | \n",
" 0.0 | \n",
" 247421.440 | \n",
" 7.465638e+05 | \n",
" 8.139707e+07 | \n",
" 0.014001 | \n",
"
\n",
" \n",
" 85 | \n",
" 2015 | \n",
" 2013 | \n",
" ISL | \n",
" 0 | \n",
" 380544.321 | \n",
" 44176.836 | \n",
" 0 | \n",
" 71313.731 | \n",
" 265053.754 | \n",
" 2.071212e+06 | \n",
" 235051.542 | \n",
" 0.0 | \n",
" 415679.469 | \n",
" 1.420481e+06 | \n",
" 8.139707e+07 | \n",
" 0.025446 | \n",
"
\n",
" \n",
" 95 | \n",
" 2015 | \n",
" 2013 | \n",
" BEN | \n",
" 0 | \n",
" 6977419.066 | \n",
" 786015.011 | \n",
" 0 | \n",
" 1500436.622 | \n",
" 4690967.433 | \n",
" 3.594608e+07 | \n",
" 4050826.904 | \n",
" 0.0 | \n",
" 7434782.604 | \n",
" 2.446047e+07 | \n",
" 8.139707e+07 | \n",
" 0.441614 | \n",
"
\n",
" \n",
" 105 | \n",
" 2015 | \n",
" 2013 | \n",
" ROX | \n",
" 0 | \n",
" 3988810.505 | \n",
" 499429.484 | \n",
" 0 | \n",
" 864158.253 | \n",
" 2625222.768 | \n",
" 1.870422e+07 | \n",
" 2196591.339 | \n",
" 0.0 | \n",
" 4006186.223 | \n",
" 1.250145e+07 | \n",
" 8.139707e+07 | \n",
" 0.229790 | \n",
"
\n",
" \n",
" 115 | \n",
" 2015 | \n",
" 2013 | \n",
" TWI | \n",
" 0 | \n",
" 4918507.964 | \n",
" 523996.664 | \n",
" 0 | \n",
" 969935.174 | \n",
" 3424576.126 | \n",
" 2.353593e+07 | \n",
" 2418239.973 | \n",
" 0.0 | \n",
" 4656528.412 | \n",
" 1.646116e+07 | \n",
" 8.139707e+07 | \n",
" 0.289150 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" p_yr m_yr bb type SIMIvol_t SIMIvol_pk_t SIMIvol_dg_t \\\n",
"5 2015 2013 HLY 0 0.000 0.000 0 \n",
"15 2015 2013 TRK 0 0.000 0.000 0 \n",
"25 2015 2013 WKM 0 0.000 0.000 0 \n",
"35 2015 2013 RDF 0 0.000 0.000 0 \n",
"45 2015 2013 SFD 0 0.000 0.000 0 \n",
"55 2015 2013 BPE 0 0.000 0.000 0 \n",
"65 2015 2013 HAY 0 0.000 0.000 0 \n",
"75 2015 2013 KIK 0 232336.344 29153.744 0 \n",
"85 2015 2013 ISL 0 380544.321 44176.836 0 \n",
"95 2015 2013 BEN 0 6977419.066 786015.011 0 \n",
"105 2015 2013 ROX 0 3988810.505 499429.484 0 \n",
"115 2015 2013 TWI 0 4918507.964 523996.664 0 \n",
"\n",
" SIMIvol_sh_t SIMIvol_off_t SIMIvol SIMIvol_pk SIMIvol_dg \\\n",
"5 0.000 0.000 0.000000e+00 0.000 0.0 \n",
"15 0.000 0.000 0.000000e+00 0.000 0.0 \n",
"25 0.000 0.000 0.000000e+00 0.000 0.0 \n",
"35 0.000 0.000 0.000000e+00 0.000 0.0 \n",
"45 0.000 0.000 0.000000e+00 0.000 0.0 \n",
"55 0.000 0.000 0.000000e+00 0.000 0.0 \n",
"65 0.000 0.000 0.000000e+00 0.000 0.0 \n",
"75 49195.648 153986.952 1.139625e+06 145640.115 0.0 \n",
"85 71313.731 265053.754 2.071212e+06 235051.542 0.0 \n",
"95 1500436.622 4690967.433 3.594608e+07 4050826.904 0.0 \n",
"105 864158.253 2625222.768 1.870422e+07 2196591.339 0.0 \n",
"115 969935.174 3424576.126 2.353593e+07 2418239.973 0.0 \n",
"\n",
" SIMIvol_sh SIMIvol_off SIMIvol_tot SIMIshr \n",
"5 0.000 0.000000e+00 8.139707e+07 0.000000 \n",
"15 0.000 0.000000e+00 8.139707e+07 0.000000 \n",
"25 0.000 0.000000e+00 8.139707e+07 0.000000 \n",
"35 0.000 0.000000e+00 8.139707e+07 0.000000 \n",
"45 0.000 0.000000e+00 8.139707e+07 0.000000 \n",
"55 0.000 0.000000e+00 8.139707e+07 0.000000 \n",
"65 0.000 0.000000e+00 8.139707e+07 0.000000 \n",
"75 247421.440 7.465638e+05 8.139707e+07 0.014001 \n",
"85 415679.469 1.420481e+06 8.139707e+07 0.025446 \n",
"95 7434782.604 2.446047e+07 8.139707e+07 0.441614 \n",
"105 4006186.223 1.250145e+07 8.139707e+07 0.229790 \n",
"115 4656528.412 1.646116e+07 8.139707e+07 0.289150 "
]
},
"execution_count": 1324,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"simi_f(data_gen=data_gen,window=5)[(gen.m_yr==2013)]#['SIMIvol_pk']/5"
]
},
{
"cell_type": "code",
"execution_count": 1328,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SIMIvol_pk | \n",
" SIMIvol_dg | \n",
" SIMIvol_sh | \n",
" SIMIvol_off | \n",
"
\n",
" \n",
" \n",
" \n",
" 5 | \n",
" 0.0000 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 15 | \n",
" 0.0000 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 25 | \n",
" 0.0000 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 35 | \n",
" 0.0000 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 45 | \n",
" 0.0000 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 55 | \n",
" 0.0000 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 65 | \n",
" 0.0000 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 75 | \n",
" 29128.0230 | \n",
" 0.0 | \n",
" 4.948429e+04 | \n",
" 1.493128e+05 | \n",
"
\n",
" \n",
" 85 | \n",
" 47010.3084 | \n",
" 0.0 | \n",
" 8.313589e+04 | \n",
" 2.840962e+05 | \n",
"
\n",
" \n",
" 95 | \n",
" 810165.3808 | \n",
" 0.0 | \n",
" 1.486957e+06 | \n",
" 4.892094e+06 | \n",
"
\n",
" \n",
" 105 | \n",
" 439318.2678 | \n",
" 0.0 | \n",
" 8.012372e+05 | \n",
" 2.500289e+06 | \n",
"
\n",
" \n",
" 115 | \n",
" 483647.9946 | \n",
" 0.0 | \n",
" 9.313057e+05 | \n",
" 3.292232e+06 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SIMIvol_pk SIMIvol_dg SIMIvol_sh SIMIvol_off\n",
"5 0.0000 0.0 0.000000e+00 0.000000e+00\n",
"15 0.0000 0.0 0.000000e+00 0.000000e+00\n",
"25 0.0000 0.0 0.000000e+00 0.000000e+00\n",
"35 0.0000 0.0 0.000000e+00 0.000000e+00\n",
"45 0.0000 0.0 0.000000e+00 0.000000e+00\n",
"55 0.0000 0.0 0.000000e+00 0.000000e+00\n",
"65 0.0000 0.0 0.000000e+00 0.000000e+00\n",
"75 29128.0230 0.0 4.948429e+04 1.493128e+05\n",
"85 47010.3084 0.0 8.313589e+04 2.840962e+05\n",
"95 810165.3808 0.0 1.486957e+06 4.892094e+06\n",
"105 439318.2678 0.0 8.012372e+05 2.500289e+06\n",
"115 483647.9946 0.0 9.313057e+05 3.292232e+06"
]
},
"execution_count": 1328,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"vol_q = simishr.loc[simishr['m_yr']==2013,['SIMIvol_pk','SIMIvol_dg','SIMIvol_sh','SIMIvol_off']]/window\n",
"vol_q"
]
},
{
"cell_type": "code",
"execution_count": 1093,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SIMIvol_pk | \n",
" SIMIvol_dg | \n",
" SIMIvol_sh | \n",
" SIMIvol_off | \n",
"
\n",
" \n",
" \n",
" \n",
" 5 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 15 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 25 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 35 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 45 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 55 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 65 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 75 | \n",
" 3.069619e+05 | \n",
" 0.0 | \n",
" 5.214838e+05 | \n",
" 1.573513e+06 | \n",
"
\n",
" \n",
" 85 | \n",
" 4.954121e+05 | \n",
" 0.0 | \n",
" 8.761170e+05 | \n",
" 2.993911e+06 | \n",
"
\n",
" \n",
" 95 | \n",
" 8.537824e+06 | \n",
" 0.0 | \n",
" 1.567010e+07 | \n",
" 5.155471e+07 | \n",
"
\n",
" \n",
" 105 | \n",
" 4.629699e+06 | \n",
" 0.0 | \n",
" 8.443736e+06 | \n",
" 2.634898e+07 | \n",
"
\n",
" \n",
" 115 | \n",
" 5.096862e+06 | \n",
" 0.0 | \n",
" 9.814446e+06 | \n",
" 3.469477e+07 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SIMIvol_pk SIMIvol_dg SIMIvol_sh SIMIvol_off\n",
"5 0.000000e+00 0.0 0.000000e+00 0.000000e+00\n",
"15 0.000000e+00 0.0 0.000000e+00 0.000000e+00\n",
"25 0.000000e+00 0.0 0.000000e+00 0.000000e+00\n",
"35 0.000000e+00 0.0 0.000000e+00 0.000000e+00\n",
"45 0.000000e+00 0.0 0.000000e+00 0.000000e+00\n",
"55 0.000000e+00 0.0 0.000000e+00 0.000000e+00\n",
"65 0.000000e+00 0.0 0.000000e+00 0.000000e+00\n",
"75 3.069619e+05 0.0 5.214838e+05 1.573513e+06\n",
"85 4.954121e+05 0.0 8.761170e+05 2.993911e+06\n",
"95 8.537824e+06 0.0 1.567010e+07 5.155471e+07\n",
"105 4.629699e+06 0.0 8.443736e+06 2.634898e+07\n",
"115 5.096862e+06 0.0 9.814446e+06 3.469477e+07"
]
},
"execution_count": 1093,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rev_q"
]
},
{
"cell_type": "code",
"execution_count": 1342,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" bb | \n",
" type | \n",
" p_yr | \n",
" m_yr | \n",
" pk_s | \n",
" dg_s | \n",
" sh_s | \n",
" off_s | \n",
" pk_p | \n",
" dg_p | \n",
" ... | \n",
" off_theta | \n",
" srmc | \n",
" pk_pr | \n",
" dg_pr | \n",
" sh_pr | \n",
" off_pr | \n",
" pk_rev | \n",
" dg_rev | \n",
" sh_rev | \n",
" off_rev | \n",
"
\n",
" \n",
" \n",
" \n",
" 6 | \n",
" HLY | \n",
" 0 | \n",
" 2016 | \n",
" 2014 | \n",
" 0.157809 | \n",
" 0 | \n",
" 0.226526 | \n",
" 0.615665 | \n",
" 97.322316 | \n",
" 97.322316 | \n",
" ... | \n",
" 0.004359 | \n",
" 73.172167 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 16 | \n",
" TRK | \n",
" 0 | \n",
" 2016 | \n",
" 2014 | \n",
" 0.131919 | \n",
" 0 | \n",
" 0.195726 | \n",
" 0.672354 | \n",
" 93.162042 | \n",
" 93.162042 | \n",
" ... | \n",
" 0.990446 | \n",
" 4.318265 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 26 | \n",
" WKM | \n",
" 0 | \n",
" 2016 | \n",
" 2014 | \n",
" 0.152013 | \n",
" 0 | \n",
" 0.204945 | \n",
" 0.643041 | \n",
" 96.480142 | \n",
" 96.480142 | \n",
" ... | \n",
" 0.000000 | \n",
" 5.219816 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 36 | \n",
" RDF | \n",
" 0 | \n",
" 2016 | \n",
" 2014 | \n",
" 0.958420 | \n",
" 0 | \n",
" 0.036146 | \n",
" 0.005434 | \n",
" 1239.886698 | \n",
" 1239.886698 | \n",
" ... | \n",
" 0.989508 | \n",
" 56.215672 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 46 | \n",
" SFD | \n",
" 0 | \n",
" 2016 | \n",
" 2014 | \n",
" 0.121533 | \n",
" 0 | \n",
" 0.212739 | \n",
" 0.665728 | \n",
" 110.055915 | \n",
" 110.055915 | \n",
" ... | \n",
" 0.370605 | \n",
" 57.018617 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 56 | \n",
" BPE | \n",
" 0 | \n",
" 2016 | \n",
" 2014 | \n",
" 0.181878 | \n",
" 0 | \n",
" 0.218235 | \n",
" 0.599887 | \n",
" 91.353860 | \n",
" 91.353860 | \n",
" ... | \n",
" 0.283922 | \n",
" 15.735330 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 66 | \n",
" HAY | \n",
" 0 | \n",
" 2016 | \n",
" 2014 | \n",
" 0.123837 | \n",
" 0 | \n",
" 0.203732 | \n",
" 0.672431 | \n",
" 80.287092 | \n",
" 80.287092 | \n",
" ... | \n",
" 0.999891 | \n",
" 30.755082 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 76 | \n",
" KIK | \n",
" 0 | \n",
" 2016 | \n",
" 2014 | \n",
" 0.177330 | \n",
" 0 | \n",
" 0.259575 | \n",
" 0.563094 | \n",
" 108.966319 | \n",
" 101.505151 | \n",
" ... | \n",
" 1.000000 | \n",
" 8.816457 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 3.069619e+05 | \n",
" 0.0 | \n",
" 5.214838e+05 | \n",
" 1.573513e+06 | \n",
"
\n",
" \n",
" 86 | \n",
" ISL | \n",
" 0 | \n",
" 2016 | \n",
" 2014 | \n",
" 0.179103 | \n",
" 0 | \n",
" 0.249076 | \n",
" 0.571821 | \n",
" 103.918773 | \n",
" 96.457606 | \n",
" ... | \n",
" 1.000000 | \n",
" 8.816457 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 4.954121e+05 | \n",
" 0.0 | \n",
" 8.761170e+05 | \n",
" 2.993911e+06 | \n",
"
\n",
" \n",
" 96 | \n",
" BEN | \n",
" 0 | \n",
" 2016 | \n",
" 2014 | \n",
" 0.147466 | \n",
" 0 | \n",
" 0.257114 | \n",
" 0.595421 | \n",
" 92.038425 | \n",
" 84.577258 | \n",
" ... | \n",
" 0.000213 | \n",
" 8.816457 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 8.537824e+06 | \n",
" 0.0 | \n",
" 1.567010e+07 | \n",
" 5.155471e+07 | \n",
"
\n",
" \n",
" 106 | \n",
" ROX | \n",
" 0 | \n",
" 2016 | \n",
" 2014 | \n",
" 0.158044 | \n",
" 0 | \n",
" 0.264917 | \n",
" 0.577040 | \n",
" 88.240548 | \n",
" 80.779381 | \n",
" ... | \n",
" 0.000655 | \n",
" 8.816457 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 4.629699e+06 | \n",
" 0.0 | \n",
" 8.443736e+06 | \n",
" 2.634898e+07 | \n",
"
\n",
" \n",
" 116 | \n",
" TWI | \n",
" 0 | \n",
" 2016 | \n",
" 2014 | \n",
" 0.130540 | \n",
" 0 | \n",
" 0.244373 | \n",
" 0.625087 | \n",
" 84.029660 | \n",
" 76.568493 | \n",
" ... | \n",
" 0.667826 | \n",
" 8.816457 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 10.538372 | \n",
" 5.096862e+06 | \n",
" 0.0 | \n",
" 9.814446e+06 | \n",
" 3.469477e+07 | \n",
"
\n",
" \n",
"
\n",
"
12 rows × 83 columns
\n",
"
"
],
"text/plain": [
" bb type p_yr m_yr pk_s dg_s sh_s off_s pk_p \\\n",
"6 HLY 0 2016 2014 0.157809 0 0.226526 0.615665 97.322316 \n",
"16 TRK 0 2016 2014 0.131919 0 0.195726 0.672354 93.162042 \n",
"26 WKM 0 2016 2014 0.152013 0 0.204945 0.643041 96.480142 \n",
"36 RDF 0 2016 2014 0.958420 0 0.036146 0.005434 1239.886698 \n",
"46 SFD 0 2016 2014 0.121533 0 0.212739 0.665728 110.055915 \n",
"56 BPE 0 2016 2014 0.181878 0 0.218235 0.599887 91.353860 \n",
"66 HAY 0 2016 2014 0.123837 0 0.203732 0.672431 80.287092 \n",
"76 KIK 0 2016 2014 0.177330 0 0.259575 0.563094 108.966319 \n",
"86 ISL 0 2016 2014 0.179103 0 0.249076 0.571821 103.918773 \n",
"96 BEN 0 2016 2014 0.147466 0 0.257114 0.595421 92.038425 \n",
"106 ROX 0 2016 2014 0.158044 0 0.264917 0.577040 88.240548 \n",
"116 TWI 0 2016 2014 0.130540 0 0.244373 0.625087 84.029660 \n",
"\n",
" dg_p ... off_theta srmc pk_pr dg_pr \\\n",
"6 97.322316 ... 0.004359 73.172167 10.538372 10.538372 \n",
"16 93.162042 ... 0.990446 4.318265 10.538372 10.538372 \n",
"26 96.480142 ... 0.000000 5.219816 10.538372 10.538372 \n",
"36 1239.886698 ... 0.989508 56.215672 10.538372 10.538372 \n",
"46 110.055915 ... 0.370605 57.018617 10.538372 10.538372 \n",
"56 91.353860 ... 0.283922 15.735330 10.538372 10.538372 \n",
"66 80.287092 ... 0.999891 30.755082 10.538372 10.538372 \n",
"76 101.505151 ... 1.000000 8.816457 10.538372 10.538372 \n",
"86 96.457606 ... 1.000000 8.816457 10.538372 10.538372 \n",
"96 84.577258 ... 0.000213 8.816457 10.538372 10.538372 \n",
"106 80.779381 ... 0.000655 8.816457 10.538372 10.538372 \n",
"116 76.568493 ... 0.667826 8.816457 10.538372 10.538372 \n",
"\n",
" sh_pr off_pr pk_rev dg_rev sh_rev off_rev \n",
"6 10.538372 10.538372 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"16 10.538372 10.538372 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"26 10.538372 10.538372 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"36 10.538372 10.538372 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"46 10.538372 10.538372 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"56 10.538372 10.538372 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"66 10.538372 10.538372 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"76 10.538372 10.538372 3.069619e+05 0.0 5.214838e+05 1.573513e+06 \n",
"86 10.538372 10.538372 4.954121e+05 0.0 8.761170e+05 2.993911e+06 \n",
"96 10.538372 10.538372 8.537824e+06 0.0 1.567010e+07 5.155471e+07 \n",
"106 10.538372 10.538372 4.629699e+06 0.0 8.443736e+06 2.634898e+07 \n",
"116 10.538372 10.538372 5.096862e+06 0.0 9.814446e+06 3.469477e+07 \n",
"\n",
"[12 rows x 83 columns]"
]
},
"execution_count": 1342,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data_gen[(data_gen.m_yr==2014)]"
]
},
{
"cell_type": "code",
"execution_count": 1483,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"16788174.358400002"
]
},
"execution_count": 1483,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"vol = simishr[simishr['m_yr']==year].SIMIvol_tot.mean()/window\n",
"vol"
]
},
{
"cell_type": "code",
"execution_count": 1636,
"metadata": {},
"outputs": [],
"source": [
"# Update AOB revenue invoiced to generators\n",
"def gen_aob_update(data=data,data_gen=data_gen,aob_accnt=aob_accnt,reg=\"BEN\",year=yr_0,ctype=0):\n",
" if (year+1) == aob_yr:\n",
" aob1 = np.asscalar(aob_accnt.loc[aob_accnt['m_yr']==(year+1),[reg+str(ctype)]].values)\n",
" else:\n",
" reliab_shr=genshr_f(data_gen=data_gen,window=5,year=year)\n",
" reliab_shr_bb=np.asscalar(reliab_shr.loc[(reliab_shr['m_yr']==year)&\n",
" (reliab_shr['bb']==reg),['pk_s']].values)\n",
" inv = (np.asscalar(tp_rev.loc[(tp_rev['m_yr']==(year+1)),['base_capex']].values)+\n",
" np.asscalar(tp_rev.loc[(tp_rev['m_yr']==(year+1)),['major_capex']].values)) \n",
" inv_shr = (econ_share*(lceshr(data=data,data_gen=data_gen,\n",
" reg=reg,year=year,ctype=ctype)) \n",
" + (1-econ_share)*reliab_shr_bb*(1-load_reliab_shr))\n",
" d_aob = inv*inv_shr #New investment \n",
" aob0 = np.asscalar(aob_accnt.loc[aob_accnt['m_yr']==(year),[reg+str(ctype)]].values)\n",
" aob1 = aob0*(1-deprn)+d_aob\n",
" #Update AOB account\n",
" aob_accnt.loc[aob_accnt['m_yr']==(year+1),[reg+str(ctype)]]=aob1\n",
" #Calculate revenue\n",
" q0=np.matrix(data_gen.loc[(data_gen['bb']==reg)&(data_gen['type']==ctype)&\n",
" (data_gen['m_yr']==year),['pk_q','dg_q','sh_q','off_q']]) #TOU quantities\n",
" if np.sum(q0)==0: #Adjustment for areas where plants close\n",
" pr1 = np.matrix([[aob1/(pk_tp/2),0,aob1/(sh_tp/2),aob1/(off_tp/2)]])#Revenue paid per MWh\n",
" rev_q = np.matrix([[aob1*(pk_tp/(pk_tp+sh_tp+off_tp)),0,aob1*(sh_tp/(pk_tp+sh_tp+off_tp)),aob1*(off_tp/(pk_tp+sh_tp+off_tp))]])\n",
" else:\n",
" pr1 = np.matrix(np.repeat(aob1/np.sum(q0),share_n)) #Revenue paid per MWh\n",
" rev_q = np.multiply(q0,pr1)\n",
" data_gen.loc[(data_gen['bb']==reg)&(data_gen['type']==ctype)&\n",
" (data_gen['m_yr']==year+1),['pk_pr','dg_pr','sh_pr','off_pr']]=pr1\n",
" data_gen.loc[(data_gen['bb']==reg)&(data_gen['type']==ctype)&\n",
" (data_gen['m_yr']==year+1),['pk_rev','dg_rev','sh_rev','off_rev']]= rev_q \n",
" return data_gen, aob_accnt "
]
},
{
"cell_type": "code",
"execution_count": 1637,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"matrix([[128441.88089796, 0. , 231977.26006885,\n",
" 686146.28866764]])"
]
},
"execution_count": 1637,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rev_q "
]
},
{
"cell_type": "code",
"execution_count": 1578,
"metadata": {},
"outputs": [],
"source": [
"data=data\n",
"data_gen=data_gen\n",
"aob_accnt=aob_accnt\n",
"reg=\"BEN\"\n",
"year=2015\n",
"ctype=0\n",
"\n",
"\n",
"if (year+1) == aob_yr:\n",
" aob1 = np.asscalar(aob_accnt.loc[aob_accnt['m_yr']==(year+1),[reg+str(ctype)]].values)\n",
"else:\n",
" #gets data from genshr_f\n",
" #this data is described above, but it is the share for each BB for each TP type for each year\n",
" #of quantity\n",
" reliab_shr=genshr_f(data_gen=data_gen,window=5,year=year)\n",
" \n",
" #Picks out the peak share number from above for a bb\n",
" reliab_shr_bb=np.asscalar(reliab_shr.loc[(reliab_shr['m_yr']==year)&\n",
" (reliab_shr['bb']==reg),['pk_s']].values)\n",
" #gets the revenue associated with capex for the following year\n",
" inv = (np.asscalar(tp_rev.loc[(tp_rev['m_yr']==(year+1)),['base_capex']].values)+\n",
" np.asscalar(tp_rev.loc[(tp_rev['m_yr']==(year+1)),['major_capex']].values)) \n",
" #lce share I think is the ratio of lce for a node/year to the total lce for that year\n",
" #econ share is set to 1 and not defined so the second term is always zero\n",
" #the first term is just an LCE\n",
" #the second term is the reliability share which is the peak load share \n",
" #multilplied by the undefined load_reliab_shr\n",
" #so overall this is some weighted average share.\n",
" #the weight is the undefined econ_share \n",
" #one share is based on LCE\n",
" #the other share is based on load_share, but adjusted by load_reliab_shr which is also undefined\n",
" inv_shr = (econ_share*(lceshr(data=data,data_gen=data_gen,\n",
" reg=reg,year=year,ctype=ctype)) \n",
" + (1-econ_share)*reliab_shr_bb*(1-load_reliab_shr))\n",
" \n",
" #this is effectively the lce share times the investment number\n",
" d_aob = inv*inv_shr #New investment \n",
" \n",
" #Not clear what this number is, but it is 27 million in 2022 for BEN type0. \n",
" aob0 = np.asscalar(aob_accnt.loc[aob_accnt['m_yr']==(year),[reg+str(ctype)]].values)\n",
" \n",
" #this looks like adding the aob flow to the aob stock...\n",
" aob1 = aob0*(1-deprn)+d_aob\n",
" #Update AOB account\n",
" #updating AOB account with aob1 for the next year. This is for a node/type combination\n",
" aob_accnt.loc[aob_accnt['m_yr']==(year+1),[reg+str(ctype)]]=aob1\n",
" \n",
" \n",
" \n",
"#Calculate revenue\n",
"\n",
"#gets quantity data from data_gen for a bb, type, year, to type\n",
"q0=np.matrix(data_gen.loc[(data_gen['bb']==reg)&(data_gen['type']==ctype)&\n",
" (data_gen['m_yr']==year),['pk_q','dg_q','sh_q','off_q']]) #TOU quantities\n",
"\n",
"# there is no quantity so dividing the aob required revenue by the TPs/hours in the most complex way concievable...\n",
"# but gives $/hr not S/mwh. \n",
"if np.sum(q0)==0: #Adjustment for areas where plants close\n",
" pr1 = np.matrix([[aob1/(pk_tp/2),0,aob1/(sh_tp/2),aob1/(off_tp/2)]])#Revenue paid per MWh for each TP type\n",
" \n",
" #this is aob_1 split using weights based on the number of TPs in each TP type\n",
" rev_q = np.matrix([[aob1*(pk_tp/(pk_tp+sh_tp+off_tp)),0,aob1*(sh_tp/(pk_tp+sh_tp+off_tp)),aob1*(off_tp/(pk_tp+sh_tp+off_tp))]])\n",
"\n",
" \n",
"else:\n",
" #This is a matrix with the same 4 numbers\n",
" #each is aob1 (which looks like total cost to be recovered using aob) divided by the quantity for \n",
" #that type of consumer, bb and year, over all TP types\n",
" pr1 = np.matrix(np.repeat(aob1/np.sum(q0),share_n)) #Revenue paid per MWh\n",
" #this takes the price and multiplies by quantities to get a matrix of payments by TO type\n",
" rev_q = np.multiply(q0,pr1)\n",
"#puts prices into data_gen which is by TP type\n",
"data_gen.loc[(data_gen['bb']==reg)&(data_gen['type']==ctype)&\n",
" (data_gen['m_yr']==year+1),['pk_pr','dg_pr','sh_pr','off_pr']]=pr1\n",
"#puts payments/revenue/cost into data_gen\n",
"data_gen.loc[(data_gen['bb']==reg)&(data_gen['type']==ctype)&\n",
" (data_gen['m_yr']==year+1),['pk_rev','dg_rev','sh_rev','off_rev']]= rev_q \n",
"# data_gen\n",
"# aob_accnt "
]
},
{
"cell_type": "code",
"execution_count": 1576,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.20350701337099972"
]
},
"execution_count": 1576,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"reliab_shr_bb"
]
},
{
"cell_type": "code",
"execution_count": 1579,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1046565.4296344517"
]
},
"execution_count": 1579,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aob1"
]
},
{
"cell_type": "code",
"execution_count": 1432,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.9900990099009901"
]
},
"execution_count": 1432,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"load_reliab_shr"
]
},
{
"cell_type": "code",
"execution_count": 1430,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.12718268701824686"
]
},
"execution_count": 1430,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lceshr(data=data,data_gen=data_gen,\n",
" reg=reg,year=year,ctype=ctype)"
]
},
{
"cell_type": "code",
"execution_count": 1277,
"metadata": {},
"outputs": [],
"source": [
"#get data from function. Function returns shares\n",
"reliab_shr=genshr_f(data_gen=data_gen,window=5,year=year)"
]
},
{
"cell_type": "code",
"execution_count": 1179,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.20350701337099972"
]
},
"execution_count": 1179,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.asscalar(reliab_shr.loc[(reliab_shr['m_yr']==year)&(reliab_shr['bb']==reg),['pk_s']].values)"
]
},
{
"cell_type": "code",
"execution_count": 1182,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"8228835.654999971"
]
},
"execution_count": 1182,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(np.asscalar(tp_rev.loc[(tp_rev['m_yr']==(year+1)),['base_capex']].values)+\n",
" np.asscalar(tp_rev.loc[(tp_rev['m_yr']==(year+1)),['major_capex']].values)) "
]
},
{
"cell_type": "code",
"execution_count": 1187,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.12718268701824686"
]
},
"execution_count": 1187,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lceshr(data=data,data_gen=data_gen,\n",
" reg=reg,year=year,ctype=ctype)"
]
},
{
"cell_type": "code",
"execution_count": 1186,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.12718268701824686"
]
},
"execution_count": 1186,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"inv_shr"
]
},
{
"cell_type": "code",
"execution_count": 1433,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"27261225.955896057"
]
},
"execution_count": 1433,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.asscalar(aob_accnt.loc[aob_accnt['m_yr']==2022,[reg+str(ctype)]].values)"
]
},
{
"cell_type": "code",
"execution_count": 1219,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" p_yr | \n",
" m_yr | \n",
" MDN1 | \n",
" OTA1 | \n",
" HLY1 | \n",
" TRK1 | \n",
" WKM1 | \n",
" RDF1 | \n",
" SFD1 | \n",
" BPE1 | \n",
" ... | \n",
" WKM0 | \n",
" RDF0 | \n",
" SFD0 | \n",
" BPE0 | \n",
" HAY0 | \n",
" KIK0 | \n",
" ISL0 | \n",
" BEN0 | \n",
" ROX0 | \n",
" TWI0 | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 2010 | \n",
" 2008 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
"
\n",
" \n",
" 1 | \n",
" 2011 | \n",
" 2009 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
"
\n",
" \n",
" 2 | \n",
" 2012 | \n",
" 2010 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
"
\n",
" \n",
" 3 | \n",
" 2013 | \n",
" 2011 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
"
\n",
" \n",
" 4 | \n",
" 2014 | \n",
" 2012 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
"
\n",
" \n",
"
\n",
"
5 rows × 38 columns
\n",
"
"
],
"text/plain": [
" p_yr m_yr MDN1 OTA1 HLY1 TRK1 WKM1 RDF1 SFD1 BPE1 ... WKM0 \\\n",
"0 2010 2008 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 \n",
"1 2011 2009 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 \n",
"2 2012 2010 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 \n",
"3 2013 2011 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 \n",
"4 2014 2012 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 \n",
"\n",
" RDF0 SFD0 BPE0 HAY0 KIK0 ISL0 BEN0 ROX0 TWI0 \n",
"0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
"1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
"2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
"3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
"4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
"\n",
"[5 rows x 38 columns]"
]
},
"execution_count": 1219,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aob_accnt.head()"
]
},
{
"cell_type": "code",
"execution_count": 1230,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" pk_q | \n",
" dg_q | \n",
" sh_q | \n",
" off_q | \n",
"
\n",
" \n",
" \n",
" \n",
" 97 | \n",
" 942413.291 | \n",
" 0 | \n",
" 1702080.751 | \n",
" 5034443.419 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" pk_q dg_q sh_q off_q\n",
"97 942413.291 0 1702080.751 5034443.419"
]
},
"execution_count": 1230,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data_gen.loc[(data_gen.m_yr==2015)&(data_gen.bb=='BEN'),['pk_q','dg_q','sh_q','off_q']]"
]
},
{
"cell_type": "code",
"execution_count": 1436,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"matrix([[1308.20678704, 0. , 680.69296236, 162.95296686]])"
]
},
"execution_count": 1436,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.matrix([[aob1/(pk_tp/2),0,aob1/(sh_tp/2),aob1/(off_tp/2)]])"
]
},
{
"cell_type": "code",
"execution_count": 1435,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"matrix([[ 942413.291, 0. , 1702080.751, 5034443.419]])"
]
},
"execution_count": 1435,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.matrix(data_gen.loc[(data_gen['bb']==reg)&(data_gen['type']==ctype)&\n",
" (data_gen['m_yr']==year),['pk_q','dg_q','sh_q','off_q']])"
]
},
{
"cell_type": "code",
"execution_count": 1234,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"48.0"
]
},
"execution_count": 1234,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(pk_tp+sh_tp+off_tp)/365"
]
},
{
"cell_type": "code",
"execution_count": 1440,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1046565.4296344516"
]
},
"execution_count": 1440,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rev_q.sum()"
]
},
{
"cell_type": "code",
"execution_count": 1437,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1046565.4296344517"
]
},
"execution_count": 1437,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aob1"
]
},
{
"cell_type": "code",
"execution_count": 1438,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"800.0"
]
},
"execution_count": 1438,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pk_tp/2"
]
},
{
"cell_type": "code",
"execution_count": 1441,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"matrix([[0.1362904, 0.1362904, 0.1362904, 0.1362904]])"
]
},
"execution_count": 1441,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pr1"
]
},
{
"cell_type": "code",
"execution_count": 1247,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"matrix([[0.1362904, 0.1362904, 0.1362904, 0.1362904]])"
]
},
"execution_count": 1247,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.matrix(np.repeat(aob1/np.sum(q0),share_n))"
]
},
{
"cell_type": "code",
"execution_count": 1248,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"matrix([[ 942413.291, 0. , 1702080.751, 5034443.419]])"
]
},
"execution_count": 1248,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"q0"
]
},
{
"cell_type": "code",
"execution_count": 1304,
"metadata": {},
"outputs": [],
"source": [
"year=2015\n",
"\n",
"test1=np.matrix(np.repeat(10000000000,4))\n",
"test2=np.matrix(np.repeat(20000000000,4))\n",
"\n",
"data_gen.loc[(data_gen['bb']=='BEN')&(data_gen['type']==ctype)&\n",
" (data_gen['m_yr']==year+1),['pk_pr','dg_pr','sh_pr','off_pr']]=test1\n",
"#puts payments/revenue/cost into data_gen\n",
"data_gen.loc[(data_gen['bb']==reg)&(data_gen['type']==ctype)&\n",
" (data_gen['m_yr']==year+1),['pk_rev','dg_rev','sh_rev','off_rev']]= test2\n"
]
},
{
"cell_type": "code",
"execution_count": 1305,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" m_yr | \n",
" bb | \n",
" type | \n",
" pk_pr | \n",
" dg_pr | \n",
" sh_pr | \n",
" off_pr | \n",
"
\n",
" \n",
" \n",
" \n",
" 8 | \n",
" 2016 | \n",
" HLY | \n",
" 0 | \n",
" 0.000000e+00 | \n",
" 0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 18 | \n",
" 2016 | \n",
" TRK | \n",
" 0 | \n",
" 0.000000e+00 | \n",
" 0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 28 | \n",
" 2016 | \n",
" WKM | \n",
" 0 | \n",
" 0.000000e+00 | \n",
" 0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 38 | \n",
" 2016 | \n",
" RDF | \n",
" 0 | \n",
" 0.000000e+00 | \n",
" 0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 48 | \n",
" 2016 | \n",
" SFD | \n",
" 0 | \n",
" 0.000000e+00 | \n",
" 0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 58 | \n",
" 2016 | \n",
" BPE | \n",
" 0 | \n",
" 0.000000e+00 | \n",
" 0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 68 | \n",
" 2016 | \n",
" HAY | \n",
" 0 | \n",
" 0.000000e+00 | \n",
" 0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 78 | \n",
" 2016 | \n",
" KIK | \n",
" 0 | \n",
" 9.803028e+00 | \n",
" 0 | \n",
" 9.803028e+00 | \n",
" 9.803028e+00 | \n",
"
\n",
" \n",
" 88 | \n",
" 2016 | \n",
" ISL | \n",
" 0 | \n",
" 9.803028e+00 | \n",
" 0 | \n",
" 9.803028e+00 | \n",
" 9.803028e+00 | \n",
"
\n",
" \n",
" 98 | \n",
" 2016 | \n",
" BEN | \n",
" 0 | \n",
" 1.000000e+10 | \n",
" 10000000000 | \n",
" 1.000000e+10 | \n",
" 1.000000e+10 | \n",
"
\n",
" \n",
" 108 | \n",
" 2016 | \n",
" ROX | \n",
" 0 | \n",
" 9.803028e+00 | \n",
" 0 | \n",
" 9.803028e+00 | \n",
" 9.803028e+00 | \n",
"
\n",
" \n",
" 118 | \n",
" 2016 | \n",
" TWI | \n",
" 0 | \n",
" 9.803028e+00 | \n",
" 0 | \n",
" 9.803028e+00 | \n",
" 9.803028e+00 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" m_yr bb type pk_pr dg_pr sh_pr off_pr\n",
"8 2016 HLY 0 0.000000e+00 0 0.000000e+00 0.000000e+00\n",
"18 2016 TRK 0 0.000000e+00 0 0.000000e+00 0.000000e+00\n",
"28 2016 WKM 0 0.000000e+00 0 0.000000e+00 0.000000e+00\n",
"38 2016 RDF 0 0.000000e+00 0 0.000000e+00 0.000000e+00\n",
"48 2016 SFD 0 0.000000e+00 0 0.000000e+00 0.000000e+00\n",
"58 2016 BPE 0 0.000000e+00 0 0.000000e+00 0.000000e+00\n",
"68 2016 HAY 0 0.000000e+00 0 0.000000e+00 0.000000e+00\n",
"78 2016 KIK 0 9.803028e+00 0 9.803028e+00 9.803028e+00\n",
"88 2016 ISL 0 9.803028e+00 0 9.803028e+00 9.803028e+00\n",
"98 2016 BEN 0 1.000000e+10 10000000000 1.000000e+10 1.000000e+10\n",
"108 2016 ROX 0 9.803028e+00 0 9.803028e+00 9.803028e+00\n",
"118 2016 TWI 0 9.803028e+00 0 9.803028e+00 9.803028e+00"
]
},
"execution_count": 1305,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data_gen\n",
"\n",
"data_gen[(data_gen.m_yr==2016)][['m_yr','bb','type','pk_pr','dg_pr','sh_pr','off_pr']]"
]
},
{
"cell_type": "code",
"execution_count": 1452,
"metadata": {},
"outputs": [],
"source": [
"#Dispatch function - \n",
"# Gets quantities, converts to MW\n",
"def dispatch(data=data,exist_g=exist_g,year=yr_0):\n",
" #reads in the quantities for a year, sums for all types/bb nodes\n",
" Q_tou0=np.array(data.loc[(data['m_yr']==year),['pk_q','sh_q','off_q']].sum()) \n",
" #divides mwh quantities by hours in each class of demand, so the peak mwh is divided by 800 for 1600 tps \n",
" MW_tou0=np.divide(Q_tou0,mwh)\n",
" #Set a reserve overhead\n",
" uplift = 1.15 #Accounting for observed prices at peak in excess of a simple SRMC calculation, \n",
" # given e.g. opportunity costs of water and dispatch constraints - calibrated to cause prices similar to 10 year average (real $87/MWh)\n",
" dg_share=0.90 #accounting for DG contribution to generation in the shoulder and off-peak \n",
" # Collect volumes/offers - based on capacity and srmc\n",
" offer = exist_g.loc[exist_g['m_yr']==year,].copy()\n",
" offer=offer.sort_values('srmc')\n",
" #Peak Calculates the share of generation each unit has. \n",
" offer['pk_cum_mw'] = offer.pk_mw.cumsum() \n",
" offer['pk_balance']=(MW_tou0[0]*uplift)-offer.pk_cum_mw\n",
" #this next step is odd, not sure why pk_mw is added to the pk dispatch number.\n",
" #pk dispatch is the amount of average demand that is unmet at that point\n",
" #in the merit order. OK, I think it sets the price at the marginal cost of the next\n",
" #most expensive generator. But this doesn't get used later in this function\n",
" #but does get outputed in a dataframe called \"shares\"\n",
" offer['pk_dispatch']=offer.pk_balance+offer.pk_mw\n",
" offer['pk_dispatch']=np.where(offer['pk_balance']<0,offer.pk_dispatch,offer.pk_mw)\n",
" offer['pk_share']=offer.loc[offer.pk_dispatch>0,['pk_dispatch']]/(MW_tou0[0]*uplift)\n",
" #Shoulder\n",
" offer['sh_cum_mw'] = offer.sh_mw.cumsum() \n",
" offer['sh_balance']=(MW_tou0[1]*(dg_share))-offer.sh_cum_mw\n",
" offer['sh_dispatch']=offer.sh_balance+offer.sh_mw\n",
" offer['sh_dispatch']=np.where(offer['sh_balance']<0,offer.sh_dispatch,offer.sh_mw)\n",
" offer['sh_share']=offer.loc[offer.sh_dispatch>0,['sh_dispatch']]/(MW_tou0[1]*dg_share)\n",
" #Off peak\n",
" offer['off_cum_mw'] = offer.off_mw.cumsum() \n",
" offer['off_balance']=(MW_tou0[2]*(dg_share))-offer.off_cum_mw\n",
" offer['off_dispatch']=offer.off_balance+offer.off_mw\n",
" offer['off_dispatch']=np.where(offer['off_balance']<0,offer.off_dispatch,offer.off_mw)\n",
" offer['off_share']=offer.loc[offer.off_dispatch>0,['off_dispatch']]/(MW_tou0[2]*dg_share)\n",
" #Get shares\n",
" shares=offer.groupby(['bb'])['pk_share','sh_share','off_share'].apply(lambda x : x.sum())\n",
" shares.reset_index(level=0, inplace=True)\n",
" #Get prices\n",
" \n",
" #sets the pk price at the max if all generation is used to meet average demand. Or sets it at the SRMC \n",
" #of the marginal plant. \n",
" if offer.pk_balance.min() >= 0:\n",
" pk_p = 246.0 #Set to maximum observed peak average generation price (2008)\n",
" else:\n",
" pk_p = offer.loc[offer.pk_balance < 0,['srmc']].iloc[0]['srmc']\n",
" if offer.sh_balance.min() >= 0:\n",
" sh_p = 178.0 #set to maxiumum observed shoulder average generation price (2008)\n",
" else:\n",
" sh_p = offer.loc[offer.sh_balance < 0,['srmc']].iloc[0]['srmc']\n",
" if offer.off_balance.min() >= 0:\n",
" off_p = 139.0 #set to maxiumum observed off-peak average generation price (2008)\n",
" else:\n",
" off_p = offer.loc[offer.off_balance < 0,['srmc']].iloc[0]['srmc']\n",
" \n",
" #this limits the price to the max observable. Only matters if srmc is greater than the \n",
" #max thresholds. As there is no SRMC greater than 246, the first condition is pointless. \n",
" if pk_p>246.0: #Limit to maximum observed peak average generation price (2008)\n",
" pk_p=246.0\n",
" if sh_p>178.0: #Limit to maximum observed shoulder average generation pice (2008)\n",
" sh_p=178.0\n",
" if off_p>139.0: #Limit to maximum observed off-peak average generation pice (2008)\n",
" off_p=139.0\n",
" \n",
" \n",
" \n",
" if pk_p<79.0: #Limit to minimum observed peak average generation pice (2015)\n",
" pk_p=79.0\n",
" if sh_p<64.0: #Limit to minimum observed shoulder average generation pice (2009)\n",
" sh_p=64.0\n",
" if off_p<40.0:\n",
" off_p=40.0 #Limit to minimum observed off-peak average generation pice (2009)\n",
" p = [pk_p,sh_p,off_p]\n",
" return shares, p"
]
},
{
"cell_type": "code",
"execution_count": 1601,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" bb | \n",
" pk_share | \n",
" sh_share | \n",
" off_share | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" BEN | \n",
" 0.252903 | \n",
" 0.295876 | \n",
" 0.225390 | \n",
"
\n",
" \n",
" 1 | \n",
" BPE | \n",
" 0.063685 | \n",
" 0.067886 | \n",
" 0.070588 | \n",
"
\n",
" \n",
" 2 | \n",
" HAY | \n",
" 0.004366 | \n",
" 0.000000 | \n",
" 0.014564 | \n",
"
\n",
" \n",
" 3 | \n",
" HLY | \n",
" 0.069257 | \n",
" 0.000000 | \n",
" 0.041023 | \n",
"
\n",
" \n",
" 4 | \n",
" ISL | \n",
" 0.009614 | \n",
" 0.011247 | \n",
" 0.009332 | \n",
"
\n",
" \n",
" 5 | \n",
" KIK | \n",
" 0.004654 | \n",
" 0.005445 | \n",
" 0.004147 | \n",
"
\n",
" \n",
" 6 | \n",
" RDF | \n",
" 0.020069 | \n",
" 0.023480 | \n",
" 0.017886 | \n",
"
\n",
" \n",
" 7 | \n",
" ROX | \n",
" 0.121580 | \n",
" 0.142238 | \n",
" 0.108353 | \n",
"
\n",
" \n",
" 8 | \n",
" SFD | \n",
" 0.067855 | \n",
" 0.005274 | \n",
" 0.072970 | \n",
"
\n",
" \n",
" 9 | \n",
" TRK | \n",
" 0.028030 | \n",
" 0.034583 | \n",
" 0.036031 | \n",
"
\n",
" \n",
" 10 | \n",
" TWI | \n",
" 0.106164 | \n",
" 0.124203 | \n",
" 0.094615 | \n",
"
\n",
" \n",
" 11 | \n",
" WKM | \n",
" 0.251824 | \n",
" 0.289767 | \n",
" 0.305100 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" bb pk_share sh_share off_share\n",
"0 BEN 0.252903 0.295876 0.225390\n",
"1 BPE 0.063685 0.067886 0.070588\n",
"2 HAY 0.004366 0.000000 0.014564\n",
"3 HLY 0.069257 0.000000 0.041023\n",
"4 ISL 0.009614 0.011247 0.009332\n",
"5 KIK 0.004654 0.005445 0.004147\n",
"6 RDF 0.020069 0.023480 0.017886\n",
"7 ROX 0.121580 0.142238 0.108353\n",
"8 SFD 0.067855 0.005274 0.072970\n",
"9 TRK 0.028030 0.034583 0.036031\n",
"10 TWI 0.106164 0.124203 0.094615\n",
"11 WKM 0.251824 0.289767 0.305100"
]
},
"execution_count": 1601,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"year=2018\n",
"offer = exist_g.loc[exist_g['m_yr']==year,].copy()\n",
"offer=offer.sort_values('srmc')\n",
"offer['pk_cum_mw'] = offer.pk_mw.cumsum() \n",
"offer['pk_balance']=(MW_tou0[0]*uplift)-offer.pk_cum_mw\n",
"\n",
"offer['pk_dispatch']=offer.pk_balance+offer.pk_mw\n",
"offer['pk_dispatch']=np.where(offer['pk_balance']<0,offer.pk_dispatch,offer.pk_mw)\n",
"offer['pk_share']=offer.loc[offer.pk_dispatch>0,['pk_dispatch']]/(MW_tou0[0]*uplift)\n",
"\n",
"offer['sh_cum_mw'] = offer.sh_mw.cumsum() \n",
"offer['sh_balance']=(MW_tou0[1]*(dg_share))-offer.sh_cum_mw\n",
"offer['sh_dispatch']=offer.sh_balance+offer.sh_mw\n",
"offer['sh_dispatch']=np.where(offer['sh_balance']<0,offer.sh_dispatch,offer.sh_mw)\n",
"offer['sh_share']=offer.loc[offer.sh_dispatch>0,['sh_dispatch']]/(MW_tou0[1]*dg_share)\n",
"\n",
"offer['off_cum_mw'] = offer.off_mw.cumsum() \n",
"offer['off_balance']=(MW_tou0[2]*(dg_share))-offer.off_cum_mw\n",
"offer['off_dispatch']=offer.off_balance+offer.off_mw\n",
"offer['off_dispatch']=np.where(offer['off_balance']<0,offer.off_dispatch,offer.off_mw)\n",
"offer['off_share']=offer.loc[offer.off_dispatch>0,['off_dispatch']]/(MW_tou0[2]*dg_share)\n",
"\n",
"shares=offer.groupby(['bb'])['pk_share','sh_share','off_share'].apply(lambda x : x.sum())\n",
"shares.reset_index(level=0, inplace=True)\n",
"#interesting that shoulder periods have no generation by thermal, but off peak does. \n",
"shares\n"
]
},
{
"cell_type": "code",
"execution_count": 1602,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" m_yr | \n",
" bb | \n",
" tech | \n",
" name | \n",
" existing | \n",
" available | \n",
" srmc | \n",
" lrmc | \n",
" pk_mw | \n",
" dg_mw | \n",
" ... | \n",
" pk_dispatch | \n",
" pk_share | \n",
" sh_cum_mw | \n",
" sh_balance | \n",
" sh_dispatch | \n",
" sh_share | \n",
" off_cum_mw | \n",
" off_balance | \n",
" off_dispatch | \n",
" off_share | \n",
"
\n",
" \n",
" \n",
" \n",
" 72 | \n",
" 2018 | \n",
" BEN | \n",
" HydSC | \n",
" WtkiHyd | \n",
" 1 | \n",
" 0 | \n",
" 0.918897 | \n",
" 0 | \n",
" 1652.05 | \n",
" 0 | \n",
" ... | \n",
" 1652.050000 | \n",
" 0.252903 | \n",
" 1486.845 | \n",
" 3538.388605 | \n",
" 1486.845000 | \n",
" 0.295876 | \n",
" 869.5000 | \n",
" 2988.251348 | \n",
" 869.500000 | \n",
" 0.225390 | \n",
"
\n",
" \n",
" 99 | \n",
" 2018 | \n",
" TWI | \n",
" HydSC | \n",
" FlndHyd | \n",
" 1 | \n",
" 0 | \n",
" 0.918897 | \n",
" 0 | \n",
" 693.50 | \n",
" 0 | \n",
" ... | \n",
" 693.500000 | \n",
" 0.106164 | \n",
" 2110.995 | \n",
" 2914.238605 | \n",
" 624.150000 | \n",
" 0.124203 | \n",
" 1234.5000 | \n",
" 2623.251348 | \n",
" 365.000000 | \n",
" 0.094615 | \n",
"
\n",
" \n",
" 98 | \n",
" 2018 | \n",
" TRK | \n",
" HydSC | \n",
" BoPyHyd | \n",
" 1 | \n",
" 0 | \n",
" 0.918897 | \n",
" 0 | \n",
" 93.10 | \n",
" 0 | \n",
" ... | \n",
" 93.100000 | \n",
" 0.014252 | \n",
" 2194.785 | \n",
" 2830.448605 | \n",
" 83.790000 | \n",
" 0.016674 | \n",
" 1283.5000 | \n",
" 2574.251348 | \n",
" 49.000000 | \n",
" 0.012702 | \n",
"
\n",
" \n",
" 96 | \n",
" 2018 | \n",
" SFD | \n",
" HydSC | \n",
" TariHyd | \n",
" 1 | \n",
" 0 | \n",
" 0.918897 | \n",
" 0 | \n",
" 29.45 | \n",
" 0 | \n",
" ... | \n",
" 29.450000 | \n",
" 0.004508 | \n",
" 2221.290 | \n",
" 2803.943605 | \n",
" 26.505000 | \n",
" 0.005274 | \n",
" 1299.0000 | \n",
" 2558.751348 | \n",
" 15.500000 | \n",
" 0.004018 | \n",
"
\n",
" \n",
" 90 | \n",
" 2018 | \n",
" ROX | \n",
" HydSC | \n",
" WaipHyd | \n",
" 1 | \n",
" 0 | \n",
" 0.918897 | \n",
" 0 | \n",
" 79.80 | \n",
" 0 | \n",
" ... | \n",
" 79.800000 | \n",
" 0.012216 | \n",
" 2293.110 | \n",
" 2732.123605 | \n",
" 71.820000 | \n",
" 0.014292 | \n",
" 1341.0000 | \n",
" 2516.751348 | \n",
" 42.000000 | \n",
" 0.010887 | \n",
"
\n",
" \n",
" 88 | \n",
" 2018 | \n",
" RDF | \n",
" HydSC | \n",
" HBayHyd | \n",
" 1 | \n",
" 0 | \n",
" 0.918897 | \n",
" 0 | \n",
" 131.10 | \n",
" 0 | \n",
" ... | \n",
" 131.100000 | \n",
" 0.020069 | \n",
" 2411.100 | \n",
" 2614.133605 | \n",
" 117.990000 | \n",
" 0.023480 | \n",
" 1410.0000 | \n",
" 2447.751348 | \n",
" 69.000000 | \n",
" 0.017886 | \n",
"
\n",
" \n",
" 86 | \n",
" 2018 | \n",
" KIK | \n",
" HydSC | \n",
" NMlbHyd | \n",
" 1 | \n",
" 0 | \n",
" 0.918897 | \n",
" 0 | \n",
" 30.40 | \n",
" 0 | \n",
" ... | \n",
" 30.400000 | \n",
" 0.004654 | \n",
" 2438.460 | \n",
" 2586.773605 | \n",
" 27.360000 | \n",
" 0.005445 | \n",
" 1426.0000 | \n",
" 2431.751348 | \n",
" 16.000000 | \n",
" 0.004147 | \n",
"
\n",
" \n",
" 85 | \n",
" 2018 | \n",
" ISL | \n",
" HydSC | \n",
" ChchHyd | \n",
" 1 | \n",
" 0 | \n",
" 0.918897 | \n",
" 0 | \n",
" 41.80 | \n",
" 0 | \n",
" ... | \n",
" 41.800000 | \n",
" 0.006399 | \n",
" 2476.080 | \n",
" 2549.153605 | \n",
" 37.620000 | \n",
" 0.007486 | \n",
" 1448.0000 | \n",
" 2409.751348 | \n",
" 22.000000 | \n",
" 0.005703 | \n",
"
\n",
" \n",
" 84 | \n",
" 2018 | \n",
" ISL | \n",
" HydRR | \n",
" Embed_hyd_WC | \n",
" 1 | \n",
" 0 | \n",
" 0.918897 | \n",
" 0 | \n",
" 21.00 | \n",
" 0 | \n",
" ... | \n",
" 21.000000 | \n",
" 0.003215 | \n",
" 2494.980 | \n",
" 2530.253605 | \n",
" 18.900000 | \n",
" 0.003761 | \n",
" 1462.0000 | \n",
" 2395.751348 | \n",
" 14.000000 | \n",
" 0.003629 | \n",
"
\n",
" \n",
" 89 | \n",
" 2018 | \n",
" ROX | \n",
" HydSC | \n",
" CluthaHyd | \n",
" 1 | \n",
" 0 | \n",
" 0.918897 | \n",
" 0 | \n",
" 714.40 | \n",
" 0 | \n",
" ... | \n",
" 714.400000 | \n",
" 0.109364 | \n",
" 3137.940 | \n",
" 1887.293605 | \n",
" 642.960000 | \n",
" 0.127946 | \n",
" 1838.0000 | \n",
" 2019.751348 | \n",
" 376.000000 | \n",
" 0.097466 | \n",
"
\n",
" \n",
" 107 | \n",
" 2018 | \n",
" WKM | \n",
" HydSC | \n",
" WaikHyd | \n",
" 1 | \n",
" 0 | \n",
" 0.918897 | \n",
" 0 | \n",
" 988.00 | \n",
" 0 | \n",
" ... | \n",
" 988.000000 | \n",
" 0.151247 | \n",
" 4027.140 | \n",
" 998.093605 | \n",
" 889.200000 | \n",
" 0.176947 | \n",
" 2358.0000 | \n",
" 1499.751348 | \n",
" 520.000000 | \n",
" 0.134794 | \n",
"
\n",
" \n",
" 73 | \n",
" 2018 | \n",
" BPE | \n",
" HydSC | \n",
" BtpeHyd | \n",
" 1 | \n",
" 0 | \n",
" 0.918897 | \n",
" 0 | \n",
" 342.00 | \n",
" 0 | \n",
" ... | \n",
" 342.000000 | \n",
" 0.052355 | \n",
" 4334.940 | \n",
" 690.293605 | \n",
" 307.800000 | \n",
" 0.061251 | \n",
" 2538.0000 | \n",
" 1319.751348 | \n",
" 180.000000 | \n",
" 0.046659 | \n",
"
\n",
" \n",
" 74 | \n",
" 2018 | \n",
" BPE | \n",
" HydSC | \n",
" WgtnHyd | \n",
" 1 | \n",
" 0 | \n",
" 0.918897 | \n",
" 0 | \n",
" 37.05 | \n",
" 0 | \n",
" ... | \n",
" 37.050000 | \n",
" 0.005672 | \n",
" 4368.285 | \n",
" 656.948605 | \n",
" 33.345000 | \n",
" 0.006636 | \n",
" 2557.5000 | \n",
" 1300.251348 | \n",
" 19.500000 | \n",
" 0.005055 | \n",
"
\n",
" \n",
" 100 | \n",
" 2018 | \n",
" WKM | \n",
" Geo | \n",
" Mokai | \n",
" 1 | \n",
" 0 | \n",
" 1.946215 | \n",
" 0 | \n",
" 100.80 | \n",
" 0 | \n",
" ... | \n",
" 100.800000 | \n",
" 0.015431 | \n",
" 4469.085 | \n",
" 556.148605 | \n",
" 100.800000 | \n",
" 0.020059 | \n",
" 2658.3000 | \n",
" 1199.451348 | \n",
" 100.800000 | \n",
" 0.026129 | \n",
"
\n",
" \n",
" 97 | \n",
" 2018 | \n",
" TRK | \n",
" Geo | \n",
" Kawerau1 | \n",
" 1 | \n",
" 0 | \n",
" 1.946215 | \n",
" 0 | \n",
" 90.00 | \n",
" 0 | \n",
" ... | \n",
" 90.000000 | \n",
" 0.013778 | \n",
" 4559.085 | \n",
" 466.148605 | \n",
" 90.000000 | \n",
" 0.017910 | \n",
" 2748.3000 | \n",
" 1109.451348 | \n",
" 90.000000 | \n",
" 0.023330 | \n",
"
\n",
" \n",
" 103 | \n",
" 2018 | \n",
" WKM | \n",
" Geo | \n",
" Ohaaki | \n",
" 1 | \n",
" 0 | \n",
" 1.946215 | \n",
" 0 | \n",
" 62.10 | \n",
" 0 | \n",
" ... | \n",
" 62.100000 | \n",
" 0.009507 | \n",
" 4621.185 | \n",
" 404.048605 | \n",
" 62.100000 | \n",
" 0.012358 | \n",
" 2810.4000 | \n",
" 1047.351348 | \n",
" 62.100000 | \n",
" 0.016097 | \n",
"
\n",
" \n",
" 101 | \n",
" 2018 | \n",
" WKM | \n",
" Geo | \n",
" NgaAwaPurua | \n",
" 1 | \n",
" 0 | \n",
" 1.946215 | \n",
" 0 | \n",
" 126.00 | \n",
" 0 | \n",
" ... | \n",
" 126.000000 | \n",
" 0.019289 | \n",
" 4747.185 | \n",
" 278.048605 | \n",
" 126.000000 | \n",
" 0.025073 | \n",
" 2936.4000 | \n",
" 921.351348 | \n",
" 126.000000 | \n",
" 0.032662 | \n",
"
\n",
" \n",
" 102 | \n",
" 2018 | \n",
" WKM | \n",
" Geo | \n",
" Ngatama | \n",
" 1 | \n",
" 0 | \n",
" 1.946215 | \n",
" 0 | \n",
" 74.70 | \n",
" 0 | \n",
" ... | \n",
" 74.700000 | \n",
" 0.011435 | \n",
" 4821.885 | \n",
" 203.348605 | \n",
" 74.700000 | \n",
" 0.014865 | \n",
" 3011.1000 | \n",
" 846.651348 | \n",
" 74.700000 | \n",
" 0.019364 | \n",
"
\n",
" \n",
" 104 | \n",
" 2018 | \n",
" WKM | \n",
" Geo | \n",
" Poihipi | \n",
" 1 | \n",
" 0 | \n",
" 1.946215 | \n",
" 0 | \n",
" 49.50 | \n",
" 0 | \n",
" ... | \n",
" 49.500000 | \n",
" 0.007578 | \n",
" 4871.385 | \n",
" 153.848605 | \n",
" 49.500000 | \n",
" 0.009850 | \n",
" 3060.6000 | \n",
" 797.151348 | \n",
" 49.500000 | \n",
" 0.012831 | \n",
"
\n",
" \n",
" 105 | \n",
" 2018 | \n",
" WKM | \n",
" Geo | \n",
" TeMihi | \n",
" 1 | \n",
" 0 | \n",
" 1.946215 | \n",
" 0 | \n",
" 102.60 | \n",
" 0 | \n",
" ... | \n",
" 102.600000 | \n",
" 0.015706 | \n",
" 4973.985 | \n",
" 51.248605 | \n",
" 102.600000 | \n",
" 0.020417 | \n",
" 3163.2000 | \n",
" 694.551348 | \n",
" 102.600000 | \n",
" 0.026596 | \n",
"
\n",
" \n",
" 106 | \n",
" 2018 | \n",
" WKM | \n",
" Geo | \n",
" Wairaki | \n",
" 1 | \n",
" 0 | \n",
" 1.946215 | \n",
" 0 | \n",
" 141.30 | \n",
" 0 | \n",
" ... | \n",
" 141.300000 | \n",
" 0.021631 | \n",
" 5115.285 | \n",
" -90.051395 | \n",
" 51.248605 | \n",
" 0.010198 | \n",
" 3304.5000 | \n",
" 553.251348 | \n",
" 141.300000 | \n",
" 0.036628 | \n",
"
\n",
" \n",
" 76 | \n",
" 2018 | \n",
" BPE | \n",
" Wind | \n",
" TeApiti | \n",
" 1 | \n",
" 0 | \n",
" 3.205454 | \n",
" 0 | \n",
" 18.16 | \n",
" 0 | \n",
" ... | \n",
" 18.160000 | \n",
" 0.002780 | \n",
" 5131.629 | \n",
" -106.395395 | \n",
" -90.051395 | \n",
" NaN | \n",
" 3340.2752 | \n",
" 517.476148 | \n",
" 35.775200 | \n",
" 0.009274 | \n",
"
\n",
" \n",
" 77 | \n",
" 2018 | \n",
" HAY | \n",
" Wind | \n",
" WestWnd | \n",
" 1 | \n",
" 0 | \n",
" 3.205454 | \n",
" 0 | \n",
" 28.52 | \n",
" 0 | \n",
" ... | \n",
" 28.520000 | \n",
" 0.004366 | \n",
" 5157.297 | \n",
" -132.063395 | \n",
" -106.395395 | \n",
" NaN | \n",
" 3396.4596 | \n",
" 461.291748 | \n",
" 56.184400 | \n",
" 0.014564 | \n",
"
\n",
" \n",
" 75 | \n",
" 2018 | \n",
" BPE | \n",
" Wind | \n",
" TaraWd3 | \n",
" 1 | \n",
" 0 | \n",
" 3.205454 | \n",
" 0 | \n",
" 18.80 | \n",
" 0 | \n",
" ... | \n",
" 18.800000 | \n",
" 0.002878 | \n",
" 5174.217 | \n",
" -148.983395 | \n",
" -132.063395 | \n",
" NaN | \n",
" 3433.4956 | \n",
" 424.255748 | \n",
" 37.036000 | \n",
" 0.009600 | \n",
"
\n",
" \n",
" 91 | \n",
" 2018 | \n",
" SFD | \n",
" CCGT | \n",
" TaranCC | \n",
" 1 | \n",
" 0 | \n",
" 61.403411 | \n",
" 0 | \n",
" 361.00 | \n",
" 0 | \n",
" ... | \n",
" 361.000000 | \n",
" 0.055263 | \n",
" 5499.117 | \n",
" -473.883395 | \n",
" -148.983395 | \n",
" NaN | \n",
" 3699.4956 | \n",
" 158.255748 | \n",
" 266.000000 | \n",
" 0.068952 | \n",
"
\n",
" \n",
" 78 | \n",
" 2018 | \n",
" HLY | \n",
" CCGT | \n",
" HlyUnit5 | \n",
" 1 | \n",
" 0 | \n",
" 62.352267 | \n",
" 0 | \n",
" 365.75 | \n",
" 0 | \n",
" ... | \n",
" 365.750000 | \n",
" 0.055991 | \n",
" 5828.292 | \n",
" -803.058395 | \n",
" -473.883395 | \n",
" NaN | \n",
" 3968.9956 | \n",
" -111.244252 | \n",
" 158.255748 | \n",
" 0.041023 | \n",
"
\n",
" \n",
" 93 | \n",
" 2018 | \n",
" SFD | \n",
" GasCog | \n",
" Kapuni | \n",
" 1 | \n",
" 0 | \n",
" 73.207863 | \n",
" 0 | \n",
" 10.80 | \n",
" 0 | \n",
" ... | \n",
" 10.800000 | \n",
" 0.001653 | \n",
" 5838.012 | \n",
" -812.778395 | \n",
" -803.058395 | \n",
" NaN | \n",
" 3983.3956 | \n",
" -125.644252 | \n",
" -111.244252 | \n",
" NaN | \n",
"
\n",
" \n",
" 92 | \n",
" 2018 | \n",
" SFD | \n",
" GasCog | \n",
" Hawera | \n",
" 1 | \n",
" 0 | \n",
" 73.207863 | \n",
" 0 | \n",
" 42.00 | \n",
" 0 | \n",
" ... | \n",
" 42.000000 | \n",
" 0.006430 | \n",
" 5875.812 | \n",
" -850.578395 | \n",
" -812.778395 | \n",
" NaN | \n",
" 4039.3956 | \n",
" -181.644252 | \n",
" -125.644252 | \n",
" NaN | \n",
"
\n",
" \n",
" 79 | \n",
" 2018 | \n",
" HLY | \n",
" Coal | \n",
" HuntC3 | \n",
" 1 | \n",
" 0 | \n",
" 83.892782 | \n",
" 0 | \n",
" 190.00 | \n",
" 0 | \n",
" ... | \n",
" 86.663248 | \n",
" 0.013267 | \n",
" 6046.812 | \n",
" -1021.578395 | \n",
" -850.578395 | \n",
" NaN | \n",
" 4189.3956 | \n",
" -331.644252 | \n",
" -181.644252 | \n",
" NaN | \n",
"
\n",
" \n",
" 80 | \n",
" 2018 | \n",
" HLY | \n",
" Coal | \n",
" HuntC4 | \n",
" 1 | \n",
" 0 | \n",
" 83.892782 | \n",
" 0 | \n",
" 190.00 | \n",
" 0 | \n",
" ... | \n",
" -103.336752 | \n",
" NaN | \n",
" 6217.812 | \n",
" -1192.578395 | \n",
" -1021.578395 | \n",
" NaN | \n",
" 4339.3956 | \n",
" -481.644252 | \n",
" -331.644252 | \n",
" NaN | \n",
"
\n",
" \n",
" 81 | \n",
" 2018 | \n",
" HLY | \n",
" OCGT | \n",
" HlyUnit6 | \n",
" 1 | \n",
" 0 | \n",
" 91.821941 | \n",
" 0 | \n",
" 41.80 | \n",
" 0 | \n",
" ... | \n",
" -293.336752 | \n",
" NaN | \n",
" 6255.432 | \n",
" -1230.198395 | \n",
" -1192.578395 | \n",
" NaN | \n",
" 4348.1956 | \n",
" -490.444252 | \n",
" -481.644252 | \n",
" NaN | \n",
"
\n",
" \n",
" 82 | \n",
" 2018 | \n",
" HLY | \n",
" OCGT | \n",
" HuntlyG3 | \n",
" 1 | \n",
" 0 | \n",
" 95.002647 | \n",
" 0 | \n",
" 47.50 | \n",
" 0 | \n",
" ... | \n",
" -335.136752 | \n",
" NaN | \n",
" 6298.182 | \n",
" -1272.948395 | \n",
" -1230.198395 | \n",
" NaN | \n",
" 4358.1956 | \n",
" -500.444252 | \n",
" -490.444252 | \n",
" NaN | \n",
"
\n",
" \n",
" 83 | \n",
" 2018 | \n",
" HLY | \n",
" OCGT | \n",
" HuntlyG4 | \n",
" 1 | \n",
" 0 | \n",
" 95.002647 | \n",
" 0 | \n",
" 47.50 | \n",
" 0 | \n",
" ... | \n",
" -382.636752 | \n",
" NaN | \n",
" 6340.932 | \n",
" -1315.698395 | \n",
" -1272.948395 | \n",
" NaN | \n",
" 4368.1956 | \n",
" -510.444252 | \n",
" -500.444252 | \n",
" NaN | \n",
"
\n",
" \n",
" 95 | \n",
" 2018 | \n",
" SFD | \n",
" GasPkr | \n",
" ToddPeak_Mckee | \n",
" 1 | \n",
" 0 | \n",
" 108.452775 | \n",
" 0 | \n",
" 95.00 | \n",
" 0 | \n",
" ... | \n",
" -430.136752 | \n",
" NaN | \n",
" 6426.432 | \n",
" -1401.198395 | \n",
" -1315.698395 | \n",
" NaN | \n",
" 4378.1956 | \n",
" -520.444252 | \n",
" -510.444252 | \n",
" NaN | \n",
"
\n",
" \n",
" 94 | \n",
" 2018 | \n",
" SFD | \n",
" GasPkr | \n",
" Stratpeaker | \n",
" 1 | \n",
" 0 | \n",
" 109.404250 | \n",
" 0 | \n",
" 190.00 | \n",
" 0 | \n",
" ... | \n",
" -525.136752 | \n",
" NaN | \n",
" 6597.432 | \n",
" -1572.198395 | \n",
" -1401.198395 | \n",
" NaN | \n",
" 4398.1956 | \n",
" -540.444252 | \n",
" -520.444252 | \n",
" NaN | \n",
"
\n",
" \n",
" 87 | \n",
" 2018 | \n",
" RDF | \n",
" DslPkr | \n",
" Whirina | \n",
" 1 | \n",
" 0 | \n",
" 277.058347 | \n",
" 0 | \n",
" 147.25 | \n",
" 0 | \n",
" ... | \n",
" -715.136752 | \n",
" NaN | \n",
" 6729.957 | \n",
" -1704.723395 | \n",
" -1572.198395 | \n",
" NaN | \n",
" 4405.9456 | \n",
" -548.194252 | \n",
" -540.444252 | \n",
" NaN | \n",
"
\n",
" \n",
"
\n",
"
36 rows × 25 columns
\n",
"
"
],
"text/plain": [
" m_yr bb tech name existing available srmc lrmc \\\n",
"72 2018 BEN HydSC WtkiHyd 1 0 0.918897 0 \n",
"99 2018 TWI HydSC FlndHyd 1 0 0.918897 0 \n",
"98 2018 TRK HydSC BoPyHyd 1 0 0.918897 0 \n",
"96 2018 SFD HydSC TariHyd 1 0 0.918897 0 \n",
"90 2018 ROX HydSC WaipHyd 1 0 0.918897 0 \n",
"88 2018 RDF HydSC HBayHyd 1 0 0.918897 0 \n",
"86 2018 KIK HydSC NMlbHyd 1 0 0.918897 0 \n",
"85 2018 ISL HydSC ChchHyd 1 0 0.918897 0 \n",
"84 2018 ISL HydRR Embed_hyd_WC 1 0 0.918897 0 \n",
"89 2018 ROX HydSC CluthaHyd 1 0 0.918897 0 \n",
"107 2018 WKM HydSC WaikHyd 1 0 0.918897 0 \n",
"73 2018 BPE HydSC BtpeHyd 1 0 0.918897 0 \n",
"74 2018 BPE HydSC WgtnHyd 1 0 0.918897 0 \n",
"100 2018 WKM Geo Mokai 1 0 1.946215 0 \n",
"97 2018 TRK Geo Kawerau1 1 0 1.946215 0 \n",
"103 2018 WKM Geo Ohaaki 1 0 1.946215 0 \n",
"101 2018 WKM Geo NgaAwaPurua 1 0 1.946215 0 \n",
"102 2018 WKM Geo Ngatama 1 0 1.946215 0 \n",
"104 2018 WKM Geo Poihipi 1 0 1.946215 0 \n",
"105 2018 WKM Geo TeMihi 1 0 1.946215 0 \n",
"106 2018 WKM Geo Wairaki 1 0 1.946215 0 \n",
"76 2018 BPE Wind TeApiti 1 0 3.205454 0 \n",
"77 2018 HAY Wind WestWnd 1 0 3.205454 0 \n",
"75 2018 BPE Wind TaraWd3 1 0 3.205454 0 \n",
"91 2018 SFD CCGT TaranCC 1 0 61.403411 0 \n",
"78 2018 HLY CCGT HlyUnit5 1 0 62.352267 0 \n",
"93 2018 SFD GasCog Kapuni 1 0 73.207863 0 \n",
"92 2018 SFD GasCog Hawera 1 0 73.207863 0 \n",
"79 2018 HLY Coal HuntC3 1 0 83.892782 0 \n",
"80 2018 HLY Coal HuntC4 1 0 83.892782 0 \n",
"81 2018 HLY OCGT HlyUnit6 1 0 91.821941 0 \n",
"82 2018 HLY OCGT HuntlyG3 1 0 95.002647 0 \n",
"83 2018 HLY OCGT HuntlyG4 1 0 95.002647 0 \n",
"95 2018 SFD GasPkr ToddPeak_Mckee 1 0 108.452775 0 \n",
"94 2018 SFD GasPkr Stratpeaker 1 0 109.404250 0 \n",
"87 2018 RDF DslPkr Whirina 1 0 277.058347 0 \n",
"\n",
" pk_mw dg_mw ... pk_dispatch pk_share sh_cum_mw sh_balance \\\n",
"72 1652.05 0 ... 1652.050000 0.252903 1486.845 3538.388605 \n",
"99 693.50 0 ... 693.500000 0.106164 2110.995 2914.238605 \n",
"98 93.10 0 ... 93.100000 0.014252 2194.785 2830.448605 \n",
"96 29.45 0 ... 29.450000 0.004508 2221.290 2803.943605 \n",
"90 79.80 0 ... 79.800000 0.012216 2293.110 2732.123605 \n",
"88 131.10 0 ... 131.100000 0.020069 2411.100 2614.133605 \n",
"86 30.40 0 ... 30.400000 0.004654 2438.460 2586.773605 \n",
"85 41.80 0 ... 41.800000 0.006399 2476.080 2549.153605 \n",
"84 21.00 0 ... 21.000000 0.003215 2494.980 2530.253605 \n",
"89 714.40 0 ... 714.400000 0.109364 3137.940 1887.293605 \n",
"107 988.00 0 ... 988.000000 0.151247 4027.140 998.093605 \n",
"73 342.00 0 ... 342.000000 0.052355 4334.940 690.293605 \n",
"74 37.05 0 ... 37.050000 0.005672 4368.285 656.948605 \n",
"100 100.80 0 ... 100.800000 0.015431 4469.085 556.148605 \n",
"97 90.00 0 ... 90.000000 0.013778 4559.085 466.148605 \n",
"103 62.10 0 ... 62.100000 0.009507 4621.185 404.048605 \n",
"101 126.00 0 ... 126.000000 0.019289 4747.185 278.048605 \n",
"102 74.70 0 ... 74.700000 0.011435 4821.885 203.348605 \n",
"104 49.50 0 ... 49.500000 0.007578 4871.385 153.848605 \n",
"105 102.60 0 ... 102.600000 0.015706 4973.985 51.248605 \n",
"106 141.30 0 ... 141.300000 0.021631 5115.285 -90.051395 \n",
"76 18.16 0 ... 18.160000 0.002780 5131.629 -106.395395 \n",
"77 28.52 0 ... 28.520000 0.004366 5157.297 -132.063395 \n",
"75 18.80 0 ... 18.800000 0.002878 5174.217 -148.983395 \n",
"91 361.00 0 ... 361.000000 0.055263 5499.117 -473.883395 \n",
"78 365.75 0 ... 365.750000 0.055991 5828.292 -803.058395 \n",
"93 10.80 0 ... 10.800000 0.001653 5838.012 -812.778395 \n",
"92 42.00 0 ... 42.000000 0.006430 5875.812 -850.578395 \n",
"79 190.00 0 ... 86.663248 0.013267 6046.812 -1021.578395 \n",
"80 190.00 0 ... -103.336752 NaN 6217.812 -1192.578395 \n",
"81 41.80 0 ... -293.336752 NaN 6255.432 -1230.198395 \n",
"82 47.50 0 ... -335.136752 NaN 6298.182 -1272.948395 \n",
"83 47.50 0 ... -382.636752 NaN 6340.932 -1315.698395 \n",
"95 95.00 0 ... -430.136752 NaN 6426.432 -1401.198395 \n",
"94 190.00 0 ... -525.136752 NaN 6597.432 -1572.198395 \n",
"87 147.25 0 ... -715.136752 NaN 6729.957 -1704.723395 \n",
"\n",
" sh_dispatch sh_share off_cum_mw off_balance off_dispatch off_share \n",
"72 1486.845000 0.295876 869.5000 2988.251348 869.500000 0.225390 \n",
"99 624.150000 0.124203 1234.5000 2623.251348 365.000000 0.094615 \n",
"98 83.790000 0.016674 1283.5000 2574.251348 49.000000 0.012702 \n",
"96 26.505000 0.005274 1299.0000 2558.751348 15.500000 0.004018 \n",
"90 71.820000 0.014292 1341.0000 2516.751348 42.000000 0.010887 \n",
"88 117.990000 0.023480 1410.0000 2447.751348 69.000000 0.017886 \n",
"86 27.360000 0.005445 1426.0000 2431.751348 16.000000 0.004147 \n",
"85 37.620000 0.007486 1448.0000 2409.751348 22.000000 0.005703 \n",
"84 18.900000 0.003761 1462.0000 2395.751348 14.000000 0.003629 \n",
"89 642.960000 0.127946 1838.0000 2019.751348 376.000000 0.097466 \n",
"107 889.200000 0.176947 2358.0000 1499.751348 520.000000 0.134794 \n",
"73 307.800000 0.061251 2538.0000 1319.751348 180.000000 0.046659 \n",
"74 33.345000 0.006636 2557.5000 1300.251348 19.500000 0.005055 \n",
"100 100.800000 0.020059 2658.3000 1199.451348 100.800000 0.026129 \n",
"97 90.000000 0.017910 2748.3000 1109.451348 90.000000 0.023330 \n",
"103 62.100000 0.012358 2810.4000 1047.351348 62.100000 0.016097 \n",
"101 126.000000 0.025073 2936.4000 921.351348 126.000000 0.032662 \n",
"102 74.700000 0.014865 3011.1000 846.651348 74.700000 0.019364 \n",
"104 49.500000 0.009850 3060.6000 797.151348 49.500000 0.012831 \n",
"105 102.600000 0.020417 3163.2000 694.551348 102.600000 0.026596 \n",
"106 51.248605 0.010198 3304.5000 553.251348 141.300000 0.036628 \n",
"76 -90.051395 NaN 3340.2752 517.476148 35.775200 0.009274 \n",
"77 -106.395395 NaN 3396.4596 461.291748 56.184400 0.014564 \n",
"75 -132.063395 NaN 3433.4956 424.255748 37.036000 0.009600 \n",
"91 -148.983395 NaN 3699.4956 158.255748 266.000000 0.068952 \n",
"78 -473.883395 NaN 3968.9956 -111.244252 158.255748 0.041023 \n",
"93 -803.058395 NaN 3983.3956 -125.644252 -111.244252 NaN \n",
"92 -812.778395 NaN 4039.3956 -181.644252 -125.644252 NaN \n",
"79 -850.578395 NaN 4189.3956 -331.644252 -181.644252 NaN \n",
"80 -1021.578395 NaN 4339.3956 -481.644252 -331.644252 NaN \n",
"81 -1192.578395 NaN 4348.1956 -490.444252 -481.644252 NaN \n",
"82 -1230.198395 NaN 4358.1956 -500.444252 -490.444252 NaN \n",
"83 -1272.948395 NaN 4368.1956 -510.444252 -500.444252 NaN \n",
"95 -1315.698395 NaN 4378.1956 -520.444252 -510.444252 NaN \n",
"94 -1401.198395 NaN 4398.1956 -540.444252 -520.444252 NaN \n",
"87 -1572.198395 NaN 4405.9456 -548.194252 -540.444252 NaN \n",
"\n",
"[36 rows x 25 columns]"
]
},
"execution_count": 1602,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"offer"
]
},
{
"cell_type": "code",
"execution_count": 1591,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([5680.29847625, 5583.59289431, 4286.39038677])"
]
},
"execution_count": 1591,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"MW_tou0"
]
},
{
"cell_type": "code",
"execution_count": 1453,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"pk_q 5680.298476\n",
"sh_q 5583.592894\n",
"off_q 4286.390387\n",
"dtype: float64"
]
},
"execution_count": 1453,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"year=2016\n",
"\n",
"#data.loc[(data['m_yr']==year),['type', 'bb','m_yr','pk_q','sh_q','off_q']].sum()\n",
"\n",
"data.loc[(data['m_yr']==year),['pk_q','sh_q','off_q']].sum()/mwh\n"
]
},
{
"cell_type": "code",
"execution_count": 1454,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 4544238.781 8584774.075 27529342.259]\n",
"[5680.29847625 5583.59289431 4286.39038677]\n"
]
}
],
"source": [
"Q_tou0=np.array(data.loc[(data['m_yr']==year),['pk_q','sh_q','off_q']].sum()) \n",
"MW_tou0=np.divide(Q_tou0,mwh)\n",
"print(Q_tou0)\n",
"print (MW_tou0)"
]
},
{
"cell_type": "code",
"execution_count": 1455,
"metadata": {},
"outputs": [],
"source": [
"uplift = 1.15 \n",
"dg_share=0.9\n",
"\n",
"\n",
"offer=exist_g.loc[exist_g['m_yr']==year].sort_values('srmc')\n",
"# offer['pk_cum_mw'] = offer.pk_mw.cumsum()\n",
"# offer['pk_balance']=(MW_tou0[0]*uplift)-offer.pk_cum_mw\n",
"# offer['pk_dispatch']=offer.pk_balance+offer.pk_mw #Not sure why peak MW is being added to pk_balance which is a \n",
"# #measure of how much more capacity is required to meet demand. \n",
"# offer['pk_dispatch2']=np.where(offer['pk_balance']<0,offer.pk_dispatch,offer.pk_mw)\n",
"# offer['pk_share']=offer.loc[offer.pk_dispatch2>0,['pk_dispatch2']]/(MW_tou0[0]*uplift)\n",
"\n",
"# offer['sh_cum_mw'] = offer.sh_mw.cumsum() \n",
"# offer['sh_balance']=(MW_tou0[1]*(dg_share))-offer.sh_cum_mw\n",
"# offer['sh_dispatch']=offer.sh_balance+offer.sh_mw\n",
"# offer['sh_dispatch']=np.where(offer['sh_balance']<0,offer.sh_dispatch,offer.sh_mw)\n",
"# offer['sh_share']=offer.loc[offer.sh_dispatch>0,['sh_dispatch']]/(MW_tou0[1]*dg_share)\n",
"# #Off peak\n",
"offer['off_cum_mw'] = offer.off_mw.cumsum() \n",
"offer['off_balance']=(MW_tou0[2]*(dg_share))-offer.off_cum_mw\n",
"offer['off_dispatch']=offer.off_balance+offer.off_mw\n",
"offer['off_dispatch2']=np.where(offer['off_balance']<0,offer.off_dispatch,offer.off_mw)\n",
"offer['off_share']=offer.loc[offer.off_dispatch>0,['off_dispatch']]/(MW_tou0[2]*dg_share)\n",
"\n",
"\n",
"# shares=offer.groupby(['bb'])['pk_share','sh_share','off_share'].sum()\n",
"# shares.reset_index(level=0, inplace=True)\n",
"\n",
"# if offer.pk_balance.min() >= 0:\n",
"# pk_p = 246.0 #Set to maximum observed peak average generation price (2008)\n",
"# else:\n",
"# pk_p = offer.loc[offer.pk_balance < 0,['srmc']].iloc[0]['srmc']\n",
"# if offer.sh_balance.min() >= 0:\n",
"# sh_p = 178.0 #set to maxiumum observed shoulder average generation price (2008)\n",
"# else:\n",
"# sh_p = offer.loc[offer.sh_balance < 0,['srmc']].iloc[0]['srmc']\n",
"# if offer.off_balance.min() >= 0:\n",
"# off_p = 139.0 #set to maxiumum observed off-peak average generation price (2008)\n",
"# else:\n",
"# off_p = offer.loc[offer.off_balance < 0,['srmc']].iloc[0]['srmc']\n",
"# if pk_p>246.0: #Limit to maximum observed peak average generation price (2008)\n",
"# pk_p=246.0\n",
"# if sh_p>178.0: #Limit to maximum observed shoulder average generation pice (2008)\n",
"# sh_p=178.0\n",
"# if off_p>139.0: #Limit to maximum observed off-peak average generation pice (2008)\n",
"# off_p=139.0\n",
"# if pk_p<79.0: #Limit to minimum observed peak average generation pice (2015)\n",
"# pk_p=79.0\n",
"# if sh_p<64.0: #Limit to minimum observed shoulder average generation pice (2009)\n",
"# sh_p=64.0\n",
"# if off_p<40.0:\n",
"# off_p=40.0 #Limit to minimum observed off-peak average generation pice (2009)\n",
"# p = [pk_p,sh_p,off_p]"
]
},
{
"cell_type": "code",
"execution_count": 1456,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" m_yr | \n",
" bb | \n",
" pk_s | \n",
" sh_s | \n",
" off_s | \n",
"
\n",
" \n",
" \n",
" \n",
" 7 | \n",
" 2015 | \n",
" HLY | \n",
" 0.175414 | \n",
" 0.170930 | \n",
" 0.162331 | \n",
"
\n",
" \n",
" 17 | \n",
" 2015 | \n",
" TRK | \n",
" 0.033038 | \n",
" 0.033586 | \n",
" 0.038738 | \n",
"
\n",
" \n",
" 27 | \n",
" 2015 | \n",
" WKM | \n",
" 0.204402 | \n",
" 0.200291 | \n",
" 0.207529 | \n",
"
\n",
" \n",
" 37 | \n",
" 2015 | \n",
" RDF | \n",
" 0.000139 | \n",
" 0.000048 | \n",
" 0.000024 | \n",
"
\n",
" \n",
" 47 | \n",
" 2015 | \n",
" SFD | \n",
" 0.059497 | \n",
" 0.055775 | \n",
" 0.053375 | \n",
"
\n",
" \n",
" 57 | \n",
" 2015 | \n",
" BPE | \n",
" 0.062321 | \n",
" 0.057684 | \n",
" 0.054045 | \n",
"
\n",
" \n",
" 67 | \n",
" 2015 | \n",
" HAY | \n",
" 0.011881 | \n",
" 0.012731 | \n",
" 0.015323 | \n",
"
\n",
" \n",
" 77 | \n",
" 2015 | \n",
" KIK | \n",
" 0.006284 | \n",
" 0.006327 | \n",
" 0.005987 | \n",
"
\n",
" \n",
" 87 | \n",
" 2015 | \n",
" ISL | \n",
" 0.011370 | \n",
" 0.011298 | \n",
" 0.012045 | \n",
"
\n",
" \n",
" 97 | \n",
" 2015 | \n",
" BEN | \n",
" 0.203507 | \n",
" 0.212502 | \n",
" 0.206773 | \n",
"
\n",
" \n",
" 107 | \n",
" 2015 | \n",
" ROX | \n",
" 0.111397 | \n",
" 0.113331 | \n",
" 0.107639 | \n",
"
\n",
" \n",
" 117 | \n",
" 2015 | \n",
" TWI | \n",
" 0.120750 | \n",
" 0.125498 | \n",
" 0.136190 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" m_yr bb pk_s sh_s off_s\n",
"7 2015 HLY 0.175414 0.170930 0.162331\n",
"17 2015 TRK 0.033038 0.033586 0.038738\n",
"27 2015 WKM 0.204402 0.200291 0.207529\n",
"37 2015 RDF 0.000139 0.000048 0.000024\n",
"47 2015 SFD 0.059497 0.055775 0.053375\n",
"57 2015 BPE 0.062321 0.057684 0.054045\n",
"67 2015 HAY 0.011881 0.012731 0.015323\n",
"77 2015 KIK 0.006284 0.006327 0.005987\n",
"87 2015 ISL 0.011370 0.011298 0.012045\n",
"97 2015 BEN 0.203507 0.212502 0.206773\n",
"107 2015 ROX 0.111397 0.113331 0.107639\n",
"117 2015 TWI 0.120750 0.125498 0.136190"
]
},
"execution_count": 1456,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"shares"
]
},
{
"cell_type": "code",
"execution_count": 1285,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"bb\n",
"BEN 0.806364\n",
"BPE 0.629115\n",
"HAY 0.124539\n",
"HLY 0.041023\n",
"ISL 0.411510\n",
"KIK 0.147560\n",
"RDF 0.458752\n",
"ROX 0.910505\n",
"SFD 0.583632\n",
"TRK 1.352680\n",
"TWI 0.580974\n",
"WKM 6.882406\n",
"Name: off_share, dtype: float64"
]
},
"execution_count": 1285,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"offer.groupby(['bb'])['off_share'].sum()"
]
},
{
"cell_type": "code",
"execution_count": 1622,
"metadata": {},
"outputs": [],
"source": [
"off_p = offer.loc[offer.off_balance < 0,['srmc']].iloc[0]['srmc']"
]
},
{
"cell_type": "code",
"execution_count": 1623,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"62.352267000000005"
]
},
"execution_count": 1623,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"off_p"
]
},
{
"cell_type": "code",
"execution_count": 1624,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" srmc | \n",
"
\n",
" \n",
" \n",
" \n",
" 78 | \n",
" 62.352267 | \n",
"
\n",
" \n",
" 93 | \n",
" 73.207863 | \n",
"
\n",
" \n",
" 92 | \n",
" 73.207863 | \n",
"
\n",
" \n",
" 79 | \n",
" 83.892782 | \n",
"
\n",
" \n",
" 80 | \n",
" 83.892782 | \n",
"
\n",
" \n",
" 81 | \n",
" 91.821941 | \n",
"
\n",
" \n",
" 82 | \n",
" 95.002647 | \n",
"
\n",
" \n",
" 83 | \n",
" 95.002647 | \n",
"
\n",
" \n",
" 95 | \n",
" 108.452775 | \n",
"
\n",
" \n",
" 94 | \n",
" 109.404250 | \n",
"
\n",
" \n",
" 87 | \n",
" 277.058347 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" srmc\n",
"78 62.352267\n",
"93 73.207863\n",
"92 73.207863\n",
"79 83.892782\n",
"80 83.892782\n",
"81 91.821941\n",
"82 95.002647\n",
"83 95.002647\n",
"95 108.452775\n",
"94 109.404250\n",
"87 277.058347"
]
},
"execution_count": 1624,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"offer.loc[offer.off_balance < 0,['srmc']]"
]
},
{
"cell_type": "code",
"execution_count": 1289,
"metadata": {},
"outputs": [
{
"ename": "AttributeError",
"evalue": "'function' object has no attribute 'head'",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mgen_update\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhead\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;31mAttributeError\u001b[0m: 'function' object has no attribute 'head'"
]
}
],
"source": [
"gen_update.head()"
]
},
{
"cell_type": "code",
"execution_count": 1290,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['BEN',\n",
" 'BPE',\n",
" 'HAY',\n",
" 'HLY',\n",
" 'ISL',\n",
" 'KIK',\n",
" 'MDN',\n",
" 'OTA',\n",
" 'RDF',\n",
" 'ROX',\n",
" 'SFD',\n",
" 'TRK',\n",
" 'TWI',\n",
" 'WKM']"
]
},
"execution_count": 1290,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\n",
"import numpy\n",
"CodeList=numpy.unique(data['bb']).tolist()\n",
"CodeList"
]
},
{
"cell_type": "code",
"execution_count": 1291,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['bb',\n",
" 'type',\n",
" 'p_yr',\n",
" 'm_yr',\n",
" 'pk_s',\n",
" 'dg_s',\n",
" 'sh_s',\n",
" 'off_s',\n",
" 'pk_p',\n",
" 'dg_p',\n",
" 'sh_p',\n",
" 'off_p',\n",
" 'pk_q',\n",
" 'dg_q',\n",
" 'sh_q',\n",
" 'off_q',\n",
" 'exp_per_icp',\n",
" 'exp_all',\n",
" 'icp',\n",
" 'dg_max',\n",
" 'earn_icp',\n",
" 'dg_icp',\n",
" 'pk_pt',\n",
" 'dg_pt',\n",
" 'sh_pt',\n",
" 'off_pt',\n",
" 'pk_i',\n",
" 'dg_i',\n",
" 'sh_i',\n",
" 'off_i',\n",
" 'pk_ic',\n",
" 'dg_ic',\n",
" 'sh_ic',\n",
" 'off_ic',\n",
" 'pk_pg',\n",
" 'dg_pg',\n",
" 'sh_pg',\n",
" 'off_pg',\n",
" 'pk_px',\n",
" 'dg_px',\n",
" 'sh_px',\n",
" 'off_px',\n",
" 'pk_e',\n",
" 'dg_e',\n",
" 'sh_e',\n",
" 'off_e',\n",
" 'pk_pt_mu',\n",
" 'dg_pt_mu',\n",
" 'sh_pt_mu',\n",
" 'off_pt_mu',\n",
" 'pk_s_pt_mu',\n",
" 'dg_s_pt_mu',\n",
" 'sh_s_pt_mu',\n",
" 'off_s_pt_mu',\n",
" 'pk_ns_pt_mu',\n",
" 'dg_ns_pt_mu',\n",
" 'sh_ns_pt_mu',\n",
" 'off_ns_pt_mu',\n",
" 'pk_pt_sd',\n",
" 'dg_pt_sd',\n",
" 'sh_pt_sd',\n",
" 'off_pt_sd',\n",
" 'pk_s_pt_sd',\n",
" 'dg_s_pt_sd',\n",
" 'sh_s_pt_sd',\n",
" 'off_s_pt_sd',\n",
" 'pk_ns_pt_sd',\n",
" 'dg_ns_pt_sd',\n",
" 'sh_ns_pt_sd',\n",
" 'off_ns_pt_sd',\n",
" 'pk_theta',\n",
" 'dg_theta',\n",
" 'sh_theta',\n",
" 'off_theta',\n",
" 'pk_pr',\n",
" 'dg_pr',\n",
" 'sh_pr',\n",
" 'off_pr',\n",
" 'pk_rev',\n",
" 'dg_rev',\n",
" 'sh_rev',\n",
" 'off_rev']"
]
},
"execution_count": 1291,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"L=list(data.columns.values)\n",
"L"
]
},
{
"cell_type": "code",
"execution_count": 1292,
"metadata": {},
"outputs": [],
"source": [
"pg0=np.matrix(data.loc[(data['bb']=='MDN')&(data['type']==1)&\n",
"(data['m_yr']==year),['pk_pg','dg_pg','sh_pg','off_pg']])\n",
"\n",
"\n",
"\n",
"ptmu0=np.matrix(data.loc[(data['bb']=='MDN')&(data['type']==1)&\n",
" (data['m_yr']==year),['pk_pt_mu','dg_pt_mu','sh_pt_mu','off_pt_mu']])\n",
"\n",
"\n",
"\n",
"px0=np.matrix(data.loc[(data['bb']=='MDN')&(data['type']==1)&\n",
" (data['m_yr']==year),['pk_px','dg_px','sh_px','off_px']])"
]
},
{
"cell_type": "code",
"execution_count": 1293,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"matrix([[1.1804793 , 1.1804793 , 1.17554403, 1.12605102]])"
]
},
"execution_count": 1293,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ptmu0\n"
]
},
{
"cell_type": "code",
"execution_count": 1510,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[106.9985669 106.9985669 85.25221677 63.54833923]]\n",
"[[106.9985669 106.9985669 85.25221677 63.54833923]]\n",
"[1.1804793 1.1804793 1.17554403 1.12605102]\n",
"[[90.63993512 90.63993512 72.52150059 56.4346892 ]]\n"
]
}
],
"source": [
"def ln_exp(mu=pg_mu,sd=pg_sd,n=1):\n",
" cases=len(mu) \n",
" out=np.zeros((n,cases))\n",
" for i in range(cases):\n",
" loc=np.log(mu[i]**2/np.sqrt(sd[i]**2+mu[i]**2))\n",
" scale=np.sqrt(np.log(1+(sd[i]**2/mu[i]**2)))\n",
" out[:,i] = np.exp(loc+0.5*scale)\n",
" return out\n",
"\n",
"\n",
"\n",
"year=2018\n",
"\n",
"#Gets price from merit order for both the current and previous years. \n",
"\n",
"_, dispatch_p0=dispatch(data=data,exist_g=exist_g,year=year)\n",
"_, dispatch_p1=dispatch(data=data,exist_g=exist_g,year=year-1)\n",
"\n",
"#finds the mean of the two vectors of prices. The prices are for the three different TP types\n",
"\n",
"dispatch_p=np.divide(np.add(dispatch_p0,dispatch_p1),2)\n",
"\n",
"#Uses the mean prices from above to make a vector of prices. Repeats the peak price\n",
"\n",
"pg_mu=[dispatch_p[0],dispatch_p[0],dispatch_p[1],dispatch_p[2]]\n",
"\n",
"#get the expected value of a distribution of prices from a lognormal distribution\n",
"#using hard coded standard deviations and means as calculated above from the dispatch function\n",
"\n",
"pg1 = ln_exp(mu=pg_mu,sd=pg_sd)\n",
"\n",
"#Gets the ratio of the two vectors of prices for some reason. Can't see where this is used. \n",
"pg_g = np.divide(pg1,pg0)\n",
"\n",
"#I can't see where this is used. \n",
"dp_g = pg_g-1\n",
"\n",
"#Hard coded. This is a vector of ratios. The ratio of nodal price to generation cost. \n",
"#This is a proxy for transport\n",
"#costs. \n",
"ptmu1=ptmu0\n",
"\n",
"#This is new transport costs. ptmul-1 is the increment of transpower costs over \n",
"#and above generation costs. \n",
"\n",
"pt1 = np.multiply(pg1,ptmu1-1)\n",
"\n",
"#the algebra is the same as below, so testitout and PX1 are equal\n",
"A = np.squeeze(np.asarray(ptmu1))\n",
"testitout=A*pg1\n",
"\n",
"#New grid price\n",
"px1=pg1+pt1\n",
"\n",
"#Price ratio between years. \n",
"dpx = np.divide(px1,px0)\n",
"\n",
"print (testitout)\n",
"print (px1)\n",
"print(A)\n",
"print (pg1)"
]
},
{
"cell_type": "code",
"execution_count": 447,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"numpy.matrixlib.defmatrix.matrix"
]
},
"execution_count": 447,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"type(ptmu1)"
]
},
{
"cell_type": "code",
"execution_count": 448,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"numpy.ndarray"
]
},
"execution_count": 448,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"type(pg1)"
]
},
{
"cell_type": "code",
"execution_count": 449,
"metadata": {},
"outputs": [],
"source": [
"A = np.squeeze(np.asarray(ptmu1))"
]
},
{
"cell_type": "code",
"execution_count": 450,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[106.9985669 , 106.9985669 , 85.25221677, 63.54833923]])"
]
},
"execution_count": 450,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"A*pg1"
]
},
{
"cell_type": "code",
"execution_count": 453,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"dispatch_p0 from dispatch function, so based on srmc and merit order\n",
"[79.0, 64.0, 40.0]\n",
"\n",
"dispatch_p1 from dispatch function, so based on srmc and merit order\n",
"[81.36264777, 64.0, 59.63544044]\n",
"\n",
"dispatch_p--mean of dispatch_p1 and _p0\n",
"[80.18132388 64. 49.81772022]\n",
"\n",
"pg_mu--dispatch_p prices, with peak repeated\n",
"[80.181323885, 80.181323885, 64.0, 49.81772022]\n",
"\n",
"pg1--this is a vector of expected prices generated by pg_mu and pg_sd. pg_sd is set above based on historical values.\n",
"not clear if this is updated\n",
"[[90.63993512 90.63993512 72.52150059 56.4346892 ]]\n",
"\n",
"\n",
"pg_sd generation sd based on historic data\n",
"[49.6, 49.6, 34.1, 28.0]\n",
"\n",
"pg_g\n",
"[[0.69887286 0.69887286 0.94302852 1.0684373 ]]\n",
"\n",
"dp_g\n",
"[[-0.30112714 -0.30112714 -0.05697148 0.0684373 ]]\n",
"\n",
"pt1--transport costs which ratio of nodal to generation prices times the estimated generation price\n",
"[[16.35863177 16.35863177 12.73071618 7.11365002]]\n",
"\n",
"px1--new prices that include transport\n",
"[[106.9985669 106.9985669 85.25221677 63.54833923]]\n",
"testitout--a more succinct way of calculating px1\n",
"[[106.9985669 106.9985669 85.25221677 63.54833923]]\n",
"\n",
"dpx--a price ratio between the just calculated prices and the previous prices\n",
"[[0.74830978 0.74830978 0.97416884 1.06986675]]\n",
"\n",
"\n",
"\n",
"ptmu1--ratio of nodal to geneation prices\n",
"[[1.1804793 1.1804793 1.17554403 1.12605102]]\n"
]
}
],
"source": [
"print('dispatch_p0 from dispatch function, so based on srmc and merit order')\n",
"print(dispatch_p0)\n",
"print()\n",
"print('dispatch_p1 from dispatch function, so based on srmc and merit order')\n",
"print(dispatch_p1)\n",
"print()\n",
"print('dispatch_p--mean of dispatch_p1 and _p0')\n",
"print(dispatch_p)\n",
"print()\n",
"print('pg_mu--dispatch_p prices, with peak repeated')\n",
"print(pg_mu)\n",
"print()\n",
"print('pg1--this is a vector of expected prices generated by pg_mu and pg_sd. pg_sd is set above based on historical values.')\n",
"print('not clear if this is updated')\n",
"print(pg1)\n",
"print()\n",
"print()\n",
"print('pg_sd generation sd based on historic data')\n",
"print(pg_sd)\n",
"print()\n",
"print('pg_g')\n",
"print(pg_g)\n",
"print()\n",
"print('dp_g')\n",
"print(dp_g)\n",
"print()\n",
"print('pt1--transport costs which ratio of nodal to generation prices times the estimated generation price')\n",
"print(pt1)\n",
"print()\n",
"print('px1--new prices that include transport')\n",
"print(px1)\n",
"print('testitout--a more succinct way of calculating px1')\n",
"print(testitout)\n",
"print()\n",
"print('dpx--a price ratio between the just calculated prices and the previous prices')\n",
"print(dpx)\n",
"print()\n",
"print()\n",
"print()\n",
"print('ptmu1--ratio of nodal to geneation prices')\n",
"print(ptmu1)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#Function firsts uses a dataframe with potential investments which are organised by the year\n",
"#that they are available. The function calculates a weighted average (over time) per MW revenue \n",
"#number based on expected prices calculated using dispatch_p and the MW offered for each TP \n",
"#type and a parameter to adjust for losses. This is for each potential plant. It compares this \n",
"#with a cost number which is a combination of the LRMC in the dataframe (given) and the \n",
"#transport costs (weighted over TP types). The function nets the costs from the revenue \n",
"#then filters for a positive net revenue. It selects the best two investments (hard coded) \n",
"#by getting all the investments with positive returns, selecting the two withthe smallest \n",
"#cost (if there are more than two), and then appending these to the exist_g dataframe. "
]
},
{
"cell_type": "code",
"execution_count": 307,
"metadata": {},
"outputs": [],
"source": [
"# Investment function - takes the possible generation\n",
"# Checks if it is available, \n",
"# Checks the returns the state of the demand/supply balance\n",
"# Whatever is cheapest gets invested - but before deciding which is \n",
"# cheapest we add expected AOB charges to SRMC BY SUBTRACTING SRMC FROM\n",
"# THE LRMC and then multiplying it by the lce value\n",
"# USE THE LCE SHARE VALUE FROM THE BENEFIT CALCS AND TAKE EXPECTATIONS OVER \n",
"# rEVENUE THAT IT MIGHT ATTRACT... OR CONSIDER THE LCE SHARE FROM PRIOR\n",
"# PERIODS AND USE THAT AS AN ASSUMPTION ABOUT WHAT MIGHT HAPPEN"
]
},
{
"cell_type": "code",
"execution_count": 1641,
"metadata": {},
"outputs": [],
"source": [
"#Investment function - note this is an updating function,using this year as input and getting next year value\n",
"def invest_gen(data=data,data_gen=data_gen,exist_g=exist_g,poss_g=poss_g,year=yr_0,max_inv=2):\n",
" #Decommission plant \n",
" if year==2024:\n",
" dcom2023 = ['HuntC3','HuntC4','HuntlyG3','HuntlyG4']\n",
" exist_g = exist_g[~((exist_g.name.isin(dcom2023))&(exist_g.m_yr>=2024))]\n",
" if year == 2028:\n",
" dcom2027 = ['HlyUnit6']\n",
" exist_g = exist_g[~((exist_g.name.isin(dcom2027))&(exist_g.m_yr>=2028))] \n",
" #Force new plant to join - in this case Todd peaker\n",
" if year == 2019:\n",
" ToddPkr = poss_g.loc[(poss_g['name']=='ToddPeak_npl')&(poss_g['m_yr']>=year+1),]\n",
" #Append new plant to existing plant\n",
" exist_g=exist_g.append(ToddPkr,ignore_index=True)\n",
" #Remove the invested plant from the list of possible\n",
" poss_g=poss_g[~((poss_g['name']=='ToddPeak_npl')&(poss_g.m_yr>=year+1))]\n",
" # Check of their are any plans for the year - and not ones previously used\n",
" #this means any available plant that is not existing\n",
" plan = poss_g.loc[(poss_g['m_yr']==year+1)&(poss_g['available']==1),].copy()\n",
" if plan.empty:\n",
" pass\n",
" else:\n",
" _,dispatch_p=dispatch(data=data,exist_g=exist_g,year=year)\n",
" \n",
" #Add nodal price differentials\n",
" plan=plan.merge(data_gen.loc[data_gen['m_yr']==year,['bb','pk_pt_mu','sh_pt_mu','off_pt_mu']],on='bb',how='left')\n",
" \n",
" #Revenue from average MW at dispatch prices \n",
" plan['rev']=((plan.pk_mw*plan.pk_pt_mu*dispatch_p[0]+\n",
" plan.sh_mw*plan.sh_pt_mu*dispatch_p[1]+\n",
" plan.off_mw*plan.off_pt_mu*dispatch_p[2])/\n",
" (plan.pk_mw+plan.sh_mw+plan.off_mw))\n",
" \n",
" #Add interconnection charges\n",
" plan=plan.merge(data_gen.loc[data_gen['m_yr']==year,['bb','pk_pr','dg_pr','sh_pr','off_pr']],on='bb',how='left')\n",
"\n",
" plan['ic']=((plan.pk_mw*plan.pk_pr+plan.sh_mw*plan.sh_pr+plan.off_mw*plan.off_pr)/\n",
" (plan.pk_mw+plan.sh_mw+plan.off_mw)) \n",
" \n",
" # Add interconnection charge to lrmc\n",
" plan['lrmc_ic']=plan.lrmc+plan.ic\n",
" #Select one plant, with highest return\n",
" plan['return']=plan.rev-(plan.lrmc+plan.ic)\n",
" if plan['return'].max()>0:\n",
" #prior version with one investment\n",
" long_list=plan.loc[(plan['return']>0),]\n",
" if len(long_list)>max_inv:\n",
" short_list = long_list.nsmallest(max_inv,'lrmc_ic')\n",
" else:\n",
" short_list = long_list\n",
" invest_names = short_list.loc[(short_list['return']>0),['name']] \n",
" lookup_names = invest_names.name.unique().tolist()\n",
" #Get all current and fture\n",
" invest = poss_g.loc[(poss_g['name'].isin(lookup_names))&(poss_g['m_yr']>=year+1),]\n",
" #Append new plant to existing plant\n",
" exist_g=exist_g.append(invest,ignore_index=True)\n",
" #Remove the invested plant from the list of possible\n",
" poss_g=poss_g[~((poss_g.name.isin(lookup_names))&(poss_g.m_yr>=year+1))]\n",
" return exist_g, poss_g"
]
},
{
"cell_type": "code",
"execution_count": 1633,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" m_yr | \n",
" bb | \n",
" tech | \n",
" name | \n",
" existing | \n",
" available | \n",
" srmc | \n",
" lrmc | \n",
" pk_mw | \n",
" dg_mw | \n",
" sh_mw | \n",
" off_mw | \n",
" capex | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 2016 | \n",
" BEN | \n",
" HydPK | \n",
" HaweaCG | \n",
" 0 | \n",
" 0 | \n",
" 0.918897 | \n",
" 50.828992 | \n",
" 17.00 | \n",
" 0 | \n",
" 15.300 | \n",
" 8.500 | \n",
" 4.112893e+07 | \n",
"
\n",
" \n",
" 1 | \n",
" 2016 | \n",
" BEN | \n",
" HydPK | \n",
" LakePukaki | \n",
" 0 | \n",
" 0 | \n",
" 0.918897 | \n",
" 67.220231 | \n",
" 35.00 | \n",
" 0 | \n",
" 31.500 | \n",
" 17.500 | \n",
" 1.133816e+08 | \n",
"
\n",
" \n",
" 2 | \n",
" 2016 | \n",
" BEN | \n",
" HydSC | \n",
" NorthBT | \n",
" 0 | \n",
" 0 | \n",
" 0.897527 | \n",
" 83.883436 | \n",
" 247.00 | \n",
" 0 | \n",
" 222.300 | \n",
" 130.000 | \n",
" 1.059312e+09 | \n",
"
\n",
" \n",
" 3 | \n",
" 2016 | \n",
" BPE | \n",
" Geo | \n",
" GGeoTok1 | \n",
" 0 | \n",
" 0 | \n",
" 0.809256 | \n",
" 107.693766 | \n",
" 31.50 | \n",
" 0 | \n",
" 31.500 | \n",
" 31.500 | \n",
" 2.614504e+08 | \n",
"
\n",
" \n",
" 4 | \n",
" 2016 | \n",
" BPE | \n",
" Wind | \n",
" GWindL1_s1 | \n",
" 0 | \n",
" 0 | \n",
" 3.205454 | \n",
" 96.259010 | \n",
" 50.00 | \n",
" 0 | \n",
" 45.000 | \n",
" 98.500 | \n",
" 6.844939e+08 | \n",
"
\n",
" \n",
" 5 | \n",
" 2016 | \n",
" BPE | \n",
" Wind | \n",
" GWindL1_s2 | \n",
" 0 | \n",
" 0 | \n",
" 3.205454 | \n",
" 96.273510 | \n",
" 50.00 | \n",
" 0 | \n",
" 45.000 | \n",
" 98.500 | \n",
" 6.846219e+08 | \n",
"
\n",
" \n",
" 6 | \n",
" 2016 | \n",
" BPE | \n",
" Wind | \n",
" GWindM1 | \n",
" 0 | \n",
" 0 | \n",
" 3.205454 | \n",
" 104.969155 | \n",
" 40.00 | \n",
" 0 | \n",
" 36.000 | \n",
" 78.800 | \n",
" 5.872267e+08 | \n",
"
\n",
" \n",
" 7 | \n",
" 2016 | \n",
" BPE | \n",
" Wind | \n",
" GWindM3 | \n",
" 0 | \n",
" 0 | \n",
" 3.205454 | \n",
" 104.969155 | \n",
" 40.00 | \n",
" 0 | \n",
" 36.000 | \n",
" 78.800 | \n",
" 5.872267e+08 | \n",
"
\n",
" \n",
" 8 | \n",
" 2016 | \n",
" BPE | \n",
" Wind | \n",
" Puketoi | \n",
" 0 | \n",
" 0 | \n",
" 3.205454 | \n",
" 101.873390 | \n",
" 31.80 | \n",
" 0 | \n",
" 28.620 | \n",
" 62.646 | \n",
" 4.668452e+08 | \n",
"
\n",
" \n",
" 9 | \n",
" 2016 | \n",
" BPE | \n",
" Wind | \n",
" Turitea | \n",
" 0 | \n",
" 0 | \n",
" 3.205454 | \n",
" 97.302671 | \n",
" 36.60 | \n",
" 0 | \n",
" 32.940 | \n",
" 72.102 | \n",
" 5.077905e+08 | \n",
"
\n",
" \n",
" 10 | \n",
" 2016 | \n",
" BPE | \n",
" Wind | \n",
" Waitohora | \n",
" 0 | \n",
" 0 | \n",
" 3.205454 | \n",
" 101.873390 | \n",
" 31.20 | \n",
" 0 | \n",
" 28.080 | \n",
" 61.464 | \n",
" 4.580368e+08 | \n",
"
\n",
" \n",
" 11 | \n",
" 2016 | \n",
" HAY | \n",
" Wind | \n",
" CastleHill_s1 | \n",
" 0 | \n",
" 0 | \n",
" 3.205454 | \n",
" 96.259010 | \n",
" 40.00 | \n",
" 0 | \n",
" 36.000 | \n",
" 78.800 | \n",
" 5.475952e+08 | \n",
"
\n",
" \n",
" 12 | \n",
" 2016 | \n",
" HAY | \n",
" Wind | \n",
" CastleHill_s2 | \n",
" 0 | \n",
" 0 | \n",
" 3.205454 | \n",
" 96.273510 | \n",
" 40.00 | \n",
" 0 | \n",
" 36.000 | \n",
" 78.800 | \n",
" 5.476975e+08 | \n",
"
\n",
" \n",
" 13 | \n",
" 2016 | \n",
" HAY | \n",
" Wind | \n",
" CastleHill_s3 | \n",
" 0 | \n",
" 0 | \n",
" 3.205454 | \n",
" 96.288011 | \n",
" 40.00 | \n",
" 0 | \n",
" 36.000 | \n",
" 78.800 | \n",
" 5.477999e+08 | \n",
"
\n",
" \n",
" 14 | \n",
" 2016 | \n",
" HLY | \n",
" CCGT | \n",
" CCGT4 | \n",
" 0 | \n",
" 0 | \n",
" 56.113018 | \n",
" 87.317894 | \n",
" 451.25 | \n",
" 0 | \n",
" 406.125 | \n",
" 332.500 | \n",
" 7.478010e+08 | \n",
"
\n",
" \n",
" 15 | \n",
" 2016 | \n",
" HLY | \n",
" Coal | \n",
" ASCCCSG1 | \n",
" 0 | \n",
" 0 | \n",
" 84.418343 | \n",
" 187.244233 | \n",
" 418.00 | \n",
" 0 | \n",
" 376.200 | \n",
" 330.000 | \n",
" 2.875636e+09 | \n",
"
\n",
" \n",
" 16 | \n",
" 2016 | \n",
" HLY | \n",
" Coal | \n",
" ASCG1 | \n",
" 0 | \n",
" 0 | \n",
" 58.236624 | \n",
" 119.179293 | \n",
" 532.00 | \n",
" 0 | \n",
" 478.800 | \n",
" 420.000 | \n",
" 2.167100e+09 | \n",
"
\n",
" \n",
" 17 | \n",
" 2016 | \n",
" HLY | \n",
" Coal | \n",
" IGCCCCSG1 | \n",
" 0 | \n",
" 0 | \n",
" 88.285207 | \n",
" 206.381072 | \n",
" 541.50 | \n",
" 0 | \n",
" 487.350 | \n",
" 427.500 | \n",
" 3.968237e+09 | \n",
"
\n",
" \n",
" 18 | \n",
" 2016 | \n",
" HLY | \n",
" Coal | \n",
" IGCCG1 | \n",
" 0 | \n",
" 0 | \n",
" 67.497652 | \n",
" 150.939988 | \n",
" 684.00 | \n",
" 0 | \n",
" 615.600 | \n",
" 540.000 | \n",
" 3.547475e+09 | \n",
"
\n",
" \n",
" 19 | \n",
" 2016 | \n",
" HLY | \n",
" GasPkr | \n",
" OCGTPkrG6 | \n",
" 0 | \n",
" 0 | \n",
" 107.175438 | \n",
" 253.553690 | \n",
" 190.00 | \n",
" 0 | \n",
" 171.000 | \n",
" 20.000 | \n",
" 2.272880e+08 | \n",
"
\n",
" \n",
" 20 | \n",
" 2016 | \n",
" HLY | \n",
" GasPkr | \n",
" OCGTPkrG8 | \n",
" 0 | \n",
" 0 | \n",
" 107.175438 | \n",
" 253.553690 | \n",
" 190.00 | \n",
" 0 | \n",
" 171.000 | \n",
" 20.000 | \n",
" 2.272880e+08 | \n",
"
\n",
" \n",
" 21 | \n",
" 2016 | \n",
" HLY | \n",
" HydPD | \n",
" GPdHyd2 | \n",
" 0 | \n",
" 0 | \n",
" 0.000000 | \n",
" 158.588415 | \n",
" 300.00 | \n",
" 0 | \n",
" 270.000 | \n",
" 150.000 | \n",
" 2.325537e+09 | \n",
"
\n",
" \n",
" 22 | \n",
" 2016 | \n",
" HLY | \n",
" Wind | \n",
" GWindM2 | \n",
" 0 | \n",
" 0 | \n",
" 3.205454 | \n",
" 104.969155 | \n",
" 40.00 | \n",
" 0 | \n",
" 36.000 | \n",
" 78.800 | \n",
" 5.872267e+08 | \n",
"
\n",
" \n",
" 23 | \n",
" 2016 | \n",
" HLY | \n",
" Wind | \n",
" Taharoa | \n",
" 0 | \n",
" 0 | \n",
" 3.205454 | \n",
" 118.491811 | \n",
" 10.80 | \n",
" 0 | \n",
" 9.720 | \n",
" 21.276 | \n",
" 1.843242e+08 | \n",
"
\n",
" \n",
" 24 | \n",
" 2016 | \n",
" HLY | \n",
" Wind | \n",
" Taumata | \n",
" 0 | \n",
" 0 | \n",
" 3.205454 | \n",
" 118.491811 | \n",
" 8.80 | \n",
" 0 | \n",
" 7.920 | \n",
" 17.336 | \n",
" 1.501901e+08 | \n",
"
\n",
" \n",
" 25 | \n",
" 2016 | \n",
" ISL | \n",
" DslPkr | \n",
" OCGTDSL4 | \n",
" 0 | \n",
" 0 | \n",
" 208.324894 | \n",
" 501.081399 | \n",
" 190.00 | \n",
" 0 | \n",
" 171.000 | \n",
" 10.000 | \n",
" 2.272880e+08 | \n",
"
\n",
" \n",
" 26 | \n",
" 2016 | \n",
" ISL | \n",
" HydPK | \n",
" Coleridge_2 | \n",
" 0 | \n",
" 0 | \n",
" 0.908212 | \n",
" 85.841478 | \n",
" 70.00 | \n",
" 0 | \n",
" 63.000 | \n",
" 35.000 | \n",
" 2.920198e+08 | \n",
"
\n",
" \n",
" 27 | \n",
" 2016 | \n",
" ISL | \n",
" HydRR | \n",
" Clarenc | \n",
" 0 | \n",
" 0 | \n",
" 0.918897 | \n",
" 96.616746 | \n",
" 52.50 | \n",
" 0 | \n",
" 47.250 | \n",
" 35.000 | \n",
" 3.297218e+08 | \n",
"
\n",
" \n",
" 28 | \n",
" 2016 | \n",
" ISL | \n",
" HydRR | \n",
" Clarenc54 | \n",
" 0 | \n",
" 0 | \n",
" 0.918897 | \n",
" 105.843168 | \n",
" 202.50 | \n",
" 0 | \n",
" 182.250 | \n",
" 135.000 | \n",
" 1.396426e+09 | \n",
"
\n",
" \n",
" 29 | \n",
" 2016 | \n",
" ISL | \n",
" HydRR | \n",
" ClarencCon | \n",
" 0 | \n",
" 0 | \n",
" 0.918897 | \n",
" 105.843168 | \n",
" 225.00 | \n",
" 0 | \n",
" 202.500 | \n",
" 150.000 | \n",
" 1.551585e+09 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" m_yr bb tech name existing available srmc \\\n",
"0 2016 BEN HydPK HaweaCG 0 0 0.918897 \n",
"1 2016 BEN HydPK LakePukaki 0 0 0.918897 \n",
"2 2016 BEN HydSC NorthBT 0 0 0.897527 \n",
"3 2016 BPE Geo GGeoTok1 0 0 0.809256 \n",
"4 2016 BPE Wind GWindL1_s1 0 0 3.205454 \n",
"5 2016 BPE Wind GWindL1_s2 0 0 3.205454 \n",
"6 2016 BPE Wind GWindM1 0 0 3.205454 \n",
"7 2016 BPE Wind GWindM3 0 0 3.205454 \n",
"8 2016 BPE Wind Puketoi 0 0 3.205454 \n",
"9 2016 BPE Wind Turitea 0 0 3.205454 \n",
"10 2016 BPE Wind Waitohora 0 0 3.205454 \n",
"11 2016 HAY Wind CastleHill_s1 0 0 3.205454 \n",
"12 2016 HAY Wind CastleHill_s2 0 0 3.205454 \n",
"13 2016 HAY Wind CastleHill_s3 0 0 3.205454 \n",
"14 2016 HLY CCGT CCGT4 0 0 56.113018 \n",
"15 2016 HLY Coal ASCCCSG1 0 0 84.418343 \n",
"16 2016 HLY Coal ASCG1 0 0 58.236624 \n",
"17 2016 HLY Coal IGCCCCSG1 0 0 88.285207 \n",
"18 2016 HLY Coal IGCCG1 0 0 67.497652 \n",
"19 2016 HLY GasPkr OCGTPkrG6 0 0 107.175438 \n",
"20 2016 HLY GasPkr OCGTPkrG8 0 0 107.175438 \n",
"21 2016 HLY HydPD GPdHyd2 0 0 0.000000 \n",
"22 2016 HLY Wind GWindM2 0 0 3.205454 \n",
"23 2016 HLY Wind Taharoa 0 0 3.205454 \n",
"24 2016 HLY Wind Taumata 0 0 3.205454 \n",
"25 2016 ISL DslPkr OCGTDSL4 0 0 208.324894 \n",
"26 2016 ISL HydPK Coleridge_2 0 0 0.908212 \n",
"27 2016 ISL HydRR Clarenc 0 0 0.918897 \n",
"28 2016 ISL HydRR Clarenc54 0 0 0.918897 \n",
"29 2016 ISL HydRR ClarencCon 0 0 0.918897 \n",
"\n",
" lrmc pk_mw dg_mw sh_mw off_mw capex \n",
"0 50.828992 17.00 0 15.300 8.500 4.112893e+07 \n",
"1 67.220231 35.00 0 31.500 17.500 1.133816e+08 \n",
"2 83.883436 247.00 0 222.300 130.000 1.059312e+09 \n",
"3 107.693766 31.50 0 31.500 31.500 2.614504e+08 \n",
"4 96.259010 50.00 0 45.000 98.500 6.844939e+08 \n",
"5 96.273510 50.00 0 45.000 98.500 6.846219e+08 \n",
"6 104.969155 40.00 0 36.000 78.800 5.872267e+08 \n",
"7 104.969155 40.00 0 36.000 78.800 5.872267e+08 \n",
"8 101.873390 31.80 0 28.620 62.646 4.668452e+08 \n",
"9 97.302671 36.60 0 32.940 72.102 5.077905e+08 \n",
"10 101.873390 31.20 0 28.080 61.464 4.580368e+08 \n",
"11 96.259010 40.00 0 36.000 78.800 5.475952e+08 \n",
"12 96.273510 40.00 0 36.000 78.800 5.476975e+08 \n",
"13 96.288011 40.00 0 36.000 78.800 5.477999e+08 \n",
"14 87.317894 451.25 0 406.125 332.500 7.478010e+08 \n",
"15 187.244233 418.00 0 376.200 330.000 2.875636e+09 \n",
"16 119.179293 532.00 0 478.800 420.000 2.167100e+09 \n",
"17 206.381072 541.50 0 487.350 427.500 3.968237e+09 \n",
"18 150.939988 684.00 0 615.600 540.000 3.547475e+09 \n",
"19 253.553690 190.00 0 171.000 20.000 2.272880e+08 \n",
"20 253.553690 190.00 0 171.000 20.000 2.272880e+08 \n",
"21 158.588415 300.00 0 270.000 150.000 2.325537e+09 \n",
"22 104.969155 40.00 0 36.000 78.800 5.872267e+08 \n",
"23 118.491811 10.80 0 9.720 21.276 1.843242e+08 \n",
"24 118.491811 8.80 0 7.920 17.336 1.501901e+08 \n",
"25 501.081399 190.00 0 171.000 10.000 2.272880e+08 \n",
"26 85.841478 70.00 0 63.000 35.000 2.920198e+08 \n",
"27 96.616746 52.50 0 47.250 35.000 3.297218e+08 \n",
"28 105.843168 202.50 0 182.250 135.000 1.396426e+09 \n",
"29 105.843168 225.00 0 202.500 150.000 1.551585e+09 "
]
},
"execution_count": 1633,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"poss_g.head(30)"
]
},
{
"cell_type": "code",
"execution_count": 1632,
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'max_inv' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mmax_inv\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;31mNameError\u001b[0m: name 'max_inv' is not defined"
]
}
],
"source": [
"max_inv"
]
},
{
"cell_type": "code",
"execution_count": 629,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[79.0, 64.0, 40.0]"
]
},
"execution_count": 629,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# year=2019\n",
"\n",
"# if year == 2019:\n",
"# ToddPkr = poss_g.loc[(poss_g['name']=='ToddPeak_npl')&(poss_g['m_yr']>=year+1),]\n",
"# exist_g=exist_g.append(ToddPkr,ignore_index=True)\n",
"_,dispatch_p=dispatch(data=data,exist_g=exist_g,year=year) \n",
"dispatch_p "
]
},
{
"cell_type": "code",
"execution_count": 674,
"metadata": {},
"outputs": [],
"source": [
"# year=2026\n",
"\n",
"# plan"
]
},
{
"cell_type": "code",
"execution_count": 773,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"year=2030\n",
"#reading in output data as there is no comparable input data. \n",
"#The input data is generated iteratively, so does not exist for this static sort of testing. \n",
"\n",
"plan = poss_g.loc[(poss_g['m_yr']==year+1)&(poss_g['available']==1),].copy()\n",
"\n",
"datatest=pd.read_csv(path+\"aob_no_copy.csv\")\n",
"\n",
"plan=plan.merge(datatest.loc[datatest['m_yr']==year,['bb','pk_pt_mu','sh_pt_mu','off_pt_mu']],on='bb',how='left')\n",
"\n",
"plan=plan.merge(datatest.loc[datatest['m_yr']==year,['bb','pk_pr','dg_pr','sh_pr','off_pr']],on='bb',how='left')"
]
},
{
"cell_type": "code",
"execution_count": 774,
"metadata": {},
"outputs": [],
"source": [
"#This depends a lot on what pk_pt_mu is. The documentation says it is a ratio of price \n",
"#to revenue which is wrong. \n",
"#Volume weighted mean transport cost (ratio of nodal price to average generation revenue)\n",
"#Maybe it is the ratio of nodal price times volume to nodal generation revenue. \n",
"#Not sure how this works in the simplified grid\n",
"#So what is the unit of analysis as these numbers are different for each node\n",
"\n",
"#assuming that pk_pt_mu is some average measure of losses then what this is\n",
"#a time and volume weighted average price for all three TP types\n",
"#this is done by node by year by plant\n",
"\n",
"\n",
"#not sure of the logic here of megawatts v megawatt hours...\n",
"#this is not revenue so much as a price\n",
"\n",
"plan['rev']=((plan.pk_mw*plan.pk_pt_mu*dispatch_p[0]+\n",
" plan.sh_mw*plan.sh_pt_mu*dispatch_p[1]+\n",
" plan.off_mw*plan.off_pt_mu*dispatch_p[2])/\n",
" (plan.pk_mw+plan.sh_mw+plan.off_mw))"
]
},
{
"cell_type": "code",
"execution_count": 775,
"metadata": {},
"outputs": [],
"source": [
"#pk_pr is interconnect revenue per unit of demand. So this formula essentially calculates \n",
"#a time and volume weighted interconnect price. Calculated by node, year, plant\n",
"\n",
"plan['ic']=((plan.pk_mw*plan.pk_pr+plan.sh_mw*plan.sh_pr+plan.off_mw*plan.off_pr)/\n",
" (plan.pk_mw+plan.sh_mw+plan.off_mw))"
]
},
{
"cell_type": "code",
"execution_count": 776,
"metadata": {},
"outputs": [],
"source": [
"plan['lrmc_ic']=plan.lrmc+plan.ic\n",
"plan['return']=plan.rev-(plan.lrmc+plan.ic)"
]
},
{
"cell_type": "code",
"execution_count": 777,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" m_yr | \n",
" bb | \n",
" tech | \n",
" name | \n",
" existing | \n",
" available | \n",
" srmc | \n",
" lrmc | \n",
" pk_mw | \n",
" dg_mw | \n",
" ... | \n",
" sh_pt_mu | \n",
" off_pt_mu | \n",
" pk_pr | \n",
" dg_pr | \n",
" sh_pr | \n",
" off_pr | \n",
" rev | \n",
" ic | \n",
" lrmc_ic | \n",
" return | \n",
"
\n",
" \n",
" \n",
" \n",
"
\n",
"
0 rows × 24 columns
\n",
"
"
],
"text/plain": [
"Empty DataFrame\n",
"Columns: [m_yr, bb, tech, name, existing, available, srmc, lrmc, pk_mw, dg_mw, sh_mw, off_mw, capex, pk_pt_mu, sh_pt_mu, off_pt_mu, pk_pr, dg_pr, sh_pr, off_pr, rev, ic, lrmc_ic, return]\n",
"Index: []\n",
"\n",
"[0 rows x 24 columns]"
]
},
"execution_count": 777,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"plan.loc[(plan['return']>0)]"
]
},
{
"cell_type": "code",
"execution_count": 780,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" m_yr | \n",
" bb | \n",
" tech | \n",
" name | \n",
" ic | \n",
" rev | \n",
" lrmc_ic | \n",
" lrmc | \n",
" return | \n",
" pk_mw | \n",
" sh_mw | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 2031 | \n",
" BEN | \n",
" HydPK | \n",
" HaweaCG | \n",
" 9.572458 | \n",
" 59.601769 | \n",
" 60.401450 | \n",
" 50.828992 | \n",
" -0.799682 | \n",
" 17.0 | \n",
" 15.30 | \n",
"
\n",
" \n",
" 1 | \n",
" 2031 | \n",
" BEN | \n",
" HydPK | \n",
" LakePukaki | \n",
" 9.572458 | \n",
" 59.601769 | \n",
" 76.792689 | \n",
" 67.220231 | \n",
" -17.190920 | \n",
" 35.0 | \n",
" 31.50 | \n",
"
\n",
" \n",
" 2 | \n",
" 2031 | \n",
" BEN | \n",
" HydSC | \n",
" NorthBT | \n",
" 9.572458 | \n",
" 59.332691 | \n",
" 93.455894 | \n",
" 83.883436 | \n",
" -34.123203 | \n",
" 247.0 | \n",
" 222.30 | \n",
"
\n",
" \n",
" 3 | \n",
" 2031 | \n",
" BPE | \n",
" Geo | \n",
" GGeoTok1 | \n",
" 16.445971 | \n",
" 64.261938 | \n",
" 153.641848 | \n",
" 137.195878 | \n",
" -89.379910 | \n",
" 31.5 | \n",
" 31.50 | \n",
"
\n",
" \n",
" 4 | \n",
" 2031 | \n",
" BPE | \n",
" Geo | \n",
" GGeoTok1 | \n",
" 13.967541 | \n",
" 64.261938 | \n",
" 151.163419 | \n",
" 137.195878 | \n",
" -86.901481 | \n",
" 31.5 | \n",
" 31.50 | \n",
"
\n",
" \n",
" 5 | \n",
" 2031 | \n",
" BPE | \n",
" Geo | \n",
" GGeoTok1 | \n",
" 16.445971 | \n",
" 64.132949 | \n",
" 153.641848 | \n",
" 137.195878 | \n",
" -89.508900 | \n",
" 31.5 | \n",
" 31.50 | \n",
"
\n",
" \n",
" 6 | \n",
" 2031 | \n",
" BPE | \n",
" Geo | \n",
" GGeoTok1 | \n",
" 13.967541 | \n",
" 64.132949 | \n",
" 151.163419 | \n",
" 137.195878 | \n",
" -87.030471 | \n",
" 31.5 | \n",
" 31.50 | \n",
"
\n",
" \n",
" 7 | \n",
" 2031 | \n",
" BPE | \n",
" Wind | \n",
" GWindL1_s1 | \n",
" 16.445971 | \n",
" 58.594756 | \n",
" 112.704981 | \n",
" 96.259010 | \n",
" -54.110225 | \n",
" 50.0 | \n",
" 45.00 | \n",
"
\n",
" \n",
" 8 | \n",
" 2031 | \n",
" BPE | \n",
" Wind | \n",
" GWindL1_s1 | \n",
" 13.967541 | \n",
" 58.594756 | \n",
" 110.226551 | \n",
" 96.259010 | \n",
" -51.631796 | \n",
" 50.0 | \n",
" 45.00 | \n",
"
\n",
" \n",
" 9 | \n",
" 2031 | \n",
" BPE | \n",
" Wind | \n",
" GWindL1_s1 | \n",
" 16.445971 | \n",
" 58.489977 | \n",
" 112.704981 | \n",
" 96.259010 | \n",
" -54.215003 | \n",
" 50.0 | \n",
" 45.00 | \n",
"
\n",
" \n",
" 10 | \n",
" 2031 | \n",
" BPE | \n",
" Wind | \n",
" GWindL1_s1 | \n",
" 13.967541 | \n",
" 58.489977 | \n",
" 110.226551 | \n",
" 96.259010 | \n",
" -51.736574 | \n",
" 50.0 | \n",
" 45.00 | \n",
"
\n",
" \n",
" 11 | \n",
" 2031 | \n",
" BPE | \n",
" Wind | \n",
" GWindL1_s2 | \n",
" 16.445971 | \n",
" 58.594756 | \n",
" 112.719481 | \n",
" 96.273510 | \n",
" -54.124725 | \n",
" 50.0 | \n",
" 45.00 | \n",
"
\n",
" \n",
" 12 | \n",
" 2031 | \n",
" BPE | \n",
" Wind | \n",
" GWindL1_s2 | \n",
" 13.967541 | \n",
" 58.594756 | \n",
" 110.241052 | \n",
" 96.273510 | \n",
" -51.646296 | \n",
" 50.0 | \n",
" 45.00 | \n",
"
\n",
" \n",
" 13 | \n",
" 2031 | \n",
" BPE | \n",
" Wind | \n",
" GWindL1_s2 | \n",
" 16.445971 | \n",
" 58.489977 | \n",
" 112.719481 | \n",
" 96.273510 | \n",
" -54.229504 | \n",
" 50.0 | \n",
" 45.00 | \n",
"
\n",
" \n",
" 14 | \n",
" 2031 | \n",
" BPE | \n",
" Wind | \n",
" GWindL1_s2 | \n",
" 13.967541 | \n",
" 58.489977 | \n",
" 110.241052 | \n",
" 96.273510 | \n",
" -51.751074 | \n",
" 50.0 | \n",
" 45.00 | \n",
"
\n",
" \n",
" 15 | \n",
" 2031 | \n",
" BPE | \n",
" Wind | \n",
" GWindM1 | \n",
" 16.445971 | \n",
" 58.594756 | \n",
" 121.415125 | \n",
" 104.969155 | \n",
" -62.820370 | \n",
" 40.0 | \n",
" 36.00 | \n",
"
\n",
" \n",
" 16 | \n",
" 2031 | \n",
" BPE | \n",
" Wind | \n",
" GWindM1 | \n",
" 13.967541 | \n",
" 58.594756 | \n",
" 118.936696 | \n",
" 104.969155 | \n",
" -60.341941 | \n",
" 40.0 | \n",
" 36.00 | \n",
"
\n",
" \n",
" 17 | \n",
" 2031 | \n",
" BPE | \n",
" Wind | \n",
" GWindM1 | \n",
" 16.445971 | \n",
" 58.489977 | \n",
" 121.415125 | \n",
" 104.969155 | \n",
" -62.925148 | \n",
" 40.0 | \n",
" 36.00 | \n",
"
\n",
" \n",
" 18 | \n",
" 2031 | \n",
" BPE | \n",
" Wind | \n",
" GWindM1 | \n",
" 13.967541 | \n",
" 58.489977 | \n",
" 118.936696 | \n",
" 104.969155 | \n",
" -60.446719 | \n",
" 40.0 | \n",
" 36.00 | \n",
"
\n",
" \n",
" 19 | \n",
" 2031 | \n",
" BPE | \n",
" Wind | \n",
" GWindM3 | \n",
" 16.445971 | \n",
" 58.594756 | \n",
" 121.415125 | \n",
" 104.969155 | \n",
" -62.820370 | \n",
" 40.0 | \n",
" 36.00 | \n",
"
\n",
" \n",
" 20 | \n",
" 2031 | \n",
" BPE | \n",
" Wind | \n",
" GWindM3 | \n",
" 13.967541 | \n",
" 58.594756 | \n",
" 118.936696 | \n",
" 104.969155 | \n",
" -60.341941 | \n",
" 40.0 | \n",
" 36.00 | \n",
"
\n",
" \n",
" 21 | \n",
" 2031 | \n",
" BPE | \n",
" Wind | \n",
" GWindM3 | \n",
" 16.445971 | \n",
" 58.489977 | \n",
" 121.415125 | \n",
" 104.969155 | \n",
" -62.925148 | \n",
" 40.0 | \n",
" 36.00 | \n",
"
\n",
" \n",
" 22 | \n",
" 2031 | \n",
" BPE | \n",
" Wind | \n",
" GWindM3 | \n",
" 13.967541 | \n",
" 58.489977 | \n",
" 118.936696 | \n",
" 104.969155 | \n",
" -60.446719 | \n",
" 40.0 | \n",
" 36.00 | \n",
"
\n",
" \n",
" 23 | \n",
" 2031 | \n",
" BPE | \n",
" Wind | \n",
" Puketoi | \n",
" 16.445971 | \n",
" 58.594756 | \n",
" 118.319360 | \n",
" 101.873390 | \n",
" -59.724605 | \n",
" 31.8 | \n",
" 28.62 | \n",
"
\n",
" \n",
" 24 | \n",
" 2031 | \n",
" BPE | \n",
" Wind | \n",
" Puketoi | \n",
" 13.967541 | \n",
" 58.594756 | \n",
" 115.840931 | \n",
" 101.873390 | \n",
" -57.246176 | \n",
" 31.8 | \n",
" 28.62 | \n",
"
\n",
" \n",
" 25 | \n",
" 2031 | \n",
" BPE | \n",
" Wind | \n",
" Puketoi | \n",
" 16.445971 | \n",
" 58.489977 | \n",
" 118.319360 | \n",
" 101.873390 | \n",
" -59.829383 | \n",
" 31.8 | \n",
" 28.62 | \n",
"
\n",
" \n",
" 26 | \n",
" 2031 | \n",
" BPE | \n",
" Wind | \n",
" Puketoi | \n",
" 13.967541 | \n",
" 58.489977 | \n",
" 115.840931 | \n",
" 101.873390 | \n",
" -57.350954 | \n",
" 31.8 | \n",
" 28.62 | \n",
"
\n",
" \n",
" 27 | \n",
" 2031 | \n",
" BPE | \n",
" Wind | \n",
" Turitea | \n",
" 16.445971 | \n",
" 58.594756 | \n",
" 113.748642 | \n",
" 97.302671 | \n",
" -55.153886 | \n",
" 36.6 | \n",
" 32.94 | \n",
"
\n",
" \n",
" 28 | \n",
" 2031 | \n",
" BPE | \n",
" Wind | \n",
" Turitea | \n",
" 13.967541 | \n",
" 58.594756 | \n",
" 111.270213 | \n",
" 97.302671 | \n",
" -52.675457 | \n",
" 36.6 | \n",
" 32.94 | \n",
"
\n",
" \n",
" 29 | \n",
" 2031 | \n",
" BPE | \n",
" Wind | \n",
" Turitea | \n",
" 16.445971 | \n",
" 58.489977 | \n",
" 113.748642 | \n",
" 97.302671 | \n",
" -55.258664 | \n",
" 36.6 | \n",
" 32.94 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 191 | \n",
" 2031 | \n",
" TRK | \n",
" Geo | \n",
" Rotoma | \n",
" 14.726192 | \n",
" 63.374816 | \n",
" 152.312318 | \n",
" 137.586127 | \n",
" -88.937502 | \n",
" 31.5 | \n",
" 31.50 | \n",
"
\n",
" \n",
" 192 | \n",
" 2031 | \n",
" TRK | \n",
" Geo | \n",
" Rotoma | \n",
" 10.428522 | \n",
" 63.374816 | \n",
" 148.014649 | \n",
" 137.586127 | \n",
" -84.639833 | \n",
" 31.5 | \n",
" 31.50 | \n",
"
\n",
" \n",
" 193 | \n",
" 2031 | \n",
" TRK | \n",
" Geo | \n",
" Tikitere | \n",
" 14.726192 | \n",
" 63.908808 | \n",
" 143.745586 | \n",
" 129.019395 | \n",
" -79.836778 | \n",
" 40.5 | \n",
" 40.50 | \n",
"
\n",
" \n",
" 194 | \n",
" 2031 | \n",
" TRK | \n",
" Geo | \n",
" Tikitere | \n",
" 10.428522 | \n",
" 63.908808 | \n",
" 139.447917 | \n",
" 129.019395 | \n",
" -75.539109 | \n",
" 40.5 | \n",
" 40.50 | \n",
"
\n",
" \n",
" 195 | \n",
" 2031 | \n",
" TRK | \n",
" Geo | \n",
" Tikitere | \n",
" 14.726192 | \n",
" 63.374816 | \n",
" 143.745586 | \n",
" 129.019395 | \n",
" -80.370770 | \n",
" 40.5 | \n",
" 40.50 | \n",
"
\n",
" \n",
" 196 | \n",
" 2031 | \n",
" TRK | \n",
" Geo | \n",
" Tikitere | \n",
" 10.428522 | \n",
" 63.374816 | \n",
" 139.447917 | \n",
" 129.019395 | \n",
" -76.073101 | \n",
" 40.5 | \n",
" 40.50 | \n",
"
\n",
" \n",
" 197 | \n",
" 2031 | \n",
" TWI | \n",
" Coal | \n",
" GLig1S | \n",
" 10.625336 | \n",
" 60.717161 | \n",
" 444.184933 | \n",
" 433.559596 | \n",
" -383.467772 | \n",
" 380.0 | \n",
" 342.00 | \n",
"
\n",
" \n",
" 198 | \n",
" 2031 | \n",
" TWI | \n",
" Coal | \n",
" GLig1S | \n",
" 8.875042 | \n",
" 60.717161 | \n",
" 442.434638 | \n",
" 433.559596 | \n",
" -381.717478 | \n",
" 380.0 | \n",
" 342.00 | \n",
"
\n",
" \n",
" 199 | \n",
" 2031 | \n",
" TWI | \n",
" Coal | \n",
" GLig1S | \n",
" 10.625336 | \n",
" 60.679846 | \n",
" 444.184933 | \n",
" 433.559596 | \n",
" -383.505087 | \n",
" 380.0 | \n",
" 342.00 | \n",
"
\n",
" \n",
" 200 | \n",
" 2031 | \n",
" TWI | \n",
" Coal | \n",
" GLig1S | \n",
" 8.875042 | \n",
" 60.679846 | \n",
" 442.434638 | \n",
" 433.559596 | \n",
" -381.754792 | \n",
" 380.0 | \n",
" 342.00 | \n",
"
\n",
" \n",
" 201 | \n",
" 2031 | \n",
" TWI | \n",
" Wind | \n",
" GWindL2_s1 | \n",
" 10.625336 | \n",
" 54.143979 | \n",
" 106.884346 | \n",
" 96.259010 | \n",
" -52.740368 | \n",
" 50.0 | \n",
" 45.00 | \n",
"
\n",
" \n",
" 202 | \n",
" 2031 | \n",
" TWI | \n",
" Wind | \n",
" GWindL2_s1 | \n",
" 8.875042 | \n",
" 54.143979 | \n",
" 105.134052 | \n",
" 96.259010 | \n",
" -50.990073 | \n",
" 50.0 | \n",
" 45.00 | \n",
"
\n",
" \n",
" 203 | \n",
" 2031 | \n",
" TWI | \n",
" Wind | \n",
" GWindL2_s1 | \n",
" 10.625336 | \n",
" 54.099912 | \n",
" 106.884346 | \n",
" 96.259010 | \n",
" -52.784434 | \n",
" 50.0 | \n",
" 45.00 | \n",
"
\n",
" \n",
" 204 | \n",
" 2031 | \n",
" TWI | \n",
" Wind | \n",
" GWindL2_s1 | \n",
" 8.875042 | \n",
" 54.099912 | \n",
" 105.134052 | \n",
" 96.259010 | \n",
" -51.034140 | \n",
" 50.0 | \n",
" 45.00 | \n",
"
\n",
" \n",
" 205 | \n",
" 2031 | \n",
" TWI | \n",
" Wind | \n",
" GWindL2_s2 | \n",
" 10.625336 | \n",
" 54.143979 | \n",
" 106.898847 | \n",
" 96.273510 | \n",
" -52.754868 | \n",
" 50.0 | \n",
" 45.00 | \n",
"
\n",
" \n",
" 206 | \n",
" 2031 | \n",
" TWI | \n",
" Wind | \n",
" GWindL2_s2 | \n",
" 8.875042 | \n",
" 54.143979 | \n",
" 105.148552 | \n",
" 96.273510 | \n",
" -51.004574 | \n",
" 50.0 | \n",
" 45.00 | \n",
"
\n",
" \n",
" 207 | \n",
" 2031 | \n",
" TWI | \n",
" Wind | \n",
" GWindL2_s2 | \n",
" 10.625336 | \n",
" 54.099912 | \n",
" 106.898847 | \n",
" 96.273510 | \n",
" -52.798935 | \n",
" 50.0 | \n",
" 45.00 | \n",
"
\n",
" \n",
" 208 | \n",
" 2031 | \n",
" TWI | \n",
" Wind | \n",
" GWindL2_s2 | \n",
" 8.875042 | \n",
" 54.099912 | \n",
" 105.148552 | \n",
" 96.273510 | \n",
" -51.048640 | \n",
" 50.0 | \n",
" 45.00 | \n",
"
\n",
" \n",
" 209 | \n",
" 2031 | \n",
" TWI | \n",
" Wind | \n",
" KaiweraDowns | \n",
" 10.625336 | \n",
" 54.143979 | \n",
" 112.498726 | \n",
" 101.873390 | \n",
" -58.354747 | \n",
" 48.0 | \n",
" 43.20 | \n",
"
\n",
" \n",
" 210 | \n",
" 2031 | \n",
" TWI | \n",
" Wind | \n",
" KaiweraDowns | \n",
" 8.875042 | \n",
" 54.143979 | \n",
" 110.748432 | \n",
" 101.873390 | \n",
" -56.604453 | \n",
" 48.0 | \n",
" 43.20 | \n",
"
\n",
" \n",
" 211 | \n",
" 2031 | \n",
" TWI | \n",
" Wind | \n",
" KaiweraDowns | \n",
" 10.625336 | \n",
" 54.099912 | \n",
" 112.498726 | \n",
" 101.873390 | \n",
" -58.398814 | \n",
" 48.0 | \n",
" 43.20 | \n",
"
\n",
" \n",
" 212 | \n",
" 2031 | \n",
" TWI | \n",
" Wind | \n",
" KaiweraDowns | \n",
" 8.875042 | \n",
" 54.099912 | \n",
" 110.748432 | \n",
" 101.873390 | \n",
" -56.648520 | \n",
" 48.0 | \n",
" 43.20 | \n",
"
\n",
" \n",
" 213 | \n",
" 2031 | \n",
" TWI | \n",
" Wind | \n",
" Mahinerangi2 | \n",
" 10.625336 | \n",
" 54.143979 | \n",
" 104.179815 | \n",
" 93.554479 | \n",
" -50.035836 | \n",
" 32.8 | \n",
" 29.52 | \n",
"
\n",
" \n",
" 214 | \n",
" 2031 | \n",
" TWI | \n",
" Wind | \n",
" Mahinerangi2 | \n",
" 8.875042 | \n",
" 54.143979 | \n",
" 102.429521 | \n",
" 93.554479 | \n",
" -48.285542 | \n",
" 32.8 | \n",
" 29.52 | \n",
"
\n",
" \n",
" 215 | \n",
" 2031 | \n",
" TWI | \n",
" Wind | \n",
" Mahinerangi2 | \n",
" 10.625336 | \n",
" 54.099912 | \n",
" 104.179815 | \n",
" 93.554479 | \n",
" -50.079903 | \n",
" 32.8 | \n",
" 29.52 | \n",
"
\n",
" \n",
" 216 | \n",
" 2031 | \n",
" TWI | \n",
" Wind | \n",
" Mahinerangi2 | \n",
" 8.875042 | \n",
" 54.099912 | \n",
" 102.429521 | \n",
" 93.554479 | \n",
" -48.329609 | \n",
" 32.8 | \n",
" 29.52 | \n",
"
\n",
" \n",
" 217 | \n",
" 2031 | \n",
" WKM | \n",
" Geo | \n",
" GGeoNgata1 | \n",
" 23.191490 | \n",
" 55.572437 | \n",
" 128.334975 | \n",
" 105.143485 | \n",
" -72.762538 | \n",
" 90.0 | \n",
" 90.00 | \n",
"
\n",
" \n",
" 218 | \n",
" 2031 | \n",
" WKM | \n",
" Geo | \n",
" GGeoOha1 | \n",
" 23.191490 | \n",
" 55.572437 | \n",
" 160.387367 | \n",
" 137.195878 | \n",
" -104.814930 | \n",
" 36.0 | \n",
" 36.00 | \n",
"
\n",
" \n",
" 219 | \n",
" 2031 | \n",
" WKM | \n",
" Geo | \n",
" Tauha2 | \n",
" 23.191490 | \n",
" 55.572437 | \n",
" 118.135713 | \n",
" 94.944224 | \n",
" -62.563276 | \n",
" 225.0 | \n",
" 225.00 | \n",
"
\n",
" \n",
" 220 | \n",
" 2031 | \n",
" WKM | \n",
" HydPD | \n",
" GPdHyd | \n",
" 23.191490 | \n",
" 57.939717 | \n",
" 181.779905 | \n",
" 158.588415 | \n",
" -123.840188 | \n",
" 300.0 | \n",
" 270.00 | \n",
"
\n",
" \n",
"
\n",
"
221 rows × 11 columns
\n",
"
"
],
"text/plain": [
" m_yr bb tech name ic rev lrmc_ic \\\n",
"0 2031 BEN HydPK HaweaCG 9.572458 59.601769 60.401450 \n",
"1 2031 BEN HydPK LakePukaki 9.572458 59.601769 76.792689 \n",
"2 2031 BEN HydSC NorthBT 9.572458 59.332691 93.455894 \n",
"3 2031 BPE Geo GGeoTok1 16.445971 64.261938 153.641848 \n",
"4 2031 BPE Geo GGeoTok1 13.967541 64.261938 151.163419 \n",
"5 2031 BPE Geo GGeoTok1 16.445971 64.132949 153.641848 \n",
"6 2031 BPE Geo GGeoTok1 13.967541 64.132949 151.163419 \n",
"7 2031 BPE Wind GWindL1_s1 16.445971 58.594756 112.704981 \n",
"8 2031 BPE Wind GWindL1_s1 13.967541 58.594756 110.226551 \n",
"9 2031 BPE Wind GWindL1_s1 16.445971 58.489977 112.704981 \n",
"10 2031 BPE Wind GWindL1_s1 13.967541 58.489977 110.226551 \n",
"11 2031 BPE Wind GWindL1_s2 16.445971 58.594756 112.719481 \n",
"12 2031 BPE Wind GWindL1_s2 13.967541 58.594756 110.241052 \n",
"13 2031 BPE Wind GWindL1_s2 16.445971 58.489977 112.719481 \n",
"14 2031 BPE Wind GWindL1_s2 13.967541 58.489977 110.241052 \n",
"15 2031 BPE Wind GWindM1 16.445971 58.594756 121.415125 \n",
"16 2031 BPE Wind GWindM1 13.967541 58.594756 118.936696 \n",
"17 2031 BPE Wind GWindM1 16.445971 58.489977 121.415125 \n",
"18 2031 BPE Wind GWindM1 13.967541 58.489977 118.936696 \n",
"19 2031 BPE Wind GWindM3 16.445971 58.594756 121.415125 \n",
"20 2031 BPE Wind GWindM3 13.967541 58.594756 118.936696 \n",
"21 2031 BPE Wind GWindM3 16.445971 58.489977 121.415125 \n",
"22 2031 BPE Wind GWindM3 13.967541 58.489977 118.936696 \n",
"23 2031 BPE Wind Puketoi 16.445971 58.594756 118.319360 \n",
"24 2031 BPE Wind Puketoi 13.967541 58.594756 115.840931 \n",
"25 2031 BPE Wind Puketoi 16.445971 58.489977 118.319360 \n",
"26 2031 BPE Wind Puketoi 13.967541 58.489977 115.840931 \n",
"27 2031 BPE Wind Turitea 16.445971 58.594756 113.748642 \n",
"28 2031 BPE Wind Turitea 13.967541 58.594756 111.270213 \n",
"29 2031 BPE Wind Turitea 16.445971 58.489977 113.748642 \n",
".. ... ... ... ... ... ... ... \n",
"191 2031 TRK Geo Rotoma 14.726192 63.374816 152.312318 \n",
"192 2031 TRK Geo Rotoma 10.428522 63.374816 148.014649 \n",
"193 2031 TRK Geo Tikitere 14.726192 63.908808 143.745586 \n",
"194 2031 TRK Geo Tikitere 10.428522 63.908808 139.447917 \n",
"195 2031 TRK Geo Tikitere 14.726192 63.374816 143.745586 \n",
"196 2031 TRK Geo Tikitere 10.428522 63.374816 139.447917 \n",
"197 2031 TWI Coal GLig1S 10.625336 60.717161 444.184933 \n",
"198 2031 TWI Coal GLig1S 8.875042 60.717161 442.434638 \n",
"199 2031 TWI Coal GLig1S 10.625336 60.679846 444.184933 \n",
"200 2031 TWI Coal GLig1S 8.875042 60.679846 442.434638 \n",
"201 2031 TWI Wind GWindL2_s1 10.625336 54.143979 106.884346 \n",
"202 2031 TWI Wind GWindL2_s1 8.875042 54.143979 105.134052 \n",
"203 2031 TWI Wind GWindL2_s1 10.625336 54.099912 106.884346 \n",
"204 2031 TWI Wind GWindL2_s1 8.875042 54.099912 105.134052 \n",
"205 2031 TWI Wind GWindL2_s2 10.625336 54.143979 106.898847 \n",
"206 2031 TWI Wind GWindL2_s2 8.875042 54.143979 105.148552 \n",
"207 2031 TWI Wind GWindL2_s2 10.625336 54.099912 106.898847 \n",
"208 2031 TWI Wind GWindL2_s2 8.875042 54.099912 105.148552 \n",
"209 2031 TWI Wind KaiweraDowns 10.625336 54.143979 112.498726 \n",
"210 2031 TWI Wind KaiweraDowns 8.875042 54.143979 110.748432 \n",
"211 2031 TWI Wind KaiweraDowns 10.625336 54.099912 112.498726 \n",
"212 2031 TWI Wind KaiweraDowns 8.875042 54.099912 110.748432 \n",
"213 2031 TWI Wind Mahinerangi2 10.625336 54.143979 104.179815 \n",
"214 2031 TWI Wind Mahinerangi2 8.875042 54.143979 102.429521 \n",
"215 2031 TWI Wind Mahinerangi2 10.625336 54.099912 104.179815 \n",
"216 2031 TWI Wind Mahinerangi2 8.875042 54.099912 102.429521 \n",
"217 2031 WKM Geo GGeoNgata1 23.191490 55.572437 128.334975 \n",
"218 2031 WKM Geo GGeoOha1 23.191490 55.572437 160.387367 \n",
"219 2031 WKM Geo Tauha2 23.191490 55.572437 118.135713 \n",
"220 2031 WKM HydPD GPdHyd 23.191490 57.939717 181.779905 \n",
"\n",
" lrmc return pk_mw sh_mw \n",
"0 50.828992 -0.799682 17.0 15.30 \n",
"1 67.220231 -17.190920 35.0 31.50 \n",
"2 83.883436 -34.123203 247.0 222.30 \n",
"3 137.195878 -89.379910 31.5 31.50 \n",
"4 137.195878 -86.901481 31.5 31.50 \n",
"5 137.195878 -89.508900 31.5 31.50 \n",
"6 137.195878 -87.030471 31.5 31.50 \n",
"7 96.259010 -54.110225 50.0 45.00 \n",
"8 96.259010 -51.631796 50.0 45.00 \n",
"9 96.259010 -54.215003 50.0 45.00 \n",
"10 96.259010 -51.736574 50.0 45.00 \n",
"11 96.273510 -54.124725 50.0 45.00 \n",
"12 96.273510 -51.646296 50.0 45.00 \n",
"13 96.273510 -54.229504 50.0 45.00 \n",
"14 96.273510 -51.751074 50.0 45.00 \n",
"15 104.969155 -62.820370 40.0 36.00 \n",
"16 104.969155 -60.341941 40.0 36.00 \n",
"17 104.969155 -62.925148 40.0 36.00 \n",
"18 104.969155 -60.446719 40.0 36.00 \n",
"19 104.969155 -62.820370 40.0 36.00 \n",
"20 104.969155 -60.341941 40.0 36.00 \n",
"21 104.969155 -62.925148 40.0 36.00 \n",
"22 104.969155 -60.446719 40.0 36.00 \n",
"23 101.873390 -59.724605 31.8 28.62 \n",
"24 101.873390 -57.246176 31.8 28.62 \n",
"25 101.873390 -59.829383 31.8 28.62 \n",
"26 101.873390 -57.350954 31.8 28.62 \n",
"27 97.302671 -55.153886 36.6 32.94 \n",
"28 97.302671 -52.675457 36.6 32.94 \n",
"29 97.302671 -55.258664 36.6 32.94 \n",
".. ... ... ... ... \n",
"191 137.586127 -88.937502 31.5 31.50 \n",
"192 137.586127 -84.639833 31.5 31.50 \n",
"193 129.019395 -79.836778 40.5 40.50 \n",
"194 129.019395 -75.539109 40.5 40.50 \n",
"195 129.019395 -80.370770 40.5 40.50 \n",
"196 129.019395 -76.073101 40.5 40.50 \n",
"197 433.559596 -383.467772 380.0 342.00 \n",
"198 433.559596 -381.717478 380.0 342.00 \n",
"199 433.559596 -383.505087 380.0 342.00 \n",
"200 433.559596 -381.754792 380.0 342.00 \n",
"201 96.259010 -52.740368 50.0 45.00 \n",
"202 96.259010 -50.990073 50.0 45.00 \n",
"203 96.259010 -52.784434 50.0 45.00 \n",
"204 96.259010 -51.034140 50.0 45.00 \n",
"205 96.273510 -52.754868 50.0 45.00 \n",
"206 96.273510 -51.004574 50.0 45.00 \n",
"207 96.273510 -52.798935 50.0 45.00 \n",
"208 96.273510 -51.048640 50.0 45.00 \n",
"209 101.873390 -58.354747 48.0 43.20 \n",
"210 101.873390 -56.604453 48.0 43.20 \n",
"211 101.873390 -58.398814 48.0 43.20 \n",
"212 101.873390 -56.648520 48.0 43.20 \n",
"213 93.554479 -50.035836 32.8 29.52 \n",
"214 93.554479 -48.285542 32.8 29.52 \n",
"215 93.554479 -50.079903 32.8 29.52 \n",
"216 93.554479 -48.329609 32.8 29.52 \n",
"217 105.143485 -72.762538 90.0 90.00 \n",
"218 137.195878 -104.814930 36.0 36.00 \n",
"219 94.944224 -62.563276 225.0 225.00 \n",
"220 158.588415 -123.840188 300.0 270.00 \n",
"\n",
"[221 rows x 11 columns]"
]
},
"execution_count": 780,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"plan[['m_yr','bb', 'tech','name', 'ic', 'rev','lrmc_ic','lrmc','return','pk_mw', 'sh_mw']]"
]
},
{
"cell_type": "code",
"execution_count": 636,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['m_yr',\n",
" 'bb',\n",
" 'tech',\n",
" 'name',\n",
" 'existing',\n",
" 'available',\n",
" 'srmc',\n",
" 'lrmc',\n",
" 'pk_mw',\n",
" 'dg_mw',\n",
" 'sh_mw',\n",
" 'off_mw',\n",
" 'capex',\n",
" 'pk_pr_x',\n",
" 'dg_pr_x',\n",
" 'sh_pr_x',\n",
" 'off_pr_x',\n",
" 'pk_pt_mu_x',\n",
" 'sh_pt_mu_x',\n",
" 'off_pt_mu_x',\n",
" 'rev',\n",
" 'pk_pt_mu_y',\n",
" 'sh_pt_mu_y',\n",
" 'off_pt_mu_y',\n",
" 'pk_pr_y',\n",
" 'dg_pr_y',\n",
" 'sh_pr_y',\n",
" 'off_pr_y',\n",
" 'pk_pt_mu',\n",
" 'sh_pt_mu',\n",
" 'off_pt_mu',\n",
" 'pk_pr',\n",
" 'dg_pr',\n",
" 'sh_pr',\n",
" 'off_pr']"
]
},
"execution_count": 636,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"L=list(plan.columns.values)\n",
"L"
]
},
{
"cell_type": "code",
"execution_count": 624,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['Unnamed: 0',\n",
" 'bb',\n",
" 'type',\n",
" 'p_yr',\n",
" 'm_yr',\n",
" 'pk_s',\n",
" 'dg_s',\n",
" 'sh_s',\n",
" 'off_s',\n",
" 'pk_p',\n",
" 'dg_p',\n",
" 'sh_p',\n",
" 'off_p',\n",
" 'pk_q',\n",
" 'dg_q',\n",
" 'sh_q',\n",
" 'off_q',\n",
" 'exp_per_icp',\n",
" 'exp_all',\n",
" 'icp',\n",
" 'dg_max',\n",
" 'earn_icp',\n",
" 'dg_icp',\n",
" 'pk_pt',\n",
" 'dg_pt',\n",
" 'sh_pt',\n",
" 'off_pt',\n",
" 'pk_i',\n",
" 'dg_i',\n",
" 'sh_i',\n",
" 'off_i',\n",
" 'pk_ic',\n",
" 'dg_ic',\n",
" 'sh_ic',\n",
" 'off_ic',\n",
" 'pk_pg',\n",
" 'dg_pg',\n",
" 'sh_pg',\n",
" 'off_pg',\n",
" 'pk_px',\n",
" 'dg_px',\n",
" 'sh_px',\n",
" 'off_px',\n",
" 'pk_e',\n",
" 'dg_e',\n",
" 'sh_e',\n",
" 'off_e',\n",
" 'pk_pt_mu',\n",
" 'dg_pt_mu',\n",
" 'sh_pt_mu',\n",
" 'off_pt_mu',\n",
" 'pk_s_pt_mu',\n",
" 'dg_s_pt_mu',\n",
" 'sh_s_pt_mu',\n",
" 'off_s_pt_mu',\n",
" 'pk_ns_pt_mu',\n",
" 'dg_ns_pt_mu',\n",
" 'sh_ns_pt_mu',\n",
" 'off_ns_pt_mu',\n",
" 'pk_pt_sd',\n",
" 'dg_pt_sd',\n",
" 'sh_pt_sd',\n",
" 'off_pt_sd',\n",
" 'pk_s_pt_sd',\n",
" 'dg_s_pt_sd',\n",
" 'sh_s_pt_sd',\n",
" 'off_s_pt_sd',\n",
" 'pk_ns_pt_sd',\n",
" 'dg_ns_pt_sd',\n",
" 'sh_ns_pt_sd',\n",
" 'off_ns_pt_sd',\n",
" 'pk_theta',\n",
" 'dg_theta',\n",
" 'sh_theta',\n",
" 'off_theta',\n",
" 'pk_pr',\n",
" 'dg_pr',\n",
" 'sh_pr',\n",
" 'off_pr',\n",
" 'pk_rev',\n",
" 'dg_rev',\n",
" 'sh_rev',\n",
" 'off_rev']"
]
},
"execution_count": 624,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"datatest.head()\n",
"\n",
"\n",
"L=list(datatest.columns.values)\n",
"L"
]
},
{
"cell_type": "code",
"execution_count": 551,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" m_yr | \n",
" bb | \n",
" pk_q | \n",
" dg_q | \n",
" sh_q | \n",
" off_q | \n",
"
\n",
" \n",
" \n",
" \n",
" 9 | \n",
" 2017 | \n",
" MDN | \n",
" 146591.862 | \n",
" 24102.664 | \n",
" 298340.493 | \n",
" 1008365.256 | \n",
"
\n",
" \n",
" 19 | \n",
" 2017 | \n",
" OTA | \n",
" 1180527.262 | \n",
" 16952.739 | \n",
" 1998874.563 | \n",
" 5840465.686 | \n",
"
\n",
" \n",
" 29 | \n",
" 2017 | \n",
" OTA | \n",
" 88363.849 | \n",
" 33427.739 | \n",
" 231607.987 | \n",
" 908250.773 | \n",
"
\n",
" \n",
" 39 | \n",
" 2017 | \n",
" HLY | \n",
" 316487.650 | \n",
" 52058.820 | \n",
" 636234.858 | \n",
" 1967173.898 | \n",
"
\n",
" \n",
" 49 | \n",
" 2017 | \n",
" HLY | \n",
" 51503.920 | \n",
" 0.027 | \n",
" 101702.671 | \n",
" 427436.032 | \n",
"
\n",
" \n",
" 59 | \n",
" 2017 | \n",
" TRK | \n",
" 236553.157 | \n",
" 29328.748 | \n",
" 438504.052 | \n",
" 1360872.273 | \n",
"
\n",
" \n",
" 69 | \n",
" 2017 | \n",
" TRK | \n",
" 25830.270 | \n",
" 357.815 | \n",
" 72218.146 | \n",
" 338134.282 | \n",
"
\n",
" \n",
" 79 | \n",
" 2017 | \n",
" WKM | \n",
" 571.451 | \n",
" 30965.412 | \n",
" 51923.576 | \n",
" 160648.164 | \n",
"
\n",
" \n",
" 89 | \n",
" 2017 | \n",
" RDF | \n",
" 165654.673 | \n",
" 5355.810 | \n",
" 277505.784 | \n",
" 847817.311 | \n",
"
\n",
" \n",
" 99 | \n",
" 2017 | \n",
" RDF | \n",
" 40374.525 | \n",
" 0.017 | \n",
" 89268.681 | \n",
" 376167.803 | \n",
"
\n",
" \n",
" 109 | \n",
" 2017 | \n",
" SFD | \n",
" 132713.388 | \n",
" 13047.298 | \n",
" 253647.467 | \n",
" 830656.635 | \n",
"
\n",
" \n",
" 119 | \n",
" 2017 | \n",
" SFD | \n",
" 4768.172 | \n",
" 0.022 | \n",
" 9614.397 | \n",
" 40990.384 | \n",
"
\n",
" \n",
" 129 | \n",
" 2017 | \n",
" BPE | \n",
" 129988.891 | \n",
" 39132.885 | \n",
" 281633.676 | \n",
" 857817.752 | \n",
"
\n",
" \n",
" 139 | \n",
" 2017 | \n",
" BPE | \n",
" 21600.983 | \n",
" 0.018 | \n",
" 42969.909 | \n",
" 184333.342 | \n",
"
\n",
" \n",
" 149 | \n",
" 2017 | \n",
" HAY | \n",
" 405659.476 | \n",
" 23904.348 | \n",
" 685583.596 | \n",
" 1981549.508 | \n",
"
\n",
" \n",
" 159 | \n",
" 2017 | \n",
" KIK | \n",
" 134766.530 | \n",
" 18954.353 | \n",
" 261979.875 | \n",
" 802229.670 | \n",
"
\n",
" \n",
" 169 | \n",
" 2017 | \n",
" ISL | \n",
" 616204.765 | \n",
" 29456.864 | \n",
" 1141041.180 | \n",
" 3589383.664 | \n",
"
\n",
" \n",
" 179 | \n",
" 2017 | \n",
" ISL | \n",
" 9040.040 | \n",
" 7.759 | \n",
" 16478.032 | \n",
" 60913.034 | \n",
"
\n",
" \n",
" 189 | \n",
" 2017 | \n",
" BEN | \n",
" 106597.897 | \n",
" 13412.973 | \n",
" 212151.767 | \n",
" 689479.044 | \n",
"
\n",
" \n",
" 199 | \n",
" 2017 | \n",
" ROX | \n",
" 125151.168 | \n",
" 38026.804 | \n",
" 261201.089 | \n",
" 732637.831 | \n",
"
\n",
" \n",
" 209 | \n",
" 2017 | \n",
" TWI | \n",
" 102849.534 | \n",
" 17503.874 | \n",
" 223028.935 | \n",
" 694761.567 | \n",
"
\n",
" \n",
" 219 | \n",
" 2017 | \n",
" TWI | \n",
" 471436.197 | \n",
" 0.024 | \n",
" 932928.395 | \n",
" 3653197.502 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" m_yr bb pk_q dg_q sh_q off_q\n",
"9 2017 MDN 146591.862 24102.664 298340.493 1008365.256\n",
"19 2017 OTA 1180527.262 16952.739 1998874.563 5840465.686\n",
"29 2017 OTA 88363.849 33427.739 231607.987 908250.773\n",
"39 2017 HLY 316487.650 52058.820 636234.858 1967173.898\n",
"49 2017 HLY 51503.920 0.027 101702.671 427436.032\n",
"59 2017 TRK 236553.157 29328.748 438504.052 1360872.273\n",
"69 2017 TRK 25830.270 357.815 72218.146 338134.282\n",
"79 2017 WKM 571.451 30965.412 51923.576 160648.164\n",
"89 2017 RDF 165654.673 5355.810 277505.784 847817.311\n",
"99 2017 RDF 40374.525 0.017 89268.681 376167.803\n",
"109 2017 SFD 132713.388 13047.298 253647.467 830656.635\n",
"119 2017 SFD 4768.172 0.022 9614.397 40990.384\n",
"129 2017 BPE 129988.891 39132.885 281633.676 857817.752\n",
"139 2017 BPE 21600.983 0.018 42969.909 184333.342\n",
"149 2017 HAY 405659.476 23904.348 685583.596 1981549.508\n",
"159 2017 KIK 134766.530 18954.353 261979.875 802229.670\n",
"169 2017 ISL 616204.765 29456.864 1141041.180 3589383.664\n",
"179 2017 ISL 9040.040 7.759 16478.032 60913.034\n",
"189 2017 BEN 106597.897 13412.973 212151.767 689479.044\n",
"199 2017 ROX 125151.168 38026.804 261201.089 732637.831\n",
"209 2017 TWI 102849.534 17503.874 223028.935 694761.567\n",
"219 2017 TWI 471436.197 0.024 932928.395 3653197.502"
]
},
"execution_count": 551,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#year=2017\n",
"data.loc[(data['m_yr']==year+1),['m_yr','bb','pk_q','dg_q','sh_q','off_q']]\n",
"#data.loc[(data['m_yr']==year+1)]"
]
},
{
"cell_type": "code",
"execution_count": 588,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" bb | \n",
" pk_pr | \n",
" dg_pr | \n",
" sh_pr | \n",
" off_pr | \n",
"
\n",
" \n",
" \n",
" \n",
" 9 | \n",
" HLY | \n",
" 0.0000 | \n",
" 0 | \n",
" 0.0000 | \n",
" 0.0000 | \n",
"
\n",
" \n",
" 19 | \n",
" TRK | \n",
" 0.0000 | \n",
" 0 | \n",
" 0.0000 | \n",
" 0.0000 | \n",
"
\n",
" \n",
" 29 | \n",
" WKM | \n",
" 0.0000 | \n",
" 0 | \n",
" 0.0000 | \n",
" 0.0000 | \n",
"
\n",
" \n",
" 39 | \n",
" RDF | \n",
" 0.0000 | \n",
" 0 | \n",
" 0.0000 | \n",
" 0.0000 | \n",
"
\n",
" \n",
" 49 | \n",
" SFD | \n",
" 0.0000 | \n",
" 0 | \n",
" 0.0000 | \n",
" 0.0000 | \n",
"
\n",
" \n",
" 59 | \n",
" BPE | \n",
" 0.0000 | \n",
" 0 | \n",
" 0.0000 | \n",
" 0.0000 | \n",
"
\n",
" \n",
" 69 | \n",
" HAY | \n",
" 0.0000 | \n",
" 0 | \n",
" 0.0000 | \n",
" 0.0000 | \n",
"
\n",
" \n",
" 79 | \n",
" KIK | \n",
" 9.6757 | \n",
" 0 | \n",
" 9.6757 | \n",
" 9.6757 | \n",
"
\n",
" \n",
" 89 | \n",
" ISL | \n",
" 9.6757 | \n",
" 0 | \n",
" 9.6757 | \n",
" 9.6757 | \n",
"
\n",
" \n",
" 99 | \n",
" BEN | \n",
" 9.6757 | \n",
" 0 | \n",
" 9.6757 | \n",
" 9.6757 | \n",
"
\n",
" \n",
" 109 | \n",
" ROX | \n",
" 9.6757 | \n",
" 0 | \n",
" 9.6757 | \n",
" 9.6757 | \n",
"
\n",
" \n",
" 119 | \n",
" TWI | \n",
" 9.6757 | \n",
" 0 | \n",
" 9.6757 | \n",
" 9.6757 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" bb pk_pr dg_pr sh_pr off_pr\n",
"9 HLY 0.0000 0 0.0000 0.0000\n",
"19 TRK 0.0000 0 0.0000 0.0000\n",
"29 WKM 0.0000 0 0.0000 0.0000\n",
"39 RDF 0.0000 0 0.0000 0.0000\n",
"49 SFD 0.0000 0 0.0000 0.0000\n",
"59 BPE 0.0000 0 0.0000 0.0000\n",
"69 HAY 0.0000 0 0.0000 0.0000\n",
"79 KIK 9.6757 0 9.6757 9.6757\n",
"89 ISL 9.6757 0 9.6757 9.6757\n",
"99 BEN 9.6757 0 9.6757 9.6757\n",
"109 ROX 9.6757 0 9.6757 9.6757\n",
"119 TWI 9.6757 0 9.6757 9.6757"
]
},
"execution_count": 588,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"year=2017\n",
"data_gen.loc[data_gen['m_yr']==year,['bb','pk_pr','dg_pr','sh_pr','off_pr']]"
]
},
{
"cell_type": "code",
"execution_count": 1603,
"metadata": {},
"outputs": [],
"source": [
"#Need to understand if this overwrites or interates forward in time\n",
"\n",
"\n",
"year=2018\n",
"\n",
"def gen_update(data=data,data_gen=data_gen,year=yr_0,exist_g=exist_g):\n",
" #takes next year's quantities\n",
" qtou1=data.loc[(data['m_yr']==year+1),['pk_q','dg_q','sh_q','off_q']] # Market TOU quantities \n",
" #This just takes them out of the df and makes an array\n",
" Q_tou1=np.array(qtou1.sum())#Aggregate market quantities by TOU for the year\n",
" #some fiddle factor I think is defined above too. \n",
" dg_share=0.90 #accounting for DG contribution to generation in the shoulder and off-peak \n",
" #gets the shares from dispatch function, so shares of generation by node for a year\n",
" genshr,_= dispatch(data=data,exist_g=exist_g,year=year)\n",
" #Multiplies the total TP type quantity by the share for each node and thereby gets the generation for \n",
" #each node by TP type\n",
" genshr['pk_q']=genshr.pk_share*Q_tou1[0]\n",
" genshr['sh_q']=genshr.sh_share*Q_tou1[2]*dg_share\n",
" genshr['off_q']=genshr.off_share*Q_tou1[3]*dg_share\n",
" #writes into data_gen for year plus one. This is because it uses expected prices from dispatch function\n",
" for reg in gen_l:\n",
" data_gen.loc[(data_gen['m_yr']==year+1)&(data_gen['bb']==reg),['pk_q','sh_q','off_q']]=genshr.loc[genshr['bb']==reg,['pk_q','sh_q','off_q']].values\n",
" return data_gen"
]
},
{
"cell_type": "code",
"execution_count": 833,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['HLY',\n",
" 'TRK',\n",
" 'WKM',\n",
" 'RDF',\n",
" 'SFD',\n",
" 'BPE',\n",
" 'HAY',\n",
" 'KIK',\n",
" 'ISL',\n",
" 'BEN',\n",
" 'ROX',\n",
" 'TWI']"
]
},
"execution_count": 833,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gen_l"
]
},
{
"cell_type": "code",
"execution_count": 830,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" bb | \n",
" m_yr | \n",
" pk_q | \n",
" dg_q | \n",
" sh_q | \n",
" off_q | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" MDN | \n",
" 2008 | \n",
" 144083.029 | \n",
" 11797.4595 | \n",
" 280029.756 | \n",
" 938345.9755 | \n",
"
\n",
" \n",
" 1 | \n",
" MDN | \n",
" 2009 | \n",
" 140366.912 | \n",
" 17366.8980 | \n",
" 275811.439 | \n",
" 916050.5680 | \n",
"
\n",
" \n",
" 2 | \n",
" MDN | \n",
" 2010 | \n",
" 134911.622 | \n",
" 22391.6450 | \n",
" 275192.895 | \n",
" 910902.6160 | \n",
"
\n",
" \n",
" 3 | \n",
" MDN | \n",
" 2011 | \n",
" 137812.312 | \n",
" 22806.4640 | \n",
" 280871.241 | \n",
" 926000.9190 | \n",
"
\n",
" \n",
" 4 | \n",
" MDN | \n",
" 2012 | \n",
" 138898.772 | \n",
" 22671.5450 | \n",
" 281523.494 | \n",
" 940913.7650 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" bb m_yr pk_q dg_q sh_q off_q\n",
"0 MDN 2008 144083.029 11797.4595 280029.756 938345.9755\n",
"1 MDN 2009 140366.912 17366.8980 275811.439 916050.5680\n",
"2 MDN 2010 134911.622 22391.6450 275192.895 910902.6160\n",
"3 MDN 2011 137812.312 22806.4640 280871.241 926000.9190\n",
"4 MDN 2012 138898.772 22671.5450 281523.494 940913.7650"
]
},
"execution_count": 830,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data[['bb','m_yr','pk_q','dg_q','sh_q','off_q']].head()"
]
},
{
"cell_type": "code",
"execution_count": 1610,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"pk_q 4.491379e+06\n",
"dg_q 3.381601e+05\n",
"sh_q 8.413165e+06\n",
"off_q 2.685061e+07\n",
"dtype: float64"
]
},
"execution_count": 1610,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"2014\n",
"qtou1=data.loc[(data['m_yr']==year+1),['pk_q','dg_q','sh_q','off_q']]\n",
"Q_tou1=np.array(qtou1.sum())\n",
"qtou1.sum()"
]
},
{
"cell_type": "code",
"execution_count": 1609,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 4491379.478, 338160.091, 8413164.722, 26850612.154])"
]
},
"execution_count": 1609,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#annual total quantities. Assume these are MWh\n",
"\n",
"Q_tou1"
]
},
{
"cell_type": "code",
"execution_count": 1619,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[79.0, 64.0, 40.0]"
]
},
"execution_count": 1619,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\n",
"_,P= dispatch(data=data,exist_g=exist_g,year=2018)\n",
"P"
]
},
{
"cell_type": "code",
"execution_count": 1620,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" bb | \n",
" pk_share | \n",
" sh_share | \n",
" off_share | \n",
" pk_q | \n",
" sh_q | \n",
" off_q | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" BEN | \n",
" 0.254640 | \n",
" 0.298180 | \n",
" 0.226841 | \n",
" 1.143687e+06 | \n",
" 2.257773e+06 | \n",
" 5.481740e+06 | \n",
"
\n",
" \n",
" 1 | \n",
" BPE | \n",
" 0.064122 | \n",
" 0.068415 | \n",
" 0.071042 | \n",
" 2.879968e+05 | \n",
" 5.180283e+05 | \n",
" 1.716779e+06 | \n",
"
\n",
" \n",
" 2 | \n",
" HAY | \n",
" 0.004396 | \n",
" 0.000000 | \n",
" 0.014658 | \n",
" 1.974392e+04 | \n",
" 0.000000e+00 | \n",
" 3.542131e+05 | \n",
"
\n",
" \n",
" 3 | \n",
" HLY | \n",
" 0.062864 | \n",
" 0.000000 | \n",
" 0.034850 | \n",
" 2.823452e+05 | \n",
" 0.000000e+00 | \n",
" 8.421764e+05 | \n",
"
\n",
" \n",
" 4 | \n",
" ISL | \n",
" 0.009680 | \n",
" 0.011335 | \n",
" 0.009392 | \n",
" 4.347539e+04 | \n",
" 8.582556e+04 | \n",
" 2.269611e+05 | \n",
"
\n",
" \n",
" 5 | \n",
" KIK | \n",
" 0.004686 | \n",
" 0.005487 | \n",
" 0.004174 | \n",
" 2.104541e+04 | \n",
" 4.154613e+04 | \n",
" 1.008716e+05 | \n",
"
\n",
" \n",
" 6 | \n",
" RDF | \n",
" 0.020207 | \n",
" 0.023662 | \n",
" 0.018001 | \n",
" 9.075835e+04 | \n",
" 1.791677e+05 | \n",
" 4.350087e+05 | \n",
"
\n",
" \n",
" 7 | \n",
" ROX | \n",
" 0.122415 | \n",
" 0.143346 | \n",
" 0.109051 | \n",
" 5.498114e+05 | \n",
" 1.085393e+06 | \n",
" 2.635270e+06 | \n",
"
\n",
" \n",
" 8 | \n",
" SFD | \n",
" 0.068321 | \n",
" 0.005315 | \n",
" 0.073440 | \n",
" 3.068546e+05 | \n",
" 4.024781e+04 | \n",
" 1.774709e+06 | \n",
"
\n",
" \n",
" 9 | \n",
" TRK | \n",
" 0.028222 | \n",
" 0.034853 | \n",
" 0.036263 | \n",
" 1.267571e+05 | \n",
" 2.638999e+05 | \n",
" 8.763219e+05 | \n",
"
\n",
" \n",
" 10 | \n",
" TWI | \n",
" 0.106893 | \n",
" 0.125170 | \n",
" 0.095224 | \n",
" 4.800985e+05 | \n",
" 9.477711e+05 | \n",
" 2.301133e+06 | \n",
"
\n",
" \n",
" 11 | \n",
" WKM | \n",
" 0.253554 | \n",
" 0.284237 | \n",
" 0.307064 | \n",
" 1.138806e+06 | \n",
" 2.152196e+06 | \n",
" 7.420366e+06 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" bb pk_share sh_share off_share pk_q sh_q \\\n",
"0 BEN 0.254640 0.298180 0.226841 1.143687e+06 2.257773e+06 \n",
"1 BPE 0.064122 0.068415 0.071042 2.879968e+05 5.180283e+05 \n",
"2 HAY 0.004396 0.000000 0.014658 1.974392e+04 0.000000e+00 \n",
"3 HLY 0.062864 0.000000 0.034850 2.823452e+05 0.000000e+00 \n",
"4 ISL 0.009680 0.011335 0.009392 4.347539e+04 8.582556e+04 \n",
"5 KIK 0.004686 0.005487 0.004174 2.104541e+04 4.154613e+04 \n",
"6 RDF 0.020207 0.023662 0.018001 9.075835e+04 1.791677e+05 \n",
"7 ROX 0.122415 0.143346 0.109051 5.498114e+05 1.085393e+06 \n",
"8 SFD 0.068321 0.005315 0.073440 3.068546e+05 4.024781e+04 \n",
"9 TRK 0.028222 0.034853 0.036263 1.267571e+05 2.638999e+05 \n",
"10 TWI 0.106893 0.125170 0.095224 4.800985e+05 9.477711e+05 \n",
"11 WKM 0.253554 0.284237 0.307064 1.138806e+06 2.152196e+06 \n",
"\n",
" off_q \n",
"0 5.481740e+06 \n",
"1 1.716779e+06 \n",
"2 3.542131e+05 \n",
"3 8.421764e+05 \n",
"4 2.269611e+05 \n",
"5 1.008716e+05 \n",
"6 4.350087e+05 \n",
"7 2.635270e+06 \n",
"8 1.774709e+06 \n",
"9 8.763219e+05 \n",
"10 2.301133e+06 \n",
"11 7.420366e+06 "
]
},
"execution_count": 1620,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"year=2017\n",
"genshr,_= dispatch(data=data,exist_g=exist_g,year=year)\n",
"genshr['pk_q']=genshr.pk_share*Q_tou1[0]\n",
"genshr['sh_q']=genshr.sh_share*Q_tou1[2]*dg_share\n",
"genshr['off_q']=genshr.off_share*Q_tou1[3]*dg_share\n",
"genshr"
]
},
{
"cell_type": "code",
"execution_count": 1621,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" bb | \n",
" type | \n",
" p_yr | \n",
" m_yr | \n",
" pk_s | \n",
" dg_s | \n",
" sh_s | \n",
" off_s | \n",
" pk_p | \n",
" dg_p | \n",
" ... | \n",
" off_theta | \n",
" srmc | \n",
" pk_pr | \n",
" dg_pr | \n",
" sh_pr | \n",
" off_pr | \n",
" pk_rev | \n",
" dg_rev | \n",
" sh_rev | \n",
" off_rev | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" HLY | \n",
" 0 | \n",
" 2010 | \n",
" 2008 | \n",
" 0.180993 | \n",
" 0 | \n",
" 0.229458 | \n",
" 0.589549 | \n",
" 227.286022 | \n",
" 227.286022 | \n",
" ... | \n",
" 0.004359 | \n",
" 73.172167 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 1 | \n",
" HLY | \n",
" 0 | \n",
" 2011 | \n",
" 2009 | \n",
" 0.265497 | \n",
" 0 | \n",
" 0.250811 | \n",
" 0.483692 | \n",
" 124.415054 | \n",
" 124.415054 | \n",
" ... | \n",
" 0.004359 | \n",
" 73.172167 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 2 | \n",
" HLY | \n",
" 0 | \n",
" 2012 | \n",
" 2010 | \n",
" 0.156696 | \n",
" 0 | \n",
" 0.229997 | \n",
" 0.613307 | \n",
" 101.997249 | \n",
" 101.997249 | \n",
" ... | \n",
" 0.004359 | \n",
" 73.172167 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 3 | \n",
" HLY | \n",
" 0 | \n",
" 2013 | \n",
" 2011 | \n",
" 0.165332 | \n",
" 0 | \n",
" 0.220481 | \n",
" 0.614186 | \n",
" 95.144030 | \n",
" 95.144030 | \n",
" ... | \n",
" 0.004359 | \n",
" 73.172167 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 4 | \n",
" HLY | \n",
" 0 | \n",
" 2014 | \n",
" 2012 | \n",
" 0.163924 | \n",
" 0 | \n",
" 0.238337 | \n",
" 0.597739 | \n",
" 119.442274 | \n",
" 119.442274 | \n",
" ... | \n",
" 0.004359 | \n",
" 73.172167 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 5 | \n",
" HLY | \n",
" 0 | \n",
" 2015 | \n",
" 2013 | \n",
" 0.127486 | \n",
" 0 | \n",
" 0.217587 | \n",
" 0.654927 | \n",
" 90.367860 | \n",
" 90.367860 | \n",
" ... | \n",
" 0.004359 | \n",
" 73.172167 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 6 | \n",
" HLY | \n",
" 0 | \n",
" 2016 | \n",
" 2014 | \n",
" 0.157809 | \n",
" 0 | \n",
" 0.226526 | \n",
" 0.615665 | \n",
" 97.322316 | \n",
" 97.322316 | \n",
" ... | \n",
" 0.004359 | \n",
" 73.172167 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 7 | \n",
" HLY | \n",
" 0 | \n",
" 2017 | \n",
" 2015 | \n",
" 0.105578 | \n",
" 0 | \n",
" 0.195582 | \n",
" 0.698840 | \n",
" 77.014333 | \n",
" 77.014333 | \n",
" ... | \n",
" 0.004359 | \n",
" 73.172167 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 8 | \n",
" HLY | \n",
" 0 | \n",
" 2018 | \n",
" 2016 | \n",
" 0.145716 | \n",
" 0 | \n",
" 0.202737 | \n",
" 0.651547 | \n",
" 88.548434 | \n",
" 88.548434 | \n",
" ... | \n",
" 0.004359 | \n",
" 73.172167 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 9 | \n",
" HLY | \n",
" 0 | \n",
" 2019 | \n",
" 2017 | \n",
" 0.247584 | \n",
" 0 | \n",
" 0.240533 | \n",
" 0.511884 | \n",
" 130.689757 | \n",
" 130.689757 | \n",
" ... | \n",
" 0.004359 | \n",
" 73.172167 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 10 | \n",
" TRK | \n",
" 0 | \n",
" 2010 | \n",
" 2008 | \n",
" 0.256439 | \n",
" 0 | \n",
" 0.241442 | \n",
" 0.502118 | \n",
" 183.521073 | \n",
" 183.521073 | \n",
" ... | \n",
" 0.990446 | \n",
" 4.318265 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 11 | \n",
" TRK | \n",
" 0 | \n",
" 2011 | \n",
" 2009 | \n",
" 0.217045 | \n",
" 0 | \n",
" 0.234328 | \n",
" 0.548627 | \n",
" 112.456988 | \n",
" 112.456988 | \n",
" ... | \n",
" 0.990446 | \n",
" 4.318265 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 12 | \n",
" TRK | \n",
" 0 | \n",
" 2012 | \n",
" 2010 | \n",
" 0.172913 | \n",
" 0 | \n",
" 0.213828 | \n",
" 0.613259 | \n",
" 96.591922 | \n",
" 96.591922 | \n",
" ... | \n",
" 0.990446 | \n",
" 4.318265 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 13 | \n",
" TRK | \n",
" 0 | \n",
" 2013 | \n",
" 2011 | \n",
" 0.161040 | \n",
" 0 | \n",
" 0.205242 | \n",
" 0.633718 | \n",
" 84.011857 | \n",
" 84.011857 | \n",
" ... | \n",
" 0.990446 | \n",
" 4.318265 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 14 | \n",
" TRK | \n",
" 0 | \n",
" 2014 | \n",
" 2012 | \n",
" 0.131778 | \n",
" 0 | \n",
" 0.204806 | \n",
" 0.663415 | \n",
" 113.839281 | \n",
" 113.839281 | \n",
" ... | \n",
" 0.990446 | \n",
" 4.318265 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 15 | \n",
" TRK | \n",
" 0 | \n",
" 2015 | \n",
" 2013 | \n",
" 0.110532 | \n",
" 0 | \n",
" 0.205016 | \n",
" 0.684452 | \n",
" 83.285838 | \n",
" 83.285838 | \n",
" ... | \n",
" 0.990446 | \n",
" 4.318265 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 16 | \n",
" TRK | \n",
" 0 | \n",
" 2016 | \n",
" 2014 | \n",
" 0.131919 | \n",
" 0 | \n",
" 0.195726 | \n",
" 0.672354 | \n",
" 93.162042 | \n",
" 93.162042 | \n",
" ... | \n",
" 0.990446 | \n",
" 4.318265 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 17 | \n",
" TRK | \n",
" 0 | \n",
" 2017 | \n",
" 2015 | \n",
" 0.114520 | \n",
" 0 | \n",
" 0.187316 | \n",
" 0.698164 | \n",
" 74.205869 | \n",
" 74.205869 | \n",
" ... | \n",
" 0.990446 | \n",
" 4.318265 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 18 | \n",
" TRK | \n",
" 0 | \n",
" 2018 | \n",
" 2016 | \n",
" 0.142835 | \n",
" 0 | \n",
" 0.188110 | \n",
" 0.669055 | \n",
" 85.225541 | \n",
" 85.225541 | \n",
" ... | \n",
" 0.990446 | \n",
" 4.318265 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 19 | \n",
" TRK | \n",
" 0 | \n",
" 2019 | \n",
" 2017 | \n",
" 0.205129 | \n",
" 0 | \n",
" 0.226579 | \n",
" 0.568292 | \n",
" 121.618974 | \n",
" 121.618974 | \n",
" ... | \n",
" 0.990446 | \n",
" 4.318265 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 20 | \n",
" WKM | \n",
" 0 | \n",
" 2010 | \n",
" 2008 | \n",
" 0.194626 | \n",
" 0 | \n",
" 0.232866 | \n",
" 0.572508 | \n",
" 210.323320 | \n",
" 210.323320 | \n",
" ... | \n",
" 0.000000 | \n",
" 5.219816 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 21 | \n",
" WKM | \n",
" 0 | \n",
" 2011 | \n",
" 2009 | \n",
" 0.258164 | \n",
" 0 | \n",
" 0.251764 | \n",
" 0.490072 | \n",
" 124.077696 | \n",
" 124.077696 | \n",
" ... | \n",
" 0.000000 | \n",
" 5.219816 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 22 | \n",
" WKM | \n",
" 0 | \n",
" 2012 | \n",
" 2010 | \n",
" 0.170841 | \n",
" 0 | \n",
" 0.229079 | \n",
" 0.600080 | \n",
" 98.774494 | \n",
" 98.774494 | \n",
" ... | \n",
" 0.000000 | \n",
" 5.219816 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 23 | \n",
" WKM | \n",
" 0 | \n",
" 2013 | \n",
" 2011 | \n",
" 0.179670 | \n",
" 0 | \n",
" 0.215094 | \n",
" 0.605235 | \n",
" 86.032444 | \n",
" 86.032444 | \n",
" ... | \n",
" 0.000000 | \n",
" 5.219816 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 24 | \n",
" WKM | \n",
" 0 | \n",
" 2014 | \n",
" 2012 | \n",
" 0.143504 | \n",
" 0 | \n",
" 0.214705 | \n",
" 0.641791 | \n",
" 113.755496 | \n",
" 113.755496 | \n",
" ... | \n",
" 0.000000 | \n",
" 5.219816 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 25 | \n",
" WKM | \n",
" 0 | \n",
" 2015 | \n",
" 2013 | \n",
" 0.123674 | \n",
" 0 | \n",
" 0.220868 | \n",
" 0.655458 | \n",
" 85.192676 | \n",
" 85.192676 | \n",
" ... | \n",
" 0.000000 | \n",
" 5.219816 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 26 | \n",
" WKM | \n",
" 0 | \n",
" 2016 | \n",
" 2014 | \n",
" 0.152013 | \n",
" 0 | \n",
" 0.204945 | \n",
" 0.643041 | \n",
" 96.480142 | \n",
" 96.480142 | \n",
" ... | \n",
" 0.000000 | \n",
" 5.219816 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 27 | \n",
" WKM | \n",
" 0 | \n",
" 2017 | \n",
" 2015 | \n",
" 0.120492 | \n",
" 0 | \n",
" 0.196741 | \n",
" 0.682767 | \n",
" 74.970895 | \n",
" 74.970895 | \n",
" ... | \n",
" 0.000000 | \n",
" 5.219816 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 28 | \n",
" WKM | \n",
" 0 | \n",
" 2018 | \n",
" 2016 | \n",
" 0.145452 | \n",
" 0 | \n",
" 0.199333 | \n",
" 0.655215 | \n",
" 84.926603 | \n",
" 84.926603 | \n",
" ... | \n",
" 0.000000 | \n",
" 5.219816 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" 29 | \n",
" WKM | \n",
" 0 | \n",
" 2019 | \n",
" 2017 | \n",
" 0.214100 | \n",
" 0 | \n",
" 0.231827 | \n",
" 0.554073 | \n",
" 123.074861 | \n",
" 123.074861 | \n",
" ... | \n",
" 0.000000 | \n",
" 5.219816 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.0 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 90 | \n",
" BEN | \n",
" 0 | \n",
" 2010 | \n",
" 2008 | \n",
" 0.161096 | \n",
" 0 | \n",
" 0.239737 | \n",
" 0.599167 | \n",
" 226.883923 | \n",
" 221.296037 | \n",
" ... | \n",
" 0.000213 | \n",
" 8.816457 | \n",
" 6.711011 | \n",
" 0.00000 | \n",
" 6.711011 | \n",
" 6.711011 | \n",
" 5.553671e+06 | \n",
" 0.0 | \n",
" 1.032037e+07 | \n",
" 2.943213e+07 | \n",
"
\n",
" \n",
" 91 | \n",
" BEN | \n",
" 0 | \n",
" 2011 | \n",
" 2009 | \n",
" 0.187479 | \n",
" 0 | \n",
" 0.212985 | \n",
" 0.599535 | \n",
" 72.609234 | \n",
" 67.181104 | \n",
" ... | \n",
" 0.000213 | \n",
" 8.816457 | \n",
" 6.711011 | \n",
" 0.00000 | \n",
" 6.711011 | \n",
" 6.711011 | \n",
" 5.183142e+06 | \n",
" 0.0 | \n",
" 9.067210e+06 | \n",
" 3.457695e+07 | \n",
"
\n",
" \n",
" 92 | \n",
" BEN | \n",
" 0 | \n",
" 2012 | \n",
" 2010 | \n",
" 0.141590 | \n",
" 0 | \n",
" 0.251483 | \n",
" 0.606928 | \n",
" 78.876633 | \n",
" 71.683309 | \n",
" ... | \n",
" 0.000213 | \n",
" 8.816457 | \n",
" 6.711011 | \n",
" 0.00000 | \n",
" 6.711011 | \n",
" 6.711011 | \n",
" 6.492892e+06 | \n",
" 0.0 | \n",
" 1.112094e+07 | \n",
" 3.414320e+07 | \n",
"
\n",
" \n",
" 93 | \n",
" BEN | \n",
" 0 | \n",
" 2013 | \n",
" 2011 | \n",
" 0.169227 | \n",
" 0 | \n",
" 0.224024 | \n",
" 0.606749 | \n",
" 85.868328 | \n",
" 78.609550 | \n",
" ... | \n",
" 0.000213 | \n",
" 8.816457 | \n",
" 6.316254 | \n",
" 0.00000 | \n",
" 6.316254 | \n",
" 6.316254 | \n",
" 5.510900e+06 | \n",
" 0.0 | \n",
" 9.910109e+06 | \n",
" 3.229647e+07 | \n",
"
\n",
" \n",
" 94 | \n",
" BEN | \n",
" 0 | \n",
" 2014 | \n",
" 2012 | \n",
" 0.117351 | \n",
" 0 | \n",
" 0.216610 | \n",
" 0.666039 | \n",
" 137.693227 | \n",
" 128.783048 | \n",
" ... | \n",
" 0.000213 | \n",
" 8.816457 | \n",
" 7.196363 | \n",
" 0.00000 | \n",
" 7.196363 | \n",
" 7.196363 | \n",
" 4.695516e+06 | \n",
" 0.0 | \n",
" 9.766528e+06 | \n",
" 3.178173e+07 | \n",
"
\n",
" \n",
" 95 | \n",
" BEN | \n",
" 0 | \n",
" 2015 | \n",
" 2013 | \n",
" 0.134197 | \n",
" 0 | \n",
" 0.258303 | \n",
" 0.607500 | \n",
" 95.752058 | \n",
" 87.710701 | \n",
" ... | \n",
" 0.000213 | \n",
" 8.816457 | \n",
" 8.583133 | \n",
" 0.00000 | \n",
" 8.583133 | \n",
" 8.583133 | \n",
" 6.746472e+06 | \n",
" 0.0 | \n",
" 1.287845e+07 | \n",
" 4.026320e+07 | \n",
"
\n",
" \n",
" 96 | \n",
" BEN | \n",
" 0 | \n",
" 2016 | \n",
" 2014 | \n",
" 0.147466 | \n",
" 0 | \n",
" 0.257114 | \n",
" 0.595421 | \n",
" 92.038425 | \n",
" 84.577258 | \n",
" ... | \n",
" 0.000213 | \n",
" 8.816457 | \n",
" 9.742070 | \n",
" 0.00000 | \n",
" 9.742070 | \n",
" 9.742070 | \n",
" 9.852813e+06 | \n",
" 0.0 | \n",
" 1.736982e+07 | \n",
" 5.354518e+07 | \n",
"
\n",
" \n",
" 97 | \n",
" BEN | \n",
" 0 | \n",
" 2017 | \n",
" 2015 | \n",
" 0.125896 | \n",
" 0 | \n",
" 0.221402 | \n",
" 0.652702 | \n",
" 82.464523 | \n",
" 74.997672 | \n",
" ... | \n",
" 0.000213 | \n",
" 8.816457 | \n",
" 10.572975 | \n",
" 0.00000 | \n",
" 10.572975 | \n",
" 10.572975 | \n",
" 9.964112e+06 | \n",
" 0.0 | \n",
" 1.799606e+07 | \n",
" 5.322904e+07 | \n",
"
\n",
" \n",
" 98 | \n",
" BEN | \n",
" 0 | \n",
" 2018 | \n",
" 2016 | \n",
" 0.138624 | \n",
" 0 | \n",
" 0.224495 | \n",
" 0.636881 | \n",
" 74.587222 | \n",
" 67.777840 | \n",
" ... | \n",
" 0.000213 | \n",
" 8.816457 | \n",
" 0.136290 | \n",
" 0.13629 | \n",
" 0.136290 | \n",
" 0.136290 | \n",
" 1.284419e+05 | \n",
" 0.0 | \n",
" 2.319773e+05 | \n",
" 6.861463e+05 | \n",
"
\n",
" \n",
" 99 | \n",
" BEN | \n",
" 0 | \n",
" 2019 | \n",
" 2017 | \n",
" 0.207160 | \n",
" 0 | \n",
" 0.248903 | \n",
" 0.543937 | \n",
" 130.235821 | \n",
" 123.568295 | \n",
" ... | \n",
" 0.000213 | \n",
" 8.816457 | \n",
" 9.675700 | \n",
" 0.00000 | \n",
" 9.675700 | \n",
" 9.675700 | \n",
" 8.554251e+06 | \n",
" 0.0 | \n",
" 1.668988e+07 | \n",
" 4.874326e+07 | \n",
"
\n",
" \n",
" 100 | \n",
" ROX | \n",
" 0 | \n",
" 2010 | \n",
" 2008 | \n",
" 0.144349 | \n",
" 0 | \n",
" 0.229669 | \n",
" 0.625982 | \n",
" 208.401343 | \n",
" 202.813457 | \n",
" ... | \n",
" 0.000655 | \n",
" 8.816457 | \n",
" 6.711011 | \n",
" 0.00000 | \n",
" 6.711011 | \n",
" 6.711011 | \n",
" 2.483367e+06 | \n",
" 0.0 | \n",
" 4.864230e+06 | \n",
" 1.529604e+07 | \n",
"
\n",
" \n",
" 101 | \n",
" ROX | \n",
" 0 | \n",
" 2011 | \n",
" 2009 | \n",
" 0.205239 | \n",
" 0 | \n",
" 0.236312 | \n",
" 0.558449 | \n",
" 71.761876 | \n",
" 66.333747 | \n",
" ... | \n",
" 0.000655 | \n",
" 8.816457 | \n",
" 6.711011 | \n",
" 0.00000 | \n",
" 6.711011 | \n",
" 6.711011 | \n",
" 2.880805e+06 | \n",
" 0.0 | \n",
" 5.344205e+06 | \n",
" 1.734832e+07 | \n",
"
\n",
" \n",
" 102 | \n",
" ROX | \n",
" 0 | \n",
" 2012 | \n",
" 2010 | \n",
" 0.145589 | \n",
" 0 | \n",
" 0.255572 | \n",
" 0.598838 | \n",
" 78.175098 | \n",
" 70.981775 | \n",
" ... | \n",
" 0.000655 | \n",
" 8.816457 | \n",
" 6.711011 | \n",
" 0.00000 | \n",
" 6.711011 | \n",
" 6.711011 | \n",
" 3.187113e+06 | \n",
" 0.0 | \n",
" 5.596211e+06 | \n",
" 1.722917e+07 | \n",
"
\n",
" \n",
" 103 | \n",
" ROX | \n",
" 0 | \n",
" 2013 | \n",
" 2011 | \n",
" 0.167856 | \n",
" 0 | \n",
" 0.228733 | \n",
" 0.603411 | \n",
" 85.399311 | \n",
" 78.140533 | \n",
" ... | \n",
" 0.000655 | \n",
" 8.816457 | \n",
" 6.316254 | \n",
" 0.00000 | \n",
" 6.316254 | \n",
" 6.316254 | \n",
" 2.648561e+06 | \n",
" 0.0 | \n",
" 5.110998e+06 | \n",
" 1.670652e+07 | \n",
"
\n",
" \n",
" 104 | \n",
" ROX | \n",
" 0 | \n",
" 2014 | \n",
" 2012 | \n",
" 0.140425 | \n",
" 0 | \n",
" 0.230850 | \n",
" 0.628724 | \n",
" 143.296837 | \n",
" 134.386658 | \n",
" ... | \n",
" 0.000655 | \n",
" 8.816457 | \n",
" 7.196363 | \n",
" 0.00000 | \n",
" 7.196363 | \n",
" 7.196363 | \n",
" 2.689021e+06 | \n",
" 0.0 | \n",
" 5.056362e+06 | \n",
" 1.496029e+07 | \n",
"
\n",
" \n",
" 105 | \n",
" ROX | \n",
" 0 | \n",
" 2015 | \n",
" 2013 | \n",
" 0.159503 | \n",
" 0 | \n",
" 0.261220 | \n",
" 0.579278 | \n",
" 89.798050 | \n",
" 81.756694 | \n",
" ... | \n",
" 0.000655 | \n",
" 8.816457 | \n",
" 8.583133 | \n",
" 0.00000 | \n",
" 8.583133 | \n",
" 8.583133 | \n",
" 4.286670e+06 | \n",
" 0.0 | \n",
" 7.417186e+06 | \n",
" 2.253264e+07 | \n",
"
\n",
" \n",
" 106 | \n",
" ROX | \n",
" 0 | \n",
" 2016 | \n",
" 2014 | \n",
" 0.158044 | \n",
" 0 | \n",
" 0.264917 | \n",
" 0.577040 | \n",
" 88.240548 | \n",
" 80.779381 | \n",
" ... | \n",
" 0.000655 | \n",
" 8.816457 | \n",
" 9.742070 | \n",
" 0.00000 | \n",
" 9.742070 | \n",
" 9.742070 | \n",
" 5.170371e+06 | \n",
" 0.0 | \n",
" 9.077793e+06 | \n",
" 2.755340e+07 | \n",
"
\n",
" \n",
" 107 | \n",
" ROX | \n",
" 0 | \n",
" 2017 | \n",
" 2015 | \n",
" 0.128683 | \n",
" 0 | \n",
" 0.223805 | \n",
" 0.647511 | \n",
" 78.846983 | \n",
" 71.380133 | \n",
" ... | \n",
" 0.000655 | \n",
" 8.816457 | \n",
" 10.572975 | \n",
" 0.00000 | \n",
" 10.572975 | \n",
" 10.572975 | \n",
" 5.406356e+06 | \n",
" 0.0 | \n",
" 9.638847e+06 | \n",
" 2.862438e+07 | \n",
"
\n",
" \n",
" 108 | \n",
" ROX | \n",
" 0 | \n",
" 2018 | \n",
" 2016 | \n",
" 0.135974 | \n",
" 0 | \n",
" 0.223658 | \n",
" 0.640368 | \n",
" 72.107991 | \n",
" 65.298609 | \n",
" ... | \n",
" 0.000655 | \n",
" 8.816457 | \n",
" 9.803028 | \n",
" 0.00000 | \n",
" 9.803028 | \n",
" 9.803028 | \n",
" 4.954440e+06 | \n",
" 0.0 | \n",
" 9.041137e+06 | \n",
" 2.713518e+07 | \n",
"
\n",
" \n",
" 109 | \n",
" ROX | \n",
" 0 | \n",
" 2019 | \n",
" 2017 | \n",
" 0.209630 | \n",
" 0 | \n",
" 0.237441 | \n",
" 0.552929 | \n",
" 128.393568 | \n",
" 121.726043 | \n",
" ... | \n",
" 0.000655 | \n",
" 8.816457 | \n",
" 9.675700 | \n",
" 0.00000 | \n",
" 9.675700 | \n",
" 9.675700 | \n",
" 3.641641e+06 | \n",
" 0.0 | \n",
" 7.150818e+06 | \n",
" 2.297792e+07 | \n",
"
\n",
" \n",
" 110 | \n",
" TWI | \n",
" 0 | \n",
" 2010 | \n",
" 2008 | \n",
" 0.137522 | \n",
" 0 | \n",
" 0.225307 | \n",
" 0.637171 | \n",
" 196.300560 | \n",
" 190.712675 | \n",
" ... | \n",
" 0.667826 | \n",
" 8.816457 | \n",
" 6.711011 | \n",
" 0.00000 | \n",
" 6.711011 | \n",
" 6.711011 | \n",
" 2.931578e+06 | \n",
" 0.0 | \n",
" 5.833226e+06 | \n",
" 1.996902e+07 | \n",
"
\n",
" \n",
" 111 | \n",
" TWI | \n",
" 0 | \n",
" 2011 | \n",
" 2009 | \n",
" 0.188270 | \n",
" 0 | \n",
" 0.228926 | \n",
" 0.582803 | \n",
" 68.149844 | \n",
" 62.721715 | \n",
" ... | \n",
" 0.667826 | \n",
" 8.816457 | \n",
" 6.711011 | \n",
" 0.00000 | \n",
" 6.711011 | \n",
" 6.711011 | \n",
" 3.358845e+06 | \n",
" 0.0 | \n",
" 6.487348e+06 | \n",
" 2.228845e+07 | \n",
"
\n",
" \n",
" 112 | \n",
" TWI | \n",
" 0 | \n",
" 2012 | \n",
" 2010 | \n",
" 0.099319 | \n",
" 0 | \n",
" 0.234845 | \n",
" 0.665836 | \n",
" 77.635495 | \n",
" 70.442171 | \n",
" ... | \n",
" 0.667826 | \n",
" 8.816457 | \n",
" 6.711011 | \n",
" 0.00000 | \n",
" 6.711011 | \n",
" 6.711011 | \n",
" 2.759396e+06 | \n",
" 0.0 | \n",
" 6.266015e+06 | \n",
" 2.444991e+07 | \n",
"
\n",
" \n",
" 113 | \n",
" TWI | \n",
" 0 | \n",
" 2013 | \n",
" 2011 | \n",
" 0.163650 | \n",
" 0 | \n",
" 0.216564 | \n",
" 0.619786 | \n",
" 87.399618 | \n",
" 80.140840 | \n",
" ... | \n",
" 0.667826 | \n",
" 8.816457 | \n",
" 6.316254 | \n",
" 0.00000 | \n",
" 6.316254 | \n",
" 6.316254 | \n",
" 3.090689e+06 | \n",
" 0.0 | \n",
" 6.005950e+06 | \n",
" 2.241697e+07 | \n",
"
\n",
" \n",
" 114 | \n",
" TWI | \n",
" 0 | \n",
" 2014 | \n",
" 2012 | \n",
" 0.150856 | \n",
" 0 | \n",
" 0.222212 | \n",
" 0.626931 | \n",
" 140.762541 | \n",
" 131.852362 | \n",
" ... | \n",
" 0.667826 | \n",
" 8.816457 | \n",
" 7.196363 | \n",
" 0.00000 | \n",
" 7.196363 | \n",
" 7.196363 | \n",
" 3.549592e+06 | \n",
" 0.0 | \n",
" 6.011533e+06 | \n",
" 1.815688e+07 | \n",
"
\n",
" \n",
" 115 | \n",
" TWI | \n",
" 0 | \n",
" 2015 | \n",
" 2013 | \n",
" 0.146192 | \n",
" 0 | \n",
" 0.238435 | \n",
" 0.615373 | \n",
" 81.065529 | \n",
" 73.024173 | \n",
" ... | \n",
" 0.667826 | \n",
" 8.816457 | \n",
" 8.583133 | \n",
" 0.00000 | \n",
" 8.583133 | \n",
" 8.583133 | \n",
" 4.497533e+06 | \n",
" 0.0 | \n",
" 8.325083e+06 | \n",
" 2.939359e+07 | \n",
"
\n",
" \n",
" 116 | \n",
" TWI | \n",
" 0 | \n",
" 2016 | \n",
" 2014 | \n",
" 0.130540 | \n",
" 0 | \n",
" 0.244373 | \n",
" 0.625087 | \n",
" 84.029660 | \n",
" 76.568493 | \n",
" ... | \n",
" 0.667826 | \n",
" 8.816457 | \n",
" 9.742070 | \n",
" 0.00000 | \n",
" 9.742070 | \n",
" 9.742070 | \n",
" 4.586563e+06 | \n",
" 0.0 | \n",
" 9.005301e+06 | \n",
" 3.309474e+07 | \n",
"
\n",
" \n",
" 117 | \n",
" TWI | \n",
" 0 | \n",
" 2017 | \n",
" 2015 | \n",
" 0.116077 | \n",
" 0 | \n",
" 0.204033 | \n",
" 0.679891 | \n",
" 75.157565 | \n",
" 67.690715 | \n",
" ... | \n",
" 0.667826 | \n",
" 8.816457 | \n",
" 10.572975 | \n",
" 0.00000 | \n",
" 10.572975 | \n",
" 10.572975 | \n",
" 5.848050e+06 | \n",
" 0.0 | \n",
" 1.048678e+07 | \n",
" 3.603801e+07 | \n",
"
\n",
" \n",
" 118 | \n",
" TWI | \n",
" 0 | \n",
" 2018 | \n",
" 2016 | \n",
" 0.111285 | \n",
" 0 | \n",
" 0.201101 | \n",
" 0.687614 | \n",
" 68.364245 | \n",
" 61.554862 | \n",
" ... | \n",
" 0.667826 | \n",
" 8.816457 | \n",
" 9.803028 | \n",
" 0.00000 | \n",
" 9.803028 | \n",
" 9.803028 | \n",
" 5.680579e+06 | \n",
" 0.0 | \n",
" 1.125442e+07 | \n",
" 4.030608e+07 | \n",
"
\n",
" \n",
" 119 | \n",
" TWI | \n",
" 0 | \n",
" 2019 | \n",
" 2017 | \n",
" 0.168808 | \n",
" 0 | \n",
" 0.222266 | \n",
" 0.608926 | \n",
" 123.012088 | \n",
" 116.344562 | \n",
" ... | \n",
" 0.667826 | \n",
" 8.816457 | \n",
" 9.675700 | \n",
" 0.00000 | \n",
" 9.675700 | \n",
" 9.675700 | \n",
" 3.719541e+06 | \n",
" 0.0 | \n",
" 8.426545e+06 | \n",
" 3.075036e+07 | \n",
"
\n",
" \n",
"
\n",
"
120 rows × 83 columns
\n",
"
"
],
"text/plain": [
" bb type p_yr m_yr pk_s dg_s sh_s off_s pk_p \\\n",
"0 HLY 0 2010 2008 0.180993 0 0.229458 0.589549 227.286022 \n",
"1 HLY 0 2011 2009 0.265497 0 0.250811 0.483692 124.415054 \n",
"2 HLY 0 2012 2010 0.156696 0 0.229997 0.613307 101.997249 \n",
"3 HLY 0 2013 2011 0.165332 0 0.220481 0.614186 95.144030 \n",
"4 HLY 0 2014 2012 0.163924 0 0.238337 0.597739 119.442274 \n",
"5 HLY 0 2015 2013 0.127486 0 0.217587 0.654927 90.367860 \n",
"6 HLY 0 2016 2014 0.157809 0 0.226526 0.615665 97.322316 \n",
"7 HLY 0 2017 2015 0.105578 0 0.195582 0.698840 77.014333 \n",
"8 HLY 0 2018 2016 0.145716 0 0.202737 0.651547 88.548434 \n",
"9 HLY 0 2019 2017 0.247584 0 0.240533 0.511884 130.689757 \n",
"10 TRK 0 2010 2008 0.256439 0 0.241442 0.502118 183.521073 \n",
"11 TRK 0 2011 2009 0.217045 0 0.234328 0.548627 112.456988 \n",
"12 TRK 0 2012 2010 0.172913 0 0.213828 0.613259 96.591922 \n",
"13 TRK 0 2013 2011 0.161040 0 0.205242 0.633718 84.011857 \n",
"14 TRK 0 2014 2012 0.131778 0 0.204806 0.663415 113.839281 \n",
"15 TRK 0 2015 2013 0.110532 0 0.205016 0.684452 83.285838 \n",
"16 TRK 0 2016 2014 0.131919 0 0.195726 0.672354 93.162042 \n",
"17 TRK 0 2017 2015 0.114520 0 0.187316 0.698164 74.205869 \n",
"18 TRK 0 2018 2016 0.142835 0 0.188110 0.669055 85.225541 \n",
"19 TRK 0 2019 2017 0.205129 0 0.226579 0.568292 121.618974 \n",
"20 WKM 0 2010 2008 0.194626 0 0.232866 0.572508 210.323320 \n",
"21 WKM 0 2011 2009 0.258164 0 0.251764 0.490072 124.077696 \n",
"22 WKM 0 2012 2010 0.170841 0 0.229079 0.600080 98.774494 \n",
"23 WKM 0 2013 2011 0.179670 0 0.215094 0.605235 86.032444 \n",
"24 WKM 0 2014 2012 0.143504 0 0.214705 0.641791 113.755496 \n",
"25 WKM 0 2015 2013 0.123674 0 0.220868 0.655458 85.192676 \n",
"26 WKM 0 2016 2014 0.152013 0 0.204945 0.643041 96.480142 \n",
"27 WKM 0 2017 2015 0.120492 0 0.196741 0.682767 74.970895 \n",
"28 WKM 0 2018 2016 0.145452 0 0.199333 0.655215 84.926603 \n",
"29 WKM 0 2019 2017 0.214100 0 0.231827 0.554073 123.074861 \n",
".. ... ... ... ... ... ... ... ... ... \n",
"90 BEN 0 2010 2008 0.161096 0 0.239737 0.599167 226.883923 \n",
"91 BEN 0 2011 2009 0.187479 0 0.212985 0.599535 72.609234 \n",
"92 BEN 0 2012 2010 0.141590 0 0.251483 0.606928 78.876633 \n",
"93 BEN 0 2013 2011 0.169227 0 0.224024 0.606749 85.868328 \n",
"94 BEN 0 2014 2012 0.117351 0 0.216610 0.666039 137.693227 \n",
"95 BEN 0 2015 2013 0.134197 0 0.258303 0.607500 95.752058 \n",
"96 BEN 0 2016 2014 0.147466 0 0.257114 0.595421 92.038425 \n",
"97 BEN 0 2017 2015 0.125896 0 0.221402 0.652702 82.464523 \n",
"98 BEN 0 2018 2016 0.138624 0 0.224495 0.636881 74.587222 \n",
"99 BEN 0 2019 2017 0.207160 0 0.248903 0.543937 130.235821 \n",
"100 ROX 0 2010 2008 0.144349 0 0.229669 0.625982 208.401343 \n",
"101 ROX 0 2011 2009 0.205239 0 0.236312 0.558449 71.761876 \n",
"102 ROX 0 2012 2010 0.145589 0 0.255572 0.598838 78.175098 \n",
"103 ROX 0 2013 2011 0.167856 0 0.228733 0.603411 85.399311 \n",
"104 ROX 0 2014 2012 0.140425 0 0.230850 0.628724 143.296837 \n",
"105 ROX 0 2015 2013 0.159503 0 0.261220 0.579278 89.798050 \n",
"106 ROX 0 2016 2014 0.158044 0 0.264917 0.577040 88.240548 \n",
"107 ROX 0 2017 2015 0.128683 0 0.223805 0.647511 78.846983 \n",
"108 ROX 0 2018 2016 0.135974 0 0.223658 0.640368 72.107991 \n",
"109 ROX 0 2019 2017 0.209630 0 0.237441 0.552929 128.393568 \n",
"110 TWI 0 2010 2008 0.137522 0 0.225307 0.637171 196.300560 \n",
"111 TWI 0 2011 2009 0.188270 0 0.228926 0.582803 68.149844 \n",
"112 TWI 0 2012 2010 0.099319 0 0.234845 0.665836 77.635495 \n",
"113 TWI 0 2013 2011 0.163650 0 0.216564 0.619786 87.399618 \n",
"114 TWI 0 2014 2012 0.150856 0 0.222212 0.626931 140.762541 \n",
"115 TWI 0 2015 2013 0.146192 0 0.238435 0.615373 81.065529 \n",
"116 TWI 0 2016 2014 0.130540 0 0.244373 0.625087 84.029660 \n",
"117 TWI 0 2017 2015 0.116077 0 0.204033 0.679891 75.157565 \n",
"118 TWI 0 2018 2016 0.111285 0 0.201101 0.687614 68.364245 \n",
"119 TWI 0 2019 2017 0.168808 0 0.222266 0.608926 123.012088 \n",
"\n",
" dg_p ... off_theta srmc pk_pr dg_pr \\\n",
"0 227.286022 ... 0.004359 73.172167 0.000000 0.00000 \n",
"1 124.415054 ... 0.004359 73.172167 0.000000 0.00000 \n",
"2 101.997249 ... 0.004359 73.172167 0.000000 0.00000 \n",
"3 95.144030 ... 0.004359 73.172167 0.000000 0.00000 \n",
"4 119.442274 ... 0.004359 73.172167 0.000000 0.00000 \n",
"5 90.367860 ... 0.004359 73.172167 0.000000 0.00000 \n",
"6 97.322316 ... 0.004359 73.172167 0.000000 0.00000 \n",
"7 77.014333 ... 0.004359 73.172167 0.000000 0.00000 \n",
"8 88.548434 ... 0.004359 73.172167 0.000000 0.00000 \n",
"9 130.689757 ... 0.004359 73.172167 0.000000 0.00000 \n",
"10 183.521073 ... 0.990446 4.318265 0.000000 0.00000 \n",
"11 112.456988 ... 0.990446 4.318265 0.000000 0.00000 \n",
"12 96.591922 ... 0.990446 4.318265 0.000000 0.00000 \n",
"13 84.011857 ... 0.990446 4.318265 0.000000 0.00000 \n",
"14 113.839281 ... 0.990446 4.318265 0.000000 0.00000 \n",
"15 83.285838 ... 0.990446 4.318265 0.000000 0.00000 \n",
"16 93.162042 ... 0.990446 4.318265 0.000000 0.00000 \n",
"17 74.205869 ... 0.990446 4.318265 0.000000 0.00000 \n",
"18 85.225541 ... 0.990446 4.318265 0.000000 0.00000 \n",
"19 121.618974 ... 0.990446 4.318265 0.000000 0.00000 \n",
"20 210.323320 ... 0.000000 5.219816 0.000000 0.00000 \n",
"21 124.077696 ... 0.000000 5.219816 0.000000 0.00000 \n",
"22 98.774494 ... 0.000000 5.219816 0.000000 0.00000 \n",
"23 86.032444 ... 0.000000 5.219816 0.000000 0.00000 \n",
"24 113.755496 ... 0.000000 5.219816 0.000000 0.00000 \n",
"25 85.192676 ... 0.000000 5.219816 0.000000 0.00000 \n",
"26 96.480142 ... 0.000000 5.219816 0.000000 0.00000 \n",
"27 74.970895 ... 0.000000 5.219816 0.000000 0.00000 \n",
"28 84.926603 ... 0.000000 5.219816 0.000000 0.00000 \n",
"29 123.074861 ... 0.000000 5.219816 0.000000 0.00000 \n",
".. ... ... ... ... ... ... \n",
"90 221.296037 ... 0.000213 8.816457 6.711011 0.00000 \n",
"91 67.181104 ... 0.000213 8.816457 6.711011 0.00000 \n",
"92 71.683309 ... 0.000213 8.816457 6.711011 0.00000 \n",
"93 78.609550 ... 0.000213 8.816457 6.316254 0.00000 \n",
"94 128.783048 ... 0.000213 8.816457 7.196363 0.00000 \n",
"95 87.710701 ... 0.000213 8.816457 8.583133 0.00000 \n",
"96 84.577258 ... 0.000213 8.816457 9.742070 0.00000 \n",
"97 74.997672 ... 0.000213 8.816457 10.572975 0.00000 \n",
"98 67.777840 ... 0.000213 8.816457 0.136290 0.13629 \n",
"99 123.568295 ... 0.000213 8.816457 9.675700 0.00000 \n",
"100 202.813457 ... 0.000655 8.816457 6.711011 0.00000 \n",
"101 66.333747 ... 0.000655 8.816457 6.711011 0.00000 \n",
"102 70.981775 ... 0.000655 8.816457 6.711011 0.00000 \n",
"103 78.140533 ... 0.000655 8.816457 6.316254 0.00000 \n",
"104 134.386658 ... 0.000655 8.816457 7.196363 0.00000 \n",
"105 81.756694 ... 0.000655 8.816457 8.583133 0.00000 \n",
"106 80.779381 ... 0.000655 8.816457 9.742070 0.00000 \n",
"107 71.380133 ... 0.000655 8.816457 10.572975 0.00000 \n",
"108 65.298609 ... 0.000655 8.816457 9.803028 0.00000 \n",
"109 121.726043 ... 0.000655 8.816457 9.675700 0.00000 \n",
"110 190.712675 ... 0.667826 8.816457 6.711011 0.00000 \n",
"111 62.721715 ... 0.667826 8.816457 6.711011 0.00000 \n",
"112 70.442171 ... 0.667826 8.816457 6.711011 0.00000 \n",
"113 80.140840 ... 0.667826 8.816457 6.316254 0.00000 \n",
"114 131.852362 ... 0.667826 8.816457 7.196363 0.00000 \n",
"115 73.024173 ... 0.667826 8.816457 8.583133 0.00000 \n",
"116 76.568493 ... 0.667826 8.816457 9.742070 0.00000 \n",
"117 67.690715 ... 0.667826 8.816457 10.572975 0.00000 \n",
"118 61.554862 ... 0.667826 8.816457 9.803028 0.00000 \n",
"119 116.344562 ... 0.667826 8.816457 9.675700 0.00000 \n",
"\n",
" sh_pr off_pr pk_rev dg_rev sh_rev off_rev \n",
"0 0.000000 0.000000 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"1 0.000000 0.000000 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"2 0.000000 0.000000 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"3 0.000000 0.000000 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"4 0.000000 0.000000 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"5 0.000000 0.000000 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"6 0.000000 0.000000 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"7 0.000000 0.000000 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"8 0.000000 0.000000 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"9 0.000000 0.000000 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"10 0.000000 0.000000 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"11 0.000000 0.000000 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"12 0.000000 0.000000 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"13 0.000000 0.000000 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"14 0.000000 0.000000 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"15 0.000000 0.000000 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"16 0.000000 0.000000 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"17 0.000000 0.000000 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"18 0.000000 0.000000 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"19 0.000000 0.000000 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"20 0.000000 0.000000 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"21 0.000000 0.000000 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"22 0.000000 0.000000 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"23 0.000000 0.000000 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"24 0.000000 0.000000 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"25 0.000000 0.000000 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"26 0.000000 0.000000 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"27 0.000000 0.000000 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"28 0.000000 0.000000 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
"29 0.000000 0.000000 0.000000e+00 0.0 0.000000e+00 0.000000e+00 \n",
".. ... ... ... ... ... ... \n",
"90 6.711011 6.711011 5.553671e+06 0.0 1.032037e+07 2.943213e+07 \n",
"91 6.711011 6.711011 5.183142e+06 0.0 9.067210e+06 3.457695e+07 \n",
"92 6.711011 6.711011 6.492892e+06 0.0 1.112094e+07 3.414320e+07 \n",
"93 6.316254 6.316254 5.510900e+06 0.0 9.910109e+06 3.229647e+07 \n",
"94 7.196363 7.196363 4.695516e+06 0.0 9.766528e+06 3.178173e+07 \n",
"95 8.583133 8.583133 6.746472e+06 0.0 1.287845e+07 4.026320e+07 \n",
"96 9.742070 9.742070 9.852813e+06 0.0 1.736982e+07 5.354518e+07 \n",
"97 10.572975 10.572975 9.964112e+06 0.0 1.799606e+07 5.322904e+07 \n",
"98 0.136290 0.136290 1.284419e+05 0.0 2.319773e+05 6.861463e+05 \n",
"99 9.675700 9.675700 8.554251e+06 0.0 1.668988e+07 4.874326e+07 \n",
"100 6.711011 6.711011 2.483367e+06 0.0 4.864230e+06 1.529604e+07 \n",
"101 6.711011 6.711011 2.880805e+06 0.0 5.344205e+06 1.734832e+07 \n",
"102 6.711011 6.711011 3.187113e+06 0.0 5.596211e+06 1.722917e+07 \n",
"103 6.316254 6.316254 2.648561e+06 0.0 5.110998e+06 1.670652e+07 \n",
"104 7.196363 7.196363 2.689021e+06 0.0 5.056362e+06 1.496029e+07 \n",
"105 8.583133 8.583133 4.286670e+06 0.0 7.417186e+06 2.253264e+07 \n",
"106 9.742070 9.742070 5.170371e+06 0.0 9.077793e+06 2.755340e+07 \n",
"107 10.572975 10.572975 5.406356e+06 0.0 9.638847e+06 2.862438e+07 \n",
"108 9.803028 9.803028 4.954440e+06 0.0 9.041137e+06 2.713518e+07 \n",
"109 9.675700 9.675700 3.641641e+06 0.0 7.150818e+06 2.297792e+07 \n",
"110 6.711011 6.711011 2.931578e+06 0.0 5.833226e+06 1.996902e+07 \n",
"111 6.711011 6.711011 3.358845e+06 0.0 6.487348e+06 2.228845e+07 \n",
"112 6.711011 6.711011 2.759396e+06 0.0 6.266015e+06 2.444991e+07 \n",
"113 6.316254 6.316254 3.090689e+06 0.0 6.005950e+06 2.241697e+07 \n",
"114 7.196363 7.196363 3.549592e+06 0.0 6.011533e+06 1.815688e+07 \n",
"115 8.583133 8.583133 4.497533e+06 0.0 8.325083e+06 2.939359e+07 \n",
"116 9.742070 9.742070 4.586563e+06 0.0 9.005301e+06 3.309474e+07 \n",
"117 10.572975 10.572975 5.848050e+06 0.0 1.048678e+07 3.603801e+07 \n",
"118 9.803028 9.803028 5.680579e+06 0.0 1.125442e+07 4.030608e+07 \n",
"119 9.675700 9.675700 3.719541e+06 0.0 8.426545e+06 3.075036e+07 \n",
"\n",
"[120 rows x 83 columns]"
]
},
"execution_count": 1621,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"genshr['pk_q']=genshr.pk_share*Q_tou1[0]\n",
"genshr['sh_q']=genshr.sh_share*Q_tou1[2]*dg_share\n",
"genshr['off_q']=genshr.off_share*Q_tou1[3]*dg_share\n",
"\n",
"for reg in gen_l:\n",
" data_gen.loc[(data_gen['m_yr']==year+1)&(data_gen['bb']==reg),['pk_q','sh_q','off_q']]=genshr.loc[genshr['bb']==reg,['pk_q','sh_q','off_q']].values\n",
"data_gen\n"
]
},
{
"cell_type": "code",
"execution_count": 1451,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" bb | \n",
" pk_share | \n",
" sh_share | \n",
" off_share | \n",
" pk_q | \n",
" sh_q | \n",
" off_q | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" BEN | \n",
" 0.252903 | \n",
" 0.295876 | \n",
" 0.225390 | \n",
" 1.149252e+06 | \n",
" 2.286024e+06 | \n",
" 5.584364e+06 | \n",
"
\n",
" \n",
" 1 | \n",
" BPE | \n",
" 0.063685 | \n",
" 0.055411 | \n",
" 0.070588 | \n",
" 2.893983e+05 | \n",
" 4.281224e+05 | \n",
" 1.748919e+06 | \n",
"
\n",
" \n",
" 2 | \n",
" HAY | \n",
" 0.004366 | \n",
" 0.000000 | \n",
" 0.014564 | \n",
" 1.984000e+04 | \n",
" 0.000000e+00 | \n",
" 3.608443e+05 | \n",
"
\n",
" \n",
" 3 | \n",
" HLY | \n",
" 0.069257 | \n",
" 0.000000 | \n",
" 0.041023 | \n",
" 3.147223e+05 | \n",
" 0.000000e+00 | \n",
" 1.016398e+06 | \n",
"
\n",
" \n",
" 4 | \n",
" ISL | \n",
" 0.009614 | \n",
" 0.011247 | \n",
" 0.009332 | \n",
" 4.368696e+04 | \n",
" 8.689950e+04 | \n",
" 2.312100e+05 | \n",
"
\n",
" \n",
" 5 | \n",
" KIK | \n",
" 0.004654 | \n",
" 0.000000 | \n",
" 0.004147 | \n",
" 2.114783e+04 | \n",
" 0.000000e+00 | \n",
" 1.027600e+05 | \n",
"
\n",
" \n",
" 6 | \n",
" RDF | \n",
" 0.020069 | \n",
" 0.023480 | \n",
" 0.017886 | \n",
" 9.120000e+04 | \n",
" 1.814096e+05 | \n",
" 4.431525e+05 | \n",
"
\n",
" \n",
" 7 | \n",
" ROX | \n",
" 0.121580 | \n",
" 0.142238 | \n",
" 0.108353 | \n",
" 5.524870e+05 | \n",
" 1.098974e+06 | \n",
" 2.684605e+06 | \n",
"
\n",
" \n",
" 8 | \n",
" SFD | \n",
" 0.067855 | \n",
" 0.005274 | \n",
" 0.072970 | \n",
" 3.083478e+05 | \n",
" 4.075144e+04 | \n",
" 1.807934e+06 | \n",
"
\n",
" \n",
" 9 | \n",
" TRK | \n",
" 0.028030 | \n",
" 0.034583 | \n",
" 0.036031 | \n",
" 1.273739e+05 | \n",
" 2.672021e+05 | \n",
" 8.927275e+05 | \n",
"
\n",
" \n",
" 10 | \n",
" TWI | \n",
" 0.106164 | \n",
" 0.124203 | \n",
" 0.094615 | \n",
" 4.824348e+05 | \n",
" 9.596306e+05 | \n",
" 2.344213e+06 | \n",
"
\n",
" \n",
" 11 | \n",
" WKM | \n",
" 0.251824 | \n",
" 0.307687 | \n",
" 0.305100 | \n",
" 1.144348e+06 | \n",
" 2.377283e+06 | \n",
" 7.559283e+06 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" bb pk_share sh_share off_share pk_q sh_q \\\n",
"0 BEN 0.252903 0.295876 0.225390 1.149252e+06 2.286024e+06 \n",
"1 BPE 0.063685 0.055411 0.070588 2.893983e+05 4.281224e+05 \n",
"2 HAY 0.004366 0.000000 0.014564 1.984000e+04 0.000000e+00 \n",
"3 HLY 0.069257 0.000000 0.041023 3.147223e+05 0.000000e+00 \n",
"4 ISL 0.009614 0.011247 0.009332 4.368696e+04 8.689950e+04 \n",
"5 KIK 0.004654 0.000000 0.004147 2.114783e+04 0.000000e+00 \n",
"6 RDF 0.020069 0.023480 0.017886 9.120000e+04 1.814096e+05 \n",
"7 ROX 0.121580 0.142238 0.108353 5.524870e+05 1.098974e+06 \n",
"8 SFD 0.067855 0.005274 0.072970 3.083478e+05 4.075144e+04 \n",
"9 TRK 0.028030 0.034583 0.036031 1.273739e+05 2.672021e+05 \n",
"10 TWI 0.106164 0.124203 0.094615 4.824348e+05 9.596306e+05 \n",
"11 WKM 0.251824 0.307687 0.305100 1.144348e+06 2.377283e+06 \n",
"\n",
" off_q \n",
"0 5.584364e+06 \n",
"1 1.748919e+06 \n",
"2 3.608443e+05 \n",
"3 1.016398e+06 \n",
"4 2.312100e+05 \n",
"5 1.027600e+05 \n",
"6 4.431525e+05 \n",
"7 2.684605e+06 \n",
"8 1.807934e+06 \n",
"9 8.927275e+05 \n",
"10 2.344213e+06 \n",
"11 7.559283e+06 "
]
},
"execution_count": 1451,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"genshr"
]
},
{
"cell_type": "code",
"execution_count": 829,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" m_yr | \n",
" bb | \n",
" pk_q | \n",
" dg_q | \n",
" sh_q | \n",
" off_q | \n",
"
\n",
" \n",
" \n",
" \n",
" 9 | \n",
" 2017 | \n",
" HLY | \n",
" 728593.382 | \n",
" 0 | \n",
" 1104151.315 | \n",
" 3317202.250 | \n",
"
\n",
" \n",
" 19 | \n",
" 2017 | \n",
" TRK | \n",
" 173246.281 | \n",
" 0 | \n",
" 304355.222 | \n",
" 1100163.226 | \n",
"
\n",
" \n",
" 29 | \n",
" 2017 | \n",
" WKM | \n",
" 1058713.285 | \n",
" 0 | \n",
" 1823562.472 | \n",
" 6217721.312 | \n",
"
\n",
" \n",
" 39 | \n",
" 2017 | \n",
" RDF | \n",
" 2364.919 | \n",
" 0 | \n",
" 323.138 | \n",
" 122.865 | \n",
"
\n",
" \n",
" 49 | \n",
" 2017 | \n",
" SFD | \n",
" 473992.007 | \n",
" 0 | \n",
" 642123.514 | \n",
" 1266327.610 | \n",
"
\n",
" \n",
" 59 | \n",
" 2017 | \n",
" BPE | \n",
" 279673.112 | \n",
" 0 | \n",
" 482038.815 | \n",
" 1443424.155 | \n",
"
\n",
" \n",
" 69 | \n",
" 2017 | \n",
" HAY | \n",
" 51205.223 | \n",
" 0 | \n",
" 98251.998 | \n",
" 382056.740 | \n",
"
\n",
" \n",
" 79 | \n",
" 2017 | \n",
" KIK | \n",
" 7178.137 | \n",
" 0 | \n",
" 11528.908 | \n",
" 30246.405 | \n",
"
\n",
" \n",
" 89 | \n",
" 2017 | \n",
" ISL | \n",
" 48748.373 | \n",
" 0 | \n",
" 91683.627 | \n",
" 323999.487 | \n",
"
\n",
" \n",
" 99 | \n",
" 2017 | \n",
" BEN | \n",
" 884096.421 | \n",
" 0 | \n",
" 1724927.018 | \n",
" 5037698.581 | \n",
"
\n",
" \n",
" 109 | \n",
" 2017 | \n",
" ROX | \n",
" 376369.779 | \n",
" 0 | \n",
" 739049.209 | \n",
" 2374806.763 | \n",
"
\n",
" \n",
" 119 | \n",
" 2017 | \n",
" TWI | \n",
" 384420.842 | \n",
" 0 | \n",
" 870897.704 | \n",
" 3178102.320 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" m_yr bb pk_q dg_q sh_q off_q\n",
"9 2017 HLY 728593.382 0 1104151.315 3317202.250\n",
"19 2017 TRK 173246.281 0 304355.222 1100163.226\n",
"29 2017 WKM 1058713.285 0 1823562.472 6217721.312\n",
"39 2017 RDF 2364.919 0 323.138 122.865\n",
"49 2017 SFD 473992.007 0 642123.514 1266327.610\n",
"59 2017 BPE 279673.112 0 482038.815 1443424.155\n",
"69 2017 HAY 51205.223 0 98251.998 382056.740\n",
"79 2017 KIK 7178.137 0 11528.908 30246.405\n",
"89 2017 ISL 48748.373 0 91683.627 323999.487\n",
"99 2017 BEN 884096.421 0 1724927.018 5037698.581\n",
"109 2017 ROX 376369.779 0 739049.209 2374806.763\n",
"119 2017 TWI 384420.842 0 870897.704 3178102.320"
]
},
"execution_count": 829,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#data_gen.head()\n",
"\n",
"data_gen.loc[(data_gen['m_yr']==year+1),['m_yr','bb','pk_q','dg_q','sh_q','off_q']]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# F. MAIN DEMAND STEP FUNCTION"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [],
"source": [
"# Takes last year's values and model parameters and steps demand and prices forward by a year"
]
},
{
"cell_type": "code",
"execution_count": 1443,
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'amdshr' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mbeta\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mbeta\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mbeta_i\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mbeta_i\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mdg_g\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1.0\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mic_eg\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1.0\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mic_g\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1.0\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mpop\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'med'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0mpop_data\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mreg_pop_params\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0minc_data\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mreg_inc_params\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mtp_rev\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtp_rev\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0maob\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m aob_yr=aob_yr,amd_yr=2017,amdshr=amdshr,econ_share=econ_share,rcpd_n=ic_s):\n\u001b[0m\u001b[1;32m 8\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0;31m#Get prior variables from dataframes - 0 suffix indicates prior period\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mNameError\u001b[0m: name 'amdshr' is not defined"
]
}
],
"source": [
"def dmnd(data=data,aob_accnt=aob_accnt,data_gen=data_gen,reg=\"MDN\",ctype=1,\n",
" year=yr_0,base_year=base_year,exist_g=exist_g,\n",
" pg_mu=pg_mu,pg_sd=pg_sd,nz_m_g_mu=nz_m_g_mu,nz_m_g_sd=nz_m_g_sd,\n",
" share_n=share_n,gamma=gamma,gamma_i=gamma_i,\n",
" beta=beta,beta_i=beta_i,dg_g=1.0,ic_eg=1.0,ic_g=1.0,pop='med',\n",
" pop_data=reg_pop_params,inc_data=reg_inc_params,tp_rev=tp_rev,aob=False,\n",
" aob_yr=aob_yr,amd_yr=2017,amdshr=amdshr,econ_share=econ_share,rcpd_n=ic_s):\n",
" \n",
" #Get prior variables from dataframes - 0 suffix indicates prior period\n",
" p0=np.matrix(data.loc[(data['bb']==reg)&(data['type']==ctype)&\n",
" (data['m_yr']==year),['pk_p','dg_p','sh_p','off_p']]) #Price\n",
" s0=np.matrix(data.loc[(data['bb']==reg)&(data['type']==ctype)&\n",
" (data['m_yr']==year),['pk_s','dg_s','sh_s','off_s']]) #TOU expenditure shares\n",
" q0=np.matrix(data.loc[(data['bb']==reg)&(data['type']==ctype)&\n",
" (data['m_yr']==year),['pk_q','dg_q','sh_q','off_q']]) #TOU quantities\n",
" e0=np.matrix(data.loc[(data['bb']==reg)&(data['type']==ctype)&\n",
" (data['m_yr']==year),['pk_e','dg_e','sh_e','off_e']]) #Expenditures\n",
" sb=np.matrix(data.loc[(data['bb']==reg)&(data['type']==ctype)&\n",
" (data['p_yr']==base_year),['pk_s','dg_s','sh_s','off_s']]) #TOU expenditure shares in base year (2010)\n",
" dgmax0=np.matrix(data.loc[(data['bb']==reg)&(data['type']==ctype)&\n",
" (data['m_yr']==year),['dg_max']]) # Maximum DG output, as a measure of capacity of access to grid alternatives \n",
" dg0=np.matrix(data.loc[(data['bb']==reg)&(data['type']==ctype)&\n",
" (data['m_yr']==year),['dg_icp']]) # Maximum DG output per ICP\n",
" icp0=np.matrix(data.loc[(data['bb']==reg)&(data['type']==ctype)&\n",
" (data['m_yr']==year),['icp']]) # Number of ICPs\n",
" m0=np.matrix(data.loc[(data['bb']==reg)&(data['type']==ctype)&\n",
" (data['m_yr']==year),['earn_icp']]) #Averaeg earnings per ICP\n",
" pt0=np.matrix(data.loc[(data['bb']==reg)&(data['type']==ctype)&\n",
" (data['m_yr']==year),['pk_pt','dg_pt','sh_pt','off_pt']]) # Transport price\n",
" pi0=np.matrix(data.loc[(data['bb']==reg)&(data['type']==ctype)& #Interconnection price per MWh equivalent\n",
" (data['m_yr']==year),['pk_i','dg_i','sh_i','off_i']])\n",
" ic0=np.matrix(data.loc[(data['bb']==reg)&(data['type']==ctype)& #Interconnection charge (IC) - total annual\n",
" (data['m_yr']==year),['pk_ic','dg_ic','sh_ic','off_ic']])\n",
" pg0=np.matrix(data.loc[(data['bb']==reg)&(data['type']==ctype)&\n",
" (data['m_yr']==year),['pk_pg','dg_pg','sh_pg','off_pg']]) # Generation price\n",
" ptmu0=np.matrix(data.loc[(data['bb']==reg)&(data['type']==ctype)&\n",
" (data['m_yr']==year),['pk_pt_mu','dg_pt_mu','sh_pt_mu','off_pt_mu']]) # Transport mean multiplier (parameter)\n",
" px0=np.matrix(data.loc[(data['bb']==reg)&(data['type']==ctype)&\n",
" (data['m_yr']==year),['pk_px','dg_px','sh_px','off_px']]) # Grid price - ex IC\n",
" exp0=np.matrix(data.loc[(data['bb']==reg)&(data['type']==ctype)&\n",
" (data['m_yr']==year),['exp_all']]) # Expenditure by node\n",
" exp_icp0=np.matrix(data.loc[(data['bb']==reg)&(data['type']==ctype)&\n",
" (data['m_yr']==year),['exp_per_icp']]) # Expenditure per ICP\n",
" theta = np.matrix(data.loc[(data['bb']==reg)&(data['type']==ctype)&\n",
" (data['m_yr']==year),['pk_theta','dg_theta','sh_theta','off_theta']]) \n",
" pt_mu0 = np.matrix(data.loc[(data['bb']==reg)&(data['type']==ctype)&\n",
" (data['m_yr']==year),['pk_pt_mu','dg_pt_mu','sh_pt_mu','off_pt_mu']]) #Transport price ratio, mean\n",
" pt_s_mu0 = np.matrix(data.loc[(data['bb']==reg)&(data['type']==ctype)&\n",
" (data['m_yr']==year),['pk_s_pt_mu','dg_s_pt_mu','sh_s_pt_mu','off_s_pt_mu']]) #Transport price ratio, mean\n",
" pt_ns_mu0 =np.matrix(data.loc[(data['bb']==reg)&(data['type']==ctype)&\n",
" (data['m_yr']==year),['pk_ns_pt_mu','dg_ns_pt_mu','sh_ns_pt_mu','off_ns_pt_mu']]) #Transport price ratio, mean\n",
" params=np.matrix(data.loc[(data['bb']==reg)&(data['type']==ctype)&\n",
" (data['m_yr']==year),list(data.iloc[:,58:74])]) #Other parameters - related to e.g. transport charges during scarcity\n",
"\n",
" # Income and population parameters\n",
" icp_g_mu=np.asscalar(pop_data.loc[(pop_data['bb']==reg),\n",
" [pop]].values) #Reg ICP growth \n",
" m_g_reg_mu=np.asscalar(inc_data.loc[(pop_data['bb']==reg),\n",
" ['reg_m_mu']].values)#Reg income growth relative to NZ \n",
" m_g_mu=nz_m_g_mu*m_g_reg_mu #Income growth scenario\n",
" \n",
" #Expected price for generation in the next period\n",
" #Expected price for generation in the next period, based on price in current period\n",
" _, dispatch_p0=dispatch(data=data,exist_g=exist_g,year=year)\n",
" _, dispatch_p1=dispatch(data=data,exist_g=exist_g,year=year-1)\n",
" \n",
" dispatch_p=np.divide(np.add(dispatch_p0,dispatch_p1),2)\n",
" \n",
" pg_mu=[dispatch_p[0],dispatch_p[0],dispatch_p[1],dispatch_p[2]]\n",
" \n",
" pg1 = ln_exp(mu=pg_mu,sd=pg_sd)\n",
" pg_g = np.divide(pg1,pg0)\n",
" dp_g = pg_g-1\n",
" \n",
" #New price for transport costs\n",
" ptmu1=ptmu0 #For the purposes of the demand model this value is unchanged from the average\n",
" pt1 = np.multiply(pg1,ptmu1-1)\n",
" \n",
" #New grid price\n",
" px1=pg1+pt1\n",
" dpx = np.divide(px1,px0)\n",
" \n",
" #New IC prices - interim ones - to be updated after demand calculated\n",
" #The growth that matters is growth in two years, three years forward \n",
" #Of the prior period input (year) value\n",
" if aob==True and (year+1) >= aob_yr:\n",
" #Use initial shares\n",
" amd_share=np.asscalar(amdshr.loc[(amdshr['m_yr']==amd_yr)&(amdshr['bb']==reg)&\n",
" (amdshr['type']==ctype),[\"AMDshr\"]].values)\n",
" amd=amd_share*np.asscalar(\n",
" tp_rev.loc[(tp_rev['m_yr']==(year+1)),['resid_rev']].values)\n",
" if (year+1) == aob_yr:\n",
" aob1 = np.asscalar(aob_accnt.loc[aob_accnt['m_yr']==(year+1),[reg+str(ctype)]].values)\n",
" \n",
" else: # Note capex values here are revenue years - assume assets commissioned at start of year too.\n",
" reliab_shr=amdshr_f(data=data,window=3)\n",
" reliab_shr_bb=np.asscalar(reliab_shr.loc[(reliab_shr['m_yr']==year)&\n",
" (reliab_shr['type']==ctype)&\n",
" (reliab_shr['bb']==reg),['AMDshr']].values)\n",
" inv = (np.asscalar(tp_rev.loc[(tp_rev['m_yr']==(year+1)),['base_capex']].values)+\n",
" np.asscalar(tp_rev.loc[(tp_rev['m_yr']==(year+1)),['major_capex']].values)) \n",
" inv_shr = (econ_share*(lceshr(data=data,data_gen=data_gen,\n",
" reg=reg,year=year,ctype=ctype)) \n",
" + (1-econ_share)*reliab_shr_bb*load_reliab_shr)\n",
" d_aob = inv*inv_shr #New investment \n",
" aob0 = np.asscalar(aob_accnt.loc[aob_accnt['m_yr']==(year),[reg+str(ctype)]].values)\n",
" aob1 = aob0*(1-deprn)+d_aob\n",
" \n",
" ic_tmp = amd+aob1\n",
" pi1 = np.matrix(np.repeat(ic_tmp/np.sum(q0),share_n))\n",
" aob_accnt.loc[aob_accnt['m_yr']==(year+1),[reg+str(ctype)]]=aob1\n",
" \n",
" pr1 = pi1 #Interconnection revenue per MWh paid in year\n",
" \n",
" else:\n",
" ic_g = np.asscalar(tp_rev.loc[(tp_rev['m_yr']==year+2),['ic_g']].values)\n",
" pi1 = np.multiply(pi0,rcpd_n)*ic_g\n",
" \n",
" pr1=rcpd_rev_update(data=data,year=year,rcpd_n=rcpd_n)\n",
" \n",
" #New wholesale prices, faced by consumers\n",
" p1 = np.add(px1,pi1)\n",
" p_g = np.divide(p1,p0)\n",
" dp = p_g-1 \n",
" \n",
" # Matrix of demand elasticities\n",
" if ctype== 1:\n",
" elas_tou=(-np.eye(share_n)+(gamma/(np.transpose(s0)*ones))-\n",
" (((beta*ones*np.transpose(ones)*sb))/\n",
" (np.transpose(s0)*ones)))\n",
" #This adds the market elasticity to the TOU elasticities, to get a total effect\n",
" elas = elas_tou*abs(p_e)\n",
" else:\n",
" elas_tou=(-np.eye(share_n)+(gamma_i/(np.transpose(s0)*ones))-\n",
" (((beta_i*ones*np.transpose(ones)*sb))/\n",
" (np.transpose(s0)*ones)))\n",
" elas = elas_tou*abs(p_e_i)\n",
" \n",
" #DG investment decision\n",
" #(i) Expected interconnection charges (take the average of initial and end point for simplicity)\n",
" exp_ic_g = tp_rev.loc[tp_rev['m_yr']>year,['totrev_g']].mean()-1\n",
" pv_pi=np.zeros(shape=(1,share_n))\n",
" for i in range(share_n):\n",
" pv_pi[0,i] = (pi0[0,i]+(pi0[0,i]*(1+exp_ic_g)**dg_horizon))/2\n",
" #Values during high and low priced (locally scarce/abundant generation) \n",
" p_s_g=np.multiply(pt_s_mu0,pg1)\n",
" p_ns_g=np.multiply(pt_ns_mu0,pg1)\n",
" \n",
" #Expected grid price \n",
" p_grid = np.add(np.multiply(theta,p_s_g),np.multiply((1-theta),p_ns_g))\n",
" #Expected gain from DG - based on peak and shoulder prices\n",
" #Peak volumes as share of peak and shoulder \n",
" pk_sh_shr = q0[0,0]/(q0[0,0]+q0[0,2])\n",
" #Weighted average of peak and shoulder prices\n",
" #Divided by lrmc - capital cost - plus SRMC at off-peak price, with an energy loss uplift (1.1)\n",
" \n",
" dg_lrmc = (dg_capex*(dg_lrmc_g**(year-yr_0))+\n",
" dg_fixed)/dg_mwh\n",
"\n",
" if aob==(False or (year+1)0 and (q0[0,0]/(pk_tp/2))>(dgmax0*max_dg):\n",
" dg_g=1+p_gain*dg_ds*((q0[0,0]/(pk_tp/2))/((q0[0,0]/(pk_tp/2))+dgmax0))\n",
" dgmax1=max(dgmax0*dg_g,dgmax0+1) #Updated dgmax \n",
" else:\n",
" dgmax1=dgmax0*dg_g #Updated dgmax \n",
" \n",
" # Get new demand - in response to price \n",
" # First adjust quantity bases for change in DG\n",
" d_dg_g = dgmax1/dgmax0 #Percent change in DG\n",
" d_dg = q0[0,1]*(d_dg_g-1) #Delta in DG, base is prior year (q0)\n",
" dq_dg = np.multiply(dg_c,d_dg) # Multiply delta by coeffs for TOU delta\n",
" q0_tmp = np.add(q0,dq_dg) #Add deltas (should sum to 0) \n",
" #Now apply price elasticities\n",
" dq = 1+dp*np.transpose(elas)\n",
" q_tmp = np.multiply(q0_tmp,dq)\n",
" q_tmp[q_tmp<10]=10 # Stop negative values - which occur if prices rise high enough\n",
" \n",
" # Add income effect - using income elasticity and assumed income growth\n",
" # Industrials are included to allow for output to increase in line with earnings\n",
" q_tmp=q_tmp*(1+((m_g_mu-1)*m_e))\n",
" \n",
" q_tmp2 = q_tmp \n",
" if reg=='TWI' and ctype==2 and year==pot4_on:\n",
" q_tmp = np.add(q_tmp2,pot4)\n",
" if reg=='TWI' and ctype==2 and year==pot4_off:\n",
" q_tmp = np.subtract(q_tmp2,pot4) \n",
" \n",
" # Update earnings\n",
" m1 = m0*m_g_mu\n",
" \n",
" # Calculate new shares\n",
" e_tmp = np.multiply(p1,q_tmp)\n",
" s_tmp = e_tmp/np.sum(e_tmp)\n",
" \n",
" # Adjustment to ensure adding up of shares (not clear if this is still necessary - was there for prior DG adjustment)\n",
" s1 = s_tmp/np.sum(s_tmp) \n",
" e1=s1*np.sum(e_tmp) #expenditure by tou\n",
" \n",
" # Adjust for growth in ICPs\n",
" \n",
" if ctype==1:\n",
" icp1=icp0*icp_g_mu\n",
" e1=e1*icp_g_mu #Expenditure by tou \n",
" exp1=np.sum(e1)\n",
" exp_icp1=np.divide(exp1,icp1)\n",
" dg1=dg0*(dg_g-(icp_g_mu-1)) #Updated dg per ICP\n",
" else:\n",
" icp1=icp0\n",
" exp1=np.sum(e1)\n",
" exp_icp1=np.divide(exp1,icp1)\n",
" dg1=dg0*dg_g #Updated dg per ICP\n",
" \n",
" q1=np.divide(e1,p1)\n",
" \n",
" #Expected interconnection charges\n",
" if aob==True and (year+1) >= aob_yr:\n",
" ic1=np.multiply(pi1,q0)\n",
" rev1 = ic1 #Interconnection revenue paid in year +1\n",
" else: \n",
" ic1=np.multiply(pi1,q1)\n",
" revq=np.multiply(q0,rcpd_n)\n",
" rev1=np.multiply(pr1,revq)\n",
" pr1=np.reshape(np.multiply(rcpd_n,pr1),(1,4))\n",
" \n",
" #Transport charge adjustment - for demand growth\n",
" dq = np.divide(q1,q0)\n",
" dpt_dq_s = 0.13 #elasticity of transport price to demand in areas with scarce generation\n",
" dpt_dq_ns = -0.06 #elasticity of transport price to demand in areas without scarce generation\n",
" \n",
" #Limit the value of demand changes - affecting transport charges to 20% in any period - due to issues in WKM \n",
" dq[dq>2]=2 \n",
" # Keep DG changes to 1 (increases do not affect)\n",
" dq[0,1]=1\n",
"\n",
" #Initialise net period values \n",
" pt_mu1=pt_mu0 \n",
" pt_s_mu1=pt_s_mu0\n",
" pt_ns_mu1=pt_ns_mu0\n",
" #Apply elasticity\n",
" for i in range(share_n):\n",
" pt_mu1[0,i]=(1+(dq[0,i]-1)*dpt_dq_ns)*pt_mu0[0,i] if pt_mu1[0,i]<1 else (1+(dq[0,i]-1)*dpt_dq_s)*pt_mu0[0,i]\n",
" pt_s_mu1[0,i]=(1+(dq[0,i]-1)*dpt_dq_ns)*pt_s_mu0[0,i] if pt_s_mu1[0,i]<1 else (1+(dq[0,i]-1)*dpt_dq_s)*pt_s_mu0[0,i]\n",
" pt_ns_mu1[0,i]=(1+(dq[0,i]-1)*dpt_dq_ns)*pt_ns_mu0[0,i] if pt_ns_mu1[0,i]<1 else (1+(dq[0,i]-1)*dpt_dq_s)*pt_ns_mu0[0,i]\n",
" #Keep peak dg the same as peak grid\n",
" pt_mu1[0,1]=pt_mu1[0,0] \n",
" pt_s_mu1[0,1]=pt_s_mu1[0,0] \n",
" pt_ns_mu1[0,1]=pt_ns_mu1[0,0] \n",
" \n",
" #Add extras\n",
" ctype1 = ctype\n",
" p_yr1 = year+3\n",
" m_yr1=year+1\n",
" \n",
" # List of data/values to add to dataframe\n",
" nums=pd.DataFrame(np.concatenate((np.array([[ctype1]],float), #1\n",
" np.array([[p_yr1]],float), #2 \n",
" np.array([[m_yr1]],float), #3\n",
" s1, #7\n",
" p1, #11\n",
" q1, # 15\n",
" exp_icp1, #16\n",
" np.array([[exp1]]), #17\n",
" np.array(icp1), #18\n",
" dgmax1,\n",
" m1,\n",
" dg1,\n",
" pt1,\n",
" pi1,\n",
" ic1,\n",
" pg1,\n",
" px1,\n",
" e1,\n",
" pt_mu1,\n",
" pt_s_mu1,\n",
" pt_ns_mu1,\n",
" params,\n",
" pr1,\n",
" rev1),\n",
" axis=1),\n",
" columns=list(data.iloc[:,1:]))\n",
"\n",
" \n",
" node=pd.Series(reg)\n",
" vals=pd.concat([node,nums],axis=1)\n",
" vals.columns=list(data)\n",
" main = data.append(vals,ignore_index=True)\n",
" \n",
" #Generation data - add but only in mass loops so no double up\n",
" if ctype==1 and reg in gen_l:\n",
" gen_params=np.matrix(data_gen.loc[(data_gen['bb']==reg)&\n",
" (data_gen['m_yr']==year),list(data_gen.iloc[:,58:75])])\n",
" #Values for generation to add to dataframe - only price information added at this stage \n",
" nums_gen=pd.DataFrame(np.concatenate((np.array([[0]],float),\n",
" np.array([[p_yr1]],float),\n",
" np.array([[m_yr1]],float),\n",
" np.matrix([0.0,0.0,0.0,0.0]), #s1\n",
" px1,\n",
" np.matrix([0.0,0.0,0.0,0.0]), #q1\n",
" np.array([[0]],float), #exp_icp1\n",
" np.array([[exp1]]), \n",
" np.array(icp1),\n",
" np.array([[0]],float), #dgmax1\n",
" np.array([[0]],float), #m1\n",
" np.array([[0]],float), #dg1\n",
" pt1, \n",
" np.matrix([0.0,0.0,0.0,0.0]), #pi1\n",
" np.matrix([0.0,0.0,0.0,0.0]), #ic1\n",
" pg1,\n",
" px1,\n",
" np.matrix([0.0,0.0,0.0,0.0]), #e1\n",
" pt_mu1,\n",
" pt_s_mu1,\n",
" pt_ns_mu1, \n",
" gen_params,\n",
" np.matrix([0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0])), #pr1,rev1\n",
" axis=1),\n",
" columns=list(data_gen.iloc[:,1:]))\n",
" \n",
" \n",
" vals_gen=pd.concat([node,nums_gen],axis=1)\n",
" vals_gen.columns=list(data_gen)\n",
" gen_out=data_gen.append(vals_gen,ignore_index=True)\n",
" else:\n",
" gen_out=data_gen\n",
" \n",
" return main, aob_accnt, gen_out"
]
},
{
"cell_type": "code",
"execution_count": 1444,
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'pop_data' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m icp_g_mu=np.asscalar(pop_data.loc[(pop_data['bb']==reg),\n\u001b[0m\u001b[1;32m 2\u001b[0m [pop]].values) #Reg ICP growth \n\u001b[1;32m 3\u001b[0m m_g_reg_mu=np.asscalar(inc_data.loc[(pop_data['bb']==reg),\n\u001b[1;32m 4\u001b[0m ['reg_m_mu']].values)#Reg income growth relative to NZ \n\u001b[1;32m 5\u001b[0m \u001b[0mm_g_mu\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnz_m_g_mu\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mm_g_reg_mu\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mNameError\u001b[0m: name 'pop_data' is not defined"
]
}
],
"source": [
"icp_g_mu=np.asscalar(pop_data.loc[(pop_data['bb']==reg),\n",
" [pop]].values) #Reg ICP growth \n",
"m_g_reg_mu=np.asscalar(inc_data.loc[(pop_data['bb']==reg),\n",
" ['reg_m_mu']].values)#Reg income growth relative to NZ \n",
"m_g_mu=nz_m_g_mu*m_g_reg_mu"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# G. Run models - with AOB version and an RCPD version"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [],
"source": [
"# G.1 AOB version\n",
"df_aob=data #Initialise dataframe for main results\n",
"accnt_aob=aob_accnt # Initialise an AOB account dataframe\n",
"gen_aob=data_gen # Initialise a generation data frame - used for calculating shares of AoB\n",
"exist_g_aob=exist_g\n",
"poss_g_aob=poss_g\n",
"\n",
"# Loop over each customer type and BB node for each year\n",
"for t in range(T-1):\n",
" year=yr_0+t\n",
" aob=True\n",
" aob_yr=aob_yr\n",
" for node in reg_l: \n",
" df_aob,accnt_aob,gen_aob = dmnd(data=df_aob,reg=node,ctype=1,year=year,dg_g=1.00,aob=aob,aob_yr=aob_yr,\n",
" aob_accnt=accnt_aob,data_gen=gen_aob,exist_g=exist_g_aob)\n",
" for node in ind_l:\n",
" df_aob,accnt_aob, gen_aob = dmnd(data=df_aob,reg=node,ctype=2,year=year,dg_g=1.00,aob=aob,aob_yr=aob_yr,\n",
" aob_accnt=accnt_aob,data_gen=gen_aob,exist_g=exist_g_aob)\n",
" \n",
" # Update RCPD interconnection charges\n",
" if aob==False or (year+1)"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA4MAAAG2CAYAAADFv1PNAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl8lNWh//HPycoaIAlbWJKogIDsl00Fo8iiaAXbixsiaH/tRWzd63aVpbXWra11aW0varAuaGvFqggiomwCVTZFRRGQXbYkBALZzu+PM5NJJpNM9pkk3/frdV7PM2eeZ54TgphvzmastYiIiIiIiEjjEhHqBoiIiIiIiEjdUxgUERERERFphBQGRUREREREGiGFQRERERERkUZIYVBERERERKQRUhgUERERERFphIKGQWPMXGPMAWPMpmJ1bYwxi40xXxtjFhljWhV770/GmG+MMRuMMf2L1V9njNnquWdKsfqBxphNnvf+WJ1niIiIiIiISMVUpGfweWCsX93dwBJrbQ9gKXAPgDHmIuB0a2034OfAXzz1bYAHgMHAUGBmsXD3Z+AGa213oLsxZmxVniEiIiIiIiIVFzQMWmtXAEf9qi8D0j3n6Z7X3vp5nvvWAK2MMe1xYXKxtTbTWpsBLAbGGWM6AC2ttes8988DJlTxGSIiIiIiIlJBVZ0z2M5aewDAWrsf8IaxTsCuYtft9tT51+8pVr87wPUA7Sv4jD3F7hEREREREZEKiKqhz7Fl1Jsa+vzynlEmY0yl7xEREREREWlIrLUBc1lVewYPeIdmeoZ6/uCp3wN0KXZdZ0/dHqBrGfWBrgfYX8lnBGStDesyc+bMkLdBRd+X+lL0fQnPou9LeBZ9X8Kz6PsSnkXfl/As+r7UTClPRcOgoWQv31vAVM/5VGBBsfopAMaYYUCGdUM9FwGjjTGtPIvJjAYWWTf8M9MYM8QYYzz3LqjiM0RERERERKSCgg4TNca8DKQBCcaY74GZwO+A140x1wM7gUkA1tp3jTEXG2O+BY4D0zz1R40xvwb+gxvuOdu6hWQAZgAvAE2Ad62173nqHwZeq+gzREREREREpOKChkFr7dVlvHVhGdffVEb9C7jQ51//KdAnQP2Ryj6jPkpLSwt1EyQAfV/Ck74v4Unfl/Ck70t40vclPOn7Ep70fal9Jtg40vrMGGMb8tcnIiIiIiJSHmMMtowFZGpqNVEREREREZFakZKSws6dO0PdjLCWnJzMjh07KnWPegZFRERERCSseXq3Qt2MsFbWn1F5PYNV3VpCRERERERE6jGFQRERERERkUZIYVBERERERKQRUhgUERERERFphBQGRUREREREyrBz50769Cm1LTqpqakcOXIkBC2qOQqDIiIiIiIi5TCm9GKcgerqG4VBERERERGRcuTl5TF58mR69erFpEmTyMnJwVrLww8/TN++fRk2bBjfffddqJtZaQqDIiIiIiIi5fj666+56aab2LJlC3FxcTzzzDMAtG7dmk2bNjFjxgxuvvnmELey8hQGRUREREREytG1a1eGDRsGwDXXXMOKFSswxnDVVVcBcNVVV7F69epQNrFKFAZFRERERETK4T8/0Pu6eH1ERP2LVvWvxSIiIiIiInVo586drFmzBoCXX36ZESNGYK1l/vz5ALz66qsMHz48lE2sEoVBERERERGRcpx55pk8/fTT9OrVi8zMTKZPn44xhqNHj9KvXz+efPJJ/vCHP4S6mZVmrLWhbkOtMcbYhvz1iYiIiIg0BsYY9HN9+cr6M/LUB9wHQz2DIiIiIiIijZDCoIiIiIiISCOkMCgiIiIiItIIKQyKiIiIiIg0QgqDIiIiIiIijVBUqBsgIiIiIiIi1feLX8Dx475y4kT51ysMioiIiIiINADdukHz5iXLhx+Wfb32GRQRERERkbCmfQaD0z6DIiIiIiIidSwlJYVmzZoRFxdHQkICl156KXv27AFg6tSpxMbGEhcXR1xcHC1btmTAgAEA7Ny5k4iICC655JISn3fttdcyZ86cWm+3wqCIiIiIiEg1GGN45513yMrKYt++fbRr145f/OIXRe/dddddZGVlkZWVxbFjx1i/fn2J+9esWcMnn3xS5+1WGBQREREREakm7xDNmJgYfvKTn7Bly5YK3/urX/2Ke++9t7aaViaFQRERERERkRpy4sQJ5s+fz/Dhwyt0vTGGG2+8ka1bt7J06dJabl1JCoMiIiIiIlKvGVMzpTomTJhAfHw8rVu3ZsmSJdxxxx1F7z366KPEx8fTpk0b4uPjmTZtWol7mzZtyn333cf//u//Vq8RlaQwKCIiIiIi9Zq1NVOqY8GCBRw5coRTp07x5JNPMnLkSH744QcA7rzzTo4cOcLRo0c5cuQIzz//fKn7f/rTn3LgwAHefvvt6jWkEhQGRUREREREqsk7Z9AYw8SJE4mMjGTFihUVvj86OpqZM2dy//33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5s3jggsuYM+ePUyfPp2DBw+yatUqoqLcjn6zZ89m27ZtzJs3r9RnzJs3j9tuu42srCx2795Nu3aV20pdw0RFRERERETq0LFjx5g1axZPPfUUo0ePJjIykq5du/Laa6+xY8cO/v73v1foc9LT05k+fTp9+/at8D3VpTAoIiIiIiJSRatWreLUqVNMnDixRH3z5s25+OKLef/994N+xs6dO1m2bBnXXHMNV199Nenp6bXV3BIUBkVEREREpF4zpmZKVRw6dIjExEQiIkpHq44dO3Lo0KGgn/Hiiy/Sr18/zjzzTK688kq2bNnCxo0bq9agSlAYFBERERGRes3amilVkZiYyKFDhygsLCz13r59+0hMTAz6GS+++CLXXHMNAElJSYwcObJOegcVBkVERERERKpo+PDhxMbG8sYbb5Soz87OZuHChVx44YXl3r969Wq++eYbHnroITp27EjHjh1Zu3YtL7/8csCAWZMUBkVERERERKooLi6OBx54gF/84hcsWrSI/Px8duzYwRVXXEHXrl2ZPHlyufe/8MILjBkzhi+//JKNGzeyceNGNm/eTE5ODgsXLqzVtkfV6qeLiIiIiIg0cHfeeSeJiYnccccdfPfdd8TFxTFx4kRefvlloqOjy7zv1KlT/OMf/+DFF1+kbdu2Jd679tprSU9Pr9V9B7XPoIiIiIiIhLVw32cwHGifQREREREREakQhUEREREREZFGSGFQRERERESkEVIYFBERERERaYQUBkVERERERBohhUEREREREZFGSGFQRERERESkEVIYFBERERERaYQUBkVERERERBqhhh8G33gj1C0QEREREZEGLCUlhWbNmhEXF0dSUhLTpk3jxIkTAEybNo3Y2FhatWpFq1at6Nu3L/feey9ZWVlF96enpxMVFUVcXBwtW7YkLi6OX/7yl7Xe7oYfBm+6CY4cCXUrRERERESkgTLG8M4775CVlcWGDRtYv349Dz30UNH7d911F5mZmRw8eJDnn3+eTz75hHPOOYecnJyia84++2yysrI4duwYWVlZ/OlPf6r1djf8MPiTn8Btt4W6FSIiIiIi0oBZawFo164dY8eOZcOGDaWuiYmJYdCgQbz11lscPnyY559/vq6bWULDD4O//S189BG8916oWyIiIiIiIg3c7t27WbhwId26dSvzmhYtWjB69GiWL19ehy0r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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA2oAAAG2CAYAAAAOSHV2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlYlWX+x/H3DSiIclBA3BVTMlvcF8x0MNMWs7IpWyzFms1smzZbplxqWqZs2vvVTBlWllmNOpktZk65gG2YW1rmngugbKKA8vz+eM5BlO0AZwM+r+s6l/CcZ/ly6A8+3ff9vY1lWYiIiIiIiEjgCPJ3ASIiIiIiInIiBTUREREREZEAo6AmIiIiIiISYBTUREREREREAoyCmoiIiIiISIBRUBMREREREQkwVQY1Y0yoMSbVGPODMWatMWaq8/gsY8yvzuPfG2N6lLrmOWPMz8aYNGNML2/+ACIiIiIiIvVNSFUnWJZVYIwZZllWvjEmGFhhjPnE+fZdlmV9WPp8Y8yFQBfLsuKNMQOB/wMSPF65iIiIiIhIPeXW1EfLsvKdX4Zih7ti5/emnNMvBWY7r0sFIo0xrWpZp4iIiIiISIPhVlAzxgQZY34A9gKfW5b1jfOtR5zTG2caYxo5j7UDdpa6fLfzmIiIiIiIiLihyqmPAJZlFQO9jTEO4D/GmNOBey3L2ucMaP8CpgCPuPtgY4xVk4JFRERERETqC8uyypulWL2uj5Zl5QDLgAssy9rnPFYEzAIGOE/bDXQodVl757Hy7hfQr6lTp/q9Br30e6krL/1eAvOl30tgvvR7CcyXfi+B+dLvJXBf+t3U/lUZd7o+xhhjIp1fNwFGAD8ZY1o7jxngMmCd85KFwHjnewlAluUMdSIiIiIiIlI1d6Y+tgGSjTFB2MFurmVZHxtjvjDGxGA3FEkD/gLgfO8iY8wvwCFgopdqFxERERERqZfcac+/FuhTzvHhlVxzcy3rCgiJiYn+LkHKod9LYNLvJTDp9xKY9HsJTPq9BCb9XgKXfjfeZaqaG+m1Bxtj+evZIiIiIiIi/maMwaqgmYhbXR9FRERERETKExcXx/bt2/1dRkDr1KkT27Ztq9Y1GlETEREREZEac44K+buMgFbRZ1TZiFq12vOLiIiIiIiI9ymoiYiIiIiIBBgFNRERERERkQCjoCYiIiIiIhJgFNRERERERKRO2r59O2eddVaZ4507d+bAgQN+qMhzFNRERERERKTOMqZs08TyjtU1CmoiIiIiIlJnFRUVcd1113H66aczduxYDh8+jGVZPPHEE/To0YOEhAR+/fVXf5dZbQpqIiIiIiJSZ23atImbb76ZDRs24HA4eOmllwBo3rw5P/74I5MnT+a2227zc5XVp6AmIiIiIiJ1VseOHUlISABg3LhxLF++HGMM11xzDQDXXHMNq1at8meJNaKgJiIiIiIiddbJ69Fc35c+HhRU92JP3atYRERERETEafv27aSmpgIwZ84chgwZgmVZzJ07F4B3332XQYMG+bPEGlFQExERERGROuu0007jxRdf5PTTTyc7O5tJkyZhjOHgwYP07NmT559/nn/+85/+LrPajGVZ/nmwMZa/ni0iIiIiIp5hjEF/11euos/IebzcvQQ0oiYiIiIiIhJgFNREREREREQCjIKaiIiIiIhIgFFQExERERERCTAKaiIiIiIiIgFGQU1ERERERCTAKKiJiIiIiIgEGAU1ERERERGRAKOgJiIiIiIi9VZcXBzh4eE4HA6io6MZPXo0u3fvBiApKYnQ0FAcDgcOh4OIiAh69+4NwPbt2wkKCuLiiy8+4X7XX389M2bM8HrdCmoiIiIiIlJvGWNYtGgROTk57Nmzh9jYWG655ZaS96ZMmUJOTg45OTnk5ubyww8/nHB9amoqKSkpPq9bQU1EREREROo1y7IAaNy4MVdccQUbNmxw+9p77rmH+++/31ulVUhBTUREREREGoT8/Hzmzp3LoEGD3DrfGMNNN93E5s2bWbp0qZerO5GCmoiIiIiIeJUxtX/VxmWXXUZUVBTNmzdnyZIl3HXXXSXvPfnkk0RFRdGiRQuioqKYOHHiCdc2adKEBx54gL/97W+1K6KaFNRERERERMSrLKv2r9pYsGABBw4coKCggOeff56hQ4eyf/9+AO6++24OHDjAwYMHOXDgALNmzSpz/R/+8Af27dvHRx99VLtCqkFBTURERERE6jXXGjVjDGPGjCE4OJjly5e7fX2jRo2YOnUqDz74oLdKLENBTUREREREGowFCxaQlZVF9+7dgeMhrjyl37vuuus4cuQIixcv9nqNoKAmIiIiIiL13OjRo3E4HERGRvLggw8ye/bskqD25JNPnrCPWmxsbMl1ptTiuKCgIGbMmMHBgwdPOO4tprIE6dUHG2P569kiIiIiIuIZxphKR6Wk4s/Iebzc1KcRNRERERERkQCjoCYiIiIi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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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zyioiYiIiIiI+BkFNRERERERET+joCYiIiIiIuJnFNRERERERET8jIKaiIiIiIiIn1FQExERERER8TMKaiIiIiIiIn5GQU1ERERERMTPKKiJiIgAKSkphIWF4XK5iI2NpWfPnuzYsQOA/v3743Q6cblcuN1uunfvzq+//grAqFGjCA4OxuVy4XK5iIiIICYmxs63IiIitYCCmoiICGCM4fPPPyc3N5eMjAzi4uK4++67K44NGzaM3Nxctm/fTlxcHP3796+49rrrriM3N5fc3Fzy8vLIysqy6V2IiEhtoaAmIiJSzrIsAIKDg7n66qtZs2bNQeeEhIRwww03sGrVqpouT0RE6hAFNRERkT8pKChg6tSpdOzY8aBjHo+Hd955h7Zt29pQmYiI1BUKaiIiIuV69epFTEwMUVFRzJ07lwcffLDi2DPPPENMTAynnXYa+fn5TJw4seLY1KlTiYmJqdguuOACO8oXEZFaJMjuAkRERH5jRplKt2GNsE742hkzZtCtWzcsy2L69Ol06dKFtWvXAjB06FBGjx59yOuuvfZaJk2adML9ioiI/JmCmoiI+I3KhKwq6b/8HjVjDL179+aOO+5g4cKFttYkIiJ1k6Y+ioiIHMKMGTPIycmhRYsWdpciIiJ1kK0japZlYUzlp7mIiIhUhZ49exIYGIgxhuTkZCZNmnRMQW3q1KlMnz4d+P1326ZNm3C73dVdsoiI1FLmt2keNd6xMZbPt4+gIJct/YuISM0yxmDX75yThb5HIiJ1S/nP/UOOXNk69dHn22tn9yIiIiIiIn7J5qCWaWf3IiIiIiIifklBTURERERExM8oqImIiIiIiPgZBTURERERERE/o8VERERERERE/IzNQW2Pnd2LiIiIiIj4JVuDmrdQUx9FRERERET+zOagphE1ERERERGRP7N36qNXI2oiIuIfmjRpwvz58w/Yl5qaSufOnQ/Y17VrV2JiYvD5fBX73njjDVq2bHnAvr1799KgQQNmz55dvYWLiEitZGtQKy7VYiIiIuLfjDEVX2/ZsoWFCxcSEBDAJ598UrF/4MCBJCYmMmrUqIp99957L5dddhndu3ev0XpFRKR2CLKz82KysSzrgF+CIiIi/mrSpEl07NiR9u3b89Zbb3HVVVdVHHvttddo27Ytffr0ISMjgy+//JLVq1fbWK2IiJzMbA1qptRJSUkuQUGRdpYhIiJySJZlHfB60qRJPPjgg7Rr144OHTqwZ88e6tevD0BycjKjR49mwIAB5OTk8PLLLxMZqd9vIiJyYmyd+hhQFK2HXouIiN/o1asXMTExFdvgwYMrji1cuJCtW7fSp08f2rZtS9OmTZkyZcoB1w8ePBiHw8GZZ55Jz549a7p8ERGpRewNagVRCmoiIvI7Yyq/VcKMGTPIysqq2F566aWKY6mpqXTv3p3o6GgArr/+elJTUw9qo0WLFrRq1apSdYiIiNg69RGPC59PC4qIiEi5P001rPnuD93//v37+eCDDygtLSU+Ph4Ar9dLTk4OK1eu5PTTT6/JMkVEpA446oiaMSbRGDPfGLPaGLPSGHN3+f4Rxpjtxpgfy7dL/nDNI8aY9caYtcaYwy93lROpETUREfF706dPJygoiLVr17JixQpWrFjB2rVr6dy58yFH1URERCrrWKY+FgP3W5bVCugIDDHGNC8/9qxlWW3Lt/8BGGNaAH2AFsDfgJfMYZZ1LN3rUlATERG/cKQViCdNmsQtt9xCo0aNiIuLq9gGDx7MlClTKC0tPaZ2REREjpU53DSPw15gzHTgBeCvgMeyrHF/Ov4wYFmWNbb89SxgpGVZS/90nvXVbbeR+LCbU075Z2Xeg4iInASMMYedWihl9D0SEalbyn/uH/IvfMe1mIgxJgU4E/gtdA02xvxkjHndGPPbGsSNgG1/uGxH+b6DlO4Kx+fdczwliIiIiIiI1HrHHNSMMeHAh8DfLcvyAC8Bp1qWdSawExh3pOsP2XlxNEUFmvooIiIiIiLyR8e06qMxJoiykDbZsqwZAJZl/XEo7DXg0/KvdwCN/3AssXzfQVLXf0vgiytJSBpJ165d6dq163GWLyIiIiIicnJYsGABCxYsOKZzj+keNWPMJCDTsqz7/7CvoWVZO8u/vg9oZ1nWDcaYlsA7QHvKpjzOAZpZf+rIGGN913sqJfeMoEPXtcf2zkRE5KSl+6+OTt8jEZG65Uj3qB11RM0Y0wm4EVhpjFkOWMCjwA3GmDOBUiANuAPAsqw1xpj3gTWAD7jrzyHtN8Eh9ckt1dRHERERERGRPzpqULMsaxEQeIhD/zvCNWOAMUdrO7iemxKTg2VZWs5YRERERESk3HGt+ljVgmPDMCWhFBfvs7MMERERERERv2JvUKsfTEBRlB56LSIiIiIi8ge2BjWH24EpUFATERERERH5I/uDWq6CmoiI2K9JkybMnz//gH2pqal06dLlsMd37tyJ2+1m8eLFB+y/+eabufnmm6u3YBERqdWO6Tlq1cXhdmCtdSmoiYjISalhw4aMGzeOgQMHsmLFCoKDg/niiy+YO3cua9assbs8ERE5idk7olbfgbU3guLivXaWISIicsL69etHkyZNGDVqFAUFBQwaNIgJEyYQFRVld2kiInISs31ErXRXhEbURETELx3rw6dfeeUVzjzzTFatWsU555xD7969q7kyERGp7WwNaoERgVhZLrz799hZhoiICAC9evUiKOj3X41FRUWcffbZR72ucePGjBgxguHDh7Nx48bqLFFEROoIW4OaMYYgK4ai/F/tLENERPyEWbCg0m1YXbue8LUzZsygW7duFa9TU1N54403junaVq1aERsbi9vtPuH+RUREfmNrUAMICozFt19TH0VEpHIhq0r6P8apjiIiItXN9qDmCHbj1WIiIiJyEvB6vRQVFVW8DgoKIjAw0MaKRESktrJ11ceCggKCQ9wUlyqoiYiIvYwxRz2nR48ehIWFERoaSlhYGKNGjaqBykREpC4ydk3zMMZYmzZtwjuugIyrzuD/unoxxtbcKCIi1cgYo6mFR6HvkYhI3VL+c/+Qfym0NRnt3rmTYHcYAcX1KC7OsbMUERERERERv2FrUNu1YQMOtwOzP1rPUhMRERERESlnb1DbuLEsqOVH4vPpPjURERERERGwOahlpKURXD8YciM1oiYiIiIiIlLO1qC2cfM2HG4HZLsU1ERERERERMrZGtQ27cjE4XZQukdBTURERERE5De2BrVt2bllQW1XOD7fHjtLERERERER8Ru2BrXsgnwCnAGYwii8BRpRExERERERAZuDWr4vH4AgYvAWaERNREREREQEbA5qJaVFeL1eggLceIs0oiYiIvZp0qQJ8+fPx+fz8cADD9C4cWNcLhennHIK999//0HniYiIVKcgOzs3jkj27NlDcLCbwmIFNRERsd+YMWP48ccf+f7772nQoAFbt27l66+/trssERGpY2wdUQtwxrArI4PgsPqUWHrgtYiI2G/ZsmX07t2bBg0aAJCUlETfvn1trkpEROoaW0fUgp2x7Nq4kaauMygJyMWySjAm0M6SRESkjuvQoQPjxo3D4XDQuXNnWrdu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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#Other - transformed input data\n",
"tp_rev.to_csv(out_fn+\"tp_revenue.csv\")\n",
"\n",
"# Check a plot of the data\n",
"fig, ax = plt.subplots(figsize=(15,7))\n",
"df_aob.groupby(['m_yr','bb']).mean()['pk_q'].unstack().plot(ax=ax)\n",
"\n",
"fig, ax = plt.subplots(figsize=(15,7))\n",
"df_aob.groupby(['m_yr','bb']).mean()['exp_all'].unstack().plot(ax=ax)\n",
"\n",
"fig, ax = plt.subplots(figsize=(15,7))\n",
"df_aob.groupby(['m_yr','bb']).mean()['pk_i'].unstack().plot(ax=ax)\n",
"\n",
"fig, ax = plt.subplots(figsize=(15,7))\n",
"df_aob.groupby(['m_yr','bb']).mean()['pk_pg'].unstack().plot(ax=ax)\n",
"\n",
"fig, ax = plt.subplots(figsize=(15,7))\n",
"df_rcpd.groupby(['m_yr','bb']).mean()['pk_pg'].unstack().plot(ax=ax)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}