from PySSC import PySSC  
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from pandas import Timestamp
# import datetime as dt
t=np.linspace(0,8759,8760)

if __name__ == "__main__":
	ssc = PySSC()
	print ('Current folder = C:/Users/fcomo/OneDrive/Escritorio/Proyecto_Tesis/PV')
	print ('SSC Version = ', ssc.version())
	print ('SSC Build Information = ', ssc.build_info().decode("utf - 8"))
	ssc.module_exec_set_print(0)
	data = ssc.data_create()
	ssc.data_set_string( data, b'solar_resource_file', b'C:/Users/fcomo/SAM Downloaded Weather Files/DHTMY_SAM_E_AMWTE3.csv' );
	ssc.data_set_number( data, b'system_use_lifetime_output', 0 )
	ssc.data_set_number( data, b'analysis_period', 25 )
	ssc.data_set_number( data, b'system_capacity', 100000 )
	ssc.data_set_number( data, b'module_type', 0 )
	ssc.data_set_number( data, b'dc_ac_ratio', 1.2 )
	ssc.data_set_number( data, b'array_type', 0 )
	ssc.data_set_number( data, b'tilt', 33 )
	ssc.data_set_number( data, b'azimuth', 180 )
	ssc.data_set_number( data, b'gcr', 0.40000000000000002 )
	ssc.data_set_number( data, b'losses', 14.075660705566406 )
	ssc.data_set_number( data, b'en_snowloss', 0 )
	ssc.data_set_number( data, b'inv_eff', 96 )
	ssc.data_set_number( data, b'batt_simple_enable', 0 )
	ssc.data_set_number( data, b'adjust:constant', 0 )
	module = ssc.module_create(b'pvwattsv7')	
	ssc.module_exec_set_print( 0 );
	if ssc.module_exec(module, data) == 0:
		print ('pvwattsv7 simulation error')
		idx = 1
		msg = ssc.module_log(module, 0)
		while (msg != None):
			print ('	: ' + msg.decode("utf - 8"))
			msg = ssc.module_log(module, idx)
			idx = idx + 1
		SystemExit( "Simulation Error" );
	ssc.module_free(module)
	ssc.data_set_number( data, b'enable_interconnection_limit', 0 )
	ssc.data_set_number( data, b'grid_interconnection_limit_kwac', 100000 )
	ssc.data_set_array_from_csv( data, b'grid_curtailment', b'C:/Users/fcomo/OneDrive/Escritorio/Proyecto_Tesis/PV/grid_curtailment.csv');
	module = ssc.module_create(b'grid')	
	ssc.module_exec_set_print( 0 );
	if ssc.module_exec(module, data) == 0:
		print ('grid simulation error')
		idx = 1
		msg = ssc.module_log(module, 0)
		while (msg != None):
			print ('	: ' + msg.decode("utf - 8"))
			msg = ssc.module_log(module, idx)
			idx = idx + 1
		SystemExit( "Simulation Error" );
	ssc.module_free(module)
	ssc.data_set_number( data, b'ppa_soln_mode', 0 )
	ppa_price_input =[ 0.10000000000000001 ];
	ssc.data_set_array( data, b'ppa_price_input',  ppa_price_input);
	ssc.data_set_number( data, b'ppa_escalation', 1 )
	federal_tax_rate =[ 21 ];
	ssc.data_set_array( data, b'federal_tax_rate',  federal_tax_rate);
	state_tax_rate =[ 7 ];
	ssc.data_set_array( data, b'state_tax_rate',  state_tax_rate);
	ssc.data_set_number( data, b'property_tax_rate', 0 )
	ssc.data_set_number( data, b'prop_tax_cost_assessed_percent', 100 )
	ssc.data_set_number( data, b'prop_tax_assessed_decline', 0 )
	ssc.data_set_number( data, b'real_discount_rate', 6.4000000000000004 )
	ssc.data_set_number( data, b'inflation_rate', 2.5 )
	ssc.data_set_number( data, b'insurance_rate', 0.5 )
	om_fixed =[ 0 ];
	ssc.data_set_array( data, b'om_fixed',  om_fixed);
	ssc.data_set_number( data, b'om_fixed_escal', 0 )
	om_production =[ 0 ];
	ssc.data_set_array( data, b'om_production',  om_production);
	ssc.data_set_number( data, b'om_production_escal', 0 )
	om_capacity =[ 17 ];
	ssc.data_set_array( data, b'om_capacity',  om_capacity);
	ssc.data_set_number( data, b'om_capacity_escal', 0 )
	om_fuel_cost =[ 0 ];
	ssc.data_set_array( data, b'om_fuel_cost',  om_fuel_cost);
	ssc.data_set_number( data, b'om_fuel_cost_escal', 0 )
	om_replacement_cost1 =[ 500 ];
	ssc.data_set_array( data, b'om_replacement_cost1',  om_replacement_cost1);
	ssc.data_set_number( data, b'om_replacement_cost_escal', 0 )
	ssc.data_set_number( data, b'reserves_interest', 1.75 )
	ssc.data_set_number( data, b'equip1_reserve_cost', 0.25 )
	ssc.data_set_number( data, b'equip1_reserve_freq', 12 )
	ssc.data_set_number( data, b'equip2_reserve_cost', 0 )
	ssc.data_set_number( data, b'equip2_reserve_freq', 15 )
	ssc.data_set_number( data, b'equip3_reserve_cost', 0 )
	ssc.data_set_number( data, b'equip3_reserve_freq', 3 )
	ssc.data_set_number( data, b'equip_reserve_depr_sta', 0 )
	ssc.data_set_number( data, b'equip_reserve_depr_fed', 0 )
	ssc.data_set_number( data, b'itc_fed_amount', 0 )
	ssc.data_set_number( data, b'itc_fed_amount_deprbas_fed', 1 )
	ssc.data_set_number( data, b'itc_fed_amount_deprbas_sta', 1 )
	ssc.data_set_number( data, b'itc_sta_amount', 0 )
	ssc.data_set_number( data, b'itc_sta_amount_deprbas_fed', 0 )
	ssc.data_set_number( data, b'itc_sta_amount_deprbas_sta', 0 )
	ssc.data_set_number( data, b'itc_fed_percent', 26 )
	ssc.data_set_number( data, b'itc_fed_percent_maxvalue', 9.9999999999999998e+37 )
	ssc.data_set_number( data, b'itc_fed_percent_deprbas_fed', 1 )
	ssc.data_set_number( data, b'itc_fed_percent_deprbas_sta', 1 )
	ssc.data_set_number( data, b'itc_sta_percent', 0 )
	ssc.data_set_number( data, b'itc_sta_percent_maxvalue', 9.9999999999999998e+37 )
	ssc.data_set_number( data, b'itc_sta_percent_deprbas_fed', 0 )
	ssc.data_set_number( data, b'itc_sta_percent_deprbas_sta', 0 )
	ptc_fed_amount =[ 0 ];
	ssc.data_set_array( data, b'ptc_fed_amount',  ptc_fed_amount);
	ssc.data_set_number( data, b'ptc_fed_term', 10 )
	ssc.data_set_number( data, b'ptc_fed_escal', 0 )
	ptc_sta_amount =[ 0 ];
	ssc.data_set_array( data, b'ptc_sta_amount',  ptc_sta_amount);
	ssc.data_set_number( data, b'ptc_sta_term', 10 )
	ssc.data_set_number( data, b'ptc_sta_escal', 0 )
	ssc.data_set_number( data, b'depr_alloc_macrs_5_percent', 90 )
	ssc.data_set_number( data, b'depr_alloc_macrs_15_percent', 1.5 )
	ssc.data_set_number( data, b'depr_alloc_sl_5_percent', 0 )
	ssc.data_set_number( data, b'depr_alloc_sl_15_percent', 2.5 )
	ssc.data_set_number( data, b'depr_alloc_sl_20_percent', 3 )
	ssc.data_set_number( data, b'depr_alloc_sl_39_percent', 0 )
	ssc.data_set_number( data, b'depr_alloc_custom_percent', 0 )
	depr_custom_schedule =[ 0 ];
	ssc.data_set_array( data, b'depr_custom_schedule',  depr_custom_schedule);
	ssc.data_set_number( data, b'depr_bonus_sta', 0 )
	ssc.data_set_number( data, b'depr_bonus_sta_macrs_5', 1 )
	ssc.data_set_number( data, b'depr_bonus_sta_macrs_15', 1 )
	ssc.data_set_number( data, b'depr_bonus_sta_sl_5', 0 )
	ssc.data_set_number( data, b'depr_bonus_sta_sl_15', 0 )
	ssc.data_set_number( data, b'depr_bonus_sta_sl_20', 0 )
	ssc.data_set_number( data, b'depr_bonus_sta_sl_39', 0 )
	ssc.data_set_number( data, b'depr_bonus_sta_custom', 0 )
	ssc.data_set_number( data, b'depr_bonus_fed', 0 )
	ssc.data_set_number( data, b'depr_bonus_fed_macrs_5', 1 )
	ssc.data_set_number( data, b'depr_bonus_fed_macrs_15', 1 )
	ssc.data_set_number( data, b'depr_bonus_fed_sl_5', 0 )
	ssc.data_set_number( data, b'depr_bonus_fed_sl_15', 0 )
	ssc.data_set_number( data, b'depr_bonus_fed_sl_20', 0 )
	ssc.data_set_number( data, b'depr_bonus_fed_sl_39', 0 )
	ssc.data_set_number( data, b'depr_bonus_fed_custom', 0 )
	ssc.data_set_number( data, b'depr_itc_sta_macrs_5', 1 )
	ssc.data_set_number( data, b'depr_itc_sta_macrs_15', 0 )
	ssc.data_set_number( data, b'depr_itc_sta_sl_5', 0 )
	ssc.data_set_number( data, b'depr_itc_sta_sl_15', 0 )
	ssc.data_set_number( data, b'depr_itc_sta_sl_20', 0 )
	ssc.data_set_number( data, b'depr_itc_sta_sl_39', 0 )
	ssc.data_set_number( data, b'depr_itc_sta_custom', 0 )
	ssc.data_set_number( data, b'depr_itc_fed_macrs_5', 1 )
	ssc.data_set_number( data, b'depr_itc_fed_macrs_15', 0 )
	ssc.data_set_number( data, b'depr_itc_fed_sl_5', 0 )
	ssc.data_set_number( data, b'depr_itc_fed_sl_15', 0 )
	ssc.data_set_number( data, b'depr_itc_fed_sl_20', 0 )
	ssc.data_set_number( data, b'depr_itc_fed_sl_39', 0 )
	ssc.data_set_number( data, b'depr_itc_fed_custom', 0 )
	ssc.data_set_number( data, b'ibi_fed_amount', 0 )
	ssc.data_set_number( data, b'ibi_fed_amount_tax_fed', 1 )
	ssc.data_set_number( data, b'ibi_fed_amount_tax_sta', 1 )
	ssc.data_set_number( data, b'ibi_fed_amount_deprbas_fed', 0 )
	ssc.data_set_number( data, b'ibi_fed_amount_deprbas_sta', 0 )
	ssc.data_set_number( data, b'ibi_sta_amount', 0 )
	ssc.data_set_number( data, b'ibi_sta_amount_tax_fed', 1 )
	ssc.data_set_number( data, b'ibi_sta_amount_tax_sta', 1 )
	ssc.data_set_number( data, b'ibi_sta_amount_deprbas_fed', 0 )
	ssc.data_set_number( data, b'ibi_sta_amount_deprbas_sta', 0 )
	ssc.data_set_number( data, b'ibi_uti_amount', 0 )
	ssc.data_set_number( data, b'ibi_uti_amount_tax_fed', 1 )
	ssc.data_set_number( data, b'ibi_uti_amount_tax_sta', 1 )
	ssc.data_set_number( data, b'ibi_uti_amount_deprbas_fed', 0 )
	ssc.data_set_number( data, b'ibi_uti_amount_deprbas_sta', 0 )
	ssc.data_set_number( data, b'ibi_oth_amount', 0 )
	ssc.data_set_number( data, b'ibi_oth_amount_tax_fed', 1 )
	ssc.data_set_number( data, b'ibi_oth_amount_tax_sta', 1 )
	ssc.data_set_number( data, b'ibi_oth_amount_deprbas_fed', 0 )
	ssc.data_set_number( data, b'ibi_oth_amount_deprbas_sta', 0 )
	ssc.data_set_number( data, b'ibi_fed_percent', 0 )
	ssc.data_set_number( data, b'ibi_fed_percent_maxvalue', 9.9999999999999998e+37 )
	ssc.data_set_number( data, b'ibi_fed_percent_tax_fed', 1 )
	ssc.data_set_number( data, b'ibi_fed_percent_tax_sta', 1 )
	ssc.data_set_number( data, b'ibi_fed_percent_deprbas_fed', 0 )
	ssc.data_set_number( data, b'ibi_fed_percent_deprbas_sta', 0 )
	ssc.data_set_number( data, b'ibi_sta_percent', 0 )
	ssc.data_set_number( data, b'ibi_sta_percent_maxvalue', 9.9999999999999998e+37 )
	ssc.data_set_number( data, b'ibi_sta_percent_tax_fed', 1 )
	ssc.data_set_number( data, b'ibi_sta_percent_tax_sta', 1 )
	ssc.data_set_number( data, b'ibi_sta_percent_deprbas_fed', 0 )
	ssc.data_set_number( data, b'ibi_sta_percent_deprbas_sta', 0 )
	ssc.data_set_number( data, b'ibi_uti_percent', 0 )
	ssc.data_set_number( data, b'ibi_uti_percent_maxvalue', 9.9999999999999998e+37 )
	ssc.data_set_number( data, b'ibi_uti_percent_tax_fed', 1 )
	ssc.data_set_number( data, b'ibi_uti_percent_tax_sta', 1 )
	ssc.data_set_number( data, b'ibi_uti_percent_deprbas_fed', 0 )
	ssc.data_set_number( data, b'ibi_uti_percent_deprbas_sta', 0 )
	ssc.data_set_number( data, b'ibi_oth_percent', 0 )
	ssc.data_set_number( data, b'ibi_oth_percent_maxvalue', 9.9999999999999998e+37 )
	ssc.data_set_number( data, b'ibi_oth_percent_tax_fed', 1 )
	ssc.data_set_number( data, b'ibi_oth_percent_tax_sta', 1 )
	ssc.data_set_number( data, b'ibi_oth_percent_deprbas_fed', 0 )
	ssc.data_set_number( data, b'ibi_oth_percent_deprbas_sta', 0 )
	ssc.data_set_number( data, b'cbi_fed_amount', 0 )
	ssc.data_set_number( data, b'cbi_fed_maxvalue', 9.9999999999999998e+37 )
	ssc.data_set_number( data, b'cbi_fed_tax_fed', 1 )
	ssc.data_set_number( data, b'cbi_fed_tax_sta', 1 )
	ssc.data_set_number( data, b'cbi_fed_deprbas_fed', 0 )
	ssc.data_set_number( data, b'cbi_fed_deprbas_sta', 0 )
	ssc.data_set_number( data, b'cbi_sta_amount', 0 )
	ssc.data_set_number( data, b'cbi_sta_maxvalue', 9.9999999999999998e+37 )
	ssc.data_set_number( data, b'cbi_sta_tax_fed', 1 )
	ssc.data_set_number( data, b'cbi_sta_tax_sta', 1 )
	ssc.data_set_number( data, b'cbi_sta_deprbas_fed', 0 )
	ssc.data_set_number( data, b'cbi_sta_deprbas_sta', 0 )
	ssc.data_set_number( data, b'cbi_uti_amount', 0 )
	ssc.data_set_number( data, b'cbi_uti_maxvalue', 9.9999999999999998e+37 )
	ssc.data_set_number( data, b'cbi_uti_tax_fed', 1 )
	ssc.data_set_number( data, b'cbi_uti_tax_sta', 1 )
	ssc.data_set_number( data, b'cbi_uti_deprbas_fed', 0 )
	ssc.data_set_number( data, b'cbi_uti_deprbas_sta', 0 )
	ssc.data_set_number( data, b'cbi_oth_amount', 0 )
	ssc.data_set_number( data, b'cbi_oth_maxvalue', 9.9999999999999998e+37 )
	ssc.data_set_number( data, b'cbi_oth_tax_fed', 1 )
	ssc.data_set_number( data, b'cbi_oth_tax_sta', 1 )
	ssc.data_set_number( data, b'cbi_oth_deprbas_fed', 0 )
	ssc.data_set_number( data, b'cbi_oth_deprbas_sta', 0 )
	pbi_fed_amount =[ 0 ];
	ssc.data_set_array( data, b'pbi_fed_amount',  pbi_fed_amount);
	ssc.data_set_number( data, b'pbi_fed_term', 0 )
	ssc.data_set_number( data, b'pbi_fed_escal', 0 )
	ssc.data_set_number( data, b'pbi_fed_tax_fed', 1 )
	ssc.data_set_number( data, b'pbi_fed_tax_sta', 1 )
	pbi_sta_amount =[ 0 ];
	ssc.data_set_array( data, b'pbi_sta_amount',  pbi_sta_amount);
	ssc.data_set_number( data, b'pbi_sta_term', 0 )
	ssc.data_set_number( data, b'pbi_sta_escal', 0 )
	ssc.data_set_number( data, b'pbi_sta_tax_fed', 1 )
	ssc.data_set_number( data, b'pbi_sta_tax_sta', 1 )
	pbi_uti_amount =[ 0 ];
	ssc.data_set_array( data, b'pbi_uti_amount',  pbi_uti_amount);
	ssc.data_set_number( data, b'pbi_uti_term', 0 )
	ssc.data_set_number( data, b'pbi_uti_escal', 0 )
	ssc.data_set_number( data, b'pbi_uti_tax_fed', 1 )
	ssc.data_set_number( data, b'pbi_uti_tax_sta', 1 )
	pbi_oth_amount =[ 0 ];
	ssc.data_set_array( data, b'pbi_oth_amount',  pbi_oth_amount);
	ssc.data_set_number( data, b'pbi_oth_term', 0 )
	ssc.data_set_number( data, b'pbi_oth_escal', 0 )
	ssc.data_set_number( data, b'pbi_oth_tax_fed', 1 )
	ssc.data_set_number( data, b'pbi_oth_tax_sta', 1 )
	ssc.data_set_number( data, b'term_tenor', 18 )
	ssc.data_set_number( data, b'term_int_rate', 7 )
	ssc.data_set_number( data, b'dscr', 1.3 )
	ssc.data_set_number( data, b'dscr_reserve_months', 6 )
	ssc.data_set_number( data, b'debt_percent', 60 )
	ssc.data_set_number( data, b'debt_option', 1 )
	ssc.data_set_number( data, b'payment_option', 0 )
	ssc.data_set_number( data, b'cost_debt_closing', 450000 )
	ssc.data_set_number( data, b'cost_debt_fee', 2.75 )
	ssc.data_set_number( data, b'months_working_reserve', 6 )
	ssc.data_set_number( data, b'months_receivables_reserve', 0 )
	ssc.data_set_number( data, b'cost_other_financing', 0 )
	ssc.data_set_number( data, b'flip_target_percent', 11 )
	ssc.data_set_number( data, b'flip_target_year', 20 )
	ssc.data_set_number( data, b'pbi_fed_for_ds', 0 )
	ssc.data_set_number( data, b'pbi_sta_for_ds', 0 )
	ssc.data_set_number( data, b'pbi_uti_for_ds', 0 )
	ssc.data_set_number( data, b'pbi_oth_for_ds', 0 )
	degradation =[ 0.5 ];
	ssc.data_set_array( data, b'degradation',  degradation);
	roe_input =[ 0 ];
	ssc.data_set_array( data, b'roe_input',  roe_input);
	ssc.data_set_number( data, b'loan_moratorium', 0 )
	ssc.data_set_number( data, b'system_use_recapitalization', 0 )
	ssc.data_set_number( data, b'ppa_multiplier_model', 0 )
	ssc.data_set_array_from_csv( data, b'dispatch_factors_ts', b'C:/Users/fcomo/OneDrive/Escritorio/Proyecto_Tesis/PV/dispatch_factors_ts.csv');
	ssc.data_set_number( data, b'dispatch_factor1', 1 )
	ssc.data_set_number( data, b'dispatch_factor2', 1 )
	ssc.data_set_number( data, b'dispatch_factor3', 1 )
	ssc.data_set_number( data, b'dispatch_factor4', 1 )
	ssc.data_set_number( data, b'dispatch_factor5', 1 )
	ssc.data_set_number( data, b'dispatch_factor6', 1 )
	ssc.data_set_number( data, b'dispatch_factor7', 1 )
	ssc.data_set_number( data, b'dispatch_factor8', 1 )
	ssc.data_set_number( data, b'dispatch_factor9', 1 )
	dispatch_sched_weekday = [[ 1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1 ], [ 1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1 ], [ 1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1 ], [ 1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1 ], [ 1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1 ], [ 1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1 ], [ 1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1 ], [ 1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1 ], [ 1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1 ], [ 1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1 ], [ 1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1 ], [ 1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1 ]];
	ssc.data_set_matrix( data, b'dispatch_sched_weekday', dispatch_sched_weekday );
	dispatch_sched_weekend = [[ 1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1 ], [ 1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1 ], [ 1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1 ], [ 1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1 ], [ 1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1 ], [ 1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1 ], [ 1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1 ], [ 1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1 ], [ 1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1 ], [ 1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1 ], [ 1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1 ], [ 1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1 ]];
	ssc.data_set_matrix( data, b'dispatch_sched_weekend', dispatch_sched_weekend );
	ssc.data_set_number( data, b'total_installed_cost', 102764496 )
	ssc.data_set_number( data, b'salvage_percentage', 0 )
	ssc.data_set_number( data, b'construction_financing_cost', 2055289.875 )
	ssc.data_set_number( data, b'depr_stabas_method', 1 )
	ssc.data_set_number( data, b'depr_fedbas_method', 1 )
	ssc.data_set_number( data, b'cp_capacity_payment_esc', 0 )
	ssc.data_set_number( data, b'cp_capacity_payment_type', 0 )
	cp_capacity_payment_amount =[ 0 ];
	ssc.data_set_array( data, b'cp_capacity_payment_amount',  cp_capacity_payment_amount);
	cp_capacity_credit_percent =[ 0 ];
	ssc.data_set_array( data, b'cp_capacity_credit_percent',  cp_capacity_credit_percent);
	ssc.data_set_number( data, b'cp_system_nameplate', 100 )
	ssc.data_set_number( data, b'cp_battery_nameplate', 0 )
	grid_curtailment_price =[ 0 ];
	ssc.data_set_array( data, b'grid_curtailment_price',  grid_curtailment_price);
	ssc.data_set_number( data, b'grid_curtailment_price_esc', 0 )
	module = ssc.module_create(b'singleowner')	
	ssc.module_exec_set_print( 0 );
	if ssc.module_exec(module, data) == 0:
		print ('singleowner simulation error')
		idx = 1
		msg = ssc.module_log(module, 0)
		while (msg != None):
			print ('	: ' + msg.decode("utf - 8"))
			msg = ssc.module_log(module, idx)
			idx = idx + 1
		SystemExit( "Simulation Error" );
	ssc.module_free(module)
	annual_energy = ssc.data_get_number(data, b'annual_energy');
	print ('Annual energy (year 1) = ', annual_energy)
	capacity_factor = ssc.data_get_number(data, b'capacity_factor');
	print ('Capacity factor (year 1) = ', capacity_factor)
	kwh_per_kw = ssc.data_get_number(data, b'kwh_per_kw');
	print ('Energy yield (year 1) = ', kwh_per_kw)
	ppa = ssc.data_get_number(data, b'ppa');
	print ('PPA price (year 1) = ', ppa)
	lppa_nom = ssc.data_get_number(data, b'lppa_nom');
	print ('Levelized PPA price (nominal) = ', lppa_nom)
	lppa_real = ssc.data_get_number(data, b'lppa_real');
	print ('Levelized PPA price (real) = ', lppa_real)
	lcoe_nom = ssc.data_get_number(data, b'lcoe_nom');
	print ('Levelized COE (nominal) = ', lcoe_nom)
	lcoe_real = ssc.data_get_number(data, b'lcoe_real');
	print ('Levelized COE (real) = ', lcoe_real)
	project_return_aftertax_npv = ssc.data_get_number(data, b'project_return_aftertax_npv');
	print ('Net present value = ', project_return_aftertax_npv)
	flip_actual_irr = ssc.data_get_number(data, b'flip_actual_irr');
	print ('Internal rate of return (IRR) = ', flip_actual_irr)
	flip_actual_year = ssc.data_get_number(data, b'flip_actual_year');
	print ('Year IRR is achieved = ', flip_actual_year)
	project_return_aftertax_irr = ssc.data_get_number(data, b'project_return_aftertax_irr');
	print ('IRR at end of project = ', project_return_aftertax_irr)
	cost_installed = ssc.data_get_number(data, b'cost_installed');
	print ('Net capital cost = ', cost_installed)
	size_of_equity = ssc.data_get_number(data, b'size_of_equity');
	print ('Equity = ', size_of_equity)
	size_of_debt = ssc.data_get_number(data, b'size_of_debt');
	print ('Size of debt = ', size_of_debt)
	gen_pv = ssc.data_get_array(data, b'gen');
