# -*- coding: utf-8 -*- """ This file collects results from grid use model scenarios and collates them for summarising results @author: theot """ import numpy as np import pandas as pd import matplotlib import matplotlib.pyplot as plt import itertools out_fn="C:/Users/theot/Dropbox (Sense.)/2018-19 EA TPM CBA (Shared)/Step 3/AoB model/Output/Results/" # Check that the following has been completed # Read the first file, add a scenario description column and append... #File paths main_fn="C:/Users/theot/Dropbox (Sense.)/2018-19 EA TPM CBA (Shared)/Step 3/AoB model/Output/" scenarios = ['All_major_capex', 'Demand', 'Demand_and_DG_investment', 'Demand_and_gen_investment', 'All_major_capex_alternative', 'WUNI', 'No_AoB_on_existing', 'Demand_no_aob_on_existing', 'All_major_capex_tiwai_off', 'Demand_major_capex', 'MWh_Demand_major_capex', 'All_major_capex_2024', 'All_major_capex_gen_benefits', 'All_Major_Capex_30_70'] gen_scenarios = ['All_major_capex', 'Demand_and_gen_investment', 'All_major_capex_alternative', 'WUNI', 'No_AoB_on_existing', 'All_major_capex_tiwai_off', 'All_major_capex_2024', 'All_major_capex_gen_benefits', 'All_Major_Capex_30_70'] #Make sure welfare values are up to date. Either run one # Function to get totals of output variables def get_totals(variable,output_folder=main_fn,scenarios=scenarios): for i, s in enumerate(scenarios): if i == 0: results = pd.read_csv(main_fn+s+'/'+variable) results['scenario']=s else: temp=pd.read_csv(main_fn+s+'/'+ variable) temp['scenario']=s results = results.append(temp,ignore_index=True) return results # Welfare welfare = get_totals(variable='cv_results.csv') welfare.to_csv(out_fn+'welfare.csv') welfare_cs = get_totals(variable='cs_results.csv') welfare_cs.to_csv(out_fn+'welfare_cs.csv') #Transmission investment costs transmission_costs= get_totals(variable='transmission_costs.csv') transmission_costs.to_csv(out_fn+'transmission_costs.csv') #Plant investment plant_investment = get_totals(variable='plant_investment.csv',scenarios=gen_scenarios) plant_investment.to_csv(out_fn+'plant_investment.csv') # Investment in generation by year generation_investment = get_totals(variable='generation_investment.csv',scenarios=gen_scenarios) generation_investment.to_csv(out_fn+'generation_investment.csv') # All results - load for i, s in enumerate(scenarios): if i ==0: all_results=pd.read_csv(main_fn+s+'/rcpd.csv') all_results['scenario']=s all_results['policy']="status quo" temp=pd.read_csv(main_fn+s+'/aob.csv') temp['scenario']=s temp['policy']="proposal" all_results=all_results.append(temp,ignore_index=True) else: add=pd.read_csv(main_fn+s+'/rcpd.csv') add['scenario']=s add['policy']="status quo" aob=pd.read_csv(main_fn+s+'/aob.csv') aob['scenario']=s aob['policy']="proposal" add=add.append(aob,ignore_index=True) all_results=all_results.append(add,ignore_index=True) all_results.to_csv(out_fn+'load_results.csv') # Revenue revenue = get_totals(variable='total_revenue.csv') revenue.to_csv(out_fn+'revenue.csv') # Distributed generation dg = get_totals(variable='total_dg.csv') dg.to_csv(out_fn+'dg.csv') # Demand load = get_totals(variable='total_load.csv') load.to_csv(out_fn+'load.csv') # Grid generation grid_generation = get_totals(variable='total_generation.csv') grid_generation.to_csv(out_fn+'grid_generation.csv') # Total average prices prices = get_totals(variable='total_average_prices.csv') prices.to_csv(out_fn+'total_average_prices.csv') # Generation investment for i, s in enumerate(gen_scenarios): if i ==0: plant_results=pd.read_csv(main_fn+s+'/exist_g_rcpd.csv') plant_results['scenario']=s plant_results['policy']="status quo" temp=pd.read_csv(main_fn+s+'/exist_g_aob.csv') temp['scenario']=s temp['policy']="proposal" plant_results=plant_results.append(temp,ignore_index=True) else: add=pd.read_csv(main_fn+s+'/exist_g_rcpd.csv') add['scenario']=s add['policy']="status quo" aob=pd.read_csv(main_fn+s+'/exist_g_aob.csv') aob['scenario']=s aob['policy']="proposal" add=add.append(aob,ignore_index=True) plant_results=plant_results.append(add,ignore_index=True) plant_results.to_csv(out_fn+'plant_results.csv') # All results - generation for i, s in enumerate(gen_scenarios): if i ==0: gen_results=pd.read_csv(main_fn+s+'/gen_rcpd.csv') gen_results['scenario']=s gen_results['policy']="status quo" temp=pd.read_csv(main_fn+s+'/gen_aob.csv') temp['scenario']=s temp['policy']="proposal" gen_results=gen_results.append(temp,ignore_index=True) else: add=pd.read_csv(main_fn+s+'/gen_rcpd.csv') add['scenario']=s add['policy']="status quo" aob=pd.read_csv(main_fn+s+'/gen_aob.csv') aob['scenario']=s aob['policy']="proposal" add=add.append(aob,ignore_index=True) gen_results=gen_results.append(add,ignore_index=True) gen_results.to_csv(out_fn+'gen_results.csv')