diff --git a/db/csvs_test_examples/policy/performance_standard/geography_performance_standard_zones/1_geography_performance_standard_zones_1.csv b/db/csvs_test_examples/policy/performance_standard/geography_performance_standard_zones/1_geography_performance_standard_zones_1.csv index a50f9d2ac..1129623cd 100644 --- a/db/csvs_test_examples/policy/performance_standard/geography_performance_standard_zones/1_geography_performance_standard_zones_1.csv +++ b/db/csvs_test_examples/policy/performance_standard/geography_performance_standard_zones/1_geography_performance_standard_zones_1.csv @@ -1,3 +1,3 @@ -performance_standard_zone,allow_violation,violation_penalty_per_emission -PS_Zone1,0,0 -PS_Zone2,0,0 \ No newline at end of file +performance_standard_zone,energy_allow_violation,energy_violation_penalty_per_emission,power_allow_violation,power_violation_penalty_per_emission +PS_Zone1,0,0,0,0 +PS_Zone2,0,0,0,0 \ No newline at end of file diff --git a/db/csvs_test_examples/policy/performance_standard/system_performance_standard/1_system_performance_standard_1.csv b/db/csvs_test_examples/policy/performance_standard/system_performance_standard/1_system_performance_standard_1.csv index 6d286911a..ffb18808d 100644 --- a/db/csvs_test_examples/policy/performance_standard/system_performance_standard/1_system_performance_standard_1.csv +++ b/db/csvs_test_examples/policy/performance_standard/system_performance_standard/1_system_performance_standard_1.csv @@ -1,3 +1,3 @@ -performance_standard_zone,period,subproblem_id,stage_id,performance_standard_tco2_per_mwh -PS_Zone1,2020,1,1,0.1 -PS_Zone2,2020,1,1,0.1 \ No newline at end of file +performance_standard_zone,period,subproblem_id,stage_id,performance_standard_tco2_per_mwh,performance_standard_tco2_per_mw +PS_Zone1,2020,1,1,0.1, +PS_Zone2,2020,1,1,0.1, \ No newline at end of file diff --git a/db/csvs_test_examples/policy/performance_standard/system_performance_standard/2_system_performance_standard_power.csv b/db/csvs_test_examples/policy/performance_standard/system_performance_standard/2_system_performance_standard_power.csv new file mode 100644 index 000000000..51aae0f3a --- /dev/null +++ b/db/csvs_test_examples/policy/performance_standard/system_performance_standard/2_system_performance_standard_power.csv @@ -0,0 +1,3 @@ +performance_standard_zone,period,subproblem_id,stage_id,performance_standard_tco2_per_mwh,performance_standard_tco2_per_mw +PS_Zone1,2020,1,1,,876 +PS_Zone2,2020,1,1,,876 \ No newline at end of file diff --git a/db/csvs_test_examples/policy/performance_standard/system_performance_standard/3_system_performance_standard_both.csv b/db/csvs_test_examples/policy/performance_standard/system_performance_standard/3_system_performance_standard_both.csv new file mode 100644 index 000000000..2d99c648f --- /dev/null +++ b/db/csvs_test_examples/policy/performance_standard/system_performance_standard/3_system_performance_standard_both.csv @@ -0,0 +1,3 @@ +performance_standard_zone,period,subproblem_id,stage_id,performance_standard_tco2_per_mwh,performance_standard_tco2_per_mw +PS_Zone1,2020,1,1,0.1,876 +PS_Zone2,2020,1,1,0.1,876 \ No newline at end of file diff --git a/db/csvs_test_examples/scenarios.csv b/db/csvs_test_examples/scenarios.csv index c7733f846..5d1cf3a40 100644 --- a/db/csvs_test_examples/scenarios.csv +++ b/db/csvs_test_examples/scenarios.csv @@ -1,128 +1,128 @@ -optional_feature_or_subscenarios,test,test_w_storage,test_w_hydro,test_new_solar,test_new_binary_solar,test_new_build_storage,test_new_build_storage_cumulative_min_max,test_new_binary_build_storage,test_no_overgen_allowed,test_no_reserves,test_variable_gen_reserves,test_new_solar_carbon_cap,test_new_solar_carbon_tax,test_ramp_up_constraints,test_ramp_up_and_down_constraints,2horizons,2horizons_w_hydro,2horizons_w_hydro_and_nuclear_binary_availability,2horizons_w_hydro_w_balancing_types,2periods,2periods_gen_lin_econ_retirement,2periods_gen_bin_econ_retirement,2periods_new_build,2periods_new_build_2zones,2periods_new_build_2zones_singleBA,2periods_new_build_2zones_transmission,2periods_new_build_2zones_transmission_w_losses,2periods_new_build_2zones_transmission_w_losses_opp_dir,2periods_new_build_2zones_new_build_transmission,2periods_new_build_cumulative_min_max,2periods_new_build_rps,2periods_new_build_rps_variable_reserves,2periods_new_build_rps_variable_reserves_subhourly_adj,2periods_new_build_rps_w_rps_eligible_storage,2periods_new_build_rps_w_rps_ineligible_storage,2periods_new_build_simple_prm,test_new_solar_carbon_cap_2zones_dont_count_tx,test_new_solar_carbon_cap_2zones_tx,single_stage_prod_cost,multi_stage_prod_cost,multi_stage_prod_cost_w_hydro,single_stage_prod_cost_cycle_select,test_tx_simple,test_tx_dcopf,2periods_new_build_local_capacity,test_startup_shutdown_rates,test_no_fuels,test_variable_om_curves,test_aux_cons,2periods_new_build_rps_percent_target,single_stage_prod_cost_linked_subproblems,multi_stage_prod_cost_linked_subproblems,test_w_lf_down_percent_req,2periods_new_build_capgroups,test_markets,2periods_new_build_horizon_energy_target,2periods_new_build_period_and_horizon_energy_target,2periods_new_build_horizon_energy_target_halfyear,test_new_build_gen_var_stor_hyb,test_carbon_tax_allowance,test_min_max_build_trans,2periods_new_build_2zones_transmission_Tx1halfavail,2periods_new_build_2zones_transmission_Tx1halfavailmonthly,test_cheap_fuel_blend,test_new_solar_carbon_cap_2zones_tx_low_carbon_fuel_blend,test_cheap_fuel_blend_w_limit,test_new_solar_fuel_burn_limit,test_new_solar_fuel_burn_limit_relative,test_w_solver_options,test_carbon_tax_allowance_with_different_fuel_groups,test_performance_standard,test_tx_flow,test_new_solar_reserve_prj_contribution,test_new_solar_carbon_cap_2zones_tx_hydrogen_prod,test_new_solar_carbon_cap_2zones_tx_hydrogen_prod_new,test_new_solar_carbon_cap_dac,test_cap_factor_limits,multi_stage_prod_cost_w_markets,test_supplemental_firing,test_tx_capacity_groups,2periods_new_build_cumulative_and_vintage_min_max,2periods_new_build_fin_lifetime,2periods_new_build_simple_prm_w_energy_only,2periods_new_build_simple_prm_w_energy_only_deliv_cap_limit,test_w_storage_w_soc_penalty,test_w_storage_w_soc_last_tmp_penalty,single_stage_prod_cost_linked_subproblems_w_hydro,test_new_solar_itc,test_new_build_storage_itc,2periods_new_build_simple_prm_2loadzones,2periods_new_build_simple_prm_2loadzones_newtx_w_transfers,test_tx_targets,test_w_flex_load,2periods_new_build_simple_prm_2loadzones_newtx_w_transfers_w_costs,test_new_solar_w_relative_capacity_instead_of_potential,2periods_new_build_2zones_transmission_w_hurdle_rates,2periods_new_build_simple_prm_2loadzones_newtx_w_transfers_w_subsidies,test_new_build_storage_itc_single_superperiod,test_w_storage_starting_soc,test_w_nonfuel_emissions,test_new_solar_carbon_credits,test_performance_standard_carbon_credits,test_new_solar_carbon_tax_w_carbon_credits,test_new_solar_carbon_credits_w_sell,test_performance_standard_carbon_credits_w_cap_no_credits_mapping,single_stage_prod_cost_w_spinup_lookahead,test_new_solar_carbon_credits_w_buy,test_new_solar_carbon_credits_w_buy_and_sell,test_tx_targets_max,ra_toolkit_monte_carlo,ra_toolkit_sync,2periods_nuclear_var_cost_by_period_same,2periods_nuclear_var_cost_by_period_diff,ra_toolkit_sync_single_year -of_transmission,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,,,,,,,,1,1,,,,,1,1,,,,,,,,,,,,,,,,,1,1,1,,1,,,,,,1,1,,1,1,,,,,1,,,,,,,,,,1,1,1,,1,,1,1,,,,,1,,,1,,,,1,,,,, -of_transmission_hurdle_rates,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,, -of_simultaneous_flow_limits,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +optional_feature_or_subscenarios,test,test_w_storage,test_w_hydro,test_new_solar,test_new_binary_solar,test_new_build_storage,test_new_build_storage_cumulative_min_max,test_new_binary_build_storage,test_no_overgen_allowed,test_no_reserves,test_variable_gen_reserves,test_new_solar_carbon_cap,test_new_solar_carbon_tax,test_ramp_up_constraints,test_ramp_up_and_down_constraints,2horizons,2horizons_w_hydro,2horizons_w_hydro_and_nuclear_binary_availability,2horizons_w_hydro_w_balancing_types,2periods,2periods_gen_lin_econ_retirement,2periods_gen_bin_econ_retirement,2periods_new_build,2periods_new_build_2zones,2periods_new_build_2zones_singleBA,2periods_new_build_2zones_transmission,2periods_new_build_2zones_transmission_w_losses,2periods_new_build_2zones_transmission_w_losses_opp_dir,2periods_new_build_2zones_new_build_transmission,2periods_new_build_cumulative_min_max,2periods_new_build_rps,2periods_new_build_rps_variable_reserves,2periods_new_build_rps_variable_reserves_subhourly_adj,2periods_new_build_rps_w_rps_eligible_storage,2periods_new_build_rps_w_rps_ineligible_storage,2periods_new_build_simple_prm,test_new_solar_carbon_cap_2zones_dont_count_tx,test_new_solar_carbon_cap_2zones_tx,single_stage_prod_cost,multi_stage_prod_cost,multi_stage_prod_cost_w_hydro,single_stage_prod_cost_cycle_select,test_tx_simple,test_tx_dcopf,2periods_new_build_local_capacity,test_startup_shutdown_rates,test_no_fuels,test_variable_om_curves,test_aux_cons,2periods_new_build_rps_percent_target,single_stage_prod_cost_linked_subproblems,multi_stage_prod_cost_linked_subproblems,test_w_lf_down_percent_req,2periods_new_build_capgroups,test_markets,2periods_new_build_horizon_energy_target,2periods_new_build_period_and_horizon_energy_target,2periods_new_build_horizon_energy_target_halfyear,test_new_build_gen_var_stor_hyb,test_carbon_tax_allowance,test_min_max_build_trans,2periods_new_build_2zones_transmission_Tx1halfavail,2periods_new_build_2zones_transmission_Tx1halfavailmonthly,test_cheap_fuel_blend,test_new_solar_carbon_cap_2zones_tx_low_carbon_fuel_blend,test_cheap_fuel_blend_w_limit,test_new_solar_fuel_burn_limit,test_new_solar_fuel_burn_limit_relative,test_w_solver_options,test_carbon_tax_allowance_with_different_fuel_groups,test_performance_standard,test_tx_flow,test_new_solar_reserve_prj_contribution,test_new_solar_carbon_cap_2zones_tx_hydrogen_prod,test_new_solar_carbon_cap_2zones_tx_hydrogen_prod_new,test_new_solar_carbon_cap_dac,test_cap_factor_limits,multi_stage_prod_cost_w_markets,test_supplemental_firing,test_tx_capacity_groups,2periods_new_build_cumulative_and_vintage_min_max,2periods_new_build_fin_lifetime,2periods_new_build_simple_prm_w_energy_only,2periods_new_build_simple_prm_w_energy_only_deliv_cap_limit,test_w_storage_w_soc_penalty,test_w_storage_w_soc_last_tmp_penalty,single_stage_prod_cost_linked_subproblems_w_hydro,test_new_solar_itc,test_new_build_storage_itc,2periods_new_build_simple_prm_2loadzones,2periods_new_build_simple_prm_2loadzones_newtx_w_transfers,test_tx_targets,test_w_flex_load,2periods_new_build_simple_prm_2loadzones_newtx_w_transfers_w_costs,test_new_solar_w_relative_capacity_instead_of_potential,2periods_new_build_2zones_transmission_w_hurdle_rates,2periods_new_build_simple_prm_2loadzones_newtx_w_transfers_w_subsidies,test_new_build_storage_itc_single_superperiod,test_w_storage_starting_soc,test_w_nonfuel_emissions,test_new_solar_carbon_credits,test_performance_standard_carbon_credits,test_new_solar_carbon_tax_w_carbon_credits,test_new_solar_carbon_credits_w_sell,test_performance_standard_carbon_credits_w_cap_no_credits_mapping,single_stage_prod_cost_w_spinup_lookahead,test_new_solar_carbon_credits_w_buy,test_new_solar_carbon_credits_w_buy_and_sell,test_tx_targets_max,ra_toolkit_monte_carlo,ra_toolkit_sync,2periods_nuclear_var_cost_by_period_same,2periods_nuclear_var_cost_by_period_diff,ra_toolkit_sync_single_year,test_performance_standard_power,test_performance_standard_both +of_transmission,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,,,,,,,,1,1,,,,,1,1,,,,,,,,,,,,,,,,,1,1,1,,1,,,,,,1,1,,1,1,,,,,1,,,,,,,,,,1,1,1,,1,,1,1,,,,,1,,,1,,,,1,,,,,,1,1 +of_transmission_hurdle_rates,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,, +of_simultaneous_flow_limits,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, of_lf_reserves_up,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,"1 -",1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1, -of_lf_reserves_down,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1, -of_regulation_up,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1, -of_regulation_down,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1, -of_frequency_response,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -of_spinning_reserves,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,1 -of_period_energy_target,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,,,,,,,,,,,,,,,1,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -of_horizon_energy_target,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -of_transmission_target,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,1,,,,, -of_carbon_cap,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,1,1,,,,,,,,,,,,,,,,,,,,,1,,,,,,,1,,1,1,1,,,,,,,,,,,,,,,,1,,,,,,,,,1,,,1,1,,1,1,1,,,,, -of_track_carbon_imports,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,1,1,,,,,,,,,,,,,,,,,,,,,1,,,,,,,1,,1,1,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,1,,,,, -of_carbon_tax,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,, -of_performance_standard,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,1,,,,,,,,, -of_carbon_credits,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,,1,1,,,,,, -of_fuel_burn_limit,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -of_subsidies,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,,,,1,1,,,,,,,,,,,,,,,, -of_prm,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,,1,1,,,1,,,1,,,,,,,,,,,,,,,,, -of_local_capacity,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -of_capacity_transfers,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,1,,,1,,,,,,,,,,,,,,,,, -of_elcc_surface,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -of_deliverability,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -of_markets,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -of_tuning,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -temporal_scenario_id,1,1,1,1,1,3,3,3,1,1,1,1,1,1,1,2,2,2,2,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,1,1,4,5,5,4,1,1,6,7,1,1,1,6,8,9,1,6,1,6,6,6,3,1,6,6,6,1,1,1,1,1,1,1,1,1,1,10,10,1,1,5,1,6,6,6,6,6,1,1,8,11,12,6,6,15,1,6,1,6,14,13,1,1,1,1,1,3,1,16,3,3,15,17,18,6,6,19 -load_zone_scenario_id,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,1,1,1,1,1,1,1,2,2,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,1,1,1,1,1,2,4,1,2,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,2,2,4,1,2,1,2,2,1,1,1,1,2,1,1,2,1,1,1,4,6,6,1,1,6 -load_scenario_id,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,2,1,1,1,1,1,1,1,1,2,4,1,1,1,3,1,1,1,2,1,3,3,3,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,2,2,1,1,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,6,6,1,1,6 -project_portfolio_scenario_id,1,2,3,4,5,6,6,7,1,1,1,4,4,1,1,1,3,3,3,1,8,9,10,11,11,12,12,12,12,10,13,13,13,14,14,10,15,15,1,1,3,1,16,16,10,17,1,1,1,13,1,1,1,10,1,13,13,13,18,4,12,12,12,1,15,1,4,4,1,4,15,16,4,19,20,21,1,1,1,12,10,10,10,10,2,2,3,4,6,10,10,16,22,10,4,12,10,6,2,1,4,15,4,4,15,1,4,4,16,23,23,1,1,23 -project_operational_chars_scenario_id,1,1,1,1,1,1,1,1,1,1,2,1,1,3,4,1,5,10,6,1,1,1,1,1,1,1,1,1,1,1,1,7,7,8,8,1,1,1,7,1,9,18,1,1,1,11,12,13,14,1,7,7,1,1,1,1,1,1,1,15,1,1,1,15,16,17,1,1,1,17,16,1,1,19,19,1,20,1,21,1,1,1,1,1,22,23,7,1,1,1,1,1,1,1,1,1,1,1,24,25,1,16,1,1,16,7,1,1,1,26,26,27,28,26 -project_availability_scenario_id,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 -project_load_zone_scenario_id,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 -project_elcc_chars_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,2,,,,,,1,1,,,1,,,1,,,,,,,,,,,,,,,,, -project_specified_capacity_scenario_id,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,3,3,1,1,1,1,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,3,3,1,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,3,1,1,3,1,1,1,3,5,5,1,1,5 -project_specified_fixed_cost_scenario_id,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,2 -fuel_scenario_id,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1, -fuel_price_scenario_id,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1, -project_new_cost_scenario_id,,,,1,1,1,1,1,,,,1,1,,,,,,,,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,,,1,1,1,,,,,1,,,,1,,1,1,1,1,1,1,1,1,,1,,1,1,,1,1,1,1,1,1,1,,,,1,1,2,1,1,,,,1,1,1,1,1,,1,1,1,1,1,,,1,1,1,1,1,,1,1,1,,,,, -project_new_potential_scenario_id,,,,1,,,1,,,,,2,2,,,,,,,,,,,,,,,,,1,,,,,,,2,2,,,,,2,2,,,,,,,,,,,,,,,,2,,,,,2,,2,2,,2,2,2,1,2,2,2,,,,,3,,,,,,,1,,,,2,,,,,,,,,2,2,2,2,2,,2,2,2,,,,, -project_new_binary_build_size_scenario_id,,,,,1,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -project_capacity_group_requirement_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -project_capacity_group_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -project_relative_capacity_requirement_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,, -transmission_portfolio_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,2,,,,,,,,1,1,,,,,3,3,,,,,,,,,,,,,,,,,2,1,1,,1,,,,,,1,3,,1,1,,,,,4,,,,,,,,,,1,2,3,,2,,1,2,,,,,1,,,1,,,,3,,,,, -transmission_load_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,2,1,,,,,,,,1,1,,,,,1,1,,,,,,,,,,,,,,,,,1,1,1,,1,,,,,,1,1,,1,1,,,,,1,,,,,,,,,,1,1,1,,1,,1,1,,,,,1,,,1,,,,1,,,,, -transmission_specified_capacity_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,,,,,,,,1,1,,,,,1,1,,,,,,,,,,,,,,,,,1,1,1,,1,,,,,,1,1,,1,1,,,,,1,,,,,,,,,,1,1,1,,1,,1,1,,,,,1,,,1,,,,1,,,,, -transmission_availability_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,,,,,,,,1,1,,,,,1,1,,,,,,,,,,,,,,,,,1,2,3,,1,,,,,,1,1,,1,1,,,,,1,,,,,,,,,,1,1,1,,1,,1,1,,,,,1,,,1,,,,1,,,,, -transmission_operational_chars_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,1,3,3,1,,,,,,,,1,1,,,,,1,2,,,,,,,,,,,,,,,,,1,1,1,,1,,,,,,1,1,,1,1,,,,,1,,,,,,,,,,1,1,4,,1,,1,1,,,,,1,,,1,,,,4,,,,, -transmission_hurdle_rate_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,, -transmission_new_cost_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,1,,,1,,,1,,,,,,,,,,,,,,,,, -transmission_new_potential_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -transmission_flow_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -transmission_capacity_group_requirement_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -transmission_capacity_group_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -transmission_carbon_cap_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,1,1,,,,,,,,,,,,,,,,,,,,,1,,,,,,,1,,1,1,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,1,,,,, -transmission_simultaneous_flow_limit_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -transmission_simultaneous_flow_limit_line_group_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -lf_reserves_up_scenario_id,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1, -lf_reserves_up_ba_scenario_id,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,3,3,3,3,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,1,1,1,1,1,1,1,1,1,1,,,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1, -project_lf_reserves_up_ba_scenario_id,1,1,1,1,1,1,1,1,1,,2,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,4,4,5,5,1,5,5,1,1,5,1,5,5,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,5,5,1,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,5,1,1,5,1,1,1,5,,,1,1, -lf_reserves_down_scenario_id,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1, -lf_reserves_down_ba_scenario_id,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,3,3,3,3,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,1,1,1,1,1,1,1,1,1,1,,,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1, -project_lf_reserves_down_ba_scenario_id,1,1,1,1,1,1,1,1,1,,2,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,4,4,5,5,1,5,5,1,1,5,1,5,5,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,5,5,1,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,5,1,1,5,1,1,1,5,,,1,1, -regulation_up_scenario_id,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1, -regulation_up_ba_scenario_id,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,3,3,3,3,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,1,1,1,1,1,1,1,1,1,1,,,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1, -project_regulation_up_ba_scenario_id,1,1,1,1,1,1,1,1,1,,2,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,4,4,5,5,1,5,5,1,1,5,1,5,5,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,5,5,1,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,5,1,1,5,1,1,1,5,,,1,1, -regulation_down_scenario_id,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1, -regulation_down_ba_scenario_id,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,3,3,3,3,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,1,1,1,1,1,1,1,1,1,1,,,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1, -project_regulation_down_ba_scenario_id,1,1,1,1,1,1,1,1,1,,2,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,4,4,5,5,1,5,5,1,1,5,1,5,5,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,5,5,1,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,5,1,1,5,1,1,1,5,,,1,1, -frequency_response_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -frequency_response_ba_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -project_frequency_response_ba_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -spinning_reserves_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,2,,,2 -spinning_reserves_ba_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,2,,,2 -project_spinning_reserves_ba_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,2,,,2 -period_energy_target_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,,,,,,,,,,,,,,,2,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -horizon_energy_target_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -energy_target_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,,,,,,,,,,,,,,,1,,,,,,1,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -project_energy_target_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,2,,,,,,,,,,,,,,,1,,,,,,1,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -transmission_target_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,2,,,,, -transmission_target_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,1,,,,, -tx_line_transmission_target_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,1,,,,, -carbon_cap_target_scenario_id,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,1,1,,,,,,,,,,,,,,,,,,,,,1,,,,,,,1,,2,2,1,,,,,,,,,,,,,,,,1,,,,,,,,,1,,,1,1,,1,1,1,,,,, -carbon_cap_zone_scenario_id,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,1,1,,,,,,,,,,,,,,,,,,,,,1,,,,,,,1,,1,1,1,,,,,,,,,,,,,,,,1,,,,,,,,,1,,,1,1,,1,1,1,,,,, -project_carbon_cap_zone_scenario_id,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,1,1,,,,,,,,,,,,,,,,,,,,,1,,,,,,,1,,1,1,1,,,,,,,,,,,,,,,,1,,,,,,,,,1,,,1,1,,1,1,1,,,,, -carbon_tax_scenario_id,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,, -carbon_tax_zone_scenario_id,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,, -project_carbon_tax_zone_scenario_id,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,, -project_carbon_tax_allowance_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -performance_standard_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,1,,,,,,,,, -performance_standard_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,1,,,,,,,,, -project_performance_standard_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,1,,,,,,,,, -carbon_credits_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,,1,1,,,,,, -carbon_cap_zones_carbon_credits_zones_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,1,,,1,1,,,,,, -performance_standard_zones_carbon_credits_zones_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,1,,,,,,,,, -carbon_tax_zones_carbon_credits_zones_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,, -project_carbon_credits_generation_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,,1,1,,,,,, -project_carbon_credits_purchase_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,,1,1,,,,,, -project_carbon_credits_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,,1,1,,,,,, -carbon_credits_params_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,2,1,,3,4,,,,,, -fuel_burn_limit_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,2,,,,,,3,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -fuel_burn_limit_ba_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -project_fuel_burn_limit_ba_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -subsidy_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,,,,2,3,,,,,,,,,,,,,,,, -prm_requirement_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,,1,1,,,1,,,1,,,,,,,,,,,,,,,,, -prm_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,,1,2,,,2,,,2,,,,,,,,,,,,,,,,, -prm_capacity_transfer_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,1,,,1,,,,,,,,,,,,,,,,, -prm_capacity_transfer_params_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,2,,,1,,,,,,,,,,,,,,,,, -project_prm_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,,1,2,,,2,,,2,,,,,,,,,,,,,,,,, -transmission_prm_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,1,,,1,,,,,,,,,,,,,,,,, -prm_deliverability_cost_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -prm_deliverability_existing_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -prm_deliverability_potential_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -project_prm_deliverability_multipliers_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -elcc_surface_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -local_capacity_requirement_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -local_capacity_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -project_local_capacity_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -project_local_capacity_chars_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -tuning_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -solver_options_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -market_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -load_zone_market_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -market_price_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -market_volume_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, \ No newline at end of file +",1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,,1,1 +of_lf_reserves_down,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,,1,1 +of_regulation_up,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,,1,1 +of_regulation_down,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,,1,1 +of_frequency_response,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +of_spinning_reserves,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,1,, +of_period_energy_target,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,,,,,,,,,,,,,,,1,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +of_horizon_energy_target,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +of_transmission_target,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,1,,,,,,, +of_carbon_cap,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,1,1,,,,,,,,,,,,,,,,,,,,,1,,,,,,,1,,1,1,1,,,,,,,,,,,,,,,,1,,,,,,,,,1,,,1,1,,1,1,1,,,,,,, +of_track_carbon_imports,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,1,1,,,,,,,,,,,,,,,,,,,,,1,,,,,,,1,,1,1,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,1,,,,,,, +of_carbon_tax,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,, +of_performance_standard,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,1,,,,,,,,,,1,1 +of_carbon_credits,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,,1,1,,,,,,,, +of_fuel_burn_limit,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +of_subsidies,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,,,,1,1,,,,,,,,,,,,,,,,,, +of_prm,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,,1,1,,,1,,,1,,,,,,,,,,,,,,,,,,, +of_local_capacity,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +of_capacity_transfers,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,1,,,1,,,,,,,,,,,,,,,,,,, +of_elcc_surface,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +of_deliverability,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +of_markets,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +of_tuning,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +temporal_scenario_id,1,1,1,1,1,3,3,3,1,1,1,1,1,1,1,2,2,2,2,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,1,1,4,5,5,4,1,1,6,7,1,1,1,6,8,9,1,6,1,6,6,6,3,1,6,6,6,1,1,1,1,1,1,1,1,1,1,10,10,1,1,5,1,6,6,6,6,6,1,1,8,11,12,6,6,15,1,6,1,6,14,13,1,1,1,1,1,3,1,16,3,3,15,17,18,6,6,19,1,1 +load_zone_scenario_id,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,1,1,1,1,1,1,1,2,2,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,1,1,1,1,1,2,4,1,2,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,2,2,4,1,2,1,2,2,1,1,1,1,2,1,1,2,1,1,1,4,6,6,1,1,6,2,2 +load_scenario_id,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,2,1,1,1,1,1,1,1,1,2,4,1,1,1,3,1,1,1,2,1,3,3,3,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,2,2,1,1,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,6,6,1,1,6,1,1 +project_portfolio_scenario_id,1,2,3,4,5,6,6,7,1,1,1,4,4,1,1,1,3,3,3,1,8,9,10,11,11,12,12,12,12,10,13,13,13,14,14,10,15,15,1,1,3,1,16,16,10,17,1,1,1,13,1,1,1,10,1,13,13,13,18,4,12,12,12,1,15,1,4,4,1,4,15,16,4,19,20,21,1,1,1,12,10,10,10,10,2,2,3,4,6,10,10,16,22,10,4,12,10,6,2,1,4,15,4,4,15,1,4,4,16,23,23,1,1,23,15,15 +project_operational_chars_scenario_id,1,1,1,1,1,1,1,1,1,1,2,1,1,3,4,1,5,10,6,1,1,1,1,1,1,1,1,1,1,1,1,7,7,8,8,1,1,1,7,1,9,18,1,1,1,11,12,13,14,1,7,7,1,1,1,1,1,1,1,15,1,1,1,15,16,17,1,1,1,17,16,1,1,19,19,1,20,1,21,1,1,1,1,1,22,23,7,1,1,1,1,1,1,1,1,1,1,1,24,25,1,16,1,1,16,7,1,1,1,26,26,27,28,26,16,16 +project_availability_scenario_id,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 +project_load_zone_scenario_id,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 +project_elcc_chars_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,2,,,,,,1,1,,,1,,,1,,,,,,,,,,,,,,,,,,, +project_specified_capacity_scenario_id,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,3,3,1,1,1,1,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,3,3,1,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,3,1,1,3,1,1,1,3,5,5,1,1,5,3,3 +project_specified_fixed_cost_scenario_id,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,2,1,1 +fuel_scenario_id,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,,1,1 +fuel_price_scenario_id,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,,1,1 +project_new_cost_scenario_id,,,,1,1,1,1,1,,,,1,1,,,,,,,,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,,,1,1,1,,,,,1,,,,1,,1,1,1,1,1,1,1,1,,1,,1,1,,1,1,1,1,1,1,1,,,,1,1,2,1,1,,,,1,1,1,1,1,,1,1,1,1,1,,,1,1,1,1,1,,1,1,1,,,,,,1,1 +project_new_potential_scenario_id,,,,1,,,1,,,,,2,2,,,,,,,,,,,,,,,,,1,,,,,,,2,2,,,,,2,2,,,,,,,,,,,,,,,,2,,,,,2,,2,2,,2,2,2,1,2,2,2,,,,,3,,,,,,,1,,,,2,,,,,,,,,2,2,2,2,2,,2,2,2,,,,,,2,2 +project_new_binary_build_size_scenario_id,,,,,1,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +project_capacity_group_requirement_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +project_capacity_group_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +project_relative_capacity_requirement_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,, +transmission_portfolio_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,2,,,,,,,,1,1,,,,,3,3,,,,,,,,,,,,,,,,,2,1,1,,1,,,,,,1,3,,1,1,,,,,4,,,,,,,,,,1,2,3,,2,,1,2,,,,,1,,,1,,,,3,,,,,,1,1 +transmission_load_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,2,1,,,,,,,,1,1,,,,,1,1,,,,,,,,,,,,,,,,,1,1,1,,1,,,,,,1,1,,1,1,,,,,1,,,,,,,,,,1,1,1,,1,,1,1,,,,,1,,,1,,,,1,,,,,,1,1 +transmission_specified_capacity_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,,,,,,,,1,1,,,,,1,1,,,,,,,,,,,,,,,,,1,1,1,,1,,,,,,1,1,,1,1,,,,,1,,,,,,,,,,1,1,1,,1,,1,1,,,,,1,,,1,,,,1,,,,,,1,1 +transmission_availability_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,,,,,,,,1,1,,,,,1,1,,,,,,,,,,,,,,,,,1,2,3,,1,,,,,,1,1,,1,1,,,,,1,,,,,,,,,,1,1,1,,1,,1,1,,,,,1,,,1,,,,1,,,,,,1,1 +transmission_operational_chars_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,1,3,3,1,,,,,,,,1,1,,,,,1,2,,,,,,,,,,,,,,,,,1,1,1,,1,,,,,,1,1,,1,1,,,,,1,,,,,,,,,,1,1,4,,1,,1,1,,,,,1,,,1,,,,4,,,,,,1,1 +transmission_hurdle_rate_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,, +transmission_new_cost_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,1,,,1,,,1,,,,,,,,,,,,,,,,,,, +transmission_new_potential_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +transmission_flow_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +transmission_capacity_group_requirement_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +transmission_capacity_group_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +transmission_carbon_cap_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,1,1,,,,,,,,,,,,,,,,,,,,,1,,,,,,,1,,1,1,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,1,,,,,,, +transmission_simultaneous_flow_limit_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +transmission_simultaneous_flow_limit_line_group_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +lf_reserves_up_scenario_id,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,,1,1 +lf_reserves_up_ba_scenario_id,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,3,3,3,3,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,1,1,1,1,1,1,1,1,1,1,,,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,,1,1 +project_lf_reserves_up_ba_scenario_id,1,1,1,1,1,1,1,1,1,,2,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,4,4,5,5,1,5,5,1,1,5,1,5,5,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,5,5,1,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,5,1,1,5,1,1,1,5,,,1,1,,5,5 +lf_reserves_down_scenario_id,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,,1,1 +lf_reserves_down_ba_scenario_id,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,3,3,3,3,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,1,1,1,1,1,1,1,1,1,1,,,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,,1,1 +project_lf_reserves_down_ba_scenario_id,1,1,1,1,1,1,1,1,1,,2,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,4,4,5,5,1,5,5,1,1,5,1,5,5,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,5,5,1,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,5,1,1,5,1,1,1,5,,,1,1,,5,5 +regulation_up_scenario_id,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,,1,1 +regulation_up_ba_scenario_id,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,3,3,3,3,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,1,1,1,1,1,1,1,1,1,1,,,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,,1,1 +project_regulation_up_ba_scenario_id,1,1,1,1,1,1,1,1,1,,2,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,4,4,5,5,1,5,5,1,1,5,1,5,5,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,5,5,1,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,5,1,1,5,1,1,1,5,,,1,1,,5,5 +regulation_down_scenario_id,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,,1,1 +regulation_down_ba_scenario_id,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,3,3,3,3,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,1,1,1,1,1,1,1,1,1,1,,,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,,1,1 +project_regulation_down_ba_scenario_id,1,1,1,1,1,1,1,1,1,,2,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,4,4,5,5,1,5,5,1,1,5,1,5,5,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,5,5,1,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,5,1,1,5,1,1,1,5,,,1,1,,5,5 +frequency_response_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +frequency_response_ba_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +project_frequency_response_ba_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +spinning_reserves_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,2,,,2,, +spinning_reserves_ba_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,2,,,2,, +project_spinning_reserves_ba_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,2,,,2,, +period_energy_target_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,,,,,,,,,,,,,,,2,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +horizon_energy_target_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +energy_target_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,,,,,,,,,,,,,,,1,,,,,,1,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +project_energy_target_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,2,,,,,,,,,,,,,,,1,,,,,,1,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +transmission_target_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,2,,,,,,, +transmission_target_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,1,,,,,,, +tx_line_transmission_target_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,1,,,,,,, +carbon_cap_target_scenario_id,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,1,1,,,,,,,,,,,,,,,,,,,,,1,,,,,,,1,,2,2,1,,,,,,,,,,,,,,,,1,,,,,,,,,1,,,1,1,,1,1,1,,,,,,, +carbon_cap_zone_scenario_id,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,1,1,,,,,,,,,,,,,,,,,,,,,1,,,,,,,1,,1,1,1,,,,,,,,,,,,,,,,1,,,,,,,,,1,,,1,1,,1,1,1,,,,,,, +project_carbon_cap_zone_scenario_id,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,1,1,,,,,,,,,,,,,,,,,,,,,1,,,,,,,1,,1,1,1,,,,,,,,,,,,,,,,1,,,,,,,,,1,,,1,1,,1,1,1,,,,,,, +carbon_tax_scenario_id,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,, +carbon_tax_zone_scenario_id,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,, +project_carbon_tax_zone_scenario_id,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,, +project_carbon_tax_allowance_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +performance_standard_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,1,,,,,,,,,,2,3 +performance_standard_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,1,,,,,,,,,,1,1 +project_performance_standard_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,1,,,,,,,,,,1,1 +carbon_credits_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,,1,1,,,,,,,, +carbon_cap_zones_carbon_credits_zones_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,1,,,1,1,,,,,,,, +performance_standard_zones_carbon_credits_zones_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,1,,,,,,,,,,, +carbon_tax_zones_carbon_credits_zones_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,, +project_carbon_credits_generation_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,,1,1,,,,,,,, +project_carbon_credits_purchase_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,,1,1,,,,,,,, +project_carbon_credits_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,,1,1,,,,,,,, +carbon_credits_params_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,2,1,,3,4,,,,,,,, +fuel_burn_limit_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,2,,,,,,3,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +fuel_burn_limit_ba_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +project_fuel_burn_limit_ba_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +subsidy_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,,,,2,3,,,,,,,,,,,,,,,,,, +prm_requirement_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,,1,1,,,1,,,1,,,,,,,,,,,,,,,,,,, +prm_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,,1,2,,,2,,,2,,,,,,,,,,,,,,,,,,, +prm_capacity_transfer_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,1,,,1,,,,,,,,,,,,,,,,,,, +prm_capacity_transfer_params_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,2,,,1,,,,,,,,,,,,,,,,,,, +project_prm_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,,1,2,,,2,,,2,,,,,,,,,,,,,,,,,,, +transmission_prm_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,1,,,1,,,,,,,,,,,,,,,,,,, +prm_deliverability_cost_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +prm_deliverability_existing_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +prm_deliverability_potential_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +project_prm_deliverability_multipliers_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +elcc_surface_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +local_capacity_requirement_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +local_capacity_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +project_local_capacity_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +project_local_capacity_chars_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +tuning_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +solver_options_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +market_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +load_zone_market_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +market_price_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +market_volume_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, diff --git a/db/db_schema.sql b/db/db_schema.sql index 172bde5b0..a66e881e6 100644 --- a/db/db_schema.sql +++ b/db/db_schema.sql @@ -701,8 +701,10 @@ CREATE TABLE inputs_geography_performance_standard_zones ( performance_standard_zone_scenario_id INTEGER, performance_standard_zone VARCHAR(32), - allow_violation INTEGER DEFAULT 0, -- constraint is hard by default - violation_penalty_per_emission FLOAT DEFAULT 0, + energy_allow_violation INTEGER DEFAULT 0, -- constraint is hard by default + energy_violation_penalty_per_emission FLOAT DEFAULT 0, + power_allow_violation INTEGER DEFAULT 0, -- constraint is hard by default + power_violation_penalty_per_emission FLOAT DEFAULT 0, PRIMARY KEY (performance_standard_zone_scenario_id, performance_standard_zone), FOREIGN KEY (performance_standard_zone_scenario_id) REFERENCES @@ -2104,6 +2106,7 @@ CREATE TABLE inputs_project_carbon_credits -- Depends on performance standard zone geography -- This table can include all project with NULLs for projects not -- contributing or just the contributing projects +-- Projects can contribute to multiple performance standard zones DROP TABLE IF EXISTS subscenarios_project_performance_standard_zones; CREATE TABLE subscenarios_project_performance_standard_zones ( @@ -2118,7 +2121,7 @@ CREATE TABLE inputs_project_performance_standard_zones project_performance_standard_zone_scenario_id INTEGER, project VARCHAR(64), performance_standard_zone VARCHAR(32), - PRIMARY KEY (project_performance_standard_zone_scenario_id, project), + PRIMARY KEY (project_performance_standard_zone_scenario_id, project, performance_standard_zone), FOREIGN KEY (project_performance_standard_zone_scenario_id) REFERENCES subscenarios_project_performance_standard_zones (project_performance_standard_zone_scenario_id) ); @@ -3655,6 +3658,7 @@ CREATE TABLE inputs_system_performance_standard subproblem_id INTEGER, stage_id INTEGER, performance_standard_tco2_per_mwh FLOAT, + performance_standard_tco2_per_mw FLOAT, PRIMARY KEY (performance_standard_scenario_id, performance_standard_zone, period, subproblem_id, stage_id), @@ -5520,10 +5524,13 @@ CREATE TABLE results_system_performance_standard discount_factor FLOAT, number_years_represented FLOAT, performance_standard_tco2_per_mwh FLOAT, + performance_standard_tco2_per_mw FLOAT, performance_standard_project_emissions_tco2 FLOAT, project_credits FLOAT, performance_standard_project_energy_mwh FLOAT, - performance_standard_overage_tco2 FLOAT, + performance_standard_project_capacity_mw FLOAT, + performance_standard_energy_overage_tco2 FLOAT, + performance_standard_power_overage_tco2 FLOAT, PRIMARY KEY (scenario_id, performance_standard_zone, weather_iteration, hydro_iteration, availability_iteration, subproblem_id, stage_id, period) @@ -5775,54 +5782,55 @@ DROP TABLE IF EXISTS results_system_ra; DROP TABLE IF EXISTS results_system_costs; CREATE TABLE results_system_costs ( - scenario_id INTEGER, + scenario_id INTEGER, --period INTEGER, - weather_iteration INTEGER, - hydro_iteration INTEGER, - availability_iteration INTEGER, - subproblem_id INTEGER, - stage_id INTEGER, - Total_Capacity_Costs Float, - Total_Fixed_Costs FLOAT, - Total_Tx_Capacity_Costs Float, - Total_Tx_Fixed_Costs FLOAT, - Total_PRM_Deliverability_Group_Costs FLOAT, - Total_Variable_OM_Cost Float, - Total_Fuel_Cost Float, - Total_Startup_Cost Float, - Total_Shutdown_Cost Float, - Total_Operational_Violation_Cost FLOAT, - Total_Curtailment_Cost FLOAT, - Total_Hurdle_Cost Float, - Total_Load_Balance_Penalty_Costs Float, - Frequency_Response_Penalty_Costs Float, - Frequency_Response_Partial_Penalty_Costs FLOAT, - LF_Reserves_Down_Penalty_Costs Float, - LF_Reserves_Up_Penalty_Costs Float, - Regulation_Down_Penalty_Costs Float, - Regulation_Up_Penalty_Costs Float, - Spinning_Reserves_Penalty_Costs Float, - Total_PRM_Shortage_Penalty_Costs Float, - Total_Local_Capacity_Shortage_Penalty_Costs Float, - Total_Carbon_Cap_Balance_Penalty_Costs Float, - Total_Carbon_Tax_Cost FLOAT, - Total_Performance_Standard_Balance_Penalty_Costs Float, - Total_Period_Energy_Target_Balance_Penalty_Costs FLOAT, - Total_Horizon_Energy_Target_Balance_Penalty_Costs FLOAT, - Total_Transmission_Target_Balance_Penalty_Costs FLOAT, - Total_Dynamic_ELCC_Tuning_Cost Float, - Total_Import_Carbon_Tuning_Cost Float, - Total_Market_Net_Cost FLOAT, - Total_Export_Penalty_Cost FLOAT, - Total_Horizon_Fuel_Burn_Min_Abs_Penalty_Costs FLOAT, - Total_Horizon_Fuel_Burn_Max_Abs_Penalty_Costs FLOAT, - Total_Horizon_Fuel_Burn_Max_Rel_Penalty_Costs FLOAT, - Total_SOC_Penalty_Cost FLOAT, - Total_SOC_Penalty_Last_Tmp_Cost FLOAT, - Total_Subsidies FLOAT, - Total_Capacity_Transfer_Costs FLOAT, - Total_Carbon_Credit_Revenue FLOAT, - Total_Carbon_Credit_Costs FLOAT, + weather_iteration INTEGER, + hydro_iteration INTEGER, + availability_iteration INTEGER, + subproblem_id INTEGER, + stage_id INTEGER, + Total_Capacity_Costs Float, + Total_Fixed_Costs FLOAT, + Total_Tx_Capacity_Costs Float, + Total_Tx_Fixed_Costs FLOAT, + Total_PRM_Deliverability_Group_Costs FLOAT, + Total_Variable_OM_Cost Float, + Total_Fuel_Cost Float, + Total_Startup_Cost Float, + Total_Shutdown_Cost Float, + Total_Operational_Violation_Cost FLOAT, + Total_Curtailment_Cost FLOAT, + Total_Hurdle_Cost Float, + Total_Load_Balance_Penalty_Costs Float, + Frequency_Response_Penalty_Costs Float, + Frequency_Response_Partial_Penalty_Costs FLOAT, + LF_Reserves_Down_Penalty_Costs Float, + LF_Reserves_Up_Penalty_Costs Float, + Regulation_Down_Penalty_Costs Float, + Regulation_Up_Penalty_Costs Float, + Spinning_Reserves_Penalty_Costs Float, + Total_PRM_Shortage_Penalty_Costs Float, + Total_Local_Capacity_Shortage_Penalty_Costs Float, + Total_Carbon_Cap_Balance_Penalty_Costs Float, + Total_Carbon_Tax_Cost FLOAT, + Total_Performance_Standard_Energy_Balance_Penalty_Costs Float, + Total_Performance_Standard_Power_Balance_Penalty_Costs Float, + Total_Period_Energy_Target_Balance_Penalty_Costs FLOAT, + Total_Horizon_Energy_Target_Balance_Penalty_Costs FLOAT, + Total_Transmission_Target_Balance_Penalty_Costs FLOAT, + Total_Dynamic_ELCC_Tuning_Cost Float, + Total_Import_Carbon_Tuning_Cost Float, + Total_Market_Net_Cost FLOAT, + Total_Export_Penalty_Cost FLOAT, + Total_Horizon_Fuel_Burn_Min_Abs_Penalty_Costs FLOAT, + Total_Horizon_Fuel_Burn_Max_Abs_Penalty_Costs FLOAT, + Total_Horizon_Fuel_Burn_Max_Rel_Penalty_Costs FLOAT, + Total_SOC_Penalty_Cost FLOAT, + Total_SOC_Penalty_Last_Tmp_Cost FLOAT, + Total_Subsidies FLOAT, + Total_Capacity_Transfer_Costs FLOAT, + Total_Carbon_Credit_Revenue FLOAT, + Total_Carbon_Credit_Costs FLOAT, PRIMARY KEY (scenario_id, weather_iteration, hydro_iteration, availability_iteration, subproblem_id, stage_id) ); diff --git a/db/io.db b/db/io.db new file mode 100644 index 000000000..3d2840b9c Binary files /dev/null and b/db/io.db differ diff --git a/examples/test_performance_standard/inputs/performance_standard.tab b/examples/test_performance_standard/inputs/performance_standard.tab index 324d9f7d5..4731cf00b 100644 --- a/examples/test_performance_standard/inputs/performance_standard.tab +++ b/examples/test_performance_standard/inputs/performance_standard.tab @@ -1,3 +1,3 @@ -performance_standard_zone period performance_standard_tco2_per_mwh -PS_Zone1 2020 0.1 -PS_Zone2 2020 0.1 +performance_standard_zone period performance_standard_tco2_per_mwh performance_standard_tco2_per_mw +PS_Zone1 2020 0.1 . +PS_Zone2 2020 0.1 . diff --git a/examples/test_performance_standard/inputs/performance_standard_zones.tab b/examples/test_performance_standard/inputs/performance_standard_zones.tab index 57da091f0..cf472c65d 100644 --- a/examples/test_performance_standard/inputs/performance_standard_zones.tab +++ b/examples/test_performance_standard/inputs/performance_standard_zones.tab @@ -1,3 +1,3 @@ -performance_standard_zone allow_violation violation_penalty_per_emission -PS_Zone1 0 0.0 -PS_Zone2 0 0.0 +performance_standard_zone energy_allow_violation energy_violation_penalty_per_emission power_allow_violation power_violation_penalty_per_emission +PS_Zone1 0 0.0 0 0.0 +PS_Zone2 0 0.0 0 0.0 diff --git a/examples/test_performance_standard/inputs/project_performance_standard_zones.tab b/examples/test_performance_standard/inputs/project_performance_standard_zones.tab new file mode 100644 index 000000000..8b0a7a5a2 --- /dev/null +++ b/examples/test_performance_standard/inputs/project_performance_standard_zones.tab @@ -0,0 +1,3 @@ +project performance_standard_zone +Gas_CCGT PS_Zone1 +Gas_CT PS_Zone2 diff --git a/examples/test_performance_standard/inputs/projects.tab b/examples/test_performance_standard/inputs/projects.tab index 60e15ff6e..2eadee6c9 100644 --- a/examples/test_performance_standard/inputs/projects.tab +++ b/examples/test_performance_standard/inputs/projects.tab @@ -1,8 +1,8 @@ -project capacity_type availability_type operational_type balancing_type_project technology load_zone variable_om_cost_per_mwh min_stable_level_fraction unit_size_mw startup_cost_per_mw shutdown_cost_per_mw startup_fuel_mmbtu_per_mw startup_plus_ramp_up_rate shutdown_plus_ramp_down_rate ramp_up_when_on_rate ramp_down_when_on_rate ramp_up_violation_penalty ramp_down_violation_penalty min_up_time_hours min_up_time_violation_penalty min_down_time_hours min_down_time_violation_penalty allow_startup_shutdown_power storage_efficiency charging_efficiency discharging_efficiency charging_capacity_multiplier discharging_capacity_multiplier minimum_duration_hours maximum_duration_hours aux_consumption_frac_capacity aux_consumption_frac_power last_commitment_stage curtailment_cost_per_pwh powerunithour_per_fuelunit soc_penalty_cost_per_energyunit soc_last_tmp_penalty_cost_per_energyunit partial_availability_threshold nonfuel_carbon_emissions_per_mwh lf_reserves_up_ba lf_reserves_up_derate lf_reserves_down_ba lf_reserves_down_derate regulation_up_ba regulation_up_derate regulation_down_ba regulation_down_derate lf_reserves_up_ramp_rate lf_reserves_down_ramp_rate regulation_up_ramp_rate regulation_down_ramp_rate performance_standard_zone -Coal gen_spec exogenous gen_commit_cap day Coal Zone1 1.0 0.4 6.0 1.0 0.0 . . . . . . . . . . . . . . . . . . . . . 2 . . . . . . . . . . Zone1 . Zone1 . . . . . . -Gas_CCGT gen_spec exogenous gen_commit_cap day Gas Zone1 2.0 0.4 6.0 1.0 2.0 . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . Zone1 . Zone1 . Zone1 . Zone1 . . . . . PS_Zone1 -Gas_CCGT_z2 gen_spec exogenous gen_commit_cap day Gas Zone2 2.0 0.4 6.0 1.0 2.0 . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . -Gas_CT gen_spec exogenous gen_commit_cap day Gas Zone1 2.0 0.4 6.0 0.0 1.0 . . . . . . . . . . . . . . . . . . . . . 3 . . . . . . . . . . . . . . . . . . PS_Zone2 -Nuclear gen_spec exogenous gen_must_run day Nuclear Zone1 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -Solar gen_new_lin exogenous gen_var day Solar Zone1 0.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -Wind gen_spec exogenous gen_var day Wind Zone1 0.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +project capacity_type availability_type operational_type balancing_type_project technology load_zone variable_om_cost_per_mwh min_stable_level_fraction unit_size_mw startup_cost_per_mw shutdown_cost_per_mw startup_fuel_mmbtu_per_mw startup_plus_ramp_up_rate shutdown_plus_ramp_down_rate ramp_up_when_on_rate ramp_down_when_on_rate ramp_up_violation_penalty ramp_down_violation_penalty min_up_time_hours min_up_time_violation_penalty min_down_time_hours min_down_time_violation_penalty allow_startup_shutdown_power storage_efficiency charging_efficiency discharging_efficiency charging_capacity_multiplier discharging_capacity_multiplier minimum_duration_hours maximum_duration_hours aux_consumption_frac_capacity aux_consumption_frac_power last_commitment_stage curtailment_cost_per_pwh powerunithour_per_fuelunit soc_penalty_cost_per_energyunit soc_last_tmp_penalty_cost_per_energyunit partial_availability_threshold nonfuel_carbon_emissions_per_mwh lf_reserves_up_ba lf_reserves_up_derate lf_reserves_down_ba lf_reserves_down_derate regulation_up_ba regulation_up_derate regulation_down_ba regulation_down_derate lf_reserves_up_ramp_rate lf_reserves_down_ramp_rate regulation_up_ramp_rate regulation_down_ramp_rate +Coal gen_spec exogenous gen_commit_cap day Coal Zone1 1.0 0.4 6.0 1.0 0.0 . . . . . . . . . . . . . . . . . . . . . 2 . . . . . . . . . . Zone1 . Zone1 . . . . . +Gas_CCGT gen_spec exogenous gen_commit_cap day Gas Zone1 2.0 0.4 6.0 1.0 2.0 . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . Zone1 . Zone1 . Zone1 . Zone1 . . . . . +Gas_CCGT_z2 gen_spec exogenous gen_commit_cap day Gas Zone2 2.0 0.4 6.0 1.0 2.0 . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . +Gas_CT gen_spec exogenous gen_commit_cap day Gas Zone1 2.0 0.4 6.0 0.0 1.0 . . . . . . . . . . . . . . . . . . . . . 3 . . . . . . . . . . . . . . . . . . +Nuclear gen_spec exogenous gen_must_run day Nuclear Zone1 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +Solar gen_new_lin exogenous gen_var day Solar Zone1 0.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +Wind gen_spec exogenous gen_var day Wind Zone1 0.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . diff --git a/examples/test_performance_standard_both/features.csv b/examples/test_performance_standard_both/features.csv new file mode 100644 index 000000000..89548bfa5 --- /dev/null +++ b/examples/test_performance_standard_both/features.csv @@ -0,0 +1,7 @@ +features +transmission +lf_reserves_up +lf_reserves_down +regulation_up +regulation_down +performance_standard diff --git a/examples/test_performance_standard_both/inputs/fuel_prices.tab b/examples/test_performance_standard_both/inputs/fuel_prices.tab new file mode 100644 index 000000000..bf0dc0aa4 --- /dev/null +++ b/examples/test_performance_standard_both/inputs/fuel_prices.tab @@ -0,0 +1,9 @@ +fuel period month fuel_price_per_mmbtu +Coal 2020 1 4.0 +Coal 2020 2 4.0 +Gas 2020 1 5.0 +Gas 2020 2 5.0 +Negative_Carbon_Fuel 2020 1 6.0 +Negative_Carbon_Fuel 2020 2 6.0 +Uranium 2020 1 2.0 +Uranium 2020 2 2.0 diff --git a/examples/test_performance_standard_both/inputs/fuels.tab b/examples/test_performance_standard_both/inputs/fuels.tab new file mode 100644 index 000000000..7f0e5515e --- /dev/null +++ b/examples/test_performance_standard_both/inputs/fuels.tab @@ -0,0 +1,5 @@ +fuel co2_intensity_tons_per_mmbtu fuel_group +Coal 0.09552 Solid +Gas 0.05306 Gas +Negative_Carbon_Fuel -0.1 Gas +Uranium 0.0 Other diff --git a/examples/test_performance_standard_both/inputs/heat_rate_curves.tab b/examples/test_performance_standard_both/inputs/heat_rate_curves.tab new file mode 100644 index 000000000..9247cbd2c --- /dev/null +++ b/examples/test_performance_standard_both/inputs/heat_rate_curves.tab @@ -0,0 +1,10 @@ +project period load_point_fraction average_heat_rate_mmbtu_per_mwh +Coal 0 0.4 1250.0 +Coal 0 1.0 506.0 +Gas_CCGT 0 0.5 506.0 +Gas_CCGT 0 1.0 256.0 +Gas_CCGT_z2 0 0.5 506.0 +Gas_CCGT_z2 0 1.0 256.0 +Gas_CT 0 0.4 208.33333 +Gas_CT 0 1.0 88.13333 +Nuclear 0 1.0 1666.67 diff --git a/examples/test_performance_standard_both/inputs/horizon_timepoints.tab b/examples/test_performance_standard_both/inputs/horizon_timepoints.tab new file mode 100644 index 000000000..ba1741348 --- /dev/null +++ b/examples/test_performance_standard_both/inputs/horizon_timepoints.tab @@ -0,0 +1,3 @@ +horizon balancing_type_horizon timepoint +202001 day 20200101 +202001 day 20200102 diff --git a/examples/test_performance_standard_both/inputs/horizons.tab b/examples/test_performance_standard_both/inputs/horizons.tab new file mode 100644 index 000000000..169518ded --- /dev/null +++ b/examples/test_performance_standard_both/inputs/horizons.tab @@ -0,0 +1,2 @@ +horizon balancing_type_horizon boundary +202001 day circular diff --git a/examples/test_performance_standard_both/inputs/lf_reserves_down_tmp_requirement.tab b/examples/test_performance_standard_both/inputs/lf_reserves_down_tmp_requirement.tab new file mode 100644 index 000000000..891ff1859 --- /dev/null +++ b/examples/test_performance_standard_both/inputs/lf_reserves_down_tmp_requirement.tab @@ -0,0 +1,3 @@ +ba timepoint requirement +Zone1 20200101 1.0 +Zone1 20200102 2.0 diff --git a/examples/test_performance_standard_both/inputs/lf_reserves_up_tmp_requirement.tab b/examples/test_performance_standard_both/inputs/lf_reserves_up_tmp_requirement.tab new file mode 100644 index 000000000..891ff1859 --- /dev/null +++ b/examples/test_performance_standard_both/inputs/lf_reserves_up_tmp_requirement.tab @@ -0,0 +1,3 @@ +ba timepoint requirement +Zone1 20200101 1.0 +Zone1 20200102 2.0 diff --git a/examples/test_performance_standard_both/inputs/load_following_down_balancing_areas.tab b/examples/test_performance_standard_both/inputs/load_following_down_balancing_areas.tab new file mode 100644 index 000000000..7e4fdfbf2 --- /dev/null +++ b/examples/test_performance_standard_both/inputs/load_following_down_balancing_areas.tab @@ -0,0 +1,2 @@ +balancing_area allow_violation violation_penalty_per_mw reserve_to_energy_adjustment +Zone1 1 999999999.0 . diff --git a/examples/test_performance_standard_both/inputs/load_following_up_balancing_areas.tab b/examples/test_performance_standard_both/inputs/load_following_up_balancing_areas.tab new file mode 100644 index 000000000..7e4fdfbf2 --- /dev/null +++ b/examples/test_performance_standard_both/inputs/load_following_up_balancing_areas.tab @@ -0,0 +1,2 @@ +balancing_area allow_violation violation_penalty_per_mw reserve_to_energy_adjustment +Zone1 1 999999999.0 . diff --git a/examples/test_performance_standard_both/inputs/load_mw.tab b/examples/test_performance_standard_both/inputs/load_mw.tab new file mode 100644 index 000000000..d5dd92d56 --- /dev/null +++ b/examples/test_performance_standard_both/inputs/load_mw.tab @@ -0,0 +1,5 @@ +LOAD_ZONES timepoint load_mw +Zone1 20200101 10.0 +Zone1 20200102 20.0 +Zone2 20200101 10.0 +Zone2 20200102 10.0 diff --git a/examples/test_performance_standard_both/inputs/load_zones.tab b/examples/test_performance_standard_both/inputs/load_zones.tab new file mode 100644 index 000000000..25f6402b2 --- /dev/null +++ b/examples/test_performance_standard_both/inputs/load_zones.tab @@ -0,0 +1,3 @@ +load_zone allow_overgeneration overgeneration_penalty_per_mw allow_unserved_energy unserved_energy_penalty_per_mwh unserved_energy_limit_mwh max_unserved_load_penalty_per_mw max_unserved_load_limit_mw export_penalty_cost_per_mwh +Zone1 1 99999999.0 1 99999999.0 . 0.0 . 0.0 +Zone2 1 99999999.0 1 99999999.0 . 0.0 . 0.0 diff --git a/examples/test_performance_standard_both/inputs/new_build_generator_vintage_costs.tab b/examples/test_performance_standard_both/inputs/new_build_generator_vintage_costs.tab new file mode 100644 index 000000000..61847973f --- /dev/null +++ b/examples/test_performance_standard_both/inputs/new_build_generator_vintage_costs.tab @@ -0,0 +1,2 @@ +project vintage operational_lifetime_yrs fixed_cost_per_mw_yr financial_lifetime_yrs annualized_real_cost_per_mw_yr +Solar 2020 30.0 0.0 30.0 100.0 diff --git a/examples/test_performance_standard_both/inputs/new_build_potentials.tab b/examples/test_performance_standard_both/inputs/new_build_potentials.tab new file mode 100644 index 000000000..e98d2be54 --- /dev/null +++ b/examples/test_performance_standard_both/inputs/new_build_potentials.tab @@ -0,0 +1,2 @@ +project period min_new_build_power max_new_build_power min_capacity_power max_capacity_power min_new_build_energy max_new_build_energy min_capacity_energy max_capacity_energy +Solar 2020 . . 0.0 2.0 . . . . diff --git a/examples/test_performance_standard_both/inputs/performance_standard.tab b/examples/test_performance_standard_both/inputs/performance_standard.tab new file mode 100644 index 000000000..d99a82ce7 --- /dev/null +++ b/examples/test_performance_standard_both/inputs/performance_standard.tab @@ -0,0 +1,3 @@ +performance_standard_zone period performance_standard_tco2_per_mwh performance_standard_tco2_per_mw +PS_Zone1 2020 0.1 876.0 +PS_Zone2 2020 0.1 876.0 diff --git a/examples/test_performance_standard_both/inputs/performance_standard_zones.tab b/examples/test_performance_standard_both/inputs/performance_standard_zones.tab new file mode 100644 index 000000000..cf472c65d --- /dev/null +++ b/examples/test_performance_standard_both/inputs/performance_standard_zones.tab @@ -0,0 +1,3 @@ +performance_standard_zone energy_allow_violation energy_violation_penalty_per_emission power_allow_violation power_violation_penalty_per_emission +PS_Zone1 0 0.0 0 0.0 +PS_Zone2 0 0.0 0 0.0 diff --git a/examples/test_performance_standard_both/inputs/periods.tab b/examples/test_performance_standard_both/inputs/periods.tab new file mode 100644 index 000000000..cd509b3ba --- /dev/null +++ b/examples/test_performance_standard_both/inputs/periods.tab @@ -0,0 +1,2 @@ +period discount_factor period_start_year period_end_year hours_in_period_timepoints +2020 1.0 2020.0 2021.0 8760.0 diff --git a/examples/test_performance_standard_both/inputs/project_fuels.tab b/examples/test_performance_standard_both/inputs/project_fuels.tab new file mode 100644 index 000000000..31de6ccfd --- /dev/null +++ b/examples/test_performance_standard_both/inputs/project_fuels.tab @@ -0,0 +1,7 @@ +project fuel min_fraction_in_fuel_blend max_fraction_in_fuel_blend +Coal Coal . . +Gas_CCGT Gas 0.0 1.0 +Gas_CCGT Negative_Carbon_Fuel 0.0 1.0 +Gas_CCGT_z2 Gas . . +Gas_CT Gas . . +Nuclear Uranium . . diff --git a/examples/test_performance_standard_both/inputs/project_performance_standard_zones.tab b/examples/test_performance_standard_both/inputs/project_performance_standard_zones.tab new file mode 100644 index 000000000..8b0a7a5a2 --- /dev/null +++ b/examples/test_performance_standard_both/inputs/project_performance_standard_zones.tab @@ -0,0 +1,3 @@ +project performance_standard_zone +Gas_CCGT PS_Zone1 +Gas_CT PS_Zone2 diff --git a/examples/test_performance_standard_both/inputs/projects.tab b/examples/test_performance_standard_both/inputs/projects.tab new file mode 100644 index 000000000..2eadee6c9 --- /dev/null +++ b/examples/test_performance_standard_both/inputs/projects.tab @@ -0,0 +1,8 @@ +project capacity_type availability_type operational_type balancing_type_project technology load_zone variable_om_cost_per_mwh min_stable_level_fraction unit_size_mw startup_cost_per_mw shutdown_cost_per_mw startup_fuel_mmbtu_per_mw startup_plus_ramp_up_rate shutdown_plus_ramp_down_rate ramp_up_when_on_rate ramp_down_when_on_rate ramp_up_violation_penalty ramp_down_violation_penalty min_up_time_hours min_up_time_violation_penalty min_down_time_hours min_down_time_violation_penalty allow_startup_shutdown_power storage_efficiency charging_efficiency discharging_efficiency charging_capacity_multiplier discharging_capacity_multiplier minimum_duration_hours maximum_duration_hours aux_consumption_frac_capacity aux_consumption_frac_power last_commitment_stage curtailment_cost_per_pwh powerunithour_per_fuelunit soc_penalty_cost_per_energyunit soc_last_tmp_penalty_cost_per_energyunit partial_availability_threshold nonfuel_carbon_emissions_per_mwh lf_reserves_up_ba lf_reserves_up_derate lf_reserves_down_ba lf_reserves_down_derate regulation_up_ba regulation_up_derate regulation_down_ba regulation_down_derate lf_reserves_up_ramp_rate lf_reserves_down_ramp_rate regulation_up_ramp_rate regulation_down_ramp_rate +Coal gen_spec exogenous gen_commit_cap day Coal Zone1 1.0 0.4 6.0 1.0 0.0 . . . . . . . . . . . . . . . . . . . . . 2 . . . . . . . . . . Zone1 . Zone1 . . . . . +Gas_CCGT gen_spec exogenous gen_commit_cap day Gas Zone1 2.0 0.4 6.0 1.0 2.0 . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . Zone1 . Zone1 . Zone1 . Zone1 . . . . . +Gas_CCGT_z2 gen_spec exogenous gen_commit_cap day Gas Zone2 2.0 0.4 6.0 1.0 2.0 . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . +Gas_CT gen_spec exogenous gen_commit_cap day Gas Zone1 2.0 0.4 6.0 0.0 1.0 . . . . . . . . . . . . . . . . . . . . . 3 . . . . . . . . . . . . . . . . . . +Nuclear gen_spec exogenous gen_must_run day Nuclear Zone1 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +Solar gen_new_lin exogenous gen_var day Solar Zone1 0.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +Wind gen_spec exogenous gen_var day Wind Zone1 0.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . diff --git a/examples/test_performance_standard_both/inputs/regulation_down_balancing_areas.tab b/examples/test_performance_standard_both/inputs/regulation_down_balancing_areas.tab new file mode 100644 index 000000000..7e4fdfbf2 --- /dev/null +++ b/examples/test_performance_standard_both/inputs/regulation_down_balancing_areas.tab @@ -0,0 +1,2 @@ +balancing_area allow_violation violation_penalty_per_mw reserve_to_energy_adjustment +Zone1 1 999999999.0 . diff --git a/examples/test_performance_standard_both/inputs/regulation_down_tmp_requirement.tab b/examples/test_performance_standard_both/inputs/regulation_down_tmp_requirement.tab new file mode 100644 index 000000000..891ff1859 --- /dev/null +++ b/examples/test_performance_standard_both/inputs/regulation_down_tmp_requirement.tab @@ -0,0 +1,3 @@ +ba timepoint requirement +Zone1 20200101 1.0 +Zone1 20200102 2.0 diff --git a/examples/test_performance_standard_both/inputs/regulation_up_balancing_areas.tab b/examples/test_performance_standard_both/inputs/regulation_up_balancing_areas.tab new file mode 100644 index 000000000..7e4fdfbf2 --- /dev/null +++ b/examples/test_performance_standard_both/inputs/regulation_up_balancing_areas.tab @@ -0,0 +1,2 @@ +balancing_area allow_violation violation_penalty_per_mw reserve_to_energy_adjustment +Zone1 1 999999999.0 . diff --git a/examples/test_performance_standard_both/inputs/regulation_up_tmp_requirement.tab b/examples/test_performance_standard_both/inputs/regulation_up_tmp_requirement.tab new file mode 100644 index 000000000..891ff1859 --- /dev/null +++ b/examples/test_performance_standard_both/inputs/regulation_up_tmp_requirement.tab @@ -0,0 +1,3 @@ +ba timepoint requirement +Zone1 20200101 1.0 +Zone1 20200102 2.0 diff --git a/examples/test_performance_standard_both/inputs/spec_capacity_period_params.tab b/examples/test_performance_standard_both/inputs/spec_capacity_period_params.tab new file mode 100644 index 000000000..af93611f2 --- /dev/null +++ b/examples/test_performance_standard_both/inputs/spec_capacity_period_params.tab @@ -0,0 +1,7 @@ +project period specified_capacity_mw hyb_gen_specified_capacity_mw hyb_stor_specified_capacity_mw specified_capacity_mwh fuel_production_capacity_fuelunitperhour fuel_release_capacity_fuelunitperhour fuel_storage_capacity_fuelunit fixed_cost_per_mw_yr hyb_gen_fixed_cost_per_mw_yr hyb_stor_fixed_cost_per_mw_yr fixed_cost_per_mwh_yr fuel_production_capacity_fixed_cost_per_fuelunitperhour_yr fuel_release_capacity_fixed_cost_per_fuelunitperhour_yr fuel_storage_capacity_fixed_cost_per_fuelunit_yr +Coal 2020 6.0 0.0 +Gas_CCGT 2020 6.0 0.0 +Gas_CCGT_z2 2020 12.0 0.0 +Gas_CT 2020 6.0 0.0 +Nuclear 2020 6.0 0.0 +Wind 2020 2.0 0.0 diff --git a/examples/test_performance_standard_both/inputs/specified_transmission_line_capacities.tab b/examples/test_performance_standard_both/inputs/specified_transmission_line_capacities.tab new file mode 100644 index 000000000..bfb595597 --- /dev/null +++ b/examples/test_performance_standard_both/inputs/specified_transmission_line_capacities.tab @@ -0,0 +1,2 @@ +transmission_line period specified_tx_min_mw specified_tx_max_mw fixed_cost_per_mw_yr +Tx1 2020 -10.0 10.0 . diff --git a/examples/test_performance_standard_both/inputs/timepoints.tab b/examples/test_performance_standard_both/inputs/timepoints.tab new file mode 100644 index 000000000..841f55837 --- /dev/null +++ b/examples/test_performance_standard_both/inputs/timepoints.tab @@ -0,0 +1,3 @@ +timepoint period timepoint_weight number_of_hours_in_timepoint previous_stage_timepoint_map month day_of_month hour_of_day +20200101 2020 4380.0 1 . 1 . 1.0 +20200102 2020 4380.0 1 . 1 . 2.0 diff --git a/examples/test_performance_standard_both/inputs/transmission_lines.tab b/examples/test_performance_standard_both/inputs/transmission_lines.tab new file mode 100644 index 000000000..805b59e43 --- /dev/null +++ b/examples/test_performance_standard_both/inputs/transmission_lines.tab @@ -0,0 +1,2 @@ +transmission_line tx_capacity_type tx_availability_type tx_operational_type load_zone_from load_zone_to tx_simple_loss_factor reactance_ohms +Tx1 tx_spec exogenous tx_simple Zone1 Zone2 . . diff --git a/examples/test_performance_standard_both/inputs/variable_generator_profiles.tab b/examples/test_performance_standard_both/inputs/variable_generator_profiles.tab new file mode 100644 index 000000000..d06d39e88 --- /dev/null +++ b/examples/test_performance_standard_both/inputs/variable_generator_profiles.tab @@ -0,0 +1,5 @@ +project timepoint cap_factor +Solar 20200101 0.05 +Solar 20200102 1.0 +Wind 20200101 0.9 +Wind 20200102 0.5 diff --git a/examples/test_performance_standard_both/results/objective_function_value.txt b/examples/test_performance_standard_both/results/objective_function_value.txt new file mode 100644 index 000000000..35efd53b1 --- /dev/null +++ b/examples/test_performance_standard_both/results/objective_function_value.txt @@ -0,0 +1 @@ +-3592014754469.91 \ No newline at end of file diff --git a/examples/test_performance_standard_both/results/solver_status.txt b/examples/test_performance_standard_both/results/solver_status.txt new file mode 100644 index 000000000..b5754e203 --- /dev/null +++ b/examples/test_performance_standard_both/results/solver_status.txt @@ -0,0 +1 @@ +ok \ No newline at end of file diff --git a/examples/test_performance_standard_both/results/summary_results.txt b/examples/test_performance_standard_both/results/summary_results.txt new file mode 100644 index 000000000..2eb195d2e --- /dev/null +++ b/examples/test_performance_standard_both/results/summary_results.txt @@ -0,0 +1,20 @@ +##### SUMMARY RESULTS FOR SCENARIO *test_performance_standard_both* ##### + +### CAPACITY RESULTS ### + +--> New Generation Capacity <-- + New Capacity (MW) +load_zone technology period +Zone1 Solar 2020 2.00 + +### OPERATIONAL RESULTS ### + +--> Energy Production <-- + Annual Energy (MWh) % Total Power +load_zone period technology +Zone1 2020 Coal 18,688.00 14.05 + Gas 40,296.00 30.30 + Nuclear 52,560.00 39.52 + Solar 9,198.00 6.92 + Wind 12,264.00 9.22 +Zone2 2020 Gas 85,118.00 100.00 diff --git a/examples/test_performance_standard_both/results/termination_condition.txt b/examples/test_performance_standard_both/results/termination_condition.txt new file mode 100644 index 000000000..644457f4c --- /dev/null +++ b/examples/test_performance_standard_both/results/termination_condition.txt @@ -0,0 +1 @@ +optimal \ No newline at end of file diff --git a/examples/test_performance_standard_both/scenario_description.csv b/examples/test_performance_standard_both/scenario_description.csv new file mode 100644 index 000000000..7bc0b83c2 --- /dev/null +++ b/examples/test_performance_standard_both/scenario_description.csv @@ -0,0 +1,127 @@ +scenario_id,116 +scenario_name,test_performance_standard_both +of_transmission,1 +of_transmission_hurdle_rates, +of_simultaneous_flow_limits, +of_lf_reserves_up,1 +of_lf_reserves_down,1 +of_regulation_up,1 +of_regulation_down,1 +of_frequency_response, +of_spinning_reserves, +of_period_energy_target, +of_horizon_energy_target, +of_transmission_target, +of_carbon_cap, +of_track_carbon_imports, +of_carbon_tax, +of_performance_standard,1 +of_carbon_credits, +of_fuel_burn_limit, +of_subsidies, +of_prm, +of_capacity_transfers, +of_deliverability, +of_elcc_surface, +of_local_capacity, +of_markets, +of_tuning, +temporal_scenario_id,1 +load_zone_scenario_id,2 +lf_reserves_up_ba_scenario_id,1 +lf_reserves_down_ba_scenario_id,1 +regulation_up_ba_scenario_id,1 +regulation_down_ba_scenario_id,1 +frequency_response_ba_scenario_id,NULL +spinning_reserves_ba_scenario_id,NULL +energy_target_zone_scenario_id,NULL +transmission_target_zone_scenario_id,NULL +carbon_cap_zone_scenario_id,NULL +carbon_tax_zone_scenario_id,NULL +performance_standard_zone_scenario_id,1 +carbon_credits_zone_scenario_id,NULL +carbon_cap_zones_carbon_credits_zones_scenario_id,NULL +performance_standard_zones_carbon_credits_zones_scenario_id,NULL +carbon_tax_zones_carbon_credits_zones_scenario_id,NULL +carbon_credits_params_scenario_id,NULL +fuel_burn_limit_ba_scenario_id,NULL +prm_zone_scenario_id,NULL +local_capacity_zone_scenario_id,NULL +market_scenario_id,NULL +project_portfolio_scenario_id,15 +project_operational_chars_scenario_id,16 +project_availability_scenario_id,1 +fuel_scenario_id,1 +project_load_zone_scenario_id,1 +project_lf_reserves_up_ba_scenario_id,5 +project_lf_reserves_down_ba_scenario_id,5 +project_regulation_up_ba_scenario_id,5 +project_regulation_down_ba_scenario_id,5 +project_frequency_response_ba_scenario_id,NULL +project_spinning_reserves_ba_scenario_id,NULL +project_energy_target_zone_scenario_id,NULL +tx_line_transmission_target_zone_scenario_id,NULL +project_carbon_cap_zone_scenario_id,NULL +project_carbon_tax_zone_scenario_id,NULL +project_carbon_tax_allowance_scenario_id,NULL +project_performance_standard_zone_scenario_id,1 +project_carbon_credits_generation_zone_scenario_id,NULL +project_carbon_credits_purchase_zone_scenario_id,NULL +project_carbon_credits_scenario_id,NULL +project_fuel_burn_limit_ba_scenario_id,NULL +project_prm_zone_scenario_id,NULL +prm_capacity_transfer_scenario_id,NULL +prm_capacity_transfer_params_scenario_id,NULL +transmission_prm_zone_scenario_id,NULL +project_elcc_chars_scenario_id,NULL +prm_deliverability_cost_scenario_id,NULL +prm_deliverability_existing_scenario_id,NULL +prm_deliverability_potential_scenario_id,NULL +project_prm_deliverability_multipliers_scenario_id,NULL +project_local_capacity_zone_scenario_id,NULL +project_local_capacity_chars_scenario_id,NULL +load_zone_market_scenario_id,NULL +project_specified_capacity_scenario_id,3 +project_specified_fixed_cost_scenario_id,1 +fuel_price_scenario_id,1 +project_new_cost_scenario_id,1 +project_new_potential_scenario_id,2 +project_new_binary_build_size_scenario_id,NULL +project_capacity_group_requirement_scenario_id,NULL +project_relative_capacity_requirement_scenario_id,NULL +project_capacity_group_scenario_id,NULL +transmission_portfolio_scenario_id,1 +transmission_load_zone_scenario_id,1 +transmission_specified_capacity_scenario_id,1 +transmission_new_cost_scenario_id,NULL +transmission_availability_scenario_id,1 +transmission_operational_chars_scenario_id,1 +transmission_hurdle_rate_scenario_id,NULL +transmission_new_potential_scenario_id,NULL +transmission_flow_scenario_id,NULL +transmission_capacity_group_requirement_scenario_id,NULL +transmission_capacity_group_scenario_id,NULL +transmission_carbon_cap_zone_scenario_id,NULL +transmission_simultaneous_flow_limit_scenario_id,NULL +transmission_simultaneous_flow_limit_line_group_scenario_id,NULL +load_scenario_id,1 +lf_reserves_up_scenario_id,1 +lf_reserves_down_scenario_id,1 +regulation_up_scenario_id,1 +regulation_down_scenario_id,1 +frequency_response_scenario_id,NULL +spinning_reserves_scenario_id,NULL +period_energy_target_scenario_id,NULL +horizon_energy_target_scenario_id,NULL +transmission_target_scenario_id,NULL +carbon_cap_target_scenario_id,NULL +carbon_tax_scenario_id,NULL +performance_standard_scenario_id,3 +fuel_burn_limit_scenario_id,NULL +subsidy_scenario_id,NULL +prm_requirement_scenario_id,NULL +local_capacity_requirement_scenario_id,NULL +elcc_surface_scenario_id,NULL +market_price_scenario_id,NULL +market_volume_scenario_id,NULL +tuning_scenario_id,NULL diff --git a/examples/test_performance_standard_both/units.csv b/examples/test_performance_standard_both/units.csv new file mode 100644 index 000000000..50a443355 --- /dev/null +++ b/examples/test_performance_standard_both/units.csv @@ -0,0 +1,15 @@ +metric,unit +power,MW +energy,MWh +fuel_energy,MMBtu +cost,USD +carbon_emissions,tonnes CO2 +time_for_cost,yr. +heat_rate,MMBtu/MWh +fuel_emission_intensity,tonnes CO2/MMBtu +fuel_price,USD/MMBtu +variable_om_cost,USD/MWh +fixed_om_cost,USD/MW-yr. +fixed_om_cost_energy,USD/MW-yr. +capacity_cost,USD/MW-yr. +energy_capacity_cost,USD/MWh-yr. diff --git a/examples/test_performance_standard_carbon_credits/inputs/performance_standard.tab b/examples/test_performance_standard_carbon_credits/inputs/performance_standard.tab index 324d9f7d5..4731cf00b 100644 --- a/examples/test_performance_standard_carbon_credits/inputs/performance_standard.tab +++ b/examples/test_performance_standard_carbon_credits/inputs/performance_standard.tab @@ -1,3 +1,3 @@ -performance_standard_zone period performance_standard_tco2_per_mwh -PS_Zone1 2020 0.1 -PS_Zone2 2020 0.1 +performance_standard_zone period performance_standard_tco2_per_mwh performance_standard_tco2_per_mw +PS_Zone1 2020 0.1 . +PS_Zone2 2020 0.1 . diff --git a/examples/test_performance_standard_carbon_credits/inputs/performance_standard_zones.tab b/examples/test_performance_standard_carbon_credits/inputs/performance_standard_zones.tab index 57da091f0..cf472c65d 100644 --- a/examples/test_performance_standard_carbon_credits/inputs/performance_standard_zones.tab +++ b/examples/test_performance_standard_carbon_credits/inputs/performance_standard_zones.tab @@ -1,3 +1,3 @@ -performance_standard_zone allow_violation violation_penalty_per_emission -PS_Zone1 0 0.0 -PS_Zone2 0 0.0 +performance_standard_zone energy_allow_violation energy_violation_penalty_per_emission power_allow_violation power_violation_penalty_per_emission +PS_Zone1 0 0.0 0 0.0 +PS_Zone2 0 0.0 0 0.0 diff --git a/examples/test_performance_standard_carbon_credits/inputs/project_performance_standard_zones.tab b/examples/test_performance_standard_carbon_credits/inputs/project_performance_standard_zones.tab new file mode 100644 index 000000000..8b0a7a5a2 --- /dev/null +++ b/examples/test_performance_standard_carbon_credits/inputs/project_performance_standard_zones.tab @@ -0,0 +1,3 @@ +project performance_standard_zone +Gas_CCGT PS_Zone1 +Gas_CT PS_Zone2 diff --git a/examples/test_performance_standard_carbon_credits/inputs/projects.tab b/examples/test_performance_standard_carbon_credits/inputs/projects.tab index d0c76951a..7b31ef60d 100644 --- a/examples/test_performance_standard_carbon_credits/inputs/projects.tab +++ b/examples/test_performance_standard_carbon_credits/inputs/projects.tab @@ -1,8 +1,8 @@ -project capacity_type availability_type operational_type balancing_type_project technology load_zone variable_om_cost_per_mwh min_stable_level_fraction unit_size_mw startup_cost_per_mw shutdown_cost_per_mw startup_fuel_mmbtu_per_mw startup_plus_ramp_up_rate shutdown_plus_ramp_down_rate ramp_up_when_on_rate ramp_down_when_on_rate ramp_up_violation_penalty ramp_down_violation_penalty min_up_time_hours min_up_time_violation_penalty min_down_time_hours min_down_time_violation_penalty allow_startup_shutdown_power storage_efficiency charging_efficiency discharging_efficiency charging_capacity_multiplier discharging_capacity_multiplier minimum_duration_hours maximum_duration_hours aux_consumption_frac_capacity aux_consumption_frac_power last_commitment_stage curtailment_cost_per_pwh powerunithour_per_fuelunit soc_penalty_cost_per_energyunit soc_last_tmp_penalty_cost_per_energyunit partial_availability_threshold nonfuel_carbon_emissions_per_mwh lf_reserves_up_ba lf_reserves_up_derate lf_reserves_down_ba lf_reserves_down_derate regulation_up_ba regulation_up_derate regulation_down_ba regulation_down_derate lf_reserves_up_ramp_rate lf_reserves_down_ramp_rate regulation_up_ramp_rate regulation_down_ramp_rate performance_standard_zone carbon_credits_generation_zone -Coal gen_spec exogenous gen_commit_cap day Coal Zone1 1.0 0.4 6.0 1.0 0.0 . . . . . . . . . . . . . . . . . . . . . 2 . . . . . . . . . . Zone1 . Zone1 . . . . . . Carbon_Credits_Zone1 -Gas_CCGT gen_spec exogenous gen_commit_cap day Gas Zone1 2.0 0.4 6.0 1.0 2.0 . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . Zone1 . Zone1 . Zone1 . Zone1 . . . . . PS_Zone1 Carbon_Credits_Zone1 -Gas_CCGT_z2 gen_spec exogenous gen_commit_cap day Gas Zone2 2.0 0.4 6.0 1.0 2.0 . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . -Gas_CT gen_spec exogenous gen_commit_cap day Gas Zone1 2.0 0.4 6.0 0.0 1.0 . . . . . . . . . . . . . . . . . . . . . 3 . . . . . . . . . . . . . . . . . . PS_Zone2 Carbon_Credits_Zone1 -Nuclear gen_spec exogenous gen_must_run day Nuclear Zone1 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -Solar gen_new_lin exogenous gen_var day Solar Zone1 0.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -Wind gen_spec exogenous gen_var day Wind Zone1 0.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +project capacity_type availability_type operational_type balancing_type_project technology load_zone variable_om_cost_per_mwh min_stable_level_fraction unit_size_mw startup_cost_per_mw shutdown_cost_per_mw startup_fuel_mmbtu_per_mw startup_plus_ramp_up_rate shutdown_plus_ramp_down_rate ramp_up_when_on_rate ramp_down_when_on_rate ramp_up_violation_penalty ramp_down_violation_penalty min_up_time_hours min_up_time_violation_penalty min_down_time_hours min_down_time_violation_penalty allow_startup_shutdown_power storage_efficiency charging_efficiency discharging_efficiency charging_capacity_multiplier discharging_capacity_multiplier minimum_duration_hours maximum_duration_hours aux_consumption_frac_capacity aux_consumption_frac_power last_commitment_stage curtailment_cost_per_pwh powerunithour_per_fuelunit soc_penalty_cost_per_energyunit soc_last_tmp_penalty_cost_per_energyunit partial_availability_threshold nonfuel_carbon_emissions_per_mwh lf_reserves_up_ba lf_reserves_up_derate lf_reserves_down_ba lf_reserves_down_derate regulation_up_ba regulation_up_derate regulation_down_ba regulation_down_derate lf_reserves_up_ramp_rate lf_reserves_down_ramp_rate regulation_up_ramp_rate regulation_down_ramp_rate carbon_credits_generation_zone +Coal gen_spec exogenous gen_commit_cap day Coal Zone1 1.0 0.4 6.0 1.0 0.0 . . . . . . . . . . . . . . . . . . . . . 2 . . . . . . . . . . Zone1 . Zone1 . . . . . Carbon_Credits_Zone1 +Gas_CCGT gen_spec exogenous gen_commit_cap day Gas Zone1 2.0 0.4 6.0 1.0 2.0 . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . Zone1 . Zone1 . Zone1 . Zone1 . . . . . Carbon_Credits_Zone1 +Gas_CCGT_z2 gen_spec exogenous gen_commit_cap day Gas Zone2 2.0 0.4 6.0 1.0 2.0 . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . +Gas_CT gen_spec exogenous gen_commit_cap day Gas Zone1 2.0 0.4 6.0 0.0 1.0 . . . . . . . . . . . . . . . . . . . . . 3 . . . . . . . . . . . . . . . . . . Carbon_Credits_Zone1 +Nuclear gen_spec exogenous gen_must_run day Nuclear Zone1 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +Solar gen_new_lin exogenous gen_var day Solar Zone1 0.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +Wind gen_spec exogenous gen_var day Wind Zone1 0.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . diff --git a/examples/test_performance_standard_carbon_credits_w_cap_no_credits_mapping/inputs/performance_standard.tab b/examples/test_performance_standard_carbon_credits_w_cap_no_credits_mapping/inputs/performance_standard.tab index 324d9f7d5..4731cf00b 100644 --- a/examples/test_performance_standard_carbon_credits_w_cap_no_credits_mapping/inputs/performance_standard.tab +++ b/examples/test_performance_standard_carbon_credits_w_cap_no_credits_mapping/inputs/performance_standard.tab @@ -1,3 +1,3 @@ -performance_standard_zone period performance_standard_tco2_per_mwh -PS_Zone1 2020 0.1 -PS_Zone2 2020 0.1 +performance_standard_zone period performance_standard_tco2_per_mwh performance_standard_tco2_per_mw +PS_Zone1 2020 0.1 . +PS_Zone2 2020 0.1 . diff --git a/examples/test_performance_standard_carbon_credits_w_cap_no_credits_mapping/inputs/performance_standard_zones.tab b/examples/test_performance_standard_carbon_credits_w_cap_no_credits_mapping/inputs/performance_standard_zones.tab index 57da091f0..cf472c65d 100644 --- a/examples/test_performance_standard_carbon_credits_w_cap_no_credits_mapping/inputs/performance_standard_zones.tab +++ b/examples/test_performance_standard_carbon_credits_w_cap_no_credits_mapping/inputs/performance_standard_zones.tab @@ -1,3 +1,3 @@ -performance_standard_zone allow_violation violation_penalty_per_emission -PS_Zone1 0 0.0 -PS_Zone2 0 0.0 +performance_standard_zone energy_allow_violation energy_violation_penalty_per_emission power_allow_violation power_violation_penalty_per_emission +PS_Zone1 0 0.0 0 0.0 +PS_Zone2 0 0.0 0 0.0 diff --git a/examples/test_performance_standard_carbon_credits_w_cap_no_credits_mapping/inputs/project_performance_standard_zones.tab b/examples/test_performance_standard_carbon_credits_w_cap_no_credits_mapping/inputs/project_performance_standard_zones.tab new file mode 100644 index 000000000..8b0a7a5a2 --- /dev/null +++ b/examples/test_performance_standard_carbon_credits_w_cap_no_credits_mapping/inputs/project_performance_standard_zones.tab @@ -0,0 +1,3 @@ +project performance_standard_zone +Gas_CCGT PS_Zone1 +Gas_CT PS_Zone2 diff --git a/examples/test_performance_standard_carbon_credits_w_cap_no_credits_mapping/inputs/projects.tab b/examples/test_performance_standard_carbon_credits_w_cap_no_credits_mapping/inputs/projects.tab index d0c76951a..7b31ef60d 100644 --- a/examples/test_performance_standard_carbon_credits_w_cap_no_credits_mapping/inputs/projects.tab +++ b/examples/test_performance_standard_carbon_credits_w_cap_no_credits_mapping/inputs/projects.tab @@ -1,8 +1,8 @@ -project capacity_type availability_type operational_type balancing_type_project technology load_zone variable_om_cost_per_mwh min_stable_level_fraction unit_size_mw startup_cost_per_mw shutdown_cost_per_mw startup_fuel_mmbtu_per_mw startup_plus_ramp_up_rate shutdown_plus_ramp_down_rate ramp_up_when_on_rate ramp_down_when_on_rate ramp_up_violation_penalty ramp_down_violation_penalty min_up_time_hours min_up_time_violation_penalty min_down_time_hours min_down_time_violation_penalty allow_startup_shutdown_power storage_efficiency charging_efficiency discharging_efficiency charging_capacity_multiplier discharging_capacity_multiplier minimum_duration_hours maximum_duration_hours aux_consumption_frac_capacity aux_consumption_frac_power last_commitment_stage curtailment_cost_per_pwh powerunithour_per_fuelunit soc_penalty_cost_per_energyunit soc_last_tmp_penalty_cost_per_energyunit partial_availability_threshold nonfuel_carbon_emissions_per_mwh lf_reserves_up_ba lf_reserves_up_derate lf_reserves_down_ba lf_reserves_down_derate regulation_up_ba regulation_up_derate regulation_down_ba regulation_down_derate lf_reserves_up_ramp_rate lf_reserves_down_ramp_rate regulation_up_ramp_rate regulation_down_ramp_rate performance_standard_zone carbon_credits_generation_zone -Coal gen_spec exogenous gen_commit_cap day Coal Zone1 1.0 0.4 6.0 1.0 0.0 . . . . . . . . . . . . . . . . . . . . . 2 . . . . . . . . . . Zone1 . Zone1 . . . . . . Carbon_Credits_Zone1 -Gas_CCGT gen_spec exogenous gen_commit_cap day Gas Zone1 2.0 0.4 6.0 1.0 2.0 . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . Zone1 . Zone1 . Zone1 . Zone1 . . . . . PS_Zone1 Carbon_Credits_Zone1 -Gas_CCGT_z2 gen_spec exogenous gen_commit_cap day Gas Zone2 2.0 0.4 6.0 1.0 2.0 . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . -Gas_CT gen_spec exogenous gen_commit_cap day Gas Zone1 2.0 0.4 6.0 0.0 1.0 . . . . . . . . . . . . . . . . . . . . . 3 . . . . . . . . . . . . . . . . . . PS_Zone2 Carbon_Credits_Zone1 -Nuclear gen_spec exogenous gen_must_run day Nuclear Zone1 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -Solar gen_new_lin exogenous gen_var day Solar Zone1 0.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -Wind gen_spec exogenous gen_var day Wind Zone1 0.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +project capacity_type availability_type operational_type balancing_type_project technology load_zone variable_om_cost_per_mwh min_stable_level_fraction unit_size_mw startup_cost_per_mw shutdown_cost_per_mw startup_fuel_mmbtu_per_mw startup_plus_ramp_up_rate shutdown_plus_ramp_down_rate ramp_up_when_on_rate ramp_down_when_on_rate ramp_up_violation_penalty ramp_down_violation_penalty min_up_time_hours min_up_time_violation_penalty min_down_time_hours min_down_time_violation_penalty allow_startup_shutdown_power storage_efficiency charging_efficiency discharging_efficiency charging_capacity_multiplier discharging_capacity_multiplier minimum_duration_hours maximum_duration_hours aux_consumption_frac_capacity aux_consumption_frac_power last_commitment_stage curtailment_cost_per_pwh powerunithour_per_fuelunit soc_penalty_cost_per_energyunit soc_last_tmp_penalty_cost_per_energyunit partial_availability_threshold nonfuel_carbon_emissions_per_mwh lf_reserves_up_ba lf_reserves_up_derate lf_reserves_down_ba lf_reserves_down_derate regulation_up_ba regulation_up_derate regulation_down_ba regulation_down_derate lf_reserves_up_ramp_rate lf_reserves_down_ramp_rate regulation_up_ramp_rate regulation_down_ramp_rate carbon_credits_generation_zone +Coal gen_spec exogenous gen_commit_cap day Coal Zone1 1.0 0.4 6.0 1.0 0.0 . . . . . . . . . . . . . . . . . . . . . 2 . . . . . . . . . . Zone1 . Zone1 . . . . . Carbon_Credits_Zone1 +Gas_CCGT gen_spec exogenous gen_commit_cap day Gas Zone1 2.0 0.4 6.0 1.0 2.0 . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . Zone1 . Zone1 . Zone1 . Zone1 . . . . . Carbon_Credits_Zone1 +Gas_CCGT_z2 gen_spec exogenous gen_commit_cap day Gas Zone2 2.0 0.4 6.0 1.0 2.0 . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . +Gas_CT gen_spec exogenous gen_commit_cap day Gas Zone1 2.0 0.4 6.0 0.0 1.0 . . . . . . . . . . . . . . . . . . . . . 3 . . . . . . . . . . . . . . . . . . Carbon_Credits_Zone1 +Nuclear gen_spec exogenous gen_must_run day Nuclear Zone1 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +Solar gen_new_lin exogenous gen_var day Solar Zone1 0.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +Wind gen_spec exogenous gen_var day Wind Zone1 0.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . diff --git a/examples/test_performance_standard_power/features.csv b/examples/test_performance_standard_power/features.csv new file mode 100644 index 000000000..89548bfa5 --- /dev/null +++ b/examples/test_performance_standard_power/features.csv @@ -0,0 +1,7 @@ +features +transmission +lf_reserves_up +lf_reserves_down +regulation_up +regulation_down +performance_standard diff --git a/examples/test_performance_standard_power/inputs/fuel_prices.tab b/examples/test_performance_standard_power/inputs/fuel_prices.tab new file mode 100644 index 000000000..bf0dc0aa4 --- /dev/null +++ b/examples/test_performance_standard_power/inputs/fuel_prices.tab @@ -0,0 +1,9 @@ +fuel period month fuel_price_per_mmbtu +Coal 2020 1 4.0 +Coal 2020 2 4.0 +Gas 2020 1 5.0 +Gas 2020 2 5.0 +Negative_Carbon_Fuel 2020 1 6.0 +Negative_Carbon_Fuel 2020 2 6.0 +Uranium 2020 1 2.0 +Uranium 2020 2 2.0 diff --git a/examples/test_performance_standard_power/inputs/fuels.tab b/examples/test_performance_standard_power/inputs/fuels.tab new file mode 100644 index 000000000..7f0e5515e --- /dev/null +++ b/examples/test_performance_standard_power/inputs/fuels.tab @@ -0,0 +1,5 @@ +fuel co2_intensity_tons_per_mmbtu fuel_group +Coal 0.09552 Solid +Gas 0.05306 Gas +Negative_Carbon_Fuel -0.1 Gas +Uranium 0.0 Other diff --git a/examples/test_performance_standard_power/inputs/heat_rate_curves.tab b/examples/test_performance_standard_power/inputs/heat_rate_curves.tab new file mode 100644 index 000000000..9247cbd2c --- /dev/null +++ b/examples/test_performance_standard_power/inputs/heat_rate_curves.tab @@ -0,0 +1,10 @@ +project period load_point_fraction average_heat_rate_mmbtu_per_mwh +Coal 0 0.4 1250.0 +Coal 0 1.0 506.0 +Gas_CCGT 0 0.5 506.0 +Gas_CCGT 0 1.0 256.0 +Gas_CCGT_z2 0 0.5 506.0 +Gas_CCGT_z2 0 1.0 256.0 +Gas_CT 0 0.4 208.33333 +Gas_CT 0 1.0 88.13333 +Nuclear 0 1.0 1666.67 diff --git a/examples/test_performance_standard_power/inputs/horizon_timepoints.tab b/examples/test_performance_standard_power/inputs/horizon_timepoints.tab new file mode 100644 index 000000000..ba1741348 --- /dev/null +++ b/examples/test_performance_standard_power/inputs/horizon_timepoints.tab @@ -0,0 +1,3 @@ +horizon balancing_type_horizon timepoint +202001 day 20200101 +202001 day 20200102 diff --git a/examples/test_performance_standard_power/inputs/horizons.tab b/examples/test_performance_standard_power/inputs/horizons.tab new file mode 100644 index 000000000..169518ded --- /dev/null +++ b/examples/test_performance_standard_power/inputs/horizons.tab @@ -0,0 +1,2 @@ +horizon balancing_type_horizon boundary +202001 day circular diff --git a/examples/test_performance_standard_power/inputs/lf_reserves_down_tmp_requirement.tab b/examples/test_performance_standard_power/inputs/lf_reserves_down_tmp_requirement.tab new file mode 100644 index 000000000..891ff1859 --- /dev/null +++ b/examples/test_performance_standard_power/inputs/lf_reserves_down_tmp_requirement.tab @@ -0,0 +1,3 @@ +ba timepoint requirement +Zone1 20200101 1.0 +Zone1 20200102 2.0 diff --git a/examples/test_performance_standard_power/inputs/lf_reserves_up_tmp_requirement.tab b/examples/test_performance_standard_power/inputs/lf_reserves_up_tmp_requirement.tab new file mode 100644 index 000000000..891ff1859 --- /dev/null +++ b/examples/test_performance_standard_power/inputs/lf_reserves_up_tmp_requirement.tab @@ -0,0 +1,3 @@ +ba timepoint requirement +Zone1 20200101 1.0 +Zone1 20200102 2.0 diff --git a/examples/test_performance_standard_power/inputs/load_following_down_balancing_areas.tab b/examples/test_performance_standard_power/inputs/load_following_down_balancing_areas.tab new file mode 100644 index 000000000..7e4fdfbf2 --- /dev/null +++ b/examples/test_performance_standard_power/inputs/load_following_down_balancing_areas.tab @@ -0,0 +1,2 @@ +balancing_area allow_violation violation_penalty_per_mw reserve_to_energy_adjustment +Zone1 1 999999999.0 . diff --git a/examples/test_performance_standard_power/inputs/load_following_up_balancing_areas.tab b/examples/test_performance_standard_power/inputs/load_following_up_balancing_areas.tab new file mode 100644 index 000000000..7e4fdfbf2 --- /dev/null +++ b/examples/test_performance_standard_power/inputs/load_following_up_balancing_areas.tab @@ -0,0 +1,2 @@ +balancing_area allow_violation violation_penalty_per_mw reserve_to_energy_adjustment +Zone1 1 999999999.0 . diff --git a/examples/test_performance_standard_power/inputs/load_mw.tab b/examples/test_performance_standard_power/inputs/load_mw.tab new file mode 100644 index 000000000..d5dd92d56 --- /dev/null +++ b/examples/test_performance_standard_power/inputs/load_mw.tab @@ -0,0 +1,5 @@ +LOAD_ZONES timepoint load_mw +Zone1 20200101 10.0 +Zone1 20200102 20.0 +Zone2 20200101 10.0 +Zone2 20200102 10.0 diff --git a/examples/test_performance_standard_power/inputs/load_zones.tab b/examples/test_performance_standard_power/inputs/load_zones.tab new file mode 100644 index 000000000..25f6402b2 --- /dev/null +++ b/examples/test_performance_standard_power/inputs/load_zones.tab @@ -0,0 +1,3 @@ +load_zone allow_overgeneration overgeneration_penalty_per_mw allow_unserved_energy unserved_energy_penalty_per_mwh unserved_energy_limit_mwh max_unserved_load_penalty_per_mw max_unserved_load_limit_mw export_penalty_cost_per_mwh +Zone1 1 99999999.0 1 99999999.0 . 0.0 . 0.0 +Zone2 1 99999999.0 1 99999999.0 . 0.0 . 0.0 diff --git a/examples/test_performance_standard_power/inputs/new_build_generator_vintage_costs.tab b/examples/test_performance_standard_power/inputs/new_build_generator_vintage_costs.tab new file mode 100644 index 000000000..61847973f --- /dev/null +++ b/examples/test_performance_standard_power/inputs/new_build_generator_vintage_costs.tab @@ -0,0 +1,2 @@ +project vintage operational_lifetime_yrs fixed_cost_per_mw_yr financial_lifetime_yrs annualized_real_cost_per_mw_yr +Solar 2020 30.0 0.0 30.0 100.0 diff --git a/examples/test_performance_standard_power/inputs/new_build_potentials.tab b/examples/test_performance_standard_power/inputs/new_build_potentials.tab new file mode 100644 index 000000000..e98d2be54 --- /dev/null +++ b/examples/test_performance_standard_power/inputs/new_build_potentials.tab @@ -0,0 +1,2 @@ +project period min_new_build_power max_new_build_power min_capacity_power max_capacity_power min_new_build_energy max_new_build_energy min_capacity_energy max_capacity_energy +Solar 2020 . . 0.0 2.0 . . . . diff --git a/examples/test_performance_standard_power/inputs/performance_standard.tab b/examples/test_performance_standard_power/inputs/performance_standard.tab new file mode 100644 index 000000000..849d13bc5 --- /dev/null +++ b/examples/test_performance_standard_power/inputs/performance_standard.tab @@ -0,0 +1,3 @@ +performance_standard_zone period performance_standard_tco2_per_mwh performance_standard_tco2_per_mw +PS_Zone1 2020 . 876.0 +PS_Zone2 2020 . 876.0 diff --git a/examples/test_performance_standard_power/inputs/performance_standard_zones.tab b/examples/test_performance_standard_power/inputs/performance_standard_zones.tab new file mode 100644 index 000000000..cf472c65d --- /dev/null +++ b/examples/test_performance_standard_power/inputs/performance_standard_zones.tab @@ -0,0 +1,3 @@ +performance_standard_zone energy_allow_violation energy_violation_penalty_per_emission power_allow_violation power_violation_penalty_per_emission +PS_Zone1 0 0.0 0 0.0 +PS_Zone2 0 0.0 0 0.0 diff --git a/examples/test_performance_standard_power/inputs/periods.tab b/examples/test_performance_standard_power/inputs/periods.tab new file mode 100644 index 000000000..cd509b3ba --- /dev/null +++ b/examples/test_performance_standard_power/inputs/periods.tab @@ -0,0 +1,2 @@ +period discount_factor period_start_year period_end_year hours_in_period_timepoints +2020 1.0 2020.0 2021.0 8760.0 diff --git a/examples/test_performance_standard_power/inputs/project_fuels.tab b/examples/test_performance_standard_power/inputs/project_fuels.tab new file mode 100644 index 000000000..31de6ccfd --- /dev/null +++ b/examples/test_performance_standard_power/inputs/project_fuels.tab @@ -0,0 +1,7 @@ +project fuel min_fraction_in_fuel_blend max_fraction_in_fuel_blend +Coal Coal . . +Gas_CCGT Gas 0.0 1.0 +Gas_CCGT Negative_Carbon_Fuel 0.0 1.0 +Gas_CCGT_z2 Gas . . +Gas_CT Gas . . +Nuclear Uranium . . diff --git a/examples/test_performance_standard_power/inputs/project_performance_standard_zones.tab b/examples/test_performance_standard_power/inputs/project_performance_standard_zones.tab new file mode 100644 index 000000000..8b0a7a5a2 --- /dev/null +++ b/examples/test_performance_standard_power/inputs/project_performance_standard_zones.tab @@ -0,0 +1,3 @@ +project performance_standard_zone +Gas_CCGT PS_Zone1 +Gas_CT PS_Zone2 diff --git a/examples/test_performance_standard_power/inputs/projects.tab b/examples/test_performance_standard_power/inputs/projects.tab new file mode 100644 index 000000000..2eadee6c9 --- /dev/null +++ b/examples/test_performance_standard_power/inputs/projects.tab @@ -0,0 +1,8 @@ +project capacity_type availability_type operational_type balancing_type_project technology load_zone variable_om_cost_per_mwh min_stable_level_fraction unit_size_mw startup_cost_per_mw shutdown_cost_per_mw startup_fuel_mmbtu_per_mw startup_plus_ramp_up_rate shutdown_plus_ramp_down_rate ramp_up_when_on_rate ramp_down_when_on_rate ramp_up_violation_penalty ramp_down_violation_penalty min_up_time_hours min_up_time_violation_penalty min_down_time_hours min_down_time_violation_penalty allow_startup_shutdown_power storage_efficiency charging_efficiency discharging_efficiency charging_capacity_multiplier discharging_capacity_multiplier minimum_duration_hours maximum_duration_hours aux_consumption_frac_capacity aux_consumption_frac_power last_commitment_stage curtailment_cost_per_pwh powerunithour_per_fuelunit soc_penalty_cost_per_energyunit soc_last_tmp_penalty_cost_per_energyunit partial_availability_threshold nonfuel_carbon_emissions_per_mwh lf_reserves_up_ba lf_reserves_up_derate lf_reserves_down_ba lf_reserves_down_derate regulation_up_ba regulation_up_derate regulation_down_ba regulation_down_derate lf_reserves_up_ramp_rate lf_reserves_down_ramp_rate regulation_up_ramp_rate regulation_down_ramp_rate +Coal gen_spec exogenous gen_commit_cap day Coal Zone1 1.0 0.4 6.0 1.0 0.0 . . . . . . . . . . . . . . . . . . . . . 2 . . . . . . . . . . Zone1 . Zone1 . . . . . +Gas_CCGT gen_spec exogenous gen_commit_cap day Gas Zone1 2.0 0.4 6.0 1.0 2.0 . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . Zone1 . Zone1 . Zone1 . Zone1 . . . . . +Gas_CCGT_z2 gen_spec exogenous gen_commit_cap day Gas Zone2 2.0 0.4 6.0 1.0 2.0 . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . +Gas_CT gen_spec exogenous gen_commit_cap day Gas Zone1 2.0 0.4 6.0 0.0 1.0 . . . . . . . . . . . . . . . . . . . . . 3 . . . . . . . . . . . . . . . . . . +Nuclear gen_spec exogenous gen_must_run day Nuclear Zone1 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +Solar gen_new_lin exogenous gen_var day Solar Zone1 0.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +Wind gen_spec exogenous gen_var day Wind Zone1 0.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . diff --git a/examples/test_performance_standard_power/inputs/regulation_down_balancing_areas.tab b/examples/test_performance_standard_power/inputs/regulation_down_balancing_areas.tab new file mode 100644 index 000000000..7e4fdfbf2 --- /dev/null +++ b/examples/test_performance_standard_power/inputs/regulation_down_balancing_areas.tab @@ -0,0 +1,2 @@ +balancing_area allow_violation violation_penalty_per_mw reserve_to_energy_adjustment +Zone1 1 999999999.0 . diff --git a/examples/test_performance_standard_power/inputs/regulation_down_tmp_requirement.tab b/examples/test_performance_standard_power/inputs/regulation_down_tmp_requirement.tab new file mode 100644 index 000000000..891ff1859 --- /dev/null +++ b/examples/test_performance_standard_power/inputs/regulation_down_tmp_requirement.tab @@ -0,0 +1,3 @@ +ba timepoint requirement +Zone1 20200101 1.0 +Zone1 20200102 2.0 diff --git a/examples/test_performance_standard_power/inputs/regulation_up_balancing_areas.tab b/examples/test_performance_standard_power/inputs/regulation_up_balancing_areas.tab new file mode 100644 index 000000000..7e4fdfbf2 --- /dev/null +++ b/examples/test_performance_standard_power/inputs/regulation_up_balancing_areas.tab @@ -0,0 +1,2 @@ +balancing_area allow_violation violation_penalty_per_mw reserve_to_energy_adjustment +Zone1 1 999999999.0 . diff --git a/examples/test_performance_standard_power/inputs/regulation_up_tmp_requirement.tab b/examples/test_performance_standard_power/inputs/regulation_up_tmp_requirement.tab new file mode 100644 index 000000000..891ff1859 --- /dev/null +++ b/examples/test_performance_standard_power/inputs/regulation_up_tmp_requirement.tab @@ -0,0 +1,3 @@ +ba timepoint requirement +Zone1 20200101 1.0 +Zone1 20200102 2.0 diff --git a/examples/test_performance_standard_power/inputs/spec_capacity_period_params.tab b/examples/test_performance_standard_power/inputs/spec_capacity_period_params.tab new file mode 100644 index 000000000..af93611f2 --- /dev/null +++ b/examples/test_performance_standard_power/inputs/spec_capacity_period_params.tab @@ -0,0 +1,7 @@ +project period specified_capacity_mw hyb_gen_specified_capacity_mw hyb_stor_specified_capacity_mw specified_capacity_mwh fuel_production_capacity_fuelunitperhour fuel_release_capacity_fuelunitperhour fuel_storage_capacity_fuelunit fixed_cost_per_mw_yr hyb_gen_fixed_cost_per_mw_yr hyb_stor_fixed_cost_per_mw_yr fixed_cost_per_mwh_yr fuel_production_capacity_fixed_cost_per_fuelunitperhour_yr fuel_release_capacity_fixed_cost_per_fuelunitperhour_yr fuel_storage_capacity_fixed_cost_per_fuelunit_yr +Coal 2020 6.0 0.0 +Gas_CCGT 2020 6.0 0.0 +Gas_CCGT_z2 2020 12.0 0.0 +Gas_CT 2020 6.0 0.0 +Nuclear 2020 6.0 0.0 +Wind 2020 2.0 0.0 diff --git a/examples/test_performance_standard_power/inputs/specified_transmission_line_capacities.tab b/examples/test_performance_standard_power/inputs/specified_transmission_line_capacities.tab new file mode 100644 index 000000000..bfb595597 --- /dev/null +++ b/examples/test_performance_standard_power/inputs/specified_transmission_line_capacities.tab @@ -0,0 +1,2 @@ +transmission_line period specified_tx_min_mw specified_tx_max_mw fixed_cost_per_mw_yr +Tx1 2020 -10.0 10.0 . diff --git a/examples/test_performance_standard_power/inputs/timepoints.tab b/examples/test_performance_standard_power/inputs/timepoints.tab new file mode 100644 index 000000000..841f55837 --- /dev/null +++ b/examples/test_performance_standard_power/inputs/timepoints.tab @@ -0,0 +1,3 @@ +timepoint period timepoint_weight number_of_hours_in_timepoint previous_stage_timepoint_map month day_of_month hour_of_day +20200101 2020 4380.0 1 . 1 . 1.0 +20200102 2020 4380.0 1 . 1 . 2.0 diff --git a/examples/test_performance_standard_power/inputs/transmission_lines.tab b/examples/test_performance_standard_power/inputs/transmission_lines.tab new file mode 100644 index 000000000..805b59e43 --- /dev/null +++ b/examples/test_performance_standard_power/inputs/transmission_lines.tab @@ -0,0 +1,2 @@ +transmission_line tx_capacity_type tx_availability_type tx_operational_type load_zone_from load_zone_to tx_simple_loss_factor reactance_ohms +Tx1 tx_spec exogenous tx_simple Zone1 Zone2 . . diff --git a/examples/test_performance_standard_power/inputs/variable_generator_profiles.tab b/examples/test_performance_standard_power/inputs/variable_generator_profiles.tab new file mode 100644 index 000000000..d06d39e88 --- /dev/null +++ b/examples/test_performance_standard_power/inputs/variable_generator_profiles.tab @@ -0,0 +1,5 @@ +project timepoint cap_factor +Solar 20200101 0.05 +Solar 20200102 1.0 +Wind 20200101 0.9 +Wind 20200102 0.5 diff --git a/examples/test_performance_standard_power/results/objective_function_value.txt b/examples/test_performance_standard_power/results/objective_function_value.txt new file mode 100644 index 000000000..3e3632268 --- /dev/null +++ b/examples/test_performance_standard_power/results/objective_function_value.txt @@ -0,0 +1 @@ +-3504414927375.95 \ No newline at end of file diff --git a/examples/test_performance_standard_power/results/solver_status.txt b/examples/test_performance_standard_power/results/solver_status.txt new file mode 100644 index 000000000..b5754e203 --- /dev/null +++ b/examples/test_performance_standard_power/results/solver_status.txt @@ -0,0 +1 @@ +ok \ No newline at end of file diff --git a/examples/test_performance_standard_power/results/summary_results.txt b/examples/test_performance_standard_power/results/summary_results.txt new file mode 100644 index 000000000..c2b499c33 --- /dev/null +++ b/examples/test_performance_standard_power/results/summary_results.txt @@ -0,0 +1,20 @@ +##### SUMMARY RESULTS FOR SCENARIO *test_performance_standard_power* ##### + +### CAPACITY RESULTS ### + +--> New Generation Capacity <-- + New Capacity (MW) +load_zone technology period +Zone1 Solar 2020 2.00 + +### OPERATIONAL RESULTS ### + +--> Energy Production <-- + Annual Energy (MWh) % Total Power +load_zone period technology +Zone1 2020 Coal 18,688.00 13.93 + Gas 41,419.95 30.88 + Nuclear 52,560.00 39.19 + Solar 9,198.00 6.86 + Wind 12,264.00 9.14 +Zone2 2020 Gas 84,870.05 100.00 diff --git a/examples/test_performance_standard_power/results/termination_condition.txt b/examples/test_performance_standard_power/results/termination_condition.txt new file mode 100644 index 000000000..644457f4c --- /dev/null +++ b/examples/test_performance_standard_power/results/termination_condition.txt @@ -0,0 +1 @@ +optimal \ No newline at end of file diff --git a/examples/test_performance_standard_power/scenario_description.csv b/examples/test_performance_standard_power/scenario_description.csv new file mode 100644 index 000000000..a2914bac2 --- /dev/null +++ b/examples/test_performance_standard_power/scenario_description.csv @@ -0,0 +1,127 @@ +scenario_id,115 +scenario_name,test_performance_standard_power +of_transmission,1 +of_transmission_hurdle_rates, +of_simultaneous_flow_limits, +of_lf_reserves_up,1 +of_lf_reserves_down,1 +of_regulation_up,1 +of_regulation_down,1 +of_frequency_response, +of_spinning_reserves, +of_period_energy_target, +of_horizon_energy_target, +of_transmission_target, +of_carbon_cap, +of_track_carbon_imports, +of_carbon_tax, +of_performance_standard,1 +of_carbon_credits, +of_fuel_burn_limit, +of_subsidies, +of_prm, +of_capacity_transfers, +of_deliverability, +of_elcc_surface, +of_local_capacity, +of_markets, +of_tuning, +temporal_scenario_id,1 +load_zone_scenario_id,2 +lf_reserves_up_ba_scenario_id,1 +lf_reserves_down_ba_scenario_id,1 +regulation_up_ba_scenario_id,1 +regulation_down_ba_scenario_id,1 +frequency_response_ba_scenario_id,NULL +spinning_reserves_ba_scenario_id,NULL +energy_target_zone_scenario_id,NULL +transmission_target_zone_scenario_id,NULL +carbon_cap_zone_scenario_id,NULL +carbon_tax_zone_scenario_id,NULL +performance_standard_zone_scenario_id,1 +carbon_credits_zone_scenario_id,NULL +carbon_cap_zones_carbon_credits_zones_scenario_id,NULL +performance_standard_zones_carbon_credits_zones_scenario_id,NULL +carbon_tax_zones_carbon_credits_zones_scenario_id,NULL +carbon_credits_params_scenario_id,NULL +fuel_burn_limit_ba_scenario_id,NULL +prm_zone_scenario_id,NULL +local_capacity_zone_scenario_id,NULL +market_scenario_id,NULL +project_portfolio_scenario_id,15 +project_operational_chars_scenario_id,16 +project_availability_scenario_id,1 +fuel_scenario_id,1 +project_load_zone_scenario_id,1 +project_lf_reserves_up_ba_scenario_id,5 +project_lf_reserves_down_ba_scenario_id,5 +project_regulation_up_ba_scenario_id,5 +project_regulation_down_ba_scenario_id,5 +project_frequency_response_ba_scenario_id,NULL +project_spinning_reserves_ba_scenario_id,NULL +project_energy_target_zone_scenario_id,NULL +tx_line_transmission_target_zone_scenario_id,NULL +project_carbon_cap_zone_scenario_id,NULL +project_carbon_tax_zone_scenario_id,NULL +project_carbon_tax_allowance_scenario_id,NULL +project_performance_standard_zone_scenario_id,1 +project_carbon_credits_generation_zone_scenario_id,NULL +project_carbon_credits_purchase_zone_scenario_id,NULL +project_carbon_credits_scenario_id,NULL +project_fuel_burn_limit_ba_scenario_id,NULL +project_prm_zone_scenario_id,NULL +prm_capacity_transfer_scenario_id,NULL +prm_capacity_transfer_params_scenario_id,NULL +transmission_prm_zone_scenario_id,NULL +project_elcc_chars_scenario_id,NULL +prm_deliverability_cost_scenario_id,NULL +prm_deliverability_existing_scenario_id,NULL +prm_deliverability_potential_scenario_id,NULL +project_prm_deliverability_multipliers_scenario_id,NULL +project_local_capacity_zone_scenario_id,NULL +project_local_capacity_chars_scenario_id,NULL +load_zone_market_scenario_id,NULL +project_specified_capacity_scenario_id,3 +project_specified_fixed_cost_scenario_id,1 +fuel_price_scenario_id,1 +project_new_cost_scenario_id,1 +project_new_potential_scenario_id,2 +project_new_binary_build_size_scenario_id,NULL +project_capacity_group_requirement_scenario_id,NULL +project_relative_capacity_requirement_scenario_id,NULL +project_capacity_group_scenario_id,NULL +transmission_portfolio_scenario_id,1 +transmission_load_zone_scenario_id,1 +transmission_specified_capacity_scenario_id,1 +transmission_new_cost_scenario_id,NULL +transmission_availability_scenario_id,1 +transmission_operational_chars_scenario_id,1 +transmission_hurdle_rate_scenario_id,NULL +transmission_new_potential_scenario_id,NULL +transmission_flow_scenario_id,NULL +transmission_capacity_group_requirement_scenario_id,NULL +transmission_capacity_group_scenario_id,NULL +transmission_carbon_cap_zone_scenario_id,NULL +transmission_simultaneous_flow_limit_scenario_id,NULL +transmission_simultaneous_flow_limit_line_group_scenario_id,NULL +load_scenario_id,1 +lf_reserves_up_scenario_id,1 +lf_reserves_down_scenario_id,1 +regulation_up_scenario_id,1 +regulation_down_scenario_id,1 +frequency_response_scenario_id,NULL +spinning_reserves_scenario_id,NULL +period_energy_target_scenario_id,NULL +horizon_energy_target_scenario_id,NULL +transmission_target_scenario_id,NULL +carbon_cap_target_scenario_id,NULL +carbon_tax_scenario_id,NULL +performance_standard_scenario_id,2 +fuel_burn_limit_scenario_id,NULL +subsidy_scenario_id,NULL +prm_requirement_scenario_id,NULL +local_capacity_requirement_scenario_id,NULL +elcc_surface_scenario_id,NULL +market_price_scenario_id,NULL +market_volume_scenario_id,NULL +tuning_scenario_id,NULL diff --git a/examples/test_performance_standard_power/units.csv b/examples/test_performance_standard_power/units.csv new file mode 100644 index 000000000..50a443355 --- /dev/null +++ b/examples/test_performance_standard_power/units.csv @@ -0,0 +1,15 @@ +metric,unit +power,MW +energy,MWh +fuel_energy,MMBtu +cost,USD +carbon_emissions,tonnes CO2 +time_for_cost,yr. +heat_rate,MMBtu/MWh +fuel_emission_intensity,tonnes CO2/MMBtu +fuel_price,USD/MMBtu +variable_om_cost,USD/MWh +fixed_om_cost,USD/MW-yr. +fixed_om_cost_energy,USD/MW-yr. +capacity_cost,USD/MW-yr. +energy_capacity_cost,USD/MWh-yr. diff --git a/gridpath/geography/performance_standard_zones.py b/gridpath/geography/performance_standard_zones.py index 33202da88..625b2c866 100644 --- a/gridpath/geography/performance_standard_zones.py +++ b/gridpath/geography/performance_standard_zones.py @@ -43,10 +43,17 @@ def add_model_components( m.PERFORMANCE_STANDARD_ZONES = Set() - m.performance_standard_allow_violation = Param( + m.performance_standard_energy_allow_violation = Param( m.PERFORMANCE_STANDARD_ZONES, within=Boolean, default=0 ) - m.performance_standard_violation_penalty_per_emission = Param( + m.performance_standard_energy_violation_penalty_per_emission = Param( + m.PERFORMANCE_STANDARD_ZONES, within=NonNegativeReals, default=0 + ) + + m.performance_standard_power_allow_violation = Param( + m.PERFORMANCE_STANDARD_ZONES, within=Boolean, default=0 + ) + m.performance_standard_power_violation_penalty_per_emission = Param( m.PERFORMANCE_STANDARD_ZONES, within=NonNegativeReals, default=0 ) @@ -75,8 +82,10 @@ def load_model_data( ), index=m.PERFORMANCE_STANDARD_ZONES, param=( - m.performance_standard_allow_violation, - m.performance_standard_violation_penalty_per_emission, + m.performance_standard_energy_allow_violation, + m.performance_standard_energy_violation_penalty_per_emission, + m.performance_standard_power_allow_violation, + m.performance_standard_power_violation_penalty_per_emission, ), ) @@ -101,8 +110,8 @@ def get_inputs_from_database( c = conn.cursor() performance_standard_zone = c.execute( - """SELECT performance_standard_zone, allow_violation, - violation_penalty_per_emission + """SELECT performance_standard_zone, energy_allow_violation, + energy_violation_penalty_per_emission, power_allow_violation, power_violation_penalty_per_emission FROM inputs_geography_performance_standard_zones WHERE performance_standard_zone_scenario_id = {}; """.format( @@ -199,8 +208,10 @@ def write_model_inputs( writer.writerow( [ "performance_standard_zone", - "allow_violation", - "violation_penalty_per_emission", + "energy_allow_violation", + "energy_violation_penalty_per_emission", + "power_allow_violation", + "power_violation_penalty_per_emission", ] ) diff --git a/gridpath/objective/system/policy/aggregate_performance_standard_violation_penalties.py b/gridpath/objective/system/policy/aggregate_performance_standard_violation_penalties.py index 456f0af7b..94ac2f162 100644 --- a/gridpath/objective/system/policy/aggregate_performance_standard_violation_penalties.py +++ b/gridpath/objective/system/policy/aggregate_performance_standard_violation_penalties.py @@ -40,10 +40,10 @@ def add_model_components( constraint. """ - def total_penalty_costs_rule(mod): + def total_penalty_costs_energy_rule(mod): return sum( - mod.Performance_Standard_Overage_Expression[z, p] - * mod.performance_standard_violation_penalty_per_emission[z] + mod.Performance_Standard_Energy_Unit_Overage_Expression[z, p] + * mod.performance_standard_energy_violation_penalty_per_emission[z] * mod.number_years_represented[p] * mod.discount_factor[p] for ( @@ -52,8 +52,24 @@ def total_penalty_costs_rule(mod): ) in mod.PERFORMANCE_STANDARD_ZONE_PERIODS_WITH_PERFORMANCE_STANDARD ) - m.Total_Performance_Standard_Balance_Penalty_Costs = Expression( - rule=total_penalty_costs_rule + m.Total_Performance_Standard_Energy_Balance_Penalty_Costs = Expression( + rule=total_penalty_costs_energy_rule + ) + + def total_penalty_costs_power_rule(mod): + return sum( + mod.Performance_Standard_Power_Unit_Overage_Expression[z, p] + * mod.performance_standard_power_violation_penalty_per_emission[z] + * mod.number_years_represented[p] + * mod.discount_factor[p] + for ( + z, + p, + ) in mod.PERFORMANCE_STANDARD_ZONE_PERIODS_WITH_PERFORMANCE_STANDARD + ) + + m.Total_Performance_Standard_Power_Balance_Penalty_Costs = Expression( + rule=total_penalty_costs_power_rule ) record_dynamic_components(dynamic_components=d) @@ -68,5 +84,8 @@ def record_dynamic_components(dynamic_components): """ getattr(dynamic_components, cost_components).append( - "Total_Performance_Standard_Balance_Penalty_Costs" + "Total_Performance_Standard_Energy_Balance_Penalty_Costs" + ) + getattr(dynamic_components, cost_components).append( + "Total_Performance_Standard_Power_Balance_Penalty_Costs" ) diff --git a/gridpath/project/operations/performance_standard.py b/gridpath/project/operations/performance_standard.py index 3503095e1..b7e3f12b6 100644 --- a/gridpath/project/operations/performance_standard.py +++ b/gridpath/project/operations/performance_standard.py @@ -49,30 +49,26 @@ def add_model_components( +-------------------------------------------------------------------------+ | Sets | +=========================================================================+ - | | :code:`PERFORMANCE_STANDARD_PRJS` | - | | *Within*: :code:`PROJECTS` | + | | :code:`PERFORMANCE_STANDARD_PRJS_PERFORMANCE_STANDARD_ZONES` | + | | *Within*: :code:`m.PROJECTS * m.PERFORMANCE_STANDARD_ZONES` | | | | set of projects we need to track for the performance standard. | + | Two-dimensional set of performance standard projects and the | + | performance standard zones they contribute to. Projects can contribute | + | to multiple performance standard zones. | +-------------------------------------------------------------------------+ | +-------------------------------------------------------------------------+ - | Required Input Params | + | Derived Sets | +=========================================================================+ - | | :code:`performance_standard_zone` | - | | *Defined over*: :code:`PERFORMANCE_STANDARD_PRJS` | - | | *Within*: :code:`PERFORMANCE_STANDARD_ZONES` | + | | :code:`PERFORMANCE_STANDARD_PRJS` | + | | *Within*: :code:`PROJECTS` | | | - | This param describes the performance standard zone for each | - | performance standard project. | + | Two set of performance standard projects we need to track for the | + | performance standard. | +-------------------------------------------------------------------------+ - - | - - +-------------------------------------------------------------------------+ - | Derived Sets | - +=========================================================================+ | | :code:`PERFORMANCE_STANDARD_PRJS_BY_PERFORMANCE_STANDARD_ZONE` | | | *Defined over*: :code:`PERFORMANCE_STANDARD_ZONES` | | | *Within*: :code:`PERFORMANCE_STANDARD_PRJS` | @@ -86,30 +82,48 @@ def add_model_components( | Two-dimensional set that defines all project-timepoint combinations | | when a performance standard project can be operational. | +-------------------------------------------------------------------------+ + | | :code:`PERFORMANCE_STANDARD_OPR_PRDS` | + | | *Within*: :code:`PRJ_OPR_PRDS` | + | | + | Two-dimensional set that defines all project-period combinations | + | when a performance standard project can be operational. | + +-------------------------------------------------------------------------+ """ # Sets ########################################################################### - m.PERFORMANCE_STANDARD_PRJS = Set(within=m.PROJECTS) - - # Input Params - ########################################################################### - - m.performance_standard_zone = Param( - m.PERFORMANCE_STANDARD_PRJS, within=m.PERFORMANCE_STANDARD_ZONES + m.PERFORMANCE_STANDARD_PRJS_PERFORMANCE_STANDARD_ZONES = Set( + dimen=2, within=m.PROJECTS * m.PERFORMANCE_STANDARD_ZONES ) # Derived Sets ########################################################################### + m.PERFORMANCE_STANDARD_PRJS = Set( + within=m.PROJECTS, + initialize=lambda mod: list( + set( + [ + prj + for ( + prj, + z, + ) in mod.PERFORMANCE_STANDARD_PRJS_PERFORMANCE_STANDARD_ZONES + ] + ) + ), + ) + m.PERFORMANCE_STANDARD_PRJS_BY_PERFORMANCE_STANDARD_ZONE = Set( m.PERFORMANCE_STANDARD_ZONES, - within=m.PERFORMANCE_STANDARD_PRJS, - initialize=lambda mod, ps_z: subset_init_by_param_value( - mod, "PERFORMANCE_STANDARD_PRJS", "performance_standard_zone", ps_z - ), + within=m.PROJECTS, + initialize=lambda mod, ps_z: [ + prj + for (prj, z) in mod.PERFORMANCE_STANDARD_PRJS_PERFORMANCE_STANDARD_ZONES + if ps_z == z + ], ) m.PERFORMANCE_STANDARD_OPR_TMPS = Set( @@ -121,6 +135,15 @@ def add_model_components( membership_set=mod.PERFORMANCE_STANDARD_PRJS, ), ) + m.PERFORMANCE_STANDARD_OPR_PRDS = Set( + within=m.PRJ_OPR_PRDS, + initialize=lambda mod: subset_init_by_set_membership( + mod=mod, + superset="PRJ_OPR_PRDS", + index=0, + membership_set=mod.PERFORMANCE_STANDARD_PRJS, + ), + ) # Input-Output @@ -157,16 +180,11 @@ def load_model_data( subproblem, stage, "inputs", - "projects.tab", + "project_performance_standard_zones.tab", ), - select=("project", "performance_standard_zone"), - param=(m.performance_standard_zone,), + set=m.PERFORMANCE_STANDARD_PRJS_PERFORMANCE_STANDARD_ZONES, ) - data_portal.data()["PERFORMANCE_STANDARD_PRJS"] = { - None: list(data_portal.data()["performance_standard_zone"].keys()) - } - # Database ############################################################################### @@ -236,7 +254,7 @@ def write_model_inputs( ): """ Get inputs from database and write out the model input - projects.tab file (to be precise, amend it). + in project_performance_standard_zones.tab file. :param scenario_directory: string, the scenario directory :param subscenarios: SubScenarios object with all subscenario info :param subproblem: @@ -265,44 +283,6 @@ def write_model_inputs( conn, ) - # Make a dict for easy access - prj_zone_dict = dict() - for prj, zone in project_zones: - prj_zone_dict[str(prj)] = "." if zone is None else str(zone) - - with open( - os.path.join( - scenario_directory, - weather_iteration, - hydro_iteration, - availability_iteration, - subproblem, - stage, - "inputs", - "projects.tab", - ), - "r", - ) as projects_file_in: - reader = csv.reader(projects_file_in, delimiter="\t", lineterminator="\n") - - new_rows = list() - - # Append column header - header = next(reader) - header.append("performance_standard_zone") - new_rows.append(header) - - # Append correct values - for row in reader: - # If project specified, check if BA specified or not - if row[0] in list(prj_zone_dict.keys()): - row.append(prj_zone_dict[row[0]]) - new_rows.append(row) - # If project not specified, specify no BA - else: - row.append(".") - new_rows.append(row) - with open( os.path.join( scenario_directory, @@ -312,13 +292,15 @@ def write_model_inputs( subproblem, stage, "inputs", - "projects.tab", + "project_performance_standard_zones.tab", ), "w", newline="", ) as projects_file_out: writer = csv.writer(projects_file_out, delimiter="\t", lineterminator="\n") - writer.writerows(new_rows) + writer.writerow(["project", "performance_standard_zone"]) + for row in project_zones.fetchall(): + writer.writerow(list(row)) def process_results(db, c, scenario_id, subscenarios, quiet): diff --git a/gridpath/system/policy/performance_standard/aggregate_project_performance_standard.py b/gridpath/system/policy/performance_standard/aggregate_project_performance_standard.py index 6c3cc96b0..2ed20cf28 100644 --- a/gridpath/system/policy/performance_standard/aggregate_project_performance_standard.py +++ b/gridpath/system/policy/performance_standard/aggregate_project_performance_standard.py @@ -69,8 +69,8 @@ def total_performance_standard_emissions_rule(mod, z, p): def total_performance_standard_energy_rule(mod, z, p): """ - Calculate total emission allowance from all carbon tax projects in carbon - tax zone + Calculate total energy from all performance standard projects in performance + standard zone :param mod: :param z: :param p: @@ -90,6 +90,29 @@ def total_performance_standard_energy_rule(mod, z, p): rule=total_performance_standard_energy_rule, ) + def total_performance_standard_capacity_rule(mod, z, p): + """ + Calculate total capacity from all performance standard projects in performance + standard zone + :param mod: + :param z: + :param p: + :return: + """ + return sum( + mod.Capacity_MW[prj, prd] + for (prj, prd) in mod.PERFORMANCE_STANDARD_OPR_PRDS + if prj in mod.PERFORMANCE_STANDARD_PRJS_BY_PERFORMANCE_STANDARD_ZONE[z] + and prd == p + ) + + # We'll multiply this by the standard in the balance constraint + # Note this is NOT added to the dynamic components + m.Total_Performance_Standard_Project_Capacity = Expression( + m.PERFORMANCE_STANDARD_ZONE_PERIODS_WITH_PERFORMANCE_STANDARD, + rule=total_performance_standard_capacity_rule, + ) + record_dynamic_components(dynamic_components=d) @@ -127,6 +150,7 @@ def export_results( results_columns = [ "performance_standard_project_emissions_tco2", "performance_standard_project_energy_mwh", + "performance_standard_project_capacity_mw", ] data = [ [ @@ -134,6 +158,7 @@ def export_results( p, value(m.Total_Performance_Standard_Project_Emissions[z, p]), value(m.Total_Performance_Standard_Project_Energy[z, p]), + value(m.Total_Performance_Standard_Project_Capacity[z, p]), ] for (z, p) in m.PERFORMANCE_STANDARD_ZONE_PERIODS_WITH_PERFORMANCE_STANDARD ] diff --git a/gridpath/system/policy/performance_standard/performance_standard.py b/gridpath/system/policy/performance_standard/performance_standard.py index 613351e72..5543dba58 100644 --- a/gridpath/system/policy/performance_standard/performance_standard.py +++ b/gridpath/system/policy/performance_standard/performance_standard.py @@ -26,6 +26,8 @@ from gridpath.common_functions import create_results_df from gridpath.system.policy.performance_standard import PERFORMANCE_STANDARD_Z_PRD_DF +Infinity = float("inf") + def add_model_components( m, @@ -47,9 +49,15 @@ def add_model_components( m.PERFORMANCE_STANDARD_ZONE_PERIODS_WITH_PERFORMANCE_STANDARD = Set( dimen=2, within=m.PERFORMANCE_STANDARD_ZONES * m.PERIODS ) - m.performance_standard = Param( + m.performance_standard_tco2_per_mwh = Param( + m.PERFORMANCE_STANDARD_ZONE_PERIODS_WITH_PERFORMANCE_STANDARD, + within=NonNegativeReals, + default=Infinity, + ) + m.performance_standard_tco2_per_mw = Param( m.PERFORMANCE_STANDARD_ZONE_PERIODS_WITH_PERFORMANCE_STANDARD, within=NonNegativeReals, + default=Infinity, ) @@ -86,12 +94,7 @@ def load_model_data( "performance_standard.tab", ), index=m.PERFORMANCE_STANDARD_ZONE_PERIODS_WITH_PERFORMANCE_STANDARD, - param=m.performance_standard, - select=( - "performance_standard_zone", - "period", - "performance_standard_tco2_per_mwh", - ), + param=(m.performance_standard_tco2_per_mwh, m.performance_standard_tco2_per_mw), ) @@ -115,7 +118,7 @@ def get_inputs_from_database( c = conn.cursor() performance_standard = c.execute( - """SELECT performance_standard_zone, period, performance_standard_tco2_per_mwh + """SELECT performance_standard_zone, period, performance_standard_tco2_per_mwh, performance_standard_tco2_per_mw FROM inputs_system_performance_standard JOIN (SELECT period @@ -226,10 +229,15 @@ def write_model_inputs( # Write header writer.writerow( - ["performance_standard_zone", "period", "performance_standard_tco2_per_mwh"] + [ + "performance_standard_zone", + "period", + "performance_standard_tco2_per_mwh", + "performance_standard_tco2_per_mw", + ] ) - for row in performance_standard: + row = ["." if i is None else i for i in row] writer.writerow(row) @@ -254,12 +262,14 @@ def export_results( """ results_columns = [ "performance_standard_tco2_per_mwh", + "performance_standard_tco2_per_mw", ] data = [ [ z, p, - float(m.performance_standard[z, p]), + float(m.performance_standard_tco2_per_mwh[z, p]), + float(m.performance_standard_tco2_per_mw[z, p]), ] for (z, p) in m.PERFORMANCE_STANDARD_ZONE_PERIODS_WITH_PERFORMANCE_STANDARD ] diff --git a/gridpath/system/policy/performance_standard/performance_standard_balance.py b/gridpath/system/policy/performance_standard/performance_standard_balance.py index 4e4579d74..bc41f1f89 100644 --- a/gridpath/system/policy/performance_standard/performance_standard_balance.py +++ b/gridpath/system/policy/performance_standard/performance_standard_balance.py @@ -26,6 +26,8 @@ from gridpath.common_functions import create_results_df from gridpath.system.policy.performance_standard import PERFORMANCE_STANDARD_Z_PRD_DF +Infinity = float("inf") + def add_model_components( m, @@ -44,20 +46,21 @@ def add_model_components( :return: """ - m.Performance_Standard_Overage = Var( + # Performance standard per energy unit + m.Performance_Standard_Energy_Unit_Overage = Var( m.PERFORMANCE_STANDARD_ZONE_PERIODS_WITH_PERFORMANCE_STANDARD, within=NonNegativeReals, ) - def violation_expression_rule(mod, z, p): - if mod.performance_standard_allow_violation[z]: - return mod.Performance_Standard_Overage[z, p] + def violation_expression_energy_rule(mod, z, p): + if mod.performance_standard_energy_allow_violation[z]: + return mod.Performance_Standard_Energy_Unit_Overage[z, p] else: return 0 - m.Performance_Standard_Overage_Expression = Expression( + m.Performance_Standard_Energy_Unit_Overage_Expression = Expression( m.PERFORMANCE_STANDARD_ZONE_PERIODS_WITH_PERFORMANCE_STANDARD, - rule=violation_expression_rule, + rule=violation_expression_energy_rule, ) m.Total_Performance_Standard_Emissions_from_All_Sources_Expression = Expression( @@ -78,7 +81,7 @@ def violation_expression_rule(mod, z, p): ), ) - def performance_standard_rule(mod, z, p): + def performance_standard_energy_rule(mod, z, p): """ Total carbon emitted must be less than performance standard :param mod: @@ -86,19 +89,75 @@ def performance_standard_rule(mod, z, p): :param p: :return: """ - return ( - mod.Total_Performance_Standard_Emissions_from_All_Sources_Expression[z, p] - - mod.Performance_Standard_Overage_Expression[z, p] - <= ( - mod.Total_Performance_Standard_Project_Energy[z, p] - * mod.performance_standard[z, p] + var = mod.performance_standard_tco2_per_mwh[z, p] + if var == Infinity: + return Constraint.Skip + else: + return ( + mod.Total_Performance_Standard_Emissions_from_All_Sources_Expression[ + z, p + ] + - mod.Performance_Standard_Energy_Unit_Overage_Expression[z, p] + <= ( + mod.Total_Performance_Standard_Project_Energy[z, p] + * mod.performance_standard_tco2_per_mwh[z, p] + ) + + mod.Total_Performance_Standard_Credits_from_All_Sources_Expression[ + z, p + ] ) - + mod.Total_Performance_Standard_Credits_from_All_Sources_Expression[z, p] - ) - m.Performance_Standard_Constraint = Constraint( + m.Performance_Standard_Energy_Unit_Constraint = Constraint( + m.PERFORMANCE_STANDARD_ZONE_PERIODS_WITH_PERFORMANCE_STANDARD, + rule=performance_standard_energy_rule, + ) + + # Performance standard per power unit + m.Performance_Standard_Power_Unit_Overage = Var( m.PERFORMANCE_STANDARD_ZONE_PERIODS_WITH_PERFORMANCE_STANDARD, - rule=performance_standard_rule, + within=NonNegativeReals, + ) + + def violation_expression_power_rule(mod, z, p): + if mod.performance_standard_power_allow_violation[z]: + return mod.Performance_Standard_Power_Unit_Overage[z, p] + else: + return 0 + + m.Performance_Standard_Power_Unit_Overage_Expression = Expression( + m.PERFORMANCE_STANDARD_ZONE_PERIODS_WITH_PERFORMANCE_STANDARD, + rule=violation_expression_power_rule, + ) + + def performance_standard_power_rule(mod, z, p): + """ + Total carbon emitted must be less than performance standard + :param mod: + :param z: + :param p: + :return: + """ + var = mod.performance_standard_tco2_per_mw[z, p] + if var == Infinity: + return Constraint.Skip + else: + return ( + mod.Total_Performance_Standard_Emissions_from_All_Sources_Expression[ + z, p + ] + - mod.Performance_Standard_Power_Unit_Overage_Expression[z, p] + <= ( + mod.Total_Performance_Standard_Project_Capacity[z, p] + * mod.performance_standard_tco2_per_mw[z, p] + ) + + mod.Total_Performance_Standard_Credits_from_All_Sources_Expression[ + z, p + ] + ) + + m.Performance_Standard_Power_Unit_Constraint = Constraint( + m.PERFORMANCE_STANDARD_ZONE_PERIODS_WITH_PERFORMANCE_STANDARD, + rule=performance_standard_power_rule, ) @@ -122,13 +181,15 @@ def export_results( :return: """ results_columns = [ - "performance_standard_overage_tco2", + "performance_standard_energy_overage_tco2", + "performance_standard_power_overage_tco2", ] data = [ [ z, p, - value(m.Performance_Standard_Overage_Expression[z, p]), + value(m.Performance_Standard_Energy_Unit_Overage_Expression[z, p]), + value(m.Performance_Standard_Power_Unit_Overage_Expression[z, p]), ] for (z, p) in m.PERFORMANCE_STANDARD_ZONE_PERIODS_WITH_PERFORMANCE_STANDARD ] @@ -153,7 +214,12 @@ def save_duals( instance, dynamic_components, ): - instance.constraint_indices["Performance_Standard_Constraint"] = [ + instance.constraint_indices["Performance_Standard_Energy_Unit_Constraint"] = [ + "performance_standard_zone", + "period", + "dual", + ] + instance.constraint_indices["Performance_Standard_Power_Unit_Constraint"] = [ "performance_standard_zone", "period", "dual", diff --git a/tests/geography/test_performance_standard_zones.py b/tests/geography/test_performance_standard_zones.py index 385be4186..a06f20052 100644 --- a/tests/geography/test_performance_standard_zones.py +++ b/tests/geography/test_performance_standard_zones.py @@ -108,28 +108,66 @@ def test_data_loaded_correctly(self): expected_performance_standard_zones, actual_performance_standard_zones ) - # Param: performance_standard_allow_violation - expected_allow_violation = OrderedDict( + # Param: performance_standard_energy_allow_violation + expected_energy_allow_violation = OrderedDict( sorted({"PS_Zone1": 0, "PS_Zone2": 0}.items()) ) - actual_allow_violation = OrderedDict( + actual_energy_allow_violation = OrderedDict( sorted( { - z: instance.performance_standard_allow_violation[z] + z: instance.performance_standard_energy_allow_violation[z] for z in instance.PERFORMANCE_STANDARD_ZONES }.items() ) ) - self.assertDictEqual(expected_allow_violation, actual_allow_violation) + self.assertDictEqual( + expected_energy_allow_violation, actual_energy_allow_violation + ) + + # Param: performance_standard_energy_violation_penalty_per_emission + expected_energy_penalty = OrderedDict( + sorted({"PS_Zone1": 0, "PS_Zone2": 0}.items()) + ) + actual_energy_penalty = OrderedDict( + sorted( + { + z: instance.performance_standard_energy_violation_penalty_per_emission[ + z + ] + for z in instance.PERFORMANCE_STANDARD_ZONES + }.items() + ) + ) + self.assertDictEqual(expected_energy_penalty, actual_energy_penalty) + + # Param: performance_standard_power_allow_violation + expected_power_allow_violation = OrderedDict( + sorted({"PS_Zone1": 0, "PS_Zone2": 0}.items()) + ) + actual_power_allow_violation = OrderedDict( + sorted( + { + z: instance.performance_standard_power_allow_violation[z] + for z in instance.PERFORMANCE_STANDARD_ZONES + }.items() + ) + ) + self.assertDictEqual( + expected_power_allow_violation, actual_power_allow_violation + ) - # Param: performance_standard_violation_penalty_per_emission - expected_penalty = OrderedDict(sorted({"PS_Zone1": 0, "PS_Zone2": 0}.items())) - actual_penalty = OrderedDict( + # Param: performance_standard_power_violation_penalty_per_emission + expected_power_penalty = OrderedDict( + sorted({"PS_Zone1": 0, "PS_Zone2": 0}.items()) + ) + actual_power_penalty = OrderedDict( sorted( { - z: instance.performance_standard_violation_penalty_per_emission[z] + z: instance.performance_standard_power_violation_penalty_per_emission[ + z + ] for z in instance.PERFORMANCE_STANDARD_ZONES }.items() ) ) - self.assertDictEqual(expected_penalty, actual_penalty) + self.assertDictEqual(expected_power_penalty, actual_power_penalty) diff --git a/tests/project/operations/test_performance_standard.py b/tests/project/operations/test_performance_standard.py index b1130d1b4..ac16636a3 100644 --- a/tests/project/operations/test_performance_standard.py +++ b/tests/project/operations/test_performance_standard.py @@ -20,7 +20,10 @@ import unittest from tests.common_functions import create_abstract_model, add_components_and_load_data -from tests.project.operations.common_functions import get_project_operational_timepoints +from tests.project.operations.common_functions import ( + get_project_operational_timepoints, + get_project_operational_periods, +) TEST_DATA_DIRECTORY = os.path.join(os.path.dirname(__file__), "..", "..", "test_data") @@ -111,6 +114,27 @@ def test_data_loaded_correctly(self): ) instance = m.create_instance(data) + # Set: PERFORMANCE_STANDARD_PRJS_PERFORMANCE_STANDARD_ZONES + expected_prj_zones = sorted( + [ + ("Gas_CCGT", "PS_Zone1"), + ("Gas_CT", "PS_Zone2"), + ("Gas_CCGT", "PS_Zone2"), + ] + ) + + actual_prj_zones = sorted( + [ + (prj, z) + for ( + prj, + z, + ) in instance.PERFORMANCE_STANDARD_PRJS_PERFORMANCE_STANDARD_ZONES + ] + ) + + self.assertListEqual(expected_prj_zones, actual_prj_zones) + # Set: PERFORMANCE_STANDARD_PRJS expected_performance_standard_projects = sorted( [ @@ -125,25 +149,6 @@ def test_data_loaded_correctly(self): expected_performance_standard_projects, actual_performance_standard_projects ) - # Param: performance_standard_zone - expected_ps_zone_by_prj = OrderedDict( - sorted( - { - "Gas_CCGT": "PS_Zone1", - "Gas_CT": "PS_Zone2", - }.items() - ) - ) - actual_ps_zone_by_prj = OrderedDict( - sorted( - { - p: instance.performance_standard_zone[p] - for p in instance.PERFORMANCE_STANDARD_PRJS - }.items() - ) - ) - self.assertDictEqual(expected_ps_zone_by_prj, actual_ps_zone_by_prj) - # Set: PERFORMANCE_STANDARD_PRJS_BY_PERFORMANCE_STANDARD_ZONE expected_prj_by_zone = OrderedDict( sorted( @@ -153,7 +158,7 @@ def test_data_loaded_correctly(self): "Gas_CCGT", ] ), - "PS_Zone2": sorted(["Gas_CT"]), + "PS_Zone2": sorted(["Gas_CT", "Gas_CCGT"]), }.items() ) ) @@ -184,6 +189,16 @@ def test_data_loaded_correctly(self): ) self.assertListEqual(expected_ps_prj_op_tmp, actual_ps_prj_op_tmp) + # Set: PERFORMANCE_STANDARD_OPR_PRDS + expected_ps_prj_op_prd = sorted( + get_project_operational_periods(expected_performance_standard_projects) + ) + + actual_ps_prj_op_prd = sorted( + [(prj, prd) for (prj, prd) in instance.PERFORMANCE_STANDARD_OPR_PRDS] + ) + self.assertListEqual(expected_ps_prj_op_prd, actual_ps_prj_op_prd) + if __name__ == "__main__": unittest.main() diff --git a/tests/system/policy/performance_standard/test_performance_standard.py b/tests/system/policy/performance_standard/test_performance_standard.py index e18a52e10..343bb0b74 100644 --- a/tests/system/policy/performance_standard/test_performance_standard.py +++ b/tests/system/policy/performance_standard/test_performance_standard.py @@ -122,7 +122,7 @@ def test_data_loaded_correctly(self): ) self.assertListEqual(expected_ps_zone_periods, actual_ps_zone_periods) - # Param: performance_standard + # Param: performance_standard_tco2_per_mwh expected_ps = OrderedDict( sorted( { @@ -136,7 +136,7 @@ def test_data_loaded_correctly(self): actual_ps = OrderedDict( sorted( { - (z, p): instance.performance_standard[z, p] + (z, p): instance.performance_standard_tco2_per_mwh[z, p] for ( z, p, @@ -146,6 +146,30 @@ def test_data_loaded_correctly(self): ) self.assertDictEqual(expected_ps, actual_ps) + # Param: performance_standard_tco2_per_mw + expected_ps_mw = OrderedDict( + sorted( + { + ("PS_Zone1", 2020): 876, + ("PS_Zone1", 2030): 876, + ("PS_Zone2", 2020): 876, + ("PS_Zone2", 2030): 876, + }.items() + ) + ) + actual_ps_mw = OrderedDict( + sorted( + { + (z, p): instance.performance_standard_tco2_per_mw[z, p] + for ( + z, + p, + ) in instance.PERFORMANCE_STANDARD_ZONE_PERIODS_WITH_PERFORMANCE_STANDARD + }.items() + ) + ) + self.assertDictEqual(expected_ps_mw, actual_ps_mw) + if __name__ == "__main__": unittest.main() diff --git a/tests/test_data/inputs/performance_standard.tab b/tests/test_data/inputs/performance_standard.tab index f662e98d5..1c25f8c40 100644 --- a/tests/test_data/inputs/performance_standard.tab +++ b/tests/test_data/inputs/performance_standard.tab @@ -1,5 +1,5 @@ -performance_standard_zone period performance_standard_tco2_per_mwh -PS_Zone1 2020 0.1 -PS_Zone1 2030 0.1 -PS_Zone2 2020 0.1 -PS_Zone2 2030 0.1 +performance_standard_zone period performance_standard_tco2_per_mwh performance_standard_tco2_per_mw +PS_Zone1 2020 0.1 876 +PS_Zone1 2030 0.1 876 +PS_Zone2 2020 0.1 876 +PS_Zone2 2030 0.1 876 \ No newline at end of file diff --git a/tests/test_data/inputs/performance_standard_zones.tab b/tests/test_data/inputs/performance_standard_zones.tab index 8c180f640..e4b419596 100644 --- a/tests/test_data/inputs/performance_standard_zones.tab +++ b/tests/test_data/inputs/performance_standard_zones.tab @@ -1,3 +1,3 @@ -performance_standard_zone allow_violation violation_penalty -PS_Zone1 0 0 -PS_Zone2 0 0 \ No newline at end of file +performance_standard_zone energy_allow_violation violation_penalty power_allow_violation power_violation_penalty +PS_Zone1 0 0 0 0 +PS_Zone2 0 0 0 0 \ No newline at end of file diff --git a/tests/test_data/inputs/project_performance_standard_zones.tab b/tests/test_data/inputs/project_performance_standard_zones.tab new file mode 100644 index 000000000..a408192c4 --- /dev/null +++ b/tests/test_data/inputs/project_performance_standard_zones.tab @@ -0,0 +1,4 @@ +project performance_standard_zone +Gas_CCGT PS_Zone1 +Gas_CT PS_Zone2 +Gas_CCGT PS_Zone2 \ No newline at end of file diff --git a/tests/test_data/inputs/projects.tab b/tests/test_data/inputs/projects.tab index 8c47d31e2..9cf589e1d 100644 --- a/tests/test_data/inputs/projects.tab +++ b/tests/test_data/inputs/projects.tab @@ -1,32 +1,32 @@ -project load_zone capacity_type availability_type variable_om_cost_per_mwh operational_type balancing_type_project lf_reserves_up_ba regulation_up_ba lf_reserves_down_ba regulation_down_ba min_stable_level_fraction startup_cost_per_mw shutdown_cost_per_mw unit_size_mw charging_efficiency discharging_efficiency storage_efficiency last_commitment_stage curtailment_cost_per_pwh energy_target_zone minimum_duration_hours maximum_duration_hours lf_reserves_down_derate lf_reserves_up_derate regulation_down_derate regulation_up_derate startup_plus_ramp_up_rate shutdown_plus_ramp_down_rate ramp_up_when_on_rate ramp_down_when_on_rate ramp_up_violation_penalty ramp_down_violation_penalty min_up_time_hours min_up_time_violation_penalty min_down_time_hours min_down_time_violation_penalty carbon_tax_zone lf_reserves_up_ramp_rate_limit lf_reserves_down_ramp_rate_limit regulation_up_ramp_rate_limit regulation_down_ramp_rate_limit frequency_response_ba frequency_response_partial frequency_response_derate frequency_response_ramp_rate_limit prm_zone prm_type elcc_simple_fraction elcc_surface_name elcc_surface_cap_factor spinning_reserves_ba spinning_reserves_ramp_rate_limit spinning_reserves_derate minimum_duration_for_full_capacity_credit_hours local_capacity_zone local_capacity_fraction startup_fuel_mmbtu_per_mw performance_standard_zone powerunithour_per_fuelunit soc_penalty_cost_per_energyunit soc_last_tmp_penalty_cost_per_energyunit partial_availability_threshold nonfuel_carbon_emissions_per_mwh carbon_credits_generation_zone -Nuclear Zone1 gen_spec exogenous 1 gen_must_run day . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PRM_Zone1 fully_deliverable 0.8 Nuclear 0.123 . . . . Local_Capacity_Zone1 1 . . . . . . . Carbon_Credits_Zone1 -Gas_CCGT Zone1 gen_spec binary 2 gen_commit_cap day Zone1 Zone1 Zone1 Zone1 0.4 1 2 6 . . . 2 . . . . . . . . 0.6 0.6 0.3 0.5 . . 3 . 7 . Carbon_Tax_Zone1 0.1 0.1 0.05 0.05 Zone1 1 . 0.1 PRM_Zone1 fully_deliverable 0.8 . . Zone1 0.1 . . Local_Capacity_Zone1 1 6 PS_Zone1 . . . . 0.44 Carbon_Credits_Zone1 -Coal Zone1 gen_spec exogenous 1 gen_commit_cap day . Zone1 . Zone1 0.4 1 0 6 . . . 1 . . . . . . . . 0.6 0.6 0.2 0.3 . . 2 . 10 . Carbon_Tax_Zone1 . . 0.05 0.05 . . . . PRM_Zone1 fully_deliverable 0.8 . . . . . . Local_Capacity_Zone2 1 6 . . . . . . Carbon_Credits_Zone1 -Gas_CT Zone1 gen_spec continuous 2 gen_commit_cap day . . . . 0.4 0 1 6 . . . 3 . . . . . . . . 0.6 0.6 0.5 0.2 . . 5 . 3 . Carbon_Tax_Zone1 . . . . . . . . PRM_Zone1 fully_deliverable 0.8 . . . . . . Local_Capacity_Zone2 1 0.5 PS_Zone2 . . . . . . -Wind Zone1 gen_spec exogenous 0 gen_var day . . . . . . . . . . . . 10 RPS_Zone_1 . . . . . . . . . . . . . . . . . . . . . . . . . PRM_Zone1 energy_only_allowed 0.8 Wind_Solar 0.123 . . . . . . . . . . . . . . -Gas_CCGT_New Zone1 gen_new_lin exogenous 2 gen_commit_cap day Zone1 Zone1 Zone1 Zone1 0.4 1 2 6 . . . 2 . . . . . . . . 0.6 0.6 0.5 0.8 . . 8 . 5 . Carbon_Tax_Zone1 0.2 0.2 0.05 0.05 Zone1 1 . 0.2 PRM_Zone1 fully_deliverable 0.8 . . Zone1 0.2 . . Local_Capacity_Zone1 1 6 . . . . . . . -Gas_CCGT_New_Binary Zone1 gen_new_bin exogenous 2 gen_commit_cap day Zone1 Zone1 Zone1 Zone1 0.4 1 2 6 . . . 2 . . . . . . . . 0.6 0.6 0.5 0.8 . . 8 . 5 . Carbon_Tax_Zone1 0.2 0.2 0.05 0.05 Zone1 1 . 0.2 PRM_Zone1 fully_deliverable 0.8 . . Zone1 0.2 . . Local_Capacity_Zone1 1 6 . . . . . . . -Gas_CT_New Zone1 gen_new_lin exogenous 2 gen_commit_cap day . . . . 0.4 0 1 6 . . . 3 . . . . . . . . 0.6 0.6 0.8 0.5 . . 5 . 2 . Carbon_Tax_Zone1 . . . . . . . . PRM_Zone1 fully_deliverable 0.8 . . . . . . Local_Capacity_Zone2 1 0.5 . . . . . . . -Nuclear_z2 Zone2 gen_spec exogenous 1 gen_must_run day . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PRM_Zone2 fully_deliverable 0.8 . . . . . . . . . . . . . . . . -Gas_CCGT_z2 Zone2 gen_spec exogenous 2 gen_commit_cap day Zone2 Zone2 Zone2 Zone2 0.4 1 2 6 . . . 2 . . . . . . . . . . . . . . . . . . Carbon_Tax_Zone2 0.1 0.1 0.05 0.05 Zone2 1 . 0.1 PRM_Zone2 fully_deliverable 0.8 . . Zone2 0.1 . . . . 6 . . . . . . . -Coal_z2 Zone2 gen_spec exogenous 1 gen_commit_cap day . Zone2 . Zone2 0.4 1 0 6 . . . 1 . . . . . . . . . . . . . . . . . . Carbon_Tax_Zone2 . . 0.05 0.05 . . . . PRM_Zone2 fully_deliverable 0.8 . . . . . . . . 6 . . . . . . . -Gas_CT_z2 Zone2 gen_spec exogenous 2 gen_commit_cap day . . . . 0.4 0 1 6 . . . 3 . . . . . . . . . . . . . . . . . . Carbon_Tax_Zone2 . . . . . . . . PRM_Zone2 fully_deliverable 0.8 . . . . . . . . . . . . . . . . -Wind_z2 Zone2 gen_spec exogenous 0 gen_var day . . . . . . . . . . . . . RPS_Zone_2 . . . . . . . . . . . . . . . . . . . . . . . . . PRM_Zone2 energy_only_allowed 0.8 Wind_Solar 0.123 . . . . . . . . . . . . . . -Battery Zone1 stor_new_lin exogenous 0 stor year Zone1 Zone1 Zone1 Zone1 . . . . 0.8 0.8 0.9 . 10 . 1 99 . . . . . . . . . . . . . . . 1 1 0.05 0.05 Zone1 0 . 1 PRM_Zone1 fully_deliverable_energy_limited 0.8 . . Zone1 1 . 4 Local_Capacity_Zone1 0.6 . . . 10 100 . . . -Battery_Binary Zone1 stor_new_bin exogenous 0 stor year Zone1 Zone1 Zone1 Zone1 . . . . 0.8 0.8 . . . . 1 . . . . . . . . . . . . . . . . 1 1 0.05 0.05 Zone1 0 . 1 PRM_Zone1 fully_deliverable_energy_limited 0.8 . . Zone1 1 . 4 Local_Capacity_Zone1 0.6 . . . . . . . . -Battery_Specified Zone1 stor_spec exogenous 0 stor day Zone1 Zone1 Zone1 Zone1 . . . . 0.8 0.8 0.5 . . . . . 0.5 0.5 0.5 0.5 . . . . . . . . . . . . . 0.05 0.05 Zone1 0 0.5 . PRM_Zone1 fully_deliverable_energy_limited 0.8 . . Zone1 . 0.5 4 Local_Capacity_Zone2 0.5 . . . . . . . . -Hydro Zone1 gen_spec exogenous 0 gen_hydro day Zone1 Zone1 Zone1 Zone1 . . . . . . . . . . . . . . . . . . 0.5 0.5 . . . . . . . 0.2 0.2 0.05 0.05 Zone1 0 . 0.2 PRM_Zone1 fully_deliverable 0.8 . . Zone1 0.2 . . Local_Capacity_Zone1 0.5 . . . . . . . . -Hydro_NonCurtailable Zone1 gen_spec exogenous 0 gen_hydro_must_take year Zone1 Zone1 Zone1 Zone1 . . . . . . . . . . . . . . . . . . 0.5 0.5 . . . . . . . 0.2 0.2 0.05 0.05 Zone1 0 . 0.2 PRM_Zone1 fully_deliverable 0.8 . . Zone1 0.2 . . Local_Capacity_Zone2 1 . . . . . . . . -Disp_Binary_Commit Zone1 gen_spec exogenous 0 gen_commit_bin day . . . . 0.4 . 1 . . . . 2 . . . . . . . . . 0.6 0.3 0.5 1 . 3 1 7 . Carbon_Tax_Zone1 . . . . . . . . PRM_Zone1 fully_deliverable 0.8 . . . . . . Local_Capacity_Zone1 1 10 . . . . . . . -Disp_Cont_Commit Zone1 gen_spec exogenous 0 gen_commit_lin day . . . . 0.4 . 1 . . . . 2 . . . . . . . . . 0.6 0.3 0.5 1 1 3 1 7 1 Carbon_Tax_Zone1 . . . . . . . . PRM_Zone1 fully_deliverable 0.8 . . . . . . Local_Capacity_Zone2 1 10 . . . . 0.01 . . -Disp_No_Commit Zone1 gen_spec exogenous 0 gen_simple day . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Carbon_Tax_Zone1 . . . . . . . . PRM_Zone1 fully_deliverable 0.8 . . . . . . Local_Capacity_Zone1 1 . . . . . . . . -Clunky_Old_Gen Zone1 gen_ret_lin exogenous 1 gen_commit_lin day . . . . 0.4 . 1 5 . . . 1 . . . . . . . . . . . . . . . . . . Carbon_Tax_Zone1 . . . . . . . . PRM_Zone1 fully_deliverable 0.8 . . . . . . Local_Capacity_Zone2 1 10 . . . . 0.05 . . -Clunky_Old_Gen2 Zone1 gen_ret_bin exogenous 1 gen_commit_lin day . . . . 0.4 . 1 5 . . . 1 . . . . . . . . . . . . . . . . . . Carbon_Tax_Zone1 . . . . . . . . PRM_Zone1 fully_deliverable 0.8 . . . . . . Local_Capacity_Zone2 1 10 . . . . 0.5 . . -Customer_PV Zone1 gen_spec exogenous 0 gen_var_must_take day . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -Nuclear_Flexible Zone1 gen_spec exogenous 1 gen_always_on day . . . . 0.72 . . 584 . . . . . . . . . . . . . . 0.18 0.18 . . . . . . . . . . . . . . . PRM_Zone1 fully_deliverable 0.8 . . . . . . Local_Capacity_Zone1 1 . . . . . . . . -Shift_DR Zone1 dr_new exogenous 0 dr day . . . . . . . . . . . . . . 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Local_Capacity_Zone2 0.2 . . . . . . . . -Wind_Battery_Hybrid Zone1 gen_stor_hyb_spec exogenous 0 gen_var_stor_hyb day . . . . . . . . 0.8 0.8 . . 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -Fuel_Prod Zone1 fuel_prod_spec exogenous 1 fuel_prod year . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 . . . . . -Fuel_Prod_New Zone1 fuel_prod_new exogenous 1 fuel_prod year . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 . . . . . -DAC Zone1 gen_spec exogenous 1 dac day . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Carbon_Credits_Zone2 -Flex_Load Zone1 gen_spec exogenous 0 flex_load day . . . . . . . . 0.9 0.8 0.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . \ No newline at end of file +project load_zone capacity_type availability_type variable_om_cost_per_mwh operational_type balancing_type_project lf_reserves_up_ba regulation_up_ba lf_reserves_down_ba regulation_down_ba min_stable_level_fraction startup_cost_per_mw shutdown_cost_per_mw unit_size_mw charging_efficiency discharging_efficiency storage_efficiency last_commitment_stage curtailment_cost_per_pwh energy_target_zone minimum_duration_hours maximum_duration_hours lf_reserves_down_derate lf_reserves_up_derate regulation_down_derate regulation_up_derate startup_plus_ramp_up_rate shutdown_plus_ramp_down_rate ramp_up_when_on_rate ramp_down_when_on_rate ramp_up_violation_penalty ramp_down_violation_penalty min_up_time_hours min_up_time_violation_penalty min_down_time_hours min_down_time_violation_penalty carbon_tax_zone lf_reserves_up_ramp_rate_limit lf_reserves_down_ramp_rate_limit regulation_up_ramp_rate_limit regulation_down_ramp_rate_limit frequency_response_ba frequency_response_partial frequency_response_derate frequency_response_ramp_rate_limit prm_zone prm_type elcc_simple_fraction elcc_surface_name elcc_surface_cap_factor spinning_reserves_ba spinning_reserves_ramp_rate_limit spinning_reserves_derate minimum_duration_for_full_capacity_credit_hours local_capacity_zone local_capacity_fraction startup_fuel_mmbtu_per_mw powerunithour_per_fuelunit soc_penalty_cost_per_energyunit soc_last_tmp_penalty_cost_per_energyunit partial_availability_threshold nonfuel_carbon_emissions_per_mwh carbon_credits_generation_zone +Nuclear Zone1 gen_spec exogenous 1 gen_must_run day . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PRM_Zone1 fully_deliverable 0.8 Nuclear 0.123 . . . . Local_Capacity_Zone1 1 . . . . . . Carbon_Credits_Zone1 +Gas_CCGT Zone1 gen_spec binary 2 gen_commit_cap day Zone1 Zone1 Zone1 Zone1 0.4 1 2 6 . . . 2 . . . . . . . . 0.6 0.6 0.3 0.5 . . 3 . 7 . Carbon_Tax_Zone1 0.1 0.1 0.05 0.05 Zone1 1 . 0.1 PRM_Zone1 fully_deliverable 0.8 . . Zone1 0.1 . . Local_Capacity_Zone1 1 6 . . . . 0.44 Carbon_Credits_Zone1 +Coal Zone1 gen_spec exogenous 1 gen_commit_cap day . Zone1 . Zone1 0.4 1 0 6 . . . 1 . . . . . . . . 0.6 0.6 0.2 0.3 . . 2 . 10 . Carbon_Tax_Zone1 . . 0.05 0.05 . . . . PRM_Zone1 fully_deliverable 0.8 . . . . . . Local_Capacity_Zone2 1 6 . . . . . Carbon_Credits_Zone1 +Gas_CT Zone1 gen_spec continuous 2 gen_commit_cap day . . . . 0.4 0 1 6 . . . 3 . . . . . . . . 0.6 0.6 0.5 0.2 . . 5 . 3 . Carbon_Tax_Zone1 . . . . . . . . PRM_Zone1 fully_deliverable 0.8 . . . . . . Local_Capacity_Zone2 1 0.5 . . . . . . +Wind Zone1 gen_spec exogenous 0 gen_var day . . . . . . . . . . . . 10 RPS_Zone_1 . . . . . . . . . . . . . . . . . . . . . . . . . PRM_Zone1 energy_only_allowed 0.8 Wind_Solar 0.123 . . . . . . . . . . . . . +Gas_CCGT_New Zone1 gen_new_lin exogenous 2 gen_commit_cap day Zone1 Zone1 Zone1 Zone1 0.4 1 2 6 . . . 2 . . . . . . . . 0.6 0.6 0.5 0.8 . . 8 . 5 . Carbon_Tax_Zone1 0.2 0.2 0.05 0.05 Zone1 1 . 0.2 PRM_Zone1 fully_deliverable 0.8 . . Zone1 0.2 . . Local_Capacity_Zone1 1 6 . . . . . . +Gas_CCGT_New_Binary Zone1 gen_new_bin exogenous 2 gen_commit_cap day Zone1 Zone1 Zone1 Zone1 0.4 1 2 6 . . . 2 . . . . . . . . 0.6 0.6 0.5 0.8 . . 8 . 5 . Carbon_Tax_Zone1 0.2 0.2 0.05 0.05 Zone1 1 . 0.2 PRM_Zone1 fully_deliverable 0.8 . . Zone1 0.2 . . Local_Capacity_Zone1 1 6 . . . . . . +Gas_CT_New Zone1 gen_new_lin exogenous 2 gen_commit_cap day . . . . 0.4 0 1 6 . . . 3 . . . . . . . . 0.6 0.6 0.8 0.5 . . 5 . 2 . Carbon_Tax_Zone1 . . . . . . . . PRM_Zone1 fully_deliverable 0.8 . . . . . . Local_Capacity_Zone2 1 0.5 . . . . . . +Nuclear_z2 Zone2 gen_spec exogenous 1 gen_must_run day . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PRM_Zone2 fully_deliverable 0.8 . . . . . . . . . . . . . . . +Gas_CCGT_z2 Zone2 gen_spec exogenous 2 gen_commit_cap day Zone2 Zone2 Zone2 Zone2 0.4 1 2 6 . . . 2 . . . . . . . . . . . . . . . . . . Carbon_Tax_Zone2 0.1 0.1 0.05 0.05 Zone2 1 . 0.1 PRM_Zone2 fully_deliverable 0.8 . . Zone2 0.1 . . . . 6 . . . . . . +Coal_z2 Zone2 gen_spec exogenous 1 gen_commit_cap day . Zone2 . Zone2 0.4 1 0 6 . . . 1 . . . . . . . . . . . . . . . . . . Carbon_Tax_Zone2 . . 0.05 0.05 . . . . PRM_Zone2 fully_deliverable 0.8 . . . . . . . . 6 . . . . . . +Gas_CT_z2 Zone2 gen_spec exogenous 2 gen_commit_cap day . . . . 0.4 0 1 6 . . . 3 . . . . . . . . . . . . . . . . . . Carbon_Tax_Zone2 . . . . . . . . PRM_Zone2 fully_deliverable 0.8 . . . . . . . . . . . . . . . +Wind_z2 Zone2 gen_spec exogenous 0 gen_var day . . . . . . . . . . . . . RPS_Zone_2 . . . . . . . . . . . . . . . . . . . . . . . . . PRM_Zone2 energy_only_allowed 0.8 Wind_Solar 0.123 . . . . . . . . . . . . . +Battery Zone1 stor_new_lin exogenous 0 stor year Zone1 Zone1 Zone1 Zone1 . . . . 0.8 0.8 0.9 . 10 . 1 99 . . . . . . . . . . . . . . . 1 1 0.05 0.05 Zone1 0 . 1 PRM_Zone1 fully_deliverable_energy_limited 0.8 . . Zone1 1 . 4 Local_Capacity_Zone1 0.6 . . 10 100 . . . +Battery_Binary Zone1 stor_new_bin exogenous 0 stor year Zone1 Zone1 Zone1 Zone1 . . . . 0.8 0.8 . . . . 1 . . . . . . . . . . . . . . . . 1 1 0.05 0.05 Zone1 0 . 1 PRM_Zone1 fully_deliverable_energy_limited 0.8 . . Zone1 1 . 4 Local_Capacity_Zone1 0.6 . . . . . . . +Battery_Specified Zone1 stor_spec exogenous 0 stor day Zone1 Zone1 Zone1 Zone1 . . . . 0.8 0.8 0.5 . . . . . 0.5 0.5 0.5 0.5 . . . . . . . . . . . . . 0.05 0.05 Zone1 0 0.5 . PRM_Zone1 fully_deliverable_energy_limited 0.8 . . Zone1 . 0.5 4 Local_Capacity_Zone2 0.5 . . . . . . . +Hydro Zone1 gen_spec exogenous 0 gen_hydro day Zone1 Zone1 Zone1 Zone1 . . . . . . . . . . . . . . . . . . 0.5 0.5 . . . . . . . 0.2 0.2 0.05 0.05 Zone1 0 . 0.2 PRM_Zone1 fully_deliverable 0.8 . . Zone1 0.2 . . Local_Capacity_Zone1 0.5 . . . . . . . +Hydro_NonCurtailable Zone1 gen_spec exogenous 0 gen_hydro_must_take year Zone1 Zone1 Zone1 Zone1 . . . . . . . . . . . . . . . . . . 0.5 0.5 . . . . . . . 0.2 0.2 0.05 0.05 Zone1 0 . 0.2 PRM_Zone1 fully_deliverable 0.8 . . Zone1 0.2 . . Local_Capacity_Zone2 1 . . . . . . . +Disp_Binary_Commit Zone1 gen_spec exogenous 0 gen_commit_bin day . . . . 0.4 . 1 . . . . 2 . . . . . . . . . 0.6 0.3 0.5 1 . 3 1 7 . Carbon_Tax_Zone1 . . . . . . . . PRM_Zone1 fully_deliverable 0.8 . . . . . . Local_Capacity_Zone1 1 10 . . . . . . +Disp_Cont_Commit Zone1 gen_spec exogenous 0 gen_commit_lin day . . . . 0.4 . 1 . . . . 2 . . . . . . . . . 0.6 0.3 0.5 1 1 3 1 7 1 Carbon_Tax_Zone1 . . . . . . . . PRM_Zone1 fully_deliverable 0.8 . . . . . . Local_Capacity_Zone2 1 10 . . . 0.01 . . +Disp_No_Commit Zone1 gen_spec exogenous 0 gen_simple day . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Carbon_Tax_Zone1 . . . . . . . . PRM_Zone1 fully_deliverable 0.8 . . . . . . Local_Capacity_Zone1 1 . . . . . . . +Clunky_Old_Gen Zone1 gen_ret_lin exogenous 1 gen_commit_lin day . . . . 0.4 . 1 5 . . . 1 . . . . . . . . . . . . . . . . . . Carbon_Tax_Zone1 . . . . . . . . PRM_Zone1 fully_deliverable 0.8 . . . . . . Local_Capacity_Zone2 1 10 . . . 0.05 . . +Clunky_Old_Gen2 Zone1 gen_ret_bin exogenous 1 gen_commit_lin day . . . . 0.4 . 1 5 . . . 1 . . . . . . . . . . . . . . . . . . Carbon_Tax_Zone1 . . . . . . . . PRM_Zone1 fully_deliverable 0.8 . . . . . . Local_Capacity_Zone2 1 10 . . . 0.5 . . +Customer_PV Zone1 gen_spec exogenous 0 gen_var_must_take day . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +Nuclear_Flexible Zone1 gen_spec exogenous 1 gen_always_on day . . . . 0.72 . . 584 . . . . . . . . . . . . . . 0.18 0.18 . . . . . . . . . . . . . . . PRM_Zone1 fully_deliverable 0.8 . . . . . . Local_Capacity_Zone1 1 . . . . . . . +Shift_DR Zone1 dr_new exogenous 0 dr day . . . . . . . . . . . . . . 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Local_Capacity_Zone2 0.2 . . . . . . . +Wind_Battery_Hybrid Zone1 gen_stor_hyb_spec exogenous 0 gen_var_stor_hyb day . . . . . . . . 0.8 0.8 . . 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +Fuel_Prod Zone1 fuel_prod_spec exogenous 1 fuel_prod year . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 . . . . . +Fuel_Prod_New Zone1 fuel_prod_new exogenous 1 fuel_prod year . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 . . . . . +DAC Zone1 gen_spec exogenous 1 dac day . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Carbon_Credits_Zone2 +Flex_Load Zone1 gen_spec exogenous 0 flex_load day . . . . . . . . 0.9 0.8 0.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . \ No newline at end of file diff --git a/tests/test_data/test_scenario_objective_function_values.csv b/tests/test_data/test_scenario_objective_function_values.csv index 8102e3c18..c84235007 100644 --- a/tests/test_data/test_scenario_objective_function_values.csv +++ b/tests/test_data/test_scenario_objective_function_values.csv @@ -113,3 +113,5 @@ ra_toolkit_sync,"{('weather_iteration_2010', 'hydro_iteration_2010', 'availabili 2periods_nuclear_var_cost_by_period_same,"{('', '', '', 1): {1: -75926182429562.45}}","{('', '', '', 1): {1: -75926182429562.45}}",, 2periods_nuclear_var_cost_by_period_diff,"{('', '', '', 1): {1: -75926182955162.45}}","{('', '', '', 1): {1: -75926182955162.45}}",, ra_toolkit_sync_single_year,"{('weather_iteration_2010', 'hydro_iteration_2010', 'availability_iteration_1', 1): {1: -0.0}, ('weather_iteration_2010', 'hydro_iteration_2010', 'availability_iteration_1', 2): {1: -0.0}}","{('weather_iteration_2010', 'hydro_iteration_2010', 'availability_iteration_1', 1): {1: -0.0}, ('weather_iteration_2010', 'hydro_iteration_2010', 'availability_iteration_1', 2): {1: -0.0}}",, +test_performance_standard_power,"{('', '', '', 1): {1: -3504414927375.9478}}","{('', '', '', 1): {1: -3504414927375.9478}}",, +test_performance_standard_both,"{('', '', '', 1): {1: -3592014754469.9077}}","{('', '', '', 1): {1: -3592014754469.9077}}",, diff --git a/tests/test_examples.py b/tests/test_examples.py index e050100b0..4f2793fce 100644 --- a/tests/test_examples.py +++ b/tests/test_examples.py @@ -1331,6 +1331,22 @@ def test_example_ra_toolkit_sync_single_year(self): scenario_name=scenario_name, skip_validation=True ) + def test_test_performance_standard_power(self): + """ + Check validation and objective function values of "test_performance_standard_power" example + :return: + """ + scenario_name = "test_performance_standard_power" + self.validate_and_test_example_generic(scenario_name=scenario_name) + + def test_test_performance_standard_both(self): + """ + Check validation and objective function values of "test_performance_standard_both" example + :return: + """ + scenario_name = "test_performance_standard_both" + self.validate_and_test_example_generic(scenario_name=scenario_name) + @classmethod def tearDownClass(cls): os.remove(DB_PATH)