# 	print('gen= ', gen_pv) 
	ssc.data_free(data); 

plt.plot(t,gen_pv)
plt.title('Hourly system power generated')
plt.xlabel('Time')
plt.ylabel('kW')
plt.show()


Enero=np.array(gen_pv[0:744])
Febrero=np.array(gen_pv[744:1416])
Marzo=np.array(gen_pv[1416:2160])
Abril=np.array(gen_pv[2160:2880])
Mayo=np.array(gen_pv[2880:3624])
Junio=np.array(gen_pv[3624:4344])
Julio=np.array(gen_pv[4344:5088])
Agosto=np.array(gen_pv[5088:5832])
Septiembre=np.array(gen_pv[5832:6552])
Octubre=np.array(gen_pv[6552:7296])
Noviembre=np.array(gen_pv[7296:8016])
Diciembre=np.array(gen_pv[8016:8760])

Sum_Enero=sum(gen_pv[0:744]);
Sum_Febrero=sum(gen_pv[744:1416])
Sum_Marzo=sum(gen_pv[1416:2160])
Sum_Abril=sum(gen_pv[2160:2880])
Sum_Mayo=sum(gen_pv[2880:3624])
Sum_Junio=sum(gen_pv[3624:4344])
Sum_Julio=sum(gen_pv[4344:5088])
Sum_Agosto=sum(gen_pv[5088:5832])
Sum_Septiembre=sum(gen_pv[5832:6552])
Sum_Octubre=sum(gen_pv[6552:7296])
Sum_Noviembre=sum(gen_pv[7296:8016])
Sum_Diciembre=sum(gen_pv[8016:8760])

Production =[Sum_Enero, Sum_Febrero, Sum_Marzo, Sum_Abril, Sum_Mayo, Sum_Junio, Sum_Julio, Sum_Agosto, Sum_Septiembre, Sum_Octubre, Sum_Noviembre,Sum_Diciembre]

Mes=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec"]
Meses=[Enero, Febrero, Marzo, Abril, Mayo, Junio, Julio, Agosto, Septiembre, Octubre, Noviembre, Diciembre]

plt.bar(Mes,Production)
plt.title('Monthly system power generated')
plt.xlabel('Months')
plt.ylabel('kW')
plt.show()

Table_Jan=pd.DataFrame(Enero.reshape([31,24]))
Table_Feb=pd.DataFrame(Febrero.reshape([28,24]))
Table_Mar=pd.DataFrame(Marzo.reshape([31,24]))
Table_Apr=pd.DataFrame(Abril.reshape([30,24]))
Table_May=pd.DataFrame(Mayo.reshape([31,24]))
Table_Jun=pd.DataFrame(Junio.reshape([30,24]))
Table_Jul=pd.DataFrame(Julio.reshape([31,24]))
Table_Aug=pd.DataFrame(Agosto.reshape([31,24]))
Table_Sept=pd.DataFrame(Septiembre.reshape([30,24]))
Table_Oct=pd.DataFrame(Octubre.reshape([31,24]))
Table_Nov=pd.DataFrame(Noviembre.reshape([30,24]))
Table_Dec=pd.DataFrame(Diciembre.reshape([31,24]))

mean_Enero= Table_Jan.mean()

