diff --git a/.gitignore b/.gitignore
index a7a0dd19b3..37885fb785 100644
--- a/.gitignore
+++ b/.gitignore
@@ -47,4 +47,6 @@ test_get_retirement_period.jl
# Test files
test/TDR/TDR_Results_test
-test/MethodofMorris/morris.csv
\ No newline at end of file
+test/MethodofMorris/morris.csv
+!test/VREStor/Results_true/
+!test/ThreeZones/Results_true/
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f37e4b45ac..0e4ff8b392 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -66,6 +66,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- In the examples, change Reg_Max and Rsv_Max of any MUST_RUN generators to 0.
This mitigates but does not fully fix (#576).
- Expressions of virtual charging and discharging costs in storage_all.jl and vre_stor.jl
+- The input file `Generators_data.csv` has been split into different files, one for each type of generator.
+ The new files are: `Thermal.csv`, `Hydro.csv`, `Vre.csv`, `Storage.csv`, `Flex_demand.csv`, `Must_run.csv`,
+ `Electrolyzer.csv`, and `Vre_stor.csv`. The examples have been updated, and new tests have been added to
+ check the new data format (#612).
### Deprecated
- The above `load` keys, which generally refer to electrical demand, are being deprecated.
diff --git a/Example_Systems/Electrolyzer_Example/Generators_data.csv b/Example_Systems/Electrolyzer_Example/Generators_data.csv
deleted file mode 100644
index eca69e60ae..0000000000
--- a/Example_Systems/Electrolyzer_Example/Generators_data.csv
+++ /dev/null
@@ -1,7 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,LDS,ELECTROLYZER,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Resource_Type,ESR_1,ESR_2,region,cluster,Hydrogen_MWh_Per_Tonne,Electrolyzer_Min_kt,Hydrogen_Price_Per_Tonne,Qualified_Hydrogen_Supply
-natural_gas_combined_cycle,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,65400,0,0,10287,0,0,3.55,0,7.43,NG,250,91,2,6,6,0.64,0.64,0,0.468,0,1,1,0,0,natural_gas_fired_combined_cycle,0,0,NE,1,0,0,0,0
-solar_pv,1,0,0,0,0,0,1,0,0,1,1,1,0,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.13,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,solar_photovoltaic,1,1,NE,1,0,0,0,1
-onshore_wind,1,0,0,0,0,0,1,0,0,1,1,1,0,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,onshore_wind_turbine,1,1,NE,1,0,0,0,1
-battery,1,0,0,1,0,0,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,battery_mid,0,0,NE,0,0,0,0,0
-electrolyzer,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,-1,-1,-1,-1,0,0,125000,0,0,15000,0,0,0,0,0,None,1,0,0,0,0,1,1,0,0,0,0,0,0,0,hydrogen_electrolyzer,0,1,NE,0,55,1000,1000,0
-battery_for_electrolyzer,1,0,0,1,0,0,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,21542,24743,0,4895,5622,0,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,battery_mid,0,0,NE,0,0,0,0,1
diff --git a/Example_Systems/Electrolyzer_Example/Resources/Electrolyzer.csv b/Example_Systems/Electrolyzer_Example/Resources/Electrolyzer.csv
new file mode 100644
index 0000000000..7fb4932de4
--- /dev/null
+++ b/Example_Systems/Electrolyzer_Example/Resources/Electrolyzer.csv
@@ -0,0 +1,2 @@
+Resource,Zone,LDS,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Resource_Type,region,cluster,Hydrogen_MWh_Per_Tonne,Electrolyzer_Min_kt,Hydrogen_Price_Per_Tonne,Qualified_Hydrogen_Supply
+electrolyzer,1,0,1,1,0,-1,-1,125000,15000,0.0,0.0,None,1,0,0,1.0,1.0,0.0,hydrogen_electrolyzer,NE,0,55,1000,1000,0
diff --git a/Example_Systems/Electrolyzer_Example/Resources/Storage.csv b/Example_Systems/Electrolyzer_Example/Resources/Storage.csv
new file mode 100644
index 0000000000..0528309a15
--- /dev/null
+++ b/Example_Systems/Electrolyzer_Example/Resources/Storage.csv
@@ -0,0 +1,3 @@
+Resource,Zone,Model,LDS,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Resource_Type,region,cluster,Qualified_Hydrogen_Supply
+battery,1,1,0,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0.0,None,0,0,0,1.0,1.0,0.0,0,0.92,0.92,1,10,battery_mid,NE,0,0
+battery_for_electrolyzer,1,1,0,1,1,0,0,0,-1,-1,-1,0,0,0,21542,24743,0,4895,5622,0,0.15,0.15,0.0,None,0,0,0,1.0,1.0,0.0,0,0.92,0.92,1,10,battery_mid,NE,0,1
diff --git a/Example_Systems/Electrolyzer_Example/Resources/Thermal.csv b/Example_Systems/Electrolyzer_Example/Resources/Thermal.csv
new file mode 100644
index 0000000000..a5afc0dc7f
--- /dev/null
+++ b/Example_Systems/Electrolyzer_Example/Resources/Thermal.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,LDS,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Resource_Type,region,cluster,Qualified_Hydrogen_Supply
+natural_gas_combined_cycle,1,1,0,1,1,0,-1,0,65400,10287,3.55,7.43,NG,250,91,2,6,6,0.64,0.64,0.468,natural_gas_fired_combined_cycle,NE,1,0
diff --git a/Example_Systems/Electrolyzer_Example/Resources/Vre.csv b/Example_Systems/Electrolyzer_Example/Resources/Vre.csv
new file mode 100644
index 0000000000..d9758bf3d7
--- /dev/null
+++ b/Example_Systems/Electrolyzer_Example/Resources/Vre.csv
@@ -0,0 +1,3 @@
+Resource,Zone,LDS,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Resource_Type,region,cluster,Qualified_Hydrogen_Supply
+solar_pv,1,0,1,1,1,0,-1,0,85300,18760,0.0,9.13,None,0,0,0,1.0,1.0,0.0,solar_photovoltaic,NE,1,1
+onshore_wind,1,0,1,1,1,0,-1,0,97200,43205,0.1,9.12,None,0,0,0,1.0,1.0,0.0,onshore_wind_turbine,NE,1,1
diff --git a/Example_Systems/MethodofMorrisExample/OneZone/Generators_data.csv b/Example_Systems/MethodofMorrisExample/OneZone/Generators_data.csv
deleted file mode 100644
index f089945913..0000000000
--- a/Example_Systems/MethodofMorrisExample/OneZone/Generators_data.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,LDS,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag_1,MinCapTag_2,MinCapTag_3,MGA,Resource_Type,CapRes_1,ESR_1,ESR_2,region,cluster
-natural_gas_combined_cycle,1,1,0,0,0,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,65400,0,0,10287,0,0,3.55,0,7.43,NG,250,91,2,6,6,0.64,0.64,0,0.468,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,natural_gas_fired_combined_cycle,0.93,0,0,NE,1
-solar_pv,1,0,0,0,0,0,1,0,1,1,1,0,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.13,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,1,0,0,1,solar_photovoltaic,0.8,1,1,NE,1
-onshore_wind,1,0,0,0,0,0,1,0,1,1,1,0,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,1,onshore_wind_turbine,0.8,1,1,NE,1
-battery,1,0,0,1,0,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,0,0,1,0,battery_mid,0.95,0,0,NE,0
diff --git a/Example_Systems/MethodofMorrisExample/OneZone/Resources/Storage.csv b/Example_Systems/MethodofMorrisExample/OneZone/Resources/Storage.csv
new file mode 100644
index 0000000000..bf656d0278
--- /dev/null
+++ b/Example_Systems/MethodofMorrisExample/OneZone/Resources/Storage.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,LDS,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster
+battery,1,1,0,1,0,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0.0,None,0,0,0,1.0,1.0,0,0.0,0,0.92,0.92,1,10,0.0,0.0,0,0,0,battery_mid,NE,0
diff --git a/Example_Systems/MethodofMorrisExample/OneZone/Resources/Thermal.csv b/Example_Systems/MethodofMorrisExample/OneZone/Resources/Thermal.csv
new file mode 100644
index 0000000000..69bb843c0a
--- /dev/null
+++ b/Example_Systems/MethodofMorrisExample/OneZone/Resources/Thermal.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,LDS,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster
+natural_gas_combined_cycle,1,1,0,1,0,0,-1,0,65400,10287,3.55,7.43,NG,250,91,2,6,6,0.64,0.64,0,0.468,0.25,0.5,0,0,1,natural_gas_fired_combined_cycle,NE,1
diff --git a/Example_Systems/MethodofMorrisExample/OneZone/Resources/Vre.csv b/Example_Systems/MethodofMorrisExample/OneZone/Resources/Vre.csv
new file mode 100644
index 0000000000..48d0d25386
--- /dev/null
+++ b/Example_Systems/MethodofMorrisExample/OneZone/Resources/Vre.csv
@@ -0,0 +1,3 @@
+Resource,Zone,LDS,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster
+solar_pv,1,0,1,1,0,0,-1,0,85300,18760,0.0,9.13,None,0,0,0,1.0,1.0,0,0.0,0.0,0.0,0,0,1,solar_photovoltaic,NE,1
+onshore_wind,1,0,1,1,0,0,-1,0,97200,43205,0.1,9.12,None,0,0,0,1.0,1.0,0,0.0,0.0,0.0,0,0,1,onshore_wind_turbine,NE,1
diff --git a/Example_Systems/PiecewiseFuel_CO2_Example/Generators_data.csv b/Example_Systems/PiecewiseFuel_CO2_Example/Generators_data.csv
deleted file mode 100644
index a60a81192d..0000000000
--- a/Example_Systems/PiecewiseFuel_CO2_Example/Generators_data.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,LDS,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Eff_Up,Eff_Down,Resource_Type,region,cluster,PWFU_Fuel_Usage_Zero_Load_MMBTU_per_h,PWFU_Heat_Rate_MMBTU_per_MWh_1,PWFU_Heat_Rate_MMBTU_per_MWh_2,PWFU_Load_Point_MW_1,PWFU_Load_Point_MW_2,CO2_Capture_Fraction,CO2_Capture_Fraction_Startup,CCS_Disposal_Cost_per_Metric_Ton,Biomass
-onshore_wind,1,0,0,0,0,0,1,0,1,0,1,15000,0,0,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,None,100,0,0,0,0,1,1,0,1,1,onshore_wind_turbine,NE,1,0,0,0,0,0,0,0,0,0
-natural_gas_combined_cycle_ccs,1,1,0,0,0,0,0,0,0,0,1,15000,0,0,-1,-1,-1,0,0,0,0,0,0,0,5,0,0,NG,250,91,2,6,6,0.64,0.64,0.468,1,1,natural_gas_fired_combined_cycle_ccs,NE,1,400,6,7.2,160,250,0.9,0.6,20,0
-biomass_ccs,1,1,0,0,0,0,0,0,0,0,1,300,0,0,-1,-1,-1,0,0,0,0,0,0,0,10,0,10,Biomass,300,91,2,6,6,0.64,0.64,0.468,1,1,biomass_ccs,NE,1,0,0,0,0,0,0.9,0.6,20,1
diff --git a/Example_Systems/PiecewiseFuel_CO2_Example/Resources/Thermal.csv b/Example_Systems/PiecewiseFuel_CO2_Example/Resources/Thermal.csv
new file mode 100644
index 0000000000..22848e5d5c
--- /dev/null
+++ b/Example_Systems/PiecewiseFuel_CO2_Example/Resources/Thermal.csv
@@ -0,0 +1,3 @@
+Resource,Zone,Model,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Eff_Up,Eff_Down,Resource_Type,region,cluster,PWFU_Fuel_Usage_Zero_Load_MMBTU_per_h,PWFU_Heat_Rate_MMBTU_per_MWh_1,PWFU_Heat_Rate_MMBTU_per_MWh_2,PWFU_Load_Point_MW_1,PWFU_Load_Point_MW_2,CO2_Capture_Fraction,CO2_Capture_Fraction_Startup,CCS_Disposal_Cost_per_Metric_Ton,Biomass
+natural_gas_combined_cycle_ccs,1,1,0,0,1,15000,0,0,-1,-1,-1,0,0,0,0,0,0,0,5,0,0,NG,250,91,2,6,6,0.64,0.64,0.468,1,1,natural_gas_fired_combined_cycle_ccs,NE,1,400,6,7.2,160,250,0.9,0.6,20,0
+biomass_ccs,1,1,0,0,1,300,0,0,-1,-1,-1,0,0,0,0,0,0,0,10,0,10,Biomass,300,91,2,6,6,0.64,0.64,0.468,1,1,biomass_ccs,NE,1,0,0,0,0,0,0.9,0.6,20,1
\ No newline at end of file
diff --git a/Example_Systems/PiecewiseFuel_CO2_Example/Resources/Vre.csv b/Example_Systems/PiecewiseFuel_CO2_Example/Resources/Vre.csv
new file mode 100644
index 0000000000..2c8960f7d0
--- /dev/null
+++ b/Example_Systems/PiecewiseFuel_CO2_Example/Resources/Vre.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Eff_Up,Eff_Down,Resource_Type,region,cluster,PWFU_Fuel_Usage_Zero_Load_MMBTU_per_h,PWFU_Heat_Rate_MMBTU_per_MWh_1,PWFU_Heat_Rate_MMBTU_per_MWh_2,PWFU_Load_Point_MW_1,PWFU_Load_Point_MW_2,CO2_Capture_Fraction,CO2_Capture_Fraction_Startup,CCS_Disposal_Cost_per_Metric_Ton,Biomass
+onshore_wind,1,1,0,1,15000,0,0,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,None,100,0,0,0,0,1,1,0,1,1,onshore_wind_turbine,NE,1,0,0,0,0,0,0,0,0,0
\ No newline at end of file
diff --git a/Example_Systems/ProprietarySolver/Generators_data.csv b/Example_Systems/ProprietarySolver/Generators_data.csv
deleted file mode 100644
index 8f0d856757..0000000000
--- a/Example_Systems/ProprietarySolver/Generators_data.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,LDS,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,MaxCapTag_1,MaxCapTag_2,MaxCapTag_3,Resource_Type,CapRes_1,region,cluster
-natural_gas_combined_cycle,1,1,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,65400,0,0,10287,0,0,3.55,0,7.43,NG,250,91,2,6,6,0.64,0.64,0.468,0,1,1,0,0,0,0,0,natural_gas_fired_combined_cycle,0.93,NE,1
-solar_pv,1,0,0,0,0,0,1,0,1,1,0,0,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.13,None,0,0,0,0,0,1,1,0,0,1,1,0,0,1,0,0,solar_photovoltaic,0.8,NE,1
-onshore_wind,1,0,0,0,0,0,1,0,1,1,0,0,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,0,0,0,0,1,1,0,0,1,1,0,0,0,1,0,onshore_wind_turbine,0.8,NE,1
-battery,1,0,0,1,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0.92,0.92,1,10,0,0,1,battery_mid,0.95,NE,0
diff --git a/Example_Systems/ProprietarySolver/Resources/Resource_capacity_reserve_margin.csv b/Example_Systems/ProprietarySolver/Resources/Resource_capacity_reserve_margin.csv
new file mode 100644
index 0000000000..d2b3c6dc02
--- /dev/null
+++ b/Example_Systems/ProprietarySolver/Resources/Resource_capacity_reserve_margin.csv
@@ -0,0 +1,5 @@
+Resource,Derating_Factor
+natural_gas_combined_cycle,0.93
+solar_pv,0.8
+onshore_wind,0.8
+battery,0.95
\ No newline at end of file
diff --git a/Example_Systems/ProprietarySolver/Resources/Resource_maximum_capacity_requirement.csv b/Example_Systems/ProprietarySolver/Resources/Resource_maximum_capacity_requirement.csv
new file mode 100644
index 0000000000..68736c15dc
--- /dev/null
+++ b/Example_Systems/ProprietarySolver/Resources/Resource_maximum_capacity_requirement.csv
@@ -0,0 +1,4 @@
+Resource,Max_Cap_1,Max_Cap_2,Max_Cap_3
+solar_pv,1,0,0
+onshore_wind,0,1,0
+battery,0,0,1
\ No newline at end of file
diff --git a/Example_Systems/ProprietarySolver/Resources/Storage.csv b/Example_Systems/ProprietarySolver/Resources/Storage.csv
new file mode 100644
index 0000000000..03fd2b1a46
--- /dev/null
+++ b/Example_Systems/ProprietarySolver/Resources/Storage.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,LDS,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Resource_Type,region,cluster
+battery,1,1,0,1,0,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0.0,None,0,0,0,1.0,1.0,0.0,0,0.92,0.92,1,10,battery_mid,NE,0
diff --git a/Example_Systems/ProprietarySolver/Resources/Thermal.csv b/Example_Systems/ProprietarySolver/Resources/Thermal.csv
new file mode 100644
index 0000000000..424365b1e7
--- /dev/null
+++ b/Example_Systems/ProprietarySolver/Resources/Thermal.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,LDS,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Resource_Type,region,cluster
+natural_gas_combined_cycle,1,1,0,1,0,0,-1,0,65400,10287,3.55,7.43,NG,250,91,2,6,6,0.64,0.64,0.468,natural_gas_fired_combined_cycle,NE,1
diff --git a/Example_Systems/ProprietarySolver/Resources/Vre.csv b/Example_Systems/ProprietarySolver/Resources/Vre.csv
new file mode 100644
index 0000000000..58e3419bcc
--- /dev/null
+++ b/Example_Systems/ProprietarySolver/Resources/Vre.csv
@@ -0,0 +1,3 @@
+Resource,Zone,LDS,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Resource_Type,region,cluster
+solar_pv,1,0,1,1,0,0,-1,0,85300,18760,0.0,9.13,None,0,0,0,1.0,1.0,0.0,solar_photovoltaic,NE,1
+onshore_wind,1,0,1,1,0,0,-1,0,97200,43205,0.1,9.12,None,0,0,0,1.0,1.0,0.0,onshore_wind_turbine,NE,1
diff --git a/Example_Systems/RealSystemExample/ISONE_Singlezone/Generators_data.csv b/Example_Systems/RealSystemExample/ISONE_Singlezone/Generators_data.csv
deleted file mode 100644
index af5bd40785..0000000000
--- a/Example_Systems/RealSystemExample/ISONE_Singlezone/Generators_data.csv
+++ /dev/null
@@ -1,59 +0,0 @@
-region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,THERM,STOR,HYDRO,FLEX,MUST_RUN,VRE,LDS,Num_VRE_Bins,CapRes_1,ESR_1,ESR_2,Existing_Cap_MW,Existing_Charge_Cap_MW,Existing_Cap_MWh,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Min_Charge_Cap_MW,Max_Charge_Cap_MW,Min_Cap_MWh,Max_Cap_MWh,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Self_Disch,Eff_Up,Eff_Down,Hydro_Energy_to_Power_Ratio,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Ramp_Up_Percentage,Ramp_Dn_Percentage,Up_Time,Down_Time,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag_1,MinCapTag_2,MinCapTag_3
-NENGREST,1,NENGREST_biomass_1,other_renewables,0,1,1,1,0,0,0,0,0,0,0,0.93,1,1,106.062,0,0,0,0,3.21,0,0,0,-1,0,-1,0,122976,0,0,0,0,5.08,0,0,0,14.58,None,0.45,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENGREST,1,NENGREST_conventional_hydroelectric_1,other_renewables,0,2,1,0,0,1,0,0,0,0,0,0.8,0,1,662.983,0,0,0,0,11.24,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.116,0,1,1,1,0,0,0,0,1,0.083,0.083,0,0,0.006916667,0.013833333,0,0,0,0,0
-NENGREST,1,NENGREST_hydroelectric_pumped_storage_1,hydroelectric_pumped_storage,0,3,1,0,1,0,0,0,0,0,0,0.95,0,0,1768.002,0,280635.2381,0,0,294.67,0,0,0,-1,0,-1,0,40113,0,0,0,0,0,0,0,0,0,None,0.532,0,0.866,0.866,158.730159,0,200,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENGREST,1,NENGREST_natural_gas_fired_combined_cycle_1,natural_gas,1,4,1,1,0,0,0,0,0,0,0,0.93,0,0,7077.3,0,0,0,1,471.82,0,0,0,-1,0,-1,0,10287,0,0,0,0,3.55,0,91,2,7.43,NENGREST_NG,0.468,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENGREST,2,NENGREST_natural_gas_fired_combined_cycle_2,natural_gas,1,5,1,1,0,0,0,0,0,0,0,0.93,0,0,2684.803,0,0,0,1,244.07,0,0,0,-1,0,-1,0,16291,0,0,0,0,4.5,0,91,2,8.29,NENGREST_NG,0.507,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENGREST,1,NENGREST_natural_gas_fired_combustion_turbine_1,natural_gas,1,6,1,1,0,0,0,0,0,0,0,0.93,0,0,302.701,0,0,0,1,43.24,0,0,0,-1,0,-1,0,12080,0,0,0,0,4.6,0,118,3.5,10.13,NENGREST_NG,0.456,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0
-NENGREST,2,NENGREST_natural_gas_fired_combustion_turbine_2,natural_gas,1,7,1,1,0,0,0,0,0,0,0,0.93,0,0,62.704,0,0,0,1,7.84,0,0,0,-1,0,-1,0,13991,0,0,0,0,4.6,0,118,3.5,4.74,NENGREST_NG,0.488,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0
-NENGREST,1,NENGREST_natural_gas_steam_turbine_1,natural_gas,1,8,1,1,0,0,0,0,0,0,0,0.93,0,0,0.6,0,0,0,1,0.6,0,0,0,-1,0,-1,0,50678,0,0,0,0,1.04,0,86,13.7,0,NENGREST_NG,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0
-NENGREST,1,NENGREST_nuclear_1,nuclear,1,9,1,1,0,0,0,0,0,0,0,0.93,0,1,1242,0,0,0,1,1242,0,0,0,-1,0,-1,0,271818,0,0,0,0,2.32,0,245,0,10.46,new_england_uranium,0.5,0,1,1,1,0,0,0,0,1,0.25,0.25,24,24,0.020833333,0.041666667,0,0,0,0,0
-NENGREST,1,NENGREST_offshore_wind_turbine_1,offshore_wind,1,10,1,0,0,0,0,0,1,0,1,0.8,1,1,30,0,0,0,1,30,0,0,0,-1,0,-1,0,128440,0,0,0,0,0,0,0,0,9.12,None,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0
-NENGREST,1,NENGREST_onshore_wind_turbine_1,onshore_wind,1,11,1,0,0,0,0,0,1,0,1,0.8,1,1,145.8,0,0,0,1,9.75,0,0,0,-1,0,-1,0,43205,0,0,0,0,-18,0,0,0,9.12,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,1,0,0
-NENGREST,1,NENGREST_small_hydroelectric_1,other_renewables,0,12,1,0,0,0,0,1,0,0,0,0,1,1,186.355,0,0,0,0,0.79,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.116,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0
-NENGREST,1,NENGREST_solar_photovoltaic_1,solar,1,13,1,0,0,0,0,0,1,0,1,0.8,1,1,821.4,0,0,0,1,2.6,0,0,0,-1,0,-1,0,18760,0,0,0,0,0,0,0,0,9.13,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,1
-NENG_CT,1,NENG_CT_biomass_1,other_renewables,0,14,1,1,0,0,0,0,0,0,0,0.93,1,1,27.248,0,0,0,0,3.41,0,0,0,-1,0,-1,0,122976,0,0,0,0,5.37,0,0,0,15.33,None,0.348,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_CT,1,NENG_CT_conventional_hydroelectric_1,other_renewables,0,15,1,0,0,1,0,0,0,0,0,0.8,0,1,67.7,0,0,0,0,13.54,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.18,0,1,1,1,0,0,0,0,1,0.083,0.083,0,0,0.006916667,0.013833333,0,0,0,0,0
-NENG_CT,1,NENG_CT_hydroelectric_pumped_storage_1,hydroelectric_pumped_storage,0,16,1,0,1,0,0,0,0,0,0,0.95,0,0,30.999,0,4920.47619,0,0,10.33,0,0,0,-1,0,-1,0,40113,0,0,0,0,0,0,0,0,0,None,0.871,0,0.866,0.866,158.730159,0,200,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_CT,1,NENG_CT_natural_gas_fired_combined_cycle_1,natural_gas,1,17,1,1,0,0,0,0,0,0,0,0.93,0,0,3488.704,0,0,0,1,436.09,0,0,0,-1,0,-1,0,9698,0,0,0,0,3.57,0,91,2,7.12,NENG_CT_NG,0.338,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_CT,2,NENG_CT_natural_gas_fired_combined_cycle_2,natural_gas,1,18,1,1,0,0,0,0,0,0,0,0.93,0,0,35.2,0,0,0,1,17.6,0,0,0,-1,0,-1,0,16291,0,0,0,0,4.5,0,91,2,10.77,NENG_CT_NG,0.466,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_CT,1,NENG_CT_natural_gas_fired_combustion_turbine_1,natural_gas,1,19,1,1,0,0,0,0,0,0,0,0.93,0,0,434,0,0,0,1,54.25,0,0,0,-1,0,-1,0,10609,0,0,0,0,4.6,0,118,3.5,11.06,NENG_CT_NG,0.124,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0
-NENG_CT,2,NENG_CT_natural_gas_fired_combustion_turbine_2,natural_gas,1,20,1,1,0,0,0,0,0,0,0,0.93,0,0,124.9,0,0,0,1,24.98,0,0,0,-1,0,-1,0,13991,0,0,0,0,4.6,0,118,3.5,8.35,NENG_CT_NG,0.476,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0
-NENG_CT,1,NENG_CT_nuclear_1,nuclear,1,21,1,1,0,0,0,0,0,0,0,0.93,0,1,2162.9,0,0,0,1,1081.45,0,0,0,-1,0,-1,0,190920,0,0,0,0,2.32,0,245,0,10.46,new_england_uranium,0.5,0,1,1,1,0,0,0,0,1,0.25,0.25,24,24,0.020833333,0.041666667,0,0,0,0,0
-NENG_CT,1,NENG_CT_onshore_wind_turbine_1,onshore_wind,1,22,1,0,0,0,0,0,1,0,1,0.8,1,1,6.5,0,0,0,1,5,0,0,0,-1,0,-1,0,43205,0,0,0,0,-18,0,0,0,9.12,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_CT,1,NENG_CT_small_hydroelectric_1,other_renewables,0,23,1,0,0,0,0,1,0,0,0,0,1,1,18.711,0,0,0,0,0.57,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.18,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0
-NENG_CT,1,NENG_CT_solar_photovoltaic_1,solar,1,24,1,0,0,0,0,0,1,0,1,0.8,1,1,374.6,0,0,0,1,5.67,0,0,0,-1,0,-1,0,18760,0,0,0,0,0,0,0,0,9.16,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_ME,1,NENG_ME_biomass_1,other_renewables,0,25,1,1,0,0,0,0,0,0,0,0.93,1,1,24.95,0,0,0,0,2.5,0,0,0,-1,0,-1,0,122976,0,0,0,0,4.85,0,0,0,13.84,None,0.404,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_ME,1,NENG_ME_conventional_hydroelectric_1,other_renewables,0,26,1,0,0,1,0,0,0,0,0,0.8,0,1,327.81,0,0,0,0,7.8,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.402,0,1,1,1,0,0,0,0,1,0.083,0.083,0,0,0.006916667,0.013833333,0,0,0,0,0
-NENG_ME,1,NENG_ME_natural_gas_fired_combined_cycle_1,natural_gas,1,27,1,1,0,0,0,0,0,0,0,0.93,0,0,274.5,0,0,0,1,137.25,0,0,0,-1,0,-1,0,16291,0,0,0,0,4.5,0,91,2,12.62,NENG_ME_NG,0.474,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_ME,2,NENG_ME_natural_gas_fired_combined_cycle_2,natural_gas,1,28,1,1,0,0,0,0,0,0,0,0.93,0,0,1114.1,0,0,0,1,557.05,0,0,0,-1,0,-1,0,9668,0,0,0,0,3.57,0,91,2,7.65,NENG_ME_NG,0.386,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_ME,1,NENG_ME_natural_gas_fired_combustion_turbine_1,natural_gas,1,29,1,1,0,0,0,0,0,0,0,0.93,0,0,163.5,0,0,0,1,54.5,0,0,0,-1,0,-1,0,11540,0,0,0,0,4.6,0,118,3.5,4.75,NENG_ME_NG,0.697,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0
-NENG_ME,1,NENG_ME_onshore_wind_turbine_1,onshore_wind,1,30,1,0,0,0,0,0,1,0,1,0.8,1,1,1190.9,0,0,0,1,48.5,0,0,0,-1,0,-1,0,43205,0,0,0,0,-18,0,0,0,9.12,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,1,0,0
-NENG_ME,1,NENG_ME_small_hydroelectric_1,other_renewables,0,31,1,0,0,0,0,1,0,0,0,0,1,1,195.266,0,0,0,0,1.1,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.192,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0
-NENG_ME,1,NENG_ME_solar_photovoltaic_1,solar,1,32,1,0,0,0,0,0,1,0,1,0.8,1,1,11.8,0,0,0,1,1.5,0,0,0,-1,0,-1,0,18760,0,0,0,0,0,0,0,0,9.12,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENGREST,0,NENGREST_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,33,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,229388,27483,0,0,0,0,5.82,0,103,0,7.52,NENGREST_NG_ccs90,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENGREST,0,NENGREST_naturalgas_ccavgcf_mid_0,natural_gas,1,34,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,1,1,500,0,-1,0,-1,0,-1,110025,12441,0,0,0,0,1.61,0,103,2,6.27,NENGREST_NG,0.2,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENGREST,0,NENGREST_naturalgas_ctavgcf_mid_0,natural_gas,1,35,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,1,1,100,0,-1,0,-1,0,-1,81998,6960,0,0,0,0,4.49,0,134,3.5,9.9,NENGREST_NG,0.3,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0
-NENGREST,0,NENGREST_battery_mid_0,battery_mid,0,36,1,0,1,0,0,0,0,0,0,0.95,0,0,0,0,0,1,1,1,0,-1,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0,0,None,0,0,0.92,0.92,1,1,10,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENGREST,0,NENGREST_naturalgas_ccs100_mid_0,natural_gas_CCS,1,37,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,239841,37153,0,0,0,0,6.26,0,103,0,7.89,NENGREST_NG_ccs100,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENGREST,1,NENGREST_landbasedwind_ltrg1_mid_130_1,onshore_wind,1,38,1,0,0,0,0,0,1,0,1,0.8,1,1,0,0,0,1,1,1,0,4888.236,0,-1,0,-1,194100,41460,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,1,0,0
-NENGREST,1,NENGREST_utilitypv_losangeles_mid_80_0_2_1,solar,1,39,1,0,0,0,0,0,1,0,1,0.8,1,1,0,0,0,1,1,1,0,20835.569,0,-1,0,-1,99283,13055,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,1
-NENGREST,1,NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,offshore_wind,1,40,1,0,0,0,0,0,1,0,1,0.8,1,1,0,0,0,1,1,1,0,9848.442,0,-1,0,-1,260044,91549,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,1,1,0
-NENG_CT,0,NENG_CT_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,41,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,229388,27483,0,0,0,0,5.82,0,103,0,7.52,NENG_CT_NG_ccs90,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_CT,0,NENG_CT_naturalgas_ccavgcf_mid_0,natural_gas,1,42,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,1,1,500,0,-1,0,-1,0,-1,110025,12441,0,0,0,0,1.61,0,103,2,6.27,NENG_CT_NG,0.2,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_CT,0,NENG_CT_naturalgas_ctavgcf_mid_0,natural_gas,1,43,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,1,1,100,0,-1,0,-1,0,-1,81998,6960,0,0,0,0,4.49,0,134,3.5,9.9,NENG_CT_NG,0.3,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0
-NENG_CT,0,NENG_CT_battery_mid_0,battery_mid,0,44,1,0,1,0,0,0,0,0,0,0.95,0,0,0,0,0,1,1,1,0,-1,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0,0,None,0,0,0.92,0.92,1,1,10,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_CT,0,NENG_CT_naturalgas_ccs100_mid_0,natural_gas_CCS,1,45,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,239841,37153,0,0,0,0,6.26,0,103,0,7.89,NENG_CT_NG_ccs100,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_CT,1,NENG_CT_landbasedwind_ltrg1_mid_110_1,onshore_wind,1,46,1,0,0,0,0,0,1,0,1,0.8,1,1,0,0,0,1,1,1,0,1982.895,0,-1,0,-1,185181,41460,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_CT,1,NENG_CT_utilitypv_losangeles_mid_80_0_2_1,solar,1,47,1,0,0,0,0,0,1,0,1,0.8,1,1,0,0,0,1,1,1,0,17063.264,0,-1,0,-1,98631,13055,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_CT,1,NENG_CT_offshorewind_otrg3_mid_fixed_1_176_77_1,offshore_wind,1,48,1,0,0,0,0,0,1,0,1,0.8,1,1,0,0,0,1,1,1,0,477.5,0,-1,0,-1,247542,91549,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_ME,0,NENG_ME_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,49,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,229388,27483,0,0,0,0,5.82,0,103,0,7.52,NENG_ME_NG_ccs90,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_ME,0,NENG_ME_naturalgas_ccavgcf_mid_0,natural_gas,1,50,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,1,1,500,0,-1,0,-1,0,-1,110025,12441,0,0,0,0,1.61,0,103,2,6.27,NENG_ME_NG,0.2,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_ME,0,NENG_ME_naturalgas_ctavgcf_mid_0,natural_gas,1,51,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,1,1,100,0,-1,0,-1,0,-1,81998,6960,0,0,0,0,4.49,0,134,3.5,9.9,NENG_ME_NG,0.3,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0
-NENG_ME,0,NENG_ME_battery_mid_0,battery_mid,0,52,1,0,1,0,0,0,0,0,0,0.95,0,0,0,0,0,1,1,1,0,-1,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0,0,None,0,0,0.92,0.92,1,1,10,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_ME,0,NENG_ME_naturalgas_ccs100_mid_0,natural_gas_CCS,1,53,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,239841,37153,0,0,0,0,6.26,0,103,0,7.89,NENG_ME_NG_ccs100,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_ME,1,NENG_ME_landbasedwind_ltrg1_mid_110_1,onshore_wind,1,54,1,0,0,0,0,0,1,0,1,0.8,1,1,0,0,0,1,1,1,0,20430.499,0,-1,0,-1,233173,41460,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,1,0,0
-NENG_ME,1,NENG_ME_utilitypv_losangeles_mid_100_0_2_1,solar,1,55,1,0,0,0,0,0,1,0,1,0.8,1,1,0,0,0,1,1,1,0,21535.709,0,-1,0,-1,98706,13055,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENGREST,1,NENGREST_heat_load_shifting_1,heat_load_shifting,0,56,1,0,0,0,1,0,0,0,0,0.95,0,0,165.52,0,0,0,0,0,0,0,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,4,1,0,0,0,0,0,0,0,0,0,0,0
-NENG_CT,1,NENG_CT_heat_load_shifting_1,heat_load_shifting,0,57,1,0,0,0,1,0,0,0,0,0.95,0,0,47.27,0,0,0,0,0,0,0,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,4,1,0,0,0,0,0,0,0,0,0,0,0
-NENG_ME,1,NENG_ME_heat_load_shifting_1,heat_load_shifting,0,58,1,0,0,0,1,0,0,0,0,0.95,0,0,22.56,0,0,0,0,0,0,0,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,4,1,0,0,0,0,0,0,0,0,0,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Singlezone/Resources/Flex_demand.csv b/Example_Systems/RealSystemExample/ISONE_Singlezone/Resources/Flex_demand.csv
new file mode 100644
index 0000000000..f76b1cff20
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Singlezone/Resources/Flex_demand.csv
@@ -0,0 +1,4 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,LDS,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost
+NENGREST,1,NENGREST_heat_load_shifting_1,heat_load_shifting,0,56,1,0,165.52,0,0,0.0,0,0.0,0,0,0.0,0,0.0,0.0,None,0.0,0.0,0,4,1,0.0,0.0,0.0,0.0,0,0
+NENG_CT,1,NENG_CT_heat_load_shifting_1,heat_load_shifting,0,57,1,0,47.27,0,0,0.0,0,0.0,0,0,0.0,0,0.0,0.0,None,0.0,0.0,0,4,1,0.0,0.0,0.0,0.0,0,0
+NENG_ME,1,NENG_ME_heat_load_shifting_1,heat_load_shifting,0,58,1,0,22.56,0,0,0.0,0,0.0,0,0,0.0,0,0.0,0.0,None,0.0,0.0,0,4,1,0.0,0.0,0.0,0.0,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Singlezone/Resources/Hydro.csv b/Example_Systems/RealSystemExample/ISONE_Singlezone/Resources/Hydro.csv
new file mode 100644
index 0000000000..07abd184f4
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Singlezone/Resources/Hydro.csv
@@ -0,0 +1,4 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,LDS,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost
+NENGREST,1,NENGREST_conventional_hydroelectric_1,other_renewables,0,2,1,0,662.983,0,0,11.24,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.116,1.0,0.083,0.083,0.006916667,0.013833333,0,0
+NENG_CT,1,NENG_CT_conventional_hydroelectric_1,other_renewables,0,15,1,0,67.7,0,0,13.54,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.18,1.0,0.083,0.083,0.006916667,0.013833333,0,0
+NENG_ME,1,NENG_ME_conventional_hydroelectric_1,other_renewables,0,26,1,0,327.81,0,0,7.8,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.402,1.0,0.083,0.083,0.006916667,0.013833333,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Singlezone/Resources/Must_run.csv b/Example_Systems/RealSystemExample/ISONE_Singlezone/Resources/Must_run.csv
new file mode 100644
index 0000000000..a8d26c6ffe
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Singlezone/Resources/Must_run.csv
@@ -0,0 +1,4 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,LDS,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost
+NENGREST,1,NENGREST_small_hydroelectric_1,other_renewables,0,12,1,0,186.355,0,0,0.79,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.116,1.0,1.0,1.0,0.0,0.0,0,0
+NENG_CT,1,NENG_CT_small_hydroelectric_1,other_renewables,0,23,1,0,18.711,0,0,0.57,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.18,1.0,1.0,1.0,0.0,0.0,0,0
+NENG_ME,1,NENG_ME_small_hydroelectric_1,other_renewables,0,31,1,0,195.266,0,0,1.1,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.192,1.0,1.0,1.0,0.0,0.0,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Singlezone/Resources/Resource_capacity_reserve_margin.csv b/Example_Systems/RealSystemExample/ISONE_Singlezone/Resources/Resource_capacity_reserve_margin.csv
new file mode 100644
index 0000000000..4512c70f6a
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Singlezone/Resources/Resource_capacity_reserve_margin.csv
@@ -0,0 +1,59 @@
+Resource,Derating_Factor_1
+NENGREST_biomass_1,0.93
+NENGREST_conventional_hydroelectric_1,0.8
+NENGREST_hydroelectric_pumped_storage_1,0.95
+NENGREST_natural_gas_fired_combined_cycle_1,0.93
+NENGREST_natural_gas_fired_combined_cycle_2,0.93
+NENGREST_natural_gas_fired_combustion_turbine_1,0.93
+NENGREST_natural_gas_fired_combustion_turbine_2,0.93
+NENGREST_natural_gas_steam_turbine_1,0.93
+NENGREST_nuclear_1,0.93
+NENGREST_offshore_wind_turbine_1,0.8
+NENGREST_onshore_wind_turbine_1,0.8
+NENGREST_small_hydroelectric_1,0
+NENGREST_solar_photovoltaic_1,0.8
+NENG_CT_biomass_1,0.93
+NENG_CT_conventional_hydroelectric_1,0.8
+NENG_CT_hydroelectric_pumped_storage_1,0.95
+NENG_CT_natural_gas_fired_combined_cycle_1,0.93
+NENG_CT_natural_gas_fired_combined_cycle_2,0.93
+NENG_CT_natural_gas_fired_combustion_turbine_1,0.93
+NENG_CT_natural_gas_fired_combustion_turbine_2,0.93
+NENG_CT_nuclear_1,0.93
+NENG_CT_onshore_wind_turbine_1,0.8
+NENG_CT_small_hydroelectric_1,0
+NENG_CT_solar_photovoltaic_1,0.8
+NENG_ME_biomass_1,0.93
+NENG_ME_conventional_hydroelectric_1,0.8
+NENG_ME_natural_gas_fired_combined_cycle_1,0.93
+NENG_ME_natural_gas_fired_combined_cycle_2,0.93
+NENG_ME_natural_gas_fired_combustion_turbine_1,0.93
+NENG_ME_onshore_wind_turbine_1,0.8
+NENG_ME_small_hydroelectric_1,0
+NENG_ME_solar_photovoltaic_1,0.8
+NENGREST_naturalgas_ccccsavgcf_mid_0,0.93
+NENGREST_naturalgas_ccavgcf_mid_0,0.93
+NENGREST_naturalgas_ctavgcf_mid_0,0.93
+NENGREST_battery_mid_0,0.95
+NENGREST_naturalgas_ccs100_mid_0,0.93
+NENGREST_landbasedwind_ltrg1_mid_130_1,0.8
+NENGREST_utilitypv_losangeles_mid_80_0_2_1,0.8
+NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,0.8
+NENG_CT_naturalgas_ccccsavgcf_mid_0,0.93
+NENG_CT_naturalgas_ccavgcf_mid_0,0.93
+NENG_CT_naturalgas_ctavgcf_mid_0,0.93
+NENG_CT_battery_mid_0,0.95
+NENG_CT_naturalgas_ccs100_mid_0,0.93
+NENG_CT_landbasedwind_ltrg1_mid_110_1,0.8
+NENG_CT_utilitypv_losangeles_mid_80_0_2_1,0.8
+NENG_CT_offshorewind_otrg3_mid_fixed_1_176_77_1,0.8
+NENG_ME_naturalgas_ccccsavgcf_mid_0,0.93
+NENG_ME_naturalgas_ccavgcf_mid_0,0.93
+NENG_ME_naturalgas_ctavgcf_mid_0,0.93
+NENG_ME_battery_mid_0,0.95
+NENG_ME_naturalgas_ccs100_mid_0,0.93
+NENG_ME_landbasedwind_ltrg1_mid_110_1,0.8
+NENG_ME_utilitypv_losangeles_mid_100_0_2_1,0.8
+NENGREST_heat_load_shifting_1,0.95
+NENG_CT_heat_load_shifting_1,0.95
+NENG_ME_heat_load_shifting_1,0.95
\ No newline at end of file
diff --git a/Example_Systems/RealSystemExample/ISONE_Singlezone/Resources/Resource_energy_share_requirement.csv b/Example_Systems/RealSystemExample/ISONE_Singlezone/Resources/Resource_energy_share_requirement.csv
new file mode 100644
index 0000000000..8a7934a9ae
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Singlezone/Resources/Resource_energy_share_requirement.csv
@@ -0,0 +1,27 @@
+Resource,ESR_1,ESR_2
+NENGREST_biomass_1,1,1
+NENGREST_conventional_hydroelectric_1,0,1
+NENGREST_nuclear_1,0,1
+NENGREST_offshore_wind_turbine_1,1,1
+NENGREST_onshore_wind_turbine_1,1,1
+NENGREST_small_hydroelectric_1,1,1
+NENGREST_solar_photovoltaic_1,1,1
+NENG_CT_biomass_1,1,1
+NENG_CT_conventional_hydroelectric_1,0,1
+NENG_CT_nuclear_1,0,1
+NENG_CT_onshore_wind_turbine_1,1,1
+NENG_CT_small_hydroelectric_1,1,1
+NENG_CT_solar_photovoltaic_1,1,1
+NENG_ME_biomass_1,1,1
+NENG_ME_conventional_hydroelectric_1,0,1
+NENG_ME_onshore_wind_turbine_1,1,1
+NENG_ME_small_hydroelectric_1,1,1
+NENG_ME_solar_photovoltaic_1,1,1
+NENGREST_landbasedwind_ltrg1_mid_130_1,1,1
+NENGREST_utilitypv_losangeles_mid_80_0_2_1,1,1
+NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,1,1
+NENG_CT_landbasedwind_ltrg1_mid_110_1,1,1
+NENG_CT_utilitypv_losangeles_mid_80_0_2_1,1,1
+NENG_CT_offshorewind_otrg3_mid_fixed_1_176_77_1,1,1
+NENG_ME_landbasedwind_ltrg1_mid_110_1,1,1
+NENG_ME_utilitypv_losangeles_mid_100_0_2_1,1,1
\ No newline at end of file
diff --git a/Example_Systems/RealSystemExample/ISONE_Singlezone/Resources/Resource_minimum_capacity_requirement.csv b/Example_Systems/RealSystemExample/ISONE_Singlezone/Resources/Resource_minimum_capacity_requirement.csv
new file mode 100644
index 0000000000..4a95218f53
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Singlezone/Resources/Resource_minimum_capacity_requirement.csv
@@ -0,0 +1,9 @@
+Resource,Min_Cap_1,Min_Cap_2,Min_Cap_3
+NENGREST_offshore_wind_turbine_1,1,1,0
+NENGREST_onshore_wind_turbine_1,1,0,0
+NENGREST_solar_photovoltaic_1,0,0,1
+NENG_ME_onshore_wind_turbine_1,1,0,0
+NENGREST_landbasedwind_ltrg1_mid_130_1,1,0,0
+NENGREST_utilitypv_losangeles_mid_80_0_2_1,0,0,1
+NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,1,1,0
+NENG_ME_landbasedwind_ltrg1_mid_110_1,1,0,0
\ No newline at end of file
diff --git a/Example_Systems/RealSystemExample/ISONE_Singlezone/Resources/Storage.csv b/Example_Systems/RealSystemExample/ISONE_Singlezone/Resources/Storage.csv
new file mode 100644
index 0000000000..b7668e8970
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Singlezone/Resources/Storage.csv
@@ -0,0 +1,6 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Model,LDS,Existing_Cap_MW,Existing_Charge_Cap_MW,Existing_Cap_MWh,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Min_Charge_Cap_MW,Max_Charge_Cap_MW,Min_Cap_MWh,Max_Cap_MWh,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Self_Disch,Eff_Up,Eff_Down,Hydro_Energy_to_Power_Ratio,Min_Duration,Max_Duration,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost
+NENGREST,1,NENGREST_hydroelectric_pumped_storage_1,hydroelectric_pumped_storage,0,3,1,1,0,1768.002,0,280635.2381,0,0,294.67,0,0.0,0,-1,0,-1,0,40113,0,0,0,0,0.0,0.0,0,0.0,0.0,None,0.532,0,0.866,0.866,158.730159,0,200,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_CT,1,NENG_CT_hydroelectric_pumped_storage_1,hydroelectric_pumped_storage,0,16,1,1,0,30.999,0,4920.47619,0,0,10.33,0,0.0,0,-1,0,-1,0,40113,0,0,0,0,0.0,0.0,0,0.0,0.0,None,0.871,0,0.866,0.866,158.730159,0,200,1.0,1.0,0.083333333,0.166666667,0,0
+NENGREST,0,NENGREST_battery_mid_0,battery_mid,0,36,1,1,0,0.0,0,0.0,1,1,1.0,0,-1.0,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0.0,0.0,None,0.0,0,0.92,0.92,1.0,1,10,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_CT,0,NENG_CT_battery_mid_0,battery_mid,0,44,1,1,0,0.0,0,0.0,1,1,1.0,0,-1.0,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0.0,0.0,None,0.0,0,0.92,0.92,1.0,1,10,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_ME,0,NENG_ME_battery_mid_0,battery_mid,0,52,1,1,0,0.0,0,0.0,1,1,1.0,0,-1.0,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0.0,0.0,None,0.0,0,0.92,0.92,1.0,1,10,1.0,1.0,0.083333333,0.166666667,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Singlezone/Resources/Thermal.csv b/Example_Systems/RealSystemExample/ISONE_Singlezone/Resources/Thermal.csv
new file mode 100644
index 0000000000..b2eaea8e91
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Singlezone/Resources/Thermal.csv
@@ -0,0 +1,30 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Model,LDS,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Ramp_Up_Percentage,Ramp_Dn_Percentage,Up_Time,Down_Time,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost
+NENGREST,1,NENGREST_biomass_1,other_renewables,0,1,1,1,0,106.062,0,0,3.21,0,0.0,0,122976,5.08,0,0.0,14.58,None,0.45,1.0,1.0,1.0,0,0,0.083333333,0.166666667,0,0
+NENGREST,1,NENGREST_natural_gas_fired_combined_cycle_1,natural_gas,1,4,1,1,0,7077.3,0,1,471.82,0,0.0,0,10287,3.55,91,2.0,7.43,NENGREST_NG,0.468,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENGREST,2,NENGREST_natural_gas_fired_combined_cycle_2,natural_gas,1,5,1,1,0,2684.803,0,1,244.07,0,0.0,0,16291,4.5,91,2.0,8.29,NENGREST_NG,0.507,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENGREST,1,NENGREST_natural_gas_fired_combustion_turbine_1,natural_gas,1,6,1,1,0,302.701,0,1,43.24,0,0.0,0,12080,4.6,118,3.5,10.13,NENGREST_NG,0.456,1.0,3.78,3.78,1,1,0.315,0.63,0,0
+NENGREST,2,NENGREST_natural_gas_fired_combustion_turbine_2,natural_gas,1,7,1,1,0,62.704,0,1,7.84,0,0.0,0,13991,4.6,118,3.5,4.74,NENGREST_NG,0.488,1.0,3.78,3.78,1,1,0.315,0.63,0,0
+NENGREST,1,NENGREST_natural_gas_steam_turbine_1,natural_gas,1,8,1,1,0,0.6,0,1,0.6,0,0.0,0,50678,1.04,86,13.7,0.0,NENGREST_NG,0.0,0.0,0.0,0.0,0,0,0.0,0.0,0,0
+NENGREST,1,NENGREST_nuclear_1,nuclear,1,9,1,1,0,1242.0,0,1,1242.0,0,0.0,0,271818,2.32,245,0.0,10.46,new_england_uranium,0.5,1.0,0.25,0.25,24,24,0.020833333,0.041666667,0,0
+NENG_CT,1,NENG_CT_biomass_1,other_renewables,0,14,1,1,0,27.248,0,0,3.41,0,0.0,0,122976,5.37,0,0.0,15.33,None,0.348,1.0,1.0,1.0,0,0,0.083333333,0.166666667,0,0
+NENG_CT,1,NENG_CT_natural_gas_fired_combined_cycle_1,natural_gas,1,17,1,1,0,3488.704,0,1,436.09,0,0.0,0,9698,3.57,91,2.0,7.12,NENG_CT_NG,0.338,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_CT,2,NENG_CT_natural_gas_fired_combined_cycle_2,natural_gas,1,18,1,1,0,35.2,0,1,17.6,0,0.0,0,16291,4.5,91,2.0,10.77,NENG_CT_NG,0.466,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_CT,1,NENG_CT_natural_gas_fired_combustion_turbine_1,natural_gas,1,19,1,1,0,434.0,0,1,54.25,0,0.0,0,10609,4.6,118,3.5,11.06,NENG_CT_NG,0.124,1.0,3.78,3.78,1,1,0.315,0.63,0,0
+NENG_CT,2,NENG_CT_natural_gas_fired_combustion_turbine_2,natural_gas,1,20,1,1,0,124.9,0,1,24.98,0,0.0,0,13991,4.6,118,3.5,8.35,NENG_CT_NG,0.476,1.0,3.78,3.78,1,1,0.315,0.63,0,0
+NENG_CT,1,NENG_CT_nuclear_1,nuclear,1,21,1,1,0,2162.9,0,1,1081.45,0,0.0,0,190920,2.32,245,0.0,10.46,new_england_uranium,0.5,1.0,0.25,0.25,24,24,0.020833333,0.041666667,0,0
+NENG_ME,1,NENG_ME_biomass_1,other_renewables,0,25,1,1,0,24.95,0,0,2.5,0,0.0,0,122976,4.85,0,0.0,13.84,None,0.404,1.0,1.0,1.0,0,0,0.083333333,0.166666667,0,0
+NENG_ME,1,NENG_ME_natural_gas_fired_combined_cycle_1,natural_gas,1,27,1,1,0,274.5,0,1,137.25,0,0.0,0,16291,4.5,91,2.0,12.62,NENG_ME_NG,0.474,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_ME,2,NENG_ME_natural_gas_fired_combined_cycle_2,natural_gas,1,28,1,1,0,1114.1,0,1,557.05,0,0.0,0,9668,3.57,91,2.0,7.65,NENG_ME_NG,0.386,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_ME,1,NENG_ME_natural_gas_fired_combustion_turbine_1,natural_gas,1,29,1,1,0,163.5,0,1,54.5,0,0.0,0,11540,4.6,118,3.5,4.75,NENG_ME_NG,0.697,1.0,3.78,3.78,1,1,0.315,0.63,0,0
+NENGREST,0,NENGREST_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,33,1,1,0,0.0,0,1,500.0,0,-1.0,229388,27483,5.82,103,0.0,7.52,NENGREST_NG_ccs90,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENGREST,0,NENGREST_naturalgas_ccavgcf_mid_0,natural_gas,1,34,1,1,0,0.0,1,1,500.0,0,-1.0,110025,12441,1.61,103,2.0,6.27,NENGREST_NG,0.2,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENGREST,0,NENGREST_naturalgas_ctavgcf_mid_0,natural_gas,1,35,1,1,0,0.0,1,1,100.0,0,-1.0,81998,6960,4.49,134,3.5,9.9,NENGREST_NG,0.3,1.0,3.78,3.78,1,1,0.315,0.63,0,0
+NENGREST,0,NENGREST_naturalgas_ccs100_mid_0,natural_gas_CCS,1,37,1,1,0,0.0,0,1,500.0,0,-1.0,239841,37153,6.26,103,0.0,7.89,NENGREST_NG_ccs100,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_CT,0,NENG_CT_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,41,1,1,0,0.0,0,1,500.0,0,-1.0,229388,27483,5.82,103,0.0,7.52,NENG_CT_NG_ccs90,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_CT,0,NENG_CT_naturalgas_ccavgcf_mid_0,natural_gas,1,42,1,1,0,0.0,1,1,500.0,0,-1.0,110025,12441,1.61,103,2.0,6.27,NENG_CT_NG,0.2,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_CT,0,NENG_CT_naturalgas_ctavgcf_mid_0,natural_gas,1,43,1,1,0,0.0,1,1,100.0,0,-1.0,81998,6960,4.49,134,3.5,9.9,NENG_CT_NG,0.3,1.0,3.78,3.78,1,1,0.315,0.63,0,0
+NENG_CT,0,NENG_CT_naturalgas_ccs100_mid_0,natural_gas_CCS,1,45,1,1,0,0.0,0,1,500.0,0,-1.0,239841,37153,6.26,103,0.0,7.89,NENG_CT_NG_ccs100,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_ME,0,NENG_ME_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,49,1,1,0,0.0,0,1,500.0,0,-1.0,229388,27483,5.82,103,0.0,7.52,NENG_ME_NG_ccs90,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_ME,0,NENG_ME_naturalgas_ccavgcf_mid_0,natural_gas,1,50,1,1,0,0.0,1,1,500.0,0,-1.0,110025,12441,1.61,103,2.0,6.27,NENG_ME_NG,0.2,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_ME,0,NENG_ME_naturalgas_ctavgcf_mid_0,natural_gas,1,51,1,1,0,0.0,1,1,100.0,0,-1.0,81998,6960,4.49,134,3.5,9.9,NENG_ME_NG,0.3,1.0,3.78,3.78,1,1,0.315,0.63,0,0
+NENG_ME,0,NENG_ME_naturalgas_ccs100_mid_0,natural_gas_CCS,1,53,1,1,0,0.0,0,1,500.0,0,-1.0,239841,37153,6.26,103,0.0,7.89,NENG_ME_NG_ccs100,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Singlezone/Resources/Vre.csv b/Example_Systems/RealSystemExample/ISONE_Singlezone/Resources/Vre.csv
new file mode 100644
index 0000000000..132bb04a95
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Singlezone/Resources/Vre.csv
@@ -0,0 +1,16 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,LDS,Num_VRE_Bins,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost
+NENGREST,1,NENGREST_offshore_wind_turbine_1,offshore_wind,1,10,1,0,1,30.0,0,1,30.0,0,0.0,0,128440,0.0,0,0.0,9.12,None,0.0,0.0,0.0,0.0,0.0,0.0,0,0
+NENGREST,1,NENGREST_onshore_wind_turbine_1,onshore_wind,1,11,1,0,1,145.8,0,1,9.75,0,0.0,0,43205,-18.0,0,0.0,9.12,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENGREST,1,NENGREST_solar_photovoltaic_1,solar,1,13,1,0,1,821.4,0,1,2.6,0,0.0,0,18760,0.0,0,0.0,9.13,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_CT,1,NENG_CT_onshore_wind_turbine_1,onshore_wind,1,22,1,0,1,6.5,0,1,5.0,0,0.0,0,43205,-18.0,0,0.0,9.12,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_CT,1,NENG_CT_solar_photovoltaic_1,solar,1,24,1,0,1,374.6,0,1,5.67,0,0.0,0,18760,0.0,0,0.0,9.16,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_ME,1,NENG_ME_onshore_wind_turbine_1,onshore_wind,1,30,1,0,1,1190.9,0,1,48.5,0,0.0,0,43205,-18.0,0,0.0,9.12,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_ME,1,NENG_ME_solar_photovoltaic_1,solar,1,32,1,0,1,11.8,0,1,1.5,0,0.0,0,18760,0.0,0,0.0,9.12,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENGREST,1,NENGREST_landbasedwind_ltrg1_mid_130_1,onshore_wind,1,38,1,0,1,0.0,1,1,1.0,0,4888.236,194100,41460,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENGREST,1,NENGREST_utilitypv_losangeles_mid_80_0_2_1,solar,1,39,1,0,1,0.0,1,1,1.0,0,20835.569,99283,13055,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENGREST,1,NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,offshore_wind,1,40,1,0,1,0.0,1,1,1.0,0,9848.442,260044,91549,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_CT,1,NENG_CT_landbasedwind_ltrg1_mid_110_1,onshore_wind,1,46,1,0,1,0.0,1,1,1.0,0,1982.895,185181,41460,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_CT,1,NENG_CT_utilitypv_losangeles_mid_80_0_2_1,solar,1,47,1,0,1,0.0,1,1,1.0,0,17063.264,98631,13055,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_CT,1,NENG_CT_offshorewind_otrg3_mid_fixed_1_176_77_1,offshore_wind,1,48,1,0,1,0.0,1,1,1.0,0,477.5,247542,91549,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_ME,1,NENG_ME_landbasedwind_ltrg1_mid_110_1,onshore_wind,1,54,1,0,1,0.0,1,1,1.0,0,20430.499,233173,41460,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_ME,1,NENG_ME_utilitypv_losangeles_mid_100_0_2_1,solar,1,55,1,0,1,0.0,1,1,1.0,0,21535.709,98706,13055,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone/Energy_share_requirement.csv b/Example_Systems/RealSystemExample/ISONE_Trizone/Energy_share_requirement.csv
index 749ddfeaf1..421e6aabb3 100644
--- a/Example_Systems/RealSystemExample/ISONE_Trizone/Energy_share_requirement.csv
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone/Energy_share_requirement.csv
@@ -1,4 +1,4 @@
,Network_zones,ESR_1,ESR_2
NENGREST,z1,0.259,0.348
NENG_CT,z2,0.44,0.44
-NENG_ME,z3,0.776,0.776
+NENG_ME,z3,0.776,0.776
\ No newline at end of file
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone/Generators_data.csv b/Example_Systems/RealSystemExample/ISONE_Trizone/Generators_data.csv
deleted file mode 100644
index b7de48ae2a..0000000000
--- a/Example_Systems/RealSystemExample/ISONE_Trizone/Generators_data.csv
+++ /dev/null
@@ -1,62 +0,0 @@
-region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,THERM,STOR,HYDRO,FLEX,MUST_RUN,VRE,Num_VRE_Bins,LDS,CapRes_1,ESR_1,ESR_2,Existing_Cap_MW,Existing_Charge_Cap_MW,Existing_Cap_MWh,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Min_Charge_Cap_MW,Max_Charge_Cap_MW,Min_Cap_MWh,Max_Cap_MWh,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Self_Disch,Eff_Up,Eff_Down,Hydro_Energy_to_Power_Ratio,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Ramp_Up_Percentage,Ramp_Dn_Percentage,Up_Time,Down_Time,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag_1,MinCapTag_2,MinCapTag_3
-NENGREST,1,NENGREST_biomass_1,biomass,1,1,1,1,0,0,0,0,0,0,0,0.93,1,1,106.062,0,0,0,0,3.21,0,0,0,-1,0,-1,0,122976,0,0,0,0,5.08,0,0,0,14.58,None,0.45,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENGREST,1,NENGREST_conventional_hydroelectric_1,conventional_hydroelectric,1,2,1,0,0,1,0,0,0,0,1,0.8,0,1,662.983,0,0,0,0,11.24,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.117,0,1,1,1,0,0,0,0,1,0.083,0.083,0,0,0.006916667,0.013833333,0,0,0,0,0
-NENGREST,1,NENGREST_hydroelectric_pumped_storage_1,hydroelectric_pumped_storage,0,3,1,0,1,0,0,0,0,0,0,0.95,0,0,1768.002,0,280635.2381,0,0,294.67,0,0,0,-1,0,-1,0,40113,0,0,0,0,0,0,0,0,0,None,0.532,0,0.866,0.866,158.730159,0,200,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENGREST,1,NENGREST_natural_gas_fired_combined_cycle_1,natural_gas_fired_combined_cycle,1,4,1,1,0,0,0,0,0,0,0,0.93,0,0,7077.3,0,0,0,1,471.82,0,0,0,-1,0,-1,0,10287,0,0,0,0,3.55,0,91,2,7.43,NENGREST_NG,0.468,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENGREST,2,NENGREST_natural_gas_fired_combined_cycle_2,natural_gas_fired_combined_cycle,1,5,1,1,0,0,0,0,0,0,0,0.93,0,0,2684.803,0,0,0,1,244.07,0,0,0,-1,0,-1,0,16291,0,0,0,0,4.5,0,91,2,8.29,NENGREST_NG,0.507,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENGREST,1,NENGREST_natural_gas_fired_combustion_turbine_1,natural_gas_fired_combustion_turbine,1,6,1,1,0,0,0,0,0,0,0,0.93,0,0,302.701,0,0,0,1,43.24,0,0,0,-1,0,-1,0,12080,0,0,0,0,4.6,0,118,3.5,10.13,NENGREST_NG,0.456,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0
-NENGREST,2,NENGREST_natural_gas_fired_combustion_turbine_2,natural_gas_fired_combustion_turbine,1,7,1,1,0,0,0,0,0,0,0,0.93,0,0,62.704,0,0,0,1,7.84,0,0,0,-1,0,-1,0,13991,0,0,0,0,4.6,0,118,3.5,4.74,NENGREST_NG,0.488,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0
-NENGREST,1,NENGREST_natural_gas_steam_turbine_1,natural_gas_steam_turbine,1,8,1,1,0,0,0,0,0,0,0,0.93,0,0,0.6,0,0,0,1,0.6,0,0,0,-1,0,-1,0,50678,0,0,0,0,1.04,0,86,13.7,0,NENGREST_NG,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0
-NENGREST,1,NENGREST_nuclear_1,nuclear,1,9,1,1,0,0,0,0,0,0,0,0.93,0,1,1242,0,0,0,1,1242,0,0,0,-1,0,-1,0,271818,0,0,0,0,2.32,0,245,0,10.46,new_england_uranium,0.5,0,1,1,1,0,0,0,0,1,0.25,0.25,24,24,0.020833333,0.041666667,0,0,0,0,0
-NENGREST,1,NENGREST_offshore_wind_turbine_1,offshore_wind_turbine,1,10,1,0,0,0,0,0,1,1,0,0.8,1,1,30,0,0,0,1,30,0,0,0,-1,0,-1,0,128440,0,0,0,0,0,0,0,0,9.12,None,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0
-NENGREST,1,NENGREST_onshore_wind_turbine_1,onshore_wind_turbine,1,11,1,0,0,0,0,0,1,1,0,0.8,1,1,145.8,0,0,0,1,9.75,0,0,0,-1,0,-1,0,43205,0,0,0,0,-18,0,0,0,9.12,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,1,0,0
-NENGREST,1,NENGREST_small_hydroelectric_1,small_hydroelectric,1,12,1,0,0,0,0,1,0,0,0,0,1,1,186.355,0,0,0,0,0.79,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.117,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0
-NENGREST,1,NENGREST_solar_photovoltaic_1,solar_photovoltaic,1,13,1,0,0,0,0,0,1,1,0,0.8,1,1,821.4,0,0,0,1,2.6,0,0,0,-1,0,-1,0,18760,0,0,0,0,0,0,0,0,9.13,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,1
-NENG_CT,1,NENG_CT_biomass_1,biomass,1,14,2,1,0,0,0,0,0,0,0,0.93,1,1,27.248,0,0,0,0,3.41,0,0,0,-1,0,-1,0,122976,0,0,0,0,5.37,0,0,0,15.33,None,0.348,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_CT,1,NENG_CT_conventional_hydroelectric_1,conventional_hydroelectric,1,15,2,0,0,1,0,0,0,0,1,0.8,0,1,67.7,0,0,0,0,13.54,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.18,0,1,1,1,0,0,0,0,1,0.083,0.083,0,0,0.006916667,0.013833333,0,0,0,0,0
-NENG_CT,1,NENG_CT_hydroelectric_pumped_storage_1,hydroelectric_pumped_storage,0,16,2,0,1,0,0,0,0,0,0,0.95,0,0,30.999,0,4920.47619,0,0,10.33,0,0,0,-1,0,-1,0,40113,0,0,0,0,0,0,0,0,0,None,0.871,0,0.866,0.866,158.730159,0,200,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_CT,1,NENG_CT_natural_gas_fired_combined_cycle_1,natural_gas_fired_combined_cycle,1,17,2,1,0,0,0,0,0,0,0,0.93,0,0,3488.704,0,0,0,1,436.09,0,0,0,-1,0,-1,0,9698,0,0,0,0,3.57,0,91,2,7.12,NENG_CT_NG,0.338,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_CT,2,NENG_CT_natural_gas_fired_combined_cycle_2,natural_gas_fired_combined_cycle,1,18,2,1,0,0,0,0,0,0,0,0.93,0,0,35.2,0,0,0,1,17.6,0,0,0,-1,0,-1,0,16291,0,0,0,0,4.5,0,91,2,10.77,NENG_CT_NG,0.466,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_CT,1,NENG_CT_natural_gas_fired_combustion_turbine_1,natural_gas_fired_combustion_turbine,1,19,2,1,0,0,0,0,0,0,0,0.93,0,0,434,0,0,0,1,54.25,0,0,0,-1,0,-1,0,10609,0,0,0,0,4.6,0,118,3.5,11.06,NENG_CT_NG,0.124,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0
-NENG_CT,2,NENG_CT_natural_gas_fired_combustion_turbine_2,natural_gas_fired_combustion_turbine,1,20,2,1,0,0,0,0,0,0,0,0.93,0,0,124.9,0,0,0,1,24.98,0,0,0,-1,0,-1,0,13991,0,0,0,0,4.6,0,118,3.5,8.35,NENG_CT_NG,0.476,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0
-NENG_CT,1,NENG_CT_nuclear_1,nuclear,1,21,2,1,0,0,0,0,0,0,0,0.93,0,1,2162.9,0,0,0,1,1081.45,0,0,0,-1,0,-1,0,190920,0,0,0,0,2.32,0,245,0,10.46,new_england_uranium,0.5,0,1,1,1,0,0,0,0,1,0.25,0.25,24,24,0.020833333,0.041666667,0,0,0,0,0
-NENG_CT,1,NENG_CT_onshore_wind_turbine_1,onshore_wind_turbine,1,22,2,0,0,0,0,0,1,1,0,0.8,1,1,6.5,0,0,0,1,5,0,0,0,-1,0,-1,0,43205,0,0,0,0,-18,0,0,0,9.12,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_CT,1,NENG_CT_small_hydroelectric_1,small_hydroelectric,1,23,2,0,0,0,0,1,0,0,0,0,1,1,18.711,0,0,0,0,0.57,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.18,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0
-NENG_CT,1,NENG_CT_solar_photovoltaic_1,solar_photovoltaic,1,24,2,0,0,0,0,0,1,1,0,0.8,1,1,374.6,0,0,0,1,5.67,0,0,0,-1,0,-1,0,18760,0,0,0,0,0,0,0,0,9.16,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_ME,1,NENG_ME_biomass_1,biomass,1,25,3,1,0,0,0,0,0,0,0,0.93,1,1,24.95,0,0,0,0,2.5,0,0,0,-1,0,-1,0,122976,0,0,0,0,4.85,0,0,0,13.84,None,0.404,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_ME,1,NENG_ME_conventional_hydroelectric_1,conventional_hydroelectric,1,26,3,0,0,1,0,0,0,0,1,0.8,0,1,327.81,0,0,0,0,7.8,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.402,0,1,1,1,0,0,0,0,1,0.083,0.083,0,0,0.006916667,0.013833333,0,0,0,0,0
-NENG_ME,1,NENG_ME_natural_gas_fired_combined_cycle_1,natural_gas_fired_combined_cycle,1,27,3,1,0,0,0,0,0,0,0,0.93,0,0,274.5,0,0,0,1,137.25,0,0,0,-1,0,-1,0,16291,0,0,0,0,4.5,0,91,2,12.62,NENG_ME_NG,0.474,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_ME,2,NENG_ME_natural_gas_fired_combined_cycle_2,natural_gas_fired_combined_cycle,1,28,3,1,0,0,0,0,0,0,0,0.93,0,0,1114.1,0,0,0,1,557.05,0,0,0,-1,0,-1,0,9668,0,0,0,0,3.57,0,91,2,7.65,NENG_ME_NG,0.386,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_ME,1,NENG_ME_natural_gas_fired_combustion_turbine_1,natural_gas_fired_combustion_turbine,1,29,3,1,0,0,0,0,0,0,0,0.93,0,0,163.5,0,0,0,1,54.5,0,0,0,-1,0,-1,0,11540,0,0,0,0,4.6,0,118,3.5,4.75,NENG_ME_NG,0.697,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0
-NENG_ME,1,NENG_ME_onshore_wind_turbine_1,onshore_wind_turbine,1,30,3,0,0,0,0,0,1,1,0,0.8,1,1,1190.9,0,0,0,1,48.5,0,0,0,-1,0,-1,0,43205,0,0,0,0,-18,0,0,0,9.12,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,1,0,0
-NENG_ME,1,NENG_ME_small_hydroelectric_1,small_hydroelectric,1,31,3,0,0,0,0,1,0,0,0,0,1,1,195.266,0,0,0,0,1.1,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.192,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0
-NENG_ME,1,NENG_ME_solar_photovoltaic_1,solar_photovoltaic,1,32,3,0,0,0,0,0,1,1,0,0.8,1,1,11.8,0,0,0,1,1.5,0,0,0,-1,0,-1,0,18760,0,0,0,0,0,0,0,0,9.12,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENGREST,0,NENGREST_naturalgas_ccccsavgcf_mid_0,naturalgas_ccccsavgcf_mid,1,33,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,229388,27483,0,0,0,0,5.82,0,103,0,7.52,NENGREST_NG_ccs90,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENGREST,0,NENGREST_naturalgas_ccavgcf_mid_0,naturalgas_ccavgcf_mid,1,34,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,1,1,500,0,-1,0,-1,0,-1,110025,12441,0,0,0,0,1.61,0,103,2,6.27,NENGREST_NG,0.2,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENGREST,0,NENGREST_naturalgas_ctavgcf_mid_0,naturalgas_ctavgcf_mid,1,35,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,1,1,100,0,-1,0,-1,0,-1,81998,6960,0,0,0,0,4.49,0,134,3.5,9.9,NENGREST_NG,0.3,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0
-NENGREST,0,NENGREST_battery_mid_0,battery_mid,0,36,1,0,1,0,0,0,0,0,0,0.95,0,0,0,0,0,1,1,1,0,-1,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0,0,None,0,0,0.92,0.92,1,1,10,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENGREST,0,NENGREST_naturalgas_ccs100_mid_0,naturalgas_ccs100_mid,1,37,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,239841,37153,0,0,0,0,6.26,0,103,0,7.89,NENGREST_NG_ccs100,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENGREST,1,NENGREST_landbasedwind_ltrg1_mid_130_1,landbasedwind_ltrg1_mid_130,1,38,1,0,0,0,0,0,1,1,0,0.8,1,1,0,0,0,1,1,1,0,4888.236,0,-1,0,-1,194100,41460,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,1,0,0
-NENGREST,1,NENGREST_utilitypv_losangeles_mid_80_0_2_1,utilitypv_losangeles_mid_80_0_2,1,39,1,0,0,0,0,0,1,1,0,0.8,1,1,0,0,0,1,1,1,0,20835.569,0,-1,0,-1,99283,13055,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,1
-NENGREST,1,NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,offshorewind_otrg3_mid_fixed_1_176_77,1,40,1,0,0,0,0,0,1,1,0,0.8,1,1,0,0,0,1,1,1,0,9848.442,0,-1,0,-1,260044,91549,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,1,1,0
-NENG_CT,0,NENG_CT_naturalgas_ccccsavgcf_mid_0,naturalgas_ccccsavgcf_mid,1,41,2,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,229388,27483,0,0,0,0,5.82,0,103,0,7.52,NENG_CT_NG_ccs90,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_CT,0,NENG_CT_naturalgas_ccavgcf_mid_0,naturalgas_ccavgcf_mid,1,42,2,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,1,1,500,0,-1,0,-1,0,-1,110025,12441,0,0,0,0,1.61,0,103,2,6.27,NENG_CT_NG,0.2,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_CT,0,NENG_CT_naturalgas_ctavgcf_mid_0,naturalgas_ctavgcf_mid,1,43,2,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,1,1,100,0,-1,0,-1,0,-1,81998,6960,0,0,0,0,4.49,0,134,3.5,9.9,NENG_CT_NG,0.3,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0
-NENG_CT,0,NENG_CT_battery_mid_0,battery_mid,0,44,2,0,1,0,0,0,0,0,0,0.95,0,0,0,0,0,1,1,1,0,-1,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0,0,None,0,0,0.92,0.92,1,1,10,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_CT,0,NENG_CT_naturalgas_ccs100_mid_0,naturalgas_ccs100_mid,1,45,2,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,239841,37153,0,0,0,0,6.26,0,103,0,7.89,NENG_CT_NG_ccs100,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_CT,1,NENG_CT_landbasedwind_ltrg1_mid_110_1,landbasedwind_ltrg1_mid_110,1,46,2,0,0,0,0,0,1,1,0,0.8,1,1,0,0,0,1,1,1,0,1982.895,0,-1,0,-1,185181,41460,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_CT,1,NENG_CT_utilitypv_losangeles_mid_80_0_2_1,utilitypv_losangeles_mid_80_0_2,1,47,2,0,0,0,0,0,1,1,0,0.8,1,1,0,0,0,1,1,1,0,17063.264,0,-1,0,-1,98631,13055,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_CT,1,NENG_CT_offshorewind_otrg3_mid_fixed_1_176_77_1,offshorewind_otrg3_mid_fixed_1_176_77,1,48,2,0,0,0,0,0,1,1,0,0.8,1,1,0,0,0,1,1,1,0,477.5,0,-1,0,-1,247542,91549,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_ME,0,NENG_ME_naturalgas_ccccsavgcf_mid_0,naturalgas_ccccsavgcf_mid,1,49,3,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,229388,27483,0,0,0,0,5.82,0,103,0,7.52,NENG_ME_NG_ccs90,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_ME,0,NENG_ME_naturalgas_ccavgcf_mid_0,naturalgas_ccavgcf_mid,1,50,3,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,1,1,500,0,-1,0,-1,0,-1,110025,12441,0,0,0,0,1.61,0,103,2,6.27,NENG_ME_NG,0.2,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_ME,0,NENG_ME_naturalgas_ctavgcf_mid_0,naturalgas_ctavgcf_mid,1,51,3,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,1,1,100,0,-1,0,-1,0,-1,81998,6960,0,0,0,0,4.49,0,134,3.5,9.9,NENG_ME_NG,0.3,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0
-NENG_ME,0,NENG_ME_battery_mid_0,battery_mid,0,52,3,0,1,0,0,0,0,0,0,0.95,0,0,0,0,0,1,1,1,0,-1,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0,0,None,0,0,0.92,0.92,1,1,10,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_ME,0,NENG_ME_naturalgas_ccs100_mid_0,naturalgas_ccs100_mid,1,53,3,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,239841,37153,0,0,0,0,6.26,0,103,0,7.89,NENG_ME_NG_ccs100,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_ME,1,NENG_ME_landbasedwind_ltrg1_mid_110_1,landbasedwind_ltrg1_mid_110,1,54,3,0,0,0,0,0,1,1,0,0.8,1,1,0,0,0,1,1,1,0,20430.499,0,-1,0,-1,233173,41460,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,1,0,0
-NENG_ME,1,NENG_ME_utilitypv_losangeles_mid_100_0_2_1,utilitypv_losangeles_mid_100_0_2,1,55,3,0,0,0,0,0,1,1,0,0.8,1,1,0,0,0,1,1,1,0,21535.709,0,-1,0,-1,98706,13055,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENGREST,1,NENGREST_heat_load_shifting_1,heat_load_shifting,1,56,1,0,0,0,1,0,0,0,0,0.95,0,0,165.52,0,0,0,0,0,0,0,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,4,1,0,0,0,0,0,0,0,0,0,0,0
-NENG_CT,1,NENG_CT_heat_load_shifting_1,heat_load_shifting,1,57,2,0,0,0,1,0,0,0,0,0.95,0,0,47.27,0,0,0,0,0,0,0,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,4,1,0,0,0,0,0,0,0,0,0,0,0
-NENG_ME,1,NENG_ME_heat_load_shifting_1,heat_load_shifting,1,58,3,0,0,0,1,0,0,0,0,0.95,0,0,22.56,0,0,0,0,0,0,0,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,4,1,0,0,0,0,0,0,0,0,0,0,0
-NENGREST,1,NENGREST_hydrogen_storage_1,hydrogen_storage,0,59,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,1,1,0,-1,0,-1,0,-1,39761,5000,404,0,38914,29750,4.3,0,0,0,0,None,0,0,0.67,0.4,0,48,2000,0,0,0,1,1,1,1,0,0,0,0,0,0,0
-NENG_CT,1,NENG_CT_hydrogen_storage_1,hydrogen_storage,0,60,2,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,1,1,0,-1,0,-1,0,-1,49333,5000,404,0,38914,29750,4.3,0,0,0,0,None,0,0,0.67,0.4,0,48,2000,0,0,0,1,1,1,1,0,0,0,0,0,0,0
-NENG_ME,1,NENG_ME_hydrogen_storage_1,hydrogen_storage,0,61,3,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,1,1,0,-1,0,-1,0,-1,38489,5000,404,0,38914,29750,4.3,0,0,0,0,None,0,0,0.67,0.4,0,48,2000,0,0,0,1,1,1,1,0,0,0,0,0,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone/Resources/Flex_demand.csv b/Example_Systems/RealSystemExample/ISONE_Trizone/Resources/Flex_demand.csv
new file mode 100644
index 0000000000..1bd8f77c73
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone/Resources/Flex_demand.csv
@@ -0,0 +1,4 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,LDS,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost
+NENGREST,1,NENGREST_heat_load_shifting_1,heat_load_shifting,1,56,1,0,165.52,0,0,0.0,0,0.0,0,0,0.0,0,0.0,0.0,None,0.0,0.0,0,4,1,0.0,0.0,0.0,0.0,0,0
+NENG_CT,1,NENG_CT_heat_load_shifting_1,heat_load_shifting,1,57,2,0,47.27,0,0,0.0,0,0.0,0,0,0.0,0,0.0,0.0,None,0.0,0.0,0,4,1,0.0,0.0,0.0,0.0,0,0
+NENG_ME,1,NENG_ME_heat_load_shifting_1,heat_load_shifting,1,58,3,0,22.56,0,0,0.0,0,0.0,0,0,0.0,0,0.0,0.0,None,0.0,0.0,0,4,1,0.0,0.0,0.0,0.0,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone/Resources/Hydro.csv b/Example_Systems/RealSystemExample/ISONE_Trizone/Resources/Hydro.csv
new file mode 100644
index 0000000000..1bdb6f44bb
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone/Resources/Hydro.csv
@@ -0,0 +1,4 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,LDS,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost
+NENGREST,1,NENGREST_conventional_hydroelectric_1,conventional_hydroelectric,1,2,1,1,662.983,0,0,11.24,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.117,1.0,0.083,0.083,0.006916667,0.013833333,0,0
+NENG_CT,1,NENG_CT_conventional_hydroelectric_1,conventional_hydroelectric,1,15,2,1,67.7,0,0,13.54,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.18,1.0,0.083,0.083,0.006916667,0.013833333,0,0
+NENG_ME,1,NENG_ME_conventional_hydroelectric_1,conventional_hydroelectric,1,26,3,1,327.81,0,0,7.8,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.402,1.0,0.083,0.083,0.006916667,0.013833333,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone/Resources/Must_run.csv b/Example_Systems/RealSystemExample/ISONE_Trizone/Resources/Must_run.csv
new file mode 100644
index 0000000000..2b34e7182f
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone/Resources/Must_run.csv
@@ -0,0 +1,4 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,LDS,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost
+NENGREST,1,NENGREST_small_hydroelectric_1,small_hydroelectric,1,12,1,0,186.355,0,0,0.79,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.117,1.0,1.0,1.0,0.0,0.0,0,0
+NENG_CT,1,NENG_CT_small_hydroelectric_1,small_hydroelectric,1,23,2,0,18.711,0,0,0.57,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.18,1.0,1.0,1.0,0.0,0.0,0,0
+NENG_ME,1,NENG_ME_small_hydroelectric_1,small_hydroelectric,1,31,3,0,195.266,0,0,1.1,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.192,1.0,1.0,1.0,0.0,0.0,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone/Resources/Resource_capacity_reserve_margin.csv b/Example_Systems/RealSystemExample/ISONE_Trizone/Resources/Resource_capacity_reserve_margin.csv
new file mode 100644
index 0000000000..786d10a3d1
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone/Resources/Resource_capacity_reserve_margin.csv
@@ -0,0 +1,62 @@
+Resource,Derating_Factor_1
+NENGREST_biomass_1,0.93
+NENGREST_conventional_hydroelectric_1,0.8
+NENGREST_hydroelectric_pumped_storage_1,0.95
+NENGREST_natural_gas_fired_combined_cycle_1,0.93
+NENGREST_natural_gas_fired_combined_cycle_2,0.93
+NENGREST_natural_gas_fired_combustion_turbine_1,0.93
+NENGREST_natural_gas_fired_combustion_turbine_2,0.93
+NENGREST_natural_gas_steam_turbine_1,0.93
+NENGREST_nuclear_1,0.93
+NENGREST_offshore_wind_turbine_1,0.8
+NENGREST_onshore_wind_turbine_1,0.8
+NENGREST_small_hydroelectric_1,0
+NENGREST_solar_photovoltaic_1,0.8
+NENG_CT_biomass_1,0.93
+NENG_CT_conventional_hydroelectric_1,0.8
+NENG_CT_hydroelectric_pumped_storage_1,0.95
+NENG_CT_natural_gas_fired_combined_cycle_1,0.93
+NENG_CT_natural_gas_fired_combined_cycle_2,0.93
+NENG_CT_natural_gas_fired_combustion_turbine_1,0.93
+NENG_CT_natural_gas_fired_combustion_turbine_2,0.93
+NENG_CT_nuclear_1,0.93
+NENG_CT_onshore_wind_turbine_1,0.8
+NENG_CT_small_hydroelectric_1,0
+NENG_CT_solar_photovoltaic_1,0.8
+NENG_ME_biomass_1,0.93
+NENG_ME_conventional_hydroelectric_1,0.8
+NENG_ME_natural_gas_fired_combined_cycle_1,0.93
+NENG_ME_natural_gas_fired_combined_cycle_2,0.93
+NENG_ME_natural_gas_fired_combustion_turbine_1,0.93
+NENG_ME_onshore_wind_turbine_1,0.8
+NENG_ME_small_hydroelectric_1,0
+NENG_ME_solar_photovoltaic_1,0.8
+NENGREST_naturalgas_ccccsavgcf_mid_0,0.93
+NENGREST_naturalgas_ccavgcf_mid_0,0.93
+NENGREST_naturalgas_ctavgcf_mid_0,0.93
+NENGREST_battery_mid_0,0.95
+NENGREST_naturalgas_ccs100_mid_0,0.93
+NENGREST_landbasedwind_ltrg1_mid_130_1,0.8
+NENGREST_utilitypv_losangeles_mid_80_0_2_1,0.8
+NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,0.8
+NENG_CT_naturalgas_ccccsavgcf_mid_0,0.93
+NENG_CT_naturalgas_ccavgcf_mid_0,0.93
+NENG_CT_naturalgas_ctavgcf_mid_0,0.93
+NENG_CT_battery_mid_0,0.95
+NENG_CT_naturalgas_ccs100_mid_0,0.93
+NENG_CT_landbasedwind_ltrg1_mid_110_1,0.8
+NENG_CT_utilitypv_losangeles_mid_80_0_2_1,0.8
+NENG_CT_offshorewind_otrg3_mid_fixed_1_176_77_1,0.8
+NENG_ME_naturalgas_ccccsavgcf_mid_0,0.93
+NENG_ME_naturalgas_ccavgcf_mid_0,0.93
+NENG_ME_naturalgas_ctavgcf_mid_0,0.93
+NENG_ME_battery_mid_0,0.95
+NENG_ME_naturalgas_ccs100_mid_0,0.93
+NENG_ME_landbasedwind_ltrg1_mid_110_1,0.8
+NENG_ME_utilitypv_losangeles_mid_100_0_2_1,0.8
+NENGREST_heat_load_shifting_1,0.95
+NENG_CT_heat_load_shifting_1,0.95
+NENG_ME_heat_load_shifting_1,0.95
+NENGREST_hydrogen_storage_1,0
+NENG_CT_hydrogen_storage_1,0
+NENG_ME_hydrogen_storage_1,0
\ No newline at end of file
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone/Resources/Resource_energy_share_requirement.csv b/Example_Systems/RealSystemExample/ISONE_Trizone/Resources/Resource_energy_share_requirement.csv
new file mode 100644
index 0000000000..44e4d35879
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone/Resources/Resource_energy_share_requirement.csv
@@ -0,0 +1,27 @@
+Resource,ESR_1,ESR_2
+NENGREST_conventional_hydroelectric_1,0,1
+NENGREST_nuclear_1,0,1
+NENG_CT_conventional_hydroelectric_1,0,1
+NENG_CT_nuclear_1,0,1
+NENG_ME_conventional_hydroelectric_1,0,1
+NENGREST_biomass_1,1,1
+NENGREST_offshore_wind_turbine_1,1,1
+NENGREST_onshore_wind_turbine_1,1,1
+NENGREST_small_hydroelectric_1,1,1
+NENGREST_solar_photovoltaic_1,1,1
+NENG_CT_biomass_1,1,1
+NENG_CT_onshore_wind_turbine_1,1,1
+NENG_CT_small_hydroelectric_1,1,1
+NENG_CT_solar_photovoltaic_1,1,1
+NENG_ME_biomass_1,1,1
+NENG_ME_onshore_wind_turbine_1,1,1
+NENG_ME_small_hydroelectric_1,1,1
+NENG_ME_solar_photovoltaic_1,1,1
+NENGREST_landbasedwind_ltrg1_mid_130_1,1,1
+NENGREST_utilitypv_losangeles_mid_80_0_2_1,1,1
+NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,1,1
+NENG_CT_landbasedwind_ltrg1_mid_110_1,1,1
+NENG_CT_utilitypv_losangeles_mid_80_0_2_1,1,1
+NENG_CT_offshorewind_otrg3_mid_fixed_1_176_77_1,1,1
+NENG_ME_landbasedwind_ltrg1_mid_110_1,1,1
+NENG_ME_utilitypv_losangeles_mid_100_0_2_1,1,1
\ No newline at end of file
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone/Resources/Resource_minimum_capacity_requirement.csv b/Example_Systems/RealSystemExample/ISONE_Trizone/Resources/Resource_minimum_capacity_requirement.csv
new file mode 100644
index 0000000000..058075909a
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone/Resources/Resource_minimum_capacity_requirement.csv
@@ -0,0 +1,9 @@
+Resource,Min_Cap_1,Min_Cap_2,Min_Cap_3
+NENGREST_onshore_wind_turbine_1,1,0,0
+NENG_ME_onshore_wind_turbine_1,1,0,0
+NENGREST_landbasedwind_ltrg1_mid_130_1,1,0,0
+NENG_ME_landbasedwind_ltrg1_mid_110_1,1,0,0
+NENGREST_offshore_wind_turbine_1,1,1,0
+NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,1,1,0
+NENGREST_solar_photovoltaic_1,0,0,1
+NENGREST_utilitypv_losangeles_mid_80_0_2_1,0,0,1
\ No newline at end of file
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone/Resources/Storage.csv b/Example_Systems/RealSystemExample/ISONE_Trizone/Resources/Storage.csv
new file mode 100644
index 0000000000..6528bbf4b8
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone/Resources/Storage.csv
@@ -0,0 +1,9 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Model,LDS,Existing_Cap_MW,Existing_Charge_Cap_MW,Existing_Cap_MWh,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Min_Charge_Cap_MW,Max_Charge_Cap_MW,Min_Cap_MWh,Max_Cap_MWh,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Self_Disch,Eff_Up,Eff_Down,Hydro_Energy_to_Power_Ratio,Min_Duration,Max_Duration,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost
+NENGREST,1,NENGREST_hydroelectric_pumped_storage_1,hydroelectric_pumped_storage,0,3,1,1,0,1768.002,0,280635.2381,0,0,294.67,0,0.0,0,-1,0,-1,0,40113,0,0,0,0,0.0,0.0,0,0.0,0.0,None,0.532,0,0.866,0.866,158.730159,0,200,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_CT,1,NENG_CT_hydroelectric_pumped_storage_1,hydroelectric_pumped_storage,0,16,2,1,0,30.999,0,4920.47619,0,0,10.33,0,0.0,0,-1,0,-1,0,40113,0,0,0,0,0.0,0.0,0,0.0,0.0,None,0.871,0,0.866,0.866,158.730159,0,200,1.0,1.0,0.083333333,0.166666667,0,0
+NENGREST,0,NENGREST_battery_mid_0,battery_mid,0,36,1,1,0,0.0,0,0.0,1,1,1.0,0,-1.0,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0.0,0.0,None,0.0,0,0.92,0.92,1.0,1,10,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_CT,0,NENG_CT_battery_mid_0,battery_mid,0,44,2,1,0,0.0,0,0.0,1,1,1.0,0,-1.0,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0.0,0.0,None,0.0,0,0.92,0.92,1.0,1,10,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_ME,0,NENG_ME_battery_mid_0,battery_mid,0,52,3,1,0,0.0,0,0.0,1,1,1.0,0,-1.0,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0.0,0.0,None,0.0,0,0.92,0.92,1.0,1,10,1.0,1.0,0.083333333,0.166666667,0,0
+NENGREST,1,NENGREST_hydrogen_storage_1,hydrogen_storage,0,59,1,1,1,0.0,0,0.0,1,1,1.0,0,-1.0,0,-1,0,-1,39761,5000,404,0,38914,29750,4.3,0.0,0,0.0,0.0,None,0.0,0,0.67,0.4,0.0,48,2000,1.0,1.0,0.0,0.0,0,0
+NENG_CT,1,NENG_CT_hydrogen_storage_1,hydrogen_storage,0,60,2,1,1,0.0,0,0.0,1,1,1.0,0,-1.0,0,-1,0,-1,49333,5000,404,0,38914,29750,4.3,0.0,0,0.0,0.0,None,0.0,0,0.67,0.4,0.0,48,2000,1.0,1.0,0.0,0.0,0,0
+NENG_ME,1,NENG_ME_hydrogen_storage_1,hydrogen_storage,0,61,3,1,1,0.0,0,0.0,1,1,1.0,0,-1.0,0,-1,0,-1,38489,5000,404,0,38914,29750,4.3,0.0,0,0.0,0.0,None,0.0,0,0.67,0.4,0.0,48,2000,1.0,1.0,0.0,0.0,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone/Resources/Thermal.csv b/Example_Systems/RealSystemExample/ISONE_Trizone/Resources/Thermal.csv
new file mode 100644
index 0000000000..0f61cc751c
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone/Resources/Thermal.csv
@@ -0,0 +1,30 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Model,LDS,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Ramp_Up_Percentage,Ramp_Dn_Percentage,Up_Time,Down_Time,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost
+NENGREST,1,NENGREST_biomass_1,biomass,1,1,1,1,0,106.062,0,0,3.21,0,0.0,0,122976,5.08,0,0.0,14.58,None,0.45,1.0,1.0,1.0,0,0,0.083333333,0.166666667,0,0
+NENGREST,1,NENGREST_natural_gas_fired_combined_cycle_1,natural_gas_fired_combined_cycle,1,4,1,1,0,7077.3,0,1,471.82,0,0.0,0,10287,3.55,91,2.0,7.43,NENGREST_NG,0.468,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENGREST,2,NENGREST_natural_gas_fired_combined_cycle_2,natural_gas_fired_combined_cycle,1,5,1,1,0,2684.803,0,1,244.07,0,0.0,0,16291,4.5,91,2.0,8.29,NENGREST_NG,0.507,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENGREST,1,NENGREST_natural_gas_fired_combustion_turbine_1,natural_gas_fired_combustion_turbine,1,6,1,1,0,302.701,0,1,43.24,0,0.0,0,12080,4.6,118,3.5,10.13,NENGREST_NG,0.456,1.0,3.78,3.78,1,1,0.315,0.63,0,0
+NENGREST,2,NENGREST_natural_gas_fired_combustion_turbine_2,natural_gas_fired_combustion_turbine,1,7,1,1,0,62.704,0,1,7.84,0,0.0,0,13991,4.6,118,3.5,4.74,NENGREST_NG,0.488,1.0,3.78,3.78,1,1,0.315,0.63,0,0
+NENGREST,1,NENGREST_natural_gas_steam_turbine_1,natural_gas_steam_turbine,1,8,1,1,0,0.6,0,1,0.6,0,0.0,0,50678,1.04,86,13.7,0.0,NENGREST_NG,0.0,0.0,0.0,0.0,0,0,0.0,0.0,0,0
+NENGREST,1,NENGREST_nuclear_1,nuclear,1,9,1,1,0,1242.0,0,1,1242.0,0,0.0,0,271818,2.32,245,0.0,10.46,new_england_uranium,0.5,1.0,0.25,0.25,24,24,0.020833333,0.041666667,0,0
+NENG_CT,1,NENG_CT_biomass_1,biomass,1,14,2,1,0,27.248,0,0,3.41,0,0.0,0,122976,5.37,0,0.0,15.33,None,0.348,1.0,1.0,1.0,0,0,0.083333333,0.166666667,0,0
+NENG_CT,1,NENG_CT_natural_gas_fired_combined_cycle_1,natural_gas_fired_combined_cycle,1,17,2,1,0,3488.704,0,1,436.09,0,0.0,0,9698,3.57,91,2.0,7.12,NENG_CT_NG,0.338,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_CT,2,NENG_CT_natural_gas_fired_combined_cycle_2,natural_gas_fired_combined_cycle,1,18,2,1,0,35.2,0,1,17.6,0,0.0,0,16291,4.5,91,2.0,10.77,NENG_CT_NG,0.466,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_CT,1,NENG_CT_natural_gas_fired_combustion_turbine_1,natural_gas_fired_combustion_turbine,1,19,2,1,0,434.0,0,1,54.25,0,0.0,0,10609,4.6,118,3.5,11.06,NENG_CT_NG,0.124,1.0,3.78,3.78,1,1,0.315,0.63,0,0
+NENG_CT,2,NENG_CT_natural_gas_fired_combustion_turbine_2,natural_gas_fired_combustion_turbine,1,20,2,1,0,124.9,0,1,24.98,0,0.0,0,13991,4.6,118,3.5,8.35,NENG_CT_NG,0.476,1.0,3.78,3.78,1,1,0.315,0.63,0,0
+NENG_CT,1,NENG_CT_nuclear_1,nuclear,1,21,2,1,0,2162.9,0,1,1081.45,0,0.0,0,190920,2.32,245,0.0,10.46,new_england_uranium,0.5,1.0,0.25,0.25,24,24,0.020833333,0.041666667,0,0
+NENG_ME,1,NENG_ME_biomass_1,biomass,1,25,3,1,0,24.95,0,0,2.5,0,0.0,0,122976,4.85,0,0.0,13.84,None,0.404,1.0,1.0,1.0,0,0,0.083333333,0.166666667,0,0
+NENG_ME,1,NENG_ME_natural_gas_fired_combined_cycle_1,natural_gas_fired_combined_cycle,1,27,3,1,0,274.5,0,1,137.25,0,0.0,0,16291,4.5,91,2.0,12.62,NENG_ME_NG,0.474,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_ME,2,NENG_ME_natural_gas_fired_combined_cycle_2,natural_gas_fired_combined_cycle,1,28,3,1,0,1114.1,0,1,557.05,0,0.0,0,9668,3.57,91,2.0,7.65,NENG_ME_NG,0.386,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_ME,1,NENG_ME_natural_gas_fired_combustion_turbine_1,natural_gas_fired_combustion_turbine,1,29,3,1,0,163.5,0,1,54.5,0,0.0,0,11540,4.6,118,3.5,4.75,NENG_ME_NG,0.697,1.0,3.78,3.78,1,1,0.315,0.63,0,0
+NENGREST,0,NENGREST_naturalgas_ccccsavgcf_mid_0,naturalgas_ccccsavgcf_mid,1,33,1,1,0,0.0,0,1,500.0,0,-1.0,229388,27483,5.82,103,0.0,7.52,NENGREST_NG_ccs90,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENGREST,0,NENGREST_naturalgas_ccavgcf_mid_0,naturalgas_ccavgcf_mid,1,34,1,1,0,0.0,1,1,500.0,0,-1.0,110025,12441,1.61,103,2.0,6.27,NENGREST_NG,0.2,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENGREST,0,NENGREST_naturalgas_ctavgcf_mid_0,naturalgas_ctavgcf_mid,1,35,1,1,0,0.0,1,1,100.0,0,-1.0,81998,6960,4.49,134,3.5,9.9,NENGREST_NG,0.3,1.0,3.78,3.78,1,1,0.315,0.63,0,0
+NENGREST,0,NENGREST_naturalgas_ccs100_mid_0,naturalgas_ccs100_mid,1,37,1,1,0,0.0,0,1,500.0,0,-1.0,239841,37153,6.26,103,0.0,7.89,NENGREST_NG_ccs100,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_CT,0,NENG_CT_naturalgas_ccccsavgcf_mid_0,naturalgas_ccccsavgcf_mid,1,41,2,1,0,0.0,0,1,500.0,0,-1.0,229388,27483,5.82,103,0.0,7.52,NENG_CT_NG_ccs90,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_CT,0,NENG_CT_naturalgas_ccavgcf_mid_0,naturalgas_ccavgcf_mid,1,42,2,1,0,0.0,1,1,500.0,0,-1.0,110025,12441,1.61,103,2.0,6.27,NENG_CT_NG,0.2,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_CT,0,NENG_CT_naturalgas_ctavgcf_mid_0,naturalgas_ctavgcf_mid,1,43,2,1,0,0.0,1,1,100.0,0,-1.0,81998,6960,4.49,134,3.5,9.9,NENG_CT_NG,0.3,1.0,3.78,3.78,1,1,0.315,0.63,0,0
+NENG_CT,0,NENG_CT_naturalgas_ccs100_mid_0,naturalgas_ccs100_mid,1,45,2,1,0,0.0,0,1,500.0,0,-1.0,239841,37153,6.26,103,0.0,7.89,NENG_CT_NG_ccs100,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_ME,0,NENG_ME_naturalgas_ccccsavgcf_mid_0,naturalgas_ccccsavgcf_mid,1,49,3,1,0,0.0,0,1,500.0,0,-1.0,229388,27483,5.82,103,0.0,7.52,NENG_ME_NG_ccs90,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_ME,0,NENG_ME_naturalgas_ccavgcf_mid_0,naturalgas_ccavgcf_mid,1,50,3,1,0,0.0,1,1,500.0,0,-1.0,110025,12441,1.61,103,2.0,6.27,NENG_ME_NG,0.2,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_ME,0,NENG_ME_naturalgas_ctavgcf_mid_0,naturalgas_ctavgcf_mid,1,51,3,1,0,0.0,1,1,100.0,0,-1.0,81998,6960,4.49,134,3.5,9.9,NENG_ME_NG,0.3,1.0,3.78,3.78,1,1,0.315,0.63,0,0
+NENG_ME,0,NENG_ME_naturalgas_ccs100_mid_0,naturalgas_ccs100_mid,1,53,3,1,0,0.0,0,1,500.0,0,-1.0,239841,37153,6.26,103,0.0,7.89,NENG_ME_NG_ccs100,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone/Resources/Vre.csv b/Example_Systems/RealSystemExample/ISONE_Trizone/Resources/Vre.csv
new file mode 100644
index 0000000000..2125a12189
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone/Resources/Vre.csv
@@ -0,0 +1,16 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Num_VRE_Bins,LDS,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost
+NENGREST,1,NENGREST_offshore_wind_turbine_1,offshore_wind_turbine,1,10,1,1,0,30.0,0,1,30.0,0,0.0,0,128440,0.0,0,0.0,9.12,None,0.0,0.0,0.0,0.0,0.0,0.0,0,0
+NENGREST,1,NENGREST_onshore_wind_turbine_1,onshore_wind_turbine,1,11,1,1,0,145.8,0,1,9.75,0,0.0,0,43205,-18.0,0,0.0,9.12,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENGREST,1,NENGREST_solar_photovoltaic_1,solar_photovoltaic,1,13,1,1,0,821.4,0,1,2.6,0,0.0,0,18760,0.0,0,0.0,9.13,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_CT,1,NENG_CT_onshore_wind_turbine_1,onshore_wind_turbine,1,22,2,1,0,6.5,0,1,5.0,0,0.0,0,43205,-18.0,0,0.0,9.12,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_CT,1,NENG_CT_solar_photovoltaic_1,solar_photovoltaic,1,24,2,1,0,374.6,0,1,5.67,0,0.0,0,18760,0.0,0,0.0,9.16,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_ME,1,NENG_ME_onshore_wind_turbine_1,onshore_wind_turbine,1,30,3,1,0,1190.9,0,1,48.5,0,0.0,0,43205,-18.0,0,0.0,9.12,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_ME,1,NENG_ME_solar_photovoltaic_1,solar_photovoltaic,1,32,3,1,0,11.8,0,1,1.5,0,0.0,0,18760,0.0,0,0.0,9.12,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENGREST,1,NENGREST_landbasedwind_ltrg1_mid_130_1,landbasedwind_ltrg1_mid_130,1,38,1,1,0,0.0,1,1,1.0,0,4888.236,194100,41460,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENGREST,1,NENGREST_utilitypv_losangeles_mid_80_0_2_1,utilitypv_losangeles_mid_80_0_2,1,39,1,1,0,0.0,1,1,1.0,0,20835.569,99283,13055,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENGREST,1,NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,offshorewind_otrg3_mid_fixed_1_176_77,1,40,1,1,0,0.0,1,1,1.0,0,9848.442,260044,91549,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_CT,1,NENG_CT_landbasedwind_ltrg1_mid_110_1,landbasedwind_ltrg1_mid_110,1,46,2,1,0,0.0,1,1,1.0,0,1982.895,185181,41460,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_CT,1,NENG_CT_utilitypv_losangeles_mid_80_0_2_1,utilitypv_losangeles_mid_80_0_2,1,47,2,1,0,0.0,1,1,1.0,0,17063.264,98631,13055,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_CT,1,NENG_CT_offshorewind_otrg3_mid_fixed_1_176_77_1,offshorewind_otrg3_mid_fixed_1_176_77,1,48,2,1,0,0.0,1,1,1.0,0,477.5,247542,91549,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_ME,1,NENG_ME_landbasedwind_ltrg1_mid_110_1,landbasedwind_ltrg1_mid_110,1,54,3,1,0,0.0,1,1,1.0,0,20430.499,233173,41460,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_ME,1,NENG_ME_utilitypv_losangeles_mid_100_0_2_1,utilitypv_losangeles_mid_100_0_2,1,55,3,1,0,0.0,1,1,1.0,0,21535.709,98706,13055,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_FullTimeseries/Generators_data.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_FullTimeseries/Generators_data.csv
deleted file mode 100644
index 33ebb463a5..0000000000
--- a/Example_Systems/RealSystemExample/ISONE_Trizone_FullTimeseries/Generators_data.csv
+++ /dev/null
@@ -1,59 +0,0 @@
-region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,THERM,Commit,STOR,HYDRO,FLEX,MUST_RUN,VRE,LDS,Num_VRE_Bins,CapRes_1,ESR_1,ESR_2,Min_Share,Max_Share,Existing_Cap_MW,Existing_Charge_Cap_MW,Existing_Cap_MWh,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Min_Charge_Cap_MW,Max_Charge_Cap_MW,Min_Cap_MWh,Max_Cap_MWh,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Self_Disch,Eff_Up,Eff_Down,Hydro_Energy_to_Power_Ratio,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Ramp_Up_Percentage,Ramp_Dn_Percentage,Up_Time,Down_Time,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag_1,MinCapTag_2,MinCapTag_3
-NENGREST,1,NENGREST_biomass_1,other_renewables,0,1,1,1,1,0,0,0,0,0,0,0,0.93,1,1,0,0,106.062,0,0,0,0,3.21,0,0,0,-1,0,-1,0,122976,0,0,0,0,5.08,0,0,0,14.58,None,0.45,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENGREST,1,NENGREST_conventional_hydroelectric_1,other_renewables,0,2,1,0,0,0,1,0,0,0,0,0,0.8,0,1,0,0,662.983,0,0,0,0,11.24,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.116,0,1,1,1,0,0,0,0,1,0.083,0.083,0,0,0.006916667,0.013833333,0,0,0,0,0
-NENGREST,1,NENGREST_hydroelectric_pumped_storage_1,hydroelectric_pumped_storage,0,3,1,0,0,1,0,0,0,0,0,0,0.95,0,0,0,0,1768.002,0,280635.2381,0,0,294.67,0,0,0,-1,0,-1,0,40113,0,0,0,0,0,0,0,0,0,None,0.532,0,0.866,0.866,158.730159,0,200,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENGREST,1,NENGREST_natural_gas_fired_combined_cycle_1,natural_gas,1,4,1,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,7077.3,0,0,0,1,471.82,0,0,0,-1,0,-1,0,10287,0,0,0,0,3.55,0,91,2,7.43,NENGREST_NG,0.468,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENGREST,2,NENGREST_natural_gas_fired_combined_cycle_2,natural_gas,1,5,1,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,2684.803,0,0,0,1,244.07,0,0,0,-1,0,-1,0,16291,0,0,0,0,4.5,0,91,2,8.29,NENGREST_NG,0.507,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENGREST,1,NENGREST_natural_gas_fired_combustion_turbine_1,natural_gas,1,6,1,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,302.701,0,0,0,1,43.24,0,0,0,-1,0,-1,0,12080,0,0,0,0,4.6,0,118,3.5,10.13,NENGREST_NG,0.456,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0
-NENGREST,2,NENGREST_natural_gas_fired_combustion_turbine_2,natural_gas,1,7,1,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,62.704,0,0,0,1,7.84,0,0,0,-1,0,-1,0,13991,0,0,0,0,4.6,0,118,3.5,4.74,NENGREST_NG,0.488,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0
-NENGREST,1,NENGREST_natural_gas_steam_turbine_1,natural_gas,1,8,1,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0.6,0,0,0,1,0.6,0,0,0,-1,0,-1,0,50678,0,0,0,0,1.04,0,86,13.7,0,NENGREST_NG,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0
-NENGREST,1,NENGREST_nuclear_1,nuclear,1,9,1,1,1,0,0,0,0,0,0,0,0.93,0,1,0,0,1242,0,0,0,1,1242,0,0,0,-1,0,-1,0,271818,0,0,0,0,2.32,0,245,0,10.46,new_england_uranium,0.5,0,1,1,1,0,0,0,0,1,0.25,0.25,24,24,0.020833333,0.041666667,0,0,0,0,0
-NENGREST,1,NENGREST_offshore_wind_turbine_1,offshore_wind,1,10,1,0,0,0,0,0,0,1,0,1,0.8,1,1,0,0,30,0,0,0,1,30,0,0,0,-1,0,-1,0,128440,0,0,0,0,0,0,0,0,9.12,None,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0
-NENGREST,1,NENGREST_onshore_wind_turbine_1,onshore_wind,1,11,1,0,0,0,0,0,0,1,0,1,0.8,1,1,0,0,145.8,0,0,0,1,9.75,0,0,0,-1,0,-1,0,43205,0,0,0,0,-18,0,0,0,9.12,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,1,0,0
-NENGREST,1,NENGREST_small_hydroelectric_1,other_renewables,0,12,1,0,0,0,0,0,1,0,0,0,0,1,1,0,0,186.355,0,0,0,0,0.79,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.116,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0
-NENGREST,1,NENGREST_solar_photovoltaic_1,solar,1,13,1,0,0,0,0,0,0,1,0,1,0.8,1,1,0,0,821.4,0,0,0,1,2.6,0,0,0,-1,0,-1,0,18760,0,0,0,0,0,0,0,0,9.13,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,1
-NENG_CT,1,NENG_CT_biomass_1,other_renewables,0,14,2,1,1,0,0,0,0,0,0,0,0.93,1,1,0,0,27.248,0,0,0,0,3.41,0,0,0,-1,0,-1,0,122976,0,0,0,0,5.37,0,0,0,15.33,None,0.348,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_CT,1,NENG_CT_conventional_hydroelectric_1,other_renewables,0,15,2,0,0,0,1,0,0,0,0,0,0.8,0,1,0,0,67.7,0,0,0,0,13.54,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.18,0,1,1,1,0,0,0,0,1,0.083,0.083,0,0,0.006916667,0.013833333,0,0,0,0,0
-NENG_CT,1,NENG_CT_hydroelectric_pumped_storage_1,hydroelectric_pumped_storage,0,16,2,0,0,1,0,0,0,0,0,0,0.95,0,0,0,0,30.999,0,4920.47619,0,0,10.33,0,0,0,-1,0,-1,0,40113,0,0,0,0,0,0,0,0,0,None,0.871,0,0.866,0.866,158.730159,0,200,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_CT,1,NENG_CT_natural_gas_fired_combined_cycle_1,natural_gas,1,17,2,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,3488.704,0,0,0,1,436.09,0,0,0,-1,0,-1,0,9698,0,0,0,0,3.57,0,91,2,7.12,NENG_CT_NG,0.338,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_CT,2,NENG_CT_natural_gas_fired_combined_cycle_2,natural_gas,1,18,2,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,35.2,0,0,0,1,17.6,0,0,0,-1,0,-1,0,16291,0,0,0,0,4.5,0,91,2,10.77,NENG_CT_NG,0.466,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_CT,1,NENG_CT_natural_gas_fired_combustion_turbine_1,natural_gas,1,19,2,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,434,0,0,0,1,54.25,0,0,0,-1,0,-1,0,10609,0,0,0,0,4.6,0,118,3.5,11.06,NENG_CT_NG,0.124,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0
-NENG_CT,2,NENG_CT_natural_gas_fired_combustion_turbine_2,natural_gas,1,20,2,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,124.9,0,0,0,1,24.98,0,0,0,-1,0,-1,0,13991,0,0,0,0,4.6,0,118,3.5,8.35,NENG_CT_NG,0.476,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0
-NENG_CT,1,NENG_CT_nuclear_1,nuclear,1,21,2,1,1,0,0,0,0,0,0,0,0.93,0,1,0,0,2162.9,0,0,0,1,1081.45,0,0,0,-1,0,-1,0,190920,0,0,0,0,2.32,0,245,0,10.46,new_england_uranium,0.5,0,1,1,1,0,0,0,0,1,0.25,0.25,24,24,0.020833333,0.041666667,0,0,0,0,0
-NENG_CT,1,NENG_CT_onshore_wind_turbine_1,onshore_wind,1,22,2,0,0,0,0,0,0,1,0,1,0.8,1,1,0,0,6.5,0,0,0,1,5,0,0,0,-1,0,-1,0,43205,0,0,0,0,-18,0,0,0,9.12,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_CT,1,NENG_CT_small_hydroelectric_1,other_renewables,0,23,2,0,0,0,0,0,1,0,0,0,0,1,1,0,0,18.711,0,0,0,0,0.57,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.18,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0
-NENG_CT,1,NENG_CT_solar_photovoltaic_1,solar,1,24,2,0,0,0,0,0,0,1,0,1,0.8,1,1,0,0,374.6,0,0,0,1,5.67,0,0,0,-1,0,-1,0,18760,0,0,0,0,0,0,0,0,9.16,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_ME,1,NENG_ME_biomass_1,other_renewables,0,25,3,1,1,0,0,0,0,0,0,0,0.93,1,1,0,0,24.95,0,0,0,0,2.5,0,0,0,-1,0,-1,0,122976,0,0,0,0,4.85,0,0,0,13.84,None,0.404,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_ME,1,NENG_ME_conventional_hydroelectric_1,other_renewables,0,26,3,0,0,0,1,0,0,0,0,0,0.8,0,1,0,0,327.81,0,0,0,0,7.8,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.402,0,1,1,1,0,0,0,0,1,0.083,0.083,0,0,0.006916667,0.013833333,0,0,0,0,0
-NENG_ME,1,NENG_ME_natural_gas_fired_combined_cycle_1,natural_gas,1,27,3,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,274.5,0,0,0,1,137.25,0,0,0,-1,0,-1,0,16291,0,0,0,0,4.5,0,91,2,12.62,NENG_ME_NG,0.474,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_ME,2,NENG_ME_natural_gas_fired_combined_cycle_2,natural_gas,1,28,3,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,1114.1,0,0,0,1,557.05,0,0,0,-1,0,-1,0,9668,0,0,0,0,3.57,0,91,2,7.65,NENG_ME_NG,0.386,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_ME,1,NENG_ME_natural_gas_fired_combustion_turbine_1,natural_gas,1,29,3,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,163.5,0,0,0,1,54.5,0,0,0,-1,0,-1,0,11540,0,0,0,0,4.6,0,118,3.5,4.75,NENG_ME_NG,0.697,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0
-NENG_ME,1,NENG_ME_onshore_wind_turbine_1,onshore_wind,1,30,3,0,0,0,0,0,0,1,0,1,0.8,1,1,0,0,1190.9,0,0,0,1,48.5,0,0,0,-1,0,-1,0,43205,0,0,0,0,-18,0,0,0,9.12,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,1,0,0
-NENG_ME,1,NENG_ME_small_hydroelectric_1,other_renewables,0,31,3,0,0,0,0,0,1,0,0,0,0,1,1,0,0,195.266,0,0,0,0,1.1,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.192,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0
-NENG_ME,1,NENG_ME_solar_photovoltaic_1,solar,1,32,3,0,0,0,0,0,0,1,0,1,0.8,1,1,0,0,11.8,0,0,0,1,1.5,0,0,0,-1,0,-1,0,18760,0,0,0,0,0,0,0,0,9.12,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENGREST,0,NENGREST_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,33,1,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,229388,27483,0,0,0,0,5.82,0,103,0,7.52,NENGREST_NG_ccs90,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENGREST,0,NENGREST_naturalgas_ccavgcf_mid_0,natural_gas,1,34,1,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,500,0,-1,0,-1,0,-1,110025,12441,0,0,0,0,1.61,0,103,2,6.27,NENGREST_NG,0.2,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENGREST,0,NENGREST_naturalgas_ctavgcf_mid_0,natural_gas,1,35,1,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,100,0,-1,0,-1,0,-1,81998,6960,0,0,0,0,4.49,0,134,3.5,9.9,NENGREST_NG,0.3,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0
-NENGREST,0,NENGREST_battery_mid_0,battery_mid,0,36,1,0,0,1,0,0,0,0,0,0,0.95,0,0,0,0,0,0,0,1,1,1,0,-1,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0,0,None,0,0,0.92,0.92,1,1,10,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENGREST,0,NENGREST_naturalgas_ccs100_mid_0,natural_gas_CCS,1,37,1,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,239841,37153,0,0,0,0,6.26,0,103,0,7.89,NENGREST_NG_ccs100,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENGREST,1,NENGREST_landbasedwind_ltrg1_mid_130_1,onshore_wind,1,38,1,0,0,0,0,0,0,1,0,1,0.8,1,1,0,0,0,0,0,1,1,1,0,4888.236,0,-1,0,-1,194100,41460,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,1,0,0
-NENGREST,1,NENGREST_utilitypv_losangeles_mid_80_0_2_1,solar,1,39,1,0,0,0,0,0,0,1,0,1,0.8,1,1,0,0,0,0,0,1,1,1,0,20835.569,0,-1,0,-1,99283,13055,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,1
-NENGREST,1,NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,offshore_wind,1,40,1,0,0,0,0,0,0,1,0,1,0.8,1,1,0,0,0,0,0,1,1,1,0,9848.442,0,-1,0,-1,260044,91549,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,1,1,0
-NENG_CT,0,NENG_CT_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,41,2,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,229388,27483,0,0,0,0,5.82,0,103,0,7.52,NENG_CT_NG_ccs90,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_CT,0,NENG_CT_naturalgas_ccavgcf_mid_0,natural_gas,1,42,2,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,500,0,-1,0,-1,0,-1,110025,12441,0,0,0,0,1.61,0,103,2,6.27,NENG_CT_NG,0.2,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_CT,0,NENG_CT_naturalgas_ctavgcf_mid_0,natural_gas,1,43,2,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,100,0,-1,0,-1,0,-1,81998,6960,0,0,0,0,4.49,0,134,3.5,9.9,NENG_CT_NG,0.3,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0
-NENG_CT,0,NENG_CT_battery_mid_0,battery_mid,0,44,2,0,0,1,0,0,0,0,0,0,0.95,0,0,0,0,0,0,0,1,1,1,0,-1,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0,0,None,0,0,0.92,0.92,1,1,10,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_CT,0,NENG_CT_naturalgas_ccs100_mid_0,natural_gas_CCS,1,45,2,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,239841,37153,0,0,0,0,6.26,0,103,0,7.89,NENG_CT_NG_ccs100,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_CT,1,NENG_CT_landbasedwind_ltrg1_mid_110_1,onshore_wind,1,46,2,0,0,0,0,0,0,1,0,1,0.8,1,1,0,0,0,0,0,1,1,1,0,1982.895,0,-1,0,-1,185181,41460,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_CT,1,NENG_CT_utilitypv_losangeles_mid_80_0_2_1,solar,1,47,2,0,0,0,0,0,0,1,0,1,0.8,1,1,0,0,0,0,0,1,1,1,0,17063.264,0,-1,0,-1,98631,13055,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_CT,1,NENG_CT_offshorewind_otrg3_mid_fixed_1_176_77_1,offshore_wind,1,48,2,0,0,0,0,0,0,1,0,1,0.8,1,1,0,0,0,0,0,1,1,1,0,477.5,0,-1,0,-1,247542,91549,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_ME,0,NENG_ME_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,49,3,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,229388,27483,0,0,0,0,5.82,0,103,0,7.52,NENG_ME_NG_ccs90,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_ME,0,NENG_ME_naturalgas_ccavgcf_mid_0,natural_gas,1,50,3,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,500,0,-1,0,-1,0,-1,110025,12441,0,0,0,0,1.61,0,103,2,6.27,NENG_ME_NG,0.2,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_ME,0,NENG_ME_naturalgas_ctavgcf_mid_0,natural_gas,1,51,3,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,100,0,-1,0,-1,0,-1,81998,6960,0,0,0,0,4.49,0,134,3.5,9.9,NENG_ME_NG,0.3,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0
-NENG_ME,0,NENG_ME_battery_mid_0,battery_mid,0,52,3,0,0,1,0,0,0,0,0,0,0.95,0,0,0,0,0,0,0,1,1,1,0,-1,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0,0,None,0,0,0.92,0.92,1,1,10,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_ME,0,NENG_ME_naturalgas_ccs100_mid_0,natural_gas_CCS,1,53,3,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,239841,37153,0,0,0,0,6.26,0,103,0,7.89,NENG_ME_NG_ccs100,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_ME,1,NENG_ME_landbasedwind_ltrg1_mid_110_1,onshore_wind,1,54,3,0,0,0,0,0,0,1,0,1,0.8,1,1,0,0,0,0,0,1,1,1,0,20430.499,0,-1,0,-1,233173,41460,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,1,0,0
-NENG_ME,1,NENG_ME_utilitypv_losangeles_mid_100_0_2_1,solar,1,55,3,0,0,0,0,0,0,1,0,1,0.8,1,1,0,0,0,0,0,1,1,1,0,21535.709,0,-1,0,-1,98706,13055,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENGREST,1,NENGREST_heat_load_shifting_1,heat_load_shifting,0,56,1,0,0,0,0,1,0,0,0,0,0.95,0,0,0,0,165.52,0,0,0,0,0,0,0,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,4,1,0,0,0,0,0,0,0,0,0,0,0
-NENG_CT,1,NENG_CT_heat_load_shifting_1,heat_load_shifting,0,57,2,0,0,0,0,1,0,0,0,0,0.95,0,0,0,0,47.27,0,0,0,0,0,0,0,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,4,1,0,0,0,0,0,0,0,0,0,0,0
-NENG_ME,1,NENG_ME_heat_load_shifting_1,heat_load_shifting,0,58,3,0,0,0,0,1,0,0,0,0,0.95,0,0,0,0,22.56,0,0,0,0,0,0,0,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,4,1,0,0,0,0,0,0,0,0,0,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_FullTimeseries/Resources/Flex_demand.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_FullTimeseries/Resources/Flex_demand.csv
new file mode 100644
index 0000000000..4688819b38
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone_FullTimeseries/Resources/Flex_demand.csv
@@ -0,0 +1,4 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Commit,LDS,Min_Share,Max_Share,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost
+NENGREST,1,NENGREST_heat_load_shifting_1,heat_load_shifting,0,56,1,0,0,0,0,165.52,0,0,0.0,0,0.0,0,0,0.0,0,0.0,0.0,None,0.0,0.0,0,4,1,0.0,0.0,0.0,0.0,0,0
+NENG_CT,1,NENG_CT_heat_load_shifting_1,heat_load_shifting,0,57,2,0,0,0,0,47.27,0,0,0.0,0,0.0,0,0,0.0,0,0.0,0.0,None,0.0,0.0,0,4,1,0.0,0.0,0.0,0.0,0,0
+NENG_ME,1,NENG_ME_heat_load_shifting_1,heat_load_shifting,0,58,3,0,0,0,0,22.56,0,0,0.0,0,0.0,0,0,0.0,0,0.0,0.0,None,0.0,0.0,0,4,1,0.0,0.0,0.0,0.0,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_FullTimeseries/Resources/Hydro.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_FullTimeseries/Resources/Hydro.csv
new file mode 100644
index 0000000000..9a5ee8f6c5
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone_FullTimeseries/Resources/Hydro.csv
@@ -0,0 +1,4 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Commit,LDS,Min_Share,Max_Share,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost
+NENGREST,1,NENGREST_conventional_hydroelectric_1,other_renewables,0,2,1,0,0,0,0,662.983,0,0,11.24,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.116,1.0,0.083,0.083,0.006916667,0.013833333,0,0
+NENG_CT,1,NENG_CT_conventional_hydroelectric_1,other_renewables,0,15,2,0,0,0,0,67.7,0,0,13.54,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.18,1.0,0.083,0.083,0.006916667,0.013833333,0,0
+NENG_ME,1,NENG_ME_conventional_hydroelectric_1,other_renewables,0,26,3,0,0,0,0,327.81,0,0,7.8,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.402,1.0,0.083,0.083,0.006916667,0.013833333,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_FullTimeseries/Resources/Must_run.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_FullTimeseries/Resources/Must_run.csv
new file mode 100644
index 0000000000..4b21dc5d08
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone_FullTimeseries/Resources/Must_run.csv
@@ -0,0 +1,4 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Commit,LDS,Min_Share,Max_Share,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost
+NENGREST,1,NENGREST_small_hydroelectric_1,other_renewables,0,12,1,0,0,0,0,186.355,0,0,0.79,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.116,1.0,1.0,1.0,0.0,0.0,0,0
+NENG_CT,1,NENG_CT_small_hydroelectric_1,other_renewables,0,23,2,0,0,0,0,18.711,0,0,0.57,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.18,1.0,1.0,1.0,0.0,0.0,0,0
+NENG_ME,1,NENG_ME_small_hydroelectric_1,other_renewables,0,31,3,0,0,0,0,195.266,0,0,1.1,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.192,1.0,1.0,1.0,0.0,0.0,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_FullTimeseries/Resources/Resource_capacity_reserve_margin.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_FullTimeseries/Resources/Resource_capacity_reserve_margin.csv
new file mode 100644
index 0000000000..4512c70f6a
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone_FullTimeseries/Resources/Resource_capacity_reserve_margin.csv
@@ -0,0 +1,59 @@
+Resource,Derating_Factor_1
+NENGREST_biomass_1,0.93
+NENGREST_conventional_hydroelectric_1,0.8
+NENGREST_hydroelectric_pumped_storage_1,0.95
+NENGREST_natural_gas_fired_combined_cycle_1,0.93
+NENGREST_natural_gas_fired_combined_cycle_2,0.93
+NENGREST_natural_gas_fired_combustion_turbine_1,0.93
+NENGREST_natural_gas_fired_combustion_turbine_2,0.93
+NENGREST_natural_gas_steam_turbine_1,0.93
+NENGREST_nuclear_1,0.93
+NENGREST_offshore_wind_turbine_1,0.8
+NENGREST_onshore_wind_turbine_1,0.8
+NENGREST_small_hydroelectric_1,0
+NENGREST_solar_photovoltaic_1,0.8
+NENG_CT_biomass_1,0.93
+NENG_CT_conventional_hydroelectric_1,0.8
+NENG_CT_hydroelectric_pumped_storage_1,0.95
+NENG_CT_natural_gas_fired_combined_cycle_1,0.93
+NENG_CT_natural_gas_fired_combined_cycle_2,0.93
+NENG_CT_natural_gas_fired_combustion_turbine_1,0.93
+NENG_CT_natural_gas_fired_combustion_turbine_2,0.93
+NENG_CT_nuclear_1,0.93
+NENG_CT_onshore_wind_turbine_1,0.8
+NENG_CT_small_hydroelectric_1,0
+NENG_CT_solar_photovoltaic_1,0.8
+NENG_ME_biomass_1,0.93
+NENG_ME_conventional_hydroelectric_1,0.8
+NENG_ME_natural_gas_fired_combined_cycle_1,0.93
+NENG_ME_natural_gas_fired_combined_cycle_2,0.93
+NENG_ME_natural_gas_fired_combustion_turbine_1,0.93
+NENG_ME_onshore_wind_turbine_1,0.8
+NENG_ME_small_hydroelectric_1,0
+NENG_ME_solar_photovoltaic_1,0.8
+NENGREST_naturalgas_ccccsavgcf_mid_0,0.93
+NENGREST_naturalgas_ccavgcf_mid_0,0.93
+NENGREST_naturalgas_ctavgcf_mid_0,0.93
+NENGREST_battery_mid_0,0.95
+NENGREST_naturalgas_ccs100_mid_0,0.93
+NENGREST_landbasedwind_ltrg1_mid_130_1,0.8
+NENGREST_utilitypv_losangeles_mid_80_0_2_1,0.8
+NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,0.8
+NENG_CT_naturalgas_ccccsavgcf_mid_0,0.93
+NENG_CT_naturalgas_ccavgcf_mid_0,0.93
+NENG_CT_naturalgas_ctavgcf_mid_0,0.93
+NENG_CT_battery_mid_0,0.95
+NENG_CT_naturalgas_ccs100_mid_0,0.93
+NENG_CT_landbasedwind_ltrg1_mid_110_1,0.8
+NENG_CT_utilitypv_losangeles_mid_80_0_2_1,0.8
+NENG_CT_offshorewind_otrg3_mid_fixed_1_176_77_1,0.8
+NENG_ME_naturalgas_ccccsavgcf_mid_0,0.93
+NENG_ME_naturalgas_ccavgcf_mid_0,0.93
+NENG_ME_naturalgas_ctavgcf_mid_0,0.93
+NENG_ME_battery_mid_0,0.95
+NENG_ME_naturalgas_ccs100_mid_0,0.93
+NENG_ME_landbasedwind_ltrg1_mid_110_1,0.8
+NENG_ME_utilitypv_losangeles_mid_100_0_2_1,0.8
+NENGREST_heat_load_shifting_1,0.95
+NENG_CT_heat_load_shifting_1,0.95
+NENG_ME_heat_load_shifting_1,0.95
\ No newline at end of file
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_FullTimeseries/Resources/Resource_energy_share_requirement.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_FullTimeseries/Resources/Resource_energy_share_requirement.csv
new file mode 100644
index 0000000000..44e4d35879
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone_FullTimeseries/Resources/Resource_energy_share_requirement.csv
@@ -0,0 +1,27 @@
+Resource,ESR_1,ESR_2
+NENGREST_conventional_hydroelectric_1,0,1
+NENGREST_nuclear_1,0,1
+NENG_CT_conventional_hydroelectric_1,0,1
+NENG_CT_nuclear_1,0,1
+NENG_ME_conventional_hydroelectric_1,0,1
+NENGREST_biomass_1,1,1
+NENGREST_offshore_wind_turbine_1,1,1
+NENGREST_onshore_wind_turbine_1,1,1
+NENGREST_small_hydroelectric_1,1,1
+NENGREST_solar_photovoltaic_1,1,1
+NENG_CT_biomass_1,1,1
+NENG_CT_onshore_wind_turbine_1,1,1
+NENG_CT_small_hydroelectric_1,1,1
+NENG_CT_solar_photovoltaic_1,1,1
+NENG_ME_biomass_1,1,1
+NENG_ME_onshore_wind_turbine_1,1,1
+NENG_ME_small_hydroelectric_1,1,1
+NENG_ME_solar_photovoltaic_1,1,1
+NENGREST_landbasedwind_ltrg1_mid_130_1,1,1
+NENGREST_utilitypv_losangeles_mid_80_0_2_1,1,1
+NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,1,1
+NENG_CT_landbasedwind_ltrg1_mid_110_1,1,1
+NENG_CT_utilitypv_losangeles_mid_80_0_2_1,1,1
+NENG_CT_offshorewind_otrg3_mid_fixed_1_176_77_1,1,1
+NENG_ME_landbasedwind_ltrg1_mid_110_1,1,1
+NENG_ME_utilitypv_losangeles_mid_100_0_2_1,1,1
\ No newline at end of file
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_FullTimeseries/Resources/Resource_minimum_capacity_requirement.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_FullTimeseries/Resources/Resource_minimum_capacity_requirement.csv
new file mode 100644
index 0000000000..058075909a
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone_FullTimeseries/Resources/Resource_minimum_capacity_requirement.csv
@@ -0,0 +1,9 @@
+Resource,Min_Cap_1,Min_Cap_2,Min_Cap_3
+NENGREST_onshore_wind_turbine_1,1,0,0
+NENG_ME_onshore_wind_turbine_1,1,0,0
+NENGREST_landbasedwind_ltrg1_mid_130_1,1,0,0
+NENG_ME_landbasedwind_ltrg1_mid_110_1,1,0,0
+NENGREST_offshore_wind_turbine_1,1,1,0
+NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,1,1,0
+NENGREST_solar_photovoltaic_1,0,0,1
+NENGREST_utilitypv_losangeles_mid_80_0_2_1,0,0,1
\ No newline at end of file
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_FullTimeseries/Resources/Storage.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_FullTimeseries/Resources/Storage.csv
new file mode 100644
index 0000000000..83574879d2
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone_FullTimeseries/Resources/Storage.csv
@@ -0,0 +1,6 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Commit,Model,LDS,Min_Share,Max_Share,Existing_Cap_MW,Existing_Charge_Cap_MW,Existing_Cap_MWh,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Min_Charge_Cap_MW,Max_Charge_Cap_MW,Min_Cap_MWh,Max_Cap_MWh,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Self_Disch,Eff_Up,Eff_Down,Hydro_Energy_to_Power_Ratio,Min_Duration,Max_Duration,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost
+NENGREST,1,NENGREST_hydroelectric_pumped_storage_1,hydroelectric_pumped_storage,0,3,1,0,1,0,0,0,1768.002,0,280635.2381,0,0,294.67,0,0.0,0,-1,0,-1,0,40113,0,0,0,0,0.0,0.0,0,0.0,0.0,None,0.532,0,0.866,0.866,158.730159,0,200,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_CT,1,NENG_CT_hydroelectric_pumped_storage_1,hydroelectric_pumped_storage,0,16,2,0,1,0,0,0,30.999,0,4920.47619,0,0,10.33,0,0.0,0,-1,0,-1,0,40113,0,0,0,0,0.0,0.0,0,0.0,0.0,None,0.871,0,0.866,0.866,158.730159,0,200,1.0,1.0,0.083333333,0.166666667,0,0
+NENGREST,0,NENGREST_battery_mid_0,battery_mid,0,36,1,0,1,0,0,0,0.0,0,0.0,1,1,1.0,0,-1.0,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0.0,0.0,None,0.0,0,0.92,0.92,1.0,1,10,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_CT,0,NENG_CT_battery_mid_0,battery_mid,0,44,2,0,1,0,0,0,0.0,0,0.0,1,1,1.0,0,-1.0,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0.0,0.0,None,0.0,0,0.92,0.92,1.0,1,10,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_ME,0,NENG_ME_battery_mid_0,battery_mid,0,52,3,0,1,0,0,0,0.0,0,0.0,1,1,1.0,0,-1.0,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0.0,0.0,None,0.0,0,0.92,0.92,1.0,1,10,1.0,1.0,0.083333333,0.166666667,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_FullTimeseries/Resources/Thermal.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_FullTimeseries/Resources/Thermal.csv
new file mode 100644
index 0000000000..6a63efd8e0
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone_FullTimeseries/Resources/Thermal.csv
@@ -0,0 +1,30 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Model,Commit,LDS,Min_Share,Max_Share,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Ramp_Up_Percentage,Ramp_Dn_Percentage,Up_Time,Down_Time,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost
+NENGREST,1,NENGREST_biomass_1,other_renewables,0,1,1,1,1,0,0,0,106.062,0,0,3.21,0,0.0,0,122976,5.08,0,0.0,14.58,None,0.45,1.0,1.0,1.0,0,0,0.083333333,0.166666667,0,0
+NENGREST,1,NENGREST_natural_gas_fired_combined_cycle_1,natural_gas,1,4,1,1,1,0,0,0,7077.3,0,1,471.82,0,0.0,0,10287,3.55,91,2.0,7.43,NENGREST_NG,0.468,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENGREST,2,NENGREST_natural_gas_fired_combined_cycle_2,natural_gas,1,5,1,1,1,0,0,0,2684.803,0,1,244.07,0,0.0,0,16291,4.5,91,2.0,8.29,NENGREST_NG,0.507,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENGREST,1,NENGREST_natural_gas_fired_combustion_turbine_1,natural_gas,1,6,1,1,1,0,0,0,302.701,0,1,43.24,0,0.0,0,12080,4.6,118,3.5,10.13,NENGREST_NG,0.456,1.0,3.78,3.78,1,1,0.315,0.63,0,0
+NENGREST,2,NENGREST_natural_gas_fired_combustion_turbine_2,natural_gas,1,7,1,1,1,0,0,0,62.704,0,1,7.84,0,0.0,0,13991,4.6,118,3.5,4.74,NENGREST_NG,0.488,1.0,3.78,3.78,1,1,0.315,0.63,0,0
+NENGREST,1,NENGREST_natural_gas_steam_turbine_1,natural_gas,1,8,1,1,1,0,0,0,0.6,0,1,0.6,0,0.0,0,50678,1.04,86,13.7,0.0,NENGREST_NG,0.0,0.0,0.0,0.0,0,0,0.0,0.0,0,0
+NENGREST,1,NENGREST_nuclear_1,nuclear,1,9,1,1,1,0,0,0,1242.0,0,1,1242.0,0,0.0,0,271818,2.32,245,0.0,10.46,new_england_uranium,0.5,1.0,0.25,0.25,24,24,0.020833333,0.041666667,0,0
+NENG_CT,1,NENG_CT_biomass_1,other_renewables,0,14,2,1,1,0,0,0,27.248,0,0,3.41,0,0.0,0,122976,5.37,0,0.0,15.33,None,0.348,1.0,1.0,1.0,0,0,0.083333333,0.166666667,0,0
+NENG_CT,1,NENG_CT_natural_gas_fired_combined_cycle_1,natural_gas,1,17,2,1,1,0,0,0,3488.704,0,1,436.09,0,0.0,0,9698,3.57,91,2.0,7.12,NENG_CT_NG,0.338,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_CT,2,NENG_CT_natural_gas_fired_combined_cycle_2,natural_gas,1,18,2,1,1,0,0,0,35.2,0,1,17.6,0,0.0,0,16291,4.5,91,2.0,10.77,NENG_CT_NG,0.466,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_CT,1,NENG_CT_natural_gas_fired_combustion_turbine_1,natural_gas,1,19,2,1,1,0,0,0,434.0,0,1,54.25,0,0.0,0,10609,4.6,118,3.5,11.06,NENG_CT_NG,0.124,1.0,3.78,3.78,1,1,0.315,0.63,0,0
+NENG_CT,2,NENG_CT_natural_gas_fired_combustion_turbine_2,natural_gas,1,20,2,1,1,0,0,0,124.9,0,1,24.98,0,0.0,0,13991,4.6,118,3.5,8.35,NENG_CT_NG,0.476,1.0,3.78,3.78,1,1,0.315,0.63,0,0
+NENG_CT,1,NENG_CT_nuclear_1,nuclear,1,21,2,1,1,0,0,0,2162.9,0,1,1081.45,0,0.0,0,190920,2.32,245,0.0,10.46,new_england_uranium,0.5,1.0,0.25,0.25,24,24,0.020833333,0.041666667,0,0
+NENG_ME,1,NENG_ME_biomass_1,other_renewables,0,25,3,1,1,0,0,0,24.95,0,0,2.5,0,0.0,0,122976,4.85,0,0.0,13.84,None,0.404,1.0,1.0,1.0,0,0,0.083333333,0.166666667,0,0
+NENG_ME,1,NENG_ME_natural_gas_fired_combined_cycle_1,natural_gas,1,27,3,1,1,0,0,0,274.5,0,1,137.25,0,0.0,0,16291,4.5,91,2.0,12.62,NENG_ME_NG,0.474,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_ME,2,NENG_ME_natural_gas_fired_combined_cycle_2,natural_gas,1,28,3,1,1,0,0,0,1114.1,0,1,557.05,0,0.0,0,9668,3.57,91,2.0,7.65,NENG_ME_NG,0.386,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_ME,1,NENG_ME_natural_gas_fired_combustion_turbine_1,natural_gas,1,29,3,1,1,0,0,0,163.5,0,1,54.5,0,0.0,0,11540,4.6,118,3.5,4.75,NENG_ME_NG,0.697,1.0,3.78,3.78,1,1,0.315,0.63,0,0
+NENGREST,0,NENGREST_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,33,1,1,1,0,0,0,0.0,0,1,500.0,0,-1.0,229388,27483,5.82,103,0.0,7.52,NENGREST_NG_ccs90,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENGREST,0,NENGREST_naturalgas_ccavgcf_mid_0,natural_gas,1,34,1,1,1,0,0,0,0.0,1,1,500.0,0,-1.0,110025,12441,1.61,103,2.0,6.27,NENGREST_NG,0.2,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENGREST,0,NENGREST_naturalgas_ctavgcf_mid_0,natural_gas,1,35,1,1,1,0,0,0,0.0,1,1,100.0,0,-1.0,81998,6960,4.49,134,3.5,9.9,NENGREST_NG,0.3,1.0,3.78,3.78,1,1,0.315,0.63,0,0
+NENGREST,0,NENGREST_naturalgas_ccs100_mid_0,natural_gas_CCS,1,37,1,1,1,0,0,0,0.0,0,1,500.0,0,-1.0,239841,37153,6.26,103,0.0,7.89,NENGREST_NG_ccs100,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_CT,0,NENG_CT_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,41,2,1,1,0,0,0,0.0,0,1,500.0,0,-1.0,229388,27483,5.82,103,0.0,7.52,NENG_CT_NG_ccs90,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_CT,0,NENG_CT_naturalgas_ccavgcf_mid_0,natural_gas,1,42,2,1,1,0,0,0,0.0,1,1,500.0,0,-1.0,110025,12441,1.61,103,2.0,6.27,NENG_CT_NG,0.2,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_CT,0,NENG_CT_naturalgas_ctavgcf_mid_0,natural_gas,1,43,2,1,1,0,0,0,0.0,1,1,100.0,0,-1.0,81998,6960,4.49,134,3.5,9.9,NENG_CT_NG,0.3,1.0,3.78,3.78,1,1,0.315,0.63,0,0
+NENG_CT,0,NENG_CT_naturalgas_ccs100_mid_0,natural_gas_CCS,1,45,2,1,1,0,0,0,0.0,0,1,500.0,0,-1.0,239841,37153,6.26,103,0.0,7.89,NENG_CT_NG_ccs100,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_ME,0,NENG_ME_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,49,3,1,1,0,0,0,0.0,0,1,500.0,0,-1.0,229388,27483,5.82,103,0.0,7.52,NENG_ME_NG_ccs90,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_ME,0,NENG_ME_naturalgas_ccavgcf_mid_0,natural_gas,1,50,3,1,1,0,0,0,0.0,1,1,500.0,0,-1.0,110025,12441,1.61,103,2.0,6.27,NENG_ME_NG,0.2,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_ME,0,NENG_ME_naturalgas_ctavgcf_mid_0,natural_gas,1,51,3,1,1,0,0,0,0.0,1,1,100.0,0,-1.0,81998,6960,4.49,134,3.5,9.9,NENG_ME_NG,0.3,1.0,3.78,3.78,1,1,0.315,0.63,0,0
+NENG_ME,0,NENG_ME_naturalgas_ccs100_mid_0,natural_gas_CCS,1,53,3,1,1,0,0,0,0.0,0,1,500.0,0,-1.0,239841,37153,6.26,103,0.0,7.89,NENG_ME_NG_ccs100,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_FullTimeseries/Resources/Vre.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_FullTimeseries/Resources/Vre.csv
new file mode 100644
index 0000000000..9e005490f1
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone_FullTimeseries/Resources/Vre.csv
@@ -0,0 +1,16 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Commit,LDS,Num_VRE_Bins,Min_Share,Max_Share,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost
+NENGREST,1,NENGREST_offshore_wind_turbine_1,offshore_wind,1,10,1,0,0,1,0,0,30.0,0,1,30.0,0,0.0,0,128440,0.0,0,0.0,9.12,None,0.0,0.0,0.0,0.0,0.0,0.0,0,0
+NENGREST,1,NENGREST_onshore_wind_turbine_1,onshore_wind,1,11,1,0,0,1,0,0,145.8,0,1,9.75,0,0.0,0,43205,-18.0,0,0.0,9.12,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENGREST,1,NENGREST_solar_photovoltaic_1,solar,1,13,1,0,0,1,0,0,821.4,0,1,2.6,0,0.0,0,18760,0.0,0,0.0,9.13,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_CT,1,NENG_CT_onshore_wind_turbine_1,onshore_wind,1,22,2,0,0,1,0,0,6.5,0,1,5.0,0,0.0,0,43205,-18.0,0,0.0,9.12,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_CT,1,NENG_CT_solar_photovoltaic_1,solar,1,24,2,0,0,1,0,0,374.6,0,1,5.67,0,0.0,0,18760,0.0,0,0.0,9.16,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_ME,1,NENG_ME_onshore_wind_turbine_1,onshore_wind,1,30,3,0,0,1,0,0,1190.9,0,1,48.5,0,0.0,0,43205,-18.0,0,0.0,9.12,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_ME,1,NENG_ME_solar_photovoltaic_1,solar,1,32,3,0,0,1,0,0,11.8,0,1,1.5,0,0.0,0,18760,0.0,0,0.0,9.12,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENGREST,1,NENGREST_landbasedwind_ltrg1_mid_130_1,onshore_wind,1,38,1,0,0,1,0,0,0.0,1,1,1.0,0,4888.236,194100,41460,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENGREST,1,NENGREST_utilitypv_losangeles_mid_80_0_2_1,solar,1,39,1,0,0,1,0,0,0.0,1,1,1.0,0,20835.569,99283,13055,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENGREST,1,NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,offshore_wind,1,40,1,0,0,1,0,0,0.0,1,1,1.0,0,9848.442,260044,91549,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_CT,1,NENG_CT_landbasedwind_ltrg1_mid_110_1,onshore_wind,1,46,2,0,0,1,0,0,0.0,1,1,1.0,0,1982.895,185181,41460,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_CT,1,NENG_CT_utilitypv_losangeles_mid_80_0_2_1,solar,1,47,2,0,0,1,0,0,0.0,1,1,1.0,0,17063.264,98631,13055,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_CT,1,NENG_CT_offshorewind_otrg3_mid_fixed_1_176_77_1,offshore_wind,1,48,2,0,0,1,0,0,0.0,1,1,1.0,0,477.5,247542,91549,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_ME,1,NENG_ME_landbasedwind_ltrg1_mid_110_1,onshore_wind,1,54,3,0,0,1,0,0,0.0,1,1,1.0,0,20430.499,233173,41460,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_ME,1,NENG_ME_utilitypv_losangeles_mid_100_0_2_1,solar,1,55,3,0,0,1,0,0,0.0,1,1,1.0,0,21535.709,98706,13055,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p1/Generators_data.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p1/Generators_data.csv
deleted file mode 100644
index 157c1ac300..0000000000
--- a/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p1/Generators_data.csv
+++ /dev/null
@@ -1,59 +0,0 @@
-region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,THERM,Commit,STOR,HYDRO,FLEX,MUST_RUN,VRE,Num_VRE_Bins,CapRes_1,ESR_1,ESR_2,Min_Share,Max_Share,Existing_Cap_MW,Existing_Charge_Cap_MW,Existing_Cap_MWh,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Min_Charge_Cap_MW,Max_Charge_Cap_MW,Min_Cap_MWh,Max_Cap_MWh,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Self_Disch,Eff_Up,Eff_Down,Hydro_Energy_to_Power_Ratio,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Ramp_Up_Percentage,Ramp_Dn_Percentage,Up_Time,Down_Time,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,MinCapTag_1,MinCapTag_2,MinCapTag_3,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
-NENGREST,1,NENGREST_biomass_1,other_renewables,0,1,1,1,1,0,0,0,0,0,0,0.93,1,1,0,0,106.062,0,0,0,0,3.21,0,0,0,-1,0,-1,0,122976,0,0,0,0,5.08,0,0,0,14.58,None,0.45,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,10,0,0,0,0.024,20,20,0,0,0,0
-NENGREST,1,NENGREST_conventional_hydroelectric_1,other_renewables,0,2,1,0,0,0,1,0,0,0,0,0.8,0,1,0,0,662.983,0,0,0,0,11.24,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.116,0,1,1,1,0,0,0,0,1,0.083,0.083,0,0,0.006916667,0.013833333,0,0,4,0,0,0,0.024,20,20,0,0,0,0
-NENGREST,1,NENGREST_hydroelectric_pumped_storage_1,hydroelectric_pumped_storage,0,3,1,0,0,1,0,0,0,0,0,0.95,0,0,0,0,1768.002,0,280635.2381,0,0,294.67,0,0,0,-1,0,-1,0,40113,0,0,0,0,0,0,0,0,0,None,0.532,0,0.866,0.866,158.730159,0,200,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,11,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,1,NENGREST_natural_gas_fired_combined_cycle_1,natural_gas,1,4,1,1,1,0,0,0,0,0,0,0.93,0,0,0,0,7077.3,0,0,0,1,471.82,0,0,0,-1,0,-1,0,10287,0,0,0,0,3.55,0,91,2,7.43,NENGREST_NG,0.468,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,2,NENGREST_natural_gas_fired_combined_cycle_2,natural_gas,1,5,1,1,1,0,0,0,0,0,0,0.93,0,0,0,0,2684.803,0,0,0,1,244.07,0,0,0,-1,0,-1,0,16291,0,0,0,0,4.5,0,91,2,8.29,NENGREST_NG,0.507,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,1,NENGREST_natural_gas_fired_combustion_turbine_1,natural_gas,1,6,1,1,1,0,0,0,0,0,0,0.93,0,0,0,0,302.701,0,0,0,1,43.24,0,0,0,-1,0,-1,0,12080,0,0,0,0,4.6,0,118,3.5,10.13,NENGREST_NG,0.456,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,3,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,2,NENGREST_natural_gas_fired_combustion_turbine_2,natural_gas,1,7,1,1,1,0,0,0,0,0,0,0.93,0,0,0,0,62.704,0,0,0,1,7.84,0,0,0,-1,0,-1,0,13991,0,0,0,0,4.6,0,118,3.5,4.74,NENGREST_NG,0.488,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,3,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,1,NENGREST_natural_gas_steam_turbine_1,natural_gas,1,8,1,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0.6,0,0,0,1,0.6,0,0,0,-1,0,-1,0,50678,0,0,0,0,1.04,0,86,13.7,0,NENGREST_NG,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,99,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,1,NENGREST_nuclear_1,nuclear,1,9,1,1,1,0,0,0,0,0,0,0.93,0,1,0,0,1242,0,0,0,1,1242,0,0,0,-1,0,-1,0,271818,0,0,0,0,2.32,0,245,0,10.46,new_england_uranium,0.5,0,1,1,1,0,0,0,0,1,0.25,0.25,24,24,0.020833333,0.041666667,0,0,5,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,1,NENGREST_offshore_wind_turbine_1,offshore_wind,1,10,1,0,0,0,0,0,0,1,1,0.8,1,1,0,0,30,0,0,0,1,30,0,0,0,-1,0,-1,0,128440,0,0,0,0,0,0,0,0,9.12,None,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,8,1,1,0,0.024,20,20,0,0,0,0
-NENGREST,1,NENGREST_onshore_wind_turbine_1,onshore_wind,1,11,1,0,0,0,0,0,0,1,1,0.8,1,1,0,0,145.8,0,0,0,1,9.75,0,0,0,-1,0,-1,0,43205,0,0,0,0,-18,0,0,0,9.12,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,6,1,0,0,0.024,20,20,0,0,0,0
-NENGREST,1,NENGREST_small_hydroelectric_1,other_renewables,0,12,1,0,0,0,0,0,1,0,0,0,1,1,0,0,186.355,0,0,0,0,0.79,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.116,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,15,0,0,0,0.024,20,20,0,0,0,0
-NENGREST,1,NENGREST_solar_photovoltaic_1,solar,1,13,1,0,0,0,0,0,0,1,1,0.8,1,1,0,0,821.4,0,0,0,1,2.6,0,0,0,-1,0,-1,0,18760,0,0,0,0,0,0,0,0,9.13,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,7,0,0,1,0.017,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_biomass_1,other_renewables,0,14,2,1,1,0,0,0,0,0,0,0.93,1,1,0,0,27.248,0,0,0,0,3.41,0,0,0,-1,0,-1,0,122976,0,0,0,0,5.37,0,0,0,15.33,None,0.348,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,10,0,0,0,0.024,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_conventional_hydroelectric_1,other_renewables,0,15,2,0,0,0,1,0,0,0,0,0.8,0,1,0,0,67.7,0,0,0,0,13.54,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.18,0,1,1,1,0,0,0,0,1,0.083,0.083,0,0,0.006916667,0.013833333,0,0,4,0,0,0,0.024,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_hydroelectric_pumped_storage_1,hydroelectric_pumped_storage,0,16,2,0,0,1,0,0,0,0,0,0.95,0,0,0,0,30.999,0,4920.47619,0,0,10.33,0,0,0,-1,0,-1,0,40113,0,0,0,0,0,0,0,0,0,None,0.871,0,0.866,0.866,158.730159,0,200,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,11,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_natural_gas_fired_combined_cycle_1,natural_gas,1,17,2,1,1,0,0,0,0,0,0,0.93,0,0,0,0,3488.704,0,0,0,1,436.09,0,0,0,-1,0,-1,0,9698,0,0,0,0,3.57,0,91,2,7.12,NENG_CT_NG,0.338,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,2,NENG_CT_natural_gas_fired_combined_cycle_2,natural_gas,1,18,2,1,1,0,0,0,0,0,0,0.93,0,0,0,0,35.2,0,0,0,1,17.6,0,0,0,-1,0,-1,0,16291,0,0,0,0,4.5,0,91,2,10.77,NENG_CT_NG,0.466,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_natural_gas_fired_combustion_turbine_1,natural_gas,1,19,2,1,1,0,0,0,0,0,0,0.93,0,0,0,0,434,0,0,0,1,54.25,0,0,0,-1,0,-1,0,10609,0,0,0,0,4.6,0,118,3.5,11.06,NENG_CT_NG,0.124,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,3,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,2,NENG_CT_natural_gas_fired_combustion_turbine_2,natural_gas,1,20,2,1,1,0,0,0,0,0,0,0.93,0,0,0,0,124.9,0,0,0,1,24.98,0,0,0,-1,0,-1,0,13991,0,0,0,0,4.6,0,118,3.5,8.35,NENG_CT_NG,0.476,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,3,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_nuclear_1,nuclear,1,21,2,1,1,0,0,0,0,0,0,0.93,0,1,0,0,2162.9,0,0,0,1,1081.45,0,0,0,-1,0,-1,0,190920,0,0,0,0,2.32,0,245,0,10.46,new_england_uranium,0.5,0,1,1,1,0,0,0,0,1,0.25,0.25,24,24,0.020833333,0.041666667,0,0,5,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_onshore_wind_turbine_1,onshore_wind,1,22,2,0,0,0,0,0,0,1,1,0.8,1,1,0,0,6.5,0,0,0,1,5,0,0,0,-1,0,-1,0,43205,0,0,0,0,-18,0,0,0,9.12,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,6,0,0,0,0.024,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_small_hydroelectric_1,other_renewables,0,23,2,0,0,0,0,0,1,0,0,0,1,1,0,0,18.711,0,0,0,0,0.57,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.18,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,15,0,0,0,0.024,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_solar_photovoltaic_1,solar,1,24,2,0,0,0,0,0,0,1,1,0.8,1,1,0,0,374.6,0,0,0,1,5.67,0,0,0,-1,0,-1,0,18760,0,0,0,0,0,0,0,0,9.16,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,7,0,0,0,0.017,20,20,0,0,0,0
-NENG_ME,1,NENG_ME_biomass_1,other_renewables,0,25,3,1,1,0,0,0,0,0,0,0.93,1,1,0,0,24.95,0,0,0,0,2.5,0,0,0,-1,0,-1,0,122976,0,0,0,0,4.85,0,0,0,13.84,None,0.404,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,10,0,0,0,0.024,20,20,0,0,0,0
-NENG_ME,1,NENG_ME_conventional_hydroelectric_1,other_renewables,0,26,3,0,0,0,1,0,0,0,0,0.8,0,1,0,0,327.81,0,0,0,0,7.8,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.402,0,1,1,1,0,0,0,0,1,0.083,0.083,0,0,0.006916667,0.013833333,0,0,4,0,0,0,0.024,20,20,0,0,0,0
-NENG_ME,1,NENG_ME_natural_gas_fired_combined_cycle_1,natural_gas,1,27,3,1,1,0,0,0,0,0,0,0.93,0,0,0,0,274.5,0,0,0,1,137.25,0,0,0,-1,0,-1,0,16291,0,0,0,0,4.5,0,91,2,12.62,NENG_ME_NG,0.474,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENG_ME,2,NENG_ME_natural_gas_fired_combined_cycle_2,natural_gas,1,28,3,1,1,0,0,0,0,0,0,0.93,0,0,0,0,1114.1,0,0,0,1,557.05,0,0,0,-1,0,-1,0,9668,0,0,0,0,3.57,0,91,2,7.65,NENG_ME_NG,0.386,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENG_ME,1,NENG_ME_natural_gas_fired_combustion_turbine_1,natural_gas,1,29,3,1,1,0,0,0,0,0,0,0.93,0,0,0,0,163.5,0,0,0,1,54.5,0,0,0,-1,0,-1,0,11540,0,0,0,0,4.6,0,118,3.5,4.75,NENG_ME_NG,0.697,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,3,0,0,0,0.039,20,20,0,0,0,0
-NENG_ME,1,NENG_ME_onshore_wind_turbine_1,onshore_wind,1,30,3,0,0,0,0,0,0,1,1,0.8,1,1,0,0,1190.9,0,0,0,1,48.5,0,0,0,-1,0,-1,0,43205,0,0,0,0,-18,0,0,0,9.12,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,6,1,0,0,0.024,20,20,0,0,0,0
-NENG_ME,1,NENG_ME_small_hydroelectric_1,other_renewables,0,31,3,0,0,0,0,0,1,0,0,0,1,1,0,0,195.266,0,0,0,0,1.1,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.192,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,15,0,0,0,0.024,20,20,0,0,0,0
-NENG_ME,1,NENG_ME_solar_photovoltaic_1,solar,1,32,3,0,0,0,0,0,0,1,1,0.8,1,1,0,0,11.8,0,0,0,1,1.5,0,0,0,-1,0,-1,0,18760,0,0,0,0,0,0,0,0,9.12,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,7,0,0,0,0.017,20,20,0,0,0,0
-NENGREST,0,NENGREST_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,33,1,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,229388,27483,0,0,0,0,5.82,0,103,0,7.52,NENGREST_NG_ccs90,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,0,NENGREST_naturalgas_ccavgcf_mid_0,natural_gas,1,34,1,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,500,0,-1,0,-1,0,-1,110025,12441,0,0,0,0,1.61,0,103,2,6.27,NENGREST_NG,0.2,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,0,NENGREST_naturalgas_ctavgcf_mid_0,natural_gas,1,35,1,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,100,0,-1,0,-1,0,-1,81998,6960,0,0,0,0,4.49,0,134,3.5,9.9,NENGREST_NG,0.3,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,3,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,0,NENGREST_battery_mid_0,battery_mid,0,36,1,0,0,1,0,0,0,0,0,0.95,0,0,0,0,0,0,0,1,1,1,0,-1,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0,0,None,0,0,0.92,0.92,1,1,10,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,12,0,0,0,0.027,20,20,0,0,0,0
-NENGREST,0,NENGREST_naturalgas_ccs100_mid_0,natural_gas_CCS,1,37,1,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,239841,37153,0,0,0,0,6.26,0,103,0,7.89,NENGREST_NG_ccs100,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,13,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,1,NENGREST_landbasedwind_ltrg1_mid_130_1,onshore_wind,1,38,1,0,0,0,0,0,0,1,1,0.8,1,1,0,0,0,0,0,1,1,1,0,4888.236,0,-1,0,-1,194100,41460,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,6,1,0,0,0.024,20,20,0,0,0,0
-NENGREST,1,NENGREST_utilitypv_losangeles_mid_80_0_2_1,solar,1,39,1,0,0,0,0,0,0,1,1,0.8,1,1,0,0,0,0,0,1,1,1,0,20835.569,0,-1,0,-1,99283,13055,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,7,0,0,1,0.017,20,20,0,0,0,0
-NENGREST,1,NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,offshore_wind,1,40,1,0,0,0,0,0,0,1,1,0.8,1,1,0,0,0,0,0,1,1,1,0,9848.442,0,-1,0,-1,260044,91549,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,8,1,1,0,0.024,20,20,0,0,0,0
-NENG_CT,0,NENG_CT_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,41,2,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,229388,27483,0,0,0,0,5.82,0,103,0,7.52,NENG_CT_NG_ccs90,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,0,NENG_CT_naturalgas_ccavgcf_mid_0,natural_gas,1,42,2,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,500,0,-1,0,-1,0,-1,110025,12441,0,0,0,0,1.61,0,103,2,6.27,NENG_CT_NG,0.2,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,0,NENG_CT_naturalgas_ctavgcf_mid_0,natural_gas,1,43,2,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,100,0,-1,0,-1,0,-1,81998,6960,0,0,0,0,4.49,0,134,3.5,9.9,NENG_CT_NG,0.3,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,3,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,0,NENG_CT_battery_mid_0,battery_mid,0,44,2,0,0,1,0,0,0,0,0,0.95,0,0,0,0,0,0,0,1,1,1,0,-1,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0,0,None,0,0,0.92,0.92,1,1,10,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,12,0,0,0,0.027,20,20,0,0,0,0
-NENG_CT,0,NENG_CT_naturalgas_ccs100_mid_0,natural_gas_CCS,1,45,2,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,239841,37153,0,0,0,0,6.26,0,103,0,7.89,NENG_CT_NG_ccs100,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,13,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_landbasedwind_ltrg1_mid_110_1,onshore_wind,1,46,2,0,0,0,0,0,0,1,1,0.8,1,1,0,0,0,0,0,1,1,1,0,1982.895,0,-1,0,-1,185181,41460,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,6,0,0,0,0.024,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_utilitypv_losangeles_mid_80_0_2_1,solar,1,47,2,0,0,0,0,0,0,1,1,0.8,1,1,0,0,0,0,0,1,1,1,0,17063.264,0,-1,0,-1,98631,13055,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,7,0,0,0,0.017,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_offshorewind_otrg3_mid_fixed_1_176_77_1,offshore_wind,1,48,2,0,0,0,0,0,0,1,1,0.8,1,1,0,0,0,0,0,1,1,1,0,477.5,0,-1,0,-1,247542,91549,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,8,0,0,0,0.024,20,20,0,0,0,0
-NENG_ME,0,NENG_ME_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,49,3,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,229388,27483,0,0,0,0,5.82,0,103,0,7.52,NENG_ME_NG_ccs90,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENG_ME,0,NENG_ME_naturalgas_ccavgcf_mid_0,natural_gas,1,50,3,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,500,0,-1,0,-1,0,-1,110025,12441,0,0,0,0,1.61,0,103,2,6.27,NENG_ME_NG,0.2,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENG_ME,0,NENG_ME_naturalgas_ctavgcf_mid_0,natural_gas,1,51,3,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,100,0,-1,0,-1,0,-1,81998,6960,0,0,0,0,4.49,0,134,3.5,9.9,NENG_ME_NG,0.3,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,3,0,0,0,0.039,20,20,0,0,0,0
-NENG_ME,0,NENG_ME_battery_mid_0,battery_mid,0,52,3,0,0,1,0,0,0,0,0,0.95,0,0,0,0,0,0,0,1,1,1,0,-1,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0,0,None,0,0,0.92,0.92,1,1,10,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,12,0,0,0,0.027,20,20,0,0,0,0
-NENG_ME,0,NENG_ME_naturalgas_ccs100_mid_0,natural_gas_CCS,1,53,3,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,239841,37153,0,0,0,0,6.26,0,103,0,7.89,NENG_ME_NG_ccs100,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,13,0,0,0,0.039,20,20,0,0,0,0
-NENG_ME,1,NENG_ME_landbasedwind_ltrg1_mid_110_1,onshore_wind,1,54,3,0,0,0,0,0,0,1,1,0.8,1,1,0,0,0,0,0,1,1,1,0,20430.499,0,-1,0,-1,233173,41460,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,6,1,0,0,0.024,20,20,0,0,0,0
-NENG_ME,1,NENG_ME_utilitypv_losangeles_mid_100_0_2_1,solar,1,55,3,0,0,0,0,0,0,1,1,0.8,1,1,0,0,0,0,0,1,1,1,0,21535.709,0,-1,0,-1,98706,13055,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,7,0,0,0,0.017,20,20,0,0,0,0
-NENGREST,1,NENGREST_heat_load_shifting_1,heat_load_shifting,0,56,1,0,0,0,0,1,0,0,0,0.95,0,0,0,0,165.52,0,0,0,0,0,0,0,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_heat_load_shifting_1,heat_load_shifting,0,57,2,0,0,0,0,1,0,0,0,0.95,0,0,0,0,47.27,0,0,0,0,0,0,0,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0.039,20,20,0,0,0,0
-NENG_ME,1,NENG_ME_heat_load_shifting_1,heat_load_shifting,0,58,3,0,0,0,0,1,0,0,0,0.95,0,0,0,0,22.56,0,0,0,0,0,0,0,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0.039,20,20,0,0,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p1/Resources/Flex_demand.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p1/Resources/Flex_demand.csv
new file mode 100644
index 0000000000..4073c5319c
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p1/Resources/Flex_demand.csv
@@ -0,0 +1,4 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Commit,Min_Share,Max_Share,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
+NENGREST,1,NENGREST_heat_load_shifting_1,heat_load_shifting,0,56,1,0,0,0,165.52,0,0,0.0,0,0.0,0,0,0.0,0,0.0,0.0,None,0.0,0.0,0,4,1,0.0,0.0,0.0,0.0,0,0,0,0.039,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_heat_load_shifting_1,heat_load_shifting,0,57,2,0,0,0,47.27,0,0,0.0,0,0.0,0,0,0.0,0,0.0,0.0,None,0.0,0.0,0,4,1,0.0,0.0,0.0,0.0,0,0,0,0.039,20,20,0,0,0,0
+NENG_ME,1,NENG_ME_heat_load_shifting_1,heat_load_shifting,0,58,3,0,0,0,22.56,0,0,0.0,0,0.0,0,0,0.0,0,0.0,0.0,None,0.0,0.0,0,4,1,0.0,0.0,0.0,0.0,0,0,0,0.039,20,20,0,0,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p1/Resources/Hydro.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p1/Resources/Hydro.csv
new file mode 100644
index 0000000000..1705eaa64d
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p1/Resources/Hydro.csv
@@ -0,0 +1,4 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Commit,Min_Share,Max_Share,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
+NENGREST,1,NENGREST_conventional_hydroelectric_1,other_renewables,0,2,1,0,0,0,662.983,0,0,11.24,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.116,1.0,0.083,0.083,0.006916667,0.013833333,0,0,4,0.024,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_conventional_hydroelectric_1,other_renewables,0,15,2,0,0,0,67.7,0,0,13.54,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.18,1.0,0.083,0.083,0.006916667,0.013833333,0,0,4,0.024,20,20,0,0,0,0
+NENG_ME,1,NENG_ME_conventional_hydroelectric_1,other_renewables,0,26,3,0,0,0,327.81,0,0,7.8,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.402,1.0,0.083,0.083,0.006916667,0.013833333,0,0,4,0.024,20,20,0,0,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p1/Resources/Must_run.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p1/Resources/Must_run.csv
new file mode 100644
index 0000000000..17706b2c07
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p1/Resources/Must_run.csv
@@ -0,0 +1,4 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Commit,Min_Share,Max_Share,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
+NENGREST,1,NENGREST_small_hydroelectric_1,other_renewables,0,12,1,0,0,0,186.355,0,0,0.79,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.116,1.0,1.0,1.0,0.0,0.0,0,0,15,0.024,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_small_hydroelectric_1,other_renewables,0,23,2,0,0,0,18.711,0,0,0.57,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.18,1.0,1.0,1.0,0.0,0.0,0,0,15,0.024,20,20,0,0,0,0
+NENG_ME,1,NENG_ME_small_hydroelectric_1,other_renewables,0,31,3,0,0,0,195.266,0,0,1.1,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.192,1.0,1.0,1.0,0.0,0.0,0,0,15,0.024,20,20,0,0,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p1/Resources/Resource_multistage_data.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p1/Resources/Resource_multistage_data.csv
new file mode 100644
index 0000000000..bd6b7a7ad5
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p1/Resources/Resource_multistage_data.csv
@@ -0,0 +1,59 @@
+Resource WACC Capital_Recovery_Period Lifetime Min_Retired_Cap_MW Min_Retired_Energy_Cap_MW Min_Retired_Charge_Cap_MW
+NENGREST_biomass_1 0.024 20 20 0 0 0
+NENGREST_conventional_hydroelectric_1 0.024 20 20 0 0 0
+NENGREST_hydroelectric_pumped_storage_1 0.039 20 20 0 0 0
+NENGREST_natural_gas_fired_combined_cycle_1 0.039 20 20 0 0 0
+NENGREST_natural_gas_fired_combined_cycle_2 0.039 20 20 0 0 0
+NENGREST_natural_gas_fired_combustion_turbine_1 0.039 20 20 0 0 0
+NENGREST_natural_gas_fired_combustion_turbine_2 0.039 20 20 0 0 0
+NENGREST_natural_gas_steam_turbine_1 0.039 20 20 0 0 0
+NENGREST_nuclear_1 0.039 20 20 0 0 0
+NENGREST_offshore_wind_turbine_1 0.024 20 20 0 0 0
+NENGREST_onshore_wind_turbine_1 0.024 20 20 0 0 0
+NENGREST_small_hydroelectric_1 0.024 20 20 0 0 0
+NENGREST_solar_photovoltaic_1 0.017 20 20 0 0 0
+NENG_CT_biomass_1 0.024 20 20 0 0 0
+NENG_CT_conventional_hydroelectric_1 0.024 20 20 0 0 0
+NENG_CT_hydroelectric_pumped_storage_1 0.039 20 20 0 0 0
+NENG_CT_natural_gas_fired_combined_cycle_1 0.039 20 20 0 0 0
+NENG_CT_natural_gas_fired_combined_cycle_2 0.039 20 20 0 0 0
+NENG_CT_natural_gas_fired_combustion_turbine_1 0.039 20 20 0 0 0
+NENG_CT_natural_gas_fired_combustion_turbine_2 0.039 20 20 0 0 0
+NENG_CT_nuclear_1 0.039 20 20 0 0 0
+NENG_CT_onshore_wind_turbine_1 0.024 20 20 0 0 0
+NENG_CT_small_hydroelectric_1 0.024 20 20 0 0 0
+NENG_CT_solar_photovoltaic_1 0.017 20 20 0 0 0
+NENG_ME_biomass_1 0.024 20 20 0 0 0
+NENG_ME_conventional_hydroelectric_1 0.024 20 20 0 0 0
+NENG_ME_natural_gas_fired_combined_cycle_1 0.039 20 20 0 0 0
+NENG_ME_natural_gas_fired_combined_cycle_2 0.039 20 20 0 0 0
+NENG_ME_natural_gas_fired_combustion_turbine_1 0.039 20 20 0 0 0
+NENG_ME_onshore_wind_turbine_1 0.024 20 20 0 0 0
+NENG_ME_small_hydroelectric_1 0.024 20 20 0 0 0
+NENG_ME_solar_photovoltaic_1 0.017 20 20 0 0 0
+NENGREST_naturalgas_ccccsavgcf_mid_0 0.039 20 20 0 0 0
+NENGREST_naturalgas_ccavgcf_mid_0 0.039 20 20 0 0 0
+NENGREST_naturalgas_ctavgcf_mid_0 0.039 20 20 0 0 0
+NENGREST_battery_mid_0 0.027 20 20 0 0 0
+NENGREST_naturalgas_ccs100_mid_0 0.039 20 20 0 0 0
+NENGREST_landbasedwind_ltrg1_mid_130_1 0.024 20 20 0 0 0
+NENGREST_utilitypv_losangeles_mid_80_0_2_1 0.017 20 20 0 0 0
+NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1 0.024 20 20 0 0 0
+NENG_CT_naturalgas_ccccsavgcf_mid_0 0.039 20 20 0 0 0
+NENG_CT_naturalgas_ccavgcf_mid_0 0.039 20 20 0 0 0
+NENG_CT_naturalgas_ctavgcf_mid_0 0.039 20 20 0 0 0
+NENG_CT_battery_mid_0 0.027 20 20 0 0 0
+NENG_CT_naturalgas_ccs100_mid_0 0.039 20 20 0 0 0
+NENG_CT_landbasedwind_ltrg1_mid_110_1 0.024 20 20 0 0 0
+NENG_CT_utilitypv_losangeles_mid_80_0_2_1 0.017 20 20 0 0 0
+NENG_CT_offshorewind_otrg3_mid_fixed_1_176_77_1 0.024 20 20 0 0 0
+NENG_ME_naturalgas_ccccsavgcf_mid_0 0.039 20 20 0 0 0
+NENG_ME_naturalgas_ccavgcf_mid_0 0.039 20 20 0 0 0
+NENG_ME_naturalgas_ctavgcf_mid_0 0.039 20 20 0 0 0
+NENG_ME_battery_mid_0 0.027 20 20 0 0 0
+NENG_ME_naturalgas_ccs100_mid_0 0.039 20 20 0 0 0
+NENG_ME_landbasedwind_ltrg1_mid_110_1 0.024 20 20 0 0 0
+NENG_ME_utilitypv_losangeles_mid_100_0_2_1 0.017 20 20 0 0 0
+NENGREST_heat_load_shifting_1 0.039 20 20 0 0 0
+NENG_CT_heat_load_shifting_1 0.039 20 20 0 0 0
+NENG_ME_heat_load_shifting_1 0.039 20 20 0 0 0
\ No newline at end of file
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p1/Resources/Storage.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p1/Resources/Storage.csv
new file mode 100644
index 0000000000..318fa0e587
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p1/Resources/Storage.csv
@@ -0,0 +1,6 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Commit,Model,Min_Share,Max_Share,Existing_Cap_MW,Existing_Charge_Cap_MW,Existing_Cap_MWh,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Min_Charge_Cap_MW,Max_Charge_Cap_MW,Min_Cap_MWh,Max_Cap_MWh,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Self_Disch,Eff_Up,Eff_Down,Hydro_Energy_to_Power_Ratio,Min_Duration,Max_Duration,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
+NENGREST,1,NENGREST_hydroelectric_pumped_storage_1,hydroelectric_pumped_storage,0,3,1,0,1,0,0,1768.002,0,280635.2381,0,0,294.67,0,0.0,0,-1,0,-1,0,40113,0,0,0,0,0.0,0.0,0,0.0,0.0,None,0.532,0,0.866,0.866,158.730159,0,200,1.0,1.0,0.083333333,0.166666667,0,0,11,0.039,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_hydroelectric_pumped_storage_1,hydroelectric_pumped_storage,0,16,2,0,1,0,0,30.999,0,4920.47619,0,0,10.33,0,0.0,0,-1,0,-1,0,40113,0,0,0,0,0.0,0.0,0,0.0,0.0,None,0.871,0,0.866,0.866,158.730159,0,200,1.0,1.0,0.083333333,0.166666667,0,0,11,0.039,20,20,0,0,0,0
+NENGREST,0,NENGREST_battery_mid_0,battery_mid,0,36,1,0,1,0,0,0.0,0,0.0,1,1,1.0,0,-1.0,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0.0,0.0,None,0.0,0,0.92,0.92,1.0,1,10,1.0,1.0,0.083333333,0.166666667,0,0,12,0.027,20,20,0,0,0,0
+NENG_CT,0,NENG_CT_battery_mid_0,battery_mid,0,44,2,0,1,0,0,0.0,0,0.0,1,1,1.0,0,-1.0,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0.0,0.0,None,0.0,0,0.92,0.92,1.0,1,10,1.0,1.0,0.083333333,0.166666667,0,0,12,0.027,20,20,0,0,0,0
+NENG_ME,0,NENG_ME_battery_mid_0,battery_mid,0,52,3,0,1,0,0,0.0,0,0.0,1,1,1.0,0,-1.0,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0.0,0.0,None,0.0,0,0.92,0.92,1.0,1,10,1.0,1.0,0.083333333,0.166666667,0,0,12,0.027,20,20,0,0,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p1/Resources/Thermal.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p1/Resources/Thermal.csv
new file mode 100644
index 0000000000..420298129c
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p1/Resources/Thermal.csv
@@ -0,0 +1,30 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Model,Commit,Min_Share,Max_Share,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Ramp_Up_Percentage,Ramp_Dn_Percentage,Up_Time,Down_Time,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
+NENGREST,1,NENGREST_biomass_1,other_renewables,0,1,1,1,1,0,0,106.062,0,0,3.21,0,0.0,0,122976,5.08,0,0.0,14.58,None,0.45,1.0,1.0,1.0,0,0,0.083333333,0.166666667,0,0,10,0.024,20,20,0,0,0,0
+NENGREST,1,NENGREST_natural_gas_fired_combined_cycle_1,natural_gas,1,4,1,1,1,0,0,7077.3,0,1,471.82,0,0.0,0,10287,3.55,91,2.0,7.43,NENGREST_NG,0.468,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENGREST,2,NENGREST_natural_gas_fired_combined_cycle_2,natural_gas,1,5,1,1,1,0,0,2684.803,0,1,244.07,0,0.0,0,16291,4.5,91,2.0,8.29,NENGREST_NG,0.507,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENGREST,1,NENGREST_natural_gas_fired_combustion_turbine_1,natural_gas,1,6,1,1,1,0,0,302.701,0,1,43.24,0,0.0,0,12080,4.6,118,3.5,10.13,NENGREST_NG,0.456,1.0,3.78,3.78,1,1,0.315,0.63,0,0,3,0.039,20,20,0,0,0,0
+NENGREST,2,NENGREST_natural_gas_fired_combustion_turbine_2,natural_gas,1,7,1,1,1,0,0,62.704,0,1,7.84,0,0.0,0,13991,4.6,118,3.5,4.74,NENGREST_NG,0.488,1.0,3.78,3.78,1,1,0.315,0.63,0,0,3,0.039,20,20,0,0,0,0
+NENGREST,1,NENGREST_natural_gas_steam_turbine_1,natural_gas,1,8,1,1,1,0,0,0.6,0,1,0.6,0,0.0,0,50678,1.04,86,13.7,0.0,NENGREST_NG,0.0,0.0,0.0,0.0,0,0,0.0,0.0,0,0,99,0.039,20,20,0,0,0,0
+NENGREST,1,NENGREST_nuclear_1,nuclear,1,9,1,1,1,0,0,1242.0,0,1,1242.0,0,0.0,0,271818,2.32,245,0.0,10.46,new_england_uranium,0.5,1.0,0.25,0.25,24,24,0.020833333,0.041666667,0,0,5,0.039,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_biomass_1,other_renewables,0,14,2,1,1,0,0,27.248,0,0,3.41,0,0.0,0,122976,5.37,0,0.0,15.33,None,0.348,1.0,1.0,1.0,0,0,0.083333333,0.166666667,0,0,10,0.024,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_natural_gas_fired_combined_cycle_1,natural_gas,1,17,2,1,1,0,0,3488.704,0,1,436.09,0,0.0,0,9698,3.57,91,2.0,7.12,NENG_CT_NG,0.338,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENG_CT,2,NENG_CT_natural_gas_fired_combined_cycle_2,natural_gas,1,18,2,1,1,0,0,35.2,0,1,17.6,0,0.0,0,16291,4.5,91,2.0,10.77,NENG_CT_NG,0.466,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_natural_gas_fired_combustion_turbine_1,natural_gas,1,19,2,1,1,0,0,434.0,0,1,54.25,0,0.0,0,10609,4.6,118,3.5,11.06,NENG_CT_NG,0.124,1.0,3.78,3.78,1,1,0.315,0.63,0,0,3,0.039,20,20,0,0,0,0
+NENG_CT,2,NENG_CT_natural_gas_fired_combustion_turbine_2,natural_gas,1,20,2,1,1,0,0,124.9,0,1,24.98,0,0.0,0,13991,4.6,118,3.5,8.35,NENG_CT_NG,0.476,1.0,3.78,3.78,1,1,0.315,0.63,0,0,3,0.039,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_nuclear_1,nuclear,1,21,2,1,1,0,0,2162.9,0,1,1081.45,0,0.0,0,190920,2.32,245,0.0,10.46,new_england_uranium,0.5,1.0,0.25,0.25,24,24,0.020833333,0.041666667,0,0,5,0.039,20,20,0,0,0,0
+NENG_ME,1,NENG_ME_biomass_1,other_renewables,0,25,3,1,1,0,0,24.95,0,0,2.5,0,0.0,0,122976,4.85,0,0.0,13.84,None,0.404,1.0,1.0,1.0,0,0,0.083333333,0.166666667,0,0,10,0.024,20,20,0,0,0,0
+NENG_ME,1,NENG_ME_natural_gas_fired_combined_cycle_1,natural_gas,1,27,3,1,1,0,0,274.5,0,1,137.25,0,0.0,0,16291,4.5,91,2.0,12.62,NENG_ME_NG,0.474,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENG_ME,2,NENG_ME_natural_gas_fired_combined_cycle_2,natural_gas,1,28,3,1,1,0,0,1114.1,0,1,557.05,0,0.0,0,9668,3.57,91,2.0,7.65,NENG_ME_NG,0.386,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENG_ME,1,NENG_ME_natural_gas_fired_combustion_turbine_1,natural_gas,1,29,3,1,1,0,0,163.5,0,1,54.5,0,0.0,0,11540,4.6,118,3.5,4.75,NENG_ME_NG,0.697,1.0,3.78,3.78,1,1,0.315,0.63,0,0,3,0.039,20,20,0,0,0,0
+NENGREST,0,NENGREST_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,33,1,1,1,0,0,0.0,0,1,500.0,0,-1.0,229388,27483,5.82,103,0.0,7.52,NENGREST_NG_ccs90,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENGREST,0,NENGREST_naturalgas_ccavgcf_mid_0,natural_gas,1,34,1,1,1,0,0,0.0,1,1,500.0,0,-1.0,110025,12441,1.61,103,2.0,6.27,NENGREST_NG,0.2,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENGREST,0,NENGREST_naturalgas_ctavgcf_mid_0,natural_gas,1,35,1,1,1,0,0,0.0,1,1,100.0,0,-1.0,81998,6960,4.49,134,3.5,9.9,NENGREST_NG,0.3,1.0,3.78,3.78,1,1,0.315,0.63,0,0,3,0.039,20,20,0,0,0,0
+NENGREST,0,NENGREST_naturalgas_ccs100_mid_0,natural_gas_CCS,1,37,1,1,1,0,0,0.0,0,1,500.0,0,-1.0,239841,37153,6.26,103,0.0,7.89,NENGREST_NG_ccs100,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,13,0.039,20,20,0,0,0,0
+NENG_CT,0,NENG_CT_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,41,2,1,1,0,0,0.0,0,1,500.0,0,-1.0,229388,27483,5.82,103,0.0,7.52,NENG_CT_NG_ccs90,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENG_CT,0,NENG_CT_naturalgas_ccavgcf_mid_0,natural_gas,1,42,2,1,1,0,0,0.0,1,1,500.0,0,-1.0,110025,12441,1.61,103,2.0,6.27,NENG_CT_NG,0.2,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENG_CT,0,NENG_CT_naturalgas_ctavgcf_mid_0,natural_gas,1,43,2,1,1,0,0,0.0,1,1,100.0,0,-1.0,81998,6960,4.49,134,3.5,9.9,NENG_CT_NG,0.3,1.0,3.78,3.78,1,1,0.315,0.63,0,0,3,0.039,20,20,0,0,0,0
+NENG_CT,0,NENG_CT_naturalgas_ccs100_mid_0,natural_gas_CCS,1,45,2,1,1,0,0,0.0,0,1,500.0,0,-1.0,239841,37153,6.26,103,0.0,7.89,NENG_CT_NG_ccs100,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,13,0.039,20,20,0,0,0,0
+NENG_ME,0,NENG_ME_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,49,3,1,1,0,0,0.0,0,1,500.0,0,-1.0,229388,27483,5.82,103,0.0,7.52,NENG_ME_NG_ccs90,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENG_ME,0,NENG_ME_naturalgas_ccavgcf_mid_0,natural_gas,1,50,3,1,1,0,0,0.0,1,1,500.0,0,-1.0,110025,12441,1.61,103,2.0,6.27,NENG_ME_NG,0.2,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENG_ME,0,NENG_ME_naturalgas_ctavgcf_mid_0,natural_gas,1,51,3,1,1,0,0,0.0,1,1,100.0,0,-1.0,81998,6960,4.49,134,3.5,9.9,NENG_ME_NG,0.3,1.0,3.78,3.78,1,1,0.315,0.63,0,0,3,0.039,20,20,0,0,0,0
+NENG_ME,0,NENG_ME_naturalgas_ccs100_mid_0,natural_gas_CCS,1,53,3,1,1,0,0,0.0,0,1,500.0,0,-1.0,239841,37153,6.26,103,0.0,7.89,NENG_ME_NG_ccs100,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,13,0.039,20,20,0,0,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p1/Resources/Vre.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p1/Resources/Vre.csv
new file mode 100644
index 0000000000..e33d14a24b
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p1/Resources/Vre.csv
@@ -0,0 +1,16 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Commit,Num_VRE_Bins,Min_Share,Max_Share,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
+NENGREST,1,NENGREST_offshore_wind_turbine_1,offshore_wind,1,10,1,0,1,0,0,30.0,0,1,30.0,0,0.0,0,128440,0.0,0,0.0,9.12,None,0.0,0.0,0.0,0.0,0.0,0.0,0,0,8,0.024,20,20,0,0,0,0
+NENGREST,1,NENGREST_onshore_wind_turbine_1,onshore_wind,1,11,1,0,1,0,0,145.8,0,1,9.75,0,0.0,0,43205,-18.0,0,0.0,9.12,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,6,0.024,20,20,0,0,0,0
+NENGREST,1,NENGREST_solar_photovoltaic_1,solar,1,13,1,0,1,0,0,821.4,0,1,2.6,0,0.0,0,18760,0.0,0,0.0,9.13,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,7,0.017,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_onshore_wind_turbine_1,onshore_wind,1,22,2,0,1,0,0,6.5,0,1,5.0,0,0.0,0,43205,-18.0,0,0.0,9.12,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,6,0.024,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_solar_photovoltaic_1,solar,1,24,2,0,1,0,0,374.6,0,1,5.67,0,0.0,0,18760,0.0,0,0.0,9.16,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,7,0.017,20,20,0,0,0,0
+NENG_ME,1,NENG_ME_onshore_wind_turbine_1,onshore_wind,1,30,3,0,1,0,0,1190.9,0,1,48.5,0,0.0,0,43205,-18.0,0,0.0,9.12,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,6,0.024,20,20,0,0,0,0
+NENG_ME,1,NENG_ME_solar_photovoltaic_1,solar,1,32,3,0,1,0,0,11.8,0,1,1.5,0,0.0,0,18760,0.0,0,0.0,9.12,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,7,0.017,20,20,0,0,0,0
+NENGREST,1,NENGREST_landbasedwind_ltrg1_mid_130_1,onshore_wind,1,38,1,0,1,0,0,0.0,1,1,1.0,0,4888.236,194100,41460,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,6,0.024,20,20,0,0,0,0
+NENGREST,1,NENGREST_utilitypv_losangeles_mid_80_0_2_1,solar,1,39,1,0,1,0,0,0.0,1,1,1.0,0,20835.569,99283,13055,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,7,0.017,20,20,0,0,0,0
+NENGREST,1,NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,offshore_wind,1,40,1,0,1,0,0,0.0,1,1,1.0,0,9848.442,260044,91549,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,8,0.024,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_landbasedwind_ltrg1_mid_110_1,onshore_wind,1,46,2,0,1,0,0,0.0,1,1,1.0,0,1982.895,185181,41460,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,6,0.024,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_utilitypv_losangeles_mid_80_0_2_1,solar,1,47,2,0,1,0,0,0.0,1,1,1.0,0,17063.264,98631,13055,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,7,0.017,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_offshorewind_otrg3_mid_fixed_1_176_77_1,offshore_wind,1,48,2,0,1,0,0,0.0,1,1,1.0,0,477.5,247542,91549,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,8,0.024,20,20,0,0,0,0
+NENG_ME,1,NENG_ME_landbasedwind_ltrg1_mid_110_1,onshore_wind,1,54,3,0,1,0,0,0.0,1,1,1.0,0,20430.499,233173,41460,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,6,0.024,20,20,0,0,0,0
+NENG_ME,1,NENG_ME_utilitypv_losangeles_mid_100_0_2_1,solar,1,55,3,0,1,0,0,0.0,1,1,1.0,0,21535.709,98706,13055,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,7,0.017,20,20,0,0,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p2/Generators_data.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p2/Generators_data.csv
deleted file mode 100644
index 157c1ac300..0000000000
--- a/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p2/Generators_data.csv
+++ /dev/null
@@ -1,59 +0,0 @@
-region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,THERM,Commit,STOR,HYDRO,FLEX,MUST_RUN,VRE,Num_VRE_Bins,CapRes_1,ESR_1,ESR_2,Min_Share,Max_Share,Existing_Cap_MW,Existing_Charge_Cap_MW,Existing_Cap_MWh,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Min_Charge_Cap_MW,Max_Charge_Cap_MW,Min_Cap_MWh,Max_Cap_MWh,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Self_Disch,Eff_Up,Eff_Down,Hydro_Energy_to_Power_Ratio,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Ramp_Up_Percentage,Ramp_Dn_Percentage,Up_Time,Down_Time,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,MinCapTag_1,MinCapTag_2,MinCapTag_3,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
-NENGREST,1,NENGREST_biomass_1,other_renewables,0,1,1,1,1,0,0,0,0,0,0,0.93,1,1,0,0,106.062,0,0,0,0,3.21,0,0,0,-1,0,-1,0,122976,0,0,0,0,5.08,0,0,0,14.58,None,0.45,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,10,0,0,0,0.024,20,20,0,0,0,0
-NENGREST,1,NENGREST_conventional_hydroelectric_1,other_renewables,0,2,1,0,0,0,1,0,0,0,0,0.8,0,1,0,0,662.983,0,0,0,0,11.24,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.116,0,1,1,1,0,0,0,0,1,0.083,0.083,0,0,0.006916667,0.013833333,0,0,4,0,0,0,0.024,20,20,0,0,0,0
-NENGREST,1,NENGREST_hydroelectric_pumped_storage_1,hydroelectric_pumped_storage,0,3,1,0,0,1,0,0,0,0,0,0.95,0,0,0,0,1768.002,0,280635.2381,0,0,294.67,0,0,0,-1,0,-1,0,40113,0,0,0,0,0,0,0,0,0,None,0.532,0,0.866,0.866,158.730159,0,200,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,11,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,1,NENGREST_natural_gas_fired_combined_cycle_1,natural_gas,1,4,1,1,1,0,0,0,0,0,0,0.93,0,0,0,0,7077.3,0,0,0,1,471.82,0,0,0,-1,0,-1,0,10287,0,0,0,0,3.55,0,91,2,7.43,NENGREST_NG,0.468,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,2,NENGREST_natural_gas_fired_combined_cycle_2,natural_gas,1,5,1,1,1,0,0,0,0,0,0,0.93,0,0,0,0,2684.803,0,0,0,1,244.07,0,0,0,-1,0,-1,0,16291,0,0,0,0,4.5,0,91,2,8.29,NENGREST_NG,0.507,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,1,NENGREST_natural_gas_fired_combustion_turbine_1,natural_gas,1,6,1,1,1,0,0,0,0,0,0,0.93,0,0,0,0,302.701,0,0,0,1,43.24,0,0,0,-1,0,-1,0,12080,0,0,0,0,4.6,0,118,3.5,10.13,NENGREST_NG,0.456,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,3,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,2,NENGREST_natural_gas_fired_combustion_turbine_2,natural_gas,1,7,1,1,1,0,0,0,0,0,0,0.93,0,0,0,0,62.704,0,0,0,1,7.84,0,0,0,-1,0,-1,0,13991,0,0,0,0,4.6,0,118,3.5,4.74,NENGREST_NG,0.488,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,3,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,1,NENGREST_natural_gas_steam_turbine_1,natural_gas,1,8,1,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0.6,0,0,0,1,0.6,0,0,0,-1,0,-1,0,50678,0,0,0,0,1.04,0,86,13.7,0,NENGREST_NG,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,99,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,1,NENGREST_nuclear_1,nuclear,1,9,1,1,1,0,0,0,0,0,0,0.93,0,1,0,0,1242,0,0,0,1,1242,0,0,0,-1,0,-1,0,271818,0,0,0,0,2.32,0,245,0,10.46,new_england_uranium,0.5,0,1,1,1,0,0,0,0,1,0.25,0.25,24,24,0.020833333,0.041666667,0,0,5,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,1,NENGREST_offshore_wind_turbine_1,offshore_wind,1,10,1,0,0,0,0,0,0,1,1,0.8,1,1,0,0,30,0,0,0,1,30,0,0,0,-1,0,-1,0,128440,0,0,0,0,0,0,0,0,9.12,None,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,8,1,1,0,0.024,20,20,0,0,0,0
-NENGREST,1,NENGREST_onshore_wind_turbine_1,onshore_wind,1,11,1,0,0,0,0,0,0,1,1,0.8,1,1,0,0,145.8,0,0,0,1,9.75,0,0,0,-1,0,-1,0,43205,0,0,0,0,-18,0,0,0,9.12,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,6,1,0,0,0.024,20,20,0,0,0,0
-NENGREST,1,NENGREST_small_hydroelectric_1,other_renewables,0,12,1,0,0,0,0,0,1,0,0,0,1,1,0,0,186.355,0,0,0,0,0.79,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.116,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,15,0,0,0,0.024,20,20,0,0,0,0
-NENGREST,1,NENGREST_solar_photovoltaic_1,solar,1,13,1,0,0,0,0,0,0,1,1,0.8,1,1,0,0,821.4,0,0,0,1,2.6,0,0,0,-1,0,-1,0,18760,0,0,0,0,0,0,0,0,9.13,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,7,0,0,1,0.017,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_biomass_1,other_renewables,0,14,2,1,1,0,0,0,0,0,0,0.93,1,1,0,0,27.248,0,0,0,0,3.41,0,0,0,-1,0,-1,0,122976,0,0,0,0,5.37,0,0,0,15.33,None,0.348,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,10,0,0,0,0.024,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_conventional_hydroelectric_1,other_renewables,0,15,2,0,0,0,1,0,0,0,0,0.8,0,1,0,0,67.7,0,0,0,0,13.54,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.18,0,1,1,1,0,0,0,0,1,0.083,0.083,0,0,0.006916667,0.013833333,0,0,4,0,0,0,0.024,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_hydroelectric_pumped_storage_1,hydroelectric_pumped_storage,0,16,2,0,0,1,0,0,0,0,0,0.95,0,0,0,0,30.999,0,4920.47619,0,0,10.33,0,0,0,-1,0,-1,0,40113,0,0,0,0,0,0,0,0,0,None,0.871,0,0.866,0.866,158.730159,0,200,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,11,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_natural_gas_fired_combined_cycle_1,natural_gas,1,17,2,1,1,0,0,0,0,0,0,0.93,0,0,0,0,3488.704,0,0,0,1,436.09,0,0,0,-1,0,-1,0,9698,0,0,0,0,3.57,0,91,2,7.12,NENG_CT_NG,0.338,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,2,NENG_CT_natural_gas_fired_combined_cycle_2,natural_gas,1,18,2,1,1,0,0,0,0,0,0,0.93,0,0,0,0,35.2,0,0,0,1,17.6,0,0,0,-1,0,-1,0,16291,0,0,0,0,4.5,0,91,2,10.77,NENG_CT_NG,0.466,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_natural_gas_fired_combustion_turbine_1,natural_gas,1,19,2,1,1,0,0,0,0,0,0,0.93,0,0,0,0,434,0,0,0,1,54.25,0,0,0,-1,0,-1,0,10609,0,0,0,0,4.6,0,118,3.5,11.06,NENG_CT_NG,0.124,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,3,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,2,NENG_CT_natural_gas_fired_combustion_turbine_2,natural_gas,1,20,2,1,1,0,0,0,0,0,0,0.93,0,0,0,0,124.9,0,0,0,1,24.98,0,0,0,-1,0,-1,0,13991,0,0,0,0,4.6,0,118,3.5,8.35,NENG_CT_NG,0.476,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,3,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_nuclear_1,nuclear,1,21,2,1,1,0,0,0,0,0,0,0.93,0,1,0,0,2162.9,0,0,0,1,1081.45,0,0,0,-1,0,-1,0,190920,0,0,0,0,2.32,0,245,0,10.46,new_england_uranium,0.5,0,1,1,1,0,0,0,0,1,0.25,0.25,24,24,0.020833333,0.041666667,0,0,5,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_onshore_wind_turbine_1,onshore_wind,1,22,2,0,0,0,0,0,0,1,1,0.8,1,1,0,0,6.5,0,0,0,1,5,0,0,0,-1,0,-1,0,43205,0,0,0,0,-18,0,0,0,9.12,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,6,0,0,0,0.024,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_small_hydroelectric_1,other_renewables,0,23,2,0,0,0,0,0,1,0,0,0,1,1,0,0,18.711,0,0,0,0,0.57,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.18,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,15,0,0,0,0.024,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_solar_photovoltaic_1,solar,1,24,2,0,0,0,0,0,0,1,1,0.8,1,1,0,0,374.6,0,0,0,1,5.67,0,0,0,-1,0,-1,0,18760,0,0,0,0,0,0,0,0,9.16,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,7,0,0,0,0.017,20,20,0,0,0,0
-NENG_ME,1,NENG_ME_biomass_1,other_renewables,0,25,3,1,1,0,0,0,0,0,0,0.93,1,1,0,0,24.95,0,0,0,0,2.5,0,0,0,-1,0,-1,0,122976,0,0,0,0,4.85,0,0,0,13.84,None,0.404,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,10,0,0,0,0.024,20,20,0,0,0,0
-NENG_ME,1,NENG_ME_conventional_hydroelectric_1,other_renewables,0,26,3,0,0,0,1,0,0,0,0,0.8,0,1,0,0,327.81,0,0,0,0,7.8,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.402,0,1,1,1,0,0,0,0,1,0.083,0.083,0,0,0.006916667,0.013833333,0,0,4,0,0,0,0.024,20,20,0,0,0,0
-NENG_ME,1,NENG_ME_natural_gas_fired_combined_cycle_1,natural_gas,1,27,3,1,1,0,0,0,0,0,0,0.93,0,0,0,0,274.5,0,0,0,1,137.25,0,0,0,-1,0,-1,0,16291,0,0,0,0,4.5,0,91,2,12.62,NENG_ME_NG,0.474,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENG_ME,2,NENG_ME_natural_gas_fired_combined_cycle_2,natural_gas,1,28,3,1,1,0,0,0,0,0,0,0.93,0,0,0,0,1114.1,0,0,0,1,557.05,0,0,0,-1,0,-1,0,9668,0,0,0,0,3.57,0,91,2,7.65,NENG_ME_NG,0.386,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENG_ME,1,NENG_ME_natural_gas_fired_combustion_turbine_1,natural_gas,1,29,3,1,1,0,0,0,0,0,0,0.93,0,0,0,0,163.5,0,0,0,1,54.5,0,0,0,-1,0,-1,0,11540,0,0,0,0,4.6,0,118,3.5,4.75,NENG_ME_NG,0.697,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,3,0,0,0,0.039,20,20,0,0,0,0
-NENG_ME,1,NENG_ME_onshore_wind_turbine_1,onshore_wind,1,30,3,0,0,0,0,0,0,1,1,0.8,1,1,0,0,1190.9,0,0,0,1,48.5,0,0,0,-1,0,-1,0,43205,0,0,0,0,-18,0,0,0,9.12,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,6,1,0,0,0.024,20,20,0,0,0,0
-NENG_ME,1,NENG_ME_small_hydroelectric_1,other_renewables,0,31,3,0,0,0,0,0,1,0,0,0,1,1,0,0,195.266,0,0,0,0,1.1,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.192,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,15,0,0,0,0.024,20,20,0,0,0,0
-NENG_ME,1,NENG_ME_solar_photovoltaic_1,solar,1,32,3,0,0,0,0,0,0,1,1,0.8,1,1,0,0,11.8,0,0,0,1,1.5,0,0,0,-1,0,-1,0,18760,0,0,0,0,0,0,0,0,9.12,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,7,0,0,0,0.017,20,20,0,0,0,0
-NENGREST,0,NENGREST_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,33,1,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,229388,27483,0,0,0,0,5.82,0,103,0,7.52,NENGREST_NG_ccs90,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,0,NENGREST_naturalgas_ccavgcf_mid_0,natural_gas,1,34,1,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,500,0,-1,0,-1,0,-1,110025,12441,0,0,0,0,1.61,0,103,2,6.27,NENGREST_NG,0.2,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,0,NENGREST_naturalgas_ctavgcf_mid_0,natural_gas,1,35,1,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,100,0,-1,0,-1,0,-1,81998,6960,0,0,0,0,4.49,0,134,3.5,9.9,NENGREST_NG,0.3,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,3,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,0,NENGREST_battery_mid_0,battery_mid,0,36,1,0,0,1,0,0,0,0,0,0.95,0,0,0,0,0,0,0,1,1,1,0,-1,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0,0,None,0,0,0.92,0.92,1,1,10,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,12,0,0,0,0.027,20,20,0,0,0,0
-NENGREST,0,NENGREST_naturalgas_ccs100_mid_0,natural_gas_CCS,1,37,1,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,239841,37153,0,0,0,0,6.26,0,103,0,7.89,NENGREST_NG_ccs100,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,13,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,1,NENGREST_landbasedwind_ltrg1_mid_130_1,onshore_wind,1,38,1,0,0,0,0,0,0,1,1,0.8,1,1,0,0,0,0,0,1,1,1,0,4888.236,0,-1,0,-1,194100,41460,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,6,1,0,0,0.024,20,20,0,0,0,0
-NENGREST,1,NENGREST_utilitypv_losangeles_mid_80_0_2_1,solar,1,39,1,0,0,0,0,0,0,1,1,0.8,1,1,0,0,0,0,0,1,1,1,0,20835.569,0,-1,0,-1,99283,13055,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,7,0,0,1,0.017,20,20,0,0,0,0
-NENGREST,1,NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,offshore_wind,1,40,1,0,0,0,0,0,0,1,1,0.8,1,1,0,0,0,0,0,1,1,1,0,9848.442,0,-1,0,-1,260044,91549,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,8,1,1,0,0.024,20,20,0,0,0,0
-NENG_CT,0,NENG_CT_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,41,2,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,229388,27483,0,0,0,0,5.82,0,103,0,7.52,NENG_CT_NG_ccs90,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,0,NENG_CT_naturalgas_ccavgcf_mid_0,natural_gas,1,42,2,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,500,0,-1,0,-1,0,-1,110025,12441,0,0,0,0,1.61,0,103,2,6.27,NENG_CT_NG,0.2,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,0,NENG_CT_naturalgas_ctavgcf_mid_0,natural_gas,1,43,2,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,100,0,-1,0,-1,0,-1,81998,6960,0,0,0,0,4.49,0,134,3.5,9.9,NENG_CT_NG,0.3,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,3,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,0,NENG_CT_battery_mid_0,battery_mid,0,44,2,0,0,1,0,0,0,0,0,0.95,0,0,0,0,0,0,0,1,1,1,0,-1,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0,0,None,0,0,0.92,0.92,1,1,10,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,12,0,0,0,0.027,20,20,0,0,0,0
-NENG_CT,0,NENG_CT_naturalgas_ccs100_mid_0,natural_gas_CCS,1,45,2,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,239841,37153,0,0,0,0,6.26,0,103,0,7.89,NENG_CT_NG_ccs100,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,13,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_landbasedwind_ltrg1_mid_110_1,onshore_wind,1,46,2,0,0,0,0,0,0,1,1,0.8,1,1,0,0,0,0,0,1,1,1,0,1982.895,0,-1,0,-1,185181,41460,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,6,0,0,0,0.024,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_utilitypv_losangeles_mid_80_0_2_1,solar,1,47,2,0,0,0,0,0,0,1,1,0.8,1,1,0,0,0,0,0,1,1,1,0,17063.264,0,-1,0,-1,98631,13055,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,7,0,0,0,0.017,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_offshorewind_otrg3_mid_fixed_1_176_77_1,offshore_wind,1,48,2,0,0,0,0,0,0,1,1,0.8,1,1,0,0,0,0,0,1,1,1,0,477.5,0,-1,0,-1,247542,91549,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,8,0,0,0,0.024,20,20,0,0,0,0
-NENG_ME,0,NENG_ME_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,49,3,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,229388,27483,0,0,0,0,5.82,0,103,0,7.52,NENG_ME_NG_ccs90,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENG_ME,0,NENG_ME_naturalgas_ccavgcf_mid_0,natural_gas,1,50,3,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,500,0,-1,0,-1,0,-1,110025,12441,0,0,0,0,1.61,0,103,2,6.27,NENG_ME_NG,0.2,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENG_ME,0,NENG_ME_naturalgas_ctavgcf_mid_0,natural_gas,1,51,3,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,100,0,-1,0,-1,0,-1,81998,6960,0,0,0,0,4.49,0,134,3.5,9.9,NENG_ME_NG,0.3,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,3,0,0,0,0.039,20,20,0,0,0,0
-NENG_ME,0,NENG_ME_battery_mid_0,battery_mid,0,52,3,0,0,1,0,0,0,0,0,0.95,0,0,0,0,0,0,0,1,1,1,0,-1,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0,0,None,0,0,0.92,0.92,1,1,10,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,12,0,0,0,0.027,20,20,0,0,0,0
-NENG_ME,0,NENG_ME_naturalgas_ccs100_mid_0,natural_gas_CCS,1,53,3,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,239841,37153,0,0,0,0,6.26,0,103,0,7.89,NENG_ME_NG_ccs100,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,13,0,0,0,0.039,20,20,0,0,0,0
-NENG_ME,1,NENG_ME_landbasedwind_ltrg1_mid_110_1,onshore_wind,1,54,3,0,0,0,0,0,0,1,1,0.8,1,1,0,0,0,0,0,1,1,1,0,20430.499,0,-1,0,-1,233173,41460,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,6,1,0,0,0.024,20,20,0,0,0,0
-NENG_ME,1,NENG_ME_utilitypv_losangeles_mid_100_0_2_1,solar,1,55,3,0,0,0,0,0,0,1,1,0.8,1,1,0,0,0,0,0,1,1,1,0,21535.709,0,-1,0,-1,98706,13055,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,7,0,0,0,0.017,20,20,0,0,0,0
-NENGREST,1,NENGREST_heat_load_shifting_1,heat_load_shifting,0,56,1,0,0,0,0,1,0,0,0,0.95,0,0,0,0,165.52,0,0,0,0,0,0,0,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_heat_load_shifting_1,heat_load_shifting,0,57,2,0,0,0,0,1,0,0,0,0.95,0,0,0,0,47.27,0,0,0,0,0,0,0,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0.039,20,20,0,0,0,0
-NENG_ME,1,NENG_ME_heat_load_shifting_1,heat_load_shifting,0,58,3,0,0,0,0,1,0,0,0,0.95,0,0,0,0,22.56,0,0,0,0,0,0,0,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0.039,20,20,0,0,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p2/Resources/Flex_demand.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p2/Resources/Flex_demand.csv
new file mode 100644
index 0000000000..4073c5319c
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p2/Resources/Flex_demand.csv
@@ -0,0 +1,4 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Commit,Min_Share,Max_Share,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
+NENGREST,1,NENGREST_heat_load_shifting_1,heat_load_shifting,0,56,1,0,0,0,165.52,0,0,0.0,0,0.0,0,0,0.0,0,0.0,0.0,None,0.0,0.0,0,4,1,0.0,0.0,0.0,0.0,0,0,0,0.039,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_heat_load_shifting_1,heat_load_shifting,0,57,2,0,0,0,47.27,0,0,0.0,0,0.0,0,0,0.0,0,0.0,0.0,None,0.0,0.0,0,4,1,0.0,0.0,0.0,0.0,0,0,0,0.039,20,20,0,0,0,0
+NENG_ME,1,NENG_ME_heat_load_shifting_1,heat_load_shifting,0,58,3,0,0,0,22.56,0,0,0.0,0,0.0,0,0,0.0,0,0.0,0.0,None,0.0,0.0,0,4,1,0.0,0.0,0.0,0.0,0,0,0,0.039,20,20,0,0,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p2/Resources/Hydro.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p2/Resources/Hydro.csv
new file mode 100644
index 0000000000..1705eaa64d
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p2/Resources/Hydro.csv
@@ -0,0 +1,4 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Commit,Min_Share,Max_Share,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
+NENGREST,1,NENGREST_conventional_hydroelectric_1,other_renewables,0,2,1,0,0,0,662.983,0,0,11.24,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.116,1.0,0.083,0.083,0.006916667,0.013833333,0,0,4,0.024,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_conventional_hydroelectric_1,other_renewables,0,15,2,0,0,0,67.7,0,0,13.54,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.18,1.0,0.083,0.083,0.006916667,0.013833333,0,0,4,0.024,20,20,0,0,0,0
+NENG_ME,1,NENG_ME_conventional_hydroelectric_1,other_renewables,0,26,3,0,0,0,327.81,0,0,7.8,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.402,1.0,0.083,0.083,0.006916667,0.013833333,0,0,4,0.024,20,20,0,0,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p2/Resources/Must_run.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p2/Resources/Must_run.csv
new file mode 100644
index 0000000000..17706b2c07
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p2/Resources/Must_run.csv
@@ -0,0 +1,4 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Commit,Min_Share,Max_Share,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
+NENGREST,1,NENGREST_small_hydroelectric_1,other_renewables,0,12,1,0,0,0,186.355,0,0,0.79,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.116,1.0,1.0,1.0,0.0,0.0,0,0,15,0.024,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_small_hydroelectric_1,other_renewables,0,23,2,0,0,0,18.711,0,0,0.57,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.18,1.0,1.0,1.0,0.0,0.0,0,0,15,0.024,20,20,0,0,0,0
+NENG_ME,1,NENG_ME_small_hydroelectric_1,other_renewables,0,31,3,0,0,0,195.266,0,0,1.1,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.192,1.0,1.0,1.0,0.0,0.0,0,0,15,0.024,20,20,0,0,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p2/Resources/Resource_multistage_data.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p2/Resources/Resource_multistage_data.csv
new file mode 100644
index 0000000000..ac128a1a2b
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p2/Resources/Resource_multistage_data.csv
@@ -0,0 +1,59 @@
+Resource,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW
+NENGREST_biomass_1,0.024,20,20,0,0,0
+NENGREST_conventional_hydroelectric_1,0.024,20,20,0,0,0
+NENGREST_hydroelectric_pumped_storage_1,0.039,20,20,0,0,0
+NENGREST_natural_gas_fired_combined_cycle_1,0.039,20,20,0,0,0
+NENGREST_natural_gas_fired_combined_cycle_2,0.039,20,20,0,0,0
+NENGREST_natural_gas_fired_combustion_turbine_1,0.039,20,20,0,0,0
+NENGREST_natural_gas_fired_combustion_turbine_2,0.039,20,20,0,0,0
+NENGREST_natural_gas_steam_turbine_1,0.039,20,20,0,0,0
+NENGREST_nuclear_1,0.039,20,20,0,0,0
+NENGREST_offshore_wind_turbine_1,0.024,20,20,0,0,0
+NENGREST_onshore_wind_turbine_1,0.024,20,20,0,0,0
+NENGREST_small_hydroelectric_1,0.024,20,20,0,0,0
+NENGREST_solar_photovoltaic_1,0.017,20,20,0,0,0
+NENG_CT_biomass_1,0.024,20,20,0,0,0
+NENG_CT_conventional_hydroelectric_1,0.024,20,20,0,0,0
+NENG_CT_hydroelectric_pumped_storage_1,0.039,20,20,0,0,0
+NENG_CT_natural_gas_fired_combined_cycle_1,0.039,20,20,0,0,0
+NENG_CT_natural_gas_fired_combined_cycle_2,0.039,20,20,0,0,0
+NENG_CT_natural_gas_fired_combustion_turbine_1,0.039,20,20,0,0,0
+NENG_CT_natural_gas_fired_combustion_turbine_2,0.039,20,20,0,0,0
+NENG_CT_nuclear_1,0.039,20,20,0,0,0
+NENG_CT_onshore_wind_turbine_1,0.024,20,20,0,0,0
+NENG_CT_small_hydroelectric_1,0.024,20,20,0,0,0
+NENG_CT_solar_photovoltaic_1,0.017,20,20,0,0,0
+NENG_ME_biomass_1,0.024,20,20,0,0,0
+NENG_ME_conventional_hydroelectric_1,0.024,20,20,0,0,0
+NENG_ME_natural_gas_fired_combined_cycle_1,0.039,20,20,0,0,0
+NENG_ME_natural_gas_fired_combined_cycle_2,0.039,20,20,0,0,0
+NENG_ME_natural_gas_fired_combustion_turbine_1,0.039,20,20,0,0,0
+NENG_ME_onshore_wind_turbine_1,0.024,20,20,0,0,0
+NENG_ME_small_hydroelectric_1,0.024,20,20,0,0,0
+NENG_ME_solar_photovoltaic_1,0.017,20,20,0,0,0
+NENGREST_naturalgas_ccccsavgcf_mid_0,0.039,20,20,0,0,0
+NENGREST_naturalgas_ccavgcf_mid_0,0.039,20,20,0,0,0
+NENGREST_naturalgas_ctavgcf_mid_0,0.039,20,20,0,0,0
+NENGREST_battery_mid_0,0.027,20,20,0,0,0
+NENGREST_naturalgas_ccs100_mid_0,0.039,20,20,0,0,0
+NENGREST_landbasedwind_ltrg1_mid_130_1,0.024,20,20,0,0,0
+NENGREST_utilitypv_losangeles_mid_80_0_2_1,0.017,20,20,0,0,0
+NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,0.024,20,20,0,0,0
+NENG_CT_naturalgas_ccccsavgcf_mid_0,0.039,20,20,0,0,0
+NENG_CT_naturalgas_ccavgcf_mid_0,0.039,20,20,0,0,0
+NENG_CT_naturalgas_ctavgcf_mid_0,0.039,20,20,0,0,0
+NENG_CT_battery_mid_0,0.027,20,20,0,0,0
+NENG_CT_naturalgas_ccs100_mid_0,0.039,20,20,0,0,0
+NENG_CT_landbasedwind_ltrg1_mid_110_1,0.024,20,20,0,0,0
+NENG_CT_utilitypv_losangeles_mid_80_0_2_1,0.017,20,20,0,0,0
+NENG_CT_offshorewind_otrg3_mid_fixed_1_176_77_1,0.024,20,20,0,0,0
+NENG_ME_naturalgas_ccccsavgcf_mid_0,0.039,20,20,0,0,0
+NENG_ME_naturalgas_ccavgcf_mid_0,0.039,20,20,0,0,0
+NENG_ME_naturalgas_ctavgcf_mid_0,0.039,20,20,0,0,0
+NENG_ME_battery_mid_0,0.027,20,20,0,0,0
+NENG_ME_naturalgas_ccs100_mid_0,0.039,20,20,0,0,0
+NENG_ME_landbasedwind_ltrg1_mid_110_1,0.024,20,20,0,0,0
+NENG_ME_utilitypv_losangeles_mid_100_0_2_1,0.017,20,20,0,0,0
+NENGREST_heat_load_shifting_1,0.039,20,20,0,0,0
+NENG_CT_heat_load_shifting_1,0.039,20,20,0,0,0
+NENG_ME_heat_load_shifting_1,0.039,20,20,0,0,0
\ No newline at end of file
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p2/Resources/Storage.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p2/Resources/Storage.csv
new file mode 100644
index 0000000000..318fa0e587
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p2/Resources/Storage.csv
@@ -0,0 +1,6 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Commit,Model,Min_Share,Max_Share,Existing_Cap_MW,Existing_Charge_Cap_MW,Existing_Cap_MWh,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Min_Charge_Cap_MW,Max_Charge_Cap_MW,Min_Cap_MWh,Max_Cap_MWh,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Self_Disch,Eff_Up,Eff_Down,Hydro_Energy_to_Power_Ratio,Min_Duration,Max_Duration,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
+NENGREST,1,NENGREST_hydroelectric_pumped_storage_1,hydroelectric_pumped_storage,0,3,1,0,1,0,0,1768.002,0,280635.2381,0,0,294.67,0,0.0,0,-1,0,-1,0,40113,0,0,0,0,0.0,0.0,0,0.0,0.0,None,0.532,0,0.866,0.866,158.730159,0,200,1.0,1.0,0.083333333,0.166666667,0,0,11,0.039,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_hydroelectric_pumped_storage_1,hydroelectric_pumped_storage,0,16,2,0,1,0,0,30.999,0,4920.47619,0,0,10.33,0,0.0,0,-1,0,-1,0,40113,0,0,0,0,0.0,0.0,0,0.0,0.0,None,0.871,0,0.866,0.866,158.730159,0,200,1.0,1.0,0.083333333,0.166666667,0,0,11,0.039,20,20,0,0,0,0
+NENGREST,0,NENGREST_battery_mid_0,battery_mid,0,36,1,0,1,0,0,0.0,0,0.0,1,1,1.0,0,-1.0,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0.0,0.0,None,0.0,0,0.92,0.92,1.0,1,10,1.0,1.0,0.083333333,0.166666667,0,0,12,0.027,20,20,0,0,0,0
+NENG_CT,0,NENG_CT_battery_mid_0,battery_mid,0,44,2,0,1,0,0,0.0,0,0.0,1,1,1.0,0,-1.0,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0.0,0.0,None,0.0,0,0.92,0.92,1.0,1,10,1.0,1.0,0.083333333,0.166666667,0,0,12,0.027,20,20,0,0,0,0
+NENG_ME,0,NENG_ME_battery_mid_0,battery_mid,0,52,3,0,1,0,0,0.0,0,0.0,1,1,1.0,0,-1.0,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0.0,0.0,None,0.0,0,0.92,0.92,1.0,1,10,1.0,1.0,0.083333333,0.166666667,0,0,12,0.027,20,20,0,0,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p2/Resources/Thermal.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p2/Resources/Thermal.csv
new file mode 100644
index 0000000000..420298129c
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p2/Resources/Thermal.csv
@@ -0,0 +1,30 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Model,Commit,Min_Share,Max_Share,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Ramp_Up_Percentage,Ramp_Dn_Percentage,Up_Time,Down_Time,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
+NENGREST,1,NENGREST_biomass_1,other_renewables,0,1,1,1,1,0,0,106.062,0,0,3.21,0,0.0,0,122976,5.08,0,0.0,14.58,None,0.45,1.0,1.0,1.0,0,0,0.083333333,0.166666667,0,0,10,0.024,20,20,0,0,0,0
+NENGREST,1,NENGREST_natural_gas_fired_combined_cycle_1,natural_gas,1,4,1,1,1,0,0,7077.3,0,1,471.82,0,0.0,0,10287,3.55,91,2.0,7.43,NENGREST_NG,0.468,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENGREST,2,NENGREST_natural_gas_fired_combined_cycle_2,natural_gas,1,5,1,1,1,0,0,2684.803,0,1,244.07,0,0.0,0,16291,4.5,91,2.0,8.29,NENGREST_NG,0.507,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENGREST,1,NENGREST_natural_gas_fired_combustion_turbine_1,natural_gas,1,6,1,1,1,0,0,302.701,0,1,43.24,0,0.0,0,12080,4.6,118,3.5,10.13,NENGREST_NG,0.456,1.0,3.78,3.78,1,1,0.315,0.63,0,0,3,0.039,20,20,0,0,0,0
+NENGREST,2,NENGREST_natural_gas_fired_combustion_turbine_2,natural_gas,1,7,1,1,1,0,0,62.704,0,1,7.84,0,0.0,0,13991,4.6,118,3.5,4.74,NENGREST_NG,0.488,1.0,3.78,3.78,1,1,0.315,0.63,0,0,3,0.039,20,20,0,0,0,0
+NENGREST,1,NENGREST_natural_gas_steam_turbine_1,natural_gas,1,8,1,1,1,0,0,0.6,0,1,0.6,0,0.0,0,50678,1.04,86,13.7,0.0,NENGREST_NG,0.0,0.0,0.0,0.0,0,0,0.0,0.0,0,0,99,0.039,20,20,0,0,0,0
+NENGREST,1,NENGREST_nuclear_1,nuclear,1,9,1,1,1,0,0,1242.0,0,1,1242.0,0,0.0,0,271818,2.32,245,0.0,10.46,new_england_uranium,0.5,1.0,0.25,0.25,24,24,0.020833333,0.041666667,0,0,5,0.039,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_biomass_1,other_renewables,0,14,2,1,1,0,0,27.248,0,0,3.41,0,0.0,0,122976,5.37,0,0.0,15.33,None,0.348,1.0,1.0,1.0,0,0,0.083333333,0.166666667,0,0,10,0.024,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_natural_gas_fired_combined_cycle_1,natural_gas,1,17,2,1,1,0,0,3488.704,0,1,436.09,0,0.0,0,9698,3.57,91,2.0,7.12,NENG_CT_NG,0.338,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENG_CT,2,NENG_CT_natural_gas_fired_combined_cycle_2,natural_gas,1,18,2,1,1,0,0,35.2,0,1,17.6,0,0.0,0,16291,4.5,91,2.0,10.77,NENG_CT_NG,0.466,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_natural_gas_fired_combustion_turbine_1,natural_gas,1,19,2,1,1,0,0,434.0,0,1,54.25,0,0.0,0,10609,4.6,118,3.5,11.06,NENG_CT_NG,0.124,1.0,3.78,3.78,1,1,0.315,0.63,0,0,3,0.039,20,20,0,0,0,0
+NENG_CT,2,NENG_CT_natural_gas_fired_combustion_turbine_2,natural_gas,1,20,2,1,1,0,0,124.9,0,1,24.98,0,0.0,0,13991,4.6,118,3.5,8.35,NENG_CT_NG,0.476,1.0,3.78,3.78,1,1,0.315,0.63,0,0,3,0.039,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_nuclear_1,nuclear,1,21,2,1,1,0,0,2162.9,0,1,1081.45,0,0.0,0,190920,2.32,245,0.0,10.46,new_england_uranium,0.5,1.0,0.25,0.25,24,24,0.020833333,0.041666667,0,0,5,0.039,20,20,0,0,0,0
+NENG_ME,1,NENG_ME_biomass_1,other_renewables,0,25,3,1,1,0,0,24.95,0,0,2.5,0,0.0,0,122976,4.85,0,0.0,13.84,None,0.404,1.0,1.0,1.0,0,0,0.083333333,0.166666667,0,0,10,0.024,20,20,0,0,0,0
+NENG_ME,1,NENG_ME_natural_gas_fired_combined_cycle_1,natural_gas,1,27,3,1,1,0,0,274.5,0,1,137.25,0,0.0,0,16291,4.5,91,2.0,12.62,NENG_ME_NG,0.474,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENG_ME,2,NENG_ME_natural_gas_fired_combined_cycle_2,natural_gas,1,28,3,1,1,0,0,1114.1,0,1,557.05,0,0.0,0,9668,3.57,91,2.0,7.65,NENG_ME_NG,0.386,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENG_ME,1,NENG_ME_natural_gas_fired_combustion_turbine_1,natural_gas,1,29,3,1,1,0,0,163.5,0,1,54.5,0,0.0,0,11540,4.6,118,3.5,4.75,NENG_ME_NG,0.697,1.0,3.78,3.78,1,1,0.315,0.63,0,0,3,0.039,20,20,0,0,0,0
+NENGREST,0,NENGREST_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,33,1,1,1,0,0,0.0,0,1,500.0,0,-1.0,229388,27483,5.82,103,0.0,7.52,NENGREST_NG_ccs90,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENGREST,0,NENGREST_naturalgas_ccavgcf_mid_0,natural_gas,1,34,1,1,1,0,0,0.0,1,1,500.0,0,-1.0,110025,12441,1.61,103,2.0,6.27,NENGREST_NG,0.2,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENGREST,0,NENGREST_naturalgas_ctavgcf_mid_0,natural_gas,1,35,1,1,1,0,0,0.0,1,1,100.0,0,-1.0,81998,6960,4.49,134,3.5,9.9,NENGREST_NG,0.3,1.0,3.78,3.78,1,1,0.315,0.63,0,0,3,0.039,20,20,0,0,0,0
+NENGREST,0,NENGREST_naturalgas_ccs100_mid_0,natural_gas_CCS,1,37,1,1,1,0,0,0.0,0,1,500.0,0,-1.0,239841,37153,6.26,103,0.0,7.89,NENGREST_NG_ccs100,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,13,0.039,20,20,0,0,0,0
+NENG_CT,0,NENG_CT_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,41,2,1,1,0,0,0.0,0,1,500.0,0,-1.0,229388,27483,5.82,103,0.0,7.52,NENG_CT_NG_ccs90,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENG_CT,0,NENG_CT_naturalgas_ccavgcf_mid_0,natural_gas,1,42,2,1,1,0,0,0.0,1,1,500.0,0,-1.0,110025,12441,1.61,103,2.0,6.27,NENG_CT_NG,0.2,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENG_CT,0,NENG_CT_naturalgas_ctavgcf_mid_0,natural_gas,1,43,2,1,1,0,0,0.0,1,1,100.0,0,-1.0,81998,6960,4.49,134,3.5,9.9,NENG_CT_NG,0.3,1.0,3.78,3.78,1,1,0.315,0.63,0,0,3,0.039,20,20,0,0,0,0
+NENG_CT,0,NENG_CT_naturalgas_ccs100_mid_0,natural_gas_CCS,1,45,2,1,1,0,0,0.0,0,1,500.0,0,-1.0,239841,37153,6.26,103,0.0,7.89,NENG_CT_NG_ccs100,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,13,0.039,20,20,0,0,0,0
+NENG_ME,0,NENG_ME_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,49,3,1,1,0,0,0.0,0,1,500.0,0,-1.0,229388,27483,5.82,103,0.0,7.52,NENG_ME_NG_ccs90,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENG_ME,0,NENG_ME_naturalgas_ccavgcf_mid_0,natural_gas,1,50,3,1,1,0,0,0.0,1,1,500.0,0,-1.0,110025,12441,1.61,103,2.0,6.27,NENG_ME_NG,0.2,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENG_ME,0,NENG_ME_naturalgas_ctavgcf_mid_0,natural_gas,1,51,3,1,1,0,0,0.0,1,1,100.0,0,-1.0,81998,6960,4.49,134,3.5,9.9,NENG_ME_NG,0.3,1.0,3.78,3.78,1,1,0.315,0.63,0,0,3,0.039,20,20,0,0,0,0
+NENG_ME,0,NENG_ME_naturalgas_ccs100_mid_0,natural_gas_CCS,1,53,3,1,1,0,0,0.0,0,1,500.0,0,-1.0,239841,37153,6.26,103,0.0,7.89,NENG_ME_NG_ccs100,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,13,0.039,20,20,0,0,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p2/Resources/Vre.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p2/Resources/Vre.csv
new file mode 100644
index 0000000000..e33d14a24b
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p2/Resources/Vre.csv
@@ -0,0 +1,16 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Commit,Num_VRE_Bins,Min_Share,Max_Share,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
+NENGREST,1,NENGREST_offshore_wind_turbine_1,offshore_wind,1,10,1,0,1,0,0,30.0,0,1,30.0,0,0.0,0,128440,0.0,0,0.0,9.12,None,0.0,0.0,0.0,0.0,0.0,0.0,0,0,8,0.024,20,20,0,0,0,0
+NENGREST,1,NENGREST_onshore_wind_turbine_1,onshore_wind,1,11,1,0,1,0,0,145.8,0,1,9.75,0,0.0,0,43205,-18.0,0,0.0,9.12,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,6,0.024,20,20,0,0,0,0
+NENGREST,1,NENGREST_solar_photovoltaic_1,solar,1,13,1,0,1,0,0,821.4,0,1,2.6,0,0.0,0,18760,0.0,0,0.0,9.13,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,7,0.017,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_onshore_wind_turbine_1,onshore_wind,1,22,2,0,1,0,0,6.5,0,1,5.0,0,0.0,0,43205,-18.0,0,0.0,9.12,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,6,0.024,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_solar_photovoltaic_1,solar,1,24,2,0,1,0,0,374.6,0,1,5.67,0,0.0,0,18760,0.0,0,0.0,9.16,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,7,0.017,20,20,0,0,0,0
+NENG_ME,1,NENG_ME_onshore_wind_turbine_1,onshore_wind,1,30,3,0,1,0,0,1190.9,0,1,48.5,0,0.0,0,43205,-18.0,0,0.0,9.12,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,6,0.024,20,20,0,0,0,0
+NENG_ME,1,NENG_ME_solar_photovoltaic_1,solar,1,32,3,0,1,0,0,11.8,0,1,1.5,0,0.0,0,18760,0.0,0,0.0,9.12,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,7,0.017,20,20,0,0,0,0
+NENGREST,1,NENGREST_landbasedwind_ltrg1_mid_130_1,onshore_wind,1,38,1,0,1,0,0,0.0,1,1,1.0,0,4888.236,194100,41460,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,6,0.024,20,20,0,0,0,0
+NENGREST,1,NENGREST_utilitypv_losangeles_mid_80_0_2_1,solar,1,39,1,0,1,0,0,0.0,1,1,1.0,0,20835.569,99283,13055,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,7,0.017,20,20,0,0,0,0
+NENGREST,1,NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,offshore_wind,1,40,1,0,1,0,0,0.0,1,1,1.0,0,9848.442,260044,91549,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,8,0.024,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_landbasedwind_ltrg1_mid_110_1,onshore_wind,1,46,2,0,1,0,0,0.0,1,1,1.0,0,1982.895,185181,41460,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,6,0.024,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_utilitypv_losangeles_mid_80_0_2_1,solar,1,47,2,0,1,0,0,0.0,1,1,1.0,0,17063.264,98631,13055,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,7,0.017,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_offshorewind_otrg3_mid_fixed_1_176_77_1,offshore_wind,1,48,2,0,1,0,0,0.0,1,1,1.0,0,477.5,247542,91549,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,8,0.024,20,20,0,0,0,0
+NENG_ME,1,NENG_ME_landbasedwind_ltrg1_mid_110_1,onshore_wind,1,54,3,0,1,0,0,0.0,1,1,1.0,0,20430.499,233173,41460,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,6,0.024,20,20,0,0,0,0
+NENG_ME,1,NENG_ME_utilitypv_losangeles_mid_100_0_2_1,solar,1,55,3,0,1,0,0,0.0,1,1,1.0,0,21535.709,98706,13055,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,7,0.017,20,20,0,0,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p3/Generators_data.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p3/Generators_data.csv
deleted file mode 100644
index 157c1ac300..0000000000
--- a/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p3/Generators_data.csv
+++ /dev/null
@@ -1,59 +0,0 @@
-region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,THERM,Commit,STOR,HYDRO,FLEX,MUST_RUN,VRE,Num_VRE_Bins,CapRes_1,ESR_1,ESR_2,Min_Share,Max_Share,Existing_Cap_MW,Existing_Charge_Cap_MW,Existing_Cap_MWh,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Min_Charge_Cap_MW,Max_Charge_Cap_MW,Min_Cap_MWh,Max_Cap_MWh,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Self_Disch,Eff_Up,Eff_Down,Hydro_Energy_to_Power_Ratio,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Ramp_Up_Percentage,Ramp_Dn_Percentage,Up_Time,Down_Time,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,MinCapTag_1,MinCapTag_2,MinCapTag_3,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
-NENGREST,1,NENGREST_biomass_1,other_renewables,0,1,1,1,1,0,0,0,0,0,0,0.93,1,1,0,0,106.062,0,0,0,0,3.21,0,0,0,-1,0,-1,0,122976,0,0,0,0,5.08,0,0,0,14.58,None,0.45,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,10,0,0,0,0.024,20,20,0,0,0,0
-NENGREST,1,NENGREST_conventional_hydroelectric_1,other_renewables,0,2,1,0,0,0,1,0,0,0,0,0.8,0,1,0,0,662.983,0,0,0,0,11.24,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.116,0,1,1,1,0,0,0,0,1,0.083,0.083,0,0,0.006916667,0.013833333,0,0,4,0,0,0,0.024,20,20,0,0,0,0
-NENGREST,1,NENGREST_hydroelectric_pumped_storage_1,hydroelectric_pumped_storage,0,3,1,0,0,1,0,0,0,0,0,0.95,0,0,0,0,1768.002,0,280635.2381,0,0,294.67,0,0,0,-1,0,-1,0,40113,0,0,0,0,0,0,0,0,0,None,0.532,0,0.866,0.866,158.730159,0,200,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,11,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,1,NENGREST_natural_gas_fired_combined_cycle_1,natural_gas,1,4,1,1,1,0,0,0,0,0,0,0.93,0,0,0,0,7077.3,0,0,0,1,471.82,0,0,0,-1,0,-1,0,10287,0,0,0,0,3.55,0,91,2,7.43,NENGREST_NG,0.468,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,2,NENGREST_natural_gas_fired_combined_cycle_2,natural_gas,1,5,1,1,1,0,0,0,0,0,0,0.93,0,0,0,0,2684.803,0,0,0,1,244.07,0,0,0,-1,0,-1,0,16291,0,0,0,0,4.5,0,91,2,8.29,NENGREST_NG,0.507,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,1,NENGREST_natural_gas_fired_combustion_turbine_1,natural_gas,1,6,1,1,1,0,0,0,0,0,0,0.93,0,0,0,0,302.701,0,0,0,1,43.24,0,0,0,-1,0,-1,0,12080,0,0,0,0,4.6,0,118,3.5,10.13,NENGREST_NG,0.456,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,3,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,2,NENGREST_natural_gas_fired_combustion_turbine_2,natural_gas,1,7,1,1,1,0,0,0,0,0,0,0.93,0,0,0,0,62.704,0,0,0,1,7.84,0,0,0,-1,0,-1,0,13991,0,0,0,0,4.6,0,118,3.5,4.74,NENGREST_NG,0.488,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,3,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,1,NENGREST_natural_gas_steam_turbine_1,natural_gas,1,8,1,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0.6,0,0,0,1,0.6,0,0,0,-1,0,-1,0,50678,0,0,0,0,1.04,0,86,13.7,0,NENGREST_NG,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,99,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,1,NENGREST_nuclear_1,nuclear,1,9,1,1,1,0,0,0,0,0,0,0.93,0,1,0,0,1242,0,0,0,1,1242,0,0,0,-1,0,-1,0,271818,0,0,0,0,2.32,0,245,0,10.46,new_england_uranium,0.5,0,1,1,1,0,0,0,0,1,0.25,0.25,24,24,0.020833333,0.041666667,0,0,5,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,1,NENGREST_offshore_wind_turbine_1,offshore_wind,1,10,1,0,0,0,0,0,0,1,1,0.8,1,1,0,0,30,0,0,0,1,30,0,0,0,-1,0,-1,0,128440,0,0,0,0,0,0,0,0,9.12,None,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,8,1,1,0,0.024,20,20,0,0,0,0
-NENGREST,1,NENGREST_onshore_wind_turbine_1,onshore_wind,1,11,1,0,0,0,0,0,0,1,1,0.8,1,1,0,0,145.8,0,0,0,1,9.75,0,0,0,-1,0,-1,0,43205,0,0,0,0,-18,0,0,0,9.12,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,6,1,0,0,0.024,20,20,0,0,0,0
-NENGREST,1,NENGREST_small_hydroelectric_1,other_renewables,0,12,1,0,0,0,0,0,1,0,0,0,1,1,0,0,186.355,0,0,0,0,0.79,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.116,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,15,0,0,0,0.024,20,20,0,0,0,0
-NENGREST,1,NENGREST_solar_photovoltaic_1,solar,1,13,1,0,0,0,0,0,0,1,1,0.8,1,1,0,0,821.4,0,0,0,1,2.6,0,0,0,-1,0,-1,0,18760,0,0,0,0,0,0,0,0,9.13,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,7,0,0,1,0.017,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_biomass_1,other_renewables,0,14,2,1,1,0,0,0,0,0,0,0.93,1,1,0,0,27.248,0,0,0,0,3.41,0,0,0,-1,0,-1,0,122976,0,0,0,0,5.37,0,0,0,15.33,None,0.348,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,10,0,0,0,0.024,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_conventional_hydroelectric_1,other_renewables,0,15,2,0,0,0,1,0,0,0,0,0.8,0,1,0,0,67.7,0,0,0,0,13.54,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.18,0,1,1,1,0,0,0,0,1,0.083,0.083,0,0,0.006916667,0.013833333,0,0,4,0,0,0,0.024,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_hydroelectric_pumped_storage_1,hydroelectric_pumped_storage,0,16,2,0,0,1,0,0,0,0,0,0.95,0,0,0,0,30.999,0,4920.47619,0,0,10.33,0,0,0,-1,0,-1,0,40113,0,0,0,0,0,0,0,0,0,None,0.871,0,0.866,0.866,158.730159,0,200,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,11,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_natural_gas_fired_combined_cycle_1,natural_gas,1,17,2,1,1,0,0,0,0,0,0,0.93,0,0,0,0,3488.704,0,0,0,1,436.09,0,0,0,-1,0,-1,0,9698,0,0,0,0,3.57,0,91,2,7.12,NENG_CT_NG,0.338,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,2,NENG_CT_natural_gas_fired_combined_cycle_2,natural_gas,1,18,2,1,1,0,0,0,0,0,0,0.93,0,0,0,0,35.2,0,0,0,1,17.6,0,0,0,-1,0,-1,0,16291,0,0,0,0,4.5,0,91,2,10.77,NENG_CT_NG,0.466,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_natural_gas_fired_combustion_turbine_1,natural_gas,1,19,2,1,1,0,0,0,0,0,0,0.93,0,0,0,0,434,0,0,0,1,54.25,0,0,0,-1,0,-1,0,10609,0,0,0,0,4.6,0,118,3.5,11.06,NENG_CT_NG,0.124,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,3,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,2,NENG_CT_natural_gas_fired_combustion_turbine_2,natural_gas,1,20,2,1,1,0,0,0,0,0,0,0.93,0,0,0,0,124.9,0,0,0,1,24.98,0,0,0,-1,0,-1,0,13991,0,0,0,0,4.6,0,118,3.5,8.35,NENG_CT_NG,0.476,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,3,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_nuclear_1,nuclear,1,21,2,1,1,0,0,0,0,0,0,0.93,0,1,0,0,2162.9,0,0,0,1,1081.45,0,0,0,-1,0,-1,0,190920,0,0,0,0,2.32,0,245,0,10.46,new_england_uranium,0.5,0,1,1,1,0,0,0,0,1,0.25,0.25,24,24,0.020833333,0.041666667,0,0,5,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_onshore_wind_turbine_1,onshore_wind,1,22,2,0,0,0,0,0,0,1,1,0.8,1,1,0,0,6.5,0,0,0,1,5,0,0,0,-1,0,-1,0,43205,0,0,0,0,-18,0,0,0,9.12,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,6,0,0,0,0.024,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_small_hydroelectric_1,other_renewables,0,23,2,0,0,0,0,0,1,0,0,0,1,1,0,0,18.711,0,0,0,0,0.57,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.18,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,15,0,0,0,0.024,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_solar_photovoltaic_1,solar,1,24,2,0,0,0,0,0,0,1,1,0.8,1,1,0,0,374.6,0,0,0,1,5.67,0,0,0,-1,0,-1,0,18760,0,0,0,0,0,0,0,0,9.16,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,7,0,0,0,0.017,20,20,0,0,0,0
-NENG_ME,1,NENG_ME_biomass_1,other_renewables,0,25,3,1,1,0,0,0,0,0,0,0.93,1,1,0,0,24.95,0,0,0,0,2.5,0,0,0,-1,0,-1,0,122976,0,0,0,0,4.85,0,0,0,13.84,None,0.404,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,10,0,0,0,0.024,20,20,0,0,0,0
-NENG_ME,1,NENG_ME_conventional_hydroelectric_1,other_renewables,0,26,3,0,0,0,1,0,0,0,0,0.8,0,1,0,0,327.81,0,0,0,0,7.8,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.402,0,1,1,1,0,0,0,0,1,0.083,0.083,0,0,0.006916667,0.013833333,0,0,4,0,0,0,0.024,20,20,0,0,0,0
-NENG_ME,1,NENG_ME_natural_gas_fired_combined_cycle_1,natural_gas,1,27,3,1,1,0,0,0,0,0,0,0.93,0,0,0,0,274.5,0,0,0,1,137.25,0,0,0,-1,0,-1,0,16291,0,0,0,0,4.5,0,91,2,12.62,NENG_ME_NG,0.474,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENG_ME,2,NENG_ME_natural_gas_fired_combined_cycle_2,natural_gas,1,28,3,1,1,0,0,0,0,0,0,0.93,0,0,0,0,1114.1,0,0,0,1,557.05,0,0,0,-1,0,-1,0,9668,0,0,0,0,3.57,0,91,2,7.65,NENG_ME_NG,0.386,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENG_ME,1,NENG_ME_natural_gas_fired_combustion_turbine_1,natural_gas,1,29,3,1,1,0,0,0,0,0,0,0.93,0,0,0,0,163.5,0,0,0,1,54.5,0,0,0,-1,0,-1,0,11540,0,0,0,0,4.6,0,118,3.5,4.75,NENG_ME_NG,0.697,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,3,0,0,0,0.039,20,20,0,0,0,0
-NENG_ME,1,NENG_ME_onshore_wind_turbine_1,onshore_wind,1,30,3,0,0,0,0,0,0,1,1,0.8,1,1,0,0,1190.9,0,0,0,1,48.5,0,0,0,-1,0,-1,0,43205,0,0,0,0,-18,0,0,0,9.12,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,6,1,0,0,0.024,20,20,0,0,0,0
-NENG_ME,1,NENG_ME_small_hydroelectric_1,other_renewables,0,31,3,0,0,0,0,0,1,0,0,0,1,1,0,0,195.266,0,0,0,0,1.1,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.192,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,15,0,0,0,0.024,20,20,0,0,0,0
-NENG_ME,1,NENG_ME_solar_photovoltaic_1,solar,1,32,3,0,0,0,0,0,0,1,1,0.8,1,1,0,0,11.8,0,0,0,1,1.5,0,0,0,-1,0,-1,0,18760,0,0,0,0,0,0,0,0,9.12,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,7,0,0,0,0.017,20,20,0,0,0,0
-NENGREST,0,NENGREST_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,33,1,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,229388,27483,0,0,0,0,5.82,0,103,0,7.52,NENGREST_NG_ccs90,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,0,NENGREST_naturalgas_ccavgcf_mid_0,natural_gas,1,34,1,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,500,0,-1,0,-1,0,-1,110025,12441,0,0,0,0,1.61,0,103,2,6.27,NENGREST_NG,0.2,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,0,NENGREST_naturalgas_ctavgcf_mid_0,natural_gas,1,35,1,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,100,0,-1,0,-1,0,-1,81998,6960,0,0,0,0,4.49,0,134,3.5,9.9,NENGREST_NG,0.3,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,3,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,0,NENGREST_battery_mid_0,battery_mid,0,36,1,0,0,1,0,0,0,0,0,0.95,0,0,0,0,0,0,0,1,1,1,0,-1,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0,0,None,0,0,0.92,0.92,1,1,10,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,12,0,0,0,0.027,20,20,0,0,0,0
-NENGREST,0,NENGREST_naturalgas_ccs100_mid_0,natural_gas_CCS,1,37,1,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,239841,37153,0,0,0,0,6.26,0,103,0,7.89,NENGREST_NG_ccs100,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,13,0,0,0,0.039,20,20,0,0,0,0
-NENGREST,1,NENGREST_landbasedwind_ltrg1_mid_130_1,onshore_wind,1,38,1,0,0,0,0,0,0,1,1,0.8,1,1,0,0,0,0,0,1,1,1,0,4888.236,0,-1,0,-1,194100,41460,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,6,1,0,0,0.024,20,20,0,0,0,0
-NENGREST,1,NENGREST_utilitypv_losangeles_mid_80_0_2_1,solar,1,39,1,0,0,0,0,0,0,1,1,0.8,1,1,0,0,0,0,0,1,1,1,0,20835.569,0,-1,0,-1,99283,13055,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,7,0,0,1,0.017,20,20,0,0,0,0
-NENGREST,1,NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,offshore_wind,1,40,1,0,0,0,0,0,0,1,1,0.8,1,1,0,0,0,0,0,1,1,1,0,9848.442,0,-1,0,-1,260044,91549,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,8,1,1,0,0.024,20,20,0,0,0,0
-NENG_CT,0,NENG_CT_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,41,2,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,229388,27483,0,0,0,0,5.82,0,103,0,7.52,NENG_CT_NG_ccs90,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,0,NENG_CT_naturalgas_ccavgcf_mid_0,natural_gas,1,42,2,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,500,0,-1,0,-1,0,-1,110025,12441,0,0,0,0,1.61,0,103,2,6.27,NENG_CT_NG,0.2,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,0,NENG_CT_naturalgas_ctavgcf_mid_0,natural_gas,1,43,2,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,100,0,-1,0,-1,0,-1,81998,6960,0,0,0,0,4.49,0,134,3.5,9.9,NENG_CT_NG,0.3,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,3,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,0,NENG_CT_battery_mid_0,battery_mid,0,44,2,0,0,1,0,0,0,0,0,0.95,0,0,0,0,0,0,0,1,1,1,0,-1,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0,0,None,0,0,0.92,0.92,1,1,10,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,12,0,0,0,0.027,20,20,0,0,0,0
-NENG_CT,0,NENG_CT_naturalgas_ccs100_mid_0,natural_gas_CCS,1,45,2,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,239841,37153,0,0,0,0,6.26,0,103,0,7.89,NENG_CT_NG_ccs100,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,13,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_landbasedwind_ltrg1_mid_110_1,onshore_wind,1,46,2,0,0,0,0,0,0,1,1,0.8,1,1,0,0,0,0,0,1,1,1,0,1982.895,0,-1,0,-1,185181,41460,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,6,0,0,0,0.024,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_utilitypv_losangeles_mid_80_0_2_1,solar,1,47,2,0,0,0,0,0,0,1,1,0.8,1,1,0,0,0,0,0,1,1,1,0,17063.264,0,-1,0,-1,98631,13055,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,7,0,0,0,0.017,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_offshorewind_otrg3_mid_fixed_1_176_77_1,offshore_wind,1,48,2,0,0,0,0,0,0,1,1,0.8,1,1,0,0,0,0,0,1,1,1,0,477.5,0,-1,0,-1,247542,91549,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,8,0,0,0,0.024,20,20,0,0,0,0
-NENG_ME,0,NENG_ME_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,49,3,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,229388,27483,0,0,0,0,5.82,0,103,0,7.52,NENG_ME_NG_ccs90,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENG_ME,0,NENG_ME_naturalgas_ccavgcf_mid_0,natural_gas,1,50,3,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,500,0,-1,0,-1,0,-1,110025,12441,0,0,0,0,1.61,0,103,2,6.27,NENG_ME_NG,0.2,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0,0,0,0.039,20,20,0,0,0,0
-NENG_ME,0,NENG_ME_naturalgas_ctavgcf_mid_0,natural_gas,1,51,3,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,100,0,-1,0,-1,0,-1,81998,6960,0,0,0,0,4.49,0,134,3.5,9.9,NENG_ME_NG,0.3,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,3,0,0,0,0.039,20,20,0,0,0,0
-NENG_ME,0,NENG_ME_battery_mid_0,battery_mid,0,52,3,0,0,1,0,0,0,0,0,0.95,0,0,0,0,0,0,0,1,1,1,0,-1,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0,0,None,0,0,0.92,0.92,1,1,10,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,12,0,0,0,0.027,20,20,0,0,0,0
-NENG_ME,0,NENG_ME_naturalgas_ccs100_mid_0,natural_gas_CCS,1,53,3,1,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,239841,37153,0,0,0,0,6.26,0,103,0,7.89,NENG_ME_NG_ccs100,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,13,0,0,0,0.039,20,20,0,0,0,0
-NENG_ME,1,NENG_ME_landbasedwind_ltrg1_mid_110_1,onshore_wind,1,54,3,0,0,0,0,0,0,1,1,0.8,1,1,0,0,0,0,0,1,1,1,0,20430.499,0,-1,0,-1,233173,41460,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,6,1,0,0,0.024,20,20,0,0,0,0
-NENG_ME,1,NENG_ME_utilitypv_losangeles_mid_100_0_2_1,solar,1,55,3,0,0,0,0,0,0,1,1,0.8,1,1,0,0,0,0,0,1,1,1,0,21535.709,0,-1,0,-1,98706,13055,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,7,0,0,0,0.017,20,20,0,0,0,0
-NENGREST,1,NENGREST_heat_load_shifting_1,heat_load_shifting,0,56,1,0,0,0,0,1,0,0,0,0.95,0,0,0,0,165.52,0,0,0,0,0,0,0,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0.039,20,20,0,0,0,0
-NENG_CT,1,NENG_CT_heat_load_shifting_1,heat_load_shifting,0,57,2,0,0,0,0,1,0,0,0,0.95,0,0,0,0,47.27,0,0,0,0,0,0,0,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0.039,20,20,0,0,0,0
-NENG_ME,1,NENG_ME_heat_load_shifting_1,heat_load_shifting,0,58,3,0,0,0,0,1,0,0,0,0.95,0,0,0,0,22.56,0,0,0,0,0,0,0,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0.039,20,20,0,0,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p3/Resources/Flex_demand.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p3/Resources/Flex_demand.csv
new file mode 100644
index 0000000000..4073c5319c
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p3/Resources/Flex_demand.csv
@@ -0,0 +1,4 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Commit,Min_Share,Max_Share,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
+NENGREST,1,NENGREST_heat_load_shifting_1,heat_load_shifting,0,56,1,0,0,0,165.52,0,0,0.0,0,0.0,0,0,0.0,0,0.0,0.0,None,0.0,0.0,0,4,1,0.0,0.0,0.0,0.0,0,0,0,0.039,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_heat_load_shifting_1,heat_load_shifting,0,57,2,0,0,0,47.27,0,0,0.0,0,0.0,0,0,0.0,0,0.0,0.0,None,0.0,0.0,0,4,1,0.0,0.0,0.0,0.0,0,0,0,0.039,20,20,0,0,0,0
+NENG_ME,1,NENG_ME_heat_load_shifting_1,heat_load_shifting,0,58,3,0,0,0,22.56,0,0,0.0,0,0.0,0,0,0.0,0,0.0,0.0,None,0.0,0.0,0,4,1,0.0,0.0,0.0,0.0,0,0,0,0.039,20,20,0,0,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p3/Resources/Hydro.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p3/Resources/Hydro.csv
new file mode 100644
index 0000000000..1705eaa64d
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p3/Resources/Hydro.csv
@@ -0,0 +1,4 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Commit,Min_Share,Max_Share,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
+NENGREST,1,NENGREST_conventional_hydroelectric_1,other_renewables,0,2,1,0,0,0,662.983,0,0,11.24,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.116,1.0,0.083,0.083,0.006916667,0.013833333,0,0,4,0.024,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_conventional_hydroelectric_1,other_renewables,0,15,2,0,0,0,67.7,0,0,13.54,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.18,1.0,0.083,0.083,0.006916667,0.013833333,0,0,4,0.024,20,20,0,0,0,0
+NENG_ME,1,NENG_ME_conventional_hydroelectric_1,other_renewables,0,26,3,0,0,0,327.81,0,0,7.8,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.402,1.0,0.083,0.083,0.006916667,0.013833333,0,0,4,0.024,20,20,0,0,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p3/Resources/Must_run.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p3/Resources/Must_run.csv
new file mode 100644
index 0000000000..17706b2c07
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p3/Resources/Must_run.csv
@@ -0,0 +1,4 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Commit,Min_Share,Max_Share,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
+NENGREST,1,NENGREST_small_hydroelectric_1,other_renewables,0,12,1,0,0,0,186.355,0,0,0.79,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.116,1.0,1.0,1.0,0.0,0.0,0,0,15,0.024,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_small_hydroelectric_1,other_renewables,0,23,2,0,0,0,18.711,0,0,0.57,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.18,1.0,1.0,1.0,0.0,0.0,0,0,15,0.024,20,20,0,0,0,0
+NENG_ME,1,NENG_ME_small_hydroelectric_1,other_renewables,0,31,3,0,0,0,195.266,0,0,1.1,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.192,1.0,1.0,1.0,0.0,0.0,0,0,15,0.024,20,20,0,0,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p3/Resources/Resource_multistage_data.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p3/Resources/Resource_multistage_data.csv
new file mode 100644
index 0000000000..ac128a1a2b
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p3/Resources/Resource_multistage_data.csv
@@ -0,0 +1,59 @@
+Resource,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW
+NENGREST_biomass_1,0.024,20,20,0,0,0
+NENGREST_conventional_hydroelectric_1,0.024,20,20,0,0,0
+NENGREST_hydroelectric_pumped_storage_1,0.039,20,20,0,0,0
+NENGREST_natural_gas_fired_combined_cycle_1,0.039,20,20,0,0,0
+NENGREST_natural_gas_fired_combined_cycle_2,0.039,20,20,0,0,0
+NENGREST_natural_gas_fired_combustion_turbine_1,0.039,20,20,0,0,0
+NENGREST_natural_gas_fired_combustion_turbine_2,0.039,20,20,0,0,0
+NENGREST_natural_gas_steam_turbine_1,0.039,20,20,0,0,0
+NENGREST_nuclear_1,0.039,20,20,0,0,0
+NENGREST_offshore_wind_turbine_1,0.024,20,20,0,0,0
+NENGREST_onshore_wind_turbine_1,0.024,20,20,0,0,0
+NENGREST_small_hydroelectric_1,0.024,20,20,0,0,0
+NENGREST_solar_photovoltaic_1,0.017,20,20,0,0,0
+NENG_CT_biomass_1,0.024,20,20,0,0,0
+NENG_CT_conventional_hydroelectric_1,0.024,20,20,0,0,0
+NENG_CT_hydroelectric_pumped_storage_1,0.039,20,20,0,0,0
+NENG_CT_natural_gas_fired_combined_cycle_1,0.039,20,20,0,0,0
+NENG_CT_natural_gas_fired_combined_cycle_2,0.039,20,20,0,0,0
+NENG_CT_natural_gas_fired_combustion_turbine_1,0.039,20,20,0,0,0
+NENG_CT_natural_gas_fired_combustion_turbine_2,0.039,20,20,0,0,0
+NENG_CT_nuclear_1,0.039,20,20,0,0,0
+NENG_CT_onshore_wind_turbine_1,0.024,20,20,0,0,0
+NENG_CT_small_hydroelectric_1,0.024,20,20,0,0,0
+NENG_CT_solar_photovoltaic_1,0.017,20,20,0,0,0
+NENG_ME_biomass_1,0.024,20,20,0,0,0
+NENG_ME_conventional_hydroelectric_1,0.024,20,20,0,0,0
+NENG_ME_natural_gas_fired_combined_cycle_1,0.039,20,20,0,0,0
+NENG_ME_natural_gas_fired_combined_cycle_2,0.039,20,20,0,0,0
+NENG_ME_natural_gas_fired_combustion_turbine_1,0.039,20,20,0,0,0
+NENG_ME_onshore_wind_turbine_1,0.024,20,20,0,0,0
+NENG_ME_small_hydroelectric_1,0.024,20,20,0,0,0
+NENG_ME_solar_photovoltaic_1,0.017,20,20,0,0,0
+NENGREST_naturalgas_ccccsavgcf_mid_0,0.039,20,20,0,0,0
+NENGREST_naturalgas_ccavgcf_mid_0,0.039,20,20,0,0,0
+NENGREST_naturalgas_ctavgcf_mid_0,0.039,20,20,0,0,0
+NENGREST_battery_mid_0,0.027,20,20,0,0,0
+NENGREST_naturalgas_ccs100_mid_0,0.039,20,20,0,0,0
+NENGREST_landbasedwind_ltrg1_mid_130_1,0.024,20,20,0,0,0
+NENGREST_utilitypv_losangeles_mid_80_0_2_1,0.017,20,20,0,0,0
+NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,0.024,20,20,0,0,0
+NENG_CT_naturalgas_ccccsavgcf_mid_0,0.039,20,20,0,0,0
+NENG_CT_naturalgas_ccavgcf_mid_0,0.039,20,20,0,0,0
+NENG_CT_naturalgas_ctavgcf_mid_0,0.039,20,20,0,0,0
+NENG_CT_battery_mid_0,0.027,20,20,0,0,0
+NENG_CT_naturalgas_ccs100_mid_0,0.039,20,20,0,0,0
+NENG_CT_landbasedwind_ltrg1_mid_110_1,0.024,20,20,0,0,0
+NENG_CT_utilitypv_losangeles_mid_80_0_2_1,0.017,20,20,0,0,0
+NENG_CT_offshorewind_otrg3_mid_fixed_1_176_77_1,0.024,20,20,0,0,0
+NENG_ME_naturalgas_ccccsavgcf_mid_0,0.039,20,20,0,0,0
+NENG_ME_naturalgas_ccavgcf_mid_0,0.039,20,20,0,0,0
+NENG_ME_naturalgas_ctavgcf_mid_0,0.039,20,20,0,0,0
+NENG_ME_battery_mid_0,0.027,20,20,0,0,0
+NENG_ME_naturalgas_ccs100_mid_0,0.039,20,20,0,0,0
+NENG_ME_landbasedwind_ltrg1_mid_110_1,0.024,20,20,0,0,0
+NENG_ME_utilitypv_losangeles_mid_100_0_2_1,0.017,20,20,0,0,0
+NENGREST_heat_load_shifting_1,0.039,20,20,0,0,0
+NENG_CT_heat_load_shifting_1,0.039,20,20,0,0,0
+NENG_ME_heat_load_shifting_1,0.039,20,20,0,0,0
\ No newline at end of file
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p3/Resources/Storage.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p3/Resources/Storage.csv
new file mode 100644
index 0000000000..318fa0e587
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p3/Resources/Storage.csv
@@ -0,0 +1,6 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Commit,Model,Min_Share,Max_Share,Existing_Cap_MW,Existing_Charge_Cap_MW,Existing_Cap_MWh,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Min_Charge_Cap_MW,Max_Charge_Cap_MW,Min_Cap_MWh,Max_Cap_MWh,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Self_Disch,Eff_Up,Eff_Down,Hydro_Energy_to_Power_Ratio,Min_Duration,Max_Duration,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
+NENGREST,1,NENGREST_hydroelectric_pumped_storage_1,hydroelectric_pumped_storage,0,3,1,0,1,0,0,1768.002,0,280635.2381,0,0,294.67,0,0.0,0,-1,0,-1,0,40113,0,0,0,0,0.0,0.0,0,0.0,0.0,None,0.532,0,0.866,0.866,158.730159,0,200,1.0,1.0,0.083333333,0.166666667,0,0,11,0.039,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_hydroelectric_pumped_storage_1,hydroelectric_pumped_storage,0,16,2,0,1,0,0,30.999,0,4920.47619,0,0,10.33,0,0.0,0,-1,0,-1,0,40113,0,0,0,0,0.0,0.0,0,0.0,0.0,None,0.871,0,0.866,0.866,158.730159,0,200,1.0,1.0,0.083333333,0.166666667,0,0,11,0.039,20,20,0,0,0,0
+NENGREST,0,NENGREST_battery_mid_0,battery_mid,0,36,1,0,1,0,0,0.0,0,0.0,1,1,1.0,0,-1.0,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0.0,0.0,None,0.0,0,0.92,0.92,1.0,1,10,1.0,1.0,0.083333333,0.166666667,0,0,12,0.027,20,20,0,0,0,0
+NENG_CT,0,NENG_CT_battery_mid_0,battery_mid,0,44,2,0,1,0,0,0.0,0,0.0,1,1,1.0,0,-1.0,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0.0,0.0,None,0.0,0,0.92,0.92,1.0,1,10,1.0,1.0,0.083333333,0.166666667,0,0,12,0.027,20,20,0,0,0,0
+NENG_ME,0,NENG_ME_battery_mid_0,battery_mid,0,52,3,0,1,0,0,0.0,0,0.0,1,1,1.0,0,-1.0,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0.0,0.0,None,0.0,0,0.92,0.92,1.0,1,10,1.0,1.0,0.083333333,0.166666667,0,0,12,0.027,20,20,0,0,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p3/Resources/Thermal.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p3/Resources/Thermal.csv
new file mode 100644
index 0000000000..420298129c
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p3/Resources/Thermal.csv
@@ -0,0 +1,30 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Model,Commit,Min_Share,Max_Share,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Ramp_Up_Percentage,Ramp_Dn_Percentage,Up_Time,Down_Time,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
+NENGREST,1,NENGREST_biomass_1,other_renewables,0,1,1,1,1,0,0,106.062,0,0,3.21,0,0.0,0,122976,5.08,0,0.0,14.58,None,0.45,1.0,1.0,1.0,0,0,0.083333333,0.166666667,0,0,10,0.024,20,20,0,0,0,0
+NENGREST,1,NENGREST_natural_gas_fired_combined_cycle_1,natural_gas,1,4,1,1,1,0,0,7077.3,0,1,471.82,0,0.0,0,10287,3.55,91,2.0,7.43,NENGREST_NG,0.468,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENGREST,2,NENGREST_natural_gas_fired_combined_cycle_2,natural_gas,1,5,1,1,1,0,0,2684.803,0,1,244.07,0,0.0,0,16291,4.5,91,2.0,8.29,NENGREST_NG,0.507,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENGREST,1,NENGREST_natural_gas_fired_combustion_turbine_1,natural_gas,1,6,1,1,1,0,0,302.701,0,1,43.24,0,0.0,0,12080,4.6,118,3.5,10.13,NENGREST_NG,0.456,1.0,3.78,3.78,1,1,0.315,0.63,0,0,3,0.039,20,20,0,0,0,0
+NENGREST,2,NENGREST_natural_gas_fired_combustion_turbine_2,natural_gas,1,7,1,1,1,0,0,62.704,0,1,7.84,0,0.0,0,13991,4.6,118,3.5,4.74,NENGREST_NG,0.488,1.0,3.78,3.78,1,1,0.315,0.63,0,0,3,0.039,20,20,0,0,0,0
+NENGREST,1,NENGREST_natural_gas_steam_turbine_1,natural_gas,1,8,1,1,1,0,0,0.6,0,1,0.6,0,0.0,0,50678,1.04,86,13.7,0.0,NENGREST_NG,0.0,0.0,0.0,0.0,0,0,0.0,0.0,0,0,99,0.039,20,20,0,0,0,0
+NENGREST,1,NENGREST_nuclear_1,nuclear,1,9,1,1,1,0,0,1242.0,0,1,1242.0,0,0.0,0,271818,2.32,245,0.0,10.46,new_england_uranium,0.5,1.0,0.25,0.25,24,24,0.020833333,0.041666667,0,0,5,0.039,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_biomass_1,other_renewables,0,14,2,1,1,0,0,27.248,0,0,3.41,0,0.0,0,122976,5.37,0,0.0,15.33,None,0.348,1.0,1.0,1.0,0,0,0.083333333,0.166666667,0,0,10,0.024,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_natural_gas_fired_combined_cycle_1,natural_gas,1,17,2,1,1,0,0,3488.704,0,1,436.09,0,0.0,0,9698,3.57,91,2.0,7.12,NENG_CT_NG,0.338,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENG_CT,2,NENG_CT_natural_gas_fired_combined_cycle_2,natural_gas,1,18,2,1,1,0,0,35.2,0,1,17.6,0,0.0,0,16291,4.5,91,2.0,10.77,NENG_CT_NG,0.466,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_natural_gas_fired_combustion_turbine_1,natural_gas,1,19,2,1,1,0,0,434.0,0,1,54.25,0,0.0,0,10609,4.6,118,3.5,11.06,NENG_CT_NG,0.124,1.0,3.78,3.78,1,1,0.315,0.63,0,0,3,0.039,20,20,0,0,0,0
+NENG_CT,2,NENG_CT_natural_gas_fired_combustion_turbine_2,natural_gas,1,20,2,1,1,0,0,124.9,0,1,24.98,0,0.0,0,13991,4.6,118,3.5,8.35,NENG_CT_NG,0.476,1.0,3.78,3.78,1,1,0.315,0.63,0,0,3,0.039,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_nuclear_1,nuclear,1,21,2,1,1,0,0,2162.9,0,1,1081.45,0,0.0,0,190920,2.32,245,0.0,10.46,new_england_uranium,0.5,1.0,0.25,0.25,24,24,0.020833333,0.041666667,0,0,5,0.039,20,20,0,0,0,0
+NENG_ME,1,NENG_ME_biomass_1,other_renewables,0,25,3,1,1,0,0,24.95,0,0,2.5,0,0.0,0,122976,4.85,0,0.0,13.84,None,0.404,1.0,1.0,1.0,0,0,0.083333333,0.166666667,0,0,10,0.024,20,20,0,0,0,0
+NENG_ME,1,NENG_ME_natural_gas_fired_combined_cycle_1,natural_gas,1,27,3,1,1,0,0,274.5,0,1,137.25,0,0.0,0,16291,4.5,91,2.0,12.62,NENG_ME_NG,0.474,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENG_ME,2,NENG_ME_natural_gas_fired_combined_cycle_2,natural_gas,1,28,3,1,1,0,0,1114.1,0,1,557.05,0,0.0,0,9668,3.57,91,2.0,7.65,NENG_ME_NG,0.386,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENG_ME,1,NENG_ME_natural_gas_fired_combustion_turbine_1,natural_gas,1,29,3,1,1,0,0,163.5,0,1,54.5,0,0.0,0,11540,4.6,118,3.5,4.75,NENG_ME_NG,0.697,1.0,3.78,3.78,1,1,0.315,0.63,0,0,3,0.039,20,20,0,0,0,0
+NENGREST,0,NENGREST_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,33,1,1,1,0,0,0.0,0,1,500.0,0,-1.0,229388,27483,5.82,103,0.0,7.52,NENGREST_NG_ccs90,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENGREST,0,NENGREST_naturalgas_ccavgcf_mid_0,natural_gas,1,34,1,1,1,0,0,0.0,1,1,500.0,0,-1.0,110025,12441,1.61,103,2.0,6.27,NENGREST_NG,0.2,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENGREST,0,NENGREST_naturalgas_ctavgcf_mid_0,natural_gas,1,35,1,1,1,0,0,0.0,1,1,100.0,0,-1.0,81998,6960,4.49,134,3.5,9.9,NENGREST_NG,0.3,1.0,3.78,3.78,1,1,0.315,0.63,0,0,3,0.039,20,20,0,0,0,0
+NENGREST,0,NENGREST_naturalgas_ccs100_mid_0,natural_gas_CCS,1,37,1,1,1,0,0,0.0,0,1,500.0,0,-1.0,239841,37153,6.26,103,0.0,7.89,NENGREST_NG_ccs100,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,13,0.039,20,20,0,0,0,0
+NENG_CT,0,NENG_CT_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,41,2,1,1,0,0,0.0,0,1,500.0,0,-1.0,229388,27483,5.82,103,0.0,7.52,NENG_CT_NG_ccs90,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENG_CT,0,NENG_CT_naturalgas_ccavgcf_mid_0,natural_gas,1,42,2,1,1,0,0,0.0,1,1,500.0,0,-1.0,110025,12441,1.61,103,2.0,6.27,NENG_CT_NG,0.2,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENG_CT,0,NENG_CT_naturalgas_ctavgcf_mid_0,natural_gas,1,43,2,1,1,0,0,0.0,1,1,100.0,0,-1.0,81998,6960,4.49,134,3.5,9.9,NENG_CT_NG,0.3,1.0,3.78,3.78,1,1,0.315,0.63,0,0,3,0.039,20,20,0,0,0,0
+NENG_CT,0,NENG_CT_naturalgas_ccs100_mid_0,natural_gas_CCS,1,45,2,1,1,0,0,0.0,0,1,500.0,0,-1.0,239841,37153,6.26,103,0.0,7.89,NENG_CT_NG_ccs100,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,13,0.039,20,20,0,0,0,0
+NENG_ME,0,NENG_ME_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,49,3,1,1,0,0,0.0,0,1,500.0,0,-1.0,229388,27483,5.82,103,0.0,7.52,NENG_ME_NG_ccs90,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENG_ME,0,NENG_ME_naturalgas_ccavgcf_mid_0,natural_gas,1,50,3,1,1,0,0,0.0,1,1,500.0,0,-1.0,110025,12441,1.61,103,2.0,6.27,NENG_ME_NG,0.2,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,2,0.039,20,20,0,0,0,0
+NENG_ME,0,NENG_ME_naturalgas_ctavgcf_mid_0,natural_gas,1,51,3,1,1,0,0,0.0,1,1,100.0,0,-1.0,81998,6960,4.49,134,3.5,9.9,NENG_ME_NG,0.3,1.0,3.78,3.78,1,1,0.315,0.63,0,0,3,0.039,20,20,0,0,0,0
+NENG_ME,0,NENG_ME_naturalgas_ccs100_mid_0,natural_gas_CCS,1,53,3,1,1,0,0,0.0,0,1,500.0,0,-1.0,239841,37153,6.26,103,0.0,7.89,NENG_ME_NG_ccs100,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0,13,0.039,20,20,0,0,0,0
diff --git a/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p3/Resources/Vre.csv b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p3/Resources/Vre.csv
new file mode 100644
index 0000000000..e33d14a24b
--- /dev/null
+++ b/Example_Systems/RealSystemExample/ISONE_Trizone_MultiStage/Inputs/Inputs_p3/Resources/Vre.csv
@@ -0,0 +1,16 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Commit,Num_VRE_Bins,Min_Share,Max_Share,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
+NENGREST,1,NENGREST_offshore_wind_turbine_1,offshore_wind,1,10,1,0,1,0,0,30.0,0,1,30.0,0,0.0,0,128440,0.0,0,0.0,9.12,None,0.0,0.0,0.0,0.0,0.0,0.0,0,0,8,0.024,20,20,0,0,0,0
+NENGREST,1,NENGREST_onshore_wind_turbine_1,onshore_wind,1,11,1,0,1,0,0,145.8,0,1,9.75,0,0.0,0,43205,-18.0,0,0.0,9.12,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,6,0.024,20,20,0,0,0,0
+NENGREST,1,NENGREST_solar_photovoltaic_1,solar,1,13,1,0,1,0,0,821.4,0,1,2.6,0,0.0,0,18760,0.0,0,0.0,9.13,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,7,0.017,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_onshore_wind_turbine_1,onshore_wind,1,22,2,0,1,0,0,6.5,0,1,5.0,0,0.0,0,43205,-18.0,0,0.0,9.12,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,6,0.024,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_solar_photovoltaic_1,solar,1,24,2,0,1,0,0,374.6,0,1,5.67,0,0.0,0,18760,0.0,0,0.0,9.16,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,7,0.017,20,20,0,0,0,0
+NENG_ME,1,NENG_ME_onshore_wind_turbine_1,onshore_wind,1,30,3,0,1,0,0,1190.9,0,1,48.5,0,0.0,0,43205,-18.0,0,0.0,9.12,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,6,0.024,20,20,0,0,0,0
+NENG_ME,1,NENG_ME_solar_photovoltaic_1,solar,1,32,3,0,1,0,0,11.8,0,1,1.5,0,0.0,0,18760,0.0,0,0.0,9.12,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,7,0.017,20,20,0,0,0,0
+NENGREST,1,NENGREST_landbasedwind_ltrg1_mid_130_1,onshore_wind,1,38,1,0,1,0,0,0.0,1,1,1.0,0,4888.236,194100,41460,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,6,0.024,20,20,0,0,0,0
+NENGREST,1,NENGREST_utilitypv_losangeles_mid_80_0_2_1,solar,1,39,1,0,1,0,0,0.0,1,1,1.0,0,20835.569,99283,13055,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,7,0.017,20,20,0,0,0,0
+NENGREST,1,NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,offshore_wind,1,40,1,0,1,0,0,0.0,1,1,1.0,0,9848.442,260044,91549,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,8,0.024,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_landbasedwind_ltrg1_mid_110_1,onshore_wind,1,46,2,0,1,0,0,0.0,1,1,1.0,0,1982.895,185181,41460,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,6,0.024,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_utilitypv_losangeles_mid_80_0_2_1,solar,1,47,2,0,1,0,0,0.0,1,1,1.0,0,17063.264,98631,13055,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,7,0.017,20,20,0,0,0,0
+NENG_CT,1,NENG_CT_offshorewind_otrg3_mid_fixed_1_176_77_1,offshore_wind,1,48,2,0,1,0,0,0.0,1,1,1.0,0,477.5,247542,91549,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,8,0.024,20,20,0,0,0,0
+NENG_ME,1,NENG_ME_landbasedwind_ltrg1_mid_110_1,onshore_wind,1,54,3,0,1,0,0,0.0,1,1,1.0,0,20430.499,233173,41460,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,6,0.024,20,20,0,0,0,0
+NENG_ME,1,NENG_ME_utilitypv_losangeles_mid_100_0_2_1,solar,1,55,3,0,1,0,0,0.0,1,1,1.0,0,21535.709,98706,13055,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0,7,0.017,20,20,0,0,0,0
diff --git a/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/.~lock.Fuels_data_clustered.csv# b/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/.~lock.Fuels_data_clustered.csv#
deleted file mode 100755
index fd489000cd..0000000000
--- a/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/.~lock.Fuels_data_clustered.csv#
+++ /dev/null
@@ -1 +0,0 @@
-,samie,samie-Inspiron-5737,08.04.2021 07:19,file:///home/samie/.config/libreoffice/4;
\ No newline at end of file
diff --git a/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/Generators_data.csv b/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/Generators_data.csv
deleted file mode 100644
index 33ebb463a5..0000000000
--- a/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/Generators_data.csv
+++ /dev/null
@@ -1,59 +0,0 @@
-region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,THERM,Commit,STOR,HYDRO,FLEX,MUST_RUN,VRE,LDS,Num_VRE_Bins,CapRes_1,ESR_1,ESR_2,Min_Share,Max_Share,Existing_Cap_MW,Existing_Charge_Cap_MW,Existing_Cap_MWh,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Min_Charge_Cap_MW,Max_Charge_Cap_MW,Min_Cap_MWh,Max_Cap_MWh,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Self_Disch,Eff_Up,Eff_Down,Hydro_Energy_to_Power_Ratio,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Ramp_Up_Percentage,Ramp_Dn_Percentage,Up_Time,Down_Time,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag_1,MinCapTag_2,MinCapTag_3
-NENGREST,1,NENGREST_biomass_1,other_renewables,0,1,1,1,1,0,0,0,0,0,0,0,0.93,1,1,0,0,106.062,0,0,0,0,3.21,0,0,0,-1,0,-1,0,122976,0,0,0,0,5.08,0,0,0,14.58,None,0.45,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENGREST,1,NENGREST_conventional_hydroelectric_1,other_renewables,0,2,1,0,0,0,1,0,0,0,0,0,0.8,0,1,0,0,662.983,0,0,0,0,11.24,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.116,0,1,1,1,0,0,0,0,1,0.083,0.083,0,0,0.006916667,0.013833333,0,0,0,0,0
-NENGREST,1,NENGREST_hydroelectric_pumped_storage_1,hydroelectric_pumped_storage,0,3,1,0,0,1,0,0,0,0,0,0,0.95,0,0,0,0,1768.002,0,280635.2381,0,0,294.67,0,0,0,-1,0,-1,0,40113,0,0,0,0,0,0,0,0,0,None,0.532,0,0.866,0.866,158.730159,0,200,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENGREST,1,NENGREST_natural_gas_fired_combined_cycle_1,natural_gas,1,4,1,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,7077.3,0,0,0,1,471.82,0,0,0,-1,0,-1,0,10287,0,0,0,0,3.55,0,91,2,7.43,NENGREST_NG,0.468,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENGREST,2,NENGREST_natural_gas_fired_combined_cycle_2,natural_gas,1,5,1,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,2684.803,0,0,0,1,244.07,0,0,0,-1,0,-1,0,16291,0,0,0,0,4.5,0,91,2,8.29,NENGREST_NG,0.507,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENGREST,1,NENGREST_natural_gas_fired_combustion_turbine_1,natural_gas,1,6,1,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,302.701,0,0,0,1,43.24,0,0,0,-1,0,-1,0,12080,0,0,0,0,4.6,0,118,3.5,10.13,NENGREST_NG,0.456,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0
-NENGREST,2,NENGREST_natural_gas_fired_combustion_turbine_2,natural_gas,1,7,1,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,62.704,0,0,0,1,7.84,0,0,0,-1,0,-1,0,13991,0,0,0,0,4.6,0,118,3.5,4.74,NENGREST_NG,0.488,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0
-NENGREST,1,NENGREST_natural_gas_steam_turbine_1,natural_gas,1,8,1,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0.6,0,0,0,1,0.6,0,0,0,-1,0,-1,0,50678,0,0,0,0,1.04,0,86,13.7,0,NENGREST_NG,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0
-NENGREST,1,NENGREST_nuclear_1,nuclear,1,9,1,1,1,0,0,0,0,0,0,0,0.93,0,1,0,0,1242,0,0,0,1,1242,0,0,0,-1,0,-1,0,271818,0,0,0,0,2.32,0,245,0,10.46,new_england_uranium,0.5,0,1,1,1,0,0,0,0,1,0.25,0.25,24,24,0.020833333,0.041666667,0,0,0,0,0
-NENGREST,1,NENGREST_offshore_wind_turbine_1,offshore_wind,1,10,1,0,0,0,0,0,0,1,0,1,0.8,1,1,0,0,30,0,0,0,1,30,0,0,0,-1,0,-1,0,128440,0,0,0,0,0,0,0,0,9.12,None,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0
-NENGREST,1,NENGREST_onshore_wind_turbine_1,onshore_wind,1,11,1,0,0,0,0,0,0,1,0,1,0.8,1,1,0,0,145.8,0,0,0,1,9.75,0,0,0,-1,0,-1,0,43205,0,0,0,0,-18,0,0,0,9.12,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,1,0,0
-NENGREST,1,NENGREST_small_hydroelectric_1,other_renewables,0,12,1,0,0,0,0,0,1,0,0,0,0,1,1,0,0,186.355,0,0,0,0,0.79,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.116,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0
-NENGREST,1,NENGREST_solar_photovoltaic_1,solar,1,13,1,0,0,0,0,0,0,1,0,1,0.8,1,1,0,0,821.4,0,0,0,1,2.6,0,0,0,-1,0,-1,0,18760,0,0,0,0,0,0,0,0,9.13,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,1
-NENG_CT,1,NENG_CT_biomass_1,other_renewables,0,14,2,1,1,0,0,0,0,0,0,0,0.93,1,1,0,0,27.248,0,0,0,0,3.41,0,0,0,-1,0,-1,0,122976,0,0,0,0,5.37,0,0,0,15.33,None,0.348,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_CT,1,NENG_CT_conventional_hydroelectric_1,other_renewables,0,15,2,0,0,0,1,0,0,0,0,0,0.8,0,1,0,0,67.7,0,0,0,0,13.54,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.18,0,1,1,1,0,0,0,0,1,0.083,0.083,0,0,0.006916667,0.013833333,0,0,0,0,0
-NENG_CT,1,NENG_CT_hydroelectric_pumped_storage_1,hydroelectric_pumped_storage,0,16,2,0,0,1,0,0,0,0,0,0,0.95,0,0,0,0,30.999,0,4920.47619,0,0,10.33,0,0,0,-1,0,-1,0,40113,0,0,0,0,0,0,0,0,0,None,0.871,0,0.866,0.866,158.730159,0,200,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_CT,1,NENG_CT_natural_gas_fired_combined_cycle_1,natural_gas,1,17,2,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,3488.704,0,0,0,1,436.09,0,0,0,-1,0,-1,0,9698,0,0,0,0,3.57,0,91,2,7.12,NENG_CT_NG,0.338,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_CT,2,NENG_CT_natural_gas_fired_combined_cycle_2,natural_gas,1,18,2,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,35.2,0,0,0,1,17.6,0,0,0,-1,0,-1,0,16291,0,0,0,0,4.5,0,91,2,10.77,NENG_CT_NG,0.466,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_CT,1,NENG_CT_natural_gas_fired_combustion_turbine_1,natural_gas,1,19,2,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,434,0,0,0,1,54.25,0,0,0,-1,0,-1,0,10609,0,0,0,0,4.6,0,118,3.5,11.06,NENG_CT_NG,0.124,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0
-NENG_CT,2,NENG_CT_natural_gas_fired_combustion_turbine_2,natural_gas,1,20,2,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,124.9,0,0,0,1,24.98,0,0,0,-1,0,-1,0,13991,0,0,0,0,4.6,0,118,3.5,8.35,NENG_CT_NG,0.476,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0
-NENG_CT,1,NENG_CT_nuclear_1,nuclear,1,21,2,1,1,0,0,0,0,0,0,0,0.93,0,1,0,0,2162.9,0,0,0,1,1081.45,0,0,0,-1,0,-1,0,190920,0,0,0,0,2.32,0,245,0,10.46,new_england_uranium,0.5,0,1,1,1,0,0,0,0,1,0.25,0.25,24,24,0.020833333,0.041666667,0,0,0,0,0
-NENG_CT,1,NENG_CT_onshore_wind_turbine_1,onshore_wind,1,22,2,0,0,0,0,0,0,1,0,1,0.8,1,1,0,0,6.5,0,0,0,1,5,0,0,0,-1,0,-1,0,43205,0,0,0,0,-18,0,0,0,9.12,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_CT,1,NENG_CT_small_hydroelectric_1,other_renewables,0,23,2,0,0,0,0,0,1,0,0,0,0,1,1,0,0,18.711,0,0,0,0,0.57,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.18,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0
-NENG_CT,1,NENG_CT_solar_photovoltaic_1,solar,1,24,2,0,0,0,0,0,0,1,0,1,0.8,1,1,0,0,374.6,0,0,0,1,5.67,0,0,0,-1,0,-1,0,18760,0,0,0,0,0,0,0,0,9.16,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_ME,1,NENG_ME_biomass_1,other_renewables,0,25,3,1,1,0,0,0,0,0,0,0,0.93,1,1,0,0,24.95,0,0,0,0,2.5,0,0,0,-1,0,-1,0,122976,0,0,0,0,4.85,0,0,0,13.84,None,0.404,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_ME,1,NENG_ME_conventional_hydroelectric_1,other_renewables,0,26,3,0,0,0,1,0,0,0,0,0,0.8,0,1,0,0,327.81,0,0,0,0,7.8,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.402,0,1,1,1,0,0,0,0,1,0.083,0.083,0,0,0.006916667,0.013833333,0,0,0,0,0
-NENG_ME,1,NENG_ME_natural_gas_fired_combined_cycle_1,natural_gas,1,27,3,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,274.5,0,0,0,1,137.25,0,0,0,-1,0,-1,0,16291,0,0,0,0,4.5,0,91,2,12.62,NENG_ME_NG,0.474,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_ME,2,NENG_ME_natural_gas_fired_combined_cycle_2,natural_gas,1,28,3,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,1114.1,0,0,0,1,557.05,0,0,0,-1,0,-1,0,9668,0,0,0,0,3.57,0,91,2,7.65,NENG_ME_NG,0.386,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_ME,1,NENG_ME_natural_gas_fired_combustion_turbine_1,natural_gas,1,29,3,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,163.5,0,0,0,1,54.5,0,0,0,-1,0,-1,0,11540,0,0,0,0,4.6,0,118,3.5,4.75,NENG_ME_NG,0.697,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0
-NENG_ME,1,NENG_ME_onshore_wind_turbine_1,onshore_wind,1,30,3,0,0,0,0,0,0,1,0,1,0.8,1,1,0,0,1190.9,0,0,0,1,48.5,0,0,0,-1,0,-1,0,43205,0,0,0,0,-18,0,0,0,9.12,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,1,0,0
-NENG_ME,1,NENG_ME_small_hydroelectric_1,other_renewables,0,31,3,0,0,0,0,0,1,0,0,0,0,1,1,0,0,195.266,0,0,0,0,1.1,0,0,0,-1,0,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.192,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0
-NENG_ME,1,NENG_ME_solar_photovoltaic_1,solar,1,32,3,0,0,0,0,0,0,1,0,1,0.8,1,1,0,0,11.8,0,0,0,1,1.5,0,0,0,-1,0,-1,0,18760,0,0,0,0,0,0,0,0,9.12,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENGREST,0,NENGREST_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,33,1,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,229388,27483,0,0,0,0,5.82,0,103,0,7.52,NENGREST_NG_ccs90,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENGREST,0,NENGREST_naturalgas_ccavgcf_mid_0,natural_gas,1,34,1,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,500,0,-1,0,-1,0,-1,110025,12441,0,0,0,0,1.61,0,103,2,6.27,NENGREST_NG,0.2,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENGREST,0,NENGREST_naturalgas_ctavgcf_mid_0,natural_gas,1,35,1,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,100,0,-1,0,-1,0,-1,81998,6960,0,0,0,0,4.49,0,134,3.5,9.9,NENGREST_NG,0.3,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0
-NENGREST,0,NENGREST_battery_mid_0,battery_mid,0,36,1,0,0,1,0,0,0,0,0,0,0.95,0,0,0,0,0,0,0,1,1,1,0,-1,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0,0,None,0,0,0.92,0.92,1,1,10,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENGREST,0,NENGREST_naturalgas_ccs100_mid_0,natural_gas_CCS,1,37,1,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,239841,37153,0,0,0,0,6.26,0,103,0,7.89,NENGREST_NG_ccs100,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENGREST,1,NENGREST_landbasedwind_ltrg1_mid_130_1,onshore_wind,1,38,1,0,0,0,0,0,0,1,0,1,0.8,1,1,0,0,0,0,0,1,1,1,0,4888.236,0,-1,0,-1,194100,41460,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,1,0,0
-NENGREST,1,NENGREST_utilitypv_losangeles_mid_80_0_2_1,solar,1,39,1,0,0,0,0,0,0,1,0,1,0.8,1,1,0,0,0,0,0,1,1,1,0,20835.569,0,-1,0,-1,99283,13055,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,1
-NENGREST,1,NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,offshore_wind,1,40,1,0,0,0,0,0,0,1,0,1,0.8,1,1,0,0,0,0,0,1,1,1,0,9848.442,0,-1,0,-1,260044,91549,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,1,1,0
-NENG_CT,0,NENG_CT_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,41,2,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,229388,27483,0,0,0,0,5.82,0,103,0,7.52,NENG_CT_NG_ccs90,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_CT,0,NENG_CT_naturalgas_ccavgcf_mid_0,natural_gas,1,42,2,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,500,0,-1,0,-1,0,-1,110025,12441,0,0,0,0,1.61,0,103,2,6.27,NENG_CT_NG,0.2,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_CT,0,NENG_CT_naturalgas_ctavgcf_mid_0,natural_gas,1,43,2,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,100,0,-1,0,-1,0,-1,81998,6960,0,0,0,0,4.49,0,134,3.5,9.9,NENG_CT_NG,0.3,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0
-NENG_CT,0,NENG_CT_battery_mid_0,battery_mid,0,44,2,0,0,1,0,0,0,0,0,0,0.95,0,0,0,0,0,0,0,1,1,1,0,-1,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0,0,None,0,0,0.92,0.92,1,1,10,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_CT,0,NENG_CT_naturalgas_ccs100_mid_0,natural_gas_CCS,1,45,2,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,239841,37153,0,0,0,0,6.26,0,103,0,7.89,NENG_CT_NG_ccs100,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_CT,1,NENG_CT_landbasedwind_ltrg1_mid_110_1,onshore_wind,1,46,2,0,0,0,0,0,0,1,0,1,0.8,1,1,0,0,0,0,0,1,1,1,0,1982.895,0,-1,0,-1,185181,41460,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_CT,1,NENG_CT_utilitypv_losangeles_mid_80_0_2_1,solar,1,47,2,0,0,0,0,0,0,1,0,1,0.8,1,1,0,0,0,0,0,1,1,1,0,17063.264,0,-1,0,-1,98631,13055,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_CT,1,NENG_CT_offshorewind_otrg3_mid_fixed_1_176_77_1,offshore_wind,1,48,2,0,0,0,0,0,0,1,0,1,0.8,1,1,0,0,0,0,0,1,1,1,0,477.5,0,-1,0,-1,247542,91549,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_ME,0,NENG_ME_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,49,3,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,229388,27483,0,0,0,0,5.82,0,103,0,7.52,NENG_ME_NG_ccs90,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_ME,0,NENG_ME_naturalgas_ccavgcf_mid_0,natural_gas,1,50,3,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,500,0,-1,0,-1,0,-1,110025,12441,0,0,0,0,1.61,0,103,2,6.27,NENG_ME_NG,0.2,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_ME,0,NENG_ME_naturalgas_ctavgcf_mid_0,natural_gas,1,51,3,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,100,0,-1,0,-1,0,-1,81998,6960,0,0,0,0,4.49,0,134,3.5,9.9,NENG_ME_NG,0.3,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0
-NENG_ME,0,NENG_ME_battery_mid_0,battery_mid,0,52,3,0,0,1,0,0,0,0,0,0,0.95,0,0,0,0,0,0,0,1,1,1,0,-1,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0,0,None,0,0,0.92,0.92,1,1,10,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENG_ME,0,NENG_ME_naturalgas_ccs100_mid_0,natural_gas_CCS,1,53,3,1,1,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,0,1,500,0,-1,0,-1,0,-1,239841,37153,0,0,0,0,6.26,0,103,0,7.89,NENG_ME_NG_ccs100,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0
-NENG_ME,1,NENG_ME_landbasedwind_ltrg1_mid_110_1,onshore_wind,1,54,3,0,0,0,0,0,0,1,0,1,0.8,1,1,0,0,0,0,0,1,1,1,0,20430.499,0,-1,0,-1,233173,41460,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,1,0,0
-NENG_ME,1,NENG_ME_utilitypv_losangeles_mid_100_0_2_1,solar,1,55,3,0,0,0,0,0,0,1,0,1,0.8,1,1,0,0,0,0,0,1,1,1,0,21535.709,0,-1,0,-1,98706,13055,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0
-NENGREST,1,NENGREST_heat_load_shifting_1,heat_load_shifting,0,56,1,0,0,0,0,1,0,0,0,0,0.95,0,0,0,0,165.52,0,0,0,0,0,0,0,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,4,1,0,0,0,0,0,0,0,0,0,0,0
-NENG_CT,1,NENG_CT_heat_load_shifting_1,heat_load_shifting,0,57,2,0,0,0,0,1,0,0,0,0,0.95,0,0,0,0,47.27,0,0,0,0,0,0,0,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,4,1,0,0,0,0,0,0,0,0,0,0,0
-NENG_ME,1,NENG_ME_heat_load_shifting_1,heat_load_shifting,0,58,3,0,0,0,0,1,0,0,0,0,0.95,0,0,0,0,22.56,0,0,0,0,0,0,0,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,4,1,0,0,0,0,0,0,0,0,0,0,0
diff --git a/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/Resources/Flex_demand.csv b/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/Resources/Flex_demand.csv
new file mode 100644
index 0000000000..4688819b38
--- /dev/null
+++ b/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/Resources/Flex_demand.csv
@@ -0,0 +1,4 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Commit,LDS,Min_Share,Max_Share,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost
+NENGREST,1,NENGREST_heat_load_shifting_1,heat_load_shifting,0,56,1,0,0,0,0,165.52,0,0,0.0,0,0.0,0,0,0.0,0,0.0,0.0,None,0.0,0.0,0,4,1,0.0,0.0,0.0,0.0,0,0
+NENG_CT,1,NENG_CT_heat_load_shifting_1,heat_load_shifting,0,57,2,0,0,0,0,47.27,0,0,0.0,0,0.0,0,0,0.0,0,0.0,0.0,None,0.0,0.0,0,4,1,0.0,0.0,0.0,0.0,0,0
+NENG_ME,1,NENG_ME_heat_load_shifting_1,heat_load_shifting,0,58,3,0,0,0,0,22.56,0,0,0.0,0,0.0,0,0,0.0,0,0.0,0.0,None,0.0,0.0,0,4,1,0.0,0.0,0.0,0.0,0,0
diff --git a/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/Resources/Hydro.csv b/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/Resources/Hydro.csv
new file mode 100644
index 0000000000..9a5ee8f6c5
--- /dev/null
+++ b/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/Resources/Hydro.csv
@@ -0,0 +1,4 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Commit,LDS,Min_Share,Max_Share,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost
+NENGREST,1,NENGREST_conventional_hydroelectric_1,other_renewables,0,2,1,0,0,0,0,662.983,0,0,11.24,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.116,1.0,0.083,0.083,0.006916667,0.013833333,0,0
+NENG_CT,1,NENG_CT_conventional_hydroelectric_1,other_renewables,0,15,2,0,0,0,0,67.7,0,0,13.54,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.18,1.0,0.083,0.083,0.006916667,0.013833333,0,0
+NENG_ME,1,NENG_ME_conventional_hydroelectric_1,other_renewables,0,26,3,0,0,0,0,327.81,0,0,7.8,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.402,1.0,0.083,0.083,0.006916667,0.013833333,0,0
diff --git a/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/Resources/Must_run.csv b/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/Resources/Must_run.csv
new file mode 100644
index 0000000000..4b21dc5d08
--- /dev/null
+++ b/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/Resources/Must_run.csv
@@ -0,0 +1,4 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Commit,LDS,Min_Share,Max_Share,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost
+NENGREST,1,NENGREST_small_hydroelectric_1,other_renewables,0,12,1,0,0,0,0,186.355,0,0,0.79,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.116,1.0,1.0,1.0,0.0,0.0,0,0
+NENG_CT,1,NENG_CT_small_hydroelectric_1,other_renewables,0,23,2,0,0,0,0,18.711,0,0,0.57,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.18,1.0,1.0,1.0,0.0,0.0,0,0
+NENG_ME,1,NENG_ME_small_hydroelectric_1,other_renewables,0,31,3,0,0,0,0,195.266,0,0,1.1,0,0.0,0,46475,0.0,0,0.0,9.12,None,0.192,1.0,1.0,1.0,0.0,0.0,0,0
diff --git a/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/Resources/Resource_capacity_reserve_margin.csv b/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/Resources/Resource_capacity_reserve_margin.csv
new file mode 100644
index 0000000000..4512c70f6a
--- /dev/null
+++ b/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/Resources/Resource_capacity_reserve_margin.csv
@@ -0,0 +1,59 @@
+Resource,Derating_Factor_1
+NENGREST_biomass_1,0.93
+NENGREST_conventional_hydroelectric_1,0.8
+NENGREST_hydroelectric_pumped_storage_1,0.95
+NENGREST_natural_gas_fired_combined_cycle_1,0.93
+NENGREST_natural_gas_fired_combined_cycle_2,0.93
+NENGREST_natural_gas_fired_combustion_turbine_1,0.93
+NENGREST_natural_gas_fired_combustion_turbine_2,0.93
+NENGREST_natural_gas_steam_turbine_1,0.93
+NENGREST_nuclear_1,0.93
+NENGREST_offshore_wind_turbine_1,0.8
+NENGREST_onshore_wind_turbine_1,0.8
+NENGREST_small_hydroelectric_1,0
+NENGREST_solar_photovoltaic_1,0.8
+NENG_CT_biomass_1,0.93
+NENG_CT_conventional_hydroelectric_1,0.8
+NENG_CT_hydroelectric_pumped_storage_1,0.95
+NENG_CT_natural_gas_fired_combined_cycle_1,0.93
+NENG_CT_natural_gas_fired_combined_cycle_2,0.93
+NENG_CT_natural_gas_fired_combustion_turbine_1,0.93
+NENG_CT_natural_gas_fired_combustion_turbine_2,0.93
+NENG_CT_nuclear_1,0.93
+NENG_CT_onshore_wind_turbine_1,0.8
+NENG_CT_small_hydroelectric_1,0
+NENG_CT_solar_photovoltaic_1,0.8
+NENG_ME_biomass_1,0.93
+NENG_ME_conventional_hydroelectric_1,0.8
+NENG_ME_natural_gas_fired_combined_cycle_1,0.93
+NENG_ME_natural_gas_fired_combined_cycle_2,0.93
+NENG_ME_natural_gas_fired_combustion_turbine_1,0.93
+NENG_ME_onshore_wind_turbine_1,0.8
+NENG_ME_small_hydroelectric_1,0
+NENG_ME_solar_photovoltaic_1,0.8
+NENGREST_naturalgas_ccccsavgcf_mid_0,0.93
+NENGREST_naturalgas_ccavgcf_mid_0,0.93
+NENGREST_naturalgas_ctavgcf_mid_0,0.93
+NENGREST_battery_mid_0,0.95
+NENGREST_naturalgas_ccs100_mid_0,0.93
+NENGREST_landbasedwind_ltrg1_mid_130_1,0.8
+NENGREST_utilitypv_losangeles_mid_80_0_2_1,0.8
+NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,0.8
+NENG_CT_naturalgas_ccccsavgcf_mid_0,0.93
+NENG_CT_naturalgas_ccavgcf_mid_0,0.93
+NENG_CT_naturalgas_ctavgcf_mid_0,0.93
+NENG_CT_battery_mid_0,0.95
+NENG_CT_naturalgas_ccs100_mid_0,0.93
+NENG_CT_landbasedwind_ltrg1_mid_110_1,0.8
+NENG_CT_utilitypv_losangeles_mid_80_0_2_1,0.8
+NENG_CT_offshorewind_otrg3_mid_fixed_1_176_77_1,0.8
+NENG_ME_naturalgas_ccccsavgcf_mid_0,0.93
+NENG_ME_naturalgas_ccavgcf_mid_0,0.93
+NENG_ME_naturalgas_ctavgcf_mid_0,0.93
+NENG_ME_battery_mid_0,0.95
+NENG_ME_naturalgas_ccs100_mid_0,0.93
+NENG_ME_landbasedwind_ltrg1_mid_110_1,0.8
+NENG_ME_utilitypv_losangeles_mid_100_0_2_1,0.8
+NENGREST_heat_load_shifting_1,0.95
+NENG_CT_heat_load_shifting_1,0.95
+NENG_ME_heat_load_shifting_1,0.95
\ No newline at end of file
diff --git a/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/Resources/Resource_energy_share_requirement.csv b/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/Resources/Resource_energy_share_requirement.csv
new file mode 100644
index 0000000000..44e4d35879
--- /dev/null
+++ b/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/Resources/Resource_energy_share_requirement.csv
@@ -0,0 +1,27 @@
+Resource,ESR_1,ESR_2
+NENGREST_conventional_hydroelectric_1,0,1
+NENGREST_nuclear_1,0,1
+NENG_CT_conventional_hydroelectric_1,0,1
+NENG_CT_nuclear_1,0,1
+NENG_ME_conventional_hydroelectric_1,0,1
+NENGREST_biomass_1,1,1
+NENGREST_offshore_wind_turbine_1,1,1
+NENGREST_onshore_wind_turbine_1,1,1
+NENGREST_small_hydroelectric_1,1,1
+NENGREST_solar_photovoltaic_1,1,1
+NENG_CT_biomass_1,1,1
+NENG_CT_onshore_wind_turbine_1,1,1
+NENG_CT_small_hydroelectric_1,1,1
+NENG_CT_solar_photovoltaic_1,1,1
+NENG_ME_biomass_1,1,1
+NENG_ME_onshore_wind_turbine_1,1,1
+NENG_ME_small_hydroelectric_1,1,1
+NENG_ME_solar_photovoltaic_1,1,1
+NENGREST_landbasedwind_ltrg1_mid_130_1,1,1
+NENGREST_utilitypv_losangeles_mid_80_0_2_1,1,1
+NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,1,1
+NENG_CT_landbasedwind_ltrg1_mid_110_1,1,1
+NENG_CT_utilitypv_losangeles_mid_80_0_2_1,1,1
+NENG_CT_offshorewind_otrg3_mid_fixed_1_176_77_1,1,1
+NENG_ME_landbasedwind_ltrg1_mid_110_1,1,1
+NENG_ME_utilitypv_losangeles_mid_100_0_2_1,1,1
\ No newline at end of file
diff --git a/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/Resources/Resource_minimum_capacity_requirement.csv b/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/Resources/Resource_minimum_capacity_requirement.csv
new file mode 100644
index 0000000000..058075909a
--- /dev/null
+++ b/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/Resources/Resource_minimum_capacity_requirement.csv
@@ -0,0 +1,9 @@
+Resource,Min_Cap_1,Min_Cap_2,Min_Cap_3
+NENGREST_onshore_wind_turbine_1,1,0,0
+NENG_ME_onshore_wind_turbine_1,1,0,0
+NENGREST_landbasedwind_ltrg1_mid_130_1,1,0,0
+NENG_ME_landbasedwind_ltrg1_mid_110_1,1,0,0
+NENGREST_offshore_wind_turbine_1,1,1,0
+NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,1,1,0
+NENGREST_solar_photovoltaic_1,0,0,1
+NENGREST_utilitypv_losangeles_mid_80_0_2_1,0,0,1
\ No newline at end of file
diff --git a/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/Resources/Storage.csv b/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/Resources/Storage.csv
new file mode 100644
index 0000000000..83574879d2
--- /dev/null
+++ b/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/Resources/Storage.csv
@@ -0,0 +1,6 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Commit,Model,LDS,Min_Share,Max_Share,Existing_Cap_MW,Existing_Charge_Cap_MW,Existing_Cap_MWh,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Min_Charge_Cap_MW,Max_Charge_Cap_MW,Min_Cap_MWh,Max_Cap_MWh,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Self_Disch,Eff_Up,Eff_Down,Hydro_Energy_to_Power_Ratio,Min_Duration,Max_Duration,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost
+NENGREST,1,NENGREST_hydroelectric_pumped_storage_1,hydroelectric_pumped_storage,0,3,1,0,1,0,0,0,1768.002,0,280635.2381,0,0,294.67,0,0.0,0,-1,0,-1,0,40113,0,0,0,0,0.0,0.0,0,0.0,0.0,None,0.532,0,0.866,0.866,158.730159,0,200,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_CT,1,NENG_CT_hydroelectric_pumped_storage_1,hydroelectric_pumped_storage,0,16,2,0,1,0,0,0,30.999,0,4920.47619,0,0,10.33,0,0.0,0,-1,0,-1,0,40113,0,0,0,0,0.0,0.0,0,0.0,0.0,None,0.871,0,0.866,0.866,158.730159,0,200,1.0,1.0,0.083333333,0.166666667,0,0
+NENGREST,0,NENGREST_battery_mid_0,battery_mid,0,36,1,0,1,0,0,0,0.0,0,0.0,1,1,1.0,0,-1.0,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0.0,0.0,None,0.0,0,0.92,0.92,1.0,1,10,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_CT,0,NENG_CT_battery_mid_0,battery_mid,0,44,2,0,1,0,0,0,0.0,0,0.0,1,1,1.0,0,-1.0,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0.0,0.0,None,0.0,0,0.92,0.92,1.0,1,10,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_ME,0,NENG_ME_battery_mid_0,battery_mid,0,52,3,0,1,0,0,0,0.0,0,0.0,1,1,1.0,0,-1.0,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0.0,0.0,None,0.0,0,0.92,0.92,1.0,1,10,1.0,1.0,0.083333333,0.166666667,0,0
diff --git a/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/Resources/Thermal.csv b/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/Resources/Thermal.csv
new file mode 100644
index 0000000000..6a63efd8e0
--- /dev/null
+++ b/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/Resources/Thermal.csv
@@ -0,0 +1,30 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Model,Commit,LDS,Min_Share,Max_Share,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Ramp_Up_Percentage,Ramp_Dn_Percentage,Up_Time,Down_Time,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost
+NENGREST,1,NENGREST_biomass_1,other_renewables,0,1,1,1,1,0,0,0,106.062,0,0,3.21,0,0.0,0,122976,5.08,0,0.0,14.58,None,0.45,1.0,1.0,1.0,0,0,0.083333333,0.166666667,0,0
+NENGREST,1,NENGREST_natural_gas_fired_combined_cycle_1,natural_gas,1,4,1,1,1,0,0,0,7077.3,0,1,471.82,0,0.0,0,10287,3.55,91,2.0,7.43,NENGREST_NG,0.468,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENGREST,2,NENGREST_natural_gas_fired_combined_cycle_2,natural_gas,1,5,1,1,1,0,0,0,2684.803,0,1,244.07,0,0.0,0,16291,4.5,91,2.0,8.29,NENGREST_NG,0.507,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENGREST,1,NENGREST_natural_gas_fired_combustion_turbine_1,natural_gas,1,6,1,1,1,0,0,0,302.701,0,1,43.24,0,0.0,0,12080,4.6,118,3.5,10.13,NENGREST_NG,0.456,1.0,3.78,3.78,1,1,0.315,0.63,0,0
+NENGREST,2,NENGREST_natural_gas_fired_combustion_turbine_2,natural_gas,1,7,1,1,1,0,0,0,62.704,0,1,7.84,0,0.0,0,13991,4.6,118,3.5,4.74,NENGREST_NG,0.488,1.0,3.78,3.78,1,1,0.315,0.63,0,0
+NENGREST,1,NENGREST_natural_gas_steam_turbine_1,natural_gas,1,8,1,1,1,0,0,0,0.6,0,1,0.6,0,0.0,0,50678,1.04,86,13.7,0.0,NENGREST_NG,0.0,0.0,0.0,0.0,0,0,0.0,0.0,0,0
+NENGREST,1,NENGREST_nuclear_1,nuclear,1,9,1,1,1,0,0,0,1242.0,0,1,1242.0,0,0.0,0,271818,2.32,245,0.0,10.46,new_england_uranium,0.5,1.0,0.25,0.25,24,24,0.020833333,0.041666667,0,0
+NENG_CT,1,NENG_CT_biomass_1,other_renewables,0,14,2,1,1,0,0,0,27.248,0,0,3.41,0,0.0,0,122976,5.37,0,0.0,15.33,None,0.348,1.0,1.0,1.0,0,0,0.083333333,0.166666667,0,0
+NENG_CT,1,NENG_CT_natural_gas_fired_combined_cycle_1,natural_gas,1,17,2,1,1,0,0,0,3488.704,0,1,436.09,0,0.0,0,9698,3.57,91,2.0,7.12,NENG_CT_NG,0.338,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_CT,2,NENG_CT_natural_gas_fired_combined_cycle_2,natural_gas,1,18,2,1,1,0,0,0,35.2,0,1,17.6,0,0.0,0,16291,4.5,91,2.0,10.77,NENG_CT_NG,0.466,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_CT,1,NENG_CT_natural_gas_fired_combustion_turbine_1,natural_gas,1,19,2,1,1,0,0,0,434.0,0,1,54.25,0,0.0,0,10609,4.6,118,3.5,11.06,NENG_CT_NG,0.124,1.0,3.78,3.78,1,1,0.315,0.63,0,0
+NENG_CT,2,NENG_CT_natural_gas_fired_combustion_turbine_2,natural_gas,1,20,2,1,1,0,0,0,124.9,0,1,24.98,0,0.0,0,13991,4.6,118,3.5,8.35,NENG_CT_NG,0.476,1.0,3.78,3.78,1,1,0.315,0.63,0,0
+NENG_CT,1,NENG_CT_nuclear_1,nuclear,1,21,2,1,1,0,0,0,2162.9,0,1,1081.45,0,0.0,0,190920,2.32,245,0.0,10.46,new_england_uranium,0.5,1.0,0.25,0.25,24,24,0.020833333,0.041666667,0,0
+NENG_ME,1,NENG_ME_biomass_1,other_renewables,0,25,3,1,1,0,0,0,24.95,0,0,2.5,0,0.0,0,122976,4.85,0,0.0,13.84,None,0.404,1.0,1.0,1.0,0,0,0.083333333,0.166666667,0,0
+NENG_ME,1,NENG_ME_natural_gas_fired_combined_cycle_1,natural_gas,1,27,3,1,1,0,0,0,274.5,0,1,137.25,0,0.0,0,16291,4.5,91,2.0,12.62,NENG_ME_NG,0.474,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_ME,2,NENG_ME_natural_gas_fired_combined_cycle_2,natural_gas,1,28,3,1,1,0,0,0,1114.1,0,1,557.05,0,0.0,0,9668,3.57,91,2.0,7.65,NENG_ME_NG,0.386,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_ME,1,NENG_ME_natural_gas_fired_combustion_turbine_1,natural_gas,1,29,3,1,1,0,0,0,163.5,0,1,54.5,0,0.0,0,11540,4.6,118,3.5,4.75,NENG_ME_NG,0.697,1.0,3.78,3.78,1,1,0.315,0.63,0,0
+NENGREST,0,NENGREST_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,33,1,1,1,0,0,0,0.0,0,1,500.0,0,-1.0,229388,27483,5.82,103,0.0,7.52,NENGREST_NG_ccs90,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENGREST,0,NENGREST_naturalgas_ccavgcf_mid_0,natural_gas,1,34,1,1,1,0,0,0,0.0,1,1,500.0,0,-1.0,110025,12441,1.61,103,2.0,6.27,NENGREST_NG,0.2,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENGREST,0,NENGREST_naturalgas_ctavgcf_mid_0,natural_gas,1,35,1,1,1,0,0,0,0.0,1,1,100.0,0,-1.0,81998,6960,4.49,134,3.5,9.9,NENGREST_NG,0.3,1.0,3.78,3.78,1,1,0.315,0.63,0,0
+NENGREST,0,NENGREST_naturalgas_ccs100_mid_0,natural_gas_CCS,1,37,1,1,1,0,0,0,0.0,0,1,500.0,0,-1.0,239841,37153,6.26,103,0.0,7.89,NENGREST_NG_ccs100,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_CT,0,NENG_CT_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,41,2,1,1,0,0,0,0.0,0,1,500.0,0,-1.0,229388,27483,5.82,103,0.0,7.52,NENG_CT_NG_ccs90,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_CT,0,NENG_CT_naturalgas_ccavgcf_mid_0,natural_gas,1,42,2,1,1,0,0,0,0.0,1,1,500.0,0,-1.0,110025,12441,1.61,103,2.0,6.27,NENG_CT_NG,0.2,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_CT,0,NENG_CT_naturalgas_ctavgcf_mid_0,natural_gas,1,43,2,1,1,0,0,0,0.0,1,1,100.0,0,-1.0,81998,6960,4.49,134,3.5,9.9,NENG_CT_NG,0.3,1.0,3.78,3.78,1,1,0.315,0.63,0,0
+NENG_CT,0,NENG_CT_naturalgas_ccs100_mid_0,natural_gas_CCS,1,45,2,1,1,0,0,0,0.0,0,1,500.0,0,-1.0,239841,37153,6.26,103,0.0,7.89,NENG_CT_NG_ccs100,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_ME,0,NENG_ME_naturalgas_ccccsavgcf_mid_0,natural_gas_CCS,1,49,3,1,1,0,0,0,0.0,0,1,500.0,0,-1.0,229388,27483,5.82,103,0.0,7.52,NENG_ME_NG_ccs90,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_ME,0,NENG_ME_naturalgas_ccavgcf_mid_0,natural_gas,1,50,3,1,1,0,0,0,0.0,1,1,500.0,0,-1.0,110025,12441,1.61,103,2.0,6.27,NENG_ME_NG,0.2,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
+NENG_ME,0,NENG_ME_naturalgas_ctavgcf_mid_0,natural_gas,1,51,3,1,1,0,0,0,0.0,1,1,100.0,0,-1.0,81998,6960,4.49,134,3.5,9.9,NENG_ME_NG,0.3,1.0,3.78,3.78,1,1,0.315,0.63,0,0
+NENG_ME,0,NENG_ME_naturalgas_ccs100_mid_0,natural_gas_CCS,1,53,3,1,1,0,0,0,0.0,0,1,500.0,0,-1.0,239841,37153,6.26,103,0.0,7.89,NENG_ME_NG_ccs100,0.6,1.0,0.64,0.64,6,6,0.053333333,0.106666667,0,0
diff --git a/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/Resources/Vre.csv b/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/Resources/Vre.csv
new file mode 100644
index 0000000000..9e005490f1
--- /dev/null
+++ b/Example_Systems/RealSystemExample/MGA_ISONE_Trizone_FullTimeseries/Resources/Vre.csv
@@ -0,0 +1,16 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,Commit,LDS,Num_VRE_Bins,Min_Share,Max_Share,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Hydro_Energy_to_Power_Ratio,Ramp_Up_Percentage,Ramp_Dn_Percentage,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost
+NENGREST,1,NENGREST_offshore_wind_turbine_1,offshore_wind,1,10,1,0,0,1,0,0,30.0,0,1,30.0,0,0.0,0,128440,0.0,0,0.0,9.12,None,0.0,0.0,0.0,0.0,0.0,0.0,0,0
+NENGREST,1,NENGREST_onshore_wind_turbine_1,onshore_wind,1,11,1,0,0,1,0,0,145.8,0,1,9.75,0,0.0,0,43205,-18.0,0,0.0,9.12,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENGREST,1,NENGREST_solar_photovoltaic_1,solar,1,13,1,0,0,1,0,0,821.4,0,1,2.6,0,0.0,0,18760,0.0,0,0.0,9.13,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_CT,1,NENG_CT_onshore_wind_turbine_1,onshore_wind,1,22,2,0,0,1,0,0,6.5,0,1,5.0,0,0.0,0,43205,-18.0,0,0.0,9.12,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_CT,1,NENG_CT_solar_photovoltaic_1,solar,1,24,2,0,0,1,0,0,374.6,0,1,5.67,0,0.0,0,18760,0.0,0,0.0,9.16,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_ME,1,NENG_ME_onshore_wind_turbine_1,onshore_wind,1,30,3,0,0,1,0,0,1190.9,0,1,48.5,0,0.0,0,43205,-18.0,0,0.0,9.12,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_ME,1,NENG_ME_solar_photovoltaic_1,solar,1,32,3,0,0,1,0,0,11.8,0,1,1.5,0,0.0,0,18760,0.0,0,0.0,9.12,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENGREST,1,NENGREST_landbasedwind_ltrg1_mid_130_1,onshore_wind,1,38,1,0,0,1,0,0,0.0,1,1,1.0,0,4888.236,194100,41460,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENGREST,1,NENGREST_utilitypv_losangeles_mid_80_0_2_1,solar,1,39,1,0,0,1,0,0,0.0,1,1,1.0,0,20835.569,99283,13055,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENGREST,1,NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,offshore_wind,1,40,1,0,0,1,0,0,0.0,1,1,1.0,0,9848.442,260044,91549,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_CT,1,NENG_CT_landbasedwind_ltrg1_mid_110_1,onshore_wind,1,46,2,0,0,1,0,0,0.0,1,1,1.0,0,1982.895,185181,41460,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_CT,1,NENG_CT_utilitypv_losangeles_mid_80_0_2_1,solar,1,47,2,0,0,1,0,0,0.0,1,1,1.0,0,17063.264,98631,13055,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_CT,1,NENG_CT_offshorewind_otrg3_mid_fixed_1_176_77_1,offshore_wind,1,48,2,0,0,1,0,0,0.0,1,1,1.0,0,477.5,247542,91549,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_ME,1,NENG_ME_landbasedwind_ltrg1_mid_110_1,onshore_wind,1,54,3,0,0,1,0,0,0.0,1,1,1.0,0,20430.499,233173,41460,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
+NENG_ME,1,NENG_ME_utilitypv_losangeles_mid_100_0_2_1,solar,1,55,3,0,0,1,0,0,0.0,1,1,1.0,0,21535.709,98706,13055,0.0,0,0.0,0.0,None,0.0,1.0,1.0,1.0,0.083333333,0.166666667,0,0
diff --git a/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p1/Generators_data.csv b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p1/Generators_data.csv
deleted file mode 100644
index 8ac782893c..0000000000
--- a/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p1/Generators_data.csv
+++ /dev/null
@@ -1,18 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,Num_VRE_Bins,LDS,RETRO,Num_RETRO_Sources,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag_1,MinCapTag_2,MinCapTag_3,MGA,Resource_Type,CapRes_1,ESR_1,ESR_2,region,cluster,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,Retro1_Source,Retro1_Efficiency,Retro1_Inv_Cost_per_MWyr,Retro2_Source,Retro2_Efficiency,Retro2_Inv_Cost_per_MWyr
-NGCC_bf,1,1,0,0,0,0,0,0,0,0,0,0,1,3400,0,0,-1,-1,-1,0,0,0,40000,0,0,12000,0,0,3,0,7.3,ng,200,70,1,6,2,0.64,0.64,0,0.4,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,NGCC,0.93,0,0,MO,1,0.04,30,30,0,0,0,None,0,-1,None,0,-1
-NGCC_gf,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,40000,0,0,12000,0,0,3,0,7.3,ng,200,70,1,6,2,0.64,0.64,0,0.4,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,NGCC,0.93,0,0,MO,1,0.04,30,30,0,0,0,None,0,-1,None,0,-1
-NGCT_bf,1,1,0,0,0,0,0,0,0,0,0,0,1,8200,0,0,-1,-1,-1,0,0,0,30000,0,0,11000,0,0,4,0,14.3,ng,100,90,1,6,1,0.64,0.64,0,0.2,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,NGCT,0.93,0,0,MO,1,0.04,30,30,0,0,0,None,0,-1,None,0,-1
-NGCT_gf,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,30000,0,0,11000,0,0,4,0,14.3,ng,100,90,1,6,1,0.64,0.64,0,0.2,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,NGCT,0.93,0,0,MO,1,0.04,30,30,0,0,0,None,0,-1,None,0,-1
-NGST,1,1,0,0,0,0,0,0,0,0,0,0,1,1060,0,0,-1,-1,-1,0,0,0,0,0,0,11000,0,0,4,0,12.1,ng,500,90,1,6,1,0.64,0.64,0,0.2,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,NGST,0.93,0,0,MO,1,0.04,40,40,0,0,0,None,0,-1,None,0,-1
-Coal,1,1,0,0,0,0,0,0,0,0,0,0,1,14700,0,0,-1,-1,-1,0,0,0,0,0,0,30000,0,0,5,0,10.4,coal,500,150,10,6,6,0.64,0.64,0,0.4,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,Coal,0.93,0,0,MO,1,0.04,40,40,0,0,0,None,0,-1,None,0,-1
-Nuclear,1,1,1,0,0,0,0,0,0,0,0,0,1,2360,0,0,-1,-1,-1,0,0,0,0,0,0,100000,0,0,2,0,7.43,uranium,1000,0,0,0,0,0.64,0.64,0,0,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,Nuclear,0.93,0,0,MO,1,0.04,40,40,0,0,0,None,0,-1,None,0,-1
-Biomass,1,1,0,0,0,0,0,0,0,0,0,0,0,20,0,0,-1,-1,-1,0,0,0,0,0,0,100000,0,0,5,0,13,biomass,100,90,2,6,2,0.64,0.64,0,0.4,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,Biomass,0.93,0,0,MO,1,0.04,30,30,0,0,0,None,0,-1,None,0,-1
-SolarPV,1,0,0,0,0,0,1,1,0,0,0,1,1,40,0,0,-1,-1,-1,0,0,0,36000,0,0,10000,0,0,0,0,0,None,1,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,1,0,0,1,SolarPV,0.8,1,1,MO,1,0.04,20,20,0,0,0,None,0,-1,None,0,-1
-Wind,1,0,0,0,0,0,1,1,0,0,0,1,1,5720,0,0,-1,-1,-1,0,0,0,60000,0,0,40000,0,0,0.1,0,0,None,1,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,1,Wind,0.8,1,1,MO,1,0.04,20,20,0,0,0,None,0,-1,None,0,-1
-Hydro,1,0,0,0,0,1,0,0,0,0,0,0,0,480,0,0,-1,-1,-1,0,0,0,0,0,0,18000,0,0,0.1,0,0,None,1600,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,1,Hydro,0.8,1,1,MO,1,0.04,40,40,0,0,0,None,0,-1,None,0,-1
-PHS,1,0,0,1,0,0,0,0,1,0,0,0,1,480,0,0,-1,-1,-1,0,0,0,0,0,0,15000,5000,0,0.1,0.1,0,None,1,0,0,0,0,1,1,0,0,0,0.9,0.9,1,10,0,0,1,0,0,0,0,0,0,1,0,PHS,0.95,0,0,MO,0,0.04,40,40,0,0,0,None,0,-1,None,0,-1
-Li-ion,1,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,20000,25000,0,5000,6000,0,0.15,0.15,0,None,1,0,0,0,0,1,1,0,0,0,0.9,0.9,1,10,0,0,1,0,0,0,0,0,0,1,0,Li-ion,0.95,0,0,MO,0,0.04,20,20,0,0,0,None,0,-1,None,0,-1
-Retro_NGCC_CCS,1,1,0,0,0,0,0,0,0,1,2,1,1,0,0,0,-1,-1,-1,0,0,0,60000,0,0,16000,0,0,3,0,7.3,ng_ccs,200,70,1,6,2,0.64,0.64,0,0.4,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,NGCC_CCS,0.93,0,0,MO,1,0.04,20,20,0,0,0,NGCC_bf,0.85,60000,NGCC_gf,0.9,55000
-Retro_NGCC_H2,1,1,0,0,0,0,0,0,0,1,2,1,1,0,0,0,-1,-1,-1,0,0,0,40000,0,0,12000,0,0,3,0,7.3,h2,200,70,1,6,2,0.64,0.64,0,0.4,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,Hydrogen,0.93,0,0,MO,1,0.04,20,20,0,0,0,NGCC_bf,0.85,40000,NGCC_gf,0.9,35000
-Retro_Coal_TES,1,0,0,2,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,0,200,220,260,10,0,0.1,0.1,0,None,1,0,0,0,0,1,1,0,0,0,0.995,0.55,1,10,0,0,1,0,0,0,0,0,0,1,0,TES,0.95,0,0,MO,0,0.04,20,20,0,0,0,Coal,0.85,33300,None,0,-1
-Retro_Coal_SMR,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,0,0,0,6200,0,0,0.75,0,7.43,uranium,200,0,0,0,0,0.64,0.64,0,0,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,Nuclear,0.93,0,0,MO,1,0.04,20,20,0,0,0,Coal,0.85,195000,None,0,-1
diff --git a/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p1/Resources/Hydro.csv b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p1/Resources/Hydro.csv
new file mode 100644
index 0000000000..3db39ce985
--- /dev/null
+++ b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p1/Resources/Hydro.csv
@@ -0,0 +1,2 @@
+Resource,Zone,LDS,RETRO,Num_RETRO_Sources,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster,Retro1_Source,Retro1_Efficiency,Retro1_Inv_Cost_per_MWyr,Retro2_Source,Retro2_Efficiency,Retro2_Inv_Cost_per_MWyr
+Hydro,1,0,0,0,0,0,480,-1,0,0,18000,0.1,0,None,1600,0,0,1,1,0,0,0,0,0,0,1,Hydro,MO,1,None,0,-1,None,0,-1
\ No newline at end of file
diff --git a/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p1/Resources/Must_run.csv b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p1/Resources/Must_run.csv
new file mode 100644
index 0000000000..7fba4ecaca
--- /dev/null
+++ b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p1/Resources/Must_run.csv
@@ -0,0 +1,3 @@
+Resource,Zone,LDS,RETRO,Num_RETRO_Sources,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster,Retro1_Source,Retro1_Efficiency,Retro1_Inv_Cost_per_MWyr,Retro2_Source,Retro2_Efficiency,Retro2_Inv_Cost_per_MWyr
+Nuclear,1,0,0,0,0,1,2360,-1,0,0,100000,2,7.43,uranium,1000,0,0,0.64,0.64,0,0,0.25,0.5,0,0,1,Nuclear,MO,1,None,0,-1,None,0,-1
+Retro_Coal_SMR,1,0,1,1,1,1,0,-1,0,0,6200,0.75,7.43,uranium,200,0,0,0.64,0.64,0,0,0.25,0.5,0,0,1,Nuclear,MO,1,Coal,0.85,195000,None,0,-1
\ No newline at end of file
diff --git a/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p1/Resources/Resource_multistage_data.csv b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p1/Resources/Resource_multistage_data.csv
new file mode 100644
index 0000000000..9daadfeb88
--- /dev/null
+++ b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p1/Resources/Resource_multistage_data.csv
@@ -0,0 +1,18 @@
+Resource,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW
+NGCC_bf,0.04,30,30,0,0,0
+NGCC_gf,0.04,30,30,0,0,0
+NGCT_bf,0.04,30,30,0,0,0
+NGCT_gf,0.04,30,30,0,0,0
+NGST,0.04,40,40,0,0,0
+Coal,0.04,40,40,0,0,0
+Nuclear,0.04,40,40,0,0,0
+Biomass,0.04,30,30,0,0,0
+SolarPV,0.04,20,20,0,0,0
+Wind,0.04,20,20,0,0,0
+Hydro,0.04,40,40,0,0,0
+PHS,0.04,40,40,0,0,0
+Li-ion,0.04,20,20,0,0,0
+Retro_NGCC_CCS,0.04,20,20,0,0,0
+Retro_NGCC_H2,0.04,20,20,0,0,0
+Retro_Coal_TES,0.04,20,20,0,0,0
+Retro_Coal_SMR,0.04,20,20,0,0,0
\ No newline at end of file
diff --git a/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p1/Resources/Storage.csv b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p1/Resources/Storage.csv
new file mode 100644
index 0000000000..e34c2ccc8a
--- /dev/null
+++ b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p1/Resources/Storage.csv
@@ -0,0 +1,4 @@
+Resource,Zone,Model,LDS,RETRO,Num_RETRO_Sources,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Fuel,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,region,cluster,Retro1_Source,Retro1_Efficiency,Retro1_Inv_Cost_per_MWyr,Retro2_Source,Retro2_Efficiency,Retro2_Inv_Cost_per_MWyr
+Retro_Coal_TES,1,2,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,0,200,220,260,10,0,0.1,0.1,None,0,0.995,0.55,1,10,0,0,0,0,MO,0,Coal,0.85,33300,None,0,-1
+PHS,1,1,1,0,0,0,1,480,0,0,-1,-1,-1,0,0,0,0,0,0,15000,5000,0,0.1,0.1,None,0,0.9,0.9,1,10,0,0,0,0,MO,0,None,0,-1,None,0,-1
+Li-ion,1,1,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,20000,25000,0,5000,6000,0,0.15,0.15,None,0,0.9,0.9,1,10,0,0,0,0,MO,0,None,0,-1,None,0,-1
\ No newline at end of file
diff --git a/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p1/Resources/Thermal.csv b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p1/Resources/Thermal.csv
new file mode 100644
index 0000000000..d7541aa257
--- /dev/null
+++ b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p1/Resources/Thermal.csv
@@ -0,0 +1,12 @@
+Resource,Zone,Model,LDS,RETRO,Num_RETRO_Sources,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster,Retro1_Source,Retro1_Efficiency,Retro1_Inv_Cost_per_MWyr,Retro2_Source,Retro2_Efficiency,Retro2_Inv_Cost_per_MWyr
+NGCC_bf,1,1,0,0,0,0,1,3400,-1,0,40000,12000,3,7.3,ng,200,70,1,6,2,0.64,0.64,0,0.4,0.25,0.5,0,0,1,NGCC,MO,1,None,0,-1,None,0,-1
+NGCC_gf,1,1,0,0,0,1,1,0,-1,0,40000,12000,3,7.3,ng,200,70,1,6,2,0.64,0.64,0,0.4,0.25,0.5,0,0,1,NGCC,MO,1,None,0,-1,None,0,-1
+NGCT_bf,1,1,0,0,0,0,1,8200,-1,0,30000,11000,4,14.3,ng,100,90,1,6,1,0.64,0.64,0,0.2,0.25,0.5,0,0,1,NGCT,MO,1,None,0,-1,None,0,-1
+NGCT_gf,1,1,0,0,0,1,1,0,-1,0,30000,11000,4,14.3,ng,100,90,1,6,1,0.64,0.64,0,0.2,0.25,0.5,0,0,1,NGCT,MO,1,None,0,-1,None,0,-1
+NGST,1,1,0,0,0,0,1,1060,-1,0,0,11000,4,12.1,ng,500,90,1,6,1,0.64,0.64,0,0.2,0.25,0.5,0,0,1,NGST,MO,1,None,0,-1,None,0,-1
+Coal,1,1,0,0,0,0,1,14700,-1,0,0,30000,5,10.4,coal,500,150,10,6,6,0.64,0.64,0,0.4,0.25,0.5,0,0,1,Coal,MO,1,None,0,-1,None,0,-1
+Nuclear,1,1,0,0,0,0,1,2360,-1,0,0,100000,2,7.43,uranium,1000,0,0,0,0,0.64,0.64,0,0,0.25,0.5,0,0,1,Nuclear,MO,1,None,0,-1,None,0,-1
+Biomass,1,1,0,0,0,0,0,20,-1,0,0,100000,5,13,biomass,100,90,2,6,2,0.64,0.64,0,0.4,0.25,0.5,0,0,1,Biomass,MO,1,None,0,-1,None,0,-1
+Retro_NGCC_CCS,1,1,0,1,2,1,1,0,-1,0,60000,16000,3,7.3,ng_ccs,200,70,1,6,2,0.64,0.64,0,0.4,0.25,0.5,0,0,1,NGCC_CCS,MO,1,NGCC_bf,0.85,60000,NGCC_gf,0.9,55000
+Retro_NGCC_H2,1,1,0,1,2,1,1,0,-1,0,40000,12000,3,7.3,h2,200,70,1,6,2,0.64,0.64,0,0.4,0.25,0.5,0,0,1,Hydrogen,MO,1,NGCC_bf,0.85,40000,NGCC_gf,0.9,35000
+Retro_Coal_SMR,1,1,0,1,1,1,1,0,-1,0,0,6200,0.75,7.43,uranium,200,0,0,0,0,0.64,0.64,0,0,0.25,0.5,0,0,1,Nuclear,MO,1,Coal,0.85,195000,None,0,-1
\ No newline at end of file
diff --git a/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p1/Resources/Vre.csv b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p1/Resources/Vre.csv
new file mode 100644
index 0000000000..1f850f8db3
--- /dev/null
+++ b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p1/Resources/Vre.csv
@@ -0,0 +1,3 @@
+Resource,Zone,Num_VRE_Bins,LDS,RETRO,Num_RETRO_Sources,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster,Retro1_Source,Retro1_Efficiency,Retro1_Inv_Cost_per_MWyr,Retro2_Source,Retro2_Efficiency,Retro2_Inv_Cost_per_MWyr
+SolarPV,1,1,0,0,0,1,1,40,-1,0,36000,10000,0,0,None,1,0,0,1,1,0,0,0,0,0,0,1,SolarPV,MO,1,None,0,-1,None,0,-1
+Wind,1,1,0,0,0,1,1,5720,-1,0,60000,40000,0.1,0,None,1,0,0,1,1,0,0,0,0,0,0,1,Wind,MO,1,None,0,-1,None,0,-1
\ No newline at end of file
diff --git a/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p2/Generators_data.csv b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p2/Generators_data.csv
deleted file mode 100644
index 8ac782893c..0000000000
--- a/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p2/Generators_data.csv
+++ /dev/null
@@ -1,18 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,Num_VRE_Bins,LDS,RETRO,Num_RETRO_Sources,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag_1,MinCapTag_2,MinCapTag_3,MGA,Resource_Type,CapRes_1,ESR_1,ESR_2,region,cluster,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,Retro1_Source,Retro1_Efficiency,Retro1_Inv_Cost_per_MWyr,Retro2_Source,Retro2_Efficiency,Retro2_Inv_Cost_per_MWyr
-NGCC_bf,1,1,0,0,0,0,0,0,0,0,0,0,1,3400,0,0,-1,-1,-1,0,0,0,40000,0,0,12000,0,0,3,0,7.3,ng,200,70,1,6,2,0.64,0.64,0,0.4,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,NGCC,0.93,0,0,MO,1,0.04,30,30,0,0,0,None,0,-1,None,0,-1
-NGCC_gf,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,40000,0,0,12000,0,0,3,0,7.3,ng,200,70,1,6,2,0.64,0.64,0,0.4,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,NGCC,0.93,0,0,MO,1,0.04,30,30,0,0,0,None,0,-1,None,0,-1
-NGCT_bf,1,1,0,0,0,0,0,0,0,0,0,0,1,8200,0,0,-1,-1,-1,0,0,0,30000,0,0,11000,0,0,4,0,14.3,ng,100,90,1,6,1,0.64,0.64,0,0.2,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,NGCT,0.93,0,0,MO,1,0.04,30,30,0,0,0,None,0,-1,None,0,-1
-NGCT_gf,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,30000,0,0,11000,0,0,4,0,14.3,ng,100,90,1,6,1,0.64,0.64,0,0.2,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,NGCT,0.93,0,0,MO,1,0.04,30,30,0,0,0,None,0,-1,None,0,-1
-NGST,1,1,0,0,0,0,0,0,0,0,0,0,1,1060,0,0,-1,-1,-1,0,0,0,0,0,0,11000,0,0,4,0,12.1,ng,500,90,1,6,1,0.64,0.64,0,0.2,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,NGST,0.93,0,0,MO,1,0.04,40,40,0,0,0,None,0,-1,None,0,-1
-Coal,1,1,0,0,0,0,0,0,0,0,0,0,1,14700,0,0,-1,-1,-1,0,0,0,0,0,0,30000,0,0,5,0,10.4,coal,500,150,10,6,6,0.64,0.64,0,0.4,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,Coal,0.93,0,0,MO,1,0.04,40,40,0,0,0,None,0,-1,None,0,-1
-Nuclear,1,1,1,0,0,0,0,0,0,0,0,0,1,2360,0,0,-1,-1,-1,0,0,0,0,0,0,100000,0,0,2,0,7.43,uranium,1000,0,0,0,0,0.64,0.64,0,0,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,Nuclear,0.93,0,0,MO,1,0.04,40,40,0,0,0,None,0,-1,None,0,-1
-Biomass,1,1,0,0,0,0,0,0,0,0,0,0,0,20,0,0,-1,-1,-1,0,0,0,0,0,0,100000,0,0,5,0,13,biomass,100,90,2,6,2,0.64,0.64,0,0.4,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,Biomass,0.93,0,0,MO,1,0.04,30,30,0,0,0,None,0,-1,None,0,-1
-SolarPV,1,0,0,0,0,0,1,1,0,0,0,1,1,40,0,0,-1,-1,-1,0,0,0,36000,0,0,10000,0,0,0,0,0,None,1,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,1,0,0,1,SolarPV,0.8,1,1,MO,1,0.04,20,20,0,0,0,None,0,-1,None,0,-1
-Wind,1,0,0,0,0,0,1,1,0,0,0,1,1,5720,0,0,-1,-1,-1,0,0,0,60000,0,0,40000,0,0,0.1,0,0,None,1,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,1,Wind,0.8,1,1,MO,1,0.04,20,20,0,0,0,None,0,-1,None,0,-1
-Hydro,1,0,0,0,0,1,0,0,0,0,0,0,0,480,0,0,-1,-1,-1,0,0,0,0,0,0,18000,0,0,0.1,0,0,None,1600,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,1,Hydro,0.8,1,1,MO,1,0.04,40,40,0,0,0,None,0,-1,None,0,-1
-PHS,1,0,0,1,0,0,0,0,1,0,0,0,1,480,0,0,-1,-1,-1,0,0,0,0,0,0,15000,5000,0,0.1,0.1,0,None,1,0,0,0,0,1,1,0,0,0,0.9,0.9,1,10,0,0,1,0,0,0,0,0,0,1,0,PHS,0.95,0,0,MO,0,0.04,40,40,0,0,0,None,0,-1,None,0,-1
-Li-ion,1,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,20000,25000,0,5000,6000,0,0.15,0.15,0,None,1,0,0,0,0,1,1,0,0,0,0.9,0.9,1,10,0,0,1,0,0,0,0,0,0,1,0,Li-ion,0.95,0,0,MO,0,0.04,20,20,0,0,0,None,0,-1,None,0,-1
-Retro_NGCC_CCS,1,1,0,0,0,0,0,0,0,1,2,1,1,0,0,0,-1,-1,-1,0,0,0,60000,0,0,16000,0,0,3,0,7.3,ng_ccs,200,70,1,6,2,0.64,0.64,0,0.4,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,NGCC_CCS,0.93,0,0,MO,1,0.04,20,20,0,0,0,NGCC_bf,0.85,60000,NGCC_gf,0.9,55000
-Retro_NGCC_H2,1,1,0,0,0,0,0,0,0,1,2,1,1,0,0,0,-1,-1,-1,0,0,0,40000,0,0,12000,0,0,3,0,7.3,h2,200,70,1,6,2,0.64,0.64,0,0.4,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,Hydrogen,0.93,0,0,MO,1,0.04,20,20,0,0,0,NGCC_bf,0.85,40000,NGCC_gf,0.9,35000
-Retro_Coal_TES,1,0,0,2,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,0,200,220,260,10,0,0.1,0.1,0,None,1,0,0,0,0,1,1,0,0,0,0.995,0.55,1,10,0,0,1,0,0,0,0,0,0,1,0,TES,0.95,0,0,MO,0,0.04,20,20,0,0,0,Coal,0.85,33300,None,0,-1
-Retro_Coal_SMR,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,0,0,0,6200,0,0,0.75,0,7.43,uranium,200,0,0,0,0,0.64,0.64,0,0,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,Nuclear,0.93,0,0,MO,1,0.04,20,20,0,0,0,Coal,0.85,195000,None,0,-1
diff --git a/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p2/Resources/Hydro.csv b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p2/Resources/Hydro.csv
new file mode 100644
index 0000000000..3db39ce985
--- /dev/null
+++ b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p2/Resources/Hydro.csv
@@ -0,0 +1,2 @@
+Resource,Zone,LDS,RETRO,Num_RETRO_Sources,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster,Retro1_Source,Retro1_Efficiency,Retro1_Inv_Cost_per_MWyr,Retro2_Source,Retro2_Efficiency,Retro2_Inv_Cost_per_MWyr
+Hydro,1,0,0,0,0,0,480,-1,0,0,18000,0.1,0,None,1600,0,0,1,1,0,0,0,0,0,0,1,Hydro,MO,1,None,0,-1,None,0,-1
\ No newline at end of file
diff --git a/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p2/Resources/Must_run.csv b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p2/Resources/Must_run.csv
new file mode 100644
index 0000000000..7fba4ecaca
--- /dev/null
+++ b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p2/Resources/Must_run.csv
@@ -0,0 +1,3 @@
+Resource,Zone,LDS,RETRO,Num_RETRO_Sources,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster,Retro1_Source,Retro1_Efficiency,Retro1_Inv_Cost_per_MWyr,Retro2_Source,Retro2_Efficiency,Retro2_Inv_Cost_per_MWyr
+Nuclear,1,0,0,0,0,1,2360,-1,0,0,100000,2,7.43,uranium,1000,0,0,0.64,0.64,0,0,0.25,0.5,0,0,1,Nuclear,MO,1,None,0,-1,None,0,-1
+Retro_Coal_SMR,1,0,1,1,1,1,0,-1,0,0,6200,0.75,7.43,uranium,200,0,0,0.64,0.64,0,0,0.25,0.5,0,0,1,Nuclear,MO,1,Coal,0.85,195000,None,0,-1
\ No newline at end of file
diff --git a/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p2/Resources/Resource_multistage_data.csv b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p2/Resources/Resource_multistage_data.csv
new file mode 100644
index 0000000000..9daadfeb88
--- /dev/null
+++ b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p2/Resources/Resource_multistage_data.csv
@@ -0,0 +1,18 @@
+Resource,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW
+NGCC_bf,0.04,30,30,0,0,0
+NGCC_gf,0.04,30,30,0,0,0
+NGCT_bf,0.04,30,30,0,0,0
+NGCT_gf,0.04,30,30,0,0,0
+NGST,0.04,40,40,0,0,0
+Coal,0.04,40,40,0,0,0
+Nuclear,0.04,40,40,0,0,0
+Biomass,0.04,30,30,0,0,0
+SolarPV,0.04,20,20,0,0,0
+Wind,0.04,20,20,0,0,0
+Hydro,0.04,40,40,0,0,0
+PHS,0.04,40,40,0,0,0
+Li-ion,0.04,20,20,0,0,0
+Retro_NGCC_CCS,0.04,20,20,0,0,0
+Retro_NGCC_H2,0.04,20,20,0,0,0
+Retro_Coal_TES,0.04,20,20,0,0,0
+Retro_Coal_SMR,0.04,20,20,0,0,0
\ No newline at end of file
diff --git a/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p2/Resources/Storage.csv b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p2/Resources/Storage.csv
new file mode 100644
index 0000000000..eb2597060b
--- /dev/null
+++ b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p2/Resources/Storage.csv
@@ -0,0 +1,4 @@
+Resource,Zone,Model,LDS,RETRO,Num_RETRO_Sources,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Fuel,Up_Time,Down_Time,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,region,cluster,Retro1_Source,Retro1_Efficiency,Retro1_Inv_Cost_per_MWyr,Retro2_Source,Retro2_Efficiency,Retro2_Inv_Cost_per_MWyr
+Retro_Coal_TES,1,2,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,0,200,220,260,10,0,0.1,0.1,None,0,0,0,0.995,0.55,1,10,0,0,0,0,MO,0,Coal,0.85,33300,None,0,-1
+PHS,1,1,1,0,0,0,1,480,0,0,-1,-1,-1,0,0,0,0,0,0,15000,5000,0,0.1,0.1,None,0,0,0,0.9,0.9,1,10,0,0,0,0,MO,0,None,0,-1,None,0,-1
+Li-ion,1,1,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,20000,25000,0,5000,6000,0,0.15,0.15,None,0,0,0,0.9,0.9,1,10,0,0,0,0,MO,0,None,0,-1,None,0,-1
\ No newline at end of file
diff --git a/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p2/Resources/Thermal.csv b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p2/Resources/Thermal.csv
new file mode 100644
index 0000000000..d7541aa257
--- /dev/null
+++ b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p2/Resources/Thermal.csv
@@ -0,0 +1,12 @@
+Resource,Zone,Model,LDS,RETRO,Num_RETRO_Sources,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster,Retro1_Source,Retro1_Efficiency,Retro1_Inv_Cost_per_MWyr,Retro2_Source,Retro2_Efficiency,Retro2_Inv_Cost_per_MWyr
+NGCC_bf,1,1,0,0,0,0,1,3400,-1,0,40000,12000,3,7.3,ng,200,70,1,6,2,0.64,0.64,0,0.4,0.25,0.5,0,0,1,NGCC,MO,1,None,0,-1,None,0,-1
+NGCC_gf,1,1,0,0,0,1,1,0,-1,0,40000,12000,3,7.3,ng,200,70,1,6,2,0.64,0.64,0,0.4,0.25,0.5,0,0,1,NGCC,MO,1,None,0,-1,None,0,-1
+NGCT_bf,1,1,0,0,0,0,1,8200,-1,0,30000,11000,4,14.3,ng,100,90,1,6,1,0.64,0.64,0,0.2,0.25,0.5,0,0,1,NGCT,MO,1,None,0,-1,None,0,-1
+NGCT_gf,1,1,0,0,0,1,1,0,-1,0,30000,11000,4,14.3,ng,100,90,1,6,1,0.64,0.64,0,0.2,0.25,0.5,0,0,1,NGCT,MO,1,None,0,-1,None,0,-1
+NGST,1,1,0,0,0,0,1,1060,-1,0,0,11000,4,12.1,ng,500,90,1,6,1,0.64,0.64,0,0.2,0.25,0.5,0,0,1,NGST,MO,1,None,0,-1,None,0,-1
+Coal,1,1,0,0,0,0,1,14700,-1,0,0,30000,5,10.4,coal,500,150,10,6,6,0.64,0.64,0,0.4,0.25,0.5,0,0,1,Coal,MO,1,None,0,-1,None,0,-1
+Nuclear,1,1,0,0,0,0,1,2360,-1,0,0,100000,2,7.43,uranium,1000,0,0,0,0,0.64,0.64,0,0,0.25,0.5,0,0,1,Nuclear,MO,1,None,0,-1,None,0,-1
+Biomass,1,1,0,0,0,0,0,20,-1,0,0,100000,5,13,biomass,100,90,2,6,2,0.64,0.64,0,0.4,0.25,0.5,0,0,1,Biomass,MO,1,None,0,-1,None,0,-1
+Retro_NGCC_CCS,1,1,0,1,2,1,1,0,-1,0,60000,16000,3,7.3,ng_ccs,200,70,1,6,2,0.64,0.64,0,0.4,0.25,0.5,0,0,1,NGCC_CCS,MO,1,NGCC_bf,0.85,60000,NGCC_gf,0.9,55000
+Retro_NGCC_H2,1,1,0,1,2,1,1,0,-1,0,40000,12000,3,7.3,h2,200,70,1,6,2,0.64,0.64,0,0.4,0.25,0.5,0,0,1,Hydrogen,MO,1,NGCC_bf,0.85,40000,NGCC_gf,0.9,35000
+Retro_Coal_SMR,1,1,0,1,1,1,1,0,-1,0,0,6200,0.75,7.43,uranium,200,0,0,0,0,0.64,0.64,0,0,0.25,0.5,0,0,1,Nuclear,MO,1,Coal,0.85,195000,None,0,-1
\ No newline at end of file
diff --git a/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p2/Resources/Vre.csv b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p2/Resources/Vre.csv
new file mode 100644
index 0000000000..1f850f8db3
--- /dev/null
+++ b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p2/Resources/Vre.csv
@@ -0,0 +1,3 @@
+Resource,Zone,Num_VRE_Bins,LDS,RETRO,Num_RETRO_Sources,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster,Retro1_Source,Retro1_Efficiency,Retro1_Inv_Cost_per_MWyr,Retro2_Source,Retro2_Efficiency,Retro2_Inv_Cost_per_MWyr
+SolarPV,1,1,0,0,0,1,1,40,-1,0,36000,10000,0,0,None,1,0,0,1,1,0,0,0,0,0,0,1,SolarPV,MO,1,None,0,-1,None,0,-1
+Wind,1,1,0,0,0,1,1,5720,-1,0,60000,40000,0.1,0,None,1,0,0,1,1,0,0,0,0,0,0,1,Wind,MO,1,None,0,-1,None,0,-1
\ No newline at end of file
diff --git a/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p3/Generators_data.csv b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p3/Generators_data.csv
deleted file mode 100644
index 8ac782893c..0000000000
--- a/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p3/Generators_data.csv
+++ /dev/null
@@ -1,18 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,Num_VRE_Bins,LDS,RETRO,Num_RETRO_Sources,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag_1,MinCapTag_2,MinCapTag_3,MGA,Resource_Type,CapRes_1,ESR_1,ESR_2,region,cluster,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,Retro1_Source,Retro1_Efficiency,Retro1_Inv_Cost_per_MWyr,Retro2_Source,Retro2_Efficiency,Retro2_Inv_Cost_per_MWyr
-NGCC_bf,1,1,0,0,0,0,0,0,0,0,0,0,1,3400,0,0,-1,-1,-1,0,0,0,40000,0,0,12000,0,0,3,0,7.3,ng,200,70,1,6,2,0.64,0.64,0,0.4,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,NGCC,0.93,0,0,MO,1,0.04,30,30,0,0,0,None,0,-1,None,0,-1
-NGCC_gf,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,40000,0,0,12000,0,0,3,0,7.3,ng,200,70,1,6,2,0.64,0.64,0,0.4,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,NGCC,0.93,0,0,MO,1,0.04,30,30,0,0,0,None,0,-1,None,0,-1
-NGCT_bf,1,1,0,0,0,0,0,0,0,0,0,0,1,8200,0,0,-1,-1,-1,0,0,0,30000,0,0,11000,0,0,4,0,14.3,ng,100,90,1,6,1,0.64,0.64,0,0.2,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,NGCT,0.93,0,0,MO,1,0.04,30,30,0,0,0,None,0,-1,None,0,-1
-NGCT_gf,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,30000,0,0,11000,0,0,4,0,14.3,ng,100,90,1,6,1,0.64,0.64,0,0.2,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,NGCT,0.93,0,0,MO,1,0.04,30,30,0,0,0,None,0,-1,None,0,-1
-NGST,1,1,0,0,0,0,0,0,0,0,0,0,1,1060,0,0,-1,-1,-1,0,0,0,0,0,0,11000,0,0,4,0,12.1,ng,500,90,1,6,1,0.64,0.64,0,0.2,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,NGST,0.93,0,0,MO,1,0.04,40,40,0,0,0,None,0,-1,None,0,-1
-Coal,1,1,0,0,0,0,0,0,0,0,0,0,1,14700,0,0,-1,-1,-1,0,0,0,0,0,0,30000,0,0,5,0,10.4,coal,500,150,10,6,6,0.64,0.64,0,0.4,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,Coal,0.93,0,0,MO,1,0.04,40,40,0,0,0,None,0,-1,None,0,-1
-Nuclear,1,1,1,0,0,0,0,0,0,0,0,0,1,2360,0,0,-1,-1,-1,0,0,0,0,0,0,100000,0,0,2,0,7.43,uranium,1000,0,0,0,0,0.64,0.64,0,0,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,Nuclear,0.93,0,0,MO,1,0.04,40,40,0,0,0,None,0,-1,None,0,-1
-Biomass,1,1,0,0,0,0,0,0,0,0,0,0,0,20,0,0,-1,-1,-1,0,0,0,0,0,0,100000,0,0,5,0,13,biomass,100,90,2,6,2,0.64,0.64,0,0.4,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,Biomass,0.93,0,0,MO,1,0.04,30,30,0,0,0,None,0,-1,None,0,-1
-SolarPV,1,0,0,0,0,0,1,1,0,0,0,1,1,40,0,0,-1,-1,-1,0,0,0,36000,0,0,10000,0,0,0,0,0,None,1,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,1,0,0,1,SolarPV,0.8,1,1,MO,1,0.04,20,20,0,0,0,None,0,-1,None,0,-1
-Wind,1,0,0,0,0,0,1,1,0,0,0,1,1,5720,0,0,-1,-1,-1,0,0,0,60000,0,0,40000,0,0,0.1,0,0,None,1,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,1,Wind,0.8,1,1,MO,1,0.04,20,20,0,0,0,None,0,-1,None,0,-1
-Hydro,1,0,0,0,0,1,0,0,0,0,0,0,0,480,0,0,-1,-1,-1,0,0,0,0,0,0,18000,0,0,0.1,0,0,None,1600,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,1,Hydro,0.8,1,1,MO,1,0.04,40,40,0,0,0,None,0,-1,None,0,-1
-PHS,1,0,0,1,0,0,0,0,1,0,0,0,1,480,0,0,-1,-1,-1,0,0,0,0,0,0,15000,5000,0,0.1,0.1,0,None,1,0,0,0,0,1,1,0,0,0,0.9,0.9,1,10,0,0,1,0,0,0,0,0,0,1,0,PHS,0.95,0,0,MO,0,0.04,40,40,0,0,0,None,0,-1,None,0,-1
-Li-ion,1,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,20000,25000,0,5000,6000,0,0.15,0.15,0,None,1,0,0,0,0,1,1,0,0,0,0.9,0.9,1,10,0,0,1,0,0,0,0,0,0,1,0,Li-ion,0.95,0,0,MO,0,0.04,20,20,0,0,0,None,0,-1,None,0,-1
-Retro_NGCC_CCS,1,1,0,0,0,0,0,0,0,1,2,1,1,0,0,0,-1,-1,-1,0,0,0,60000,0,0,16000,0,0,3,0,7.3,ng_ccs,200,70,1,6,2,0.64,0.64,0,0.4,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,NGCC_CCS,0.93,0,0,MO,1,0.04,20,20,0,0,0,NGCC_bf,0.85,60000,NGCC_gf,0.9,55000
-Retro_NGCC_H2,1,1,0,0,0,0,0,0,0,1,2,1,1,0,0,0,-1,-1,-1,0,0,0,40000,0,0,12000,0,0,3,0,7.3,h2,200,70,1,6,2,0.64,0.64,0,0.4,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,Hydrogen,0.93,0,0,MO,1,0.04,20,20,0,0,0,NGCC_bf,0.85,40000,NGCC_gf,0.9,35000
-Retro_Coal_TES,1,0,0,2,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,0,200,220,260,10,0,0.1,0.1,0,None,1,0,0,0,0,1,1,0,0,0,0.995,0.55,1,10,0,0,1,0,0,0,0,0,0,1,0,TES,0.95,0,0,MO,0,0.04,20,20,0,0,0,Coal,0.85,33300,None,0,-1
-Retro_Coal_SMR,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,0,0,0,6200,0,0,0.75,0,7.43,uranium,200,0,0,0,0,0.64,0.64,0,0,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,Nuclear,0.93,0,0,MO,1,0.04,20,20,0,0,0,Coal,0.85,195000,None,0,-1
diff --git a/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p3/Resources/Hydro.csv b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p3/Resources/Hydro.csv
new file mode 100644
index 0000000000..3db39ce985
--- /dev/null
+++ b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p3/Resources/Hydro.csv
@@ -0,0 +1,2 @@
+Resource,Zone,LDS,RETRO,Num_RETRO_Sources,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster,Retro1_Source,Retro1_Efficiency,Retro1_Inv_Cost_per_MWyr,Retro2_Source,Retro2_Efficiency,Retro2_Inv_Cost_per_MWyr
+Hydro,1,0,0,0,0,0,480,-1,0,0,18000,0.1,0,None,1600,0,0,1,1,0,0,0,0,0,0,1,Hydro,MO,1,None,0,-1,None,0,-1
\ No newline at end of file
diff --git a/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p3/Resources/Must_run.csv b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p3/Resources/Must_run.csv
new file mode 100644
index 0000000000..7fba4ecaca
--- /dev/null
+++ b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p3/Resources/Must_run.csv
@@ -0,0 +1,3 @@
+Resource,Zone,LDS,RETRO,Num_RETRO_Sources,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster,Retro1_Source,Retro1_Efficiency,Retro1_Inv_Cost_per_MWyr,Retro2_Source,Retro2_Efficiency,Retro2_Inv_Cost_per_MWyr
+Nuclear,1,0,0,0,0,1,2360,-1,0,0,100000,2,7.43,uranium,1000,0,0,0.64,0.64,0,0,0.25,0.5,0,0,1,Nuclear,MO,1,None,0,-1,None,0,-1
+Retro_Coal_SMR,1,0,1,1,1,1,0,-1,0,0,6200,0.75,7.43,uranium,200,0,0,0.64,0.64,0,0,0.25,0.5,0,0,1,Nuclear,MO,1,Coal,0.85,195000,None,0,-1
\ No newline at end of file
diff --git a/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p3/Resources/Resource_multistage_data.csv b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p3/Resources/Resource_multistage_data.csv
new file mode 100644
index 0000000000..9daadfeb88
--- /dev/null
+++ b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p3/Resources/Resource_multistage_data.csv
@@ -0,0 +1,18 @@
+Resource,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW
+NGCC_bf,0.04,30,30,0,0,0
+NGCC_gf,0.04,30,30,0,0,0
+NGCT_bf,0.04,30,30,0,0,0
+NGCT_gf,0.04,30,30,0,0,0
+NGST,0.04,40,40,0,0,0
+Coal,0.04,40,40,0,0,0
+Nuclear,0.04,40,40,0,0,0
+Biomass,0.04,30,30,0,0,0
+SolarPV,0.04,20,20,0,0,0
+Wind,0.04,20,20,0,0,0
+Hydro,0.04,40,40,0,0,0
+PHS,0.04,40,40,0,0,0
+Li-ion,0.04,20,20,0,0,0
+Retro_NGCC_CCS,0.04,20,20,0,0,0
+Retro_NGCC_H2,0.04,20,20,0,0,0
+Retro_Coal_TES,0.04,20,20,0,0,0
+Retro_Coal_SMR,0.04,20,20,0,0,0
\ No newline at end of file
diff --git a/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p3/Resources/Storage.csv b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p3/Resources/Storage.csv
new file mode 100644
index 0000000000..eb2597060b
--- /dev/null
+++ b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p3/Resources/Storage.csv
@@ -0,0 +1,4 @@
+Resource,Zone,Model,LDS,RETRO,Num_RETRO_Sources,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Fuel,Up_Time,Down_Time,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,region,cluster,Retro1_Source,Retro1_Efficiency,Retro1_Inv_Cost_per_MWyr,Retro2_Source,Retro2_Efficiency,Retro2_Inv_Cost_per_MWyr
+Retro_Coal_TES,1,2,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,0,200,220,260,10,0,0.1,0.1,None,0,0,0,0.995,0.55,1,10,0,0,0,0,MO,0,Coal,0.85,33300,None,0,-1
+PHS,1,1,1,0,0,0,1,480,0,0,-1,-1,-1,0,0,0,0,0,0,15000,5000,0,0.1,0.1,None,0,0,0,0.9,0.9,1,10,0,0,0,0,MO,0,None,0,-1,None,0,-1
+Li-ion,1,1,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,20000,25000,0,5000,6000,0,0.15,0.15,None,0,0,0,0.9,0.9,1,10,0,0,0,0,MO,0,None,0,-1,None,0,-1
\ No newline at end of file
diff --git a/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p3/Resources/Thermal.csv b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p3/Resources/Thermal.csv
new file mode 100644
index 0000000000..d7541aa257
--- /dev/null
+++ b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p3/Resources/Thermal.csv
@@ -0,0 +1,12 @@
+Resource,Zone,Model,LDS,RETRO,Num_RETRO_Sources,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster,Retro1_Source,Retro1_Efficiency,Retro1_Inv_Cost_per_MWyr,Retro2_Source,Retro2_Efficiency,Retro2_Inv_Cost_per_MWyr
+NGCC_bf,1,1,0,0,0,0,1,3400,-1,0,40000,12000,3,7.3,ng,200,70,1,6,2,0.64,0.64,0,0.4,0.25,0.5,0,0,1,NGCC,MO,1,None,0,-1,None,0,-1
+NGCC_gf,1,1,0,0,0,1,1,0,-1,0,40000,12000,3,7.3,ng,200,70,1,6,2,0.64,0.64,0,0.4,0.25,0.5,0,0,1,NGCC,MO,1,None,0,-1,None,0,-1
+NGCT_bf,1,1,0,0,0,0,1,8200,-1,0,30000,11000,4,14.3,ng,100,90,1,6,1,0.64,0.64,0,0.2,0.25,0.5,0,0,1,NGCT,MO,1,None,0,-1,None,0,-1
+NGCT_gf,1,1,0,0,0,1,1,0,-1,0,30000,11000,4,14.3,ng,100,90,1,6,1,0.64,0.64,0,0.2,0.25,0.5,0,0,1,NGCT,MO,1,None,0,-1,None,0,-1
+NGST,1,1,0,0,0,0,1,1060,-1,0,0,11000,4,12.1,ng,500,90,1,6,1,0.64,0.64,0,0.2,0.25,0.5,0,0,1,NGST,MO,1,None,0,-1,None,0,-1
+Coal,1,1,0,0,0,0,1,14700,-1,0,0,30000,5,10.4,coal,500,150,10,6,6,0.64,0.64,0,0.4,0.25,0.5,0,0,1,Coal,MO,1,None,0,-1,None,0,-1
+Nuclear,1,1,0,0,0,0,1,2360,-1,0,0,100000,2,7.43,uranium,1000,0,0,0,0,0.64,0.64,0,0,0.25,0.5,0,0,1,Nuclear,MO,1,None,0,-1,None,0,-1
+Biomass,1,1,0,0,0,0,0,20,-1,0,0,100000,5,13,biomass,100,90,2,6,2,0.64,0.64,0,0.4,0.25,0.5,0,0,1,Biomass,MO,1,None,0,-1,None,0,-1
+Retro_NGCC_CCS,1,1,0,1,2,1,1,0,-1,0,60000,16000,3,7.3,ng_ccs,200,70,1,6,2,0.64,0.64,0,0.4,0.25,0.5,0,0,1,NGCC_CCS,MO,1,NGCC_bf,0.85,60000,NGCC_gf,0.9,55000
+Retro_NGCC_H2,1,1,0,1,2,1,1,0,-1,0,40000,12000,3,7.3,h2,200,70,1,6,2,0.64,0.64,0,0.4,0.25,0.5,0,0,1,Hydrogen,MO,1,NGCC_bf,0.85,40000,NGCC_gf,0.9,35000
+Retro_Coal_SMR,1,1,0,1,1,1,1,0,-1,0,0,6200,0.75,7.43,uranium,200,0,0,0,0,0.64,0.64,0,0,0.25,0.5,0,0,1,Nuclear,MO,1,Coal,0.85,195000,None,0,-1
\ No newline at end of file
diff --git a/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p3/Resources/Vre.csv b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p3/Resources/Vre.csv
new file mode 100644
index 0000000000..1f850f8db3
--- /dev/null
+++ b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/Inputs/Inputs_p3/Resources/Vre.csv
@@ -0,0 +1,3 @@
+Resource,Zone,Num_VRE_Bins,LDS,RETRO,Num_RETRO_Sources,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster,Retro1_Source,Retro1_Efficiency,Retro1_Inv_Cost_per_MWyr,Retro2_Source,Retro2_Efficiency,Retro2_Inv_Cost_per_MWyr
+SolarPV,1,1,0,0,0,1,1,40,-1,0,36000,10000,0,0,None,1,0,0,1,1,0,0,0,0,0,0,1,SolarPV,MO,1,None,0,-1,None,0,-1
+Wind,1,1,0,0,0,1,1,5720,-1,0,60000,40000,0.1,0,None,1,0,0,1,1,0,0,0,0,0,0,1,Wind,MO,1,None,0,-1,None,0,-1
\ No newline at end of file
diff --git a/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/README.txt b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/README.txt
index be15dea29a..ce4eebea71 100644
--- a/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/README.txt
+++ b/Example_Systems/RetrofitExample/RetrofitExample_MultiStage/README.txt
@@ -6,7 +6,7 @@ Multi-Stage Retrofit Example
Description: One zone, few technologies, retrofit options include CCS, H2, SMR, and TES.
-All changes necessary in the inputs in enable retrofit modeling are located in Generators_data.csv.
+All changes necessary in the inputs in enable retrofit modeling are located in the resource `.csv` files.
New fields:
diff --git a/Example_Systems/SmallNewEngland/OneZone/Generators_data.csv b/Example_Systems/SmallNewEngland/OneZone/Generators_data.csv
deleted file mode 100644
index 5ba2a9f42a..0000000000
--- a/Example_Systems/SmallNewEngland/OneZone/Generators_data.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,LDS,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MaxCapTag_1,MaxCapTag_2,MaxCapTag_3,MinCapTag_1,MinCapTag_2,MinCapTag_3,MGA,Resource_Type,CapRes_1,ESR_1,ESR_2,region,cluster
-natural_gas_combined_cycle,1,1,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,65400,0,0,10287,0,0,3.55,0,7.43,NG,250,91,2,6,6,0.64,0.64,0,0.468,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,0,0,0,1,natural_gas_fired_combined_cycle,0.93,0,0,NE,1
-solar_pv,1,0,0,0,0,0,1,0,1,1,0,0,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.13,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,solar_photovoltaic,0.8,1,1,NE,1
-onshore_wind,1,0,0,0,0,0,1,0,1,1,0,0,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,1,onshore_wind_turbine,0.8,1,1,NE,1
-battery,1,0,0,1,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,0,0,1,0,0,1,0,battery_mid,0.95,0,0,NE,0
diff --git a/Example_Systems/SmallNewEngland/OneZone/Resources/Resource_capacity_reserve_margin.csv b/Example_Systems/SmallNewEngland/OneZone/Resources/Resource_capacity_reserve_margin.csv
new file mode 100644
index 0000000000..9a3e81610b
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/OneZone/Resources/Resource_capacity_reserve_margin.csv
@@ -0,0 +1,5 @@
+Resource,Derating_Factor_1
+natural_gas_combined_cycle,0.93
+solar_pv,0.8
+onshore_wind,0.8
+battery,0.95
diff --git a/Example_Systems/SmallNewEngland/OneZone/Resources/Resource_energy_share_requirement.csv b/Example_Systems/SmallNewEngland/OneZone/Resources/Resource_energy_share_requirement.csv
new file mode 100644
index 0000000000..bac25bef38
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/OneZone/Resources/Resource_energy_share_requirement.csv
@@ -0,0 +1,4 @@
+Resource,ESR_1,ESR_2
+solar_pv,1,1
+onshore_wind,1,1
+
diff --git a/Example_Systems/SmallNewEngland/OneZone/Resources/Resource_maximum_capacity_requirement.csv b/Example_Systems/SmallNewEngland/OneZone/Resources/Resource_maximum_capacity_requirement.csv
new file mode 100644
index 0000000000..68736c15dc
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/OneZone/Resources/Resource_maximum_capacity_requirement.csv
@@ -0,0 +1,4 @@
+Resource,Max_Cap_1,Max_Cap_2,Max_Cap_3
+solar_pv,1,0,0
+onshore_wind,0,1,0
+battery,0,0,1
\ No newline at end of file
diff --git a/Example_Systems/SmallNewEngland/OneZone/Resources/Resource_minimum_capacity_requirement.csv b/Example_Systems/SmallNewEngland/OneZone/Resources/Resource_minimum_capacity_requirement.csv
new file mode 100644
index 0000000000..509b7ef9ab
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/OneZone/Resources/Resource_minimum_capacity_requirement.csv
@@ -0,0 +1,4 @@
+Resource,Min_Cap_1,Min_Cap_2,Min_Cap_3
+solar_pv,1,0,0
+onshore_wind,0,1,0
+battery,0,0,1
diff --git a/Example_Systems/SmallNewEngland/OneZone/Resources/Storage.csv b/Example_Systems/SmallNewEngland/OneZone/Resources/Storage.csv
new file mode 100644
index 0000000000..bf656d0278
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/OneZone/Resources/Storage.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,LDS,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster
+battery,1,1,0,1,0,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0.0,None,0,0,0,1.0,1.0,0,0.0,0,0.92,0.92,1,10,0.0,0.0,0,0,0,battery_mid,NE,0
diff --git a/Example_Systems/SmallNewEngland/OneZone/Resources/Thermal.csv b/Example_Systems/SmallNewEngland/OneZone/Resources/Thermal.csv
new file mode 100644
index 0000000000..69bb843c0a
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/OneZone/Resources/Thermal.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,LDS,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster
+natural_gas_combined_cycle,1,1,0,1,0,0,-1,0,65400,10287,3.55,7.43,NG,250,91,2,6,6,0.64,0.64,0,0.468,0.25,0.5,0,0,1,natural_gas_fired_combined_cycle,NE,1
diff --git a/Example_Systems/SmallNewEngland/OneZone/Resources/Vre.csv b/Example_Systems/SmallNewEngland/OneZone/Resources/Vre.csv
new file mode 100644
index 0000000000..48d0d25386
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/OneZone/Resources/Vre.csv
@@ -0,0 +1,3 @@
+Resource,Zone,LDS,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster
+solar_pv,1,0,1,1,0,0,-1,0,85300,18760,0.0,9.13,None,0,0,0,1.0,1.0,0,0.0,0.0,0.0,0,0,1,solar_photovoltaic,NE,1
+onshore_wind,1,0,1,1,0,0,-1,0,97200,43205,0.1,9.12,None,0,0,0,1.0,1.0,0,0.0,0.0,0.0,0,0,1,onshore_wind_turbine,NE,1
diff --git a/Example_Systems/SmallNewEngland/OneZone_3VREBin/Generators_data.csv b/Example_Systems/SmallNewEngland/OneZone_3VREBin/Generators_data.csv
deleted file mode 100644
index 2572ef197f..0000000000
--- a/Example_Systems/SmallNewEngland/OneZone_3VREBin/Generators_data.csv
+++ /dev/null
@@ -1,7 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,LDS,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag_1,MinCapTag_2,MinCapTag_3,MGA,Resource_Type,CapRes_1,RPS_1,RPS_2,region,cluster
-natural_gas_combined_cycle,1,1,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,65400,0,0,10287,0,0,3.55,0,7.43,NG,250,91,2,6,6,0.64,0.64,0,0.468,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,natural_gas_fired_combined_cycle,0.93,0,0,NE,1
-solar_pv,1,0,0,0,0,0,1,0,1,1,0,0,0,0,924417,-1,-1,0,0,0,50920.18439,0,0,8490.038196,0,0,0,0,0,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,1,0,0,1,solar_photovoltaic,0.8,1,1,NE,1
-onshore_wind_1,1,0,0,0,0,0,1,0,3,1,0,0,0,0,63489,-1,-1,0,0,0,80100,0,0,34568.125,0,0,0.1,0,0,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,1,onshore_wind_turbine,0.8,1,1,NE,1
-onshore_wind_2,1,0,0,0,0,0,1,0,0,1,0,0,0,0,49396,-1,-1,0,0,0,83401,0,0,34568.125,0,0,0.1,0,0,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,1,onshore_wind_turbine,0.8,1,1,NE,1
-onshore_wind_3,1,0,0,0,0,0,1,0,0,1,0,0,0,0,10465,-1,-1,0,0,0,84336,0,0,34568.125,0,0,0.1,0,0,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,1,onshore_wind_turbine,0.8,1,1,NE,1
-battery,1,0,0,1,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,0,0,1,1,battery_mid,0.95,0,0,NE,0
diff --git a/Example_Systems/SmallNewEngland/OneZone_3VREBin/README.md b/Example_Systems/SmallNewEngland/OneZone_3VREBin/README.md
index 1559780daa..822ffc67a8 100644
--- a/Example_Systems/SmallNewEngland/OneZone_3VREBin/README.md
+++ b/Example_Systems/SmallNewEngland/OneZone_3VREBin/README.md
@@ -1,6 +1,6 @@
# Small New England: One Zone + VRE Bins
-**SmallNewEngland** is set of a simplified versions of the more detailed example system RealSystemExample. It is condensed for easy comprehension and quick testing of different components of the GenX. **SmallNewEngland/OneZone_3VREBin** is an iteration on our most basic model. Like the basic model, this is a one-year example with hourly resolution containing only one zone representing New England. In addition, it divides its wind resource into three separate bins with different parameters as defined in `Generators_data.csv` and `Generators_variability.csv`. This division into bins of different costs, capacities, and capacity factors allows the user to model more realistic supply curves of each resource.
+**SmallNewEngland** is set of a simplified versions of the more detailed example system RealSystemExample. It is condensed for easy comprehension and quick testing of different components of the GenX. **SmallNewEngland/OneZone_3VREBin** is an iteration on our most basic model. Like the basic model, this is a one-year example with hourly resolution containing only one zone representing New England. In addition, it divides its wind resource into three separate bins with different parameters as defined in `Vre.csv` and `Generators_variability.csv`. This division into bins of different costs, capacities, and capacity factors allows the user to model more realistic supply curves of each resource.
To run the model, first navigate to the example directory at `GenX/Example_Systems/SmallNewEngland/OneZone_3VREBin`:
diff --git a/Example_Systems/SmallNewEngland/OneZone_3VREBin/Resources/Storage.csv b/Example_Systems/SmallNewEngland/OneZone_3VREBin/Resources/Storage.csv
new file mode 100644
index 0000000000..e32d31b727
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/OneZone_3VREBin/Resources/Storage.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,LDS,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,RPS_1,RPS_2,region,cluster
+battery,1,1,0,1,0,0,0,0,-1,-1,-1,0,0,0,19584.0,22494,0,4895.0,5622,0,0.15,0.15,0.0,None,0,0,0,1.0,1.0,0,0.0,0,0.92,0.92,1,10,0.0,0.0,0,0,1,battery_mid,0,0,NE,0
diff --git a/Example_Systems/SmallNewEngland/OneZone_3VREBin/Resources/Thermal.csv b/Example_Systems/SmallNewEngland/OneZone_3VREBin/Resources/Thermal.csv
new file mode 100644
index 0000000000..66b067f691
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/OneZone_3VREBin/Resources/Thermal.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,LDS,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,RPS_1,RPS_2,region,cluster
+natural_gas_combined_cycle,1,1,0,1,0,0,-1,0,65400.0,10287.0,3.55,7.43,NG,250,91,2,6,6,0.64,0.64,0,0.468,0.25,0.5,0,0,1,natural_gas_fired_combined_cycle,0,0,NE,1
diff --git a/Example_Systems/SmallNewEngland/OneZone_3VREBin/Resources/Vre.csv b/Example_Systems/SmallNewEngland/OneZone_3VREBin/Resources/Vre.csv
new file mode 100644
index 0000000000..edea4389a9
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/OneZone_3VREBin/Resources/Vre.csv
@@ -0,0 +1,5 @@
+Resource,Zone,LDS,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,RPS_1,RPS_2,region,cluster
+solar_pv,1,0,1,1,0,0,924417,0,50920.18439,8490.038196,0.0,0.0,None,0,0,0,1.0,1.0,0,0.0,0.0,0.0,0,0,1,solar_photovoltaic,1,1,NE,1
+onshore_wind_1,1,0,3,1,0,0,63489,0,80100.0,34568.125,0.1,0.0,None,0,0,0,1.0,1.0,0,0.0,0.0,0.0,0,0,1,onshore_wind_turbine,1,1,NE,1
+onshore_wind_2,1,0,0,1,0,0,49396,0,83401.0,34568.125,0.1,0.0,None,0,0,0,1.0,1.0,0,0.0,0.0,0.0,0,0,1,onshore_wind_turbine,1,1,NE,1
+onshore_wind_3,1,0,0,1,0,0,10465,0,84336.0,34568.125,0.1,0.0,None,0,0,0,1.0,1.0,0,0.0,0.0,0.0,0,0,1,onshore_wind_turbine,1,1,NE,1
diff --git a/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p1/Generators_data.csv b/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p1/Generators_data.csv
deleted file mode 100644
index 8100822625..0000000000
--- a/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p1/Generators_data.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,MinCapTag_1,MinCapTag_2,MinCapTag_3,MGA,Resource_Type,CapRes_1,ESR_1,ESR_2,region,cluster,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
-natural_gas_combined_cycle,1,1,0,0,0,0,0,0,1,1,10000,0,0,-1,-1,-1,0,0,0,65400,0,0,10287,0,0,3.55,0,7.43,NG,250,91,2,6,6,0.64,0.64,0,0.468,0,1,1,0,0,0,0,1,0.25,0.5,0,0,2,0,0,0,1,natural_gas_fired_combined_cycle,0.93,0,0,NE,1,0.039,20,20,0,0,0,0
-solar_pv,1,0,0,0,0,0,1,1,1,1,500,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.13,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,7,1,0,0,1,solar_photovoltaic,0.8,1,1,NE,1,0.017,20,20,0,0,0,0
-onshore_wind,1,0,0,0,0,0,1,1,1,1,1000,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,6,0,1,0,1,onshore_wind_turbine,0.8,1,1,NE,1,0.024,20,20,0,0,0,0
-battery,1,0,0,1,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,5622,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,12,0,0,1,0,battery_mid,0.95,0,0,NE,0,0.027,20,20,0,0,0,0
diff --git a/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p1/Resources/Resource_multistage_data.csv b/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p1/Resources/Resource_multistage_data.csv
new file mode 100644
index 0000000000..b85258c53d
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p1/Resources/Resource_multistage_data.csv
@@ -0,0 +1,5 @@
+Resource,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW
+natural_gas_combined_cycle,0.039,20,20,0,0,0
+solar_pv,0.017,20,20,0,0,0
+onshore_wind,0.024,20,20,0,0,0
+battery,0.027,20,20,0,0,0
\ No newline at end of file
diff --git a/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p1/Resources/Storage.csv b/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p1/Resources/Storage.csv
new file mode 100644
index 0000000000..906f5d13c3
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p1/Resources/Storage.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Max_Cap_MW,Max_Cap_MWh,Min_Cap_MW,Min_Cap_MWh,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Self_disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Resource_Type,region,cluster
+battery,1,1,1,1,0,0,-1,-1,0,0,19584,22494,4895,5622,5622,0.15,0.15,0,0.92,0.92,1,10,battery_mid,NE,0
\ No newline at end of file
diff --git a/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p1/Resources/Thermal.csv b/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p1/Resources/Thermal.csv
new file mode 100644
index 0000000000..a06b672285
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p1/Resources/Thermal.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster
+natural_gas_combined_cycle,1,1,1,1,10000,-1,0,65400,10287,3.55,7.43,NG,250,91,2,6,6,0.64,0.64,0.468,0.25,0.5,0,0,1,natural_gas_fired_combined_cycle,NE,1
\ No newline at end of file
diff --git a/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p1/Resources/Vre.csv b/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p1/Resources/Vre.csv
new file mode 100644
index 0000000000..b6f20427d5
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p1/Resources/Vre.csv
@@ -0,0 +1,3 @@
+Resource,Zone,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,MGA,Resource_Type,region,cluster
+solar_pv,1,1,1,1,500,-1,0,85300,18760,0,9.13,1,solar_photovoltaic,NE,1
+onshore_wind,1,1,1,1,1000,-1,0,97200,43205,0.1,9.12,1,onshore_wind_turbine,NE,1
\ No newline at end of file
diff --git a/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p2/Generators_data.csv b/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p2/Generators_data.csv
deleted file mode 100644
index 37d6c4d751..0000000000
--- a/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p2/Generators_data.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,MinCapTag_1,MinCapTag_2,MinCapTag_3,MGA,Resource_Type,CapRes_1,ESR_1,ESR_2,region,cluster,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
-natural_gas_combined_cycle,1,1,0,0,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,65400,0,0,10287,0,0,3.55,0,7.43,NG,250,91,2,6,6,0.64,0.64,0,0.468,0,1,1,0,0,0,0,1,0.25,0.5,0,0,2,0,0,0,1,natural_gas_fired_combined_cycle,0.93,0,0,NE,1,0.039,20,20,0,0,0,0
-solar_pv,1,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.13,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,7,1,0,0,1,solar_photovoltaic,0.8,1,1,NE,1,0.017,20,20,0,0,0,0
-onshore_wind,1,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,6,0,1,0,1,onshore_wind_turbine,0.8,1,1,NE,1,0.024,20,20,0,0,0,0
-battery,1,0,0,1,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,5622,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,12,0,0,1,0,battery_mid,0.95,0,0,NE,0,0.027,20,20,0,0,0,0
diff --git a/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p2/Resources/Resource_multistage_data.csv b/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p2/Resources/Resource_multistage_data.csv
new file mode 100644
index 0000000000..b85258c53d
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p2/Resources/Resource_multistage_data.csv
@@ -0,0 +1,5 @@
+Resource,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW
+natural_gas_combined_cycle,0.039,20,20,0,0,0
+solar_pv,0.017,20,20,0,0,0
+onshore_wind,0.024,20,20,0,0,0
+battery,0.027,20,20,0,0,0
\ No newline at end of file
diff --git a/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p2/Resources/Storage.csv b/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p2/Resources/Storage.csv
new file mode 100644
index 0000000000..906f5d13c3
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p2/Resources/Storage.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Max_Cap_MW,Max_Cap_MWh,Min_Cap_MW,Min_Cap_MWh,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Self_disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Resource_Type,region,cluster
+battery,1,1,1,1,0,0,-1,-1,0,0,19584,22494,4895,5622,5622,0.15,0.15,0,0.92,0.92,1,10,battery_mid,NE,0
\ No newline at end of file
diff --git a/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p2/Resources/Thermal.csv b/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p2/Resources/Thermal.csv
new file mode 100644
index 0000000000..a06b672285
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p2/Resources/Thermal.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster
+natural_gas_combined_cycle,1,1,1,1,10000,-1,0,65400,10287,3.55,7.43,NG,250,91,2,6,6,0.64,0.64,0.468,0.25,0.5,0,0,1,natural_gas_fired_combined_cycle,NE,1
\ No newline at end of file
diff --git a/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p2/Resources/Vre.csv b/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p2/Resources/Vre.csv
new file mode 100644
index 0000000000..b6f20427d5
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p2/Resources/Vre.csv
@@ -0,0 +1,3 @@
+Resource,Zone,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,MGA,Resource_Type,region,cluster
+solar_pv,1,1,1,1,500,-1,0,85300,18760,0,9.13,1,solar_photovoltaic,NE,1
+onshore_wind,1,1,1,1,1000,-1,0,97200,43205,0.1,9.12,1,onshore_wind_turbine,NE,1
\ No newline at end of file
diff --git a/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p3/Generators_data.csv b/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p3/Generators_data.csv
deleted file mode 100644
index 37d6c4d751..0000000000
--- a/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p3/Generators_data.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,MinCapTag_1,MinCapTag_2,MinCapTag_3,MGA,Resource_Type,CapRes_1,ESR_1,ESR_2,region,cluster,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
-natural_gas_combined_cycle,1,1,0,0,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,65400,0,0,10287,0,0,3.55,0,7.43,NG,250,91,2,6,6,0.64,0.64,0,0.468,0,1,1,0,0,0,0,1,0.25,0.5,0,0,2,0,0,0,1,natural_gas_fired_combined_cycle,0.93,0,0,NE,1,0.039,20,20,0,0,0,0
-solar_pv,1,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.13,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,7,1,0,0,1,solar_photovoltaic,0.8,1,1,NE,1,0.017,20,20,0,0,0,0
-onshore_wind,1,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,6,0,1,0,1,onshore_wind_turbine,0.8,1,1,NE,1,0.024,20,20,0,0,0,0
-battery,1,0,0,1,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,5622,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,12,0,0,1,0,battery_mid,0.95,0,0,NE,0,0.027,20,20,0,0,0,0
diff --git a/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p3/Resources/Resource_multistage_data.csv b/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p3/Resources/Resource_multistage_data.csv
new file mode 100644
index 0000000000..b85258c53d
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p3/Resources/Resource_multistage_data.csv
@@ -0,0 +1,5 @@
+Resource,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW
+natural_gas_combined_cycle,0.039,20,20,0,0,0
+solar_pv,0.017,20,20,0,0,0
+onshore_wind,0.024,20,20,0,0,0
+battery,0.027,20,20,0,0,0
\ No newline at end of file
diff --git a/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p3/Resources/Storage.csv b/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p3/Resources/Storage.csv
new file mode 100644
index 0000000000..906f5d13c3
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p3/Resources/Storage.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Max_Cap_MW,Max_Cap_MWh,Min_Cap_MW,Min_Cap_MWh,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Self_disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Resource_Type,region,cluster
+battery,1,1,1,1,0,0,-1,-1,0,0,19584,22494,4895,5622,5622,0.15,0.15,0,0.92,0.92,1,10,battery_mid,NE,0
\ No newline at end of file
diff --git a/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p3/Resources/Thermal.csv b/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p3/Resources/Thermal.csv
new file mode 100644
index 0000000000..a06b672285
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p3/Resources/Thermal.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster
+natural_gas_combined_cycle,1,1,1,1,10000,-1,0,65400,10287,3.55,7.43,NG,250,91,2,6,6,0.64,0.64,0.468,0.25,0.5,0,0,1,natural_gas_fired_combined_cycle,NE,1
\ No newline at end of file
diff --git a/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p3/Resources/Vre.csv b/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p3/Resources/Vre.csv
new file mode 100644
index 0000000000..b6f20427d5
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/OneZone_MultiStage/Inputs/Inputs_p3/Resources/Vre.csv
@@ -0,0 +1,3 @@
+Resource,Zone,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,MGA,Resource_Type,region,cluster
+solar_pv,1,1,1,1,500,-1,0,85300,18760,0,9.13,1,solar_photovoltaic,NE,1
+onshore_wind,1,1,1,1,1000,-1,0,97200,43205,0.1,9.12,1,onshore_wind_turbine,NE,1
\ No newline at end of file
diff --git a/Example_Systems/SmallNewEngland/OneZone_MultiStage/README.md b/Example_Systems/SmallNewEngland/OneZone_MultiStage/README.md
index 9c476e4d92..0a1ed3e621 100644
--- a/Example_Systems/SmallNewEngland/OneZone_MultiStage/README.md
+++ b/Example_Systems/SmallNewEngland/OneZone_MultiStage/README.md
@@ -10,7 +10,7 @@ Next, ensure that your settings in `GenX_settings.yml` are correct. The default
The `multi_stage_settings.yml` file contains settings parameters specific to multi-stage modeling. This example is configured for three model periods (`NumPeriods: 3`) of 10 years in length each (`PeriodLength: 10`).
-Multi-period modeling in GenX requires a separate set of model inputs for each period to be modeled, which are located in the directories `Inputs/Inputs_p$`, where `$` is the number of the model period. Although separate model periods can have different costs and policy parameters, the resources names and types, specified in each `Generators_data.csv` must be identical across model periods. In addition, multi-stage modeling with a single zone requires an additional input file, `Generators_data_multi_stage.csv`, also located in the `Inputs/` directory, which contains fields related to resource lifetimes, capital recovery periods, and endogenous retirements.
+Multi-period modeling in GenX requires a separate set of model inputs for each period to be modeled, which are located in the directories `Inputs/Inputs_p$`, where `$` is the number of the model period. Although separate model periods can have different costs and policy parameters, the resources names and types, specified in each resource `.csv` files (included in the `Resources` folder) must be identical across model periods. In addition, multi-stage modeling with a single zone requires an additional input file, `Generators_data_multi_stage.csv`, also located in the `Inputs/` directory, which contains fields related to resource lifetimes, capital recovery periods, and endogenous retirements.
A rate-based carbon cap becomes more stringent across the three model periods, declining from of 1,000 gCO2 per kWh in the first period, 500 gCO2 per kWh in the second period, and 50 gCO2 per kWh in the third period, as specified in the `CO2_cap.csv` input files in `Inputs/Inputs_p1`, `Inputs/Inputs_p2`, and `Inputs/Inputs_p3` respectively.
diff --git a/Example_Systems/SmallNewEngland/Simple_Test_Case/Generators_data.csv b/Example_Systems/SmallNewEngland/Simple_Test_Case/Generators_data.csv
deleted file mode 100644
index 9f14181f1b..0000000000
--- a/Example_Systems/SmallNewEngland/Simple_Test_Case/Generators_data.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,LDS,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Resource_Type,region,cluster
-natural_gas_combined_cycle,1,1,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,65400,0,0,10287,0,0,3.55,0,7.43,NG,250,0.64,0.64,0.468,0,1,1,0,0,natural_gas_fired_combined_cycle,NE,1
-solar_pv,1,0,0,0,0,0,1,0,1,1,0,0,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.13,None,0,1,1,0,0,1,1,0,0,solar_photovoltaic,NE,1
-onshore_wind,1,0,0,0,0,0,1,0,1,1,0,0,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,1,1,0,0,1,1,0,0,onshore_wind_turbine,NE,1
-battery,1,0,0,1,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0,None,0,1,1,0,0,0.92,0.92,1,10,battery_mid,NE,0
diff --git a/Example_Systems/SmallNewEngland/Simple_Test_Case/Resources/Storage.csv b/Example_Systems/SmallNewEngland/Simple_Test_Case/Resources/Storage.csv
new file mode 100644
index 0000000000..a2b149c868
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/Simple_Test_Case/Resources/Storage.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,LDS,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Resource_Type,region,cluster
+battery,1,1,0,1,0,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0.0,None,0,1.0,1.0,0.0,0,0.92,0.92,1,10,battery_mid,NE,0
diff --git a/Example_Systems/SmallNewEngland/Simple_Test_Case/Resources/Thermal.csv b/Example_Systems/SmallNewEngland/Simple_Test_Case/Resources/Thermal.csv
new file mode 100644
index 0000000000..6687ae10d2
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/Simple_Test_Case/Resources/Thermal.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,LDS,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Resource_Type,region,cluster
+natural_gas_combined_cycle,1,1,0,1,0,0,-1,0,65400,10287,3.55,7.43,NG,250,0.64,0.64,0.468,natural_gas_fired_combined_cycle,NE,1
diff --git a/Example_Systems/SmallNewEngland/Simple_Test_Case/Resources/Vre.csv b/Example_Systems/SmallNewEngland/Simple_Test_Case/Resources/Vre.csv
new file mode 100644
index 0000000000..834ead70ed
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/Simple_Test_Case/Resources/Vre.csv
@@ -0,0 +1,3 @@
+Resource,Zone,LDS,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Resource_Type,region,cluster
+solar_pv,1,0,1,1,0,0,-1,0,85300,18760,0.0,9.13,None,0,1.0,1.0,0.0,solar_photovoltaic,NE,1
+onshore_wind,1,0,1,1,0,0,-1,0,97200,43205,0.1,9.12,None,0,1.0,1.0,0.0,onshore_wind_turbine,NE,1
diff --git a/Example_Systems/SmallNewEngland/Test_Down_Time/Generators_data.csv b/Example_Systems/SmallNewEngland/Test_Down_Time/Generators_data.csv
deleted file mode 100644
index ef4ac4e2db..0000000000
--- a/Example_Systems/SmallNewEngland/Test_Down_Time/Generators_data.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,LDS,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Reg_Cost,Rsv_Cost,Hydro_Energy_to_Power_Ratio,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,MGA,Resource_Type,region,cluster
-thermal_plant,1,1,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,0,0,0,0,0,0,0,0,0,10,0,1,NG,1,0,0,4,6,1,1,1.0,0,0,0,0,1,1,0,0,1,thermal_plant,NE,1
-solar_pv,1,0,0,0,0,0,1,0,1,1,0,0,0,0,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,1,None,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,1,solar_photovoltaic,NE,1
-dummy_storage,1,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,dummy_storage,NE,0
diff --git a/Example_Systems/SmallNewEngland/Test_Down_Time/Resources/Storage.csv b/Example_Systems/SmallNewEngland/Test_Down_Time/Resources/Storage.csv
new file mode 100644
index 0000000000..9baa2231ff
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/Test_Down_Time/Resources/Storage.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,LDS,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Reg_Cost,Rsv_Cost,Hydro_Energy_to_Power_Ratio,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,MGA,Resource_Type,region,cluster
+dummy_storage,1,1,0,0,0,0,0,0,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,1,1,0.0,0,0,0,0,1,1,0,0,0,dummy_storage,NE,0
diff --git a/Example_Systems/SmallNewEngland/Test_Down_Time/Resources/Thermal.csv b/Example_Systems/SmallNewEngland/Test_Down_Time/Resources/Thermal.csv
new file mode 100644
index 0000000000..3cc571faf4
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/Test_Down_Time/Resources/Thermal.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,LDS,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Reg_Cost,Rsv_Cost,Hydro_Energy_to_Power_Ratio,MGA,Resource_Type,region,cluster
+thermal_plant,1,1,0,0,0,1,-1,0,0,0,10,1,NG,1,0,0,4,6,1,1,1.0,0,0,0,1,thermal_plant,NE,1
diff --git a/Example_Systems/SmallNewEngland/Test_Down_Time/Resources/Vre.csv b/Example_Systems/SmallNewEngland/Test_Down_Time/Resources/Vre.csv
new file mode 100644
index 0000000000..76fd594c7f
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/Test_Down_Time/Resources/Vre.csv
@@ -0,0 +1,2 @@
+Resource,Zone,LDS,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Reg_Cost,Rsv_Cost,Hydro_Energy_to_Power_Ratio,MGA,Resource_Type,region,cluster
+solar_pv,1,0,1,1,0,0,-1,0,0,0,0,1,None,0,0,0,0,0,1,1,0.0,0,0,0,1,solar_photovoltaic,NE,1
diff --git a/Example_Systems/SmallNewEngland/Test_Up_Time/Generators_data.csv b/Example_Systems/SmallNewEngland/Test_Up_Time/Generators_data.csv
deleted file mode 100644
index 02b530add4..0000000000
--- a/Example_Systems/SmallNewEngland/Test_Up_Time/Generators_data.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,LDS,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Hydro_Energy_to_Power_Ratio,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,MGA,Resource_Type,region,cluster
-thermal_plant,1,1,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,0,0,0,0,0,0,0,0,0,10,0,1,NG,1,0,0,4,6,1,1,1.0,0,0,1,1,0,0,1,thermal_plant,NE,1
-solar_pv,1,0,0,0,0,0,1,0,1,1,0,0,0,0,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,1,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,1,solar_photovoltaic,NE,1
-dummy_storage,1,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,dummy_storage,NE,0
diff --git a/Example_Systems/SmallNewEngland/Test_Up_Time/Resources/Storage.csv b/Example_Systems/SmallNewEngland/Test_Up_Time/Resources/Storage.csv
new file mode 100644
index 0000000000..89dd24583a
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/Test_Up_Time/Resources/Storage.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,LDS,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Hydro_Energy_to_Power_Ratio,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,MGA,Resource_Type,region,cluster
+dummy_storage,1,1,0,0,0,0,0,0,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,1,1,0.0,0,0,1,1,0,0,0,dummy_storage,NE,0
diff --git a/Example_Systems/SmallNewEngland/Test_Up_Time/Resources/Thermal.csv b/Example_Systems/SmallNewEngland/Test_Up_Time/Resources/Thermal.csv
new file mode 100644
index 0000000000..f79b9e8206
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/Test_Up_Time/Resources/Thermal.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,LDS,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Hydro_Energy_to_Power_Ratio,MGA,Resource_Type,region,cluster
+thermal_plant,1,1,0,0,0,1,-1,0,0,0,10,1,NG,1,0,0,4,6,1,1,1.0,0,1,thermal_plant,NE,1
diff --git a/Example_Systems/SmallNewEngland/Test_Up_Time/Resources/Vre.csv b/Example_Systems/SmallNewEngland/Test_Up_Time/Resources/Vre.csv
new file mode 100644
index 0000000000..76d3783140
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/Test_Up_Time/Resources/Vre.csv
@@ -0,0 +1,2 @@
+Resource,Zone,LDS,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Hydro_Energy_to_Power_Ratio,MGA,Resource_Type,region,cluster
+solar_pv,1,0,1,1,0,0,-1,0,0,0,0,1,None,0,0,0,0,0,1,1,0.0,0,1,solar_photovoltaic,NE,1
diff --git a/Example_Systems/SmallNewEngland/ThreeZones/Generators_data.csv b/Example_Systems/SmallNewEngland/ThreeZones/Generators_data.csv
deleted file mode 100644
index f878193357..0000000000
--- a/Example_Systems/SmallNewEngland/ThreeZones/Generators_data.csv
+++ /dev/null
@@ -1,11 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,LDS,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag_1,MinCapTag_2,MinCapTag_3,MGA,Resource_Type,CapRes_1,ESR_1,ESR_2,region,cluster
-MA_natural_gas_combined_cycle,1,1,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,65400,0,0,10287,0,0,3.55,0,7.43,MA_NG,250,91,2,6,6,0.64,0.64,0,0.468,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,natural_gas_fired_combined_cycle,0.93,0,0,MA,1
-MA_solar_pv,1,0,0,0,0,0,1,0,1,1,0,0,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.13,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,1,0,0,1,solar_photovoltaic,0.8,1,1,MA,1
-CT_natural_gas_combined_cycle,2,1,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,65400,0,0,9698,0,0,3.57,0,7.12,CT_NG,250,91,2,6,6,0.64,0.64,0,0.338,0,1,1,0,0,0,0,1,0.133332722,0.266665444,0,0,0,0,0,1,natural_gas_fired_combined_cycle,0.93,0,0,CT,1
-CT_onshore_wind,2,0,0,0,0,0,1,0,1,1,0,0,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,1,onshore_wind_turbine,0.8,1,1,CT,1
-CT_solar_pv,2,0,0,0,0,0,1,0,1,1,0,0,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.16,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,1,solar_photovoltaic,0.8,1,1,CT,1
-ME_natural_gas_combined_cycle,3,1,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,65400,0,0,16291,0,0,4.5,0,12.62,ME_NG,250,91,2,6,6,0.64,0.64,0,0.474,0,1,1,0,0,0,0,1,0.033333333,0.066666667,0,0,0,0,0,1,natural_gas_fired_combined_cycle,0.93,0,0,ME,1
-ME_onshore_wind,3,0,0,0,0,0,1,0,1,1,0,0,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,1,onshore_wind_turbine,0.8,1,1,ME,1
-MA_battery,1,0,0,1,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,0,0,1,0,battery_mid,0.95,0,0,MA,0
-CT_battery,2,0,0,1,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,0,0,1,0,battery_mid,0.95,0,0,CT,0
-ME_battery,3,0,0,1,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,0,0,1,0,battery_mid,0.95,0,0,ME,0
diff --git a/Example_Systems/SmallNewEngland/ThreeZones/Resources/Resource_minimum_capacity_requirement.csv b/Example_Systems/SmallNewEngland/ThreeZones/Resources/Resource_minimum_capacity_requirement.csv
new file mode 100644
index 0000000000..d16e886d07
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/ThreeZones/Resources/Resource_minimum_capacity_requirement.csv
@@ -0,0 +1,11 @@
+Resource,Min_Cap_1,Min_Cap_2,Min_Cap_3
+MA_natural_gas_combined_cycle,0,0,0
+MA_solar_pv,1,0,0
+CT_natural_gas_combined_cycle,0,0,0
+CT_onshore_wind,0,1,0
+CT_solar_pv,0,0,0
+ME_natural_gas_combined_cycle,0,0,0
+ME_onshore_wind,0,0,0
+MA_battery,0,0,1
+CT_battery,0,0,1
+ME_battery,0,0,1
\ No newline at end of file
diff --git a/Example_Systems/SmallNewEngland/ThreeZones/Resources/Storage.csv b/Example_Systems/SmallNewEngland/ThreeZones/Resources/Storage.csv
new file mode 100644
index 0000000000..31d9d93a89
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/ThreeZones/Resources/Storage.csv
@@ -0,0 +1,4 @@
+Resource,Zone,Model,LDS,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster
+MA_battery,1,1,0,1,0,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0.0,None,0,0,0,1.0,1.0,0,0.0,0,0.92,0.92,1,10,0.0,0.0,0,0,0,battery_mid,MA,0
+CT_battery,2,1,0,1,0,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0.0,None,0,0,0,1.0,1.0,0,0.0,0,0.92,0.92,1,10,0.0,0.0,0,0,0,battery_mid,CT,0
+ME_battery,3,1,0,1,0,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0.0,None,0,0,0,1.0,1.0,0,0.0,0,0.92,0.92,1,10,0.0,0.0,0,0,0,battery_mid,ME,0
diff --git a/Example_Systems/SmallNewEngland/ThreeZones/Resources/Thermal.csv b/Example_Systems/SmallNewEngland/ThreeZones/Resources/Thermal.csv
new file mode 100644
index 0000000000..f078838d34
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/ThreeZones/Resources/Thermal.csv
@@ -0,0 +1,4 @@
+Resource,Zone,Model,LDS,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster
+MA_natural_gas_combined_cycle,1,1,0,1,0,0,-1,0,65400,10287,3.55,7.43,MA_NG,250,91,2,6,6,0.64,0.64,0,0.468,0.25,0.5,0,0,1,natural_gas_fired_combined_cycle,MA,1
+CT_natural_gas_combined_cycle,2,1,0,1,0,0,-1,0,65400,9698,3.57,7.12,CT_NG,250,91,2,6,6,0.64,0.64,0,0.338,0.133332722,0.266665444,0,0,1,natural_gas_fired_combined_cycle,CT,1
+ME_natural_gas_combined_cycle,3,1,0,1,0,0,-1,0,65400,16291,4.5,12.62,ME_NG,250,91,2,6,6,0.64,0.64,0,0.474,0.033333333,0.066666667,0,0,1,natural_gas_fired_combined_cycle,ME,1
diff --git a/Example_Systems/SmallNewEngland/ThreeZones/Resources/Vre.csv b/Example_Systems/SmallNewEngland/ThreeZones/Resources/Vre.csv
new file mode 100644
index 0000000000..7b80e308d7
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/ThreeZones/Resources/Vre.csv
@@ -0,0 +1,5 @@
+Resource,Zone,LDS,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster
+MA_solar_pv,1,0,1,1,0,0,-1,0,85300,18760,0.0,9.13,None,0,0,0,1.0,1.0,0,0.0,0.0,0.0,0,0,1,solar_photovoltaic,MA,1
+CT_onshore_wind,2,0,1,1,0,0,-1,0,97200,43205,0.1,9.12,None,0,0,0,1.0,1.0,0,0.0,0.0,0.0,0,0,1,onshore_wind_turbine,CT,1
+CT_solar_pv,2,0,1,1,0,0,-1,0,85300,18760,0.0,9.16,None,0,0,0,1.0,1.0,0,0.0,0.0,0.0,0,0,1,solar_photovoltaic,CT,1
+ME_onshore_wind,3,0,1,1,0,0,-1,0,97200,43205,0.1,9.12,None,0,0,0,1.0,1.0,0,0.0,0.0,0.0,0,0,1,onshore_wind_turbine,ME,1
diff --git a/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p1/Generators_data.csv b/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p1/Generators_data.csv
deleted file mode 100644
index 3d19fcac98..0000000000
--- a/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p1/Generators_data.csv
+++ /dev/null
@@ -1,11 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,MinCapTag_1,MinCapTag_2,MinCapTag_3,MGA,Resource_Type,WACC,CapRes_1,ESR_1,ESR_2,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,region,cluster,LDS
-MA_natural_gas_combined_cycle,1,1,0,0,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,65400,0,0,10287,0,0,3.55,0,7.43,MA_NG,250,91,2,6,6,0.64,0.64,0,0.468,0,1,1,0,0,0,0,1,0.25,0.5,0,0,2,0,0,0,1,natural_gas_fired_combined_cycle,0.039,0.93,0,0,20,20,0,0,0,MA,1,0
-MA_solar_pv,1,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.13,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,7,1,0,0,1,solar_photovoltaic,0.017,0.8,1,1,20,20,0,0,0,MA,1,0
-CT_natural_gas_combined_cycle,2,1,0,0,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,65400,0,0,9698,0,0,3.57,0,7.12,CT_NG,250,91,2,6,6,0.64,0.64,0,0.338,0,1,1,0,0,0,0,1,0.133332722,0.266665444,0,0,2,0,0,0,1,natural_gas_fired_combined_cycle,0.039,0.93,0,0,20,20,0,0,0,CT,1,0
-CT_onshore_wind,2,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,6,0,1,0,1,onshore_wind_turbine,0.024,0.8,1,1,20,20,0,0,0,CT,1,0
-CT_solar_pv,2,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.16,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,7,0,0,0,1,solar_photovoltaic,0.017,0.8,1,1,20,20,0,0,0,CT,1,0
-ME_natural_gas_combined_cycle,3,1,0,0,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,65400,0,0,16291,0,0,4.5,0,12.62,ME_NG,250,91,2,6,6,0.64,0.64,0,0.474,0,1,1,0,0,0,0,1,0.033333333,0.066666667,0,0,2,0,0,0,1,natural_gas_fired_combined_cycle,0.039,0.93,0,0,20,20,0,0,0,ME,1,0
-ME_onshore_wind,3,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,6,0,0,0,1,onshore_wind_turbine,0.024,0.8,1,1,20,20,0,0,0,ME,1,0
-MA_battery,1,0,0,1,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,12,0,0,1,0,battery_mid,0.027,0.95,0,0,20,20,0,0,0,MA,0,0
-CT_battery,2,0,0,1,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,12,0,0,1,0,battery_mid,0.027,0.95,0,0,20,20,0,0,0,CT,0,0
-ME_battery,3,0,0,1,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,12,0,0,1,0,battery_mid,0.027,0.95,0,0,20,20,0,0,0,ME,0,0
diff --git a/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p1/Resources/Storage.csv b/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p1/Resources/Storage.csv
new file mode 100644
index 0000000000..2cb742ee94
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p1/Resources/Storage.csv
@@ -0,0 +1,4 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,MGA,Resource_Type,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,region,cluster,LDS
+MA_battery,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0.0,None,0,0,0,1.0,1.0,0,0.0,0,0.92,0.92,1,10,0.0,0.0,0,0,12,0,battery_mid,0.027,20,20,0,0,0,MA,0,0
+CT_battery,2,1,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0.0,None,0,0,0,1.0,1.0,0,0.0,0,0.92,0.92,1,10,0.0,0.0,0,0,12,0,battery_mid,0.027,20,20,0,0,0,CT,0,0
+ME_battery,3,1,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0.0,None,0,0,0,1.0,1.0,0,0.0,0,0.92,0.92,1,10,0.0,0.0,0,0,12,0,battery_mid,0.027,20,20,0,0,0,ME,0,0
diff --git a/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p1/Resources/Thermal.csv b/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p1/Resources/Thermal.csv
new file mode 100644
index 0000000000..2ac20a154f
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p1/Resources/Thermal.csv
@@ -0,0 +1,4 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,MGA,Resource_Type,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,region,cluster,LDS
+MA_natural_gas_combined_cycle,1,1,1,1,0,-1,0,65400,10287,3.55,7.43,MA_NG,250,91,2,6,6,0.64,0.64,0,0.468,0.25,0.5,0,0,2,1,natural_gas_fired_combined_cycle,0.039,20,20,0,0,0,MA,1,0
+CT_natural_gas_combined_cycle,2,1,1,1,0,-1,0,65400,9698,3.57,7.12,CT_NG,250,91,2,6,6,0.64,0.64,0,0.338,0.133332722,0.266665444,0,0,2,1,natural_gas_fired_combined_cycle,0.039,20,20,0,0,0,CT,1,0
+ME_natural_gas_combined_cycle,3,1,1,1,0,-1,0,65400,16291,4.5,12.62,ME_NG,250,91,2,6,6,0.64,0.64,0,0.474,0.033333333,0.066666667,0,0,2,1,natural_gas_fired_combined_cycle,0.039,20,20,0,0,0,ME,1,0
diff --git a/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p1/Resources/Vre.csv b/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p1/Resources/Vre.csv
new file mode 100644
index 0000000000..9d63b9d261
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p1/Resources/Vre.csv
@@ -0,0 +1,5 @@
+Resource,Zone,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,MGA,Resource_Type,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,region,cluster,LDS
+MA_solar_pv,1,1,1,1,0,-1,0,85300,18760,0.0,9.13,None,0,0,0,1.0,1.0,0,0.0,0.0,0.0,0,0,7,1,solar_photovoltaic,0.017,20,20,0,0,0,MA,1,0
+CT_onshore_wind,2,1,1,1,0,-1,0,97200,43205,0.1,9.12,None,0,0,0,1.0,1.0,0,0.0,0.0,0.0,0,0,6,1,onshore_wind_turbine,0.024,20,20,0,0,0,CT,1,0
+CT_solar_pv,2,1,1,1,0,-1,0,85300,18760,0.0,9.16,None,0,0,0,1.0,1.0,0,0.0,0.0,0.0,0,0,7,1,solar_photovoltaic,0.017,20,20,0,0,0,CT,1,0
+ME_onshore_wind,3,1,1,1,0,-1,0,97200,43205,0.1,9.12,None,0,0,0,1.0,1.0,0,0.0,0.0,0.0,0,0,6,1,onshore_wind_turbine,0.024,20,20,0,0,0,ME,1,0
diff --git a/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p2/Generators_data.csv b/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p2/Generators_data.csv
deleted file mode 100644
index 3d19fcac98..0000000000
--- a/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p2/Generators_data.csv
+++ /dev/null
@@ -1,11 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,MinCapTag_1,MinCapTag_2,MinCapTag_3,MGA,Resource_Type,WACC,CapRes_1,ESR_1,ESR_2,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,region,cluster,LDS
-MA_natural_gas_combined_cycle,1,1,0,0,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,65400,0,0,10287,0,0,3.55,0,7.43,MA_NG,250,91,2,6,6,0.64,0.64,0,0.468,0,1,1,0,0,0,0,1,0.25,0.5,0,0,2,0,0,0,1,natural_gas_fired_combined_cycle,0.039,0.93,0,0,20,20,0,0,0,MA,1,0
-MA_solar_pv,1,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.13,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,7,1,0,0,1,solar_photovoltaic,0.017,0.8,1,1,20,20,0,0,0,MA,1,0
-CT_natural_gas_combined_cycle,2,1,0,0,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,65400,0,0,9698,0,0,3.57,0,7.12,CT_NG,250,91,2,6,6,0.64,0.64,0,0.338,0,1,1,0,0,0,0,1,0.133332722,0.266665444,0,0,2,0,0,0,1,natural_gas_fired_combined_cycle,0.039,0.93,0,0,20,20,0,0,0,CT,1,0
-CT_onshore_wind,2,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,6,0,1,0,1,onshore_wind_turbine,0.024,0.8,1,1,20,20,0,0,0,CT,1,0
-CT_solar_pv,2,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.16,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,7,0,0,0,1,solar_photovoltaic,0.017,0.8,1,1,20,20,0,0,0,CT,1,0
-ME_natural_gas_combined_cycle,3,1,0,0,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,65400,0,0,16291,0,0,4.5,0,12.62,ME_NG,250,91,2,6,6,0.64,0.64,0,0.474,0,1,1,0,0,0,0,1,0.033333333,0.066666667,0,0,2,0,0,0,1,natural_gas_fired_combined_cycle,0.039,0.93,0,0,20,20,0,0,0,ME,1,0
-ME_onshore_wind,3,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,6,0,0,0,1,onshore_wind_turbine,0.024,0.8,1,1,20,20,0,0,0,ME,1,0
-MA_battery,1,0,0,1,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,12,0,0,1,0,battery_mid,0.027,0.95,0,0,20,20,0,0,0,MA,0,0
-CT_battery,2,0,0,1,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,12,0,0,1,0,battery_mid,0.027,0.95,0,0,20,20,0,0,0,CT,0,0
-ME_battery,3,0,0,1,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,12,0,0,1,0,battery_mid,0.027,0.95,0,0,20,20,0,0,0,ME,0,0
diff --git a/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p2/Resources/Storage.csv b/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p2/Resources/Storage.csv
new file mode 100644
index 0000000000..2cb742ee94
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p2/Resources/Storage.csv
@@ -0,0 +1,4 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,MGA,Resource_Type,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,region,cluster,LDS
+MA_battery,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0.0,None,0,0,0,1.0,1.0,0,0.0,0,0.92,0.92,1,10,0.0,0.0,0,0,12,0,battery_mid,0.027,20,20,0,0,0,MA,0,0
+CT_battery,2,1,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0.0,None,0,0,0,1.0,1.0,0,0.0,0,0.92,0.92,1,10,0.0,0.0,0,0,12,0,battery_mid,0.027,20,20,0,0,0,CT,0,0
+ME_battery,3,1,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0.0,None,0,0,0,1.0,1.0,0,0.0,0,0.92,0.92,1,10,0.0,0.0,0,0,12,0,battery_mid,0.027,20,20,0,0,0,ME,0,0
diff --git a/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p2/Resources/Thermal.csv b/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p2/Resources/Thermal.csv
new file mode 100644
index 0000000000..2ac20a154f
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p2/Resources/Thermal.csv
@@ -0,0 +1,4 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,MGA,Resource_Type,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,region,cluster,LDS
+MA_natural_gas_combined_cycle,1,1,1,1,0,-1,0,65400,10287,3.55,7.43,MA_NG,250,91,2,6,6,0.64,0.64,0,0.468,0.25,0.5,0,0,2,1,natural_gas_fired_combined_cycle,0.039,20,20,0,0,0,MA,1,0
+CT_natural_gas_combined_cycle,2,1,1,1,0,-1,0,65400,9698,3.57,7.12,CT_NG,250,91,2,6,6,0.64,0.64,0,0.338,0.133332722,0.266665444,0,0,2,1,natural_gas_fired_combined_cycle,0.039,20,20,0,0,0,CT,1,0
+ME_natural_gas_combined_cycle,3,1,1,1,0,-1,0,65400,16291,4.5,12.62,ME_NG,250,91,2,6,6,0.64,0.64,0,0.474,0.033333333,0.066666667,0,0,2,1,natural_gas_fired_combined_cycle,0.039,20,20,0,0,0,ME,1,0
diff --git a/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p2/Resources/Vre.csv b/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p2/Resources/Vre.csv
new file mode 100644
index 0000000000..9d63b9d261
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p2/Resources/Vre.csv
@@ -0,0 +1,5 @@
+Resource,Zone,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,MGA,Resource_Type,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,region,cluster,LDS
+MA_solar_pv,1,1,1,1,0,-1,0,85300,18760,0.0,9.13,None,0,0,0,1.0,1.0,0,0.0,0.0,0.0,0,0,7,1,solar_photovoltaic,0.017,20,20,0,0,0,MA,1,0
+CT_onshore_wind,2,1,1,1,0,-1,0,97200,43205,0.1,9.12,None,0,0,0,1.0,1.0,0,0.0,0.0,0.0,0,0,6,1,onshore_wind_turbine,0.024,20,20,0,0,0,CT,1,0
+CT_solar_pv,2,1,1,1,0,-1,0,85300,18760,0.0,9.16,None,0,0,0,1.0,1.0,0,0.0,0.0,0.0,0,0,7,1,solar_photovoltaic,0.017,20,20,0,0,0,CT,1,0
+ME_onshore_wind,3,1,1,1,0,-1,0,97200,43205,0.1,9.12,None,0,0,0,1.0,1.0,0,0.0,0.0,0.0,0,0,6,1,onshore_wind_turbine,0.024,20,20,0,0,0,ME,1,0
diff --git a/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p3/Generators_data.csv b/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p3/Generators_data.csv
deleted file mode 100644
index 3d19fcac98..0000000000
--- a/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p3/Generators_data.csv
+++ /dev/null
@@ -1,11 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,MinCapTag_1,MinCapTag_2,MinCapTag_3,MGA,Resource_Type,WACC,CapRes_1,ESR_1,ESR_2,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,region,cluster,LDS
-MA_natural_gas_combined_cycle,1,1,0,0,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,65400,0,0,10287,0,0,3.55,0,7.43,MA_NG,250,91,2,6,6,0.64,0.64,0,0.468,0,1,1,0,0,0,0,1,0.25,0.5,0,0,2,0,0,0,1,natural_gas_fired_combined_cycle,0.039,0.93,0,0,20,20,0,0,0,MA,1,0
-MA_solar_pv,1,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.13,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,7,1,0,0,1,solar_photovoltaic,0.017,0.8,1,1,20,20,0,0,0,MA,1,0
-CT_natural_gas_combined_cycle,2,1,0,0,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,65400,0,0,9698,0,0,3.57,0,7.12,CT_NG,250,91,2,6,6,0.64,0.64,0,0.338,0,1,1,0,0,0,0,1,0.133332722,0.266665444,0,0,2,0,0,0,1,natural_gas_fired_combined_cycle,0.039,0.93,0,0,20,20,0,0,0,CT,1,0
-CT_onshore_wind,2,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,6,0,1,0,1,onshore_wind_turbine,0.024,0.8,1,1,20,20,0,0,0,CT,1,0
-CT_solar_pv,2,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.16,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,7,0,0,0,1,solar_photovoltaic,0.017,0.8,1,1,20,20,0,0,0,CT,1,0
-ME_natural_gas_combined_cycle,3,1,0,0,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,65400,0,0,16291,0,0,4.5,0,12.62,ME_NG,250,91,2,6,6,0.64,0.64,0,0.474,0,1,1,0,0,0,0,1,0.033333333,0.066666667,0,0,2,0,0,0,1,natural_gas_fired_combined_cycle,0.039,0.93,0,0,20,20,0,0,0,ME,1,0
-ME_onshore_wind,3,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,6,0,0,0,1,onshore_wind_turbine,0.024,0.8,1,1,20,20,0,0,0,ME,1,0
-MA_battery,1,0,0,1,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,12,0,0,1,0,battery_mid,0.027,0.95,0,0,20,20,0,0,0,MA,0,0
-CT_battery,2,0,0,1,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,12,0,0,1,0,battery_mid,0.027,0.95,0,0,20,20,0,0,0,CT,0,0
-ME_battery,3,0,0,1,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,12,0,0,1,0,battery_mid,0.027,0.95,0,0,20,20,0,0,0,ME,0,0
diff --git a/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p3/Resources/Storage.csv b/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p3/Resources/Storage.csv
new file mode 100644
index 0000000000..2cb742ee94
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p3/Resources/Storage.csv
@@ -0,0 +1,4 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,MGA,Resource_Type,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,region,cluster,LDS
+MA_battery,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0.0,None,0,0,0,1.0,1.0,0,0.0,0,0.92,0.92,1,10,0.0,0.0,0,0,12,0,battery_mid,0.027,20,20,0,0,0,MA,0,0
+CT_battery,2,1,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0.0,None,0,0,0,1.0,1.0,0,0.0,0,0.92,0.92,1,10,0.0,0.0,0,0,12,0,battery_mid,0.027,20,20,0,0,0,CT,0,0
+ME_battery,3,1,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0.0,None,0,0,0,1.0,1.0,0,0.0,0,0.92,0.92,1,10,0.0,0.0,0,0,12,0,battery_mid,0.027,20,20,0,0,0,ME,0,0
diff --git a/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p3/Resources/Thermal.csv b/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p3/Resources/Thermal.csv
new file mode 100644
index 0000000000..2ac20a154f
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p3/Resources/Thermal.csv
@@ -0,0 +1,4 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,MGA,Resource_Type,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,region,cluster,LDS
+MA_natural_gas_combined_cycle,1,1,1,1,0,-1,0,65400,10287,3.55,7.43,MA_NG,250,91,2,6,6,0.64,0.64,0,0.468,0.25,0.5,0,0,2,1,natural_gas_fired_combined_cycle,0.039,20,20,0,0,0,MA,1,0
+CT_natural_gas_combined_cycle,2,1,1,1,0,-1,0,65400,9698,3.57,7.12,CT_NG,250,91,2,6,6,0.64,0.64,0,0.338,0.133332722,0.266665444,0,0,2,1,natural_gas_fired_combined_cycle,0.039,20,20,0,0,0,CT,1,0
+ME_natural_gas_combined_cycle,3,1,1,1,0,-1,0,65400,16291,4.5,12.62,ME_NG,250,91,2,6,6,0.64,0.64,0,0.474,0.033333333,0.066666667,0,0,2,1,natural_gas_fired_combined_cycle,0.039,20,20,0,0,0,ME,1,0
diff --git a/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p3/Resources/Vre.csv b/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p3/Resources/Vre.csv
new file mode 100644
index 0000000000..9d63b9d261
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/Inputs/Inputs_p3/Resources/Vre.csv
@@ -0,0 +1,5 @@
+Resource,Zone,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,MGA,Resource_Type,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,region,cluster,LDS
+MA_solar_pv,1,1,1,1,0,-1,0,85300,18760,0.0,9.13,None,0,0,0,1.0,1.0,0,0.0,0.0,0.0,0,0,7,1,solar_photovoltaic,0.017,20,20,0,0,0,MA,1,0
+CT_onshore_wind,2,1,1,1,0,-1,0,97200,43205,0.1,9.12,None,0,0,0,1.0,1.0,0,0.0,0.0,0.0,0,0,6,1,onshore_wind_turbine,0.024,20,20,0,0,0,CT,1,0
+CT_solar_pv,2,1,1,1,0,-1,0,85300,18760,0.0,9.16,None,0,0,0,1.0,1.0,0,0.0,0.0,0.0,0,0,7,1,solar_photovoltaic,0.017,20,20,0,0,0,CT,1,0
+ME_onshore_wind,3,1,1,1,0,-1,0,97200,43205,0.1,9.12,None,0,0,0,1.0,1.0,0,0.0,0.0,0.0,0,0,6,1,onshore_wind_turbine,0.024,20,20,0,0,0,ME,1,0
diff --git a/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/README.md b/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/README.md
index 895a1db94a..61a974867d 100644
--- a/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/README.md
+++ b/Example_Systems/SmallNewEngland/ThreeZones_MultiStage/README.md
@@ -10,7 +10,7 @@ Next, ensure that your settings in `GenX_settings.yml` are correct. The default
The `multi_stage_settings.yml` file contains settings parameters specific to multi-stage modeling. This example is configured for three model periods (`NumPeriods: 3`) of 10 years in length each (`PeriodLength: 10`).
-Multi-period modeling in GenX requires a separate set of model inputs for each period to be modeled, which are located in the directories `Inputs/Inputs_p$`, where `$` is the number of the model period. Although separate model periods can have different costs and policy parameters, the resources names and types, specified in each `Generators_data.csv` must be identical across model periods. In addition, multi-stage modeling with a single zone requires an additional input file, `Generators_data_multi_stage.csv`, also located in the `Inputs/` directory, which contains fields related to resource lifetimes, capital recovery periods, and endogenous retirements.
+Multi-period modeling in GenX requires a separate set of model inputs for each period to be modeled, which are located in the directories `Inputs/Inputs_p$`, where `$` is the number of the model period. Although separate model periods can have different costs and policy parameters, the resources names and types, specified in each resource `.csv` files (included in the `Resources` folder) must be identical across model periods. In addition, multi-stage modeling with a single zone requires an additional input file, `Generators_data_multi_stage.csv`, also located in the `Inputs/` directory, which contains fields related to resource lifetimes, capital recovery periods, and endogenous retirements.
A rate-based carbon cap becomes more stringent across the three model periods and for each zone, declining from of 1,000 gCO2 per kWh in the first period, 500 gCO2 per kWh in the second period, and 50 gCO2 per kWh in the third period, as specified in the `CO2_cap.csv` input files in `Inputs/Inputs_p1`, `Inputs/Inputs_p2`, and `Inputs/Inputs_p3` respectively.
diff --git a/Example_Systems/SmallNewEngland/ThreeZones_Slack_Variables_Example/Generators_data.csv b/Example_Systems/SmallNewEngland/ThreeZones_Slack_Variables_Example/Generators_data.csv
deleted file mode 100644
index dce2d29e41..0000000000
--- a/Example_Systems/SmallNewEngland/ThreeZones_Slack_Variables_Example/Generators_data.csv
+++ /dev/null
@@ -1,11 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,LDS,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag_1,MinCapTag_2,MinCapTag_3,MaxCapTag_1,MGA,Resource_Type,CapRes_1,ESR_1,ESR_2,region,cluster
-MA_natural_gas_combined_cycle,1,1,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,65400,0,0,10287,0,0,3.55,0,7.43,MA_NG,250,91,2,6,6,0.64,0.64,0,0.468,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,1,natural_gas_fired_combined_cycle,0.93,0,0,MA,1
-MA_solar_pv,1,0,0,0,0,0,1,0,1,1,0,0,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.13,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,solar_photovoltaic,0.8,1,1,MA,1
-CT_natural_gas_combined_cycle,2,1,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,65400,0,0,9698,0,0,3.57,0,7.12,CT_NG,250,91,2,6,6,0.64,0.64,0,0.338,0,1,1,0,0,0,0,1,0.133332722,0.266665444,0,0,0,0,0,1,1,natural_gas_fired_combined_cycle,0.93,0,0,CT,1
-CT_onshore_wind,2,0,0,0,0,0,1,0,1,1,0,0,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,0,1,onshore_wind_turbine,0.8,1,1,CT,1
-CT_solar_pv,2,0,0,0,0,0,1,0,1,1,0,0,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.16,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,solar_photovoltaic,0.8,1,1,CT,1
-ME_natural_gas_combined_cycle,3,1,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,65400,0,0,16291,0,0,4.5,0,12.62,ME_NG,250,91,2,6,6,0.64,0.64,0,0.474,0,1,1,0,0,0,0,1,0.033333333,0.066666667,0,0,0,0,0,0,1,natural_gas_fired_combined_cycle,0.93,0,0,ME,1
-ME_onshore_wind,3,0,0,0,0,0,1,0,1,1,0,0,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,onshore_wind_turbine,0.8,1,1,ME,1
-MA_battery,1,0,0,1,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,0,0,1,0,0,battery_mid,0.95,0,0,MA,0
-CT_battery,2,0,0,1,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,0,0,1,0,0,battery_mid,0.95,0,0,CT,0
-ME_battery,3,0,0,1,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,0,0,1,0,0,battery_mid,0.95,0,0,ME,0
diff --git a/Example_Systems/SmallNewEngland/ThreeZones_Slack_Variables_Example/Resources/Storage.csv b/Example_Systems/SmallNewEngland/ThreeZones_Slack_Variables_Example/Resources/Storage.csv
new file mode 100644
index 0000000000..31d9d93a89
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/ThreeZones_Slack_Variables_Example/Resources/Storage.csv
@@ -0,0 +1,4 @@
+Resource,Zone,Model,LDS,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster
+MA_battery,1,1,0,1,0,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0.0,None,0,0,0,1.0,1.0,0,0.0,0,0.92,0.92,1,10,0.0,0.0,0,0,0,battery_mid,MA,0
+CT_battery,2,1,0,1,0,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0.0,None,0,0,0,1.0,1.0,0,0.0,0,0.92,0.92,1,10,0.0,0.0,0,0,0,battery_mid,CT,0
+ME_battery,3,1,0,1,0,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0.0,None,0,0,0,1.0,1.0,0,0.0,0,0.92,0.92,1,10,0.0,0.0,0,0,0,battery_mid,ME,0
diff --git a/Example_Systems/SmallNewEngland/ThreeZones_Slack_Variables_Example/Resources/Thermal.csv b/Example_Systems/SmallNewEngland/ThreeZones_Slack_Variables_Example/Resources/Thermal.csv
new file mode 100644
index 0000000000..f078838d34
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/ThreeZones_Slack_Variables_Example/Resources/Thermal.csv
@@ -0,0 +1,4 @@
+Resource,Zone,Model,LDS,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster
+MA_natural_gas_combined_cycle,1,1,0,1,0,0,-1,0,65400,10287,3.55,7.43,MA_NG,250,91,2,6,6,0.64,0.64,0,0.468,0.25,0.5,0,0,1,natural_gas_fired_combined_cycle,MA,1
+CT_natural_gas_combined_cycle,2,1,0,1,0,0,-1,0,65400,9698,3.57,7.12,CT_NG,250,91,2,6,6,0.64,0.64,0,0.338,0.133332722,0.266665444,0,0,1,natural_gas_fired_combined_cycle,CT,1
+ME_natural_gas_combined_cycle,3,1,0,1,0,0,-1,0,65400,16291,4.5,12.62,ME_NG,250,91,2,6,6,0.64,0.64,0,0.474,0.033333333,0.066666667,0,0,1,natural_gas_fired_combined_cycle,ME,1
diff --git a/Example_Systems/SmallNewEngland/ThreeZones_Slack_Variables_Example/Resources/Vre.csv b/Example_Systems/SmallNewEngland/ThreeZones_Slack_Variables_Example/Resources/Vre.csv
new file mode 100644
index 0000000000..7b80e308d7
--- /dev/null
+++ b/Example_Systems/SmallNewEngland/ThreeZones_Slack_Variables_Example/Resources/Vre.csv
@@ -0,0 +1,5 @@
+Resource,Zone,LDS,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster
+MA_solar_pv,1,0,1,1,0,0,-1,0,85300,18760,0.0,9.13,None,0,0,0,1.0,1.0,0,0.0,0.0,0.0,0,0,1,solar_photovoltaic,MA,1
+CT_onshore_wind,2,0,1,1,0,0,-1,0,97200,43205,0.1,9.12,None,0,0,0,1.0,1.0,0,0.0,0.0,0.0,0,0,1,onshore_wind_turbine,CT,1
+CT_solar_pv,2,0,1,1,0,0,-1,0,85300,18760,0.0,9.16,None,0,0,0,1.0,1.0,0,0.0,0.0,0.0,0,0,1,solar_photovoltaic,CT,1
+ME_onshore_wind,3,0,1,1,0,0,-1,0,97200,43205,0.1,9.12,None,0,0,0,1.0,1.0,0,0.0,0.0,0.0,0,0,1,onshore_wind_turbine,ME,1
diff --git a/Example_Systems/VREStor_Example/Generators_data.csv b/Example_Systems/VREStor_Example/Generators_data.csv
deleted file mode 100644
index be63750d27..0000000000
--- a/Example_Systems/VREStor_Example/Generators_data.csv
+++ /dev/null
@@ -1,272 +0,0 @@
-region,Resource,technology,cluster,R_ID,Zone,Num_VRE_Bins,THERM,VRE,MUST_RUN,STOR,FLEX,HYDRO,LDS,CapRes_1,Min_Share,Max_Share,Existing_Cap_MWh,Existing_Cap_MW,Existing_Charge_Cap_MW,num_units,unmodified_existing_cap_mw,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Min_Cap_MWh,Max_Charge_Cap_MW,Min_Charge_Cap_MW,Min_Share_percent,Max_Share_percent,capex_mw,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,capex_mwh,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWhyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_Charge_per_MWyr,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,heat_rate_mmbtu_mwh_iqr,heat_rate_mmbtu_mwh_std,Fuel,Min_Power,Self_Disch,Eff_Up,Eff_Down,Hydro_Energy_to_Power_Ratio,Min_Duration,Max_Duration,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,Max_Flexible_Demand_Delay,Max_Flexible_Demand_Advance,Flexible_Demand_Energy_Eff,CO2_Capture_Rate,CO2_Capture_Cost_per_Metric_Ton,Ramp_Up_Percentage,Ramp_Dn_Percentage,Up_Time,Down_Time,spur_miles,spur_inv_mwyr,spur_capex,offshore_spur_miles,offshore_spur_capex,tx_miles,tx_capex,interconnect_annuity,regional_cost_multiplier,cap_recovery_years,wacc_real,ids,MISO_CleanPower,NY_CleanPower,PJM_CleanPower,SERC_CleanPower,variable_CF,RETRO,Num_RETRO_Sources,Retro1_Source,Retro1_Efficiency,Retro1_Inv_Cost_per_MWyr,Retro2_Source,Retro2_Efficiency,Retro2_Inv_Cost_per_MWyr,MinCapTag_1,MinCapTag_2,MinCapTag_3,MaxCapTag_1,MaxCapTag_2,MaxCapTag_3,CapRes_2,CapRes_3,VRE_STOR
-EIC,EIC_batteries_1,Batteries,1,1,1,0,0,0,0,1,0,0,0,0.95,0,0,1424.4,712.2,0,42,712.194,0,0,16.96,0,0.0,0,0,0,0,0,0,0.0,0.0,6235,0.0,0,0,0.15,0.15,0,0,0,0.0,10.34,0.0,0.0,None,0.041,0,0.92,0.92,0,1,10,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_biomass_1,Biomass,1,2,1,0,0,0,1,0,0,0,0,0.93,0,0,0.0,1722.5,0,1351,6256.481,0,0,1.27,0,0.0,0,0,0,0,0,0,0.0,0.0,150850,0.0,0,0,7.32,0.0,0,0,172,0.0,17.03,1.056,3.066,biomass,0.308,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_conventional_hydroelectric_1,Conventional Hydroelectric,1,3,1,0,0,0,0,0,0,1,0,0.8,0,0,0.0,24200.8,0,748,24200.792,0,0,32.35,0,0.0,0,0,0,0,0,0,0.0,0.0,47048,0.0,0,0,0.0,0.0,0,0,0,0.0,10.34,0.0,0.0,None,0.273,0,1.0,1.0,1,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.344661608,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_conventional_steam_coal_1,Conventional Steam Coal,1,4,1,0,1,0,0,0,0,0,0,0.93,0,0,0.0,12806.9,0,72,12806.928,0,1,177.87,0,0.0,0,0,0,0,0,0,0.0,0.0,78258,0.0,0,0,1.88,0.0,0,0,124,16.5,13.34,2.921,4.478,east_north_central_coal,0.5,0,1.0,1.0,0,0,0,0.095,0.19,0,0,0,0,0,0.0,0,0.57,0.57,24,24,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_conventional_steam_coal_2,Conventional Steam Coal,2,5,1,0,1,0,0,0,0,0,0,0.93,0,0,0.0,109345.4,0,187,109345.445,0,1,584.74,0,0.0,0,0,0,0,0,0,0.0,0.0,64567,0.0,0,0,1.88,0.0,0,0,124,16.5,10.89,1.402,1.167,east_north_central_coal,0.5,0,1.0,1.0,0,0,0,0.095,0.19,0,0,0,0,0,0.0,0,0.57,0.57,24,24,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_hydroelectric_pumped_storage_1,Hydroelectric Pumped Storage,1,6,1,0,0,0,0,1,0,0,0,0.95,0,0,275638.0,17783.1,0,104,17783.064,0,0,170.99,0,0.0,0,0,0,0,0,0,0.0,0.0,47048,0.0,0,0,0.15,0.15,0,0,0,0.0,10.34,0.0,0.0,None,0.524,0,0.866,0.866,0,1,20,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_natural_gas_fired_combined_cycle_1,Natural Gas Fired Combined Cycle,1,7,1,0,1,0,0,0,0,0,0,0.93,0,0,0.0,27155.3,0,166,27155.276,0,1,163.59,0,0.0,0,0,0,0,0,0,0.0,0.0,16322,0.0,0,0,4.53,0.0,0,0,92,2.0,9.24,2.047,2.71,east_north_central_naturalgas,0.3,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_natural_gas_fired_combined_cycle_2,Natural Gas Fired Combined Cycle,2,8,1,0,1,0,0,0,0,0,0,0.93,0,0,0.0,169897.4,0,266,169897.392,0,1,638.71,0,0.0,0,0,0,0,0,0,0.0,0.0,11042,0.0,0,0,3.58,0.0,0,0,92,2.0,7.34,0.657,0.613,east_north_central_naturalgas,0.3,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_natural_gas_fired_combustion_turbine_1,Natural Gas Fired Combustion Turbine,1,9,1,0,1,0,0,0,0,0,0,0.93,0,0,0.0,98926.5,0,988,98926.464,0,1,100.13,0,0.0,0,0,0,0,0,0,0.0,0.0,10031,0.0,0,0,5.28,0.0,0,0,119,3.5,12.03,2.186,2.031,east_north_central_naturalgas,0.3,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_natural_gas_fired_combustion_turbine_2,Natural Gas Fired Combustion Turbine,2,10,1,0,1,0,0,0,0,0,0,0.93,0,0,0.0,10412.9,0,333,10412.91,0,1,31.27,0,0.0,0,0,0,0,0,0,0.0,0.0,13557,0.0,0,0,5.28,0.0,0,0,119,3.5,14.66,4.035,4.747,east_north_central_naturalgas,0.3,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_natural_gas_internal_combustion_engine_1,Natural Gas Internal Combustion Engine,1,11,1,0,1,0,0,0,0,0,0,0.93,0,0,0.0,2578.5,0,581,2578.478,0,1,4.44,0,0.0,0,0,0,0,0,0,0.0,0.0,21000,0.0,0,0,5.29,0.0,0,0,38,0.0,10.29,1.183,3.689,east_north_central_naturalgas,0.18,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_natural_gas_steam_turbine_1,Natural Gas Steam Turbine,1,12,1,0,1,0,0,0,0,0,0,0.93,0,0,0.0,39625.2,0,195,39625.17,0,1,203.21,0,0.0,0,0,0,0,0,0,0.0,0.0,35537,0.0,0,0,1.06,0.0,0,0,87,13.7,12.8,2.36,4.946,east_north_central_naturalgas,0.5,0,1.0,1.0,0,0,0,0.63,1.26,0,0,0,0,0,0.0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_nuclear_1,Nuclear,1,13,1,0,1,0,0,0,0,0,0,0.93,0,0,0.0,82406.6,0,80,82406.56,0,1,1030.08,0,0.0,0,0,0,0,0,0,0.0,0.0,214812,0.0,0,0,2.84,0.0,0,0,248,0.0,10.45,0.0,0.006,east_north_central_uranium,0.5,0,1.0,1.0,0,0,0,0.041666667,0.083333333,0,0,0,0,0,0.0,0,0.25,0.25,24,24,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshore_wind_turbine_1,Offshore Wind Turbine,1,14,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,29.3,0,1,29.3,0,1,29.3,0,0.0,0,0,0,0,0,0,0.0,0.0,111496,0.0,0,0,0.0,0.0,0,0,0,0.0,10.34,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_onshore_wind_turbine_1,Onshore Wind Turbine,1,15,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,47407.4,0,710,47407.41,0,1,66.77,0,0.0,0,0,0,0,0,0,0.0,0.0,43000,0.0,0,0,0.0,0.0,0,0,0,0.0,10.34,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.296887743,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_petroleum_liquids_1,Petroleum Liquids,1,16,1,0,1,0,0,0,0,0,0,0.93,0,0,0.0,23196.2,0,2328,23196.192,0,1,9.96,0,0.0,0,0,0,0,0,0,0.0,0.0,21000,0.0,0,0,7.97,0.0,0,0,38,0.0,15.5,3.607,4.446,east_north_central_distillate,0.18,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_small_hydroelectric_1,Small Hydroelectric,1,17,1,0,0,0,1,0,0,0,0,0.8,0,0,0.0,1672.2,0,1579,3633.279,0,0,1.06,0,0.0,0,0,0,0,0,0,0.0,0.0,47048,0.0,0,0,0.0,0.0,0,0,0,0.0,10.34,0.0,0.0,None,0.273,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.344661608,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_solar_photovoltaic_1,Solar Photovoltaic,1,18,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,8533.9,0,1435,8533.945,0,1,5.95,0,0.0,0,0,0,0,0,0,0.0,0.0,22623,0.0,0,0,0.0,0.0,0,0,0,0.0,10.34,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.199617603,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-TRE,TRE_batteries_1,Batteries,1,19,2,0,0,0,0,1,0,0,0,0.0,0,0,721.4,360.7,0,8,360.704,0,0,45.09,0,0.0,0,0,0,0,0,0,0.0,0.0,6235,0.0,0,0,0.15,0.15,0,0,0,0.0,10.34,0.0,0.0,None,0.001,0,0.92,0.92,0,1,10,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95,0.0,0
-TRE,TRE_biomass_1,Biomass,1,20,2,0,0,0,1,0,0,0,0,0.0,0,0,0.0,44.5,0,30,162.9,0,0,1.48,0,0.0,0,0,0,0,0,0,0.0,0.0,150850,0.0,0,0,6.51,0.0,0,0,172,0.0,15.15,0.636,1.888,biomass,0.591,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0.0,0
-TRE,TRE_conventional_hydroelectric_1,Conventional Hydroelectric,1,21,2,0,0,0,0,0,0,1,0,0.0,0,0,0.0,477.0,0,19,476.995,0,0,25.1,0,0.0,0,0,0,0,0,0,0.0,0.0,47048,0.0,0,0,0.0,0.0,0,0,0,0.0,10.34,0.0,0.0,None,0.0,0,1.0,1.0,1,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.094297837,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_conventional_steam_coal_1,Conventional Steam Coal,1,22,2,0,1,0,0,0,0,0,0,0.0,0,0,0.0,5063.6,0,7,5063.597,0,1,723.37,0,0.0,0,0,0,0,0,0,0.0,0.0,60405,0.0,0,0,1.88,0.0,0,0,124,16.5,10.33,0.655,0.422,west_south_central_coal,0.5,0,1.0,1.0,0,0,0,0.095,0.19,0,0,0,0,0,0.0,0,0.57,0.57,24,24,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0.0,0
-TRE,TRE_conventional_steam_coal_2,Conventional Steam Coal,2,23,2,0,1,0,0,0,0,0,0,0.0,0,0,0.0,3713.0,0,7,3713.003,0,1,530.43,0,0.0,0,0,0,0,0,0,0.0,0.0,68432,0.0,0,0,1.88,0.0,0,0,124,16.5,12.13,1.016,0.74,west_south_central_coal,0.5,0,1.0,1.0,0,0,0,0.095,0.19,0,0,0,0,0,0.0,0,0.57,0.57,24,24,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0.0,0
-TRE,TRE_natural_gas_fired_combined_cycle_1,Natural Gas Fired Combined Cycle,1,24,2,0,1,0,0,0,0,0,0,0.0,0,0,0.0,30139.1,0,52,30139.096,0,1,579.6,0,0.0,0,0,0,0,0,0,0.0,0.0,10912,0.0,0,0,3.59,0.0,0,0,92,2.0,7.72,0.514,0.965,west_south_central_naturalgas,0.3,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0.0,0
-TRE,TRE_natural_gas_fired_combined_cycle_2,Natural Gas Fired Combined Cycle,2,25,2,0,1,0,0,0,0,0,0,0.0,0,0,0.0,6317.6,0,20,6317.6,0,1,315.88,0,0.0,0,0,0,0,0,0,0.0,0.0,15698,0.0,0,0,4.36,0.0,0,0,92,2.0,9.8,2.241,2.318,west_south_central_naturalgas,0.3,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0.0,0
-TRE,TRE_natural_gas_fired_combustion_turbine_1,Natural Gas Fired Combustion Turbine,1,26,2,0,1,0,0,0,0,0,0,0.0,0,0,0.0,2924.0,0,36,2923.992,0,1,81.22,0,0.0,0,0,0,0,0,0,0.0,0.0,10001,0.0,0,0,5.28,0.0,0,0,119,3.5,14.08,0.577,1.146,west_south_central_naturalgas,0.3,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0.0,0
-TRE,TRE_natural_gas_fired_combustion_turbine_2,Natural Gas Fired Combustion Turbine,2,27,2,0,1,0,0,0,0,0,0,0.0,0,0,0.0,2826.9,0,56,2826.88,0,1,50.48,0,0.0,0,0,0,0,0,0,0.0,0.0,11926,0.0,0,0,5.28,0.0,0,0,119,3.5,11.11,1.398,1.008,west_south_central_naturalgas,0.3,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0.0,0
-TRE,TRE_natural_gas_internal_combustion_engine_1,Natural Gas Internal Combustion Engine,1,28,2,0,1,0,0,0,0,0,0,0.0,0,0,0.0,502.7,0,47,502.712,0,1,10.7,0,0.0,0,0,0,0,0,0,0.0,0.0,21000,0.0,0,0,4.72,0.0,0,0,38,0.0,9.18,0.648,0.328,west_south_central_naturalgas,0.18,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0.0,0
-TRE,TRE_natural_gas_steam_turbine_1,Natural Gas Steam Turbine,1,29,2,0,1,0,0,0,0,0,0,0.0,0,0,0.0,8249.5,0,35,8249.5,0,1,235.7,0,0.0,0,0,0,0,0,0,0.0,0.0,34182,0.0,0,0,1.06,0.0,0,0,87,13.7,13.24,2.888,3.381,west_south_central_naturalgas,0.5,0,1.0,1.0,0,0,0,0.63,1.26,0,0,0,0,0,0.0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0.0,0
-TRE,TRE_nuclear_1,Nuclear,1,30,2,0,1,0,0,0,0,0,0,0.0,0,0,0.0,5120.0,0,4,5120.0,0,1,1280.0,0,0.0,0,0,0,0,0,0,0.0,0.0,193275,0.0,0,0,2.84,0.0,0,0,248,0.0,10.45,0.0,0.0,west_south_central_uranium,0.5,0,1.0,1.0,0,0,0,0.041666667,0.083333333,0,0,0,0,0,0.0,0,0.25,0.25,24,24,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0.0,0
-TRE,TRE_onshore_wind_turbine_1,Onshore Wind Turbine,1,31,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,21683.1,0,133,21683.123,0,1,163.03,0,0.0,0,0,0,0,0,0,0.0,0.0,43000,0.0,0,0,0.0,0.0,0,0,0,0.0,10.34,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.32023413,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_petroleum_liquids_1,Petroleum Liquids,1,32,2,0,1,0,0,0,0,0,0,0.0,0,0,0.0,23.7,0,16,23.696,0,1,1.48,0,0.0,0,0,0,0,0,0,0.0,0.0,21000,0.0,0,0,6.38,0.0,0,0,38,0.0,12.4,0.0,4.068,west_south_central_distillate,0.18,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0.0,0
-TRE,TRE_small_hydroelectric_1,Small Hydroelectric,1,33,2,0,0,0,1,0,0,0,0,0.0,0,0,0.0,11.2,0,15,54.795,0,0,0.75,0,0.0,0,0,0,0,0,0,0.0,0.0,47048,0.0,0,0,0.0,0.0,0,0,0,0.0,10.34,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.094297837,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_solar_photovoltaic_1,Solar Photovoltaic,1,34,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,1821.5,0,28,1821.512,0,1,65.05,0,0.0,0,0,0,0,0,0,0.0,0.0,22623,0.0,0,0,0.0,0.0,0,0,0,0.0,10.34,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.223940321,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-WECC,WECC_batteries_1,Batteries,1,35,3,0,0,0,0,1,0,0,0,0.0,0,0,3611.0,1357.5,0,48,1357.488,0,0,28.28,0,0.0,0,0,0,0,0,0,0.0,0.0,6235,0.0,0,0,0.15,0.15,0,0,0,0.0,10.34,0.0,0.0,None,0.02,0,0.92,0.92,0,1,10,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.95,0
-WECC,WECC_biomass_1,Biomass,1,36,3,0,0,0,1,0,0,0,0,0.0,0,0,0.0,551.0,0,274,1535.496,0,0,2.01,0,0.0,0,0,0,0,0,0,0.0,0.0,150850,0.0,0,0,7.14,0.0,0,0,172,0.0,16.63,2.779,3.894,biomass,0.362,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
-WECC,WECC_conventional_hydroelectric_1,Conventional Hydroelectric,1,37,3,0,0,0,0,0,0,1,0,0.0,0,0,0.0,46528.0,0,640,46528.0,0,0,72.7,0,0.0,0,0,0,0,0,0,0.0,0.0,47048,0.0,0,0,0.0,0.0,0,0,0,0.0,10.34,0.0,0.0,None,0.214,0,1.0,1.0,1,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.438570496,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_conventional_steam_coal_1,Conventional Steam Coal,1,38,3,0,1,0,0,0,0,0,0,0.0,0,0,0.0,11415.2,0,23,11415.199,0,1,496.31,0,0.0,0,0,0,0,0,0,0.0,0.0,64165,0.0,0,0,1.88,0.0,0,0,124,16.5,10.63,0.447,0.29,mountain_coal,0.5,0,1.0,1.0,0,0,0,0.095,0.19,0,0,0,0,0,0.0,0,0.57,0.57,24,24,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
-WECC,WECC_conventional_steam_coal_2,Conventional Steam Coal,2,39,3,0,1,0,0,0,0,0,0,0.0,0,0,0.0,2074.5,0,16,2074.496,0,1,129.66,0,0.0,0,0,0,0,0,0,0.0,0.0,77721,0.0,0,0,1.88,0.0,0,0,124,16.5,12.2,1.109,0.961,mountain_coal,0.5,0,1.0,1.0,0,0,0,0.095,0.19,0,0,0,0,0,0.0,0,0.57,0.57,24,24,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
-WECC,WECC_geothermal_1,Geothermal,1,40,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,1752.4,0,146,2752.246,0,0,12.0,0,0.0,0,0,0,0,0,0,0.0,0.0,209101,0.0,0,0,0.0,0.0,0,0,0,0.0,10.34,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
-WECC,WECC_hydroelectric_pumped_storage_1,Hydroelectric Pumped Storage,1,41,3,0,0,0,0,1,0,0,0,0.0,0,0,70790.0,4567.1,0,45,4567.095,0,0,101.49,0,0.0,0,0,0,0,0,0,0.0,0.0,47048,0.0,0,0,0.15,0.15,0,0,0,0.0,10.34,0.0,0.0,None,0.175,0,0.866,0.866,0,1,20,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.95,0
-WECC,WECC_natural_gas_fired_combined_cycle_1,Natural Gas Fired Combined Cycle,1,42,3,0,1,0,0,0,0,0,0,0.0,0,0,0.0,37593.3,0,79,37593.335,0,1,475.86,0,0.0,0,0,0,0,0,0,0.0,0.0,10399,0.0,0,0,3.6,0.0,0,0,92,2.0,7.78,0.722,1.232,mountain_naturalgas,0.3,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
-WECC,WECC_natural_gas_fired_combined_cycle_2,Natural Gas Fired Combined Cycle,2,43,3,0,1,0,0,0,0,0,0,0.0,0,0,0.0,12502.4,0,79,12502.382,0,1,158.26,0,0.0,0,0,0,0,0,0,0.0,0.0,16492,0.0,0,0,4.55,0.0,0,0,92,2.0,8.51,2.587,2.585,mountain_naturalgas,0.3,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
-WECC,WECC_natural_gas_fired_combustion_turbine_1,Natural Gas Fired Combustion Turbine,1,44,3,0,1,0,0,0,0,0,0,0.0,0,0,0.0,15252.7,0,213,15252.717,0,1,71.61,0,0.0,0,0,0,0,0,0,0.0,0.0,10479,0.0,0,0,5.28,0.0,0,0,119,3.5,11.06,1.753,1.288,mountain_naturalgas,0.3,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
-WECC,WECC_natural_gas_fired_combustion_turbine_2,Natural Gas Fired Combustion Turbine,2,45,3,0,1,0,0,0,0,0,0,0.0,0,0,0.0,6281.6,0,225,6281.55,0,1,27.92,0,0.0,0,0,0,0,0,0,0.0,0.0,13486,0.0,0,0,5.28,0.0,0,0,119,3.5,12.78,4.552,3.282,mountain_naturalgas,0.3,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
-WECC,WECC_natural_gas_internal_combustion_engine_1,Natural Gas Internal Combustion Engine,1,46,3,0,1,0,0,0,0,0,0,0.0,0,0,0.0,1282.7,0,197,1282.667,0,1,6.51,0,0.0,0,0,0,0,0,0,0.0,0.0,21000,0.0,0,0,4.88,0.0,0,0,38,0.0,9.49,1.759,1.665,mountain_naturalgas,0.18,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
-WECC,WECC_natural_gas_steam_turbine_1,Natural Gas Steam Turbine,1,47,3,0,1,0,0,0,0,0,0,0.0,0,0,0.0,2669.5,0,28,2669.492,0,1,95.34,0,0.0,0,0,0,0,0,0,0.0,0.0,51303,0.0,0,0,1.06,0.0,0,0,87,13.7,12.4,4.616,3.843,mountain_naturalgas,0.5,0,1.0,1.0,0,0,0,0.63,1.26,0,0,0,0,0,0.0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
-WECC,WECC_nuclear_1,Nuclear,1,48,3,0,1,0,0,0,0,0,0,0.0,0,0,0.0,5175.0,0,4,5175.0,0,1,1293.75,0,0.0,0,0,0,0,0,0,0.0,0.0,211822,0.0,0,0,2.84,0.0,0,0,248,0.0,10.45,0.0,0.0,mountain_uranium,0.5,0,1.0,1.0,0,0,0,0.041666667,0.083333333,0,0,0,0,0,0.0,0,0.25,0.25,24,24,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
-WECC,WECC_onshore_wind_turbine_1,Onshore Wind Turbine,1,49,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,20644.2,0,300,20644.2,0,1,68.81,0,0.0,0,0,0,0,0,0,0.0,0.0,43000,0.0,0,0,0.0,0.0,0,0,0,0.0,10.34,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.303506275,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_petroleum_liquids_1,Petroleum Liquids,1,50,3,0,1,0,0,0,0,0,0,0.0,0,0,0.0,636.2,0,150,636.15,0,1,4.24,0,0.0,0,0,0,0,0,0,0.0,0.0,21000,0.0,0,0,7.2,0.0,0,0,38,0.0,14.0,2.319,4.938,mountain_distillate,0.18,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
-WECC,WECC_small_hydroelectric_1,Small Hydroelectric,1,51,3,0,0,0,1,0,0,0,0,0.0,0,0,0.0,1064.3,0,659,2966.818,0,0,1.62,0,0.0,0,0,0,0,0,0,0.0,0.0,47048,0.0,0,0,0.0,0.0,0,0,0,0.0,10.34,0.0,0.0,None,0.181,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.438570496,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_solar_photovoltaic_1,Solar Photovoltaic,1,52,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,14659.8,0,986,14659.848,0,1,14.87,0,0.0,0,0,0,0,0,0,0.0,0.0,22623,0.0,0,0,0.0,0.0,0,0,0,0.0,10.34,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.252030487,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_distributed_generation_1,distributed_generation,1,53,3,0,0,0,1,0,0,0,0,0.0,0,0,0.0,250535.0,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.24602032,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-EIC,EIC_distributed_generation_1,distributed_generation,1,54,1,0,0,0,1,0,0,0,0,0.8,0,0,0.0,1770000.0,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.22735468,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-TRE,TRE_distributed_generation_1,distributed_generation,1,55,2,0,0,0,1,0,0,0,0,0.0,0,0,0.0,17006.0,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.214929566,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-EIC,EIC_naturalgas_ccavgcf_moderate_0,NaturalGas_CCAvgCF_Moderate,0,56,1,0,1,0,0,0,0,0,0,0.93,0,0,0.0,0.0,0,0,0.0,1,1,500.0,0,-1.0,-1,0,0,0,0,0,880383.916,56026.0,28000,0.0,0,0,2.0,0.0,0,0,106,2.0,6.36,0.0,0.0,east_north_central_naturalgas,0.3,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0.0,1.186,30,0.033,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_naturalgas_ctavgcf_moderate_0,NaturalGas_CTAvgCF_Moderate,0,57,1,0,1,0,0,0,0,0,0,0.93,0,0,0.0,0.0,0,0,0.0,1,1,100.0,0,-1.0,-1,0,0,0,0,0,746250.365,45192.0,21000,0.0,0,0,5.0,0.0,0,0,137,3.5,9.72,0.0,0.0,east_north_central_naturalgas,0.3,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,1.128,30,0.033,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_battery_moderate_0,Battery_*_Moderate,0,58,1,0,0,0,0,1,0,0,0,0.95,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,238220.323,19978.0,5955,141861.827,11897,3546,0.15,0.15,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.92,0.92,0,1,10,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,1.03,15,0.026,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_naturalgas_ccccsavgcf_conservative_0,NaturalGas_CCCCSAvgCF_Conservative,0,59,1,0,1,0,0,0,0,0,0,0.93,0,0,0.0,0.0,0,0,0.0,1,1,500.0,0,-1.0,-1,0,0,0,0,0,2120000.0,120812.0,67000,0.0,0,0,6.0,0.0,0,0,106,0.0,7.16,0.0,0.0,east_north_central_naturalgas,0.6,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.9,27,0.64,0.64,6,6,0,0,0,0,0,0,0,0.0,1.062,30,0.033,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_advnuclear_atb_moderate_0,AdvNuclear_ATB_Moderate,0,60,1,0,1,0,0,0,0,0,0,0.93,0,0,0.0,0.0,0,0,0.0,1,1,500.0,0,-1.0,-1,0,0,0,0,0,6590000.0,45000.0,0,0.0,0,0,2.84,0.0,0,0,285,0.0,10.44,0.0,0.0,east_north_central_uranium,0.5,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.25,0.25,24,24,0,0,0,0,0,0,0,0.0,1.133,40,0.033,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_storage_metalair_advanced_0,Storage_MetalAir_Advanced,0,61,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,-1,-1.0,-1,0,-1,-1,0,0,0.0,0.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,1.03,25,0.026,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_landbasedwind_class1_moderate_0,LandbasedWind_Class1_Moderate_,0,62,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,14198.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,14197.521,1.266,30,0.03,0,0,0,0,0,0.46646145,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_landbasedwind_class1_moderate_1,LandbasedWind_Class1_Moderate_,1,63,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,17082.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,17082.104,1.266,30,0.03,0,0,0,0,0,0.506161809,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_landbasedwind_class1_moderate_2,LandbasedWind_Class1_Moderate_,2,64,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,17267.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,17266.619,1.266,30,0.03,0,0,0,0,0,0.428973228,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_landbasedwind_class1_moderate_3,LandbasedWind_Class1_Moderate_,3,65,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,25483.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,25482.635,1.266,30,0.03,0,0,0,0,0,0.470765114,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_landbasedwind_class1_moderate_4,LandbasedWind_Class1_Moderate_,4,66,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,16488.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,16487.938,1.266,30,0.03,0,0,0,0,0,0.369812936,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_landbasedwind_class1_moderate_5,LandbasedWind_Class1_Moderate_,5,67,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,25720.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,25719.606,1.266,30,0.03,0,0,0,0,0,0.434300929,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_landbasedwind_class1_moderate_6,LandbasedWind_Class1_Moderate_,6,68,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,21224.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,21223.571,1.266,30,0.03,0,0,0,0,0,0.325287282,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_landbasedwind_class1_moderate_7,LandbasedWind_Class1_Moderate_,7,69,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,32633.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,32632.921,1.266,30,0.03,0,0,0,0,0,0.405135185,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_landbasedwind_class1_moderate_8,LandbasedWind_Class1_Moderate_,8,70,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,28526.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,28526.156,1.266,30,0.03,0,0,0,0,0,0.301312625,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_landbasedwind_class1_moderate_9,LandbasedWind_Class1_Moderate_,9,71,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,244462.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,244461.674,1.266,30,0.03,0,0,0,0,0,0.479932398,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_utilitypv_class1_moderate_0,UtilityPV_Class1_Moderate_,0,72,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,8863.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,8863.386,1.017,30,0.026,0,0,0,0,0,0.26517567,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_utilitypv_class1_moderate_1,UtilityPV_Class1_Moderate_,1,73,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,4464.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,4464.156,1.017,30,0.026,0,0,0,0,0,0.246608377,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_utilitypv_class1_moderate_2,UtilityPV_Class1_Moderate_,2,74,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,14630.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,14629.711,1.017,30,0.026,0,0,0,0,0,0.262942463,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_utilitypv_class1_moderate_3,UtilityPV_Class1_Moderate_,3,75,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,10126.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,10125.593,1.017,30,0.026,0,0,0,0,0,0.247017696,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_utilitypv_class1_moderate_4,UtilityPV_Class1_Moderate_,4,76,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,16248.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,16248.012,1.017,30,0.026,0,0,0,0,0,0.250704974,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_utilitypv_class1_moderate_5,UtilityPV_Class1_Moderate_,5,77,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,22825.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,22825.004,1.017,30,0.026,0,0,0,0,0,0.268118054,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_utilitypv_class1_moderate_6,UtilityPV_Class1_Moderate_,6,78,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,24566.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,24565.988,1.017,30,0.026,0,0,0,0,0,0.258166939,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_utilitypv_class1_moderate_7,UtilityPV_Class1_Moderate_,7,79,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,21181.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,21180.786,1.017,30,0.026,0,0,0,0,0,0.245459273,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_utilitypv_class1_moderate_8,UtilityPV_Class1_Moderate_,8,80,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,32414.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,32414.229,1.017,30,0.026,0,0,0,0,0,0.247877195,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_utilitypv_class1_moderate_9,UtilityPV_Class1_Moderate_,9,81,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,148669.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,148668.665,1.017,30,0.026,0,0,0,0,0,0.270195067,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_offshorewind_class3_moderate_fixed_1_0,OffShoreWind_Class3_Moderate_fixed_1,0,82,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,65762.8,-1,0,0,0,0,0,1730000.0,147250.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,51161.657,1.0,30,0.036,0,0,0,0,0,0.453892708,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_1_1,OffShoreWind_Class3_Moderate_fixed_1,1,83,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,14399.2,-1,0,0,0,0,0,1730000.0,157328.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,61239.476,1.0,30,0.036,0,0,0,0,0,0.495629996,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_1_2,OffShoreWind_Class3_Moderate_fixed_1,2,84,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,34280.8,-1,0,0,0,0,0,1730000.0,153961.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,57872.369,1.0,30,0.036,0,0,0,0,0,0.451629132,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_1_3,OffShoreWind_Class3_Moderate_fixed_1,3,85,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,101840.5,-1,0,0,0,0,0,1730000.0,168852.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,72763.911,1.0,30,0.036,0,0,0,0,0,0.495775014,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_1_4,OffShoreWind_Class3_Moderate_fixed_1,4,86,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,118605.0,-1,0,0,0,0,0,1730000.0,164784.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,68695.909,1.0,30,0.036,0,0,0,0,0,0.466509044,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_1_5,OffShoreWind_Class3_Moderate_fixed_1,5,87,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,18875.6,-1,0,0,0,0,0,1730000.0,146792.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,50703.558,1.0,30,0.036,0,0,0,0,0,0.354788363,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_1_6,OffShoreWind_Class3_Moderate_fixed_1,6,88,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,79943.7,-1,0,0,0,0,0,1730000.0,144977.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,48888.699,1.0,30,0.036,0,0,0,0,0,0.291283697,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_1_7,OffShoreWind_Class3_Moderate_fixed_1,7,89,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,23454.7,-1,0,0,0,0,0,1730000.0,347411.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,251322.456,1.0,30,0.036,0,0,0,0,0,0.440021217,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_1_8,OffShoreWind_Class3_Moderate_fixed_1,8,90,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,59461.7,-1,0,0,0,0,0,1730000.0,393568.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,297479.514,1.0,30,0.036,0,0,0,0,0,0.434866041,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_1_9,OffShoreWind_Class3_Moderate_fixed_1,9,91,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,73503.9,-1,0,0,0,0,0,1730000.0,155384.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,59295.695,1.0,30,0.036,0,0,0,0,0,0.288762152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_0_0,OffShoreWind_Class3_Moderate_fixed_0,0,92,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,65762.8,-1,0,0,0,0,0,1730000.0,147250.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,51161.657,1.0,30,0.036,0,0,0,0,0,0.453892708,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_0_1,OffShoreWind_Class3_Moderate_fixed_0,1,93,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,14399.2,-1,0,0,0,0,0,1730000.0,157328.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,61239.476,1.0,30,0.036,0,0,0,0,0,0.495629996,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_0_4,OffShoreWind_Class3_Moderate_fixed_0,4,94,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,34280.8,-1,0,0,0,0,0,1730000.0,153961.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,57872.369,1.0,30,0.036,0,0,0,0,0,0.451629132,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_0_5,OffShoreWind_Class3_Moderate_fixed_0,5,95,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,101840.5,-1,0,0,0,0,0,1730000.0,168852.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,72763.911,1.0,30,0.036,0,0,0,0,0,0.495775014,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_0_10,OffShoreWind_Class3_Moderate_fixed_0,10,96,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,118605.0,-1,0,0,0,0,0,1730000.0,164784.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,68695.909,1.0,30,0.036,0,0,0,0,0,0.466509044,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_0_11,OffShoreWind_Class3_Moderate_fixed_0,11,97,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,18875.6,-1,0,0,0,0,0,1730000.0,146792.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,50703.558,1.0,30,0.036,0,0,0,0,0,0.354788363,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_0_18,OffShoreWind_Class3_Moderate_fixed_0,18,98,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,79943.7,-1,0,0,0,0,0,1730000.0,144977.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,48888.699,1.0,30,0.036,0,0,0,0,0,0.291283697,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_0_19,OffShoreWind_Class3_Moderate_fixed_0,19,99,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,23454.7,-1,0,0,0,0,0,1730000.0,347411.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,251322.456,1.0,30,0.036,0,0,0,0,0,0.440021217,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_0_28,OffShoreWind_Class3_Moderate_fixed_0,28,100,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,59461.7,-1,0,0,0,0,0,1730000.0,393568.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,297479.514,1.0,30,0.036,0,0,0,0,0,0.434866041,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_0_29,OffShoreWind_Class3_Moderate_fixed_0,29,101,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,73503.9,-1,0,0,0,0,0,1730000.0,155384.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,59295.695,1.0,30,0.036,0,0,0,0,0,0.288762152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_1_0,OffShoreWind_Class12_Moderate_floating_1,0,102,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,65762.8,-1,0,0,0,0,0,2770000.0,204577.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,51161.657,1.0,30,0.036,0,0,0,0,0,0.453892708,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_1_1,OffShoreWind_Class12_Moderate_floating_1,1,103,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,14399.2,-1,0,0,0,0,0,2770000.0,214655.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,61239.476,1.0,30,0.036,0,0,0,0,0,0.495629996,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_1_6,OffShoreWind_Class12_Moderate_floating_1,6,104,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,34280.8,-1,0,0,0,0,0,2770000.0,211288.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,57872.369,1.0,30,0.036,0,0,0,0,0,0.451629132,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_1_7,OffShoreWind_Class12_Moderate_floating_1,7,105,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,101840.5,-1,0,0,0,0,0,2770000.0,226179.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,72763.911,1.0,30,0.036,0,0,0,0,0,0.495775014,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_1_18,OffShoreWind_Class12_Moderate_floating_1,18,106,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,118605.0,-1,0,0,0,0,0,2770000.0,222111.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,68695.909,1.0,30,0.036,0,0,0,0,0,0.466509044,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_1_19,OffShoreWind_Class12_Moderate_floating_1,19,107,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,18875.6,-1,0,0,0,0,0,2770000.0,204119.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,50703.558,1.0,30,0.036,0,0,0,0,0,0.354788363,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_1_38,OffShoreWind_Class12_Moderate_floating_1,38,108,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,79943.7,-1,0,0,0,0,0,2770000.0,202304.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,48888.699,1.0,30,0.036,0,0,0,0,0,0.291283697,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_1_39,OffShoreWind_Class12_Moderate_floating_1,39,109,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,23454.7,-1,0,0,0,0,0,2770000.0,404738.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,251322.456,1.0,30,0.036,0,0,0,0,0,0.440021217,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_1_68,OffShoreWind_Class12_Moderate_floating_1,68,110,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,59461.7,-1,0,0,0,0,0,2770000.0,450895.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,297479.514,1.0,30,0.036,0,0,0,0,0,0.434866041,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_1_69,OffShoreWind_Class12_Moderate_floating_1,69,111,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,73503.9,-1,0,0,0,0,0,2770000.0,212711.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,59295.695,1.0,30,0.036,0,0,0,0,0,0.288762152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_0_0,OffShoreWind_Class12_Moderate_floating_0,0,112,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,65762.8,-1,0,0,0,0,0,2770000.0,204577.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,51161.657,1.0,30,0.036,0,0,0,0,0,0.453892708,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_0_1,OffShoreWind_Class12_Moderate_floating_0,1,113,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,14399.2,-1,0,0,0,0,0,2770000.0,214655.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,61239.476,1.0,30,0.036,0,0,0,0,0,0.495629996,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_0_8,OffShoreWind_Class12_Moderate_floating_0,8,114,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,34280.8,-1,0,0,0,0,0,2770000.0,211288.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,57872.369,1.0,30,0.036,0,0,0,0,0,0.451629132,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_0_9,OffShoreWind_Class12_Moderate_floating_0,9,115,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,101840.5,-1,0,0,0,0,0,2770000.0,226179.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,72763.911,1.0,30,0.036,0,0,0,0,0,0.495775014,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_0_28,OffShoreWind_Class12_Moderate_floating_0,28,116,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,118605.0,-1,0,0,0,0,0,2770000.0,222111.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,68695.909,1.0,30,0.036,0,0,0,0,0,0.466509044,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_0_29,OffShoreWind_Class12_Moderate_floating_0,29,117,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,18875.6,-1,0,0,0,0,0,2770000.0,204119.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,50703.558,1.0,30,0.036,0,0,0,0,0,0.354788363,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_0_68,OffShoreWind_Class12_Moderate_floating_0,68,118,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,79943.7,-1,0,0,0,0,0,2770000.0,202304.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,48888.699,1.0,30,0.036,0,0,0,0,0,0.291283697,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_0_69,OffShoreWind_Class12_Moderate_floating_0,69,119,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,23454.7,-1,0,0,0,0,0,2770000.0,404738.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,251322.456,1.0,30,0.036,0,0,0,0,0,0.440021217,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_0_138,OffShoreWind_Class12_Moderate_floating_0,138,120,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,59461.7,-1,0,0,0,0,0,2770000.0,450895.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,297479.514,1.0,30,0.036,0,0,0,0,0,0.434866041,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_0_139,OffShoreWind_Class12_Moderate_floating_0,139,121,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,73503.9,-1,0,0,0,0,0,2770000.0,212711.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,59295.695,1.0,30,0.036,0,0,0,0,0,0.288762152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-TRE,TRE_naturalgas_ccavgcf_moderate_0,NaturalGas_CCAvgCF_Moderate,0,122,2,0,1,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,500.0,0,-1.0,-1,0,0,0,0,0,880383.916,42007.0,28000,0.0,0,0,2.0,0.0,0,0,106,2.0,6.36,0.0,0.0,west_south_central_naturalgas,0.3,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0.0,0.889,30,0.033,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0.0,0
-TRE,TRE_naturalgas_ctavgcf_moderate_0,NaturalGas_CTAvgCF_Moderate,0,123,2,0,1,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,100.0,0,-1.0,-1,0,0,0,0,0,746250.365,35319.0,21000,0.0,0,0,5.0,0.0,0,0,137,3.5,9.72,0.0,0.0,west_south_central_naturalgas,0.3,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,0.882,30,0.033,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0.0,0
-TRE,TRE_battery_moderate_0,Battery_*_Moderate,0,124,2,0,0,0,0,1,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,238220.323,19389.0,5955,141861.827,11546,3546,0.15,0.15,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.92,0.92,0,1,10,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,1.0,15,0.026,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95,0.0,0
-TRE,TRE_naturalgas_ccccsavgcf_conservative_0,NaturalGas_CCCCSAvgCF_Conservative,0,125,2,0,1,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,500.0,0,-1.0,-1,0,0,0,0,0,2120000.0,106685.0,67000,0.0,0,0,6.0,0.0,0,0,106,0.0,7.16,0.0,0.0,west_south_central_naturalgas,0.6,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.9,27,0.64,0.64,6,6,0,0,0,0,0,0,0,0.0,0.938,30,0.033,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0.0,0
-TRE,TRE_advnuclear_atb_moderate_0,AdvNuclear_ATB_Moderate,0,126,2,0,1,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,500.0,0,-1.0,-1,0,0,0,0,0,6590000.0,450000.0,0,0.0,0,0,2.84,0.0,0,0,285,0.0,10.44,0.0,0.0,west_south_central_uranium,0.5,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.25,0.25,24,24,0,0,0,0,0,0,0,0.0,0.944,40,0.033,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0.0,0
-TRE,TRE_storage_metalair_advanced_0,Storage_MetalAir_Advanced,0,127,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,-1,-1.0,-1,0,-1,-1,0,0,0.0,0.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,1.0,25,0.026,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_landbasedwind_class1_moderate_0,LandbasedWind_Class1_Moderate_,0,128,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,14393.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,14392.776,0.933,30,0.03,0,0,0,0,0,0.468758494,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_landbasedwind_class1_moderate_1,LandbasedWind_Class1_Moderate_,1,129,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,20298.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,20297.809,0.933,30,0.03,0,0,0,0,0,0.50884968,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_landbasedwind_class1_moderate_2,LandbasedWind_Class1_Moderate_,2,130,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,14755.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,14755.103,0.933,30,0.03,0,0,0,0,0,0.428581536,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_landbasedwind_class1_moderate_3,LandbasedWind_Class1_Moderate_,3,131,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,23630.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,23630.35,0.933,30,0.03,0,0,0,0,0,0.463753909,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_landbasedwind_class1_moderate_4,LandbasedWind_Class1_Moderate_,4,132,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,12498.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,12498.46,0.933,30,0.03,0,0,0,0,0,0.393514663,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_landbasedwind_class1_moderate_5,LandbasedWind_Class1_Moderate_,5,133,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,23788.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,23787.558,0.933,30,0.03,0,0,0,0,0,0.431482643,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_landbasedwind_class1_moderate_6,LandbasedWind_Class1_Moderate_,6,134,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,15633.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,15633.08,0.933,30,0.03,0,0,0,0,0,0.37748757,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_landbasedwind_class1_moderate_7,LandbasedWind_Class1_Moderate_,7,135,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,29021.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,29020.777,0.933,30,0.03,0,0,0,0,0,0.418603808,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_landbasedwind_class1_moderate_8,LandbasedWind_Class1_Moderate_,8,136,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,40897.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,40896.604,0.933,30,0.03,0,0,0,0,0,0.350026488,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_landbasedwind_class1_moderate_9,LandbasedWind_Class1_Moderate_,9,137,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,146712.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,146712.274,0.933,30,0.03,0,0,0,0,0,0.489716798,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_utilitypv_class1_moderate_0,UtilityPV_Class1_Moderate_,0,138,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,6412.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,6412.182,0.968,30,0.026,0,0,0,0,0,0.254278213,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_utilitypv_class1_moderate_1,UtilityPV_Class1_Moderate_,1,139,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,8461.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,8460.982,0.968,30,0.026,0,0,0,0,0,0.262568802,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_utilitypv_class1_moderate_2,UtilityPV_Class1_Moderate_,2,140,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,10479.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,10478.698,0.968,30,0.026,0,0,0,0,0,0.252687842,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_utilitypv_class1_moderate_3,UtilityPV_Class1_Moderate_,3,141,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,14103.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,14103.154,0.968,30,0.026,0,0,0,0,0,0.264333636,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_utilitypv_class1_moderate_4,UtilityPV_Class1_Moderate_,4,142,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,14224.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,14224.435,0.968,30,0.026,0,0,0,0,0,0.253560722,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_utilitypv_class1_moderate_5,UtilityPV_Class1_Moderate_,5,143,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,18539.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,18539.404,0.968,30,0.026,0,0,0,0,0,0.26726374,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_utilitypv_class1_moderate_6,UtilityPV_Class1_Moderate_,6,144,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,22325.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,22324.625,0.968,30,0.026,0,0,0,0,0,0.265551984,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_utilitypv_class1_moderate_7,UtilityPV_Class1_Moderate_,7,145,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,17464.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,17463.888,0.968,30,0.026,0,0,0,0,0,0.251154423,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_utilitypv_class1_moderate_8,UtilityPV_Class1_Moderate_,8,146,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,74721.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,74721.211,0.968,30,0.026,0,0,0,0,0,0.276522815,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_utilitypv_class1_moderate_9,UtilityPV_Class1_Moderate_,9,147,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,29582.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,29582.346,0.968,30,0.026,0,0,0,0,0,0.252619147,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_offshorewind_class3_moderate_fixed_1_0,OffShoreWind_Class3_Moderate_fixed_1,0,148,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,13077.5,-1,0,0,0,0,0,1730000.0,145004.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,51156.858,0.977,30,0.036,0,0,0,0,0,0.371246308,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_1_1,OffShoreWind_Class3_Moderate_fixed_1,1,149,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,9995.0,-1,0,0,0,0,0,1730000.0,158104.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,64256.422,0.977,30,0.036,0,0,0,0,0,0.415583521,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_1_2,OffShoreWind_Class3_Moderate_fixed_1,2,150,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,22842.5,-1,0,0,0,0,0,1730000.0,140443.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,46595.365,0.977,30,0.036,0,0,0,0,0,0.357092798,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_1_3,OffShoreWind_Class3_Moderate_fixed_1,3,151,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,895.0,-1,0,0,0,0,0,1730000.0,157772.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,63924.883,0.977,30,0.036,0,0,0,0,0,0.377708793,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_1_4,OffShoreWind_Class3_Moderate_fixed_1,4,152,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,20865.0,-1,0,0,0,0,0,1730000.0,142961.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,49113.588,0.977,30,0.036,0,0,0,0,0,0.351203203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_1_5,OffShoreWind_Class3_Moderate_fixed_1,5,153,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,4480.0,-1,0,0,0,0,0,1730000.0,166128.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,72280.844,0.977,30,0.036,0,0,0,0,0,0.416367918,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_1_6,OffShoreWind_Class3_Moderate_fixed_1,6,154,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,23652.0,-1,0,0,0,0,0,1730000.0,166849.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,73001.164,0.977,30,0.036,0,0,0,0,0,0.405127913,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_1_7,OffShoreWind_Class3_Moderate_fixed_1,7,155,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,10070.0,-1,0,0,0,0,0,1730000.0,157895.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,64047.233,0.977,30,0.036,0,0,0,0,0,0.345421404,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_1_8,OffShoreWind_Class3_Moderate_fixed_1,8,156,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,20680.0,-1,0,0,0,0,0,1730000.0,167576.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,73728.515,0.977,30,0.036,0,0,0,0,0,0.392506152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_1_9,OffShoreWind_Class3_Moderate_fixed_1,9,157,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,16746.0,-1,0,0,0,0,0,1730000.0,156072.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,62224.897,0.977,30,0.036,0,0,0,0,0,0.369584978,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_0_0,OffShoreWind_Class3_Moderate_fixed_0,0,158,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,13077.5,-1,0,0,0,0,0,1730000.0,145004.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,51156.858,0.977,30,0.036,0,0,0,0,0,0.371246308,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_0_1,OffShoreWind_Class3_Moderate_fixed_0,1,159,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,9995.0,-1,0,0,0,0,0,1730000.0,158104.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,64256.422,0.977,30,0.036,0,0,0,0,0,0.415583521,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_0_4,OffShoreWind_Class3_Moderate_fixed_0,4,160,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,22842.5,-1,0,0,0,0,0,1730000.0,140443.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,46595.365,0.977,30,0.036,0,0,0,0,0,0.357092798,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_0_5,OffShoreWind_Class3_Moderate_fixed_0,5,161,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,895.0,-1,0,0,0,0,0,1730000.0,157772.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,63924.883,0.977,30,0.036,0,0,0,0,0,0.377708793,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_0_10,OffShoreWind_Class3_Moderate_fixed_0,10,162,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,20865.0,-1,0,0,0,0,0,1730000.0,142961.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,49113.588,0.977,30,0.036,0,0,0,0,0,0.351203203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_0_11,OffShoreWind_Class3_Moderate_fixed_0,11,163,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,4480.0,-1,0,0,0,0,0,1730000.0,166128.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,72280.844,0.977,30,0.036,0,0,0,0,0,0.416367918,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_0_18,OffShoreWind_Class3_Moderate_fixed_0,18,164,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,23652.0,-1,0,0,0,0,0,1730000.0,166849.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,73001.164,0.977,30,0.036,0,0,0,0,0,0.405127913,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_0_19,OffShoreWind_Class3_Moderate_fixed_0,19,165,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,10070.0,-1,0,0,0,0,0,1730000.0,157895.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,64047.233,0.977,30,0.036,0,0,0,0,0,0.345421404,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_0_28,OffShoreWind_Class3_Moderate_fixed_0,28,166,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,20680.0,-1,0,0,0,0,0,1730000.0,167576.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,73728.515,0.977,30,0.036,0,0,0,0,0,0.392506152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_0_29,OffShoreWind_Class3_Moderate_fixed_0,29,167,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,16746.0,-1,0,0,0,0,0,1730000.0,156072.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,62224.897,0.977,30,0.036,0,0,0,0,0,0.369584978,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_1_0,OffShoreWind_Class12_Moderate_floating_1,0,168,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,13077.5,-1,0,0,0,0,0,2770000.0,200994.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,51156.858,0.977,30,0.036,0,0,0,0,0,0.371246308,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_1_1,OffShoreWind_Class12_Moderate_floating_1,1,169,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,9995.0,-1,0,0,0,0,0,2770000.0,214094.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,64256.422,0.977,30,0.036,0,0,0,0,0,0.415583521,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_1_6,OffShoreWind_Class12_Moderate_floating_1,6,170,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,22842.5,-1,0,0,0,0,0,2770000.0,196433.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,46595.365,0.977,30,0.036,0,0,0,0,0,0.357092798,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_1_7,OffShoreWind_Class12_Moderate_floating_1,7,171,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,895.0,-1,0,0,0,0,0,2770000.0,213762.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,63924.883,0.977,30,0.036,0,0,0,0,0,0.377708793,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_1_18,OffShoreWind_Class12_Moderate_floating_1,18,172,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,20865.0,-1,0,0,0,0,0,2770000.0,198951.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,49113.588,0.977,30,0.036,0,0,0,0,0,0.351203203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_1_19,OffShoreWind_Class12_Moderate_floating_1,19,173,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,4480.0,-1,0,0,0,0,0,2770000.0,222118.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,72280.844,0.977,30,0.036,0,0,0,0,0,0.416367918,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_1_38,OffShoreWind_Class12_Moderate_floating_1,38,174,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,23652.0,-1,0,0,0,0,0,2770000.0,222839.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,73001.164,0.977,30,0.036,0,0,0,0,0,0.405127913,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_1_39,OffShoreWind_Class12_Moderate_floating_1,39,175,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,10070.0,-1,0,0,0,0,0,2770000.0,213885.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,64047.233,0.977,30,0.036,0,0,0,0,0,0.345421404,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_1_68,OffShoreWind_Class12_Moderate_floating_1,68,176,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,20680.0,-1,0,0,0,0,0,2770000.0,223566.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,73728.515,0.977,30,0.036,0,0,0,0,0,0.392506152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_1_69,OffShoreWind_Class12_Moderate_floating_1,69,177,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,16746.0,-1,0,0,0,0,0,2770000.0,212062.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,62224.897,0.977,30,0.036,0,0,0,0,0,0.369584978,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_0_0,OffShoreWind_Class12_Moderate_floating_0,0,178,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,13077.5,-1,0,0,0,0,0,2770000.0,200994.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,51156.858,0.977,30,0.036,0,0,0,0,0,0.371246308,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_0_1,OffShoreWind_Class12_Moderate_floating_0,1,179,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,9995.0,-1,0,0,0,0,0,2770000.0,214094.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,64256.422,0.977,30,0.036,0,0,0,0,0,0.415583521,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_0_8,OffShoreWind_Class12_Moderate_floating_0,8,180,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,22842.5,-1,0,0,0,0,0,2770000.0,196433.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,46595.365,0.977,30,0.036,0,0,0,0,0,0.357092798,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_0_9,OffShoreWind_Class12_Moderate_floating_0,9,181,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,895.0,-1,0,0,0,0,0,2770000.0,213762.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,63924.883,0.977,30,0.036,0,0,0,0,0,0.377708793,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_0_28,OffShoreWind_Class12_Moderate_floating_0,28,182,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,20865.0,-1,0,0,0,0,0,2770000.0,198951.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,49113.588,0.977,30,0.036,0,0,0,0,0,0.351203203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_0_29,OffShoreWind_Class12_Moderate_floating_0,29,183,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,4480.0,-1,0,0,0,0,0,2770000.0,222118.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,72280.844,0.977,30,0.036,0,0,0,0,0,0.416367918,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_0_68,OffShoreWind_Class12_Moderate_floating_0,68,184,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,23652.0,-1,0,0,0,0,0,2770000.0,222839.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,73001.164,0.977,30,0.036,0,0,0,0,0,0.405127913,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_0_69,OffShoreWind_Class12_Moderate_floating_0,69,185,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,10070.0,-1,0,0,0,0,0,2770000.0,213885.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,64047.233,0.977,30,0.036,0,0,0,0,0,0.345421404,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_0_138,OffShoreWind_Class12_Moderate_floating_0,138,186,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,20680.0,-1,0,0,0,0,0,2770000.0,223566.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,73728.515,0.977,30,0.036,0,0,0,0,0,0.392506152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_0_139,OffShoreWind_Class12_Moderate_floating_0,139,187,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,16746.0,-1,0,0,0,0,0,2770000.0,212062.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,62224.897,0.977,30,0.036,0,0,0,0,0,0.369584978,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-WECC,WECC_naturalgas_ccavgcf_moderate_0,NaturalGas_CCAvgCF_Moderate,0,188,3,0,1,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,500.0,0,-1.0,-1,0,0,0,0,0,880383.916,59543.0,28000,0.0,0,0,2.0,0.0,0,0,106,2.0,6.36,0.0,0.0,mountain_naturalgas,0.3,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0.0,1.26,30,0.033,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
-WECC,WECC_naturalgas_ctavgcf_moderate_0,NaturalGas_CTAvgCF_Moderate,0,189,3,0,1,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,100.0,0,-1.0,-1,0,0,0,0,0,746250.365,45587.0,21000,0.0,0,0,5.0,0.0,0,0,137,3.5,9.72,0.0,0.0,mountain_naturalgas,0.3,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,1.138,30,0.033,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
-WECC,WECC_battery_moderate_0,Battery_*_Moderate,0,190,3,0,0,0,0,1,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,238220.323,20202.0,5955,141861.827,12030,3546,0.15,0.15,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.92,0.92,0,1,10,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,1.042,15,0.026,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.95,0
-WECC,WECC_naturalgas_ccccsavgcf_conservative_0,NaturalGas_CCCCSAvgCF_Conservative,0,191,3,0,1,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,500.0,0,-1.0,-1,0,0,0,0,0,2120000.0,119927.0,67000,0.0,0,0,6.0,0.0,0,0,106,0.0,7.16,0.0,0.0,mountain_naturalgas,0.6,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.9,27,0.64,0.64,6,6,0,0,0,0,0,0,0,0.0,1.054,30,0.033,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
-WECC,WECC_advnuclear_atb_moderate_0,AdvNuclear_ATB_Moderate,0,192,3,0,1,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,500.0,0,-1.0,-1,0,0,0,0,0,6590000.0,450000.0,0,0.0,0,0,2.84,0.0,0,0,285,0.0,10.44,0.0,0.0,mountain_uranium,0.5,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.25,0.25,24,24,0,0,0,0,0,0,0,0.0,1.19,40,0.033,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
-WECC,WECC_storage_metalair_advanced_0,Storage_MetalAir_Advanced,0,193,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,-1,-1.0,-1,0,-1,-1,0,0,0.0,0.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,1.042,25,0.026,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_landbasedwind_class1_moderate_0,LandbasedWind_Class1_Moderate_,0,194,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,20294.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,20294.121,1.657,30,0.03,0,0,0,0,0,0.42223382,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_landbasedwind_class1_moderate_1,LandbasedWind_Class1_Moderate_,1,195,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,19872.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,19872.298,1.657,30,0.03,0,0,0,0,0,0.511292398,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_landbasedwind_class1_moderate_2,LandbasedWind_Class1_Moderate_,2,196,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,27185.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,27184.562,1.657,30,0.03,0,0,0,0,0,0.365831107,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_landbasedwind_class1_moderate_3,LandbasedWind_Class1_Moderate_,3,197,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,19137.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,19137.494,1.657,30,0.03,0,0,0,0,0,0.310294747,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_landbasedwind_class1_moderate_4,LandbasedWind_Class1_Moderate_,4,198,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,26039.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,26038.936,1.657,30,0.03,0,0,0,0,0,0.289241701,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_landbasedwind_class1_moderate_5,LandbasedWind_Class1_Moderate_,5,199,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,133609.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,133608.575,1.657,30,0.03,0,0,0,0,0,0.465454966,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_landbasedwind_class1_moderate_6,LandbasedWind_Class1_Moderate_,6,200,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,29900.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,29899.759,1.657,30,0.03,0,0,0,0,0,0.244902343,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_landbasedwind_class1_moderate_7,LandbasedWind_Class1_Moderate_,7,201,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,160193.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,160192.842,1.657,30,0.03,0,0,0,0,0,0.443443388,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_landbasedwind_class1_moderate_8,LandbasedWind_Class1_Moderate_,8,202,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,38235.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,38235.186,1.657,30,0.03,0,0,0,0,0,0.225780696,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_landbasedwind_class1_moderate_9,LandbasedWind_Class1_Moderate_,9,203,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,274991.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,274991.331,1.657,30,0.03,0,0,0,0,0,0.472337902,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_utilitypv_class1_moderate_0,UtilityPV_Class1_Moderate_,0,204,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,10320.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,10320.26,1.059,30,0.026,0,0,0,0,0,0.29553619,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_utilitypv_class1_moderate_1,UtilityPV_Class1_Moderate_,1,205,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,6016.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,6015.782,1.059,30,0.026,0,0,0,0,0,0.271998376,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_utilitypv_class1_moderate_2,UtilityPV_Class1_Moderate_,2,206,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,19411.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,19411.252,1.059,30,0.026,0,0,0,0,0,0.290274531,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_utilitypv_class1_moderate_3,UtilityPV_Class1_Moderate_,3,207,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,3992.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,3991.741,1.059,30,0.026,0,0,0,0,0,0.23989968,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_utilitypv_class1_moderate_4,UtilityPV_Class1_Moderate_,4,208,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,25714.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,25713.501,1.059,30,0.026,0,0,0,0,0,0.286481887,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_utilitypv_class1_moderate_5,UtilityPV_Class1_Moderate_,5,209,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,8052.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,8051.656,1.059,30,0.026,0,0,0,0,0,0.229081407,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_utilitypv_class1_moderate_6,UtilityPV_Class1_Moderate_,6,210,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,33457.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,33456.861,1.059,30,0.026,0,0,0,0,0,0.283349633,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_utilitypv_class1_moderate_7,UtilityPV_Class1_Moderate_,7,211,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,16842.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,16841.98,1.059,30,0.026,0,0,0,0,0,0.233366475,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_utilitypv_class1_moderate_8,UtilityPV_Class1_Moderate_,8,212,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,105939.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,105939.452,1.059,30,0.026,0,0,0,0,0,0.278691798,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_utilitypv_class1_moderate_9,UtilityPV_Class1_Moderate_,9,213,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,28290.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,28289.909,1.059,30,0.026,0,0,0,0,0,0.222730413,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_offshorewind_class3_moderate_fixed_1_0,OffShoreWind_Class3_Moderate_fixed_1,0,214,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,26916.5,-1,0,0,0,0,0,1730000.0,174794.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,78705.752,1.0,30,0.036,0,0,0,0,0,0.485625327,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_1_1,OffShoreWind_Class3_Moderate_fixed_1,1,215,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,29943.3,-1,0,0,0,0,0,1730000.0,179346.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,83257.787,1.0,30,0.036,0,0,0,0,0,0.543219388,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_1_2,OffShoreWind_Class3_Moderate_fixed_1,2,216,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,39553.5,-1,0,0,0,0,0,1730000.0,177553.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,81464.449,1.0,30,0.036,0,0,0,0,0,0.499437243,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_1_3,OffShoreWind_Class3_Moderate_fixed_1,3,217,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,18780.0,-1,0,0,0,0,0,1730000.0,162737.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,66648.117,1.0,30,0.036,0,0,0,0,0,0.412348032,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_1_4,OffShoreWind_Class3_Moderate_fixed_1,4,218,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,19994.0,-1,0,0,0,0,0,1730000.0,174072.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,77983.329,1.0,30,0.036,0,0,0,0,0,0.458608687,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_1_5,OffShoreWind_Class3_Moderate_fixed_1,5,219,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,36016.0,-1,0,0,0,0,0,1730000.0,175097.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,79008.616,1.0,30,0.036,0,0,0,0,0,0.473246485,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_1_6,OffShoreWind_Class3_Moderate_fixed_1,6,220,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,53762.0,-1,0,0,0,0,0,1730000.0,174641.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,78552.631,1.0,30,0.036,0,0,0,0,0,0.42923066,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_1_7,OffShoreWind_Class3_Moderate_fixed_1,7,221,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,1544.0,-1,0,0,0,0,0,1730000.0,151442.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,55353.297,1.0,30,0.036,0,0,0,0,0,0.336571634,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_1_8,OffShoreWind_Class3_Moderate_fixed_1,8,222,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,44128.0,-1,0,0,0,0,0,1730000.0,176829.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,80740.015,1.0,30,0.036,0,0,0,0,0,0.404276967,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_1_9,OffShoreWind_Class3_Moderate_fixed_1,9,223,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,9122.0,-1,0,0,0,0,0,1730000.0,151351.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,55262.315,1.0,30,0.036,0,0,0,0,0,0.298123151,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_0_0,OffShoreWind_Class3_Moderate_fixed_0,0,224,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,26916.5,-1,0,0,0,0,0,1730000.0,174794.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,78705.752,1.0,30,0.036,0,0,0,0,0,0.485625327,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_0_1,OffShoreWind_Class3_Moderate_fixed_0,1,225,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,29943.3,-1,0,0,0,0,0,1730000.0,179346.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,83257.787,1.0,30,0.036,0,0,0,0,0,0.543219388,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_0_4,OffShoreWind_Class3_Moderate_fixed_0,4,226,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,39553.5,-1,0,0,0,0,0,1730000.0,177553.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,81464.449,1.0,30,0.036,0,0,0,0,0,0.499437243,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_0_5,OffShoreWind_Class3_Moderate_fixed_0,5,227,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,18780.0,-1,0,0,0,0,0,1730000.0,162737.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,66648.117,1.0,30,0.036,0,0,0,0,0,0.412348032,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_0_10,OffShoreWind_Class3_Moderate_fixed_0,10,228,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,19994.0,-1,0,0,0,0,0,1730000.0,174072.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,77983.329,1.0,30,0.036,0,0,0,0,0,0.458608687,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_0_11,OffShoreWind_Class3_Moderate_fixed_0,11,229,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,36016.0,-1,0,0,0,0,0,1730000.0,175097.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,79008.616,1.0,30,0.036,0,0,0,0,0,0.473246485,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_0_18,OffShoreWind_Class3_Moderate_fixed_0,18,230,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,53762.0,-1,0,0,0,0,0,1730000.0,174641.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,78552.631,1.0,30,0.036,0,0,0,0,0,0.42923066,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_0_19,OffShoreWind_Class3_Moderate_fixed_0,19,231,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,1544.0,-1,0,0,0,0,0,1730000.0,151442.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,55353.297,1.0,30,0.036,0,0,0,0,0,0.336571634,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_0_28,OffShoreWind_Class3_Moderate_fixed_0,28,232,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,44128.0,-1,0,0,0,0,0,1730000.0,176829.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,80740.015,1.0,30,0.036,0,0,0,0,0,0.404276967,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_0_29,OffShoreWind_Class3_Moderate_fixed_0,29,233,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,9122.0,-1,0,0,0,0,0,1730000.0,151351.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,55262.315,1.0,30,0.036,0,0,0,0,0,0.298123151,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_1_0,OffShoreWind_Class12_Moderate_floating_1,0,234,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,26916.5,-1,0,0,0,0,0,2770000.0,232121.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,78705.752,1.0,30,0.036,0,0,0,0,0,0.485625327,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_1_1,OffShoreWind_Class12_Moderate_floating_1,1,235,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,29943.3,-1,0,0,0,0,0,2770000.0,236673.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,83257.787,1.0,30,0.036,0,0,0,0,0,0.543219388,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_1_6,OffShoreWind_Class12_Moderate_floating_1,6,236,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,39553.5,-1,0,0,0,0,0,2770000.0,234880.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,81464.449,1.0,30,0.036,0,0,0,0,0,0.499437243,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_1_7,OffShoreWind_Class12_Moderate_floating_1,7,237,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,18780.0,-1,0,0,0,0,0,2770000.0,220064.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,66648.117,1.0,30,0.036,0,0,0,0,0,0.412348032,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_1_18,OffShoreWind_Class12_Moderate_floating_1,18,238,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,19994.0,-1,0,0,0,0,0,2770000.0,231399.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,77983.329,1.0,30,0.036,0,0,0,0,0,0.458608687,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_1_19,OffShoreWind_Class12_Moderate_floating_1,19,239,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,36016.0,-1,0,0,0,0,0,2770000.0,232424.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,79008.616,1.0,30,0.036,0,0,0,0,0,0.473246485,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_1_38,OffShoreWind_Class12_Moderate_floating_1,38,240,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,53762.0,-1,0,0,0,0,0,2770000.0,231968.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,78552.631,1.0,30,0.036,0,0,0,0,0,0.42923066,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_1_39,OffShoreWind_Class12_Moderate_floating_1,39,241,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,1544.0,-1,0,0,0,0,0,2770000.0,208769.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,55353.297,1.0,30,0.036,0,0,0,0,0,0.336571634,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_1_68,OffShoreWind_Class12_Moderate_floating_1,68,242,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,44128.0,-1,0,0,0,0,0,2770000.0,234156.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,80740.015,1.0,30,0.036,0,0,0,0,0,0.404276967,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_1_69,OffShoreWind_Class12_Moderate_floating_1,69,243,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,9122.0,-1,0,0,0,0,0,2770000.0,208678.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,55262.315,1.0,30,0.036,0,0,0,0,0,0.298123151,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_0_0,OffShoreWind_Class12_Moderate_floating_0,0,244,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,26916.5,-1,0,0,0,0,0,2770000.0,232121.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,78705.752,1.0,30,0.036,0,0,0,0,0,0.485625327,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_0_1,OffShoreWind_Class12_Moderate_floating_0,1,245,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,29943.3,-1,0,0,0,0,0,2770000.0,236673.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,83257.787,1.0,30,0.036,0,0,0,0,0,0.543219388,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_0_8,OffShoreWind_Class12_Moderate_floating_0,8,246,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,39553.5,-1,0,0,0,0,0,2770000.0,234880.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,81464.449,1.0,30,0.036,0,0,0,0,0,0.499437243,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_0_9,OffShoreWind_Class12_Moderate_floating_0,9,247,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,18780.0,-1,0,0,0,0,0,2770000.0,220064.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,66648.117,1.0,30,0.036,0,0,0,0,0,0.412348032,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_0_28,OffShoreWind_Class12_Moderate_floating_0,28,248,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,19994.0,-1,0,0,0,0,0,2770000.0,231399.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,77983.329,1.0,30,0.036,0,0,0,0,0,0.458608687,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_0_29,OffShoreWind_Class12_Moderate_floating_0,29,249,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,36016.0,-1,0,0,0,0,0,2770000.0,232424.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,79008.616,1.0,30,0.036,0,0,0,0,0,0.473246485,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_0_68,OffShoreWind_Class12_Moderate_floating_0,68,250,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,53762.0,-1,0,0,0,0,0,2770000.0,231968.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,78552.631,1.0,30,0.036,0,0,0,0,0,0.42923066,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_0_69,OffShoreWind_Class12_Moderate_floating_0,69,251,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,1544.0,-1,0,0,0,0,0,2770000.0,208769.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,55353.297,1.0,30,0.036,0,0,0,0,0,0.336571634,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_0_138,OffShoreWind_Class12_Moderate_floating_0,138,252,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,44128.0,-1,0,0,0,0,0,2770000.0,234156.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,80740.015,1.0,30,0.036,0,0,0,0,0,0.404276967,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_0_139,OffShoreWind_Class12_Moderate_floating_0,139,253,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,9122.0,-1,0,0,0,0,0,2770000.0,208678.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,55262.315,1.0,30,0.036,0,0,0,0,0,0.298123151,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_trans_light_duty_1,trans_light_duty,1,254,3,0,0,0,0,0,1,0,0,0.0,0,0,0.0,88930.5,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,5,0,1,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.304267582,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.95,0
-EIC,EIC_trans_light_duty_1,trans_light_duty,1,255,1,0,0,0,0,0,1,0,0,0.95,0,0,0.0,227552.1,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,5,0,1,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.29105489,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-TRE,TRE_trans_light_duty_1,trans_light_duty,1,256,2,0,0,0,0,0,1,0,0,0.0,0,0,0.0,34387.8,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,5,0,1,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.253653324,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95,0.0,0
-WECC,WECC_comm_water_heat_1,comm_water_heat,1,257,3,0,0,0,0,0,1,0,0,0.0,0,0,0.0,1130.3,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,2,2,1,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.575245441,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.95,0
-EIC,EIC_comm_water_heat_1,comm_water_heat,1,258,1,0,0,0,0,0,1,0,0,0.95,0,0,0.0,2922.1,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,2,2,1,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.545242595,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-TRE,TRE_comm_water_heat_1,comm_water_heat,1,259,2,0,0,0,0,0,1,0,0,0.0,0,0,0.0,368.7,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,2,2,1,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.48278806,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95,0.0,0
-WECC,WECC_res_water_heat_1,res_water_heat,1,260,3,0,0,0,0,0,1,0,0,0.0,0,0,0.0,2578.7,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,2,2,1,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.341639384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.95,0
-EIC,EIC_res_water_heat_1,res_water_heat,1,261,1,0,0,0,0,0,1,0,0,0.95,0,0,0.0,8238.2,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,2,2,1,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.358667559,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-TRE,TRE_res_water_heat_1,res_water_heat,1,262,2,0,0,0,0,0,1,0,0,0.0,0,0,0.0,1049.5,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,2,2,1,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.350966509,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95,0.0,0
-WECC,WECC_comm_space_heat_cool_1,comm_space_heat_cool,1,263,3,0,0,0,0,0,1,0,0,0.0,0,0,0.0,7483.3,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,1,1,1,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.172929324,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.95,0
-EIC,EIC_comm_space_heat_cool_1,comm_space_heat_cool,1,264,1,0,0,0,0,0,1,0,0,0.95,0,0,0.0,41624.8,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,1,1,1,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.155632777,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-TRE,TRE_comm_space_heat_cool_1,comm_space_heat_cool,1,265,2,0,0,0,0,0,1,0,0,0.0,0,0,0.0,6978.6,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,1,1,1,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.09675803,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95,0.0,0
-WECC,WECC_res_space_heat_cool_1,res_space_heat_cool,1,266,3,0,0,0,0,0,1,0,0,0.0,0,0,0.0,12467.5,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,1,1,1,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.244983674,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.95,0
-EIC,EIC_res_space_heat_cool_1,res_space_heat_cool,1,267,1,0,0,0,0,0,1,0,0,0.95,0,0,0.0,47457.0,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,1,1,1,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.208288887,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-TRE,TRE_res_space_heat_cool_1,res_space_heat_cool,1,268,2,0,0,0,0,0,1,0,0,0.0,0,0,0.0,7585.9,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,1,1,1,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.190117881,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95,0.0,0
-EIC,EIC_naturalgas_ctavgcf_moderate_0_zerocarbon,NaturalGas_CTAvgCF_Moderate_zerocarbon,0,269,1,0,1,0,0,0,0,0,0,0.93,0,0,0.0,0.0,0,0,0.0,1,1,100.0,0,-1.0,-1,0,0,0,0,0,746250.365,61000.0,0,0.0,0,0,5.0,0.0,0,0,137,3.5,9.72,0.0,0.0,zerocarbon_fuel,0.3,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,1.128,30,0.033,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-TRE,TRE_naturalgas_ctavgcf_moderate_0_zerocarbon,NaturalGas_CTAvgCF_Moderate_zerocarbon,0,270,2,0,1,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,100.0,0,-1.0,-1,0,0,0,0,0,746250.365,61000.0,0,0.0,0,0,5.0,0.0,0,0,137,3.5,9.72,0.0,0.0,zerocarbon_fuel,0.3,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,0.882,30,0.033,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0.0,0
-WECC,WECC_naturalgas_ctavgcf_moderate_0_zerocarbon,NaturalGas_CTAvgCF_Moderate_zerocarbon,0,271,3,0,1,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,100.0,0,-1.0,-1,0,0,0,0,0,746250.365,61000.0,0,0.0,0,0,5.0,0.0,0,0,137,3.5,9.72,0.0,0.0,zerocarbon_fuel,0.3,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,1.138,30,0.033,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
diff --git a/Example_Systems/VREStor_Example/Resources/Flex_demand.csv b/Example_Systems/VREStor_Example/Resources/Flex_demand.csv
new file mode 100644
index 0000000000..8f187e97d2
--- /dev/null
+++ b/Example_Systems/VREStor_Example/Resources/Flex_demand.csv
@@ -0,0 +1,16 @@
+Resource,Zone,Existing_Cap_MWh,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Max_Flexible_Demand_Delay,Max_Flexible_Demand_Advance,Flexible_Demand_Energy_Eff,region,technology,cluster
+WECC_trans_light_duty_1,3,0,88930.5,0,0,0,0,0,5,0,1,WECC,trans_light_duty,1
+EIC_trans_light_duty_1,1,0,227552.1,0,0,0,0,0,5,0,1,EIC,trans_light_duty,1
+TRE_trans_light_duty_1,2,0,34387.8,0,0,0,0,0,5,0,1,TRE,trans_light_duty,1
+WECC_comm_water_heat_1,3,0,1130.3,0,0,0,0,0,2,2,1,WECC,comm_water_heat,1
+EIC_comm_water_heat_1,1,0,2922.1,0,0,0,0,0,2,2,1,EIC,comm_water_heat,1
+TRE_comm_water_heat_1,2,0,368.7,0,0,0,0,0,2,2,1,TRE,comm_water_heat,1
+WECC_res_water_heat_1,3,0,2578.7,0,0,0,0,0,2,2,1,WECC,res_water_heat,1
+EIC_res_water_heat_1,1,0,8238.2,0,0,0,0,0,2,2,1,EIC,res_water_heat,1
+TRE_res_water_heat_1,2,0,1049.5,0,0,0,0,0,2,2,1,TRE,res_water_heat,1
+WECC_comm_space_heat_cool_1,3,0,7483.3,0,0,0,0,0,1,1,1,WECC,comm_space_heat_cool,1
+EIC_comm_space_heat_cool_1,1,0,41624.8,0,0,0,0,0,1,1,1,EIC,comm_space_heat_cool,1
+TRE_comm_space_heat_cool_1,2,0,6978.6,0,0,0,0,0,1,1,1,TRE,comm_space_heat_cool,1
+WECC_res_space_heat_cool_1,3,0,12467.5,0,0,0,0,0,1,1,1,WECC,res_space_heat_cool,1
+EIC_res_space_heat_cool_1,1,0,47457,0,0,0,0,0,1,1,1,EIC,res_space_heat_cool,1
+TRE_res_space_heat_cool_1,2,0,7585.9,0,0,0,0,0,1,1,1,TRE,res_space_heat_cool,1
\ No newline at end of file
diff --git a/Example_Systems/VREStor_Example/Resources/Hydro.csv b/Example_Systems/VREStor_Example/Resources/Hydro.csv
new file mode 100644
index 0000000000..c73b4b625d
--- /dev/null
+++ b/Example_Systems/VREStor_Example/Resources/Hydro.csv
@@ -0,0 +1,4 @@
+Resource Zone Existing_Cap_MWh Existing_Cap_MW New_Build Can_Retire Cap_Size Min_Cap_MW Max_Cap_MW Inv_Cost_per_MWyr Fixed_OM_Cost_per_MWyr Var_OM_Cost_per_MWh Heat_Rate_MMBTU_per_MWh Fuel Min_Power Self_Disch Eff_Up Eff_Down Hydro_Energy_to_Power_Ratio Ramp_Up_Percentage Ramp_Dn_Percentage Up_Time Down_Time region technology cluster
+EIC_conventional_hydroelectric_1 1 0 24200.8 0 0 32.35 0 0 0 47048 0 10.34 None 0.273 0 1 1 1 1 1 0 0 EIC Conventional Hydroelectric 1
+TRE_conventional_hydroelectric_1 2 0 477 0 0 25.1 0 0 0 47048 0 10.34 None 0 0 1 1 1 1 1 0 0 TRE Conventional Hydroelectric 1
+WECC_conventional_hydroelectric_1 3 0 46528 0 0 72.7 0 0 0 47048 0 10.34 None 0.214 0 1 1 1 1 1 0 0 WECC Conventional Hydroelectric 1
\ No newline at end of file
diff --git a/Example_Systems/VREStor_Example/Resources/Must_run.csv b/Example_Systems/VREStor_Example/Resources/Must_run.csv
new file mode 100644
index 0000000000..300177484d
--- /dev/null
+++ b/Example_Systems/VREStor_Example/Resources/Must_run.csv
@@ -0,0 +1,10 @@
+Resource Zone Existing_Cap_MWh Existing_Cap_MW New_Build Can_Retire Cap_Size Min_Cap_MW Max_Cap_MW Inv_Cost_per_MWyr Fixed_OM_Cost_per_MWyr Var_OM_Cost_per_MWh Start_Cost_per_MW Heat_Rate_MMBTU_per_MWh Fuel Min_Power Self_Disch Eff_Up Eff_Down Ramp_Up_Percentage Ramp_Dn_Percentage Up_Time Down_Time region technology cluster
+EIC_biomass_1 1 0 1722.5 0 0 1.27 0 0 0 150850 7.32 172 17.03 biomass 0.308 0 1 1 1 1 0 0 EIC Biomass 1
+EIC_small_hydroelectric_1 1 0 1672.2 0 0 1.06 0 0 0 47048 0 0 10.34 None 0.273 0 1 1 1 1 0 0 EIC Small Hydroelectric 1
+TRE_biomass_1 2 0 44.5 0 0 1.48 0 0 0 150850 6.51 172 15.15 biomass 0.591 0 1 1 1 1 0 0 TRE Biomass 1
+TRE_small_hydroelectric_1 2 0 11.2 0 0 0.75 0 0 0 47048 0 0 10.34 None 0 0 1 1 1 1 0 0 TRE Small Hydroelectric 1
+WECC_biomass_1 3 0 551 0 0 2.01 0 0 0 150850 7.14 172 16.63 biomass 0.362 0 1 1 1 1 0 0 WECC Biomass 1
+WECC_small_hydroelectric_1 3 0 1064.3 0 0 1.62 0 0 0 47048 0 0 10.34 None 0.181 0 1 1 1 1 0 0 WECC Small Hydroelectric 1
+WECC_distributed_generation_1 3 0 250535 0 0 0 0 0 0 0 0 0 0 None 0 0 1 1 1 1 0 0 WECC distributed_generation 1
+EIC_distributed_generation_1 1 0 1770000 0 0 0 0 0 0 0 0 0 0 None 0 0 1 1 1 1 0 0 EIC distributed_generation 1
+TRE_distributed_generation_1 2 0 17006 0 0 0 0 0 0 0 0 0 0 None 0 0 1 1 1 1 0 0 TRE distributed_generation 1
\ No newline at end of file
diff --git a/Example_Systems/VREStor_Example/Resources/Resource_capacity_reserve_margin.csv b/Example_Systems/VREStor_Example/Resources/Resource_capacity_reserve_margin.csv
new file mode 100644
index 0000000000..7d65450b31
--- /dev/null
+++ b/Example_Systems/VREStor_Example/Resources/Resource_capacity_reserve_margin.csv
@@ -0,0 +1,272 @@
+Resource,Derating_Factor_1,Derating_Factor_2,Derating_Factor_3
+EIC_advnuclear_atb_moderate_0,0.93,0,0
+EIC_batteries_1,0.95,0,0
+EIC_battery_moderate_0,0.95,0,0
+EIC_biomass_1,0.93,0,0
+EIC_comm_space_heat_cool_1,0.95,0,0
+EIC_comm_water_heat_1,0.95,0,0
+EIC_conventional_hydroelectric_1,0.8,0,0
+EIC_conventional_steam_coal_1,0.93,0,0
+EIC_conventional_steam_coal_2,0.93,0,0
+EIC_distributed_generation_1,0.8,0,0
+EIC_hydroelectric_pumped_storage_1,0.95,0,0
+EIC_natural_gas_fired_combined_cycle_1,0.93,0,0
+EIC_natural_gas_fired_combined_cycle_2,0.93,0,0
+EIC_natural_gas_fired_combustion_turbine_1,0.93,0,0
+EIC_natural_gas_fired_combustion_turbine_2,0.93,0,0
+EIC_natural_gas_internal_combustion_engine_1,0.93,0,0
+EIC_natural_gas_steam_turbine_1,0.93,0,0
+EIC_naturalgas_ccavgcf_moderate_0,0.93,0,0
+EIC_naturalgas_ccccsavgcf_conservative_0,0.93,0,0
+EIC_naturalgas_ctavgcf_moderate_0,0.93,0,0
+EIC_naturalgas_ctavgcf_moderate_0_zerocarbon,0.93,0,0
+EIC_nuclear_1,0.93,0,0
+EIC_offshore_wind_turbine_1,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_0_0,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_0_1,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_0_138,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_0_139,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_0_28,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_0_29,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_0_68,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_0_69,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_0_8,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_0_9,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_1_0,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_1_1,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_1_18,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_1_19,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_1_38,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_1_39,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_1_6,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_1_68,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_1_69,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_1_7,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_0_0,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_0_1,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_0_10,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_0_11,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_0_18,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_0_19,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_0_28,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_0_29,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_0_4,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_0_5,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_1_0,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_1_1,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_1_2,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_1_3,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_1_4,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_1_5,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_1_6,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_1_7,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_1_8,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_1_9,0.8,0,0
+EIC_onshore_wind_turbine_1,0.8,0,0
+EIC_petroleum_liquids_1,0.93,0,0
+EIC_res_space_heat_cool_1,0.95,0,0
+EIC_res_water_heat_1,0.95,0,0
+EIC_small_hydroelectric_1,0.8,0,0
+EIC_solar_photovoltaic_1,0.8,0,0
+EIC_trans_light_duty_1,0.95,0,0
+TRE_advnuclear_atb_moderate_0,0,0.93,0
+TRE_batteries_1,0,0.95,0
+TRE_battery_moderate_0,0,0.95,0
+TRE_biomass_1,0,0.93,0
+TRE_comm_space_heat_cool_1,0,0.95,0
+TRE_comm_water_heat_1,0,0.95,0
+TRE_conventional_hydroelectric_1,0,0.8,0
+TRE_conventional_steam_coal_1,0,0.93,0
+TRE_conventional_steam_coal_2,0,0.93,0
+TRE_distributed_generation_1,0,0.8,0
+TRE_natural_gas_fired_combined_cycle_1,0,0.93,0
+TRE_natural_gas_fired_combined_cycle_2,0,0.93,0
+TRE_natural_gas_fired_combustion_turbine_1,0,0.93,0
+TRE_natural_gas_fired_combustion_turbine_2,0,0.93,0
+TRE_natural_gas_internal_combustion_engine_1,0,0.93,0
+TRE_natural_gas_steam_turbine_1,0,0.93,0
+TRE_naturalgas_ccavgcf_moderate_0,0,0.93,0
+TRE_naturalgas_ccccsavgcf_conservative_0,0,0.93,0
+TRE_naturalgas_ctavgcf_moderate_0,0,0.93,0
+TRE_naturalgas_ctavgcf_moderate_0_zerocarbon,0,0.93,0
+TRE_nuclear_1,0,0.93,0
+TRE_offshorewind_class12_moderate_floating_0_0,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_0_1,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_0_138,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_0_139,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_0_28,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_0_29,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_0_68,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_0_69,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_0_8,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_0_9,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_1_0,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_1_1,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_1_18,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_1_19,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_1_38,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_1_39,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_1_6,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_1_68,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_1_69,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_1_7,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_0_0,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_0_1,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_0_10,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_0_11,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_0_18,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_0_19,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_0_28,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_0_29,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_0_4,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_0_5,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_1_0,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_1_1,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_1_2,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_1_3,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_1_4,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_1_5,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_1_6,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_1_7,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_1_8,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_1_9,0,0.8,0
+TRE_onshore_wind_turbine_1,0,0.8,0
+TRE_petroleum_liquids_1,0,0.93,0
+TRE_res_space_heat_cool_1,0,0.95,0
+TRE_res_water_heat_1,0,0.95,0
+TRE_small_hydroelectric_1,0,0.8,0
+TRE_solar_photovoltaic_1,0,0.8,0
+TRE_trans_light_duty_1,0,0.95,0
+WECC_advnuclear_atb_moderate_0,0,0,0.93
+WECC_batteries_1,0,0,0.95
+WECC_battery_moderate_0,0,0,0.95
+WECC_biomass_1,0,0,0.93
+WECC_comm_space_heat_cool_1,0,0,0.95
+WECC_comm_water_heat_1,0,0,0.95
+WECC_conventional_hydroelectric_1,0,0,0.8
+WECC_conventional_steam_coal_1,0,0,0.93
+WECC_conventional_steam_coal_2,0,0,0.93
+WECC_distributed_generation_1,0,0,0.8
+WECC_geothermal_1,0,0,0.93
+WECC_hydroelectric_pumped_storage_1,0,0,0.95
+WECC_natural_gas_fired_combined_cycle_1,0,0,0.93
+WECC_natural_gas_fired_combined_cycle_2,0,0,0.93
+WECC_natural_gas_fired_combustion_turbine_1,0,0,0.93
+WECC_natural_gas_fired_combustion_turbine_2,0,0,0.93
+WECC_natural_gas_internal_combustion_engine_1,0,0,0.93
+WECC_natural_gas_steam_turbine_1,0,0,0.93
+WECC_naturalgas_ccavgcf_moderate_0,0,0,0.93
+WECC_naturalgas_ccccsavgcf_conservative_0,0,0,0.93
+WECC_naturalgas_ctavgcf_moderate_0,0,0,0.93
+WECC_naturalgas_ctavgcf_moderate_0_zerocarbon,0,0,0.93
+WECC_nuclear_1,0,0,0.93
+WECC_offshorewind_class12_moderate_floating_0_0,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_0_1,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_0_138,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_0_139,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_0_28,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_0_29,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_0_68,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_0_69,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_0_8,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_0_9,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_1_0,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_1_1,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_1_18,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_1_19,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_1_38,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_1_39,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_1_6,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_1_68,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_1_69,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_1_7,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_0_0,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_0_1,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_0_10,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_0_11,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_0_18,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_0_19,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_0_28,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_0_29,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_0_4,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_0_5,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_1_0,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_1_1,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_1_2,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_1_3,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_1_4,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_1_5,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_1_6,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_1_7,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_1_8,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_1_9,0,0,0.8
+WECC_onshore_wind_turbine_1,0,0,0.8
+WECC_petroleum_liquids_1,0,0,0.93
+WECC_res_space_heat_cool_1,0,0,0.95
+WECC_res_water_heat_1,0,0,0.95
+WECC_small_hydroelectric_1,0,0,0.8
+WECC_solar_photovoltaic_1,0,0,0.8
+WECC_trans_light_duty_1,0,0,0.95
+EIC_landbasedwind_class1_moderate_0,0.95,0,0
+EIC_landbasedwind_class1_moderate_1,0.95,0,0
+EIC_landbasedwind_class1_moderate_2,0.95,0,0
+EIC_landbasedwind_class1_moderate_3,0.95,0,0
+EIC_landbasedwind_class1_moderate_4,0.95,0,0
+EIC_landbasedwind_class1_moderate_5,0.95,0,0
+EIC_landbasedwind_class1_moderate_6,0.95,0,0
+EIC_landbasedwind_class1_moderate_7,0.95,0,0
+EIC_landbasedwind_class1_moderate_8,0.95,0,0
+EIC_landbasedwind_class1_moderate_9,0.95,0,0
+EIC_storage_metalair_advanced_0,0.95,0,0
+EIC_utilitypv_class1_moderate_0,0.95,0,0
+EIC_utilitypv_class1_moderate_1,0.95,0,0
+EIC_utilitypv_class1_moderate_2,0.95,0,0
+EIC_utilitypv_class1_moderate_3,0.95,0,0
+EIC_utilitypv_class1_moderate_4,0.95,0,0
+EIC_utilitypv_class1_moderate_5,0.95,0,0
+EIC_utilitypv_class1_moderate_6,0.95,0,0
+EIC_utilitypv_class1_moderate_7,0.95,0,0
+EIC_utilitypv_class1_moderate_8,0.95,0,0
+EIC_utilitypv_class1_moderate_9,0.95,0,0
+TRE_landbasedwind_class1_moderate_0,0,0.95,0
+TRE_landbasedwind_class1_moderate_1,0,0.95,0
+TRE_landbasedwind_class1_moderate_2,0,0.95,0
+TRE_landbasedwind_class1_moderate_3,0,0.95,0
+TRE_landbasedwind_class1_moderate_4,0,0.95,0
+TRE_landbasedwind_class1_moderate_5,0,0.95,0
+TRE_landbasedwind_class1_moderate_6,0,0.95,0
+TRE_landbasedwind_class1_moderate_7,0,0.95,0
+TRE_landbasedwind_class1_moderate_8,0,0.95,0
+TRE_landbasedwind_class1_moderate_9,0,0.95,0
+TRE_storage_metalair_advanced_0,0,0.95,0
+TRE_utilitypv_class1_moderate_0,0,0.95,0
+TRE_utilitypv_class1_moderate_1,0,0.95,0
+TRE_utilitypv_class1_moderate_2,0,0.95,0
+TRE_utilitypv_class1_moderate_3,0,0.95,0
+TRE_utilitypv_class1_moderate_4,0,0.95,0
+TRE_utilitypv_class1_moderate_5,0,0.95,0
+TRE_utilitypv_class1_moderate_6,0,0.95,0
+TRE_utilitypv_class1_moderate_7,0,0.95,0
+TRE_utilitypv_class1_moderate_8,0,0.95,0
+TRE_utilitypv_class1_moderate_9,0,0.95,0
+WECC_landbasedwind_class1_moderate_0,0,0,0.95
+WECC_landbasedwind_class1_moderate_1,0,0,0.95
+WECC_landbasedwind_class1_moderate_2,0,0,0.95
+WECC_landbasedwind_class1_moderate_3,0,0,0.95
+WECC_landbasedwind_class1_moderate_4,0,0,0.95
+WECC_landbasedwind_class1_moderate_5,0,0,0.95
+WECC_landbasedwind_class1_moderate_6,0,0,0.95
+WECC_landbasedwind_class1_moderate_7,0,0,0.95
+WECC_landbasedwind_class1_moderate_8,0,0,0.95
+WECC_landbasedwind_class1_moderate_9,0,0,0.95
+WECC_storage_metalair_advanced_0,0,0,0.95
+WECC_utilitypv_class1_moderate_0,0,0,0.95
+WECC_utilitypv_class1_moderate_1,0,0,0.95
+WECC_utilitypv_class1_moderate_2,0,0,0.95
+WECC_utilitypv_class1_moderate_3,0,0,0.95
+WECC_utilitypv_class1_moderate_4,0,0,0.95
+WECC_utilitypv_class1_moderate_5,0,0,0.95
+WECC_utilitypv_class1_moderate_6,0,0,0.95
+WECC_utilitypv_class1_moderate_7,0,0,0.95
+WECC_utilitypv_class1_moderate_8,0,0,0.95
+WECC_utilitypv_class1_moderate_9,0,0,0.95
\ No newline at end of file
diff --git a/Example_Systems/VREStor_Example/Resources/Resource_maximum_capacity_requirement.csv b/Example_Systems/VREStor_Example/Resources/Resource_maximum_capacity_requirement.csv
new file mode 100644
index 0000000000..365b05d024
--- /dev/null
+++ b/Example_Systems/VREStor_Example/Resources/Resource_maximum_capacity_requirement.csv
@@ -0,0 +1,2 @@
+Resource,Max_Cap_1,Max_Cap_2,Max_Cap_3,Max_Cap_Stor_1,Max_Cap_Solar_1,Max_Cap_Wind_1,Max_Cap_Stor_2,Max_Cap_Solar_2,Max_Cap_Wind_2,Max_Cap_Stor_3,Max_Cap_Solar_3,Max_Cap_Wind_3
+EIC_landbasedwind_class1_moderate_0,0,0,0,0,0,0,0,0,0,0,0,0
\ No newline at end of file
diff --git a/Example_Systems/VREStor_Example/Resources/Resource_minimum_capacity_requirement.csv b/Example_Systems/VREStor_Example/Resources/Resource_minimum_capacity_requirement.csv
new file mode 100644
index 0000000000..b0e5718026
--- /dev/null
+++ b/Example_Systems/VREStor_Example/Resources/Resource_minimum_capacity_requirement.csv
@@ -0,0 +1,272 @@
+Resource,Min_Cap_1,Min_Cap_2,Min_Cap_3
+EIC_storage_metalair_advanced_0,0,0,0
+EIC_landbasedwind_class1_moderate_0,0,0,0
+EIC_landbasedwind_class1_moderate_1,0,0,0
+EIC_landbasedwind_class1_moderate_2,0,0,0
+EIC_landbasedwind_class1_moderate_3,0,0,0
+EIC_landbasedwind_class1_moderate_4,0,0,0
+EIC_landbasedwind_class1_moderate_5,0,0,0
+EIC_landbasedwind_class1_moderate_6,0,0,0
+EIC_landbasedwind_class1_moderate_7,0,0,0
+EIC_landbasedwind_class1_moderate_8,0,0,0
+EIC_landbasedwind_class1_moderate_9,0,0,0
+EIC_utilitypv_class1_moderate_0,0,0,0
+EIC_utilitypv_class1_moderate_1,0,0,0
+EIC_utilitypv_class1_moderate_2,0,0,0
+EIC_utilitypv_class1_moderate_3,0,0,0
+EIC_utilitypv_class1_moderate_4,0,0,0
+EIC_utilitypv_class1_moderate_5,0,0,0
+EIC_utilitypv_class1_moderate_6,0,0,0
+EIC_utilitypv_class1_moderate_7,0,0,0
+EIC_utilitypv_class1_moderate_8,0,0,0
+EIC_utilitypv_class1_moderate_9,0,0,0
+TRE_storage_metalair_advanced_0,0,0,0
+TRE_landbasedwind_class1_moderate_0,0,0,0
+TRE_landbasedwind_class1_moderate_1,0,0,0
+TRE_landbasedwind_class1_moderate_2,0,0,0
+TRE_landbasedwind_class1_moderate_3,0,0,0
+TRE_landbasedwind_class1_moderate_4,0,0,0
+TRE_landbasedwind_class1_moderate_5,0,0,0
+TRE_landbasedwind_class1_moderate_6,0,0,0
+TRE_landbasedwind_class1_moderate_7,0,0,0
+TRE_landbasedwind_class1_moderate_8,0,0,0
+TRE_landbasedwind_class1_moderate_9,0,0,0
+TRE_utilitypv_class1_moderate_0,0,0,0
+TRE_utilitypv_class1_moderate_1,0,0,0
+TRE_utilitypv_class1_moderate_2,0,0,0
+TRE_utilitypv_class1_moderate_3,0,0,0
+TRE_utilitypv_class1_moderate_4,0,0,0
+TRE_utilitypv_class1_moderate_5,0,0,0
+TRE_utilitypv_class1_moderate_6,0,0,0
+TRE_utilitypv_class1_moderate_7,0,0,0
+TRE_utilitypv_class1_moderate_8,0,0,0
+TRE_utilitypv_class1_moderate_9,0,0,0
+WECC_storage_metalair_advanced_0,0,0,0
+WECC_landbasedwind_class1_moderate_0,0,0,0
+WECC_landbasedwind_class1_moderate_1,0,0,0
+WECC_landbasedwind_class1_moderate_2,0,0,0
+WECC_landbasedwind_class1_moderate_3,0,0,0
+WECC_landbasedwind_class1_moderate_4,0,0,0
+WECC_landbasedwind_class1_moderate_5,0,0,0
+WECC_landbasedwind_class1_moderate_6,0,0,0
+WECC_landbasedwind_class1_moderate_7,0,0,0
+WECC_landbasedwind_class1_moderate_8,0,0,0
+WECC_landbasedwind_class1_moderate_9,0,0,0
+WECC_utilitypv_class1_moderate_0,0,0,0
+WECC_utilitypv_class1_moderate_1,0,0,0
+WECC_utilitypv_class1_moderate_2,0,0,0
+WECC_utilitypv_class1_moderate_3,0,0,0
+WECC_utilitypv_class1_moderate_4,0,0,0
+WECC_utilitypv_class1_moderate_5,0,0,0
+WECC_utilitypv_class1_moderate_6,0,0,0
+WECC_utilitypv_class1_moderate_7,0,0,0
+WECC_utilitypv_class1_moderate_8,0,0,0
+WECC_utilitypv_class1_moderate_9,0,0,0
+WECC_trans_light_duty_1,0,0,0
+EIC_trans_light_duty_1,0,0,0
+TRE_trans_light_duty_1,0,0,0
+WECC_comm_water_heat_1,0,0,0
+EIC_comm_water_heat_1,0,0,0
+TRE_comm_water_heat_1,0,0,0
+WECC_res_water_heat_1,0,0,0
+EIC_res_water_heat_1,0,0,0
+TRE_res_water_heat_1,0,0,0
+WECC_comm_space_heat_cool_1,0,0,0
+EIC_comm_space_heat_cool_1,0,0,0
+TRE_comm_space_heat_cool_1,0,0,0
+WECC_res_space_heat_cool_1,0,0,0
+EIC_res_space_heat_cool_1,0,0,0
+TRE_res_space_heat_cool_1,0,0,0
+EIC_conventional_hydroelectric_1,0,0,0
+TRE_conventional_hydroelectric_1,0,0,0
+WECC_conventional_hydroelectric_1,0,0,0
+EIC_biomass_1,0,0,0
+EIC_small_hydroelectric_1,0,0,0
+TRE_biomass_1,0,0,0
+TRE_small_hydroelectric_1,0,0,0
+WECC_biomass_1,0,0,0
+WECC_small_hydroelectric_1,0,0,0
+WECC_distributed_generation_1,0,0,0
+EIC_distributed_generation_1,0,0,0
+TRE_distributed_generation_1,0,0,0
+EIC_batteries_1,0,0,0
+EIC_hydroelectric_pumped_storage_1,0,0,0
+TRE_batteries_1,0,0,0
+WECC_batteries_1,0,0,0
+WECC_hydroelectric_pumped_storage_1,0,0,0
+EIC_battery_moderate_0,0,0,0
+TRE_battery_moderate_0,0,0,0
+WECC_battery_moderate_0,0,0,0
+EIC_conventional_steam_coal_1,0,0,0
+EIC_conventional_steam_coal_2,0,0,0
+EIC_natural_gas_fired_combined_cycle_1,0,0,0
+EIC_natural_gas_fired_combined_cycle_2,0,0,0
+EIC_natural_gas_fired_combustion_turbine_1,0,0,0
+EIC_natural_gas_fired_combustion_turbine_2,0,0,0
+EIC_natural_gas_internal_combustion_engine_1,0,0,0
+EIC_natural_gas_steam_turbine_1,0,0,0
+EIC_nuclear_1,0,0,0
+EIC_petroleum_liquids_1,0,0,0
+TRE_conventional_steam_coal_1,0,0,0
+TRE_conventional_steam_coal_2,0,0,0
+TRE_natural_gas_fired_combined_cycle_1,0,0,0
+TRE_natural_gas_fired_combined_cycle_2,0,0,0
+TRE_natural_gas_fired_combustion_turbine_1,0,0,0
+TRE_natural_gas_fired_combustion_turbine_2,0,0,0
+TRE_natural_gas_internal_combustion_engine_1,0,0,0
+TRE_natural_gas_steam_turbine_1,0,0,0
+TRE_nuclear_1,0,0,0
+TRE_petroleum_liquids_1,0,0,0
+WECC_conventional_steam_coal_1,0,0,0
+WECC_conventional_steam_coal_2,0,0,0
+WECC_natural_gas_fired_combined_cycle_1,0,0,0
+WECC_natural_gas_fired_combined_cycle_2,0,0,0
+WECC_natural_gas_fired_combustion_turbine_1,0,0,0
+WECC_natural_gas_fired_combustion_turbine_2,0,0,0
+WECC_natural_gas_internal_combustion_engine_1,0,0,0
+WECC_natural_gas_steam_turbine_1,0,0,0
+WECC_nuclear_1,0,0,0
+WECC_petroleum_liquids_1,0,0,0
+EIC_naturalgas_ccavgcf_moderate_0,0,0,0
+EIC_naturalgas_ctavgcf_moderate_0,0,0,0
+EIC_naturalgas_ccccsavgcf_conservative_0,0,0,0
+EIC_advnuclear_atb_moderate_0,0,0,0
+TRE_naturalgas_ccavgcf_moderate_0,0,0,0
+TRE_naturalgas_ctavgcf_moderate_0,0,0,0
+TRE_naturalgas_ccccsavgcf_conservative_0,0,0,0
+TRE_advnuclear_atb_moderate_0,0,0,0
+WECC_naturalgas_ccavgcf_moderate_0,0,0,0
+WECC_naturalgas_ctavgcf_moderate_0,0,0,0
+WECC_naturalgas_ccccsavgcf_conservative_0,0,0,0
+WECC_advnuclear_atb_moderate_0,0,0,0
+EIC_naturalgas_ctavgcf_moderate_0_zerocarbon,0,0,0
+TRE_naturalgas_ctavgcf_moderate_0_zerocarbon,0,0,0
+WECC_naturalgas_ctavgcf_moderate_0_zerocarbon,0,0,0
+EIC_offshore_wind_turbine_1,0,0,0
+EIC_onshore_wind_turbine_1,0,0,0
+EIC_solar_photovoltaic_1,0,0,0
+TRE_onshore_wind_turbine_1,0,0,0
+TRE_solar_photovoltaic_1,0,0,0
+WECC_geothermal_1,0,0,0
+WECC_onshore_wind_turbine_1,0,0,0
+WECC_solar_photovoltaic_1,0,0,0
+EIC_offshorewind_class3_moderate_fixed_1_0,0,0,0
+EIC_offshorewind_class3_moderate_fixed_1_1,0,0,0
+EIC_offshorewind_class3_moderate_fixed_1_2,0,0,0
+EIC_offshorewind_class3_moderate_fixed_1_3,0,0,0
+EIC_offshorewind_class3_moderate_fixed_1_4,0,0,0
+EIC_offshorewind_class3_moderate_fixed_1_5,0,0,0
+EIC_offshorewind_class3_moderate_fixed_1_6,0,0,0
+EIC_offshorewind_class3_moderate_fixed_1_7,0,0,0
+EIC_offshorewind_class3_moderate_fixed_1_8,0,0,0
+EIC_offshorewind_class3_moderate_fixed_1_9,0,0,0
+EIC_offshorewind_class3_moderate_fixed_0_0,0,0,0
+EIC_offshorewind_class3_moderate_fixed_0_1,0,0,0
+EIC_offshorewind_class3_moderate_fixed_0_4,0,0,0
+EIC_offshorewind_class3_moderate_fixed_0_5,0,0,0
+EIC_offshorewind_class3_moderate_fixed_0_10,0,0,0
+EIC_offshorewind_class3_moderate_fixed_0_11,0,0,0
+EIC_offshorewind_class3_moderate_fixed_0_18,0,0,0
+EIC_offshorewind_class3_moderate_fixed_0_19,0,0,0
+EIC_offshorewind_class3_moderate_fixed_0_28,0,0,0
+EIC_offshorewind_class3_moderate_fixed_0_29,0,0,0
+EIC_offshorewind_class12_moderate_floating_1_0,0,0,0
+EIC_offshorewind_class12_moderate_floating_1_1,0,0,0
+EIC_offshorewind_class12_moderate_floating_1_6,0,0,0
+EIC_offshorewind_class12_moderate_floating_1_7,0,0,0
+EIC_offshorewind_class12_moderate_floating_1_18,0,0,0
+EIC_offshorewind_class12_moderate_floating_1_19,0,0,0
+EIC_offshorewind_class12_moderate_floating_1_38,0,0,0
+EIC_offshorewind_class12_moderate_floating_1_39,0,0,0
+EIC_offshorewind_class12_moderate_floating_1_68,0,0,0
+EIC_offshorewind_class12_moderate_floating_1_69,0,0,0
+EIC_offshorewind_class12_moderate_floating_0_0,0,0,0
+EIC_offshorewind_class12_moderate_floating_0_1,0,0,0
+EIC_offshorewind_class12_moderate_floating_0_8,0,0,0
+EIC_offshorewind_class12_moderate_floating_0_9,0,0,0
+EIC_offshorewind_class12_moderate_floating_0_28,0,0,0
+EIC_offshorewind_class12_moderate_floating_0_29,0,0,0
+EIC_offshorewind_class12_moderate_floating_0_68,0,0,0
+EIC_offshorewind_class12_moderate_floating_0_69,0,0,0
+EIC_offshorewind_class12_moderate_floating_0_138,0,0,0
+EIC_offshorewind_class12_moderate_floating_0_139,0,0,0
+TRE_offshorewind_class3_moderate_fixed_1_0,0,0,0
+TRE_offshorewind_class3_moderate_fixed_1_1,0,0,0
+TRE_offshorewind_class3_moderate_fixed_1_2,0,0,0
+TRE_offshorewind_class3_moderate_fixed_1_3,0,0,0
+TRE_offshorewind_class3_moderate_fixed_1_4,0,0,0
+TRE_offshorewind_class3_moderate_fixed_1_5,0,0,0
+TRE_offshorewind_class3_moderate_fixed_1_6,0,0,0
+TRE_offshorewind_class3_moderate_fixed_1_7,0,0,0
+TRE_offshorewind_class3_moderate_fixed_1_8,0,0,0
+TRE_offshorewind_class3_moderate_fixed_1_9,0,0,0
+TRE_offshorewind_class3_moderate_fixed_0_0,0,0,0
+TRE_offshorewind_class3_moderate_fixed_0_1,0,0,0
+TRE_offshorewind_class3_moderate_fixed_0_4,0,0,0
+TRE_offshorewind_class3_moderate_fixed_0_5,0,0,0
+TRE_offshorewind_class3_moderate_fixed_0_10,0,0,0
+TRE_offshorewind_class3_moderate_fixed_0_11,0,0,0
+TRE_offshorewind_class3_moderate_fixed_0_18,0,0,0
+TRE_offshorewind_class3_moderate_fixed_0_19,0,0,0
+TRE_offshorewind_class3_moderate_fixed_0_28,0,0,0
+TRE_offshorewind_class3_moderate_fixed_0_29,0,0,0
+TRE_offshorewind_class12_moderate_floating_1_0,0,0,0
+TRE_offshorewind_class12_moderate_floating_1_1,0,0,0
+TRE_offshorewind_class12_moderate_floating_1_6,0,0,0
+TRE_offshorewind_class12_moderate_floating_1_7,0,0,0
+TRE_offshorewind_class12_moderate_floating_1_18,0,0,0
+TRE_offshorewind_class12_moderate_floating_1_19,0,0,0
+TRE_offshorewind_class12_moderate_floating_1_38,0,0,0
+TRE_offshorewind_class12_moderate_floating_1_39,0,0,0
+TRE_offshorewind_class12_moderate_floating_1_68,0,0,0
+TRE_offshorewind_class12_moderate_floating_1_69,0,0,0
+TRE_offshorewind_class12_moderate_floating_0_0,0,0,0
+TRE_offshorewind_class12_moderate_floating_0_1,0,0,0
+TRE_offshorewind_class12_moderate_floating_0_8,0,0,0
+TRE_offshorewind_class12_moderate_floating_0_9,0,0,0
+TRE_offshorewind_class12_moderate_floating_0_28,0,0,0
+TRE_offshorewind_class12_moderate_floating_0_29,0,0,0
+TRE_offshorewind_class12_moderate_floating_0_68,0,0,0
+TRE_offshorewind_class12_moderate_floating_0_69,0,0,0
+TRE_offshorewind_class12_moderate_floating_0_138,0,0,0
+TRE_offshorewind_class12_moderate_floating_0_139,0,0,0
+WECC_offshorewind_class3_moderate_fixed_1_0,0,0,0
+WECC_offshorewind_class3_moderate_fixed_1_1,0,0,0
+WECC_offshorewind_class3_moderate_fixed_1_2,0,0,0
+WECC_offshorewind_class3_moderate_fixed_1_3,0,0,0
+WECC_offshorewind_class3_moderate_fixed_1_4,0,0,0
+WECC_offshorewind_class3_moderate_fixed_1_5,0,0,0
+WECC_offshorewind_class3_moderate_fixed_1_6,0,0,0
+WECC_offshorewind_class3_moderate_fixed_1_7,0,0,0
+WECC_offshorewind_class3_moderate_fixed_1_8,0,0,0
+WECC_offshorewind_class3_moderate_fixed_1_9,0,0,0
+WECC_offshorewind_class3_moderate_fixed_0_0,0,0,0
+WECC_offshorewind_class3_moderate_fixed_0_1,0,0,0
+WECC_offshorewind_class3_moderate_fixed_0_4,0,0,0
+WECC_offshorewind_class3_moderate_fixed_0_5,0,0,0
+WECC_offshorewind_class3_moderate_fixed_0_10,0,0,0
+WECC_offshorewind_class3_moderate_fixed_0_11,0,0,0
+WECC_offshorewind_class3_moderate_fixed_0_18,0,0,0
+WECC_offshorewind_class3_moderate_fixed_0_19,0,0,0
+WECC_offshorewind_class3_moderate_fixed_0_28,0,0,0
+WECC_offshorewind_class3_moderate_fixed_0_29,0,0,0
+WECC_offshorewind_class12_moderate_floating_1_0,0,0,0
+WECC_offshorewind_class12_moderate_floating_1_1,0,0,0
+WECC_offshorewind_class12_moderate_floating_1_6,0,0,0
+WECC_offshorewind_class12_moderate_floating_1_7,0,0,0
+WECC_offshorewind_class12_moderate_floating_1_18,0,0,0
+WECC_offshorewind_class12_moderate_floating_1_19,0,0,0
+WECC_offshorewind_class12_moderate_floating_1_38,0,0,0
+WECC_offshorewind_class12_moderate_floating_1_39,0,0,0
+WECC_offshorewind_class12_moderate_floating_1_68,0,0,0
+WECC_offshorewind_class12_moderate_floating_1_69,0,0,0
+WECC_offshorewind_class12_moderate_floating_0_0,0,0,0
+WECC_offshorewind_class12_moderate_floating_0_1,0,0,0
+WECC_offshorewind_class12_moderate_floating_0_8,0,0,0
+WECC_offshorewind_class12_moderate_floating_0_9,0,0,0
+WECC_offshorewind_class12_moderate_floating_0_28,0,0,0
+WECC_offshorewind_class12_moderate_floating_0_29,0,0,0
+WECC_offshorewind_class12_moderate_floating_0_68,0,0,0
+WECC_offshorewind_class12_moderate_floating_0_69,0,0,0
+WECC_offshorewind_class12_moderate_floating_0_138,0,0,0
+WECC_offshorewind_class12_moderate_floating_0_139,0,0,0
\ No newline at end of file
diff --git a/Example_Systems/VREStor_Example/Resources/Storage.csv b/Example_Systems/VREStor_Example/Resources/Storage.csv
new file mode 100644
index 0000000000..b1369bf4fe
--- /dev/null
+++ b/Example_Systems/VREStor_Example/Resources/Storage.csv
@@ -0,0 +1,9 @@
+Resource,Zone,Model,Existing_Cap_MWh,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Max_Cap_MW,Max_Cap_MWh,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWhyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,region,technology,cluster
+EIC_batteries_1,1,1,1424.4,712.2,0,0,16.96,0,0,0,6235,0,0,0.15,0.15,10.34,None,0.041,0,0.92,0.92,1,10,EIC,Batteries,1
+EIC_hydroelectric_pumped_storage_1,1,1,275638,17783.1,0,0,170.99,0,0,0,47048,0,0,0.15,0.15,10.34,None,0.524,0,0.866,0.866,1,20,EIC,Hydroelectric Pumped Storage,1
+TRE_batteries_1,2,1,721.4,360.7,0,0,45.09,0,0,0,6235,0,0,0.15,0.15,10.34,None,0.001,0,0.92,0.92,1,10,TRE,Batteries,1
+WECC_batteries_1,3,1,3611,1357.5,0,0,28.28,0,0,0,6235,0,0,0.15,0.15,10.34,None,0.02,0,0.92,0.92,1,10,WECC,Batteries,1
+WECC_hydroelectric_pumped_storage_1,3,1,70790,4567.1,0,0,101.49,0,0,0,47048,0,0,0.15,0.15,10.34,None,0.175,0,0.866,0.866,1,20,WECC,Hydroelectric Pumped Storage,1
+EIC_battery_moderate_0,1,1,0,0,1,1,1,-1,-1,19978,5955,11897,3546,0.15,0.15,0,None,0,0,0.92,0.92,1,10,EIC,Battery_*_Moderate,0
+TRE_battery_moderate_0,2,1,0,0,1,1,1,-1,-1,19389,5955,11546,3546,0.15,0.15,0,None,0,0,0.92,0.92,1,10,TRE,Battery_*_Moderate,0
+WECC_battery_moderate_0,3,1,0,0,1,1,1,-1,-1,20202,5955,12030,3546,0.15,0.15,0,None,0,0,0.92,0.92,1,10,WECC,Battery_*_Moderate,0
\ No newline at end of file
diff --git a/Example_Systems/VREStor_Example/Resources/Thermal.csv b/Example_Systems/VREStor_Example/Resources/Thermal.csv
new file mode 100644
index 0000000000..72354a8148
--- /dev/null
+++ b/Example_Systems/VREStor_Example/Resources/Thermal.csv
@@ -0,0 +1,46 @@
+Resource,Zone,Model,Existing_Cap_MWh,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Min_Duration,Max_Duration,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,CO2_Capture_Rate,CO2_Capture_Cost_per_Metric_Ton,Ramp_Up_Percentage,Ramp_Dn_Percentage,Up_Time,Down_Time,region,technology,cluster
+EIC_conventional_steam_coal_1,1,1,0,12806.9,0,1,177.87,0,0,0,78258,1.88,124,16.5,13.34,east_north_central_coal,0.5,0,0,0.095,0.19,0,0,0,0,0.57,0.57,24,24,EIC,Conventional Steam Coal,1
+EIC_conventional_steam_coal_2,1,1,0,109345.4,0,1,584.74,0,0,0,64567,1.88,124,16.5,10.89,east_north_central_coal,0.5,0,0,0.095,0.19,0,0,0,0,0.57,0.57,24,24,EIC,Conventional Steam Coal,2
+EIC_natural_gas_fired_combined_cycle_1,1,1,0,27155.3,0,1,163.59,0,0,0,16322,4.53,92,2,9.24,east_north_central_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,0.64,0.64,6,6,EIC,Natural Gas Fired Combined Cycle,1
+EIC_natural_gas_fired_combined_cycle_2,1,1,0,169897.4,0,1,638.71,0,0,0,11042,3.58,92,2,7.34,east_north_central_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,0.64,0.64,6,6,EIC,Natural Gas Fired Combined Cycle,2
+EIC_natural_gas_fired_combustion_turbine_1,1,1,0,98926.5,0,1,100.13,0,0,0,10031,5.28,119,3.5,12.03,east_north_central_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,3.78,3.78,1,1,EIC,Natural Gas Fired Combustion Turbine,1
+EIC_natural_gas_fired_combustion_turbine_2,1,1,0,10412.9,0,1,31.27,0,0,0,13557,5.28,119,3.5,14.66,east_north_central_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,3.78,3.78,1,1,EIC,Natural Gas Fired Combustion Turbine,2
+EIC_natural_gas_internal_combustion_engine_1,1,1,0,2578.5,0,1,4.44,0,0,0,21000,5.29,38,0,10.29,east_north_central_naturalgas,0.18,0,0,0.106666667,0.213333333,0,0,0,0,3.78,3.78,1,1,EIC,Natural Gas Internal Combustion Engine,1
+EIC_natural_gas_steam_turbine_1,1,1,0,39625.2,0,1,203.21,0,0,0,35537,1.06,87,13.7,12.8,east_north_central_naturalgas,0.5,0,0,0.63,1.26,0,0,0,0,0.64,0.64,6,6,EIC,Natural Gas Steam Turbine,1
+EIC_nuclear_1,1,1,0,82406.6,0,1,1030.08,0,0,0,214812,2.84,248,0,10.45,east_north_central_uranium,0.5,0,0,0.041666667,0.083333333,0,0,0,0,0.25,0.25,24,24,EIC,Nuclear,1
+EIC_petroleum_liquids_1,1,1,0,23196.2,0,1,9.96,0,0,0,21000,7.97,38,0,15.5,east_north_central_distillate,0.18,0,0,0,0,0,0,0,0,3.78,3.78,1,1,EIC,Petroleum Liquids,1
+TRE_conventional_steam_coal_1,2,1,0,5063.6,0,1,723.37,0,0,0,60405,1.88,124,16.5,10.33,west_south_central_coal,0.5,0,0,0.095,0.19,0,0,0,0,0.57,0.57,24,24,TRE,Conventional Steam Coal,1
+TRE_conventional_steam_coal_2,2,1,0,3713,0,1,530.43,0,0,0,68432,1.88,124,16.5,12.13,west_south_central_coal,0.5,0,0,0.095,0.19,0,0,0,0,0.57,0.57,24,24,TRE,Conventional Steam Coal,2
+TRE_natural_gas_fired_combined_cycle_1,2,1,0,30139.1,0,1,579.6,0,0,0,10912,3.59,92,2,7.72,west_south_central_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,0.64,0.64,6,6,TRE,Natural Gas Fired Combined Cycle,1
+TRE_natural_gas_fired_combined_cycle_2,2,1,0,6317.6,0,1,315.88,0,0,0,15698,4.36,92,2,9.8,west_south_central_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,0.64,0.64,6,6,TRE,Natural Gas Fired Combined Cycle,2
+TRE_natural_gas_fired_combustion_turbine_1,2,1,0,2924,0,1,81.22,0,0,0,10001,5.28,119,3.5,14.08,west_south_central_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,3.78,3.78,1,1,TRE,Natural Gas Fired Combustion Turbine,1
+TRE_natural_gas_fired_combustion_turbine_2,2,1,0,2826.9,0,1,50.48,0,0,0,11926,5.28,119,3.5,11.11,west_south_central_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,3.78,3.78,1,1,TRE,Natural Gas Fired Combustion Turbine,2
+TRE_natural_gas_internal_combustion_engine_1,2,1,0,502.7,0,1,10.7,0,0,0,21000,4.72,38,0,9.18,west_south_central_naturalgas,0.18,0,0,0.106666667,0.213333333,0,0,0,0,3.78,3.78,1,1,TRE,Natural Gas Internal Combustion Engine,1
+TRE_natural_gas_steam_turbine_1,2,1,0,8249.5,0,1,235.7,0,0,0,34182,1.06,87,13.7,13.24,west_south_central_naturalgas,0.5,0,0,0.63,1.26,0,0,0,0,0.64,0.64,6,6,TRE,Natural Gas Steam Turbine,1
+TRE_nuclear_1,2,1,0,5120,0,1,1280,0,0,0,193275,2.84,248,0,10.45,west_south_central_uranium,0.5,0,0,0.041666667,0.083333333,0,0,0,0,0.25,0.25,24,24,TRE,Nuclear,1
+TRE_petroleum_liquids_1,2,1,0,23.7,0,1,1.48,0,0,0,21000,6.38,38,0,12.4,west_south_central_distillate,0.18,0,0,0,0,0,0,0,0,3.78,3.78,1,1,TRE,Petroleum Liquids,1
+WECC_conventional_steam_coal_1,3,1,0,11415.2,0,1,496.31,0,0,0,64165,1.88,124,16.5,10.63,mountain_coal,0.5,0,0,0.095,0.19,0,0,0,0,0.57,0.57,24,24,WECC,Conventional Steam Coal,1
+WECC_conventional_steam_coal_2,3,1,0,2074.5,0,1,129.66,0,0,0,77721,1.88,124,16.5,12.2,mountain_coal,0.5,0,0,0.095,0.19,0,0,0,0,0.57,0.57,24,24,WECC,Conventional Steam Coal,2
+WECC_natural_gas_fired_combined_cycle_1,3,1,0,37593.3,0,1,475.86,0,0,0,10399,3.6,92,2,7.78,mountain_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,0.64,0.64,6,6,WECC,Natural Gas Fired Combined Cycle,1
+WECC_natural_gas_fired_combined_cycle_2,3,1,0,12502.4,0,1,158.26,0,0,0,16492,4.55,92,2,8.51,mountain_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,0.64,0.64,6,6,WECC,Natural Gas Fired Combined Cycle,2
+WECC_natural_gas_fired_combustion_turbine_1,3,1,0,15252.7,0,1,71.61,0,0,0,10479,5.28,119,3.5,11.06,mountain_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,3.78,3.78,1,1,WECC,Natural Gas Fired Combustion Turbine,1
+WECC_natural_gas_fired_combustion_turbine_2,3,1,0,6281.6,0,1,27.92,0,0,0,13486,5.28,119,3.5,12.78,mountain_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,3.78,3.78,1,1,WECC,Natural Gas Fired Combustion Turbine,2
+WECC_natural_gas_internal_combustion_engine_1,3,1,0,1282.7,0,1,6.51,0,0,0,21000,4.88,38,0,9.49,mountain_naturalgas,0.18,0,0,0.106666667,0.213333333,0,0,0,0,3.78,3.78,1,1,WECC,Natural Gas Internal Combustion Engine,1
+WECC_natural_gas_steam_turbine_1,3,1,0,2669.5,0,1,95.34,0,0,0,51303,1.06,87,13.7,12.4,mountain_naturalgas,0.5,0,0,0.63,1.26,0,0,0,0,0.64,0.64,6,6,WECC,Natural Gas Steam Turbine,1
+WECC_nuclear_1,3,1,0,5175,0,1,1293.75,0,0,0,211822,2.84,248,0,10.45,mountain_uranium,0.5,0,0,0.041666667,0.083333333,0,0,0,0,0.25,0.25,24,24,WECC,Nuclear,1
+WECC_petroleum_liquids_1,3,1,0,636.2,0,1,4.24,0,0,0,21000,7.2,38,0,14,mountain_distillate,0.18,0,0,0,0,0,0,0,0,3.78,3.78,1,1,WECC,Petroleum Liquids,1
+EIC_naturalgas_ccavgcf_moderate_0,1,1,0,0,1,1,500,0,-1,56026,28000,2,106,2,6.36,east_north_central_naturalgas,0.3,0,0,0,0,0,0,0,0,0.64,0.64,6,6,EIC,NaturalGas_CCAvgCF_Moderate,0
+EIC_naturalgas_ctavgcf_moderate_0,1,1,0,0,1,1,100,0,-1,45192,21000,5,137,3.5,9.72,east_north_central_naturalgas,0.3,0,0,0,0,0,0,0,0,3.78,3.78,1,1,EIC,NaturalGas_CTAvgCF_Moderate,0
+EIC_naturalgas_ccccsavgcf_conservative_0,1,1,0,0,1,1,500,0,-1,120812,67000,6,106,0,7.16,east_north_central_naturalgas,0.6,0,0,0.106666667,0.213333333,0,0,0.9,27,0.64,0.64,6,6,EIC,NaturalGas_CCCCSAvgCF_Conservative,0
+EIC_advnuclear_atb_moderate_0,1,1,0,0,1,1,500,0,-1,45000,0,2.84,285,0,10.44,east_north_central_uranium,0.5,0,0,0,0,0,0,0,0,0.25,0.25,24,24,EIC,AdvNuclear_ATB_Moderate,0
+TRE_naturalgas_ccavgcf_moderate_0,2,1,0,0,1,1,500,0,-1,42007,28000,2,106,2,6.36,west_south_central_naturalgas,0.3,0,0,0,0,0,0,0,0,0.64,0.64,6,6,TRE,NaturalGas_CCAvgCF_Moderate,0
+TRE_naturalgas_ctavgcf_moderate_0,2,1,0,0,1,1,100,0,-1,35319,21000,5,137,3.5,9.72,west_south_central_naturalgas,0.3,0,0,0,0,0,0,0,0,3.78,3.78,1,1,TRE,NaturalGas_CTAvgCF_Moderate,0
+TRE_naturalgas_ccccsavgcf_conservative_0,2,1,0,0,1,1,500,0,-1,106685,67000,6,106,0,7.16,west_south_central_naturalgas,0.6,0,0,0.106666667,0.213333333,0,0,0.9,27,0.64,0.64,6,6,TRE,NaturalGas_CCCCSAvgCF_Conservative,0
+TRE_advnuclear_atb_moderate_0,2,1,0,0,1,1,500,0,-1,450000,0,2.84,285,0,10.44,west_south_central_uranium,0.5,0,0,0,0,0,0,0,0,0.25,0.25,24,24,TRE,AdvNuclear_ATB_Moderate,0
+WECC_naturalgas_ccavgcf_moderate_0,3,1,0,0,1,1,500,0,-1,59543,28000,2,106,2,6.36,mountain_naturalgas,0.3,0,0,0,0,0,0,0,0,0.64,0.64,6,6,WECC,NaturalGas_CCAvgCF_Moderate,0
+WECC_naturalgas_ctavgcf_moderate_0,3,1,0,0,1,1,100,0,-1,45587,21000,5,137,3.5,9.72,mountain_naturalgas,0.3,0,0,0,0,0,0,0,0,3.78,3.78,1,1,WECC,NaturalGas_CTAvgCF_Moderate,0
+WECC_naturalgas_ccccsavgcf_conservative_0,3,1,0,0,1,1,500,0,-1,119927,67000,6,106,0,7.16,mountain_naturalgas,0.6,0,0,0.106666667,0.213333333,0,0,0.9,27,0.64,0.64,6,6,WECC,NaturalGas_CCCCSAvgCF_Conservative,0
+WECC_advnuclear_atb_moderate_0,3,1,0,0,1,1,500,0,-1,450000,0,2.84,285,0,10.44,mountain_uranium,0.5,0,0,0,0,0,0,0,0,0.25,0.25,24,24,WECC,AdvNuclear_ATB_Moderate,0
+EIC_naturalgas_ctavgcf_moderate_0_zerocarbon,1,1,0,0,1,1,100,0,-1,61000,0,5,137,3.5,9.72,zerocarbon_fuel,0.3,0,0,0,0,0,0,0,0,3.78,3.78,1,1,EIC,NaturalGas_CTAvgCF_Moderate_zerocarbon,0
+TRE_naturalgas_ctavgcf_moderate_0_zerocarbon,2,1,0,0,1,1,100,0,-1,61000,0,5,137,3.5,9.72,zerocarbon_fuel,0.3,0,0,0,0,0,0,0,0,3.78,3.78,1,1,TRE,NaturalGas_CTAvgCF_Moderate_zerocarbon,0
+WECC_naturalgas_ctavgcf_moderate_0_zerocarbon,3,1,0,0,1,1,100,0,-1,61000,0,5,137,3.5,9.72,zerocarbon_fuel,0.3,0,0,0,0,0,0,0,0,3.78,3.78,1,1,WECC,NaturalGas_CTAvgCF_Moderate_zerocarbon,0
\ No newline at end of file
diff --git a/Example_Systems/VREStor_Example/Resources/Vre.csv b/Example_Systems/VREStor_Example/Resources/Vre.csv
new file mode 100644
index 0000000000..53da51313f
--- /dev/null
+++ b/Example_Systems/VREStor_Example/Resources/Vre.csv
@@ -0,0 +1,129 @@
+Resource,Zone,Num_VRE_Bins,Existing_Cap_MWh,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Self_Disch,Eff_Up,Eff_Down,Ramp_Up_Percentage,Ramp_Dn_Percentage,region,technology,cluster
+EIC_offshore_wind_turbine_1,1,1,0,29.3,0,1,29.3,0,0,0,111496,0,10.34,None,0,1,1,1,1,EIC,Offshore Wind Turbine,1
+EIC_onshore_wind_turbine_1,1,1,0,47407.4,0,1,66.77,0,0,0,43000,0,10.34,None,0,1,1,1,1,EIC,Onshore Wind Turbine,1
+EIC_solar_photovoltaic_1,1,1,0,8533.9,0,1,5.95,0,0,0,22623,0,10.34,None,0,1,1,1,1,EIC,Solar Photovoltaic,1
+TRE_onshore_wind_turbine_1,2,1,0,21683.1,0,1,163.03,0,0,0,43000,0,10.34,None,0,1,1,1,1,TRE,Onshore Wind Turbine,1
+TRE_solar_photovoltaic_1,2,1,0,1821.5,0,1,65.05,0,0,0,22623,0,10.34,None,0,1,1,1,1,TRE,Solar Photovoltaic,1
+WECC_geothermal_1,3,1,0,1752.4,0,0,12,0,0,0,209101,0,10.34,None,0,1,1,1,1,WECC,Geothermal,1
+WECC_onshore_wind_turbine_1,3,1,0,20644.2,0,1,68.81,0,0,0,43000,0,10.34,None,0,1,1,1,1,WECC,Onshore Wind Turbine,1
+WECC_solar_photovoltaic_1,3,1,0,14659.8,0,1,14.87,0,0,0,22623,0,10.34,None,0,1,1,1,1,WECC,Solar Photovoltaic,1
+EIC_offshorewind_class3_moderate_fixed_1_0,1,1,0,0,1,1,1,0,65762.8,147250,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_1,0
+EIC_offshorewind_class3_moderate_fixed_1_1,1,1,0,0,1,1,1,0,14399.2,157328,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_1,1
+EIC_offshorewind_class3_moderate_fixed_1_2,1,1,0,0,1,1,1,0,34280.8,153961,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_1,2
+EIC_offshorewind_class3_moderate_fixed_1_3,1,1,0,0,1,1,1,0,101840.5,168852,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_1,3
+EIC_offshorewind_class3_moderate_fixed_1_4,1,1,0,0,1,1,1,0,118605,164784,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_1,4
+EIC_offshorewind_class3_moderate_fixed_1_5,1,1,0,0,1,1,1,0,18875.6,146792,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_1,5
+EIC_offshorewind_class3_moderate_fixed_1_6,1,1,0,0,1,1,1,0,79943.7,144977,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_1,6
+EIC_offshorewind_class3_moderate_fixed_1_7,1,1,0,0,1,1,1,0,23454.7,347411,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_1,7
+EIC_offshorewind_class3_moderate_fixed_1_8,1,1,0,0,1,1,1,0,59461.7,393568,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_1,8
+EIC_offshorewind_class3_moderate_fixed_1_9,1,1,0,0,1,1,1,0,73503.9,155384,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_1,9
+EIC_offshorewind_class3_moderate_fixed_0_0,1,1,0,0,1,1,1,0,65762.8,147250,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_0,0
+EIC_offshorewind_class3_moderate_fixed_0_1,1,1,0,0,1,1,1,0,14399.2,157328,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_0,1
+EIC_offshorewind_class3_moderate_fixed_0_4,1,1,0,0,1,1,1,0,34280.8,153961,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_0,4
+EIC_offshorewind_class3_moderate_fixed_0_5,1,1,0,0,1,1,1,0,101840.5,168852,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_0,5
+EIC_offshorewind_class3_moderate_fixed_0_10,1,1,0,0,1,1,1,0,118605,164784,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_0,10
+EIC_offshorewind_class3_moderate_fixed_0_11,1,1,0,0,1,1,1,0,18875.6,146792,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_0,11
+EIC_offshorewind_class3_moderate_fixed_0_18,1,1,0,0,1,1,1,0,79943.7,144977,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_0,18
+EIC_offshorewind_class3_moderate_fixed_0_19,1,1,0,0,1,1,1,0,23454.7,347411,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_0,19
+EIC_offshorewind_class3_moderate_fixed_0_28,1,1,0,0,1,1,1,0,59461.7,393568,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_0,28
+EIC_offshorewind_class3_moderate_fixed_0_29,1,1,0,0,1,1,1,0,73503.9,155384,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_0,29
+EIC_offshorewind_class12_moderate_floating_1_0,1,1,0,0,1,1,1,0,65762.8,204577,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_1,0
+EIC_offshorewind_class12_moderate_floating_1_1,1,1,0,0,1,1,1,0,14399.2,214655,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_1,1
+EIC_offshorewind_class12_moderate_floating_1_6,1,1,0,0,1,1,1,0,34280.8,211288,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_1,6
+EIC_offshorewind_class12_moderate_floating_1_7,1,1,0,0,1,1,1,0,101840.5,226179,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_1,7
+EIC_offshorewind_class12_moderate_floating_1_18,1,1,0,0,1,1,1,0,118605,222111,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_1,18
+EIC_offshorewind_class12_moderate_floating_1_19,1,1,0,0,1,1,1,0,18875.6,204119,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_1,19
+EIC_offshorewind_class12_moderate_floating_1_38,1,1,0,0,1,1,1,0,79943.7,202304,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_1,38
+EIC_offshorewind_class12_moderate_floating_1_39,1,1,0,0,1,1,1,0,23454.7,404738,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_1,39
+EIC_offshorewind_class12_moderate_floating_1_68,1,1,0,0,1,1,1,0,59461.7,450895,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_1,68
+EIC_offshorewind_class12_moderate_floating_1_69,1,1,0,0,1,1,1,0,73503.9,212711,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_1,69
+EIC_offshorewind_class12_moderate_floating_0_0,1,1,0,0,1,1,1,0,65762.8,204577,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_0,0
+EIC_offshorewind_class12_moderate_floating_0_1,1,1,0,0,1,1,1,0,14399.2,214655,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_0,1
+EIC_offshorewind_class12_moderate_floating_0_8,1,1,0,0,1,1,1,0,34280.8,211288,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_0,8
+EIC_offshorewind_class12_moderate_floating_0_9,1,1,0,0,1,1,1,0,101840.5,226179,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_0,9
+EIC_offshorewind_class12_moderate_floating_0_28,1,1,0,0,1,1,1,0,118605,222111,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_0,28
+EIC_offshorewind_class12_moderate_floating_0_29,1,1,0,0,1,1,1,0,18875.6,204119,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_0,29
+EIC_offshorewind_class12_moderate_floating_0_68,1,1,0,0,1,1,1,0,79943.7,202304,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_0,68
+EIC_offshorewind_class12_moderate_floating_0_69,1,1,0,0,1,1,1,0,23454.7,404738,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_0,69
+EIC_offshorewind_class12_moderate_floating_0_138,1,1,0,0,1,1,1,0,59461.7,450895,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_0,138
+EIC_offshorewind_class12_moderate_floating_0_139,1,1,0,0,1,1,1,0,73503.9,212711,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_0,139
+TRE_offshorewind_class3_moderate_fixed_1_0,2,1,0,0,1,1,1,0,13077.5,145004,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_1,0
+TRE_offshorewind_class3_moderate_fixed_1_1,2,1,0,0,1,1,1,0,9995,158104,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_1,1
+TRE_offshorewind_class3_moderate_fixed_1_2,2,1,0,0,1,1,1,0,22842.5,140443,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_1,2
+TRE_offshorewind_class3_moderate_fixed_1_3,2,1,0,0,1,1,1,0,895,157772,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_1,3
+TRE_offshorewind_class3_moderate_fixed_1_4,2,1,0,0,1,1,1,0,20865,142961,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_1,4
+TRE_offshorewind_class3_moderate_fixed_1_5,2,1,0,0,1,1,1,0,4480,166128,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_1,5
+TRE_offshorewind_class3_moderate_fixed_1_6,2,1,0,0,1,1,1,0,23652,166849,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_1,6
+TRE_offshorewind_class3_moderate_fixed_1_7,2,1,0,0,1,1,1,0,10070,157895,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_1,7
+TRE_offshorewind_class3_moderate_fixed_1_8,2,1,0,0,1,1,1,0,20680,167576,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_1,8
+TRE_offshorewind_class3_moderate_fixed_1_9,2,1,0,0,1,1,1,0,16746,156072,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_1,9
+TRE_offshorewind_class3_moderate_fixed_0_0,2,1,0,0,1,1,1,0,13077.5,145004,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_0,0
+TRE_offshorewind_class3_moderate_fixed_0_1,2,1,0,0,1,1,1,0,9995,158104,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_0,1
+TRE_offshorewind_class3_moderate_fixed_0_4,2,1,0,0,1,1,1,0,22842.5,140443,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_0,4
+TRE_offshorewind_class3_moderate_fixed_0_5,2,1,0,0,1,1,1,0,895,157772,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_0,5
+TRE_offshorewind_class3_moderate_fixed_0_10,2,1,0,0,1,1,1,0,20865,142961,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_0,10
+TRE_offshorewind_class3_moderate_fixed_0_11,2,1,0,0,1,1,1,0,4480,166128,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_0,11
+TRE_offshorewind_class3_moderate_fixed_0_18,2,1,0,0,1,1,1,0,23652,166849,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_0,18
+TRE_offshorewind_class3_moderate_fixed_0_19,2,1,0,0,1,1,1,0,10070,157895,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_0,19
+TRE_offshorewind_class3_moderate_fixed_0_28,2,1,0,0,1,1,1,0,20680,167576,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_0,28
+TRE_offshorewind_class3_moderate_fixed_0_29,2,1,0,0,1,1,1,0,16746,156072,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_0,29
+TRE_offshorewind_class12_moderate_floating_1_0,2,1,0,0,1,1,1,0,13077.5,200994,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_1,0
+TRE_offshorewind_class12_moderate_floating_1_1,2,1,0,0,1,1,1,0,9995,214094,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_1,1
+TRE_offshorewind_class12_moderate_floating_1_6,2,1,0,0,1,1,1,0,22842.5,196433,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_1,6
+TRE_offshorewind_class12_moderate_floating_1_7,2,1,0,0,1,1,1,0,895,213762,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_1,7
+TRE_offshorewind_class12_moderate_floating_1_18,2,1,0,0,1,1,1,0,20865,198951,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_1,18
+TRE_offshorewind_class12_moderate_floating_1_19,2,1,0,0,1,1,1,0,4480,222118,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_1,19
+TRE_offshorewind_class12_moderate_floating_1_38,2,1,0,0,1,1,1,0,23652,222839,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_1,38
+TRE_offshorewind_class12_moderate_floating_1_39,2,1,0,0,1,1,1,0,10070,213885,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_1,39
+TRE_offshorewind_class12_moderate_floating_1_68,2,1,0,0,1,1,1,0,20680,223566,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_1,68
+TRE_offshorewind_class12_moderate_floating_1_69,2,1,0,0,1,1,1,0,16746,212062,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_1,69
+TRE_offshorewind_class12_moderate_floating_0_0,2,1,0,0,1,1,1,0,13077.5,200994,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_0,0
+TRE_offshorewind_class12_moderate_floating_0_1,2,1,0,0,1,1,1,0,9995,214094,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_0,1
+TRE_offshorewind_class12_moderate_floating_0_8,2,1,0,0,1,1,1,0,22842.5,196433,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_0,8
+TRE_offshorewind_class12_moderate_floating_0_9,2,1,0,0,1,1,1,0,895,213762,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_0,9
+TRE_offshorewind_class12_moderate_floating_0_28,2,1,0,0,1,1,1,0,20865,198951,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_0,28
+TRE_offshorewind_class12_moderate_floating_0_29,2,1,0,0,1,1,1,0,4480,222118,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_0,29
+TRE_offshorewind_class12_moderate_floating_0_68,2,1,0,0,1,1,1,0,23652,222839,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_0,68
+TRE_offshorewind_class12_moderate_floating_0_69,2,1,0,0,1,1,1,0,10070,213885,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_0,69
+TRE_offshorewind_class12_moderate_floating_0_138,2,1,0,0,1,1,1,0,20680,223566,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_0,138
+TRE_offshorewind_class12_moderate_floating_0_139,2,1,0,0,1,1,1,0,16746,212062,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_0,139
+WECC_offshorewind_class3_moderate_fixed_1_0,3,1,0,0,1,1,1,0,26916.5,174794,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_1,0
+WECC_offshorewind_class3_moderate_fixed_1_1,3,1,0,0,1,1,1,0,29943.3,179346,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_1,1
+WECC_offshorewind_class3_moderate_fixed_1_2,3,1,0,0,1,1,1,0,39553.5,177553,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_1,2
+WECC_offshorewind_class3_moderate_fixed_1_3,3,1,0,0,1,1,1,0,18780,162737,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_1,3
+WECC_offshorewind_class3_moderate_fixed_1_4,3,1,0,0,1,1,1,0,19994,174072,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_1,4
+WECC_offshorewind_class3_moderate_fixed_1_5,3,1,0,0,1,1,1,0,36016,175097,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_1,5
+WECC_offshorewind_class3_moderate_fixed_1_6,3,1,0,0,1,1,1,0,53762,174641,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_1,6
+WECC_offshorewind_class3_moderate_fixed_1_7,3,1,0,0,1,1,1,0,1544,151442,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_1,7
+WECC_offshorewind_class3_moderate_fixed_1_8,3,1,0,0,1,1,1,0,44128,176829,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_1,8
+WECC_offshorewind_class3_moderate_fixed_1_9,3,1,0,0,1,1,1,0,9122,151351,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_1,9
+WECC_offshorewind_class3_moderate_fixed_0_0,3,1,0,0,1,1,1,0,26916.5,174794,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_0,0
+WECC_offshorewind_class3_moderate_fixed_0_1,3,1,0,0,1,1,1,0,29943.3,179346,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_0,1
+WECC_offshorewind_class3_moderate_fixed_0_4,3,1,0,0,1,1,1,0,39553.5,177553,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_0,4
+WECC_offshorewind_class3_moderate_fixed_0_5,3,1,0,0,1,1,1,0,18780,162737,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_0,5
+WECC_offshorewind_class3_moderate_fixed_0_10,3,1,0,0,1,1,1,0,19994,174072,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_0,10
+WECC_offshorewind_class3_moderate_fixed_0_11,3,1,0,0,1,1,1,0,36016,175097,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_0,11
+WECC_offshorewind_class3_moderate_fixed_0_18,3,1,0,0,1,1,1,0,53762,174641,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_0,18
+WECC_offshorewind_class3_moderate_fixed_0_19,3,1,0,0,1,1,1,0,1544,151442,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_0,19
+WECC_offshorewind_class3_moderate_fixed_0_28,3,1,0,0,1,1,1,0,44128,176829,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_0,28
+WECC_offshorewind_class3_moderate_fixed_0_29,3,1,0,0,1,1,1,0,9122,151351,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_0,29
+WECC_offshorewind_class12_moderate_floating_1_0,3,1,0,0,1,1,1,0,26916.5,232121,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_1,0
+WECC_offshorewind_class12_moderate_floating_1_1,3,1,0,0,1,1,1,0,29943.3,236673,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_1,1
+WECC_offshorewind_class12_moderate_floating_1_6,3,1,0,0,1,1,1,0,39553.5,234880,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_1,6
+WECC_offshorewind_class12_moderate_floating_1_7,3,1,0,0,1,1,1,0,18780,220064,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_1,7
+WECC_offshorewind_class12_moderate_floating_1_18,3,1,0,0,1,1,1,0,19994,231399,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_1,18
+WECC_offshorewind_class12_moderate_floating_1_19,3,1,0,0,1,1,1,0,36016,232424,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_1,19
+WECC_offshorewind_class12_moderate_floating_1_38,3,1,0,0,1,1,1,0,53762,231968,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_1,38
+WECC_offshorewind_class12_moderate_floating_1_39,3,1,0,0,1,1,1,0,1544,208769,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_1,39
+WECC_offshorewind_class12_moderate_floating_1_68,3,1,0,0,1,1,1,0,44128,234156,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_1,68
+WECC_offshorewind_class12_moderate_floating_1_69,3,1,0,0,1,1,1,0,9122,208678,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_1,69
+WECC_offshorewind_class12_moderate_floating_0_0,3,1,0,0,1,1,1,0,26916.5,232121,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_0,0
+WECC_offshorewind_class12_moderate_floating_0_1,3,1,0,0,1,1,1,0,29943.3,236673,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_0,1
+WECC_offshorewind_class12_moderate_floating_0_8,3,1,0,0,1,1,1,0,39553.5,234880,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_0,8
+WECC_offshorewind_class12_moderate_floating_0_9,3,1,0,0,1,1,1,0,18780,220064,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_0,9
+WECC_offshorewind_class12_moderate_floating_0_28,3,1,0,0,1,1,1,0,19994,231399,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_0,28
+WECC_offshorewind_class12_moderate_floating_0_29,3,1,0,0,1,1,1,0,36016,232424,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_0,29
+WECC_offshorewind_class12_moderate_floating_0_68,3,1,0,0,1,1,1,0,53762,231968,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_0,68
+WECC_offshorewind_class12_moderate_floating_0_69,3,1,0,0,1,1,1,0,1544,208769,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_0,69
+WECC_offshorewind_class12_moderate_floating_0_138,3,1,0,0,1,1,1,0,44128,234156,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_0,138
+WECC_offshorewind_class12_moderate_floating_0_139,3,1,0,0,1,1,1,0,9122,208678,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_0,139
\ No newline at end of file
diff --git a/Example_Systems/VREStor_Example/Resources/Vre_stor.csv b/Example_Systems/VREStor_Example/Resources/Vre_stor.csv
new file mode 100644
index 0000000000..2f8755c54f
--- /dev/null
+++ b/Example_Systems/VREStor_Example/Resources/Vre_stor.csv
@@ -0,0 +1,64 @@
+Resource,Zone,SOLAR,WIND,STOR_DC_DISCHARGE,STOR_DC_CHARGE,STOR_AC_DISCHARGE,STOR_AC_CHARGE,LDS_VRE_STOR,Existing_Cap_MW,Existing_Cap_MWh,Existing_Cap_Inverter_MW,Existing_Cap_Solar_MW,Existing_Cap_Wind_MW,Existing_Cap_Discharge_DC_MW,Existing_Cap_Charge_DC_MW,Existing_Cap_Discharge_AC_MW,Existing_Cap_Charge_AC_MW,New_Build,Can_Retire,Min_Cap_MW,Min_Cap_MWh,Min_Cap_Inverter_MW,Min_Cap_Solar_MW,Min_Cap_Wind_MW,Min_Cap_Discharge_DC_MW,Min_Cap_Charge_DC_MW,Min_Cap_Discharge_AC_MW,Min_Cap_Charge_AC_MW,Max_Cap_MW,Max_Cap_MWh,Max_Cap_Inverter_MW,Max_Cap_Solar_MW,Max_Cap_Wind_MW,Max_Cap_Discharge_DC_MW,Max_Cap_Charge_DC_MW,Max_Cap_Discharge_AC_MW,Max_Cap_Charge_AC_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWhyr,Var_OM_Cost_per_MWh,Inv_Cost_Inverter_per_MWyr,Inv_Cost_Solar_per_MWyr,Inv_Cost_Wind_per_MWyr,Inv_Cost_Discharge_DC_per_MWyr,Inv_Cost_Charge_DC_per_MWyr,Inv_Cost_Discharge_AC_per_MWyr,Inv_Cost_Charge_AC_per_MWyr,Fixed_OM_Inverter_Cost_per_MWyr,Fixed_OM_Solar_Cost_per_MWyr,Fixed_OM_Wind_Cost_per_MWyr,Fixed_OM_Cost_Discharge_DC_per_MWyr,Fixed_OM_Cost_Charge_DC_per_MWyr,Fixed_OM_Cost_Discharge_AC_per_MWyr,Fixed_OM_Cost_Charge_AC_per_MWyr,Var_OM_Cost_per_MWh_Solar,Var_OM_Cost_per_MWh_Wind,Var_OM_Cost_per_MWh_Discharge_DC,Var_OM_Cost_per_MWh_Charge_DC,Var_OM_Cost_per_MWh_Discharge_AC,Var_OM_Cost_per_MWh_Charge_AC,EtaInverter,Inverter_Ratio_Wind,Inverter_Ratio_Solar,Power_to_Energy_DC,Power_to_Energy_AC,Self_Disch,Eff_Up_DC,Eff_Down_DC,Eff_Up_AC,Eff_Down_AC,region,Resource_Type,technology,cluster
+EIC_landbasedwind_class1_moderate_0,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,117315.5,-1,-1,-1,-1,14198,0,0,0,0.15,7522,0,56816,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_wind,LandbasedWind_Class1_Moderate_,0
+EIC_landbasedwind_class1_moderate_1,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,139803.7,-1,-1,-1,-1,17082,0,0,0,0.15,7522,0,56817,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_wind,LandbasedWind_Class1_Moderate_,1
+EIC_landbasedwind_class1_moderate_2,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,114313.7,-1,-1,-1,-1,17267,0,0,0,0.15,7522,0,56816,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_wind,LandbasedWind_Class1_Moderate_,2
+EIC_landbasedwind_class1_moderate_3,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,81237.6,-1,-1,-1,-1,25483,0,0,0,0.15,7522,0,56816,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_wind,LandbasedWind_Class1_Moderate_,3
+EIC_landbasedwind_class1_moderate_4,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,81092.2,-1,-1,-1,-1,16488,0,0,0,0.15,7522,0,56816,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_wind,LandbasedWind_Class1_Moderate_,4
+EIC_landbasedwind_class1_moderate_5,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,54453.3,-1,-1,-1,-1,25720,0,0,0,0.15,7522,0,56816,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_wind,LandbasedWind_Class1_Moderate_,5
+EIC_landbasedwind_class1_moderate_6,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,82417.2,-1,-1,-1,-1,21224,0,0,0,0.15,7522,0,56816,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_wind,LandbasedWind_Class1_Moderate_,6
+EIC_landbasedwind_class1_moderate_7,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,26531.1,-1,-1,-1,-1,32633,0,0,0,0.15,7522,0,56816,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_wind,LandbasedWind_Class1_Moderate_,7
+EIC_landbasedwind_class1_moderate_8,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,58187.4,-1,-1,-1,-1,28526,0,0,0,0.15,7522,0,56817,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_wind,LandbasedWind_Class1_Moderate_,8
+EIC_landbasedwind_class1_moderate_9,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,194921.8,-1,-1,-1,-1,244462,0,0,0,0.15,7522,0,56816,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_wind,LandbasedWind_Class1_Moderate_,9
+EIC_storage_metalair_advanced_0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,-1,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0.15,7522,0,0,0,0,0,0,1875,0,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,standalone_storage,Storage_MetalAir_Advanced,0
+EIC_utilitypv_class1_moderate_0,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,1351663.04,-1,-1,-1,-1,-1,8863,0,0,0,0.15,7522,22706,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_pv,UtilityPV_Class1_Moderate_,0
+EIC_utilitypv_class1_moderate_1,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,787394.14,-1,-1,-1,-1,-1,4464,0,0,0,0.15,7522,22706,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_pv,UtilityPV_Class1_Moderate_,1
+EIC_utilitypv_class1_moderate_2,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,1683583.59,-1,-1,-1,-1,-1,14630,0,0,0,0.15,7522,22706,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_pv,UtilityPV_Class1_Moderate_,2
+EIC_utilitypv_class1_moderate_3,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,1148387.24,-1,-1,-1,-1,-1,10126,0,0,0,0.15,7522,22706,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_pv,UtilityPV_Class1_Moderate_,3
+EIC_utilitypv_class1_moderate_4,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,2254699.98,-1,-1,-1,-1,-1,16248,0,0,0,0.15,7522,22706,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_pv,UtilityPV_Class1_Moderate_,4
+EIC_utilitypv_class1_moderate_5,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,879389.55,-1,-1,-1,-1,-1,22825,0,0,0,0.15,7522,22706,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_pv,UtilityPV_Class1_Moderate_,5
+EIC_utilitypv_class1_moderate_6,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,1998829.95,-1,-1,-1,-1,-1,24566,0,0,0,0.15,7522,22706,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_pv,UtilityPV_Class1_Moderate_,6
+EIC_utilitypv_class1_moderate_7,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,1123362.89,-1,-1,-1,-1,-1,21181,0,0,0,0.15,7522,22706,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_pv,UtilityPV_Class1_Moderate_,7
+EIC_utilitypv_class1_moderate_8,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,2501477.94,-1,-1,-1,-1,-1,32414,0,0,0,0.15,7522,22706,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_pv,UtilityPV_Class1_Moderate_,8
+EIC_utilitypv_class1_moderate_9,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,326479.4,-1,-1,-1,-1,-1,148669,0,0,0,0.15,7522,22706,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_pv,UtilityPV_Class1_Moderate_,9
+TRE_landbasedwind_class1_moderate_0,2,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,20796.6,-1,-1,-1,-1,14393,0,0,0,0.15,7303,0,41880,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_wind,LandbasedWind_Class1_Moderate_,0
+TRE_landbasedwind_class1_moderate_1,2,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,27529.5,-1,-1,-1,-1,20298,0,0,0,0.15,7303,0,41880,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_wind,LandbasedWind_Class1_Moderate_,1
+TRE_landbasedwind_class1_moderate_2,2,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,22035.5,-1,-1,-1,-1,14755,0,0,0,0.15,7303,0,41881,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_wind,LandbasedWind_Class1_Moderate_,2
+TRE_landbasedwind_class1_moderate_3,2,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,22639.4,-1,-1,-1,-1,23630,0,0,0,0.15,7303,0,41881,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_wind,LandbasedWind_Class1_Moderate_,3
+TRE_landbasedwind_class1_moderate_4,2,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,21021.7,-1,-1,-1,-1,12498,0,0,0,0.15,7303,0,41881,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_wind,LandbasedWind_Class1_Moderate_,4
+TRE_landbasedwind_class1_moderate_5,2,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,21153.5,-1,-1,-1,-1,23788,0,0,0,0.15,7303,0,41880,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_wind,LandbasedWind_Class1_Moderate_,5
+TRE_landbasedwind_class1_moderate_6,2,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,32345.3,-1,-1,-1,-1,15633,0,0,0,0.15,7303,0,41881,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_wind,LandbasedWind_Class1_Moderate_,6
+TRE_landbasedwind_class1_moderate_7,2,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,12398.9,-1,-1,-1,-1,29021,0,0,0,0.15,7303,0,41880,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_wind,LandbasedWind_Class1_Moderate_,7
+TRE_landbasedwind_class1_moderate_8,2,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,34789.4,-1,-1,-1,-1,40897,0,0,0,0.15,7303,0,41880,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_wind,LandbasedWind_Class1_Moderate_,8
+TRE_landbasedwind_class1_moderate_9,2,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,2448.4,-1,-1,-1,-1,146712,0,0,0,0.15,7303,0,41881,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_wind,LandbasedWind_Class1_Moderate_,9
+TRE_storage_metalair_advanced_0,2,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,-1,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0.15,7303,0,0,0,0,0,0,1875,0,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,standalone_storage,Storage_MetalAir_Advanced,0
+TRE_utilitypv_class1_moderate_0,2,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,249716.61,-1,-1,-1,-1,-1,6412,0,0,0,0.15,7303,21612,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_pv,UtilityPV_Class1_Moderate_,0
+TRE_utilitypv_class1_moderate_1,2,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,150550.53,-1,-1,-1,-1,-1,8461,0,0,0,0.15,7303,21612,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_pv,UtilityPV_Class1_Moderate_,1
+TRE_utilitypv_class1_moderate_2,2,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,340227.68,-1,-1,-1,-1,-1,10479,0,0,0,0.15,7303,21612,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_pv,UtilityPV_Class1_Moderate_,2
+TRE_utilitypv_class1_moderate_3,2,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,232869.52,-1,-1,-1,-1,-1,14103,0,0,0,0.15,7303,21612,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_pv,UtilityPV_Class1_Moderate_,3
+TRE_utilitypv_class1_moderate_4,2,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,409644.17,-1,-1,-1,-1,-1,14224,0,0,0,0.15,7303,21612,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_pv,UtilityPV_Class1_Moderate_,4
+TRE_utilitypv_class1_moderate_5,2,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,224977.87,-1,-1,-1,-1,-1,18539,0,0,0,0.15,7303,21612,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_pv,UtilityPV_Class1_Moderate_,5
+TRE_utilitypv_class1_moderate_6,2,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,393113.89,-1,-1,-1,-1,-1,22325,0,0,0,0.15,7303,21612,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_pv,UtilityPV_Class1_Moderate_,6
+TRE_utilitypv_class1_moderate_7,2,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,248585.87,-1,-1,-1,-1,-1,17464,0,0,0,0.15,7303,21612,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_pv,UtilityPV_Class1_Moderate_,7
+TRE_utilitypv_class1_moderate_8,2,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,124347.08,-1,-1,-1,-1,-1,74721,0,0,0,0.15,7303,21612,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_pv,UtilityPV_Class1_Moderate_,8
+TRE_utilitypv_class1_moderate_9,2,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,477756.89,-1,-1,-1,-1,-1,29582,0,0,0,0.15,7303,21612,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_pv,UtilityPV_Class1_Moderate_,9
+WECC_landbasedwind_class1_moderate_0,3,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,109860.7,-1,-1,-1,-1,20294,0,0,0,0.15,7609,0,74338,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_wind,LandbasedWind_Class1_Moderate_,0
+WECC_landbasedwind_class1_moderate_1,3,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,47257.4,-1,-1,-1,-1,19872,0,0,0,0.15,7609,0,74338,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_wind,LandbasedWind_Class1_Moderate_,1
+WECC_landbasedwind_class1_moderate_2,3,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,88662.6,-1,-1,-1,-1,27185,0,0,0,0.15,7609,0,74337,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_wind,LandbasedWind_Class1_Moderate_,2
+WECC_landbasedwind_class1_moderate_3,3,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,40824.7,-1,-1,-1,-1,19137,0,0,0,0.15,7609,0,74338,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_wind,LandbasedWind_Class1_Moderate_,3
+WECC_landbasedwind_class1_moderate_4,3,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,109163.8,-1,-1,-1,-1,26039,0,0,0,0.15,7609,0,74337,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_wind,LandbasedWind_Class1_Moderate_,4
+WECC_landbasedwind_class1_moderate_5,3,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,25095.7,-1,-1,-1,-1,133609,0,0,0,0.15,7609,0,74337,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_wind,LandbasedWind_Class1_Moderate_,5
+WECC_landbasedwind_class1_moderate_6,3,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,100227,-1,-1,-1,-1,29900,0,0,0,0.15,7609,0,74337,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_wind,LandbasedWind_Class1_Moderate_,6
+WECC_landbasedwind_class1_moderate_7,3,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,34790.4,-1,-1,-1,-1,160193,0,0,0,0.15,7609,0,74337,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_wind,LandbasedWind_Class1_Moderate_,7
+WECC_landbasedwind_class1_moderate_8,3,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,64367.5,-1,-1,-1,-1,38235,0,0,0,0.15,7609,0,74338,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_wind,LandbasedWind_Class1_Moderate_,8
+WECC_landbasedwind_class1_moderate_9,3,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,77014.4,-1,-1,-1,-1,274991,0,0,0,0.15,7609,0,74338,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_wind,LandbasedWind_Class1_Moderate_,9
+WECC_storage_metalair_advanced_0,3,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,-1,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0.15,7609,0,0,0,0,0,0,1875,0,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,standalone_storage,Storage_MetalAir_Advanced,0
+WECC_utilitypv_class1_moderate_0,3,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,775652.15,-1,-1,-1,-1,-1,10320,0,0,0,0.15,7609,23643,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_pv,UtilityPV_Class1_Moderate_,0
+WECC_utilitypv_class1_moderate_1,3,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,207870.65,-1,-1,-1,-1,-1,6016,0,0,0,0.15,7609,23643,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_pv,UtilityPV_Class1_Moderate_,1
+WECC_utilitypv_class1_moderate_2,3,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,1143504.83,-1,-1,-1,-1,-1,19411,0,0,0,0.15,7609,23643,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_pv,UtilityPV_Class1_Moderate_,2
+WECC_utilitypv_class1_moderate_3,3,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,35742.72,-1,-1,-1,-1,-1,3992,0,0,0,0.15,7609,23643,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_pv,UtilityPV_Class1_Moderate_,3
+WECC_utilitypv_class1_moderate_4,3,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,1185544.36,-1,-1,-1,-1,-1,25714,0,0,0,0.15,7609,23643,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_pv,UtilityPV_Class1_Moderate_,4
+WECC_utilitypv_class1_moderate_5,3,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,31049.98,-1,-1,-1,-1,-1,8052,0,0,0,0.15,7609,23643,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_pv,UtilityPV_Class1_Moderate_,5
+WECC_utilitypv_class1_moderate_6,3,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,1023622.34,-1,-1,-1,-1,-1,33457,0,0,0,0.15,7609,23643,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_pv,UtilityPV_Class1_Moderate_,6
+WECC_utilitypv_class1_moderate_7,3,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,82238,-1,-1,-1,-1,-1,16842,0,0,0,0.15,7609,23643,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_pv,UtilityPV_Class1_Moderate_,7
+WECC_utilitypv_class1_moderate_8,3,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,1134234.27,-1,-1,-1,-1,-1,105939,0,0,0,0.15,7609,23643,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_pv,UtilityPV_Class1_Moderate_,8
+WECC_utilitypv_class1_moderate_9,3,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,94348.41,-1,-1,-1,-1,-1,28290,0,0,0,0.15,7609,23643,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_pv,UtilityPV_Class1_Moderate_,9
\ No newline at end of file
diff --git a/README.md b/README.md
index 5e63622ed0..3108faa697 100644
--- a/README.md
+++ b/README.md
@@ -176,8 +176,8 @@ A full example case with Gurobi as an optimizer is given in `Example_Systems/Sma
## Running Modeling to Generate Alternatives with GenX
GenX includes a modeling to generate alternatives (MGA) package that can be used to automatically enumerate a diverse set of near cost-optimal solutions to electricity system planning problems. To use the MGA algorithm, user will need to perform the following tasks:
-1. Add a `Resource_Type` column in the `Generators_data.csv` file denoting the type of each technology.
-2. Add a `MGA` column in the `Generators_data.csv` file denoting the availability of the technology.
+1. Add a `Resource_Type` column in the resource `.csv` files (included in the `Resources` folder) denoting the type of each technology.
+2. Add a `MGA` column in the resource `.csv` files (included in the `Resources` folder) denoting the availability of the technology.
3. Set the `ModelingToGenerateAlternatives` flag in the `GenX_Settings.yml` file to 1.
4. Set the `ModelingtoGenerateAlternativeSlack` flag in the `GenX_Settings.yml` file to the desirable level of slack.
5. Create a `Rand_mga_objective_coefficients.csv` file to provide random objective function coefficients for each MGA iteration.
diff --git a/docs/make.jl b/docs/make.jl
index 4c76763ebe..48042b517c 100644
--- a/docs/make.jl
+++ b/docs/make.jl
@@ -51,6 +51,7 @@ pages = OrderedDict(
],
"Hydrogen Electrolyzers" => "electrolyzers.md",
"Scheduled maintenance for various resources" => "maintenance.md",
+ "Resource types" => "resource.md"
],
"Multi_stage" => [
"Configure multi-stage inputs" => "configure_multi_stage_inputs.md",
@@ -70,7 +71,7 @@ pages = OrderedDict(
"GenX Outputs Functions" =>"write_outputs.md",
"Additional Features" => "additional_features.md",
"Third Party Extensions" => "additional_third_party_extensions.md",
- #"Unit Testing (Under Development)" => "unit_testing.md"
+ "Developer Docs" => "developer_guide.md",
)
makedocs(;
modules=[GenX],
diff --git a/docs/src/assets/type_hierarchy.png b/docs/src/assets/type_hierarchy.png
new file mode 100644
index 0000000000..e6375369cd
Binary files /dev/null and b/docs/src/assets/type_hierarchy.png differ
diff --git a/docs/src/data_documentation.md b/docs/src/data_documentation.md
index 52e05058cb..8a0fc33271 100644
--- a/docs/src/data_documentation.md
+++ b/docs/src/data_documentation.md
@@ -169,7 +169,7 @@ All input files are in CSV format. Running the GenX model requires a minimum of
#### 2.1.1 Fuels\_data.csv
-• **First row:** names of all fuels used in the model instance which should match the labels used in `Fuel` column in the `Generators_data.csv` file. For renewable resources or other resources that do not consume a fuel, the name of the fuel is `None`.
+• **First row:** names of all fuels used in the model instance which should match the labels used in `Fuel` column in one of the resource `.csv` file in the `Resources` folder. For renewable resources or other resources that do not consume a fuel, the name of the fuel is `None`.
• **Second row:** The second row specifies the CO2 emissions intensity of each fuel in tons/MMBtu (million British thermal units). Note that by convention, tons correspond to metric tonnes and not short tons (although as long as the user is internally consistent in their application of units, either can be used).
@@ -254,153 +254,65 @@ This file includes parameters to characterize model temporal resolution to appro
|Sub\_Weights |Number of annual time steps (e.g. hours) represented by each timestep in a representative period. The length of this column is equal to the number of representative periods. The sum of the elements should be equal to the total number of time steps in a model time horizon (e.g. 8760 hours if modeling 365 days or 8736 if modeling 52 weeks).|
+#### 2.1.4 Resources input files
-#### 2.1.4 Generator\_variability.csv
+The `Resources` folder contains the input files for each resource type. At the current version of GenX, the following resources are included in the model:
+1) thermal generators, specified in the `Thermal.csv` file,
+2) variable renewable energy resources (VRE), specified in the `VRE.csv` file,
+3) reservoir hydro resources, specified in the `Hydro.csv` file,
+4) storage resources, specified in the `Storage.csv` file,
+5) flexible demand resources, specified in the `Flex_demand.csv` file,
+6) must-run resources, specified in the `Must_run.csv` file,
+7) electrolyzers, specified in the `Electrolyzer.csv` file, and
+8) co-located VRE and storage resources, specified in the `Vre_stor.csv` file.
-This file contains the time-series of capacity factors / availability of each resource included in the `Generators_data.csv` file for each time step (e.g. hour) modeled.
+Each file contains cost and performance parameters for various generators and other resources included in the model formulation. The following table describes the mandatory columns in each of these files. Note that the column names are case insensitive.
-• First column: The first column contains the time index of each row (starting in the second row) from 1 to N.
-
-• Second column onwards: Resources are listed from the second column onward with headers matching each resource name in the `Generators_data.csv` file in any order. The availability for each resource at each time step is defined as a fraction of installed capacity and should be between 0 and 1. Note that for this reason, resource names specified in `Generators_data.csv` must be unique. Note that for Hydro reservoir resources (i.e. `HYDRO = 1` in the `Generators_data.csv`), values in this file correspond to inflows (in MWhs) to the hydro reservoir as a fraction of installed power capacity, rather than hourly capacity factor. Note that for co-located VRE and storage resources, solar PV and wind resource profiles should not be located in this file but rather in separate variability files (these variabilities can be in the `Generators_variability.csv` if time domain reduction functionalities will be utilized because the time domain reduction functionalities will separate the files after the clustering is completed).
-
-#### 2.1.5 Generators\_data.csv
-
-This file contains cost and performance parameters for various generators and other resources (storage, flexible demand, etc) included in the model formulation.
-
-###### Table 5: Mandatory columns in the Generators\_data.csv file
+##### Table 5a: Mandatory columns in all resource .csv file
---
|**Column Name** | **Description**|
| :------------ | :-----------|
|Resource | This column contains **unique** names of resources available to the model. Resources can include generators, storage, and flexible or time shiftable demand.|
|Zone | Integer representing zone number where the resource is located. |
|**Technology type flags**|
-|New\_Build | { 0, 1}, Flag for resource (storage, generation) eligibility for capacity expansion.|
+|New\_Build | {0, 1}, Flag for resource (storage, generation) eligibility for capacity expansion.|
||New\_Build = 1: eligible for capacity expansion. |
||New\_Build = 0: not eligible for capacity expansion.|
|Can\_Retire | {0, 1}, Flag for resource (storage, generation) eligibility for retirement.|
||Can\_Retire = 1: eligible for retirement. |
||Can\_Retire = 0: not eligible for retirement.|
-|THERM | {0, 1, 2}, Flag to indicate membership in set of thermal resources (e.g. nuclear, combined heat and power, natural gas combined cycle, coal power plant)|
-||THERM = 0: Not part of set (default) |
-||THERM = 1: If the power plant relies on thermal energy input and subject unit commitment constraints/decisions if `UCommit >= 1` (e.g. cycling decisions/costs/constraints). |
-||THERM = 2: If the power plant relies on thermal energy input and is subject to simplified economic dispatch constraints (ramping limits and minimum output level but no cycling decisions/costs/constraints). |
-|Cap\_size | Size (MW) of a single generating unit. This is used only for resources with integer unit commitment (`THERM = 1`) - not relevant for other resources.|
-|VRE | {0, 1}, Flag to indicate membership in set of dispatchable (or curtailable) variable renewable energy resources (onshore wind, offshore wind, utility-scale solar PV, and distributed solar PV subject to dispatch signals).|
-||VRE = 0: Not part of set (default) |
-||VRE = 1: Dispatchable variable renewable energy (VRE) resources. |
-|Num\_VRE\_bins | Number of resource availability profiles considered for each VRE resource per zone. This parameter is used to decide the number of capacity investment decision variables related to a single variable renewable energy technology in each zone.|
-||Num\_VRE\_bins = 1: using a single resource availability profile per technology per zone. 1 capacity investment decision variable and 1 generator RID tracking technology power output (and in each zone).|
-||Num\_VRE\_bins > 1: using multiple resource availability profiles per technology per zone. Num\_VRE\_bins capacity investment decision variables and 1 generator RID used to define technology power output at each time step (and in each zone). Example: Suppose we are modeling 3 bins of wind profiles for each zone. Then include 3 rows with wind resource names as Wind\_1, Wind\_2, and Wind\_3 and a corresponding increasing sequence of RIDs. Set Num\_VRE\_bins for the generator with smallest RID, Wind\_1, to be 3 and set Num\_VRE\_bins for the other rows corresponding to Wind\_2 and Wind\_3, to be zero. By setting Num\_VRE\_bins for Wind\_2 and Wind\_3, the model eliminates the power outputs variables for these generators. The power output from the technology across all bins is reported in the power output variable for the first generator. This allows for multiple bins without significantly increasing number of model variables (adding each bin only adds one new capacity variable and no operational variables). See documentation for `curtailable_variable_renewable()` for more. |
-|MUST\_RUN | {0, 1}, Flag to indicate membership in set of must-run plants (could be used to model behind-the-meter PV not subject to dispatch signals/curtailment, run-of-river hydro that cannot spill water, must-run or self-committed thermal generators, etc). |
-||MUST\_RUN = 0: Not part of set (default) |
-||MUST\_RUN = 1: Must-run (non-dispatchable) resources.|
-|STOR | {0, 1, 2}, Flag to indicate membership in set of storage resources and designate which type of storage resource formulation to employ.|
-||STOR = 0: Not part of set (default) |
-||STOR = 1: Discharging power capacity and energy capacity are the investment decision variables; symmetric charge/discharge power capacity with charging capacity equal to discharging capacity (e.g. lithium-ion battery storage).|
-||STOR = 2: Discharging, charging power capacity and energy capacity are investment variables; asymmetric charge and discharge capacities using distinct processes (e.g. hydrogen electrolysis, storage, and conversion to power using fuel cell or combustion turbine).|
-|FLEX | {0, 1}, Flag to indicate membership in set of flexible demand-side resources (e.g. scheduleable or time shiftable demand such as automated EV charging, smart thermostat systems, irrigation pumping demand etc).|
-||FLEX = 0: Not part of set (default) |
-||FLEX = 1: Flexible demand resource.|
-|HYDRO | {0, 1}, Flag to indicate membership in set of reservoir hydro resources.|
-||HYDRO = 0: Not part of set (default) |
-||HYDRO = 1: Hydropower with reservoir modeling, including inflows, spillage, ramp rate limits and minimum operating level and efficiency loss associated with discharging. Reservoir capacity can be represented as a ratio or energy to power. This type of plant cannot charge from grid.|
-|ELECTROLYZER | {0, 1}, Flag to indicate membership in set of electrolysis resources (optional input column).|
-||ELECTROLYZER = 0: Not part of set (default) |
-||ELECTROLYZER = 1: Electrolyzer resources.|
-|LDS | {0, 1}, Flag to indicate the resources eligible for long duration storage constraints with inter period linkage (e.g., reservoir hydro, hydrogen storage). Note that for co-located VRE-STOR resources, this flag must be 0 (LDS_VRE_STOR flag exists in VRE-STOR dataframe). |
-||LDS = 0: Not part of set (default) |
-||LDS = 1: Long duration storage resources|
-|VRE_STOR | {0, 1}, Flag to indicate membership in set of co-located variable renewable energy resources (onshore wind and utility-scale solar PV) and storage resources (either short- or long-duration energy storage with symmetric or asymmetric charging or discharging capabilities).|
-||VRE_STOR = 0: Not part of set (default) |
-||VRE_STOR = 1: Co-located VRE and storage (VRE-STOR) resources. |
|**Existing technology capacity**|
|Existing\_Cap\_MW |The existing capacity of a power plant in MW. Note that for co-located VRE-STOR resources, this capacity represents the existing AC grid connection capacity in MW. |
-|Existing\_Cap\_MWh |The existing capacity of storage in MWh where `STOR = 1` or `STOR = 2`. Note that for co-located VRE-STOR resources, this capacity represents the existing capacity of storage in MWh. |
-|Existing\_Charge\_Cap\_MW |The existing charging capacity for resources where `STOR = 2`.|
|**Capacity/Energy requirements**|
|Max\_Cap\_MW |-1 (default) – no limit on maximum discharge capacity of the resource. If non-negative, represents maximum allowed discharge capacity (in MW) of the resource. Note that for co-located VRE-STOR resources, this capacity represents the maximum AC grid connection capacity in MW. |
-|Max\_Cap\_MWh |-1 (default) – no limit on maximum energy capacity of the resource. If non-negative, represents maximum allowed energy capacity (in MWh) of the resource with `STOR = 1` or `STOR = 2`. Note that for co-located VRE-STOR resources, this capacity represents the maximum capacity of storage in MWh. |
-|Max\_Charge\_Cap\_MW |-1 (default) – no limit on maximum charge capacity of the resource. If non-negative, represents maximum allowed charge capacity (in MW) of the resource with `STOR = 2`.|
|Min\_Cap\_MW |-1 (default) – no limit on minimum discharge capacity of the resource. If non-negative, represents minimum allowed discharge capacity (in MW) of the resource. Note that for co-located VRE-STOR resources, this capacity represents the minimum AC grid connection capacity in MW. |
-|Min\_Cap\_MWh| -1 (default) – no limit on minimum energy capacity of the resource. If non-negative, represents minimum allowed energy capacity (in MWh) of the resource with `STOR = 1` or `STOR = 2`. Note that for co-located VRE-STOR resources, this capacity represents the minimum capacity of storage in MWh. |
-|Min\_Charge\_Cap\_MW |-1 (default) – no limit on minimum charge capacity of the resource. If non-negative, represents minimum allowed charge capacity (in MW) of the resource with `STOR = 2`.|
|**Cost parameters**|
|Inv\_Cost\_per\_MWyr | Annualized capacity investment cost of a technology ($/MW/year). Note that for co-located VRE-STOR resources, this annualized capacity investment cost pertains to the grid connection.|
-|Inv\_Cost\_per\_MWhyr | Annualized investment cost of the energy capacity for a storage technology ($/MW/year), applicable to either `STOR = 1` or `STOR = 2`. Note that for co-located VRE-STOR resources, this annualized investment cost of the energy capacity pertains to the co-located storage resource.|
-|Inv\_Cost\_Charge\_per\_MWyr | Annualized capacity investment cost for the charging portion of a storage technology with `STOR = 2` ($/MW/year). |
|Fixed\_OM\_Cost\_per\_MWyr | Fixed operations and maintenance cost of a technology ($/MW/year). Note that for co-located VRE-STOR resources, this fixed operations and maintenance cost pertains to the grid connection.|
-|Fixed\_OM\_Cost\_per\_MWhyr | Fixed operations and maintenance cost of the energy component of a storage technology ($/MWh/year). Note that for co-located VRE-STOR resources, this fixed operations and maintenance cost of the energy component pertains to the co-located storage resource. |
-|Fixed\_OM\_Cost\_Charge\_per\_MWyr | Fixed operations and maintenance cost of the charging component of a storage technology of type `STOR = 2`. |
|Var\_OM\_Cost\_per\_MWh | Variable operations and maintenance cost of a technology ($/MWh). Note that for co-located VRE-STOR resources, these costs apply to the AC generation sent to the grid from the entire site. |
-|Var\_OM\_Cost\_per\_MWhIn | Variable operations and maintenance cost of the charging aspect of a storage technology with `STOR = 2`, or variable operations and maintenance costs associated with flexible demand deferral with `FLEX = 1`. Otherwise 0 ($/MWh). Note that for co-located VRE-STOR resources, these costs must be 0 (specific variable operations and maintenance costs exist in VRE-STOR dataframe). |
|**Technical performance parameters**|
|Heat\_Rate\_MMBTU\_per\_MWh |Heat rate of a generator or MMBtu of fuel consumed per MWh of electricity generated for export (net of on-site consumption). The heat rate is the inverse of the efficiency: a lower heat rate is better. Should be consistent with fuel prices in terms of reporting on higher heating value (HHV) or lower heating value (LHV) basis. |
|Fuel |Fuel needed for a generator. The names should match with the ones in the `Fuels_data.csv`. |
-|Self\_Disch |[0,1], The power loss of storage technologies per hour (fraction loss per hour)- only applies to storage techs. Note that for co-located VRE-STOR resources, this value applies to the storage component of each resource.|
-|Min\_Power |[0,1], The minimum generation level for a unit as a fraction of total capacity. This value cannot be higher than the smallest time-dependent CF value for a resource in `Generators_variability.csv`. Applies to thermal plants, and reservoir hydro resource (`HYDRO = 1`).|
-|Ramp\_Up\_Percentage |[0,1], Maximum increase in power output from between two periods (typically hours), reported as a fraction of nameplate capacity. Applies to thermal plants, and reservoir hydro resource (`HYDRO = 1`).|
-|Ramp\_Dn\_Percentage |[0,1], Maximum decrease in power output from between two periods (typically hours), reported as a fraction of nameplate capacity. Applies to thermal plants, and reservoir hydro resource (`HYDRO = 1`).|
-|Eff\_Up |[0,1], Efficiency of charging storage – applies to storage technologies (all STOR types except co-located storage resources).|
-|Eff\_Down |[0,1], Efficiency of discharging storage – applies to storage technologies (all STOR types except co-located storage resources). |
-|Hydro\_Energy\_to\_Power\_Ratio |The rated number of hours of reservoir hydro storage at peak discharge power output. Applies to `HYDRO = 1` (hours). |
-|Min\_Duration |Specifies the minimum ratio of installed energy to discharged power capacity that can be installed. Applies to STOR types 1 and 2 (hours). Note that for co-located VRE-STOR resources, this value does not apply. |
-|Max\_Duration |Specifies the maximum ratio of installed energy to discharged power capacity that can be installed. Applies to STOR types 1 and 2 (hours). Note that for co-located VRE-STOR resources, this value does not apply. |
-|Max\_Flexible\_Demand\_Delay |Maximum number of hours that demand can be deferred or delayed. Applies to resources with FLEX type 1 (hours). |
-|Max\_Flexible\_Demand\_Advance |Maximum number of hours that demand can be scheduled in advance of the original schedule. Applies to resources with FLEX type 1 (hours). |
-|Flexible\_Demand\_Energy\_Eff |[0,1], Energy efficiency associated with time shifting demand. Represents energy losses due to time shifting (or 'snap back' effect of higher consumption due to delay in use) that may apply to some forms of flexible demand. Applies to resources with FLEX type 1 (hours). For example, one may need to pre-cool a building more than normal to advance demand. |
|**Required for writing outputs**|
|region | Name of the model region|
|cluster | Number of the cluster when representing multiple clusters of a given technology in a given region. |
-|**MultiStage == 1**|
-|Capital\_Recovery\_Period |Capital recovery period (in years) used for determining overnight capital costs from annualized investment costs. Note that for co-located VRE-STOR resources, this value pertains to the grid connection (other capital recovery periods for different components of the resource can be found in the VRE-STOR dataframe). |
-|Lifetime |Lifetime (in years) used for determining endogenous retirements of newly built capacity. Note that the same lifetime is used for each component of a co-located VRE-STOR resource. |
-|Min\_Retired\_Cap\_MW |Minimum required discharge capacity retirements in the current model period. This field can be used to enforce lifetime retirements of existing capacity. Note that for co-located VRE-STOR resources, this value pertains to the grid connection (other minimum required discharge capacity retirements for different components of the resource can be found in the VRE-STOR dataframe). |
-|Min\_Retired\_Energy\_Cap\_MW |Minimum required energy capacity retirements in the current model period. This field can be used to enforce lifetime retirements of existing energy capacity. Note that for co-located VRE-STOR resources, this value pertains to the storage component (other minimum required capacity retirements for different components of the resource can be found in the VRE-STOR dataframe).|
-|Min\_Retired\_Charge\_Cap\_MW |Minimum required energy capacity retirements in the current model period. This field can be used to enforce lifetime retirements of existing charge capacity. |
+|**Required if electrolyzer is included in the model**|
+|Qualified_Hydrogen_Supply| {0,1}, Indicates that generator or storage resources is eligible to supply electrolyzers in the same zone (used for hourly clean supply constraint)|
-###### Table 6: Settings-specific columns in the Generators\_data.csv file
+##### Table 5b: Settings-specific columns in all resource .csv file
---
|**Column Name** | **Description**|
| :------------ | :-----------|
-|**UCommit >= 1** | The following settings apply only to thermal plants with unit commitment constraints (`THERM = 1`).|
-|Up\_Time| Minimum amount of time a resource has to stay in the committed state.|
-|Down\_Time |Minimum amount of time a resource has to remain in the shutdown state.|
-|Start\_Cost\_per\_MW |Cost per MW of nameplate capacity to start a generator ($/MW per start). Multiplied by the number of generation units (each with a pre-specified nameplate capacity) that is turned on.|
-|Start\_Fuel\_MMBTU\_per\_MW |Startup fuel use per MW of nameplate capacity of each generator (MMBtu/MW per start).|
-|**Reserves = 1** | The following settings apply to thermal, dispatchable VRE, hydro and storage resources|
-|Reg\_Cost |Cost of providing regulation reserves ($/MW per time step/hour).|
-|Rsv\_Cost |Cost of providing upwards spinning or contingency reserves ($/MW per time step/hour).|
-|Reg\_Max |[0,1], Fraction of nameplate capacity that can committed to provided regulation reserves. .|
-|Rsv\_Max |[0,1], Fraction of nameplate capacity that can committed to provided upwards spinning or contingency reserves.|
-|**EnergyShareRequirement > 0**||
-|ESR\_*| Flag to indicate which resources are considered for the Energy Share Requirement constraint. Note that this flag must be 0 for co-located VRE-STOR resources (policy inputs are read from the specific VRE-STOR dataframe).|
-||1- included|
-||0- excluded|
-|**CapacityReserveMargin > 0**||
-|CapRes\_* |[0,1], Fraction of the resource capacity eligible for contributing to the capacity reserve margin constraint (e.g. derate factor). Note that this fraction must be 0 for co-located VRE-STOR resources (policy inputs are read from the specific VRE-STOR dataframe).|
|**ModelingToGenerateAlternatives = 1**||
|MGA |Eligibility of the technology for Modeling To Generate Alternative (MGA) run. |
||1 = Technology is available for the MGA run.|
||0 = Technology is unavailable for the MGA run (e.g. storage technologies).|
-|Resource\_Type |For the MGA run, we categorize all the resources in a few resource types. We then find maximally different generation portfolio based on these resource types. For example, existing solar and new solar resources could be represented by a resource type names `Solar`. Categorization of resources into resource types is user dependent. Note that this fraction must be 0 for co-located VRE-STOR resources (policy inputs are read from the specific VRE-STOR dataframe).|
-|**MinCapReq = 1**|
-|MinCapTag\_*| Eligibility of resources to participate in Minimum Technology Carveout constraint. \* corresponds to the ith row of the file `Minimum_capacity_requirement.csv`. Note that this eligibility must be 0 for co-located VRE-STOR resources (policy inputs are read from the specific VRE-STOR dataframe).|
-|**MaxCapReq = 1**|
-|MaxCapTag\_*| Eligibility of resources to participate in Maximum Technology Carveout constraint. \* corresponds to the ith row of the file `Maximum_capacity_requirement.csv`. Note that this eligibility must be 0 for co-located VRE-STOR resources (policy inputs are read from the specific VRE-STOR dataframe).|
-|**PiecewiseFuelUsage-related parameters required if any resources have nonzero PWFU fuel usage, heat rates, and load points**|
-|PWFU\_Fuel\_Usage\_Zero\_Load\_MMBTU\_per\_h|The fuel usage (MMBTU/h) for the first PWFU segemnt (y-intercept) at zero load.|
-|PWFU\_Heat\_Rate\_MMBTU\_per\_MWh\_*i| The slope of fuel usage function of the segment i.|
-|PWFU\_Load\_Point\_MW\_*i| The end of segment i (MW).|
+|Resource\_Type |For the MGA run, we categorize all the resources in a few resource types. We then find maximally different generation portfolio based on these resource types. For example, existing solar and new solar resources could be represented by a resource type names `Solar`. Categorization of resources into resource types is user dependent. |
|**Maintenance data**|
|MAINT|[0,1], toggles scheduled maintenance formulation.|
|Maintenance\_Duration| (Positive integer, less than total length of simulation.) Duration of the maintenance period, in number of timesteps. Only used if `MAINT=1`.|
|Maintenance\_Cycle\_Length\_Years| Length of scheduled maintenance cycle, in years. `1` is maintenance every year, `3` is every three years, etc. (Positive integer. Only used if `MAINT=1`.)|
|Maintenance\_Begin\_Cadence| Cadence of timesteps in which scheduled maintenance can begin. `1` means that a maintenance period can start in any timestep, `24` means it can start only in timesteps 1, 25, 49, etc. A larger number can decrease the simulation computational cost as it limits the optimizer's choices. (Positive integer, less than total length of simulation. Only used if `MAINT=1`.)|
-|**Electrolyzer related parameters required if the set ELECTROLYZER is not empty**|
-|Hydrogen_MWh_Per_Tonne| Electrolyzer efficiency in megawatt-hours (MWh) of electricity per metric tonne of hydrogen produced (MWh/t)|
-|Electrolyzer_Min_kt| Minimum annual quantity of hydrogen that must be produced by electrolyzer in kilotonnes (kt)|
-|Hydrogen_Price_Per_Tonne| Price (or value) of hydrogen per metric tonne ($/t)|
-|Qualified_Hydrogen_Supply| {0,1}, Indicates that generator or storage resources is eligible to supply electrolyzers in the same zone (used for hourly clean supply constraint)|
|**CO2-related parameters required if any resources have nonzero CO2_Capture_Fraction**|
|CO2\_Capture\_Fraction |[0,1], The CO2 capture fraction of CCS-equipped power plants during steady state operation. This value should be 0 for generators without CCS. |
|CO2\_Capture\_Fraction\_Startup |[0,1], The CO2 capture fraction of CCS-equipped power plants during the startup events. This value should be 0 for generators without CCS |
@@ -409,7 +321,385 @@ This file contains cost and performance parameters for various generators and ot
||Biomass = 1: Uses biomass as fuel.|
|CCS\_Disposal\_Cost\_per\_Metric_Ton | Cost associated with CCS disposal ($/tCO2), including pipeline, injection and storage costs of CCS-equipped generators.|
+##### Table 6a: Additional columns in the Thermal.csv file
+|**Column Name** | **Description**|
+| :------------ | :-----------|
+|Model | {1, 2}, Flag to indicate membership in set of thermal resources (e.g. nuclear, combined heat and power, natural gas combined cycle, coal power plant)|
+||Model = 1: If the power plant relies on thermal energy input and subject unit commitment constraints/decisions if `UCommit >= 1` (e.g. cycling decisions/costs/constraints). |
+||Model = 2: If the power plant relies on thermal energy input and is subject to simplified economic dispatch constraints (ramping limits and minimum output level but no cycling decisions/costs/constraints). |
+|Min\_Power |[0,1], The minimum generation level for a unit as a fraction of total capacity. This value cannot be higher than the smallest time-dependent CF value for a resource in `Generators_variability.csv`.|
+|Ramp\_Up\_Percentage |[0,1], Maximum increase in power output from between two periods (typically hours), reported as a fraction of nameplate capacity.|
+|Ramp\_Dn\_Percentage |[0,1], Maximum decrease in power output from between two periods (typically hours), reported as a fraction of nameplate capacity.|
+
+##### Table 6b: Settings-specific columns in the Thermal.csv file
+---
+|**Column Name** | **Description**|
+| :------------ | :-----------|
+|**UCommit >= 1** | The following settings apply only to thermal plants with unit commitment constraints|
+|Up\_Time| Minimum amount of time a resource has to stay in the committed state.|
+|Down\_Time |Minimum amount of time a resource has to remain in the shutdown state.|
+|Start\_Cost\_per\_MW |Cost per MW of nameplate capacity to start a generator ($/MW per start). Multiplied by the number of generation units (each with a pre-specified nameplate capacity) that is turned on.|
+|Start\_Fuel\_MMBTU\_per\_MW |Startup fuel use per MW of nameplate capacity of each generator (MMBtu/MW per start).|
+|**Reserves = 1** | |
+|Reg\_Cost |Cost of providing regulation reserves ($/MW per time step/hour).|
+|Rsv\_Cost |Cost of providing upwards spinning or contingency reserves ($/MW per time step/hour).|
+|Reg\_Max |[0,1], Fraction of nameplate capacity that can committed to provided regulation reserves. .|
+|Rsv\_Max |[0,1], Fraction of nameplate capacity that can committed to provided upwards spinning or contingency reserves.|
+
+##### Table 7a: Additional columns in the VRE.csv file
+---
+|**Column Name** | **Description**|
+| :------------ | :-----------|
+|Num\_VRE\_bins | Number of resource availability profiles considered for each VRE resource per zone. This parameter is used to decide the number of capacity investment decision variables related to a single variable renewable energy technology in each zone.|
+||Num\_VRE\_bins = 1: using a single resource availability profile per technology per zone. 1 capacity investment decision variable and 1 generator RID tracking technology power output (and in each zone).|
+||Num\_VRE\_bins > 1: using multiple resource availability profiles per technology per zone. Num\_VRE\_bins capacity investment decision variables and 1 generator RID used to define technology power output at each time step (and in each zone). Example: Suppose we are modeling 3 bins of wind profiles for each zone. Then include 3 rows with wind resource names as Wind\_1, Wind\_2, and Wind\_3 and a corresponding increasing sequence of RIDs. Set Num\_VRE\_bins for the generator with smallest RID, Wind\_1, to be 3 and set Num\_VRE\_bins for the other rows corresponding to Wind\_2 and Wind\_3, to be zero. By setting Num\_VRE\_bins for Wind\_2 and Wind\_3, the model eliminates the power outputs variables for these generators. The power output from the technology across all bins is reported in the power output variable for the first generator. This allows for multiple bins without significantly increasing number of model variables (adding each bin only adds one new capacity variable and no operational variables). See documentation for `curtailable_variable_renewable()` for more. |
+
+##### Table 6b: Settings-specific columns in the VRE.csv file
+---
+|**Column Name** | **Description**|
+| :------------ | :-----------|
+|**Reserves = 1** | |
+|Reg\_Cost |Cost of providing regulation reserves ($/MW per time step/hour).|
+|Rsv\_Cost |Cost of providing upwards spinning or contingency reserves ($/MW per time step/hour).|
+|Reg\_Max |[0,1], Fraction of nameplate capacity that can committed to provided regulation reserves. .|
+|Rsv\_Max |[0,1], Fraction of nameplate capacity that can committed to provided upwards spinning or contingency reserves.|
+
+##### Table 7a: Additional columns in the Hydro.csv file
+---
+|**Column Name** | **Description**|
+| :------------ | :-----------|
+|Min\_Power |[0,1], The minimum generation level for a unit as a fraction of total capacity. This value cannot be higher than the smallest time-dependent CF value for a resource in `Generators_variability.csv`.|
+|Ramp\_Up\_Percentage |[0,1], Maximum increase in power output from between two periods (typically hours), reported as a fraction of nameplate capacity.|
+|Ramp\_Dn\_Percentage |[0,1], Maximum decrease in power output from between two periods (typically hours), reported as a fraction of nameplate capacity.|
+|Hydro\_Energy\_to\_Power\_Ratio |The rated number of hours of reservoir hydro storage at peak discharge power output. (hours). |
+|LDS | {0, 1}, Flag to indicate the resources eligible for long duration storage constraints with inter period linkage.|
+||LDS = 0: Not part of set (default) |
+||LDS = 1: Long duration storage resources|
+
+##### Table 7b: Settings-specific columns in the Hydro.csv file
+---
+|**Column Name** | **Description**|
+| :------------ | :-----------|
+|**Reserves = 1** | |
+|Reg\_Cost |Cost of providing regulation reserves ($/MW per time step/hour).|
+|Rsv\_Cost |Cost of providing upwards spinning or contingency reserves ($/MW per time step/hour).|
+|Reg\_Max |[0,1], Fraction of nameplate capacity that can committed to provided regulation reserves. .|
+|Rsv\_Max |[0,1], Fraction of nameplate capacity that can committed to provided upwards spinning or contingency reserves.|
+
+##### Table 8a: Additional columns in the Storage.csv file
+---
+|**Column Name** | **Description**|
+| :------------ | :-----------|
+|Model | {0, 1, 2}, Flag to indicate membership in set of storage resources and designate which type of storage resource formulation to employ.|
+||Model = 0: Not part of set (default) |
+||Model = 1: Discharging power capacity and energy capacity are the investment decision variables; symmetric charge/discharge power capacity with charging capacity equal to discharging capacity (e.g. lithium-ion battery storage).|
+||Model = 2: Discharging, charging power capacity and energy capacity are investment variables; asymmetric charge and discharge capacities using distinct processes (e.g. hydrogen electrolysis, storage, and conversion to power using fuel cell or combustion turbine).|
+|LDS | {0, 1}, Flag to indicate the resources eligible for long duration storage constraints with inter period linkage.|
+||LDS = 0: Not part of set (default) |
+||LDS = 1: Long duration storage resources|
+|Self\_Disch |[0,1], The power loss of storage technologies per hour (fraction loss per hour)- only applies to storage techs.|
+|Eff\_Up |[0,1], Efficiency of charging storage.|
+|Eff\_Down |[0,1], Efficiency of discharging storage. |
+|Min\_Duration |Specifies the minimum ratio of installed energy to discharged power capacity that can be installed (hours). |
+|Max\_Duration |Specifies the maximum ratio of installed energy to discharged power capacity that can be installed (hours). |
+|**Existing technology capacity**|
+|Existing\_Cap\_MWh |The existing capacity of storage in MWh where `Model = 1` or `Model = 2`.|
+|Existing\_Charge\_Cap\_MW |The existing charging capacity for resources where `Model = 2`.|
+|**Capacity/Energy requirements**|
+|Max\_Cap\_MWh |-1 (default) – no limit on maximum energy capacity of the resource. If non-negative, represents maximum allowed energy capacity (in MWh) of the resource with `Model = 1` or `Model = 2`.|
+|Max\_Charge\_Cap\_MW |-1 (default) – no limit on maximum charge capacity of the resource. If non-negative, represents maximum allowed charge capacity (in MW) of the resource with `Model = 2`.|
+|Min\_Cap\_MWh| -1 (default) – no limit on minimum energy capacity of the resource. If non-negative, represents minimum allowed energy capacity (in MWh) of the resource with `Model = 1` or `Model = 2`.|
+|Min\_Charge\_Cap\_MW |-1 (default) – no limit on minimum charge capacity of the resource. If non-negative, represents minimum allowed charge capacity (in MW) of the resource with `Model = 2`.|
+|**Cost parameters**|
+|Inv\_Cost\_per\_MWhyr | Annualized investment cost of the energy capacity for a storage technology ($/MW/year), applicable to either `Model = 1` or `Model = 2`. |
+|Inv\_Cost\_Charge\_per\_MWyr | Annualized capacity investment cost for the charging portion of a storage technology with `Model = 2` ($/MW/year). |
+|Fixed\_OM\_Cost\_per\_MWhyr | Fixed operations and maintenance cost of the energy component of a storage technology ($/MWh/year).|
+|Fixed\_OM\_Cost\_Charge\_per\_MWyr | Fixed operations and maintenance cost of the charging component of a storage technology of type `Model = 2`. |
+|Var\_OM\_Cost\_per\_MWhIn | Variable operations and maintenance cost of the charging aspect of a storage technology with `Model = 2`. Otherwise 0 ($/MWh).|
+
+##### Table 8b: Settings-specific columns in the Storage.csv file
+---
+|**Column Name** | **Description**|
+| :------------ | :-----------|
+|**Reserves = 1** | |
+|Reg\_Cost |Cost of providing regulation reserves ($/MW per time step/hour).|
+|Rsv\_Cost |Cost of providing upwards spinning or contingency reserves ($/MW per time step/hour).|
+|Reg\_Max |[0,1], Fraction of nameplate capacity that can committed to provided regulation reserves. .|
+|Rsv\_Max |[0,1], Fraction of nameplate capacity that can committed to provided upwards spinning or contingency reserves.|
+
+##### Table 9: Additional columns in the Flex_demand.csv file
+---
+|**Column Name** | **Description**|
+| :------------ | :-----------|
+|Max\_Flexible\_Demand\_Delay |Maximum number of hours that demand can be deferred or delayed (hours). |
+|Max\_Flexible\_Demand\_Advance |Maximum number of hours that demand can be scheduled in advance of the original schedule (hours). |
+|Flexible\_Demand\_Energy\_Eff |[0,1], Energy efficiency associated with time shifting demand. Represents energy losses due to time shifting (or 'snap back' effect of higher consumption due to delay in use) that may apply to some forms of flexible demand (hours). For example, one may need to pre-cool a building more than normal to advance demand. |
+|**Cost parameters**|
+|Var\_OM\_Cost\_per\_MWhIn | Variable operations and maintenance costs associated with flexible demand deferral. Otherwise 0 ($/MWh). |
+
+##### Table 10: Additional columns in the Electrolyzer.csv file
+---
+|**Column Name** | **Description**|
+| :------------ | :-----------|
+|Hydrogen_MWh_Per_Tonne| Electrolyzer efficiency in megawatt-hours (MWh) of electricity per metric tonne of hydrogen produced (MWh/t)|
+|Electrolyzer_Min_kt| Minimum annual quantity of hydrogen that must be produced by electrolyzer in kilotonnes (kt)|
+|Hydrogen_Price_Per_Tonne| Price (or value) of hydrogen per metric tonne ($/t)|
+|Min\_Power |[0,1], The minimum generation level for a unit as a fraction of total capacity. This value cannot be higher than the smallest time-dependent CF value for a resource in `Generators_variability.csv`.|
+|Ramp\_Up\_Percentage |[0,1], Maximum increase in power output from between two periods (typically hours), reported as a fraction of nameplate capacity.|
+|Ramp\_Dn\_Percentage |[0,1], Maximum decrease in power output from between two periods (typically hours), reported as a fraction of nameplate capacity.|
+!!! note
+ Check `Qualified_Hydrogen_Supply` column in table 5a if electrolyzers are included in the model. This column is used to indicate which resources are eligible to supply electrolyzers in the same zone (used for hourly clean supply constraint).
+
+Each co-located VRE and storage resource can be easily configured to contain either a co-located VRE-storage resource, standalone VRE resource (either wind, solar PV, or both), or standalone storage resource.
+##### Table 11a: Additional columns in the VRE_STOR.csv file
+---
+|**Column Name** | **Description**|
+| :------------ | :-----------|
+|**Technology type flags**|
+|SOLAR | {0, 1}, Flag to indicate membership in the set of co-located VRE-storage resources with a solar PV component.|
+||SOLAR = 0: Not part of set (default) |
+||SOLAR = 1: If the co-located VRE-storage resource can produce solar PV energy. ||
+|WIND | {0, 1}, Flag to indicate membership in the set of co-located VRE-storage resources with a wind component.|
+||WIND = 0: Not part of set (default) |
+||WIND = 1: If the co-located VRE-storage resource can produce wind energy. ||
+|STOR_DC_DISCHARGE | {0, 1, 2}, Flag to indicate membership in set of co-located VRE-storage resources that discharge behind the meter and through the inverter (DC).|
+||STOR_DC_DISCHARGE = 0: Not part of set (default) |
+||STOR_DC_DISCHARGE = 1: If the co-located VRE-storage resource contains symmetric charge/discharge power capacity with charging capacity equal to discharging capacity (e.g. lithium-ion battery storage). Note that if STOR_DC_DISCHARGE = 1, STOR_DC_CHARGE = 1.|
+||STOR_DC_DISCHARGE = 2: If the co-located VRE-storage resource has asymmetric discharge capacities using distinct processes (e.g. hydrogen electrolysis, storage, and conversion to power using fuel cell or combustion turbine).|
+|STOR_DC_CHARGE | {0, 1, 2}, Flag to indicate membership in set of co-located VRE-storage resources that charge through the inverter (DC).|
+||STOR_DC_CHARGE = 0: Not part of set (default) |
+||STOR_DC_CHARGE = 1: If the co-located VRE-storage resource contains symmetric charge/discharge power capacity with charging capacity equal to discharging capacity (e.g. lithium-ion battery storage). Note that if STOR_DC_CHARGE = 1, STOR_DC_DISCHARGE = 1.|
+||STOR_DC_CHARGE = 2: If the co-located VRE-storage resource has asymmetric charge capacities using distinct processes (e.g. hydrogen electrolysis, storage, and conversion to power using fuel cell or combustion turbine).|
+|STOR_AC_DISCHARGE | {0, 1, 2}, Flag to indicate membership in set of co-located VRE-storage resources that discharges AC.|
+||STOR_AC_DISCHARGE = 0: Not part of set (default) |
+||STOR_AC_DISCHARGE = 1: If the co-located VRE-storage resource contains symmetric charge/discharge power capacity with charging capacity equal to discharging capacity (e.g. lithium-ion battery storage). Note that if STOR_AC_DISCHARGE = 1, STOR_AC_CHARGE = 1.|
+||STOR_AC_DISCHARGE = 2: If the co-located VRE-storage resource has asymmetric discharge capacities using distinct processes (e.g. hydrogen electrolysis, storage, and conversion to power using fuel cell or combustion turbine).|
+|STOR_AC_CHARGE | {0, 1, 2}, Flag to indicate membership in set of co-located VRE-storage resources that charge AC.|
+||STOR_AC_CHARGE = 0: Not part of set (default) |
+||STOR_AC_CHARGE = 1: If the co-located VRE-storage resource contains symmetric charge/discharge power capacity with charging capacity equal to discharging capacity (e.g. lithium-ion battery storage). Note that if STOR_AC_CHARGE = 1, STOR_AC_DISCHARGE = 1.|
+||STOR_AC_CHARGE = 2: If the co-located VRE-storage resource has asymmetric charge capacities using distinct processes (e.g. hydrogen electrolysis, storage, and conversion to power using fuel cell or combustion turbine).|
+|LDS_VRE_STOR | {0, 1}, Flag to indicate the co-located VRE-storage resources eligible for long duration storage constraints with inter period linkage (e.g., reservoir hydro, hydrogen storage). |
+||LDS_VRE_STOR = 0: Not part of set (default) |
+||LDS_VRE_STOR = 1: Long duration storage resources|
+|**Existing technology capacity**|
+|Existing\_Cap\_MW |The existing AC grid connection capacity in MW. |
+|Existing\_Cap\_MWh |The existing capacity of storage in MWh. |
+|Existing\_Cap\_Inverter\_MW |The existing capacity of co-located VRE-STOR resource's inverter in MW (AC). |
+|Existing\_Cap\_Solar\_MW |The existing capacity of co-located VRE-STOR resource's solar PV in MW (DC). |
+|Existing\_Cap\_Wind\_MW |The existing capacity of co-located VRE-STOR resource's wind in MW (AC). |
+|Existing\_Cap\_Discharge\_DC\_MW |The existing discharge capacity of co-located VRE-STOR resource's storage component in MW (DC). Note that this only applies to resources where `STOR_DC_DISCHARGE = 2`. |
+|Existing\_Cap\_Charge\_DC\_MW |The existing charge capacity of co-located VRE-STOR resource's storage component in MW (DC). Note that this only applies to resources where `STOR_DC_CHARGE = 2`. |
+|Existing\_Cap\_Discharge\_AC\_MW |The existing discharge capacity of co-located VRE-STOR resource's storage component in MW (AC). Note that this only applies to resources where `STOR_AC_DISCHARGE = 2`. |
+|Existing\_Cap\_Charge\_AC\_MW |The existing charge capacity of co-located VRE-STOR resource's storage component in MW (AC). Note that this only applies to resources where `STOR_DC_CHARGE = 2`. |
+|**Capacity/Energy requirements**|
+|Max\_Cap\_MW |-1 (default) – no limit on maximum discharge capacity of the resource. If non-negative, represents maximum allowed AC grid connection capacity in MW of the resource. |
+|Max\_Cap\_MWh |-1 (default) – no limit on maximum energy capacity of the resource. If non-negative, represents maximum allowed energy capacity of storage in MWh. |
+|Min\_Cap\_MW |-1 (default) – no limit on minimum discharge capacity of the resource. If non-negative, represents minimum allowed AC grid connection capacity in MW. |
+|Min\_Cap\_MWh| -1 (default) – no limit on minimum energy capacity of the resource. If non-negative, represents minimum allowed energy capacity of storage in MWh. |
+|Max\_Cap\_Inverter\_MW |-1 (default) – no limit on maximum inverter capacity of the resource. If non-negative, represents maximum allowed inverter capacity (in MW AC) of the resource. |
+|Max\_Cap\_Solar\_MW |-1 (default) – no limit on maximum solar PV capacity of the resource. If non-negative, represents maximum allowed solar PV capacity (in MW DC) of the resource. |
+|Max\_Cap\_Wind\_MW |-1 (default) – no limit on maximum wind capacity of the resource. If non-negative, represents maximum allowed wind capacity (in MW AC) of the resource. |
+|Max\_Cap\_Discharge\_DC\_MW |-1 (default) – no limit on maximum DC discharge capacity of the resource. If non-negative, represents maximum allowed DC discharge capacity (in MW DC) of the resource with `STOR_DC_DISCHARGE = 2`.|
+|Max\_Cap\_Charge\_DC\_MW |-1 (default) – no limit on maximum DC charge capacity of the resource. If non-negative, represents maximum allowed DC charge capacity (in MW DC) of the resource with `STOR_DC_CHARGE = 2`.|
+|Max\_Cap\_Discharge\_AC\_MW |-1 (default) – no limit on maximum AC discharge capacity of the resource. If non-negative, represents maximum allowed AC discharge capacity (in MW AC) of the resource with `STOR_AC_DISCHARGE = 2`.|
+|Max\_Cap\_Charge\_AC\_MW |-1 (default) – no limit on maximum AC charge capacity of the resource. If non-negative, represents maximum allowed AC charge capacity (in MW AC) of the resource with `STOR_AC_CHARGE = 2`.|
+|Min\_Cap\_Inverter\_MW |-1 (default) – no limit on minimum inverter capacity of the resource. If non-negative, represents minimum allowed inverter capacity (in MW AC) of the resource. |
+|Min\_Cap\_Solar\_MW |-1 (default) – no limit on minimum solar PV capacity of the resource. If non-negative, represents minimum allowed solar PV capacity (in MW DC) of the resource. |
+|Min\_Cap\_Wind\_MW |-1 (default) – no limit on minimum wind capacity of the resource. If non-negative, represents minimum allowed wind capacity (in MW AC) of the resource. |
+|Min\_Cap\_Discharge\_DC\_MW |-1 (default) – no limit on minimum DC discharge capacity of the resource. If non-negative, represents minimum allowed DC discharge capacity (in MW DC) of the resource with `STOR_DC_DISCHARGE = 2`.|
+|Min\_Cap\_Charge\_DC\_MW |-1 (default) – no limit on minimum DC charge capacity of the resource. If non-negative, represents minimum allowed DC charge capacity (in MW DC) of the resource with `STOR_DC_CHARGE = 2`.|
+|Min\_Cap\_Discharge\_AC\_MW |-1 (default) – no limit on minimum AC discharge capacity of the resource. If non-negative, represents minimum allowed AC discharge capacity (in MW AC) of the resource with `STOR_AC_DISCHARGE = 2`.|
+|Min\_Cap\_Charge\_AC\_MW |-1 (default) – no limit on minimum AC charge capacity of the resource. If non-negative, represents minimum allowed AC charge capacity (in MW AC) of the resource with `STOR_AC_CHARGE = 2`.|
+|**Cost parameters**|
+|Inv\_Cost\_per\_MWyr | Annualized capacity investment cost of the grid connection ($/MW/year).|
+|Inv\_Cost\_per\_MWhyr | Annualized investment cost of the energy capacity for the co-located storage resource ($/MW/year)|
+|Fixed\_OM\_Cost\_per\_MWyr | Fixed operations and maintenance cost of the grid connection ($/MW/year).|
+|Fixed\_OM\_Cost\_per\_MWhyr | Fixed operations and maintenance cost of the energy component of the co-located storage resource. ($/MWh/year). |
+|Inv\_Cost\_Inverter\_per\_MWyr | Annualized capacity investment cost of the inverter component ($/MW-AC/year). |
+|Inv\_Cost\_Solar\_per\_MWyr | Annualized capacity investment cost of the solar PV component ($/MW-DC/year). |
+|Inv\_Cost\_Wind\_per\_MWyr | Annualized capacity investment cost of the wind component ($/MW-AC/year). |
+|Inv\_Cost\_Discharge\_DC\_per\_MWyr | Annualized capacity investment cost for the discharging portion of a storage technology with `STOR_DC_DISCHARGE = 2` ($/MW-DC/year). |
+|Inv\_Cost\_Charge\_DC\_per\_MWyr | Annualized capacity investment cost for the charging portion of a storage technology with `STOR_DC_CHARGE = 2` ($/MW-DC/year). |
+|Inv\_Cost\_Discharge\_AC\_per\_MWyr | Annualized capacity investment cost for the discharging portion of a storage technology with `STOR_AC_DISCHARGE = 2` ($/MW-AC/year). |
+|Inv\_Cost\_Charge\_AC\_per\_MWyr | Annualized capacity investment cost for the charging portion of a storage technology with `STOR_AC_CHARGE = 2` ($/MW-AC/year). |
+|Fixed\_OM\_Inverter\_Cost\_per\_MWyr | Fixed operations and maintenance cost of the inverter component ($/MW-AC/year).|
+|Fixed\_OM\_Solar\_Cost\_per\_MWyr | Fixed operations and maintenance cost of the solar PV component ($/MW-DC/year).|
+|Fixed\_OM\_Wind\_Cost\_per\_MWyr | Fixed operations and maintenance cost of the wind component ($/MW-AC/year).|
+|Fixed\_OM\_Cost\_Discharge\_DC\_per\_MWyr | Fixed operations and maintenance cost of the discharging component of a storage technology with `STOR_DC_DISCHARGE = 2` ($/MW-DC/year).|
+|Fixed\_OM\_Cost\_Charge\_DC\_per\_MWyr | Fixed operations and maintenance cost of the charging component of a storage technology with `STOR_DC_CHARGE = 2` ($/MW-DC/year).|
+|Fixed\_OM\_Cost\_Discharge\_AC\_per\_MWyr | Fixed operations and maintenance cost of the discharging component of a storage technology with `STOR_AC_DISCHARGE = 2` ($/MW-AC/year).|
+|Fixed\_OM\_Cost\_Charge\_AC\_per\_MWyr | Fixed operations and maintenance cost of the charging component of a storage technology with `STOR_AC_CHARGE = 2` ($/MW-AC/year).|
+|Var\_OM\_Cost\_per\_MWh\_Solar | Variable operations and maintenance cost of the solar PV component (multiplied by the inverter efficiency for AC terms) ($/MWh). |
+|Var\_OM\_Cost\_per\_MWh\_Wind | Variable operations and maintenance cost of the wind component ($/MWh). |
+|Var\_OM\_Cost\_per\_MWh\_Discharge_DC | Variable operations and maintenance cost of the discharging component of a storage technology with `STOR_DC_DISCHARGE = 2` (multiplied by the inverter efficiency for AC terms) ($/MWh). |
+|Var\_OM\_Cost\_per\_MWh\_Charge_DC | Variable operations and maintenance cost of the charging component of a storage technology with `STOR_DC_CHARGE = 2` (divided by the inverter efficiency for AC terms) ($/MWh). |
+|Var\_OM\_Cost\_per\_MWh\_Discharge_AC | Variable operations and maintenance cost of the discharging component of a storage technology with `STOR_AC_DISCHARGE = 2` ($/MWh). |
+|Var\_OM\_Cost\_per\_MWh\_Charge_AC | Variable operations and maintenance cost of the charging component of a storage technology with `STOR_AC_CHARGE = 2` ($/MWh). |
+|**Technical performance parameters**|
+|Self\_Disch |[0,1], The power loss of storage component of each resource per hour (fraction loss per hour). |
+|EtaInverter |[0,1], Inverter efficiency representing losses from converting DC to AC power and vice versa for each technology |
+|Inverter_Ratio_Solar |-1 (default) - no required ratio between solar PV capacity built to inverter capacity built. If non-negative, represents the ratio of solar PV capacity built to inverter capacity built.|
+|Inverter_Ratio_Wind |-1 (default) - no required ratio between wind capacity built to grid connection capacity built. If non-negative, represents the ratio of wind capacity built to grid connection capacity built.|
+|Power\_to\_Energy\_AC |The power to energy conversion for the storage component for AC discharging/charging of symmetric storage resources.|
+|Power\_to\_Energy\_DC |The power to energy conversion for the storage component for DC discharging/charging of symmetric storage resources.|
+|Eff\_Up\_DC |[0,1], Efficiency of DC charging storage – applies to storage technologies (all STOR types). |
+|Eff\_Down\_DC |[0,1], Efficiency of DC discharging storage – applies to storage technologies (all STOR types). |
+|Eff\_Up\_AC |[0,1], Efficiency of AC charging storage – applies to storage technologies (all STOR types). |
+|Eff\_Down\_AC |[0,1], Efficiency of AC discharging storage – applies to storage technologies (all STOR types). |
+
+##### Table 11b: Settings-specific columns in the VRE_STOR.csv file
+---
+|**Column Name** | **Description**|
+| :------------ | :-----------|
+|**Reserves = 1** | |
+|Reg\_Cost |Cost of providing regulation reserves ($/MW per time step/hour).|
+|Rsv\_Cost |Cost of providing upwards spinning or contingency reserves ($/MW per time step/hour).|
+|Reg\_Max |[0,1], Fraction of nameplate capacity that can committed to provided regulation reserves. .|
+|Rsv\_Max |[0,1], Fraction of nameplate capacity that can committed to provided upwards spinning or contingency reserves.|
+
+##### Policy-related columns for all resources
+In addition to the files described above, the `Resources` folder contains the following files that are used to specify policy-related parameters for specific resources:
+
+1) `Resource_energy_share_requirement.csv`
+2) `Resource_minimum_capacity_requirement.csv`
+3) `Resource_maximum_capacity_requirement.csv`
+4) `Resource_capacity_reserve_margin.csv`
+
+!!! note
+ These files are optional and can be omitted if no policy-related parameters are specified in the settings file. Also, not all the resources need to be included in these files, only those for which the policy applies.
+
+The following table describes the columns in each of these four files.
+
+!!! warning
+ The first column of each file must contain the resource name corresponding to a resource in one of the resource data files described above. Note that the order of resources in the policy files is not important.
+This policy is applied when if `EnergyShareRequirement > 0` in the settings file. \* corresponds to the ith row of the file `Energy_share_requirement.csv`.
+
+##### Table 12: Energy share requirement policy parameters
+---
+|**Column Name** | **Description**|
+| :------------ | :-----------|
+|Resource| Resource name corresponding to a resource in one of the resource data files described above.|
+|ESR\_*| Flag to indicate which resources are considered for the Energy Share Requirement constraint.|
+||1- included|
+||0- excluded|
+|**co-located VRE-STOR resources only**|
+|ESRVreStor\_*| Flag to indicate which resources are considered for the Energy Share Requirement constraint.|
+||1- included|
+||0- excluded|
+
+This policy is applied when if `MinCapReq = 1` in the settings file. \* corresponds to the ith row of the file `Minimum_capacity_requirement.csv`.
+
+##### Table 13: Minimum capacity requirement policy parameters
+---
+|**Column Name** | **Description**|
+| :------------ | :-----------|
+|Resource| Resource name corresponding to a resource in one of the resource data files described above.|
+|Min_Cap\_*| Flag to indicate which resources are considered for the Minimum Capacity Requirement constraint.|
+|**co-located VRE-STOR resources only**|
+|Min_Cap_Solar\_*| Eligibility of resources with a solar PV component (multiplied by the inverter efficiency for AC terms) to participate in Minimum Technology Carveout constraint.|
+|Min_Cap_Wind\_*| Eligibility of resources with a wind component to participate in Minimum Technology Carveout constraint (AC terms).|
+|Min_Cap_Stor\_*| Eligibility of resources with a storage component to participate in Minimum Technology Carveout constraint (discharge capacity in AC terms).|
+
+This policy is applied when if `MaxCapReq = 1` in the settings file. \* corresponds to the ith row of the file `Maximum_capacity_requirement.csv`.
+
+##### Table 14: Maximum capacity requirement policy parameters
+---
+|**Column Name** | **Description**|
+| :------------ | :-----------|
+|Resource| Resource name corresponding to a resource in one of the resource data files described above.|
+|Max_Cap\_*| Flag to indicate which resources are considered for the Maximum Capacity Requirement constraint.|
+|**co-located VRE-STOR resources only**|
+|Max_Cap_Solar\_*| Eligibility of resources with a solar PV component (multiplied by the inverter efficiency for AC terms) to participate in Maximum Technology Carveout constraint.
+|Max_Cap_Wind\_*| Eligibility of resources with a wind component to participate in Maximum Technology Carveout constraint (AC terms).
+|Max_Cap_Stor\_*| Eligibility of resources with a storage component to participate in Maximum Technology Carveout constraint (discharge capacity in AC terms).|
+
+This policy is applied when if `CapacityReserveMargin > 0` in the settings file. \* corresponds to the ith row of the file `Capacity_reserve_margin.csv`.
+
+##### Table 15: Capacity reserve margin policy parameters
+---
+|**Column Name** | **Description**|
+| :------------ | :-----------|
+|Resource| Resource name corresponding to a resource in one of the resource data files described above.|
+|Eligible_Cap_Res\_*| Fraction of the resource capacity eligible for contributing to the capacity reserve margin constraint (e.g. derate factor).|
+
+##### Additional module-related columns for all resources
+In addition to the files described above, the `Resources` folder can contain the following files that are used to specify additional attributes for specific resources:
+
+1) `Resource_multistage_data.csv`: mandatory if `MultiStage = 1` in the settings file
+2) `Resource_piecewisefuel_usage.csv`
+
+The following table describes the columns in each of these two files.
+
+!!! warning
+ The first column of each file must contain the resource name corresponding to a resource in one of the resource data files described above. Note that the order of resources in these files is not important.
+
+##### Table 16: Multistage parameters
+!!! warning
+ This file is mandatory if `MultiStage = 1` in the settings file.
+---
+|**Column Name** | **Description**|
+| :------------ | :-----------|
+|Resource| Resource name corresponding to a resource in one of the resource data files described above.|
+|Capital\_Recovery\_Period |Capital recovery period (in years) used for determining overnight capital costs from annualized investment costs. Note that for co-located VRE-STOR resources, this value pertains to the grid connection. |
+|Lifetime |Lifetime (in years) used for determining endogenous retirements of newly built capacity. Note that the same lifetime is used for each component of a co-located VRE-STOR resource. |
+|Min\_Retired\_Cap\_MW |Minimum required discharge capacity retirements in the current model period. This field can be used to enforce lifetime retirements of existing capacity. Note that for co-located VRE-STOR resources, this value pertains to the grid connection. |
+|Min\_Retired\_Energy\_Cap\_MW |Minimum required energy capacity retirements in the current model period. This field can be used to enforce lifetime retirements of existing energy capacity. Note that for co-located VRE-STOR resources, this value pertains to the storage component.|
+|Min\_Retired\_Charge\_Cap\_MW |Minimum required energy capacity retirements in the current model period. This field can be used to enforce lifetime retirements of existing charge capacity. |
+|**co-located VRE-STOR resources only**|
+|Capital\_Recovery\_Period_DC |Capital recovery period (in years) used for determining overnight capital costs from annualized investment costs for the inverter component. |
+|Capital\_Recovery\_Period_Solar |Capital recovery period (in years) used for determining overnight capital costs from annualized investment costs for the solar PV component. |
+|Capital\_Recovery\_Period_Wind |Capital recovery period (in years) used for determining overnight capital costs from annualized investment costs for the wind component. |
+|Capital\_Recovery\_Period_Discharge_DC |Capital recovery period (in years) used for determining overnight capital costs from annualized investment costs for the discharge DC component when `STOR_DC_DISCHARGE = 2 `. |
+|Capital\_Recovery\_Period_Charge_DC |Capital recovery period (in years) used for determining overnight capital costs from annualized investment costs for the charge DC component when `STOR_DC_CHARGE = 2 `. |
+|Capital\_Recovery\_Period_Discharge_AC |Capital recovery period (in years) used for determining overnight capital costs from annualized investment costs for the discharge AC component when `STOR_AC_DISCHARGE = 2 `. |
+|Capital\_Recovery\_Period_Charge_AC |Capital recovery period (in years) used for determining overnight capital costs from annualized investment costs for the charge AC component when `STOR_AC_CHARGE = 2 `. |
+|Min\_Retired\_Cap\_Inverter\_MW |Minimum required inverter capacity retirements in the current model period. This field can be used to enforce lifetime retirements of existing capacity.|
+|Min\_Retired\_Cap\_Solar\_MW |Minimum required solar capacity retirements in the current model period. This field can be used to enforce lifetime retirements of existing capacity.|
+|Min\_Retired\_Cap\_Wind\_MW |Minimum required wind capacity retirements in the current model period. This field can be used to enforce lifetime retirements of existing capacity.|
+|Min\_Retired\_Cap\_Discharge_DC\_MW |Minimum required discharge capacity retirements in the current model period for storage resources with `STOR_DC_DISCHARGE = 2`. This field can be used to enforce lifetime retirements of existing capacity.|
+|Min\_Retired\_Cap\_Charge_DC\_MW |Minimum required charge capacity retirements in the current model period for storage resources with `STOR_DC_CHARGE = 2`. This field can be used to enforce lifetime retirements of existing capacity.|
+|Min\_Retired\_Cap\_Discharge_AC\_MW |Minimum required discharge capacity retirements in the current model period for storage resources with `STOR_AC_DISCHARGE = 2`. This field can be used to enforce lifetime retirements of existing capacity.|
+|Min\_Retired\_Cap\_Charge_AC\_MW |Minimum required charge capacity retirements in the current model period for storage resources with `STOR_AC_CHARGE = 2`. This field can be used to enforce lifetime retirements of existing capacity.|
+| WACC\_DC | The line-specific weighted average cost of capital for the inverter component. |
+| WACC\_Solar | The line-specific weighted average cost of capital for the solar PV component. |
+| WACC\_Wind | The line-specific weighted average cost of capital for the wind component. |
+| WACC\_Discharge\_DC | The line-specific weighted average cost of capital for the discharging DC storage component with `STOR_DC_DISCHARGE = 2`. |
+| WACC\_Charge\_DC | The line-specific weighted average cost of capital for the charging DC storage component with `STOR_DC_CHARGE = 2`. |
+| WACC\_Discharge\_AC | The line-specific weighted average cost of capital for the discharging AC storage component with `STOR_AC_DISCHARGE = 2`. |
+| WACC\_Charge\_AC | The line-specific weighted average cost of capital for the charging AC storage component with `STOR_AC_CHARGE = 2`. |
+
+This file contains PiecewiseFuelUsage-related parameters required if any resources have nonzero PWFU fuel usage, heat rates, and load points.
+
+##### Table 17: Piecewise fuel usage parameters
+---
+|**Column Name** | **Description**|
+| :------------ | :-----------|
+|Resource| Resource name corresponding to a resource in one of the resource data files described above.|
+|PWFU\_Fuel\_Usage\_Zero\_Load\_MMBTU\_per\_h|The fuel usage (MMBTU/h) for the first PWFU segemnt (y-intercept) at zero load.|
+|PWFU\_Heat\_Rate\_MMBTU\_per\_MWh\_*i| The slope of fuel usage function of the segment i.|
+|PWFU\_Load\_Point\_MW\_*i| The end of segment i (MW).|
+
+#### 2.1.5 Generator\_variability.csv
+
+This file contains the time-series of capacity factors / availability of each resource included in the resource `.csv` file in the `Resources` folder for each time step (e.g. hour) modeled.
+
+• First column: The first column contains the time index of each row (starting in the second row) from 1 to N.
+
+• Second column onwards: Resources are listed from the second column onward with headers matching each resource name in the resource `.csv` file in the `Resources` folder in any order. The availability for each resource at each time step is defined as a fraction of installed capacity and should be between 0 and 1. Note that for this reason, resource names specified in the resource `.csv` file must be unique. Note that for Hydro reservoir resources (i.e. `Hydro.csv`), values in this file correspond to inflows (in MWhs) to the hydro reservoir as a fraction of installed power capacity, rather than hourly capacity factor. Note that for co-located VRE and storage resources, solar PV and wind resource profiles should not be located in this file but rather in separate variability files (these variabilities can be in the `Generators_variability.csv` if time domain reduction functionalities will be utilized because the time domain reduction functionalities will separate the files after the clustering is completed).
+
+|Self\_Disch |[0,1], The power loss of storage technologies per hour (fraction loss per hour)- only applies to storage techs. Note that for co-located VRE-STOR resources, this value applies to the storage component of each resource.|
+|Min\_Power |[0,1], The minimum generation level for a unit as a fraction of total capacity. This value cannot be higher than the smallest time-dependent CF value for a resource in `Generators_variability.csv`. Applies to thermal plants, and reservoir hydro resource (`HYDRO = 1`).|
+|Ramp\_Up\_Percentage |[0,1], Maximum increase in power output from between two periods (typically hours), reported as a fraction of nameplate capacity. Applies to thermal plants, and reservoir hydro resource (`HYDRO = 1`).|
+|Ramp\_Dn\_Percentage |[0,1], Maximum decrease in power output from between two periods (typically hours), reported as a fraction of nameplate capacity. Applies to thermal plants, and reservoir hydro resource (`HYDRO = 1`).|
+|Eff\_Up |[0,1], Efficiency of charging storage – applies to storage technologies (all STOR types except co-located storage resources).|
+|Eff\_Down |[0,1], Efficiency of discharging storage – applies to storage technologies (all STOR types except co-located storage resources). |
+
+|Min\_Duration |Specifies the minimum ratio of installed energy to discharged power capacity that can be installed. Applies to STOR types 1 and 2 (hours). Note that for co-located VRE-STOR resources, this value does not apply. |
+|Max\_Duration |Specifies the maximum ratio of installed energy to discharged power capacity that can be installed. Applies to STOR types 1 and 2 (hours). Note that for co-located VRE-STOR resources, this value does not apply. |
+|Max\_Flexible\_Demand\_Delay |Maximum number of hours that demand can be deferred or delayed. Applies to resources with FLEX type 1 (hours). |
+|Max\_Flexible\_Demand\_Advance |Maximum number of hours that demand can be scheduled in advance of the original schedule. Applies to resources with FLEX type 1 (hours). |
+|Flexible\_Demand\_Energy\_Eff |[0,1], Energy efficiency associated with time shifting demand. Represents energy losses due to time shifting (or 'snap back' effect of higher consumption due to delay in use) that may apply to some forms of flexible demand. Applies to resources with FLEX type 1 (hours). For example, one may need to pre-cool a building more than normal to advance demand. |
### 2.2 Optional inputs files
@@ -464,7 +754,7 @@ This file includes parameter inputs needed to model time-dependent procurement o
This file contains inputs specifying minimum energy share requirement policies, such as Renewable Portfolio Standard (RPS) or Clean Energy Standard (CES) policies. This file is needed if parameter EnergyShareRequirement has a non-zero value in the YAML file `genx_settings.yml`.
-Note: this file should use the same region name as specified in the `Generators_data.csv` file.
+Note: this file should use the same region name as specified in the the resource `.csv` file (inside the `Resource`).
###### Table 9: Structure of the Energy\_share\_requirement.csv file
---
@@ -497,7 +787,7 @@ This file contains inputs specifying CO2 emission limits policies (e.g. emission
This file contains the regional capacity reserve margin requirements. This file is needed if parameter CapacityReserveMargin has a non-zero value in the YAML file `genx_settings.yml`.
-Note: this file should use the same region name as specified in the `Generators_data.csv` file
+Note: this file should use the same region name as specified in the resource `.csv` file (inside the `Resource`).
###### Table 11: Structure of the Capacity\_reserve\_margin.csv file
---
@@ -552,7 +842,7 @@ This file contains the settings parameters required to run the Method of Morris
|Zone | Integer representing zone number where the resource is located. |
|Lower\_bound | Percentage lower deviation from the nominal value|
|Upper\_bound| Percentage upper deviation from the nominal value|
-|Parameter| Column from the `Generators_data.csv` file containing uncertain parameters|
+|Parameter| Column from the resource `.csv` file (inside the `Resource`) containing uncertain parameters|
|Group| Group the uncertain parameters that will be changed all at once while performing the sensitivity analysis. For example, if the fuel price of natural gas is uncertain, all generators consuming natural gas should be in the same group. Group name is user defined|
|p_steps| Number of steps between upper and lower bound|
|total\_num\_trajectory| Total number of trakectories through the design matrix|
@@ -569,146 +859,23 @@ Notes:
6. num\_trajectory should be approximately equal to the total number of uncertain parameters
7. len\_design_mat should be 1.5 to 2 times the total number of uncertain parameters
8. Higher number of num\_trajectory and len_design_mat would lead to higher accuracy
-9. Upper and lower bounds should be specified for all the resources included in the `Generators_data.csv` file. If a parameter related to a particular resource is not uncertain, specify upper bound = lower bound = 0.
+9. Upper and lower bounds should be specified for all the resources included in the resource `.csv` file (inside the `Resource`). If a parameter related to a particular resource is not uncertain, specify upper bound = lower bound = 0.
+
+
+
+
+
+
-#### 2.2.9 Vre\_and\_stor\_data.csv
-This file contains additional cost and performance parameters for specifically co-located VRE and storage resources included in the model formulation.
-Each co-located VRE and storage generator must be explicitly listed in the `Generators_data.csv` and have the matching unique **Resource** name and **R\_ID** in both the `Generators_data.csv` and the `Vre_and_stor_data.csv`.
-This file supplements the `Generators_data.csv` by specifically adding VRE-STOR data and flags that are unique to how this module functions.
-Some cost and performance parameters for each co-located resource will be read in from the `Generators_data.csv` (as indicated above in the explanation of inputs from `Generators_data.csv` and from Table 15) and the rest of the specific inputs will be noted here for each resource.
-Each co-located VRE and storage resource can be easily configured to contain either a co-located VRE-storage resource, standalone VRE resource (either wind, solar PV, or both), or standalone storage resource.
-###### Table 15: Additional & modified columns for co-located VRE-STOR resources in the Generators\_data.csv file (already noted above but explicitly defined here)
----
-|**Column Name** | **Description**|
-| :------------ | :-----------|
-|**Added Columns**|
-|VRE_STOR | {0, 1}, Flag to indicate membership in set of co-located variable renewable energy resources (onshore wind and utility-scale solar PV) and storage resources (either short- or long-duration energy storage with symmetric or asymmetric charging or discharging capabilities).|
-||VRE_STOR = 0: Not part of set (default) |
-||VRE_STOR = 1: Co-located VRE and storage (VRE-STOR) resources. |
-|**Modified Columns**|
-|Existing\_Cap\_MW |The existing capacity of a power plant in MW. Note that for co-located VRE-STOR resources, this capacity represents the existing AC grid connection capacity in MW. |
-|Existing\_Cap\_MWh |The existing capacity of storage in MWh where `VRE_STOR = 1`. Note that for co-located VRE-STOR resources, this capacity represents the existing capacity of storage in MWh. |
-|Max\_Cap\_MW |-1 (default) – no limit on maximum discharge capacity of the resource. If non-negative, represents maximum allowed discharge capacity (in MW) of the resource. Note that for co-located VRE-STOR resources, this capacity represents the maximum AC grid connection capacity in MW. |
-|Max\_Cap\_MWh |-1 (default) – no limit on maximum energy capacity of the resource. If non-negative, represents maximum allowed energy capacity (in MWh) of the resource with or `VRE_STOR = 1`. Note that for co-located VRE-STOR resources, this capacity represents the maximum capacity of storage in MWh. |
-|Min\_Cap\_MW |-1 (default) – no limit on minimum discharge capacity of the resource. If non-negative, represents minimum allowed discharge capacity (in MW) of the resource. Note that for co-located VRE-STOR resources, this capacity represents the minimum AC grid connection capacity in MW. |
-|Min\_Cap\_MWh| -1 (default) – no limit on minimum energy capacity of the resource. If non-negative, represents minimum allowed energy capacity (in MWh) of the resource with `STOR = 1` or `STOR = 2` or `VRE_STOR = 1`. Note that for co-located VRE-STOR resources, this capacity represents the minimum capacity of storage in MWh. |
-|Inv\_Cost\_per\_MWyr | Annualized capacity investment cost of a technology ($/MW/year). Note that for co-located VRE-STOR resources, this annualized capacity investment cost pertains to the grid connection.|
-|Inv\_Cost\_per\_MWhyr | Annualized investment cost of the energy capacity for a storage technology ($/MW/year), applicable to either `STOR = 1` or `STOR = 2`. Note that for co-located VRE-STOR resources, this annualized investment cost of the energy capacity pertains to the co-located storage resource.|
-|Fixed\_OM\_Cost\_per\_MWyr | Fixed operations and maintenance cost of a technology ($/MW/year). Note that for co-located VRE-STOR resources, this fixed operations and maintenance cost pertains to the grid connection.|
-|Fixed\_OM\_Cost\_per\_MWhyr | Fixed operations and maintenance cost of the energy component of a storage technology ($/MWh/year). Note that for co-located VRE-STOR resources, this fixed operations and maintenance cost of the energy component pertains to the co-located storage resource. |
-|Self\_Disch |[0,1], The power loss of storage technologies per hour (fraction loss per hour)- only applies to storage techs. Note that for co-located VRE-STOR resources, this value applies to the storage component of each resource.|
-|Reg\_Cost | **(If Reserves = 1)** Cost of providing regulation reserves ($/MW per time step/hour).|
-|Rsv\_Cost | **(If Reserves = 1)** Cost of providing upwards spinning or contingency reserves ($/MW per time step/hour).|
-|Reg\_Max | **(If Reserves = 1)** [0,1], Fraction of nameplate capacity that can committed to provided regulation reserves. .|
-|Rsv\_Max | **(If Reserves = 1)** [0,1], Fraction of nameplate capacity that can committed to provided upwards spinning or contingency reserves.|
-|Capital\_Recovery\_Period | **(If MultiStage == 1)** Capital recovery period (in years) used for determining overnight capital costs from annualized investment costs. Note that for co-located VRE-STOR resources, this value pertains to the grid connection (other capital recovery periods for different components of the resource can be found in the VRE-STOR dataframe). |
-|Lifetime | **(If MultiStage == 1)** Lifetime (in years) used for determining endogenous retirements of newly built capacity. Note that the same lifetime is used for each component of a co-located VRE-STOR resource. |
-|Min\_Retired\_Cap\_MW | **(If MultiStage == 1)** Minimum required discharge capacity retirements in the current model period. This field can be used to enforce lifetime retirements of existing capacity. Note that for co-located VRE-STOR resources, this value pertains to the grid connection (other minimum required discharge capacity retirements for different components of the resource can be found in the VRE-STOR dataframe). |
-|Min\_Retired\_Energy\_Cap\_MW | **(If MultiStage == 1)** Minimum required energy capacity retirements in the current model period. This field can be used to enforce lifetime retirements of existing energy capacity. Note that for co-located VRE-STOR resources, this value pertains to the storage component (other minimum required capacity retirements for different components of the resource can be found in the VRE-STOR dataframe).|
-|MinCapTag\_*| **(If MinCapReq = 1)** Eligibility of resources' grid connection to participate in Minimum Technology Carveout constraint. \* corresponds to the ith row of the file `Minimum_capacity_requirement.csv`. Note that this eligibility must only apply to the interconnection capacity for co-located VRE-STOR resources (policy inputs for solar PV, wind, or battery minimum capacities are read from the specific VRE-STOR dataframe).|
-|MaxCapTag\_*| **(If MaxCapReq = 1)** Eligibility of resources' grid connection to participate in Maximum Technology Carveout constraint. \* corresponds to the ith row of the file `Maximum_capacity_requirement.csv`. Note that this eligibility must only apply to the interconnection capacity for co-located VRE-STOR resources (policy inputs for solar PV, wind, or battery maxmum capacities are read from the specific VRE-STOR dataframe).|
-|**Columns that Must Be Set to Zero**|
-|Var\_OM\_Cost\_per\_MWhIn | Variable operations and maintenance cost of the charging aspect of a storage technology with `STOR = 2`, or variable operations and maintenance costs associated with flexible demand deferral with `FLEX = 1`. Otherwise 0 ($/MWh). Note that for co-located VRE-STOR resources, these costs must be 0 (specific variable operations and maintenance costs exist in VRE-STOR dataframe). |
-|ESR\_*| **(If EnergyShareRequirement > 0)** Flag to indicate which resources are considered for the Energy Share Requirement constraint. Note that this flag must be 0 for co-located VRE-STOR resources (policy inputs are read from the specific VRE-STOR dataframe).|
-|CapRes\_* | **(If CapacityReserveMargin > 0)** [0,1], Fraction of the resource capacity eligible for contributing to the capacity reserve margin constraint (e.g. derate factor). Note that this fraction must be 0 for co-located VRE-STOR resources (policy inputs are read from the specific VRE-STOR dataframe).|
-|LDS | {0, 1}, Flag to indicate the resources eligible for long duration storage constraints with inter period linkage (e.g., reservoir hydro, hydrogen storage). Note that for co-located VRE-STOR resources, this flag must be 0 (LDS_VRE_STOR flag exists in VRE-STOR dataframe). |
-||LDS = 0: Not part of set (default) |
-||LDS = 1: Long duration storage resources|
###### Table 16: Mandatory columns in the Vre\_and\_stor\_data.csv file
----
-|**Column Name** | **Description**|
-| :------------ | :-----------|
-|Resource | This column contains **unique** names of the co-located VRE and storage resources available to the model and must match the `Generators_data.csv`. |
-|Zone | Integer representing zone number where the resource is located. |
-|R\_ID | Each resource receives a **unique** number ID, which is explicitly defined in the `Generators_data.csv` or implicitly defined in the GenX model after all of the data has been loaded. The R\_ID of each co-located resource must match the R\_ID either explicitly or implicitly defined in the `Generators_data.csv`.|
-|**Technology type flags**|
-|SOLAR | {0, 1}, Flag to indicate membership in the set of co-located VRE-storage resources with a solar PV component.|
-||SOLAR = 0: Not part of set (default) |
-||SOLAR = 1: If the co-located VRE-storage resource can produce solar PV energy. ||
-|WIND | {0, 1}, Flag to indicate membership in the set of co-located VRE-storage resources with a wind component.|
-||WIND = 0: Not part of set (default) |
-||WIND = 1: If the co-located VRE-storage resource can produce wind energy. ||
-|STOR_DC_DISCHARGE | {0, 1, 2}, Flag to indicate membership in set of co-located VRE-storage resources that discharge behind the meter and through the inverter (DC).|
-||STOR_DC_DISCHARGE = 0: Not part of set (default) |
-||STOR_DC_DISCHARGE = 1: If the co-located VRE-storage resource contains symmetric charge/discharge power capacity with charging capacity equal to discharging capacity (e.g. lithium-ion battery storage). Note that if STOR_DC_DISCHARGE = 1, STOR_DC_CHARGE = 1.|
-||STOR_DC_DISCHARGE = 2: If the co-located VRE-storage resource has asymmetric discharge capacities using distinct processes (e.g. hydrogen electrolysis, storage, and conversion to power using fuel cell or combustion turbine).|
-|STOR_DC_CHARGE | {0, 1, 2}, Flag to indicate membership in set of co-located VRE-storage resources that charge through the inverter (DC).|
-||STOR_DC_CHARGE = 0: Not part of set (default) |
-||STOR_DC_CHARGE = 1: If the co-located VRE-storage resource contains symmetric charge/discharge power capacity with charging capacity equal to discharging capacity (e.g. lithium-ion battery storage). Note that if STOR_DC_CHARGE = 1, STOR_DC_DISCHARGE = 1.|
-||STOR_DC_CHARGE = 2: If the co-located VRE-storage resource has asymmetric charge capacities using distinct processes (e.g. hydrogen electrolysis, storage, and conversion to power using fuel cell or combustion turbine).|
-|STOR_AC_DISCHARGE | {0, 1, 2}, Flag to indicate membership in set of co-located VRE-storage resources that discharges AC.|
-||STOR_AC_DISCHARGE = 0: Not part of set (default) |
-||STOR_AC_DISCHARGE = 1: If the co-located VRE-storage resource contains symmetric charge/discharge power capacity with charging capacity equal to discharging capacity (e.g. lithium-ion battery storage). Note that if STOR_AC_DISCHARGE = 1, STOR_AC_CHARGE = 1.|
-||STOR_AC_DISCHARGE = 2: If the co-located VRE-storage resource has asymmetric discharge capacities using distinct processes (e.g. hydrogen electrolysis, storage, and conversion to power using fuel cell or combustion turbine).|
-|STOR_AC_CHARGE | {0, 1, 2}, Flag to indicate membership in set of co-located VRE-storage resources that charge AC.|
-||STOR_AC_CHARGE = 0: Not part of set (default) |
-||STOR_AC_CHARGE = 1: If the co-located VRE-storage resource contains symmetric charge/discharge power capacity with charging capacity equal to discharging capacity (e.g. lithium-ion battery storage). Note that if STOR_AC_CHARGE = 1, STOR_AC_DISCHARGE = 1.|
-||STOR_AC_CHARGE = 2: If the co-located VRE-storage resource has asymmetric charge capacities using distinct processes (e.g. hydrogen electrolysis, storage, and conversion to power using fuel cell or combustion turbine).|
-|LDS_VRE_STOR | {0, 1}, Flag to indicate the co-located VRE-storage resources eligible for long duration storage constraints with inter period linkage (e.g., reservoir hydro, hydrogen storage). |
-||LDS_VRE_STOR = 0: Not part of set (default) |
-||LDS_VRE_STOR = 1: Long duration storage resources|
-|**Existing technology capacity**|
-|Existing\_Cap\_Inverter\_MW |The existing capacity of co-located VRE-STOR resource's inverter in MW (AC). |
-|Existing\_Cap\_Solar\_MW |The existing capacity of co-located VRE-STOR resource's solar PV in MW (DC). |
-|Existing\_Cap\_Wind\_MW |The existing capacity of co-located VRE-STOR resource's wind in MW (AC). |
-|Existing\_Cap\_Discharge\_DC\_MW |The existing discharge capacity of co-located VRE-STOR resource's storage component in MW (DC). Note that this only applies to resources where `STOR_DC_DISCHARGE = 2`. |
-|Existing\_Cap\_Charge\_DC\_MW |The existing charge capacity of co-located VRE-STOR resource's storage component in MW (DC). Note that this only applies to resources where `STOR_DC_CHARGE = 2`. |
-|Existing\_Cap\_Discharge\_AC\_MW |The existing discharge capacity of co-located VRE-STOR resource's storage component in MW (AC). Note that this only applies to resources where `STOR_AC_DISCHARGE = 2`. |
-|Existing\_Cap\_Charge\_AC\_MW |The existing charge capacity of co-located VRE-STOR resource's storage component in MW (AC). Note that this only applies to resources where `STOR_DC_CHARGE = 2`. |
-|**Capacity/Energy requirements**|
-|Max\_Cap\_Inverter\_MW |-1 (default) – no limit on maximum inverter capacity of the resource. If non-negative, represents maximum allowed inverter capacity (in MW AC) of the resource. |
-|Max\_Cap\_Solar\_MW |-1 (default) – no limit on maximum solar PV capacity of the resource. If non-negative, represents maximum allowed solar PV capacity (in MW DC) of the resource. |
-|Max\_Cap\_Wind\_MW |-1 (default) – no limit on maximum wind capacity of the resource. If non-negative, represents maximum allowed wind capacity (in MW AC) of the resource. |
-|Max\_Cap\_Discharge\_DC\_MW |-1 (default) – no limit on maximum DC discharge capacity of the resource. If non-negative, represents maximum allowed DC discharge capacity (in MW DC) of the resource with `STOR_DC_DISCHARGE = 2`.|
-|Max\_Cap\_Charge\_DC\_MW |-1 (default) – no limit on maximum DC charge capacity of the resource. If non-negative, represents maximum allowed DC charge capacity (in MW DC) of the resource with `STOR_DC_CHARGE = 2`.|
-|Max\_Cap\_Discharge\_AC\_MW |-1 (default) – no limit on maximum AC discharge capacity of the resource. If non-negative, represents maximum allowed AC discharge capacity (in MW AC) of the resource with `STOR_AC_DISCHARGE = 2`.|
-|Max\_Cap\_Charge\_AC\_MW |-1 (default) – no limit on maximum AC charge capacity of the resource. If non-negative, represents maximum allowed AC charge capacity (in MW AC) of the resource with `STOR_AC_CHARGE = 2`.|
-|Min\_Cap\_Inverter\_MW |-1 (default) – no limit on minimum inverter capacity of the resource. If non-negative, represents minimum allowed inverter capacity (in MW AC) of the resource. |
-|Min\_Cap\_Solar\_MW |-1 (default) – no limit on minimum solar PV capacity of the resource. If non-negative, represents minimum allowed solar PV capacity (in MW DC) of the resource. |
-|Min\_Cap\_Wind\_MW |-1 (default) – no limit on minimum wind capacity of the resource. If non-negative, represents minimum allowed wind capacity (in MW AC) of the resource. |
-|Min\_Cap\_Discharge\_DC\_MW |-1 (default) – no limit on minimum DC discharge capacity of the resource. If non-negative, represents minimum allowed DC discharge capacity (in MW DC) of the resource with `STOR_DC_DISCHARGE = 2`.|
-|Min\_Cap\_Charge\_DC\_MW |-1 (default) – no limit on minimum DC charge capacity of the resource. If non-negative, represents minimum allowed DC charge capacity (in MW DC) of the resource with `STOR_DC_CHARGE = 2`.|
-|Min\_Cap\_Discharge\_AC\_MW |-1 (default) – no limit on minimum AC discharge capacity of the resource. If non-negative, represents minimum allowed AC discharge capacity (in MW AC) of the resource with `STOR_AC_DISCHARGE = 2`.|
-|Min\_Cap\_Charge\_AC\_MW |-1 (default) – no limit on minimum AC charge capacity of the resource. If non-negative, represents minimum allowed AC charge capacity (in MW AC) of the resource with `STOR_AC_CHARGE = 2`.|
-|**Cost parameters**|
-|Inv\_Cost\_Inverter\_per\_MWyr | Annualized capacity investment cost of the inverter component ($/MW-AC/year). |
-|Inv\_Cost\_Solar\_per\_MWyr | Annualized capacity investment cost of the solar PV component ($/MW-DC/year). |
-|Inv\_Cost\_Wind\_per\_MWyr | Annualized capacity investment cost of the wind component ($/MW-AC/year). |
-|Inv\_Cost\_Discharge\_DC\_per\_MWyr | Annualized capacity investment cost for the discharging portion of a storage technology with `STOR_DC_DISCHARGE = 2` ($/MW-DC/year). |
-|Inv\_Cost\_Charge\_DC\_per\_MWyr | Annualized capacity investment cost for the charging portion of a storage technology with `STOR_DC_CHARGE = 2` ($/MW-DC/year). |
-|Inv\_Cost\_Discharge\_AC\_per\_MWyr | Annualized capacity investment cost for the discharging portion of a storage technology with `STOR_AC_DISCHARGE = 2` ($/MW-AC/year). |
-|Inv\_Cost\_Charge\_AC\_per\_MWyr | Annualized capacity investment cost for the charging portion of a storage technology with `STOR_AC_CHARGE = 2` ($/MW-AC/year). |
-|Fixed\_OM\_Inverter\_Cost\_per\_MWyr | Fixed operations and maintenance cost of the inverter component ($/MW-AC/year).|
-|Fixed\_OM\_Solar\_Cost\_per\_MWyr | Fixed operations and maintenance cost of the solar PV component ($/MW-DC/year).|
-|Fixed\_OM\_Wind\_Cost\_per\_MWyr | Fixed operations and maintenance cost of the wind component ($/MW-AC/year).|
-|Fixed\_OM\_Cost\_Discharge\_DC\_per\_MWyr | Fixed operations and maintenance cost of the discharging component of a storage technology with `STOR_DC_DISCHARGE = 2` ($/MW-DC/year).|
-|Fixed\_OM\_Cost\_Charge\_DC\_per\_MWyr | Fixed operations and maintenance cost of the charging component of a storage technology with `STOR_DC_CHARGE = 2` ($/MW-DC/year).|
-|Fixed\_OM\_Cost\_Discharge\_AC\_per\_MWyr | Fixed operations and maintenance cost of the discharging component of a storage technology with `STOR_AC_DISCHARGE = 2` ($/MW-AC/year).|
-|Fixed\_OM\_Cost\_Charge\_AC\_per\_MWyr | Fixed operations and maintenance cost of the charging component of a storage technology with `STOR_AC_CHARGE = 2` ($/MW-AC/year).|
-|Var\_OM\_Cost\_per\_MWh\_Solar | Variable operations and maintenance cost of the solar PV component (multiplied by the inverter efficiency for AC terms) ($/MWh). |
-|Var\_OM\_Cost\_per\_MWh\_Wind | Variable operations and maintenance cost of the wind component ($/MWh). |
-|Var\_OM\_Cost\_per\_MWh\_Discharge_DC | Variable operations and maintenance cost of the discharging component of a storage technology with `STOR_DC_DISCHARGE = 2` (multiplied by the inverter efficiency for AC terms) ($/MWh). |
-|Var\_OM\_Cost\_per\_MWh\_Charge_DC | Variable operations and maintenance cost of the charging component of a storage technology with `STOR_DC_CHARGE = 2` (divided by the inverter efficiency for AC terms) ($/MWh). |
-|Var\_OM\_Cost\_per\_MWh\_Discharge_AC | Variable operations and maintenance cost of the discharging component of a storage technology with `STOR_AC_DISCHARGE = 2` ($/MWh). |
-|Var\_OM\_Cost\_per\_MWh\_Charge_AC | Variable operations and maintenance cost of the charging component of a storage technology with `STOR_AC_CHARGE = 2` ($/MWh). |
-|**Technical performance parameters**|
-|EtaInverter |[0,1], Inverter efficiency representing losses from converting DC to AC power and vice versa for each technology |
-|Inverter_Ratio_Solar |-1 (default) - no required ratio between solar PV capacity built to inverter capacity built. If non-negative, represents the ratio of solar PV capacity built to inverter capacity built.|
-|Inverter_Ratio_Wind |-1 (default) - no required ratio between wind capacity built to grid connection capacity built. If non-negative, represents the ratio of wind capacity built to grid connection capacity built.|
-|Power\_to\_Energy\_AC |The power to energy conversion for the storage component for AC discharging/charging of symmetric storage resources.|
-|Power\_to\_Energy\_DC |The power to energy conversion for the storage component for DC discharging/charging of symmetric storage resources.|
-|Eff\_Up\_DC |[0,1], Efficiency of DC charging storage – applies to storage technologies (all STOR types). |
-|Eff\_Down\_DC |[0,1], Efficiency of DC discharging storage – applies to storage technologies (all STOR types). |
-|Eff\_Up\_AC |[0,1], Efficiency of AC charging storage – applies to storage technologies (all STOR types). |
-|Eff\_Down\_AC |[0,1], Efficiency of AC discharging storage – applies to storage technologies (all STOR types). |
-|**Required for writing outputs**|
-|region | Name of the model region|
-|cluster | Number of the cluster when representing multiple clusters of a given technology in a given region. |
-|technology | Non-unique name of resource (e.g. solar PV, wind) to classify each resource for post-processing purposes. |
+
+
+
+
|**MultiStage == 1**|
|Capital\_Recovery\_Period_DC |Capital recovery period (in years) used for determining overnight capital costs from annualized investment costs for the inverter component. |
|Capital\_Recovery\_Period_Solar |Capital recovery period (in years) used for determining overnight capital costs from annualized investment costs for the solar PV component. |
@@ -757,7 +924,7 @@ This file contains the time-series of capacity factors / availability of the sol
• first column: The first column contains the time index of each row (starting in the second row) from 1 to N.
-• Second column onwards: Resources are listed from the second column onward with headers matching each resource name in the `Generators_data.csv` and `Vre_and_stor_data.csv` files in any order. The availability for each resource at each time step is defined as a fraction of installed capacity and should be between 0 and 1. Note that for this reason, resource names specified in `Generators_data.csv` and `Vre_and_stor_data.csv` must be unique.
+• Second column onwards: Resources are listed from the second column onward with headers matching each resource name in the `Vre_stor.csv` files in any order. The availability for each resource at each time step is defined as a fraction of installed capacity and should be between 0 and 1. Note that for this reason, resource names specified in all the resource `.csv` files must be unique.
#### 2.2.11 Vre\_and\_stor\_wind\_variability.csv
@@ -765,7 +932,7 @@ This file contains the time-series of capacity factors / availability of the win
• First column: The first column contains the time index of each row (starting in the second row) from 1 to N.
-• Second column onwards: Resources are listed from the second column onward with headers matching each resource name in the `Generators_data.csv` and `Vre_and_stor_data.csv` files in any order. The availability for each resource at each time step is defined as a fraction of installed capacity and should be between 0 and 1. Note that for this reason, resource names specified in `Generators_data.csv` and `Vre_and_stor_data.csv` must be unique.
+• Second column onwards: Resources are listed from the second column onward with headers matching each resource name in the `Vre_stor.csv` files in any order. The availability for each resource at each time step is defined as a fraction of installed capacity and should be between 0 and 1. Note that for this reason, resource names specified in all the resource `.csv` files must be unique.
## 3 Outputs
diff --git a/docs/src/developer_guide.md b/docs/src/developer_guide.md
new file mode 100644
index 0000000000..4472f9d0cf
--- /dev/null
+++ b/docs/src/developer_guide.md
@@ -0,0 +1,347 @@
+# How to contribute to GenX
+
+## Introduction
+
+GenX is an open-source project, and we welcome contributions from the community. This guide aims to help you get started with GenX and explain how to contribute to the project. In general, the two main ways to contribute to GenX are:
+
+1. Use of [GitHub issues](https://docs.github.com/en/issues/tracking-your-work-with-issues/creating-an-issue) to report bugs and request new features
+2. Use of [GitHub pull requests (PR)](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) to submit code changes
+
+!!! tip
+ We encourage every contributors to read this [guide](https://github.com/SciML/ColPrac), which contains some guidelines on how to contribute to a collaborative project like GenX.
+
+The following sections describe in more detail how to work with GenX resources and how to add a new resource to GenX.
+
+## GenX resources
+
+In GenX, a resource is defined as an instance of a `GenX resource type`, a subtype of an `AbstractResource`. This allows the code to use multiple dispatch and define a common interface (behavior) for all resources in the code.
+Type hierarchy of GenX resources:
+
+![Type hierarchy of GenX resources](./assets/type_hierarchy.png)
+
+!!! note
+ All the interface and utility functions available for resources are defined in the [resources.jl](https://github.com/GenXProject/GenX/blob/develop/src/model/resources/resources.jl) file.
+
+The set of all the resource types available in GenX are contained in the `resource_types` `Tuple` defined at the of the `resources.jl` file. During the initialization process, GenX reads the input data files and creates a new instance of the corresponding resource type for each row in the file.
+
+### Resource design principles
+
+Resources in GenX are constructed from a set of input files (in `.csv` format, one for each type of resource) located in the `Resources` folder inside the `case` folder. Each row in one of these files defines a new resource instance, and each column corresponds to an attribute of that resource type.
+
+!!! warning
+ The first column of each input data file should be called `Resource` and contain a unique identifier for each resource.
+
+For example, in the case below, the files `Hydro.csv`, `Thermal.csv`, `Vre.csv`, and `Storage.csv` contain the resource data for the hydro, thermal, VRE, and storage resources, respectively. These files are read by GenX during the initialization process and used to create the corresponding resource instances.
+
+```
+case_folder
+ ├── Resources
+ │ ├── Hydro.csv
+ │ ├── Thermal.csv
+ │ ├── Vre.csv
+ │ └── Storage.csv
+ ├── Generators_variability.csv
+ //
+ ├── Setting
+ │ └── genx_settings.yml
+ └── Run.jl
+```
+
+When loading the file `Thermal.csv` below, GenX will create three new resources of type `Thermal` and assign the values of the attributes of each resource from the columns in the input data file:
+
+```
+Thermal.csv
+
+ resource │ zone │ existing_cap_mw │ inv_cost_per_mwyr │ heat_rate_mmbtu_per_mwh │
+ String │ Int64 │ Float64 │ Float64 │ Float64 │
+────────────────────-┼───────┼─────────────────┼───────────────────┼─────────────────────────│
+ NG_combined_cycle_1 │ 1 │ 100.0 │ 239841 │ 7.89 │
+ NG_combined_cycle_2 │ 2 │ 200.0 │ 0.0 │ 8.29 │
+ Biomass │ 3 │ 200.0 │ 81998 │ 9.9 │
+```
+These three resources, together with all the other resources in the data files, will be stored in the GenX `inputs` dictionary with the key `RESOURCES`.
+
+```julia
+julia> gen = inputs["RESOURCES"]
+julia> length(gen) # returns the number of resources in the model
+julia> thermal(gen) # returns the indices of all thermal resources (Vector{Int64})
+julia> gen.Thermal # returns the thermal resources (Vector{Thermal})
+julia> gen.Thermal == gen[thermal(gen)] # returns true
+```
+
+### Working with GenX resources
+To access the attributes of each resource, you can either use a function interface or the standard `.` notation.
+
+For example, let's assume that `thermal_gen` is the vector of the three `Thermal` resources created from the input data file `Thermal.csv` shown above.
+
+!!! note
+ In the example below, we create the vector `thermal_gen` manually. However, in practice, this vector is automatically created by GenX when loading the input data file `Thermal.csv`.
+
+```@meta
+DocTestSetup = quote
+ using GenX: Thermal, resource_name, existing_cap_mw, inv_cost_per_mwyr, ids_with, ids_with_positive, ids_with_nonneg, ids_with_policy, resource_id, esr, has
+end
+```
+
+```jldoctest example_thermal
+julia> thermal_gen = [Thermal(Dict(:resource => "NG_combined_cycle_1",
+ :existing_cap_mw => 100.0,
+ :inv_cost_per_mwyr => 239841,
+ :heat_rate_mmbtu_per_mwh => 7.89,
+ :id => 23,
+ :max_cap_mw => 100.0,
+ :esr_1 => 1,)),
+ Thermal(Dict(:resource => "NG_combined_cycle_2",
+ :existing_cap_mw => 200.0,
+ :inv_cost_per_mwyr => 0.0,
+ :heat_rate_mmbtu_per_mwh => 8.29,
+ :max_cap_mw => 0,
+ :id => 24)),
+ Thermal(Dict(:resource => "Biomass",
+ :existing_cap_mw => 200.0,
+ :inv_cost_per_mwyr => 81998,
+ :heat_rate_mmbtu_per_mwh => 9.9,
+ :max_cap_mw => 0,
+ :lds => 1,
+ :new_build => 1,
+ :id => 25))];
+```
+
+To access the attributes of the resources in `thermal_gen`, you can either use the function interfaces defined in `resources.jl` (recommended), or you can use the standard `.` notation:
+
+```jldoctest example_thermal
+julia> resource_name(thermal_gen[1])
+"NG_combined_cycle_1"
+julia> resource_name.(thermal_gen)
+3-element Vector{String}:
+ "NG_combined_cycle_1"
+ "NG_combined_cycle_2"
+ "Biomass"
+julia> existing_cap_mw(thermal_gen[1])
+100.0
+julia> existing_cap_mw.(thermal_gen)
+3-element Vector{Float64}:
+ 100.0
+ 200.0
+ 200.0
+julia> thermal_gen[1].existing_cap_mw
+100.0
+```
+
+Moreover, inside the `resources.jl` file, there is a set of utility functions to work with all the resources and that can be used as building blocks to create more complex functions:
+
+- [`Base.get(r::AbstractResource, sym::Symbol, default)`](@ref): Returns the value of the attribute `sym` of the resource `r`. If the attribute is not defined for the resource, it returns the `default` value of that attribute.
+
+Example:
+```jldoctest example_thermal
+julia> get(thermal_gen[1], :existing_cap_mw, 0)
+100.0
+julia> get(thermal_gen[1], :new_build, 0)
+0
+```
+
+- [`GenX.haskey(r::AbstractResource, sym::Symbol)`](@ref): Returns `true` if the resource `r` has the attribute `sym`, and `false` otherwise.
+
+Example:
+```jldoctest example_thermal
+julia> haskey(thermal_gen[1], :existing_cap_mw)
+true
+julia> haskey(thermal_gen[1], :new_build)
+false
+```
+
+- [`Base.findall(f::Function, rs::Vector{<:AbstractResource})`](@ref): Returns the indices of the resources in `rs` for which the function `f` returns `true`.
+
+Example:
+```jldoctest example_thermal
+julia> findall(r -> isa(r,Thermal), thermal_gen) # returns the indices of the thermal resources in thermal_gen
+3-element Vector{Int64}:
+ 23
+ 24
+ 25
+julia> findall(r -> get(r, :lds, 0) > 0, thermal_gen) # returns the indices of the resources in thermal_gen that have a Long Duration Storage (lds) attribute greater than 0
+1-element Vector{Int64}:
+ 25
+julia> findall(r -> get(r, :new_build, 0) == 1, thermal_gen) # returns the indices of the resources in thermal_gen that are buildable (new_build = 1)
+1-element Vector{Int64}:
+ 25
+```
+- [`GenX.ids_with(rs::Vector{T}, f::Function, default=default_zero) where T <: AbstractResource`](@ref): Returns the indices of the resources in the vector `rs` for which the function `f` is different from `default`.
+
+Example:
+```jldoctest example_thermal
+julia> ids_with(thermal_gen, inv_cost_per_mwyr)
+2-element Vector{Int64}:
+ 23
+ 25
+```
+A similar function works with `Symbol`s and `String`s instead of getter functions:
+```jldoctest example_thermal
+julia> ids_with(thermal_gen, :inv_cost_per_mwyr)
+2-element Vector{Int64}:
+ 23
+ 25
+```
+
+- [`GenX.ids_with_policy(rs::Vector{T}, name::Symbol; tag::Int64) where T <: AbstractResource`](@ref): Returns the indices of the resources in the vector `rs` that have a policy with the name `name` and the tag `tag`.
+
+Example:
+```jldoctest example_thermal
+julia> ids_with_policy(thermal_gen, esr, tag=1)
+1-element Vector{Int64}:
+ 23
+```
+
+- [`GenX.ids_with_positive(rs::Vector{T}, f::Function) where T <: AbstractResource`](@ref): Returns the indices of the resources in the vector `rs` for which the getter function `f` returns a positive value.
+
+Example:
+```jldoctest example_thermal
+julia> ids_with_positive(thermal_gen, inv_cost_per_mwyr)
+2-element Vector{Int64}:
+ 23
+ 25
+```
+A similar function works with `Symbol`s and `String`s instead of getter functions:
+```jldoctest example_thermal
+julia> ids_with_positive(thermal_gen, :inv_cost_per_mwyr)
+2-element Vector{Int64}:
+ 23
+ 25
+```
+
+- [`GenX.ids_with_nonneg(rs::Vector{T}, f::Function) where T <: AbstractResource`](@ref): Returns the indices of the resources in `rs` for which the getter function `f` returns a non-negative value.
+
+Other useful functions available in GenX are:
+- [`GenX.resource_id(r::AbstractResource)`](@ref): Returns the `id` of the resource `r`.
+Example:
+```jldoctest example_thermal
+julia> resource_id(thermal_gen[1])
+23
+julia> resource_id.(thermal_gen)
+3-element Vector{Int64}:
+ 23
+ 24
+ 25
+```
+- [`GenX.resource_name(r::AbstractResource)`](@ref): Returns the `name` of the resource `r`.
+Example:
+```jldoctest example_thermal
+julia> resource_name(thermal_gen[1])
+"NG_combined_cycle_1"
+julia> resource_name.(thermal_gen)
+3-element Vector{String}:
+ "NG_combined_cycle_1"
+ "NG_combined_cycle_2"
+ "Biomass"
+```
+
+
+## How to add a new resource to GenX
+### Overview
+GenX is designed to be modular and highly flexible to comply with the rapidly changing electricity landscape. For this reason, adding a new resource to GenX is relatively straightforward. This guide will walk you through the steps to do it.
+
+!!! tip
+ Before you start, ensure you have read the section of the documentation about [2.1.4 Resources input files](@ref). This will help you understand the data format that GenX expects for each resource and where to place the input data files.
+
+
+### Step 1: Define the new resource data type
+The first step to add a new resource to GenX is to create a new GenX resource type. This is done by adding a new element to the `resource_types` list of symbols defined at the top of the [resources.jl](https://github.com/GenXProject/GenX/blob/develop/src/model/resources/resources.jl) file. This list contains the names of all the resource types available in GenX.
+
+For example, to add a new resource type called `new_resource`, you would need to add a new `Symbol`, `:NewResource` to the `resource_types` list:
+```julia
+const resource_types = (:Thermal,
+ :Vre,
+ :Hydro,
+ :Storage,
+ :MustRun,
+ :FlexDemand,
+ :VreStorage,
+ :Electrolyzer,
+ :NewResource)
+```
+We encourage you to use `CamelCase` for the name of the new resource type.
+
+The lines right after the `resource_types` list automatically create a new `struct` (composite type) for the new resource type. More importantly, the new resource type will be defined as a subtype of the GenX `AbstractResource` type. This is important because it allows the code to use multiple dispach and define a common interface (behavior) for all resources in GenX. For instance, the `resource_id()` function will return the `id` of any resource in GenX, regardless of its type (and therefore will automatically work for the newly created `new_resource`).
+
+### Step 2: Add the filename of the new resource type to GenX
+
+In GenX, the attributes of a resource are automatically defined from the columns of the corresponding input data file (e.g., `Thermal.csv` file for the `Thermal` resources, `Hydro.csv` file for the `Hydro` resource, etc). The first column of these files should be called `Resource` and contain a unique identifier for each resource. The rest of the columns in the input data file will be used to define the attributes of the new resource type.
+
+So, the second step to add a new resource type to GenX is to add the filename of the input data file to GenX. The list of input data files that GenX loads during the initialization process are defined at the top of the [`load_resource_data.jl`](https://github.com/GenXProject/GenX/tree/main/src/load_inputs/load_resources_data.jl)
+file, inside an internal function called `_get_resource_info()`. This function returns a `NamedTuple` called `resource_info` with the name of the input data file and the name of the resource type for each resource that is available in GenX.
+
+To add the new resource type to GenX, add a new item to `resource_info`, where the first field is the name of the input data file and the second is the name of the resource type that was created in Step 1. The names in `resource_info` are only used to make the code more readable and are arbitrary.
+
+For example, if you are adding a new resource type called `new_resource`, you would need to add the following line to the `resource_info`: `new_resource = (filename="New_resource.csv", type=NewResource)`, as follows:
+
+```julia
+function _get_resource_info()
+ resource_info = (
+ hydro = (filename="Hydro.csv", type=Hydro),
+ thermal = (filename="Thermal.csv", type=Thermal),
+ vre = (filename="Vre.csv", type=Vre),
+ storage = (filename="Storage.csv", type=Storage),
+ flex_demand = (filename="Flex_demand.csv", type=FlexDemand),
+ must_run = (filename="Must_run.csv", type=MustRun),
+ electrolyzer = (filename="Electrolyzer.csv", type=Electrolyzer),
+ vre_stor = (filename="Vre_stor.csv", type=VreStorage)
+ new_resource = (filename="New_resource.csv", type=NewResource)
+ )
+ return resource_info
+end
+```
+With this simple edit, whenever the file `New_resource.csv` is found in the input data folder, GenX will automatically perform the following steps:
+
+1. Load the new resource input file,
+2. Create a new instance of the `NewResource` type for each row in the input data file,
+3. Define the attributes of each `NewResource` from the columns in the input data file,
+4. Populate the attributes of each `NewResource` with the values read from the input data file.
+5. Add the new resources to the vector of resources in the model.
+
+For example, if the input data file `New_resource.csv` contains the following data:
+```
+New_resource.csv
+
+ Resource │ Zone | Exisiting_capacity | attribute_1 | attribute_2
+ String │ Int64 | Float64 | Float64 | Float64
+──────────┼───────┼────────────────────┼─────────────┼────────────
+ new_res1 │ 1 │ 100.0 │ 6.2 │ 0.4
+ new_res2 │ 1 │ 200.0 │ 0.1 │ 4.0
+ new_res3 │ 2 │ 300.0 │ 2.0 │ 0.1
+```
+GenX will create three new resources of type `NewResource` with the following attributes:
+- `resource`: `String` with the name of the resource (e.g., `new_res1`, `new_res2`, `new_res3`)
+- `zone`: `Int64` with the zone of the resource (e.g., `1`, `1`, `2`)
+- `existing_capacity`: `Float64` with the existing capacity of the resource (e.g., `100.0`, `200.0`, `300.0`)
+- `attribute_1`: `Float64` with the value of `attribute_1` (e.g., `6.2`, `0.1`, `2.0`)
+- `attribute_2`: `Float64` with the value of `attribute_2` (e.g., `0.4`, `4.0`, `0.1`)
+
+
+See Step 3 for more details on how to work with the new resource type.
+
+!!! warning
+ Each resource type must contain a `Resource` attribute. This attribute should be `String` that uniquely identifies the resource.
+
+### Step 3: Work with the new resource type
+Once the new resource type has been defined and added to GenX, you can work with it as you would with any other resource type. To improve the robustness and readability of the code, we recommend that you define getter functions for the new attributes of the new resource type (e.g., a function `zone(r) = r.zone` to get the zone of the resource `r`). These functions can be defined in the `resources.jl` file. However, this is not strictly necessary, and you can access the attributes of the new resource type directly using the standard `.` notation:
+
+!!! tip
+ To simplify the creation of getter functions for the new resource type, you can use the `@interface` macro available in GenX. This macro automatically creates a new function with the same name as the attribute and which returns the value of the attribute. For example, if you want to create a getter function for the `attribute_1` of the `NewResource` type, these two ways are equivalent:
+ ```julia
+ julia> default_attribute_1 = 0.0 # default value for attribute_1
+ julia> attribute_1(res::NewResource) = get(res, :attribute_1, default_attribute_1)
+ attribute_1 (generic function with 1 method)
+ julia> @interface(attribute_1, 0.0, NewResource)
+ attribute_1 (generic function with 1 method)
+ ```
+ And then:
+ ```julia
+ julia> attribute_1(new_res1)
+ 6.2
+ julia> new_res1.attribute_1
+ 6.2
+ ```
+
+```@meta
+DocTestSetup = nothing
+```
\ No newline at end of file
diff --git a/docs/src/how_to_run_genx.md b/docs/src/how_to_run_genx.md
index 8090347df1..c27640509f 100644
--- a/docs/src/how_to_run_genx.md
+++ b/docs/src/how_to_run_genx.md
@@ -110,8 +110,8 @@ Note that if you have not already installed the required Julia packages or you d
## Running Modeling to Generate Alternatives with GenX
GenX includes a modeling to generate alternatives (MGA) package that can be used to automatically enumerate a diverse set of near cost-optimal solutions to electricity system planning problems. To use the MGA algorithm, user will need to perform the following tasks:
-1. Add a `Resource_Type` column in the `Generators_data.csv` file denoting the type of each technology.
-2. Add a `MGA` column in the `Generators_data.csv` file denoting the availability of the technology.
+1. Add a `Resource_Type` column in all the resource `.csv` files denoting the type of each technology.
+2. Add a `MGA` column in all the resource `.csv` files denoting the availability of the technology.
3. Set the `ModelingToGenerateAlternatives` flag in the `GenX_Settings.yml` file to 1.
4. Set the `ModelingtoGenerateAlternativeSlack` flag in the `GenX_Settings.yml` file to the desirable level of slack.
5. Create a `Rand_mga_objective_coefficients.csv` file to provide random objective function coefficients for each MGA iteration.
diff --git a/docs/src/load_inputs.md b/docs/src/load_inputs.md
index 4ea973e2f9..a028ecf216 100644
--- a/docs/src/load_inputs.md
+++ b/docs/src/load_inputs.md
@@ -13,7 +13,7 @@ Pages = ["load_fuels_data.jl"]
## Generators Input Data
```@autodocs
Modules = [GenX]
-Pages = ["load_generators_data.jl"]
+Pages = ["load_resources_data.jl"]
```
## Variability of Generators' Outputs
diff --git a/docs/src/maintenance.md b/docs/src/maintenance.md
index 6e02c28bc5..8ada7c6b38 100644
--- a/docs/src/maintenance.md
+++ b/docs/src/maintenance.md
@@ -35,7 +35,7 @@ Rather than have maintenance potentially start every hour, one can have possible
(In reality, maintenance is likely scheduled months in advance, so optimizing down to the hour may not be realistic anyway.)
## How to use
-There are four columns which need to be added to the plant data, i.e. in `Generators_data.csv`:
+There are four columns which need to be added to the plant data, i.e. in the resource `.csv` files:
1. `MAINT` should be `1` for plants that require maintenance and `0` otherwise.
2. `Maintenance_Duration` is the number of hours the maintenance period lasts.
diff --git a/docs/src/multi_stage_model_overview.md b/docs/src/multi_stage_model_overview.md
index 68d0133450..ee33fbb0b1 100644
--- a/docs/src/multi_stage_model_overview.md
+++ b/docs/src/multi_stage_model_overview.md
@@ -17,7 +17,7 @@ The table below summarizes the key differences in the two model setups.
Instead of one set of input files, there is one directory of input files that needs to be provided for each planning period or stage (e.g., “Inputs/Inputs_p1/” for the first period “Inputs/Inputs_p2/” for the second period, etc.). Below we list the additional parameters that must be provided in the corresponding stage-specific input files to instantiate a multi-stage planning problem.
-| | **Generators_data.csv** |
+| | **Resource .csv files** |
|:------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------|
| Min\_Retired\_Cap\_MW | Minimum capacity in MW that must retire in this planning stage. Note that for the co-located VRE-STOR module, this value represents the grid connection component. |
| Min\_Retired\_Energy\_Cap\_MW | Minimum energy capacity in MW that must retire in this planning stage. Note that for the co-located VRE-STOR module, this value represents the storage component. |
@@ -26,7 +26,7 @@ Instead of one set of input files, there is one directory of input files that ne
| Capital\_Recovery\_Period | The technology-specific period in years over which initial capital costs must be recovered. Note that for the co-located VRE-STOR module, this value represents the grid connection component. |
| WACC | The technology-specific weighted average cost of capital. Note that for the co-located VRE-STOR module, this value represents the grid connection component. |
-| | **Vre_and_stor_data.csv (if activated)** |
+| | **Vre_stor.csv (if activated)** |
|:------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------|
|Min\_Retired\_Cap\_Inverter\_MW |Minimum inverter capacity in MW AC that must retire in this plannig stage. |
|Min\_Retired\_Cap\_Solar\_MW |Minimum solar PV capacity in MW DC that must retire in this plannig stage. |
diff --git a/docs/src/resource.md b/docs/src/resource.md
new file mode 100644
index 0000000000..2229516d81
--- /dev/null
+++ b/docs/src/resource.md
@@ -0,0 +1,10 @@
+# Resource types and function interfaces
+
+```@docs
+GenX.AbstractResource
+```
+
+```@autodocs
+Modules = [GenX]
+Pages = ["resources.jl"]
+```
\ No newline at end of file
diff --git a/src/GenX.jl b/src/GenX.jl
index 7bd75fb736..508fccceb6 100644
--- a/src/GenX.jl
+++ b/src/GenX.jl
@@ -45,6 +45,11 @@ using HiGHS
# To translate $/MWh to $M/GWh, multiply by ModelScalingFactor
const ModelScalingFactor = 1e+3
+"""
+An abstract type that should be subtyped for users creating GenX resources.
+"""
+abstract type AbstractResource end
+
# thanks, ChatGPT
function include_all_in_folder(folder)
base_path = joinpath(@__DIR__, folder)
@@ -72,4 +77,5 @@ include("simple_operation.jl")
include_all_in_folder("multi_stage")
include_all_in_folder("additional_tools")
+
end
diff --git a/src/additional_tools/method_of_morris.jl b/src/additional_tools/method_of_morris.jl
index c4e46ea06e..0938c8022e 100644
--- a/src/additional_tools/method_of_morris.jl
+++ b/src/additional_tools/method_of_morris.jl
@@ -174,11 +174,15 @@ function morris(EP::Model, path::AbstractString, setup::Dict, inputs::Dict, outp
len_design_mat = Morris_range[!,:len_design_mat][1]
uncertain_columns = unique(Morris_range[!,:Parameter])
#save_parameters = zeros(length(Morris_range[!,:Parameter]))
+ gen = inputs["RESOURCES"]
# Creating the range of uncertain parameters in terms of absolute values
sigma = zeros((1, 2))
for column in uncertain_columns
- sigma = [sigma; [inputs["dfGen"][!,Symbol(column)] .* (1 .+ Morris_range[Morris_range[!,:Parameter] .== column, :Lower_bound] ./100) inputs["dfGen"][!,Symbol(column)] .* (1 .+ Morris_range[Morris_range[!,:Parameter] .== column, :Upper_bound] ./100)]]
+ col_sym = Symbol(lowercase(column))
+ # column_f is the function to get the value "column" for each generator
+ column_f = isdefined(GenX, col_sym) ? getfield(GenX, col_sym) : r -> getproperty(r, col_sym)
+ sigma = [sigma; [column_f.(gen) .* (1 .+ Morris_range[Morris_range[!,:Parameter] .== column, :Lower_bound] ./100) column_f.(gen) .* (1 .+ Morris_range[Morris_range[!,:Parameter] .== column, :Upper_bound] ./100)]]
end
sigma = sigma[2:end,:]
@@ -192,7 +196,8 @@ function morris(EP::Model, path::AbstractString, setup::Dict, inputs::Dict, outp
for column in uncertain_columns
index = findall(s -> s == column, Morris_range[!,:Parameter])
- inputs["dfGen"][!,Symbol(column)] = sigma[first(index):last(index)]
+ attr_to_set = Symbol(lowercase(column))
+ gen[attr_to_set] = sigma[first(index):last(index)]
end
EP = generate_model(setup, inputs, OPTIMIZER)
diff --git a/src/additional_tools/modeling_to_generate_alternatives.jl b/src/additional_tools/modeling_to_generate_alternatives.jl
index 497ed48191..97400b54b1 100644
--- a/src/additional_tools/modeling_to_generate_alternatives.jl
+++ b/src/additional_tools/modeling_to_generate_alternatives.jl
@@ -1,5 +1,5 @@
@doc raw"""
- mga(EP::Model, path::AbstractString, setup::Dict, inputs::Dict, outpath::AbstractString)
+ mga(EP::Model, path::AbstractString, setup::Dict, inputs::Dict)
We have implemented an updated Modeling to Generate Alternatives (MGA) Algorithm proposed by [Berntsen and Trutnevyte (2017)](https://www.sciencedirect.com/science/article/pii/S0360544217304097) to generate a set of feasible, near cost-optimal technology portfolios. This algorithm was developed by [Brill Jr, E. D., 1979](https://pubsonline.informs.org/doi/abs/10.1287/mnsc.25.5.413) and introduced to energy system planning by [DeCarolia, J. F., 2011](https://www.sciencedirect.com/science/article/pii/S0140988310000721).
@@ -18,23 +18,24 @@ To create the MGA formulation, we replace the cost-minimizing objective function
where, $\beta_{zr}$ is a random objective fucntion coefficient betwen $[0,100]$ for MGA iteration $k$. $\Theta_{y,t,z,r}$ is a generation of technology $y$ in zone $z$ in time period $t$ that belongs to a resource type $r$. We aggregate $\Theta_{y,t,z,r}$ into a new variable $P_{z,r}$ that represents total generation from technology type $r$ in a zone $z$. In the second constraint above, $\delta$ denote the increase in budget from the least-cost solution and $f$ represents the expression for the total system cost. The constraint $Ax = b$ represents all other constraints in the power system model. We then solve the formulation with minimization and maximization objective function to explore near optimal solution space.
"""
-function mga(EP::Model, path::AbstractString, setup::Dict, inputs::Dict, outpath::AbstractString)
+function mga(EP::Model, path::AbstractString, setup::Dict, inputs::Dict)
if setup["ModelingToGenerateAlternatives"]==1
# Start MGA Algorithm
println("MGA Module")
- # Objective function value of the least cost problem
+ # Objective function value of the least cost problem
Least_System_Cost = objective_value(EP)
# Read sets
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
T = inputs["T"] # Number of time steps (hours)
Z = inputs["Z"] # Number of zonests
- G = inputs["G"]
+ zones = unique(inputs["R_ZONES"])
# Create a set of unique technology types
- TechTypes = unique(dfGen[dfGen[!, :MGA] .== 1, :Resource_Type])
+ resources_with_mga = gen[ids_with_mga(gen)]
+ TechTypes = unique(resource_type_mga.(resources_with_mga))
# Read slack parameter representing desired increase in budget from the least cost solution
slack = setup["ModelingtoGenerateAlternativeSlack"]
@@ -51,8 +52,11 @@ function mga(EP::Model, path::AbstractString, setup::Dict, inputs::Dict, outpath
@constraint(EP, budget, EP[:eObj] <= Least_System_Cost * (1 + slack) )
# Constraint to compute total generation in each zone from a given Technology Type
- @constraint(EP,cGeneration[tt = 1:length(TechTypes), z = 1:Z], vSumvP[tt,z] == sum(EP[:vP][y,t] * inputs["omega"][t]
- for y in dfGen[(dfGen[!,:Resource_Type] .== TechTypes[tt]) .& (dfGen[!,:Zone] .== z), :R_ID], t in 1:T))
+ function resource_in_zone_with_TechType(tt::Int64, z::Int64)
+ condition::BitVector = (resource_type_mga.(gen) .== TechTypes[tt]) .& (zone_id.(gen) .== z)
+ return resource_id.(gen[condition])
+ end
+ @constraint(EP,cGeneration[tt = 1:length(TechTypes), z = 1:Z], vSumvP[tt,z] == sum(EP[:vP][y,t] * inputs["omega"][t] for y in resource_in_zone_with_TechType(tt,z), t in 1:T))
### End Constraints ###
@@ -74,7 +78,7 @@ function mga(EP::Model, path::AbstractString, setup::Dict, inputs::Dict, outpath
for i in 1:setup["ModelingToGenerateAlternativeIterations"]
# Create random coefficients for the generators that we want to include in the MGA run for the given budget
- pRand = rand(length(unique(dfGen[dfGen[!, :MGA] .== 1, :Resource_Type])),length(unique(dfGen[!,:Zone])))
+ pRand = rand(length(TechTypes),length(zones))
### Maximization objective
@objective(EP, Max, sum(pRand[tt,z] * vSumvP[tt,z] for tt in 1:length(TechTypes), z in 1:Z ))
diff --git a/src/configure_settings/configure_settings.jl b/src/configure_settings/configure_settings.jl
index 1a234547dc..92074cada0 100644
--- a/src/configure_settings/configure_settings.jl
+++ b/src/configure_settings/configure_settings.jl
@@ -24,7 +24,8 @@ function default_settings()
"IncludeLossesInESR" => 0,
"HydrogenHourlyMatching" => 0,
"EnableJuMPStringNames" => false,
- "ComputeConflicts" => 0
+ "ComputeConflicts" => 0,
+ "ResourcePath" => "Resources",
)
end
diff --git a/src/load_inputs/load_dataframe.jl b/src/load_inputs/load_dataframe.jl
index e5c7c9e3c0..0e5d74c92d 100644
--- a/src/load_inputs/load_dataframe.jl
+++ b/src/load_inputs/load_dataframe.jl
@@ -188,3 +188,20 @@ function extract_matrix_from_dataframe(df::DataFrame, columnprefix::AbstractStri
Matrix(dropmissing(df[:, sorted_columns]))
end
+function extract_matrix_from_resources(rs::Vector{T}, columnprefix::AbstractString, default=0.0) where T<:AbstractResource
+
+ # attributes starting with columnprefix with a numeric suffix
+ attributes_n = [attr for attr in string.(attributes(rs[1])) if startswith(attr, columnprefix)]
+ # sort the attributes by the numeric suffix
+ sort!(attributes_n, by = x -> parse(Int, split(x, "_")[end]))
+
+ # extract the matrix of the attributes
+ value = Matrix{Float64}(undef, length(rs), length(attributes_n))
+ for (i, r) in enumerate(rs)
+ for (j, attr) in enumerate(attributes_n)
+ value[i, j] = get(r, Symbol(attr), default)
+ end
+ end
+
+ return value
+end
diff --git a/src/load_inputs/load_generators_data.jl b/src/load_inputs/load_generators_data.jl
deleted file mode 100644
index 7699e6d675..0000000000
--- a/src/load_inputs/load_generators_data.jl
+++ /dev/null
@@ -1,664 +0,0 @@
-@doc raw"""
- load_generators_data!(setup::Dict, path::AbstractString, inputs_gen::Dict, fuel_costs::Dict, fuel_CO2::Dict)
-
-Function for reading input parameters related to electricity generators (plus storage and flexible demand resources)
-"""
-function load_generators_data!(setup::Dict, path::AbstractString, inputs_gen::Dict, fuel_costs::Dict, fuel_CO2::Dict)
-
- filename = "Generators_data.csv"
- gen_in = load_dataframe(joinpath(path, filename))
-
-
- # Store DataFrame of generators/resources input data for use in model
- inputs_gen["dfGen"] = gen_in
-
- # initial screen that resources are valid
- resources = dataframerow_to_dict.(eachrow(gen_in))
- validate_resources(resources)
- inputs_gen["resources_d"] = resources
-
- # Number of resources (generators, storage, DR, and DERs)
- G = nrow(gen_in)
- inputs_gen["G"] = G
-
- # Add Resource IDs after reading to prevent user errors
- gen_in[!,:R_ID] = 1:G
-
- scale_factor = setup["ParameterScale"] == 1 ? ModelScalingFactor : 1
- ## Defining sets of generation and storage resources
-
- # Set of storage resources with symmetric charge/discharge capacity
- inputs_gen["STOR_SYMMETRIC"] = gen_in[gen_in.STOR.==1,:R_ID]
- # Set of storage resources with asymmetric (separte) charge/discharge capacity components
- inputs_gen["STOR_ASYMMETRIC"] = gen_in[gen_in.STOR.==2,:R_ID]
- # Set of all storage resources
- inputs_gen["STOR_ALL"] = union(inputs_gen["STOR_SYMMETRIC"],inputs_gen["STOR_ASYMMETRIC"])
-
- # Set of storage resources with long duration storage capabilitites
- inputs_gen["STOR_HYDRO_LONG_DURATION"] = gen_in[(gen_in.LDS.==1) .& (gen_in.HYDRO.==1),:R_ID]
- inputs_gen["STOR_HYDRO_SHORT_DURATION"] = gen_in[(gen_in.LDS.==0) .& (gen_in.HYDRO.==1),:R_ID]
- inputs_gen["STOR_LONG_DURATION"] = gen_in[(gen_in.LDS.==1) .& (gen_in.STOR.>=1),:R_ID]
- inputs_gen["STOR_SHORT_DURATION"] = gen_in[(gen_in.LDS.==0) .& (gen_in.STOR.>=1),:R_ID]
-
- # Set of all reservoir hydro resources
- inputs_gen["HYDRO_RES"] = gen_in[(gen_in[!,:HYDRO].==1),:R_ID]
- # Set of reservoir hydro resources modeled with known reservoir energy capacity
- if !isempty(inputs_gen["HYDRO_RES"])
- inputs_gen["HYDRO_RES_KNOWN_CAP"] = intersect(gen_in[gen_in.Hydro_Energy_to_Power_Ratio.>0,:R_ID], inputs_gen["HYDRO_RES"])
- end
-
- # Set of flexible demand-side resources
- inputs_gen["FLEX"] = gen_in[gen_in.FLEX.==1,:R_ID]
-
- # Set of must-run plants - could be behind-the-meter PV, hydro run-of-river, must-run fossil or thermal plants
- inputs_gen["MUST_RUN"] = gen_in[gen_in.MUST_RUN.==1,:R_ID]
-
- # Set of controllable variable renewable resources
- inputs_gen["VRE"] = gen_in[gen_in.VRE.>=1,:R_ID]
-
- # Set of hydrogen electolyzer resources (optional set):
- if "ELECTROLYZER" in names(gen_in)
- inputs_gen["ELECTROLYZER"] = gen_in[gen_in.ELECTROLYZER.>=1,:R_ID]
- else
- inputs_gen["ELECTROLYZER"] = Vector()
- end
-
- # Set of retrofit resources (optional set)
- if !("RETRO" in names(gen_in))
- gen_in[!, "RETRO"] = zero(gen_in[!, "R_ID"])
- end
-
- inputs_gen["RETRO"] = gen_in[gen_in.RETRO.==1,:R_ID]
- # Disable Retrofit while it's under development
- if !(isempty(inputs_gen["RETRO"]))
- error("The Retrofits feature, which is activated by nonzero data in a 'RETRO' column in Generators_data.csv, is under development and is not ready for public use. Disable this message to enable this *experimental* feature.")
- end
-
- # Set of thermal generator resources
- if setup["UCommit"]>=1
- # Set of thermal resources eligible for unit committment
- inputs_gen["THERM_COMMIT"] = gen_in[gen_in.THERM.==1,:R_ID]
- # Set of thermal resources not eligible for unit committment
- inputs_gen["THERM_NO_COMMIT"] = gen_in[gen_in.THERM.==2,:R_ID]
- else # When UCommit == 0, no thermal resources are eligible for unit committment
- inputs_gen["THERM_COMMIT"] = Int64[]
- inputs_gen["THERM_NO_COMMIT"] = union(gen_in[gen_in.THERM.==1,:R_ID], gen_in[gen_in.THERM.==2,:R_ID])
- end
- inputs_gen["THERM_ALL"] = union(inputs_gen["THERM_COMMIT"],inputs_gen["THERM_NO_COMMIT"])
-
- # For now, the only resources eligible for UC are themal resources
- inputs_gen["COMMIT"] = inputs_gen["THERM_COMMIT"]
-
- if setup["Reserves"] >= 1
- # Set for resources with regulation reserve requirements
- inputs_gen["REG"] = gen_in[(gen_in[!,:Reg_Max].>0),:R_ID]
- # Set for resources with spinning reserve requirements
- inputs_gen["RSV"] = gen_in[(gen_in[!,:Rsv_Max].>0),:R_ID]
- end
-
- buildable = resources_which_can_be_built(gen_in)
- retirable = resources_which_can_be_retired(gen_in)
- if deprecated_newbuild_canretire_interface(gen_in)
- deprecated_newbuild_canretire_interface_warning()
- else
- validate_newbuild_entries(gen_in)
- end
-
- # Set of all resources eligible for new capacity
- inputs_gen["NEW_CAP"] = intersect(buildable, gen_in[gen_in.Max_Cap_MW.!=0,:R_ID])
- # Set of all resources eligible for capacity retirements
- inputs_gen["RET_CAP"] = intersect(retirable, gen_in[gen_in.Existing_Cap_MW.>=0,:R_ID])
-
- new_cap_energy = Set{Int64}()
- ret_cap_energy = Set{Int64}()
- if !isempty(inputs_gen["STOR_ALL"])
- # Set of all storage resources eligible for new energy capacity
- new_cap_energy = intersect(buildable, gen_in[gen_in.Max_Cap_MWh.!=0,:R_ID], inputs_gen["STOR_ALL"])
- # Set of all storage resources eligible for energy capacity retirements
- ret_cap_energy = intersect(retirable, gen_in[gen_in.Existing_Cap_MWh.>=0,:R_ID], inputs_gen["STOR_ALL"])
- end
- inputs_gen["NEW_CAP_ENERGY"] = new_cap_energy
- inputs_gen["RET_CAP_ENERGY"] = ret_cap_energy
-
- new_cap_charge = Set{Int64}()
- ret_cap_charge = Set{Int64}()
- if !isempty(inputs_gen["STOR_ASYMMETRIC"])
- # Set of asymmetric charge/discharge storage resources eligible for new charge capacity
- new_cap_charge = intersect(buildable, gen_in[gen_in.Max_Charge_Cap_MW.!=0,:R_ID], inputs_gen["STOR_ASYMMETRIC"])
- # Set of asymmetric charge/discharge storage resources eligible for charge capacity retirements
- ret_cap_charge = intersect(buildable, gen_in[gen_in.Existing_Charge_Cap_MW.>=0,:R_ID], inputs_gen["STOR_ASYMMETRIC"])
- end
- inputs_gen["NEW_CAP_CHARGE"] = new_cap_charge
- inputs_gen["RET_CAP_CHARGE"] = ret_cap_charge
-
- # Names of resources
- inputs_gen["RESOURCES"] = gen_in[!,:Resource]
- # Zones resources are located in
- zones = gen_in[!,:Zone]
- # Resource identifiers by zone (just zones in resource order + resource and zone concatenated)
- inputs_gen["R_ZONES"] = zones
- inputs_gen["RESOURCE_ZONES"] = inputs_gen["RESOURCES"] .* "_z" .* string.(zones)
-
- # Retrofit Information
- if !isempty(inputs_gen["RETRO"]) # If there are any retrofit technologies in consideration, read relevant data
- inputs_gen["NUM_RETROFIT_SOURCES"] = gen_in[!,:Num_RETRO_Sources] # Number of retrofit sources for this technology (0 if not a retrofit technology)
- max_retro_sources = maximum(inputs_gen["NUM_RETROFIT_SOURCES"])
-
- source_cols = [ Symbol(string("Retro",i,"_Source")) for i in 1:max_retro_sources ]
- efficiency_cols = [ Symbol(string("Retro",i,"_Efficiency")) for i in 1:max_retro_sources ]
- inv_cap_cols = [ Symbol(string("Retro",i,"_Inv_Cost_per_MWyr")) for i in 1:max_retro_sources ]
-
- sources = [ gen_in[!,c] for c in source_cols ]
- inputs_gen["RETROFIT_SOURCES"] = [ [ sources[i][y] for i in 1:max_retro_sources if sources[i][y] != "None" ] for y in 1:G ] # The origin technologies that can be retrofitted into this new technology
- inputs_gen["RETROFIT_SOURCE_IDS"] = [ [ findall(x->x==sources[i][y],inputs_gen["RESOURCES"])[1] for i in 1:max_retro_sources if sources[i][y] != "None" ] for y in 1:G ] # The R_IDs of these origin technologies
-
- efficiencies = [ gen_in[!,c] for c in efficiency_cols ]
- inputs_gen["RETROFIT_EFFICIENCIES"] = [ [ efficiencies[i][y] for i in 1:max_retro_sources if efficiencies[i][y] != 0 ] for y in 1:G ] # The efficiencies of each retrofit by source (ratio of outgoing to incoming nameplate capacity)
- inv_cap = [ gen_in[!,c] for c in inv_cap_cols ]
- inv_cap /= scale_factor
-
- inputs_gen["RETROFIT_INV_CAP_COSTS"] = [ [ inv_cap[i][y] for i in 1:max_retro_sources if inv_cap[i][y] >= 0 ] for y in 1:G ] # The set of investment costs (capacity $/MWyr) of each retrofit by source
- end
-
- # See documentation for descriptions of each column
- # Generally, these scalings converts energy and power units from MW to GW
- # and $/MW to $M/GW. Both are done by dividing the values by 1000.
- columns_to_scale = [:Existing_Charge_Cap_MW, # to GW
- :Existing_Cap_MWh, # to GWh
- :Existing_Cap_MW, # to GW
-
- :Cap_Size, # to GW
-
- :Min_Cap_MW, # to GW
- :Min_Cap_MWh, # to GWh
- :Min_Charge_Cap_MW, # to GWh
-
- :Max_Cap_MW, # to GW
- :Max_Cap_MWh, # to GWh
- :Max_Charge_Cap_MW, # to GW
-
- :Inv_Cost_per_MWyr, # to $M/GW/yr
- :Inv_Cost_per_MWhyr, # to $M/GWh/yr
- :Inv_Cost_Charge_per_MWyr, # to $M/GW/yr
-
- :Fixed_OM_Cost_per_MWyr, # to $M/GW/yr
- :Fixed_OM_Cost_per_MWhyr, # to $M/GWh/yr
- :Fixed_OM_Cost_Charge_per_MWyr, # to $M/GW/yr
-
- :Var_OM_Cost_per_MWh, # to $M/GWh
- :Var_OM_Cost_per_MWh_In, # to $M/GWh
-
- :Reg_Cost, # to $M/GW
- :Rsv_Cost, # to $M/GW
-
- :Min_Retired_Cap_MW, # to GW
- :Min_Retired_Charge_Cap_MW, # to GW
- :Min_Retired_Energy_Cap_MW, # to GW
-
- :Start_Cost_per_MW, # to $M/GW
-
- :Hydrogen_MWh_Per_Tonne, # to GWh/t
- ]
-
- for column in columns_to_scale
- if string(column) in names(gen_in)
- gen_in[!, column] /= scale_factor
- end
- end
-
- if setup["UCommit"] >= 1
- start_cost = convert(Array{Float64}, gen_in[!,:Start_Cost_per_MW])
- inputs_gen["C_Start"] = zeros(Float64, G, inputs_gen["T"])
- end
-
- # scale the start costs
- for g in 1:G
- if g in inputs_gen["COMMIT"]
- # Start-up cost is sum of fixed cost per start startup.
- inputs_gen["C_Start"][g,:] .= gen_in[g,:Cap_Size] * ( start_cost[g])
- end
- end
-
- load_vre_stor_data!(inputs_gen, setup, path)
-
-
- # write zeros if col names are not in the gen_in dataframe
- required_cols_for_co2 = ["Biomass", "CO2_Capture_Fraction", "CO2_Capture_Fraction_Startup", "CCS_Disposal_Cost_per_Metric_Ton"]
- for col in required_cols_for_co2
- ensure_column!(gen_in, col, 0)
- end
-
- # Scale CCS_Disposal_Cost_per_Metric_Ton for CCS units
- gen_in.CCS_Disposal_Cost_per_Metric_Ton /= scale_factor
-
- # get R_ID when fuel is not None
- inputs_gen["HAS_FUEL"] = gen_in[(gen_in[!,:Fuel] .!= "None"),:R_ID]
-
- # Piecewise fuel usage option
- if setup["UCommit"] > 0
- process_piecewisefuelusage!(inputs_gen, scale_factor)
- end
-
- println(filename * " Successfully Read!")
-end
-
-
-@doc raw"""
- check_vre_stor_validity(df::DataFrame, setup::Dict)
-
-Function for checking that no other technology flags have been activated and specific data inputs
- have been zeroed for the co-located VRE-STOR module
-"""
-function check_vre_stor_validity(df::DataFrame, setup::Dict)
- # Determine if any VRE-STOR resources exist
- vre_stor = is_nonzero(df, :VRE_STOR)
- r_id = df[:, :R_ID]
-
- error_strings = String[]
-
- function error_feedback(data::Vector{Int}, col::Symbol)::String
- string("Generators ", data, ", marked as VRE-STOR, have ", col, " ≠ 0. ", col, " must be 0.")
- end
-
- function check_any_nonzero_with_vre_stor!(error_strings::Vector{String}, df::DataFrame, col::Symbol)
- check = vre_stor .& is_nonzero(df, col)
- if any(check)
- e = error_feedback(r_id[check], col)
- push!(error_strings, e)
- end
- end
-
- # Confirm that any other flags/inputs are not activated (all other flags should be activated in the vre_stor_data.csv)
- check_any_nonzero_with_vre_stor!(error_strings, df, :Var_OM_Cost_per_MWh_In)
- if setup["EnergyShareRequirement"]==1
- nESR = count(occursin.("ESR_", names(df)))
- for i in 1:nESR
- check_any_nonzero_with_vre_stor!(error_strings, df, Symbol(string("ESR_",i)))
- end
- end
- if setup["CapacityReserveMargin"]==1
- nCapRes = count(occursin.("CapRes_", names(df)))
- for i in 1:nCapRes
- check_any_nonzero_with_vre_stor!(error_strings, df, Symbol(string("CapRes_",i)))
- end
- end
-
- return error_strings
-end
-
-@doc raw"""
- summarize_errors(error_strings::Vector{String})
-
-Function for printing out to user how many errors there were in the configuration of the generators data
-"""
-function summarize_errors(error_strings::Vector{String})
- if !isempty(error_strings)
- println(length(error_strings), " problem(s) in the configuration of the generators:")
- for es in error_strings
- println(es)
- end
- error("There were errors in the configuration of the generators.")
- end
-end
-
-@doc raw"""
- split_storage_resources!(df::DataFrame, inputs::Dict, setup::Dict)
-
-For co-located VRE-storage resources, this function returns the storage type
- (1. long-duration or short-duration storage, 2. symmetric or asymmetric storage)
- for charging and discharging capacities
-"""
-function split_storage_resources!(df::DataFrame, inputs::Dict, setup::Dict)
-
- # All Storage Resources
- inputs["VS_STOR"] = union(df[df.STOR_DC_CHARGE.>=1,:R_ID], df[df.STOR_AC_CHARGE.>=1,:R_ID],
- df[df.STOR_DC_DISCHARGE.>=1,:R_ID], df[df.STOR_AC_DISCHARGE.>=1,:R_ID])
- STOR = inputs["VS_STOR"]
-
- # Storage DC Discharge Resources
- inputs["VS_STOR_DC_DISCHARGE"] = df[(df.STOR_DC_DISCHARGE.>=1),:R_ID]
- inputs["VS_SYM_DC_DISCHARGE"] = df[df.STOR_DC_DISCHARGE.==1,:R_ID]
- inputs["VS_ASYM_DC_DISCHARGE"] = df[df.STOR_DC_DISCHARGE.==2,:R_ID]
-
- # Storage DC Charge Resources
- inputs["VS_STOR_DC_CHARGE"] = df[(df.STOR_DC_CHARGE.>=1),:R_ID]
- inputs["VS_SYM_DC_CHARGE"] = df[df.STOR_DC_CHARGE.==1,:R_ID]
- inputs["VS_ASYM_DC_CHARGE"] = df[df.STOR_DC_CHARGE.==2,:R_ID]
-
- # Storage AC Discharge Resources
- inputs["VS_STOR_AC_DISCHARGE"] = df[(df.STOR_AC_DISCHARGE.>=1),:R_ID]
- inputs["VS_SYM_AC_DISCHARGE"] = df[df.STOR_AC_DISCHARGE.==1,:R_ID]
- inputs["VS_ASYM_AC_DISCHARGE"] = df[df.STOR_AC_DISCHARGE.==2,:R_ID]
-
- # Storage AC Charge Resources
- inputs["VS_STOR_AC_CHARGE"] = df[(df.STOR_AC_CHARGE.>=1),:R_ID]
- inputs["VS_SYM_AC_CHARGE"] = df[df.STOR_AC_CHARGE.==1,:R_ID]
- inputs["VS_ASYM_AC_CHARGE"] = df[df.STOR_AC_CHARGE.==2,:R_ID]
-
- # Storage LDS & Non-LDS Resources
- inputs["VS_LDS"] = df[(df.LDS_VRE_STOR.!=0),:R_ID]
- inputs["VS_nonLDS"] = setdiff(STOR, inputs["VS_LDS"])
-
- # Symmetric and asymmetric storage resources
- inputs["VS_ASYM"] = union(inputs["VS_ASYM_DC_CHARGE"], inputs["VS_ASYM_DC_DISCHARGE"],
- inputs["VS_ASYM_AC_DISCHARGE"], inputs["VS_ASYM_AC_CHARGE"])
- inputs["VS_SYM_DC"] = intersect(inputs["VS_SYM_DC_CHARGE"], inputs["VS_SYM_DC_DISCHARGE"])
- inputs["VS_SYM_AC"] = intersect(inputs["VS_SYM_AC_CHARGE"], inputs["VS_SYM_AC_DISCHARGE"])
-
- # Send warnings for symmetric/asymmetric resources
- if (!isempty(setdiff(inputs["VS_SYM_DC_DISCHARGE"], inputs["VS_SYM_DC_CHARGE"]))
- || !isempty(setdiff(inputs["VS_SYM_DC_CHARGE"], inputs["VS_SYM_DC_DISCHARGE"]))
- || !isempty(setdiff(inputs["VS_SYM_AC_DISCHARGE"], inputs["VS_SYM_AC_CHARGE"]))
- || !isempty(setdiff(inputs["VS_SYM_AC_CHARGE"], inputs["VS_SYM_AC_DISCHARGE"])))
- @warn("Symmetric capacities must both be DC or AC.")
- end
-
- # Send warnings for battery resources discharging
- if !isempty(intersect(inputs["VS_STOR_DC_DISCHARGE"], inputs["VS_STOR_AC_DISCHARGE"]))
- @warn("Both AC and DC discharging functionalities are turned on.")
- end
-
- # Send warnings for battery resources charging
- if !isempty(intersect(inputs["VS_STOR_DC_CHARGE"], inputs["VS_STOR_AC_CHARGE"]))
- @warn("Both AC and DC charging functionalities are turned on.")
- end
-end
-
-@doc raw"""
- load_vre_stor_data!(inputs_gen::Dict, setup::Dict, path::AbstractString)
-
-Function for reading input parameters related to co-located VRE-storage resources
-"""
-function load_vre_stor_data!(inputs_gen::Dict, setup::Dict, path::AbstractString)
-
- error_strings = String[]
- dfGen = inputs_gen["dfGen"]
- inputs_gen["VRE_STOR"] = "VRE_STOR" in names(dfGen) ? dfGen[dfGen.VRE_STOR.==1,:R_ID] : Int[]
-
- # Check if VRE-STOR resources exist
- if !isempty(inputs_gen["VRE_STOR"])
-
- # Check input data format
- vre_stor_errors = check_vre_stor_validity(dfGen, setup)
- append!(error_strings, vre_stor_errors)
-
- vre_stor_in = DataFrame(CSV.File(joinpath(path,"Vre_and_stor_data.csv"), header=true), copycols=true)
-
- ## Defining all sets
-
- # New build and retirement resources
- buildable = resources_which_can_be_built(dfGen)
- retirable = resources_which_can_be_retired(dfGen)
-
- # Solar PV Resources
- inputs_gen["VS_SOLAR"] = vre_stor_in[(vre_stor_in.SOLAR.!=0),:R_ID]
-
- # DC Resources
- inputs_gen["VS_DC"] = union(vre_stor_in[vre_stor_in.STOR_DC_DISCHARGE.>=1,:R_ID], vre_stor_in[vre_stor_in.STOR_DC_CHARGE.>=1,:R_ID], vre_stor_in[vre_stor_in.SOLAR.!=0,:R_ID])
-
- # Wind Resources
- inputs_gen["VS_WIND"] = vre_stor_in[(vre_stor_in.WIND.!=0),:R_ID]
-
- # Storage Resources
- split_storage_resources!(vre_stor_in, inputs_gen, setup)
-
- # Set of all VRE-STOR resources eligible for new solar capacity
- inputs_gen["NEW_CAP_SOLAR"] = intersect(buildable, vre_stor_in[vre_stor_in.SOLAR.!=0,:R_ID], vre_stor_in[vre_stor_in.Max_Cap_Solar_MW.!=0,:R_ID])
- # Set of all VRE_STOR resources eligible for solar capacity retirements
- inputs_gen["RET_CAP_SOLAR"] = intersect(retirable, vre_stor_in[vre_stor_in.SOLAR.!=0,:R_ID], vre_stor_in[vre_stor_in.Existing_Cap_Solar_MW.>=0,:R_ID])
- # Set of all VRE-STOR resources eligible for new wind capacity
- inputs_gen["NEW_CAP_WIND"] = intersect(buildable, vre_stor_in[vre_stor_in.WIND.!=0,:R_ID], vre_stor_in[vre_stor_in.Max_Cap_Wind_MW.!=0,:R_ID])
- # Set of all VRE_STOR resources eligible for wind capacity retirements
- inputs_gen["RET_CAP_WIND"] = intersect(retirable, vre_stor_in[vre_stor_in.WIND.!=0,:R_ID], vre_stor_in[vre_stor_in.Existing_Cap_Wind_MW.>=0,:R_ID])
- # Set of all VRE-STOR resources eligible for new inverter capacity
- inputs_gen["NEW_CAP_DC"] = intersect(buildable, vre_stor_in[vre_stor_in.Max_Cap_Inverter_MW.!=0,:R_ID], inputs_gen["VS_DC"])
- # Set of all VRE_STOR resources eligible for inverter capacity retirements
- inputs_gen["RET_CAP_DC"] = intersect(retirable, vre_stor_in[vre_stor_in.Existing_Cap_Inverter_MW.>=0,:R_ID], inputs_gen["VS_DC"])
- # Set of all storage resources eligible for new energy capacity
- inputs_gen["NEW_CAP_STOR"] = intersect(buildable, dfGen[dfGen.Max_Cap_MWh.!=0,:R_ID], inputs_gen["VS_STOR"])
- # Set of all storage resources eligible for energy capacity retirements
- inputs_gen["RET_CAP_STOR"] = intersect(retirable, dfGen[dfGen.Existing_Cap_MWh.>=0,:R_ID], inputs_gen["VS_STOR"])
- if !isempty(inputs_gen["VS_ASYM"])
- # Set of asymmetric charge DC storage resources eligible for new charge capacity
- inputs_gen["NEW_CAP_CHARGE_DC"] = intersect(buildable, vre_stor_in[vre_stor_in.Max_Cap_Charge_DC_MW.!=0,:R_ID], inputs_gen["VS_ASYM_DC_CHARGE"])
- # Set of asymmetric charge DC storage resources eligible for charge capacity retirements
- inputs_gen["RET_CAP_CHARGE_DC"] = intersect(retirable, vre_stor_in[vre_stor_in.Existing_Cap_Charge_DC_MW.>=0,:R_ID], inputs_gen["VS_ASYM_DC_CHARGE"])
- # Set of asymmetric discharge DC storage resources eligible for new discharge capacity
- inputs_gen["NEW_CAP_DISCHARGE_DC"] = intersect(buildable, vre_stor_in[vre_stor_in.Max_Cap_Discharge_DC_MW.!=0,:R_ID], inputs_gen["VS_ASYM_DC_DISCHARGE"])
- # Set of asymmetric discharge DC storage resources eligible for discharge capacity retirements
- inputs_gen["RET_CAP_DISCHARGE_DC"] = intersect(retirable, vre_stor_in[vre_stor_in.Existing_Cap_Discharge_DC_MW.>=0,:R_ID], inputs_gen["VS_ASYM_DC_DISCHARGE"])
- # Set of asymmetric charge AC storage resources eligible for new charge capacity
- inputs_gen["NEW_CAP_CHARGE_AC"] = intersect(buildable, vre_stor_in[vre_stor_in.Max_Cap_Charge_AC_MW.!=0,:R_ID], inputs_gen["VS_ASYM_AC_CHARGE"])
- # Set of asymmetric charge AC storage resources eligible for charge capacity retirements
- inputs_gen["RET_CAP_CHARGE_AC"] = intersect(retirable, vre_stor_in[vre_stor_in.Existing_Cap_Charge_AC_MW.>=0,:R_ID], inputs_gen["VS_ASYM_AC_CHARGE"])
- # Set of asymmetric discharge AC storage resources eligible for new discharge capacity
- inputs_gen["NEW_CAP_DISCHARGE_AC"] = intersect(buildable, vre_stor_in[vre_stor_in.Max_Cap_Discharge_AC_MW.!=0,:R_ID], inputs_gen["VS_ASYM_AC_DISCHARGE"])
- # Set of asymmetric discharge AC storage resources eligible for discharge capacity retirements
- inputs_gen["RET_CAP_DISCHARGE_AC"] = intersect(retirable, vre_stor_in[vre_stor_in.Existing_Cap_Discharge_AC_MW.>=0,:R_ID], inputs_gen["VS_ASYM_AC_DISCHARGE"])
- end
-
- # Names for systemwide resources
- inputs_gen["RESOURCES_VRE_STOR"] = collect(skipmissing(vre_stor_in[!,:Resource][1:size(inputs_gen["VRE_STOR"])[1]]))
-
- # Names for writing outputs
- inputs_gen["RESOURCES_SOLAR"] = vre_stor_in[(vre_stor_in.SOLAR.!=0), :Resource]
- inputs_gen["RESOURCES_WIND"] = vre_stor_in[(vre_stor_in.WIND.!=0), :Resource]
- inputs_gen["RESOURCES_DC_DISCHARGE"] = vre_stor_in[(vre_stor_in.STOR_DC_DISCHARGE.!=0), :Resource]
- inputs_gen["RESOURCES_AC_DISCHARGE"] = vre_stor_in[(vre_stor_in.STOR_AC_DISCHARGE.!=0), :Resource]
- inputs_gen["RESOURCES_DC_CHARGE"] = vre_stor_in[(vre_stor_in.STOR_DC_CHARGE.!=0), :Resource]
- inputs_gen["RESOURCES_AC_CHARGE"] = vre_stor_in[(vre_stor_in.STOR_AC_CHARGE.!=0), :Resource]
- inputs_gen["ZONES_SOLAR"] = vre_stor_in[(vre_stor_in.SOLAR.!=0), :Zone]
- inputs_gen["ZONES_WIND"] = vre_stor_in[(vre_stor_in.WIND.!=0), :Zone]
- inputs_gen["ZONES_DC_DISCHARGE"] = vre_stor_in[(vre_stor_in.STOR_DC_DISCHARGE.!=0), :Zone]
- inputs_gen["ZONES_AC_DISCHARGE"] = vre_stor_in[(vre_stor_in.STOR_AC_DISCHARGE.!=0), :Zone]
- inputs_gen["ZONES_DC_CHARGE"] = vre_stor_in[(vre_stor_in.STOR_DC_CHARGE.!=0), :Zone]
- inputs_gen["ZONES_AC_CHARGE"] = vre_stor_in[(vre_stor_in.STOR_AC_CHARGE.!=0), :Zone]
-
- # Scale the parameters as needed
- if setup["ParameterScale"] == 1
- columns_to_scale = [:Existing_Cap_Inverter_MW,
- :Existing_Cap_Solar_MW,
- :Existing_Cap_Wind_MW,
- :Existing_Cap_Charge_DC_MW,
- :Existing_Cap_Charge_AC_MW,
- :Existing_Cap_Discharge_DC_MW,
- :Existing_Cap_Discharge_AC_MW,
- :Min_Cap_Inverter_MW,
- :Max_Cap_Inverter_MW,
- :Min_Cap_Solar_MW,
- :Max_Cap_Solar_MW,
- :Min_Cap_Wind_MW,
- :Max_Cap_Wind_MW,
- :Min_Cap_Charge_AC_MW,
- :Max_Cap_Charge_AC_MW,
- :Min_Cap_Charge_DC_MW,
- :Max_Cap_Charge_DC_MW,
- :Min_Cap_Discharge_AC_MW,
- :Max_Cap_Discharge_AC_MW,
- :Min_Cap_Discharge_DC_MW,
- :Max_Cap_Discharge_DC_MW,
- :Inv_Cost_Inverter_per_MWyr,
- :Fixed_OM_Inverter_Cost_per_MWyr,
- :Inv_Cost_Solar_per_MWyr,
- :Fixed_OM_Solar_Cost_per_MWyr,
- :Inv_Cost_Wind_per_MWyr,
- :Fixed_OM_Wind_Cost_per_MWyr,
- :Inv_Cost_Discharge_DC_per_MWyr,
- :Fixed_OM_Cost_Discharge_DC_per_MWyr,
- :Inv_Cost_Charge_DC_per_MWyr,
- :Fixed_OM_Cost_Charge_DC_per_MWyr,
- :Inv_Cost_Discharge_AC_per_MWyr,
- :Fixed_OM_Cost_Discharge_AC_per_MWyr,
- :Inv_Cost_Charge_AC_per_MWyr,
- :Fixed_OM_Cost_Charge_AC_per_MWyr,
- :Var_OM_Cost_per_MWh_Solar,
- :Var_OM_Cost_per_MWh_Wind,
- :Var_OM_Cost_per_MWh_Charge_DC,
- :Var_OM_Cost_per_MWh_Discharge_DC,
- :Var_OM_Cost_per_MWh_Charge_AC,
- :Var_OM_Cost_per_MWh_Discharge_AC]
- vre_stor_in[!, columns_to_scale] ./= ModelScalingFactor
-
- # Scale for multistage feature
- if setup["MultiStage"] == 1
- columns_to_scale_multistage = [:Min_Retired_Cap_Inverter_MW,
- :Min_Retired_Cap_Solar_MW,
- :Min_Retired_Cap_Wind_MW,
- :Min_Retired_Cap_Charge_DC_MW,
- :Min_Retired_Cap_Charge_AC_MW,
- :Min_Retired_Cap_Discharge_DC_MW,
- :Min_Retired_Cap_Discharge_AC_MW]
- vre_stor_in[!, columns_to_scale_multistage] ./= ModelScalingFactor
- end
- end
- inputs_gen["dfVRE_STOR"] = vre_stor_in
- println("Vre_and_stor_data.csv Successfully Read!")
- else
- inputs_gen["dfVRE_STOR"] = DataFrame()
- end
- summarize_errors(error_strings)
-end
-
-function process_piecewisefuelusage!(inputs::Dict, scale_factor)
- gen_in = inputs["dfGen"]
- inputs["PWFU_Num_Segments"] = 0
- inputs["THERM_COMMIT_PWFU"] = Int64[]
-
- if any(occursin.(Ref("PWFU_"), names(gen_in)))
- heat_rate_mat = extract_matrix_from_dataframe(gen_in, "PWFU_Heat_Rate_MMBTU_per_MWh")
- load_point_mat = extract_matrix_from_dataframe(gen_in, "PWFU_Load_Point_MW")
-
- # check data input
- validate_piecewisefuelusage(heat_rate_mat, load_point_mat)
-
- # determine if a generator contains piecewise fuel usage segment based on non-zero heatrate
- gen_in.HAS_PWFU = any(heat_rate_mat .!= 0 , dims = 2)[:]
- num_segments = size(heat_rate_mat)[2]
-
- # translate the inital fuel usage, heat rate, and load points into intercept for each segment
- fuel_usage_zero_load = gen_in[!,"PWFU_Fuel_Usage_Zero_Load_MMBTU_per_h"]
- # construct a matrix for intercept
- intercept_mat = zeros(size(heat_rate_mat))
- # PWFU_Fuel_Usage_MMBTU_per_h is always the intercept of the first segment
- intercept_mat[:,1] = fuel_usage_zero_load
-
- # create a function to compute intercept if we have more than one segment
- function calculate_intercepts(slope, intercept_1, load_point)
- m, n = size(slope)
- # Initialize the intercepts matrix with zeros
- intercepts = zeros(m, n)
- # The first segment's intercepts should be intercept_1 vector
- intercepts[:, 1] = intercept_1
- # Calculate intercepts for the other segments using the load points (i.e., intersection points)
- for j in 1:n-1
- for i in 1:m
- current_slope = slope[i, j+1]
- previous_slope = slope[i, j]
- # If the current slope is 0, then skip the calculation and return 0
- if current_slope == 0
- intercepts[i, j+1] = 0.0
- else
- # y = a*x + b; => b = y - ax
- # Calculate y-coordinate of the intersection
- y = previous_slope * load_point[i, j] + intercepts[i, j]
- # determine the new intercept
- b = y - current_slope * load_point[i, j]
- intercepts[i, j+1] = b
- end
- end
- end
- return intercepts
- end
-
- if num_segments > 1
- # determine the intercept for the rest of segment if num_segments > 1
- intercept_mat = calculate_intercepts(heat_rate_mat, fuel_usage_zero_load, load_point_mat)
- end
-
- # create a PWFU_data that contain processed intercept and slope (i.e., heat rate)
- intercept_cols = [Symbol("PWFU_Intercept_", i) for i in 1:num_segments]
- intercept_df = DataFrame(intercept_mat, Symbol.(intercept_cols))
- slope_cols = Symbol.(filter(colname -> startswith(string(colname),"PWFU_Heat_Rate_MMBTU_per_MWh"),names(gen_in)))
- slope_df = DataFrame(heat_rate_mat, Symbol.(slope_cols))
- PWFU_data = hcat(slope_df, intercept_df)
- # no need to scale sclope, but intercept should be scaled when parameterscale is on (MMBTU -> billion BTU)
- PWFU_data[!, intercept_cols] ./= scale_factor
-
- inputs["slope_cols"] = slope_cols
- inputs["intercept_cols"] = intercept_cols
- inputs["PWFU_data"] = PWFU_data
- inputs["PWFU_Num_Segments"] =num_segments
- inputs["THERM_COMMIT_PWFU"] = intersect(gen_in[gen_in.THERM.==1,:R_ID], gen_in[gen_in.HAS_PWFU,:R_ID])
- end
-end
-
-function validate_piecewisefuelusage(heat_rate_mat, load_point_mat)
- # it's possible to construct piecewise fuel consumption with n of heat rate and n-1 of load point.
- # if a user feed n of heat rate and more than n of load point, throw a error message, and then use
- # n of heat rate and n-1 load point to construct the piecewise fuel usage fuction
- if size(heat_rate_mat)[2] < size(load_point_mat)[2]
- @error """ The numbers of heatrate data are less than load points, we found $(size(heat_rate_mat)[2]) of heat rate,
- and $(size(load_point_mat)[2]) of load points. We will just use $(size(heat_rate_mat)[2]) of heat rate, and $(size(heat_rate_mat)[2]-1)
- load point to create piecewise fuel usage
- """
- end
-
- # check if values for piecewise fuel consumption make sense. Negative heat rate or load point are not allowed
- if any(heat_rate_mat .< 0) | any(load_point_mat .< 0)
- @error """ Neither heat rate nor load point can be negative
- """
- error("Invalid inputs detected for piecewise fuel usage")
- end
- # for non-zero values, heat rates and load points should follow an increasing trend
- if any([any(diff(filter(!=(0), row)) .< 0) for row in eachrow(heat_rate_mat)])
- @error """ Heat rates should follow an increasing trend
- """
- error("Invalid inputs detected for piecewise fuel usage")
- elseif any([any(diff(filter(!=(0), row)) .< 0) for row in eachrow(load_point_mat)])
- @error """load points should follow an increasing trend
- """
- error("Invalid inputs detected for piecewise fuel usage")
- end
-end
-
-function deprecated_newbuild_canretire_interface(df::DataFrame)::Bool
- return string(:Can_Retire) ∉ names(df)
-end
-
-function validate_newbuild_entries(df::DataFrame)
- if any(df.New_Build .== -1)
- @error "
-One or more resources has New_Build = -1, but the Can_Retire column is present,
-indicating that the updated interface should be used.
-When using the updated New_Build/Can_Retire interface, only {0, 1} are valid.
-Entries which previously had New_Build = -1
-(indicating resources which cannot be built nor retired)
-should be updated to New_Build = 0, Can_Retire = 0."
- error("Invalid New_Build inputs in resource data.")
- end
-end
-
-
-function deprecated_newbuild_canretire_interface_warning()
- @warn "
-The generators input file does not have a 'Can_Retire' column.
-While for now, New_Build entries of {1, 0, -1} are still supported,
-this format is being deprecated.
-Now and going forward, New_Build and Can_Retire should be separate columns,
-each with values {0, 1}.
-Please see the documentation for additional details." maxlog=1
-end
-
-function resources_which_can_be_retired(df::DataFrame)::Set{Int64}
- if deprecated_newbuild_canretire_interface(df)
- retirable = df.New_Build .!= -1
- else
- retirable = df.Can_Retire .== 1
- end
- return Set(findall(retirable))
-end
-
-function resources_which_can_be_built(df::DataFrame)::Set{Int64}
- buildable = df.New_Build .== 1
- return Set(findall(buildable))
-end
diff --git a/src/load_inputs/load_generators_variability.jl b/src/load_inputs/load_generators_variability.jl
index fc5edd472d..711f9d36cd 100644
--- a/src/load_inputs/load_generators_variability.jl
+++ b/src/load_inputs/load_generators_variability.jl
@@ -15,7 +15,7 @@ function load_generators_variability!(setup::Dict, path::AbstractString, inputs:
filename = "Generators_variability.csv"
gen_var = load_dataframe(joinpath(my_dir, filename))
- all_resources = inputs["RESOURCES"]
+ all_resources = inputs["RESOURCE_NAMES"]
existing_variability = names(gen_var)
for r in all_resources
@@ -25,7 +25,7 @@ function load_generators_variability!(setup::Dict, path::AbstractString, inputs:
end
end
- # Reorder DataFrame to R_ID order (order provided in Generators_data.csv)
+ # Reorder DataFrame to R_ID order
select!(gen_var, [:Time_Index; Symbol.(all_resources) ])
# Maximum power output and variability of each energy resource
diff --git a/src/load_inputs/load_inputs.jl b/src/load_inputs/load_inputs.jl
index 86e4a70586..16b3b22c31 100644
--- a/src/load_inputs/load_inputs.jl
+++ b/src/load_inputs/load_inputs.jl
@@ -26,9 +26,9 @@ function load_inputs(setup::Dict,path::AbstractString)
# Read temporal-resolved load data, and clustering information if relevant
load_demand_data!(setup, path, inputs)
# Read fuel cost data, including time-varying fuel costs
- cost_fuel, CO2_fuel = load_fuels_data!(setup, path, inputs)
+ load_fuels_data!(setup, path, inputs)
# Read in generator/resource related inputs
- load_generators_data!(setup, path, inputs, cost_fuel, CO2_fuel)
+ load_resources_data!(inputs, setup, path)
# Read in generator/resource availability profiles
load_generators_variability!(setup, path, inputs)
diff --git a/src/load_inputs/load_multistage_data.jl b/src/load_inputs/load_multistage_data.jl
new file mode 100644
index 0000000000..8c7b22ae51
--- /dev/null
+++ b/src/load_inputs/load_multistage_data.jl
@@ -0,0 +1,22 @@
+function load_multistage_dataframe(filepath::AbstractString)
+ if !isfile(filepath)
+ error("Multistage data file not found at $filepath")
+ end
+
+ multistage_in = load_dataframe(filepath)
+
+ validate_multistage_data!(multistage_in)
+
+ return multistage_in
+end
+
+function validate_multistage_data!(multistage_df::DataFrame)
+ # cols that the user must provide
+ required_cols = ("Lifetime","Capital_Recovery_Period")
+ # check that all required columns are present
+ for col in required_cols
+ if col ∉ names(multistage_df)
+ error("Multistage data file is missing column $col")
+ end
+ end
+end
\ No newline at end of file
diff --git a/src/load_inputs/load_reserves.jl b/src/load_inputs/load_reserves.jl
index cf503bced6..19ac515f5f 100644
--- a/src/load_inputs/load_reserves.jl
+++ b/src/load_inputs/load_reserves.jl
@@ -7,6 +7,8 @@ function load_reserves!(setup::Dict, path::AbstractString, inputs::Dict)
filename = "Reserves.csv"
res_in = load_dataframe(joinpath(path, filename))
+ gen = inputs["RESOURCES"]
+
function load_field_with_deprecated_symbol(df::DataFrame, columns::Vector{Symbol})
best = popfirst!(columns)
firstrow = 1
@@ -50,11 +52,11 @@ function load_reserves!(setup::Dict, path::AbstractString, inputs::Dict)
if inputs["pDynamic_Contingency"] > 0
inputs["pContingency_BigM"] = zeros(Float64, inputs["G"])
for y in inputs["COMMIT"]
- inputs["pContingency_BigM"][y] = inputs["dfGen"][y,:Max_Cap_MW]
+ inputs["pContingency_BigM"][y] = max_cap_mw(gen[y])
# When Max_Cap_MW == -1, there is no limit on capacity size
if inputs["pContingency_BigM"][y] < 0
# NOTE: this effectively acts as a maximum cluster size when not otherwise specified, adjust accordingly
- inputs["pContingency_BigM"][y] = 5000*inputs["dfGen"][y,:Cap_Size]
+ inputs["pContingency_BigM"][y] = 5000 * cap_size(gen[y])
end
end
end
diff --git a/src/load_inputs/load_resources_data.jl b/src/load_inputs/load_resources_data.jl
new file mode 100644
index 0000000000..e8dd30229e
--- /dev/null
+++ b/src/load_inputs/load_resources_data.jl
@@ -0,0 +1,1133 @@
+"""
+ _get_resource_info()
+
+Internal function to get resource information (filename and GenX type) for each type of resource available in GenX.
+
+#
+ resource_info (NamedTuple): A tuple containing resource information.
+
+"""
+function _get_resource_info()
+ resource_info = (
+ hydro = (filename="Hydro.csv", type=Hydro),
+ thermal = (filename="Thermal.csv", type=Thermal),
+ vre = (filename="Vre.csv", type=Vre),
+ storage = (filename="Storage.csv", type=Storage),
+ flex_demand = (filename="Flex_demand.csv", type=FlexDemand),
+ must_run = (filename="Must_run.csv", type=MustRun),
+ electrolyzer = (filename="Electrolyzer.csv", type=Electrolyzer),
+ vre_stor = (filename="Vre_stor.csv", type=VreStorage)
+ )
+ return resource_info
+end
+
+"""
+ _get_policyfile_info()
+
+Internal function to get policy file information.
+
+#
+ policyfile_info (NamedTuple): A tuple containing policy file information.
+
+"""
+function _get_policyfile_info()
+ policyfile_info = (
+ esr = (filename="Resource_energy_share_requirement.csv"),
+ cap_res = (filename="Resource_capacity_reserve_margin.csv"),
+ min_cap = (filename="Resource_minimum_capacity_requirement.csv"),
+ max_cap = (filename="Resource_maximum_capacity_requirement.csv"),
+ )
+ return policyfile_info
+end
+
+"""
+ _get_summar_map()
+
+Internal function to get a map of GenX resource type their corresponding names in the summary table.
+"""
+function _get_summary_map()
+ names_map = Dict{Symbol,String}(
+ :Electrolyzer => "Electrolyzer",
+ :FlexDemand => "Flexible_demand",
+ :Hydro => "Hydro",
+ :Storage => "Storage",
+ :Thermal => "Thermal",
+ :Vre => "VRE",
+ :MustRun => "Must_run",
+ :VreStorage => "VRE_and_storage",
+ )
+ max_length = maximum(length.(values(names_map)))
+ for (k,v) in names_map
+ names_map[k] = v * repeat(" ", max_length - length(v))
+ end
+ return names_map
+end
+
+"""
+ scale_resources_data!(resource_in::DataFrame, scale_factor::Float64)
+
+Scales resources attributes in-place if necessary. Generally, these scalings converts energy and power units from MW to GW and \$/MW to \$M/GW. Both are done by dividing the values by 1000.
+See documentation for descriptions of each column being scaled.
+
+# Arguments
+- `resource_in` (DataFrame): A dataframe containing data for a specific resource.
+- `scale_factor` (Float64): A scaling factor for energy and currency units.
+
+"""
+function scale_resources_data!(resource_in::DataFrame, scale_factor::Float64)
+ columns_to_scale = [:existing_charge_cap_mw, # to GW
+ :existing_cap_mwh, # to GWh
+ :existing_cap_mw, # to GW
+
+ :cap_size, # to GW
+
+ :min_cap_mw, # to GW
+ :min_cap_mwh, # to GWh
+ :min_charge_cap_mw, # to GWh
+
+ :max_cap_mw, # to GW
+ :max_cap_mwh, # to GWh
+ :max_charge_cap_mw, # to GW
+
+ :inv_cost_per_mwyr, # to $M/GW/yr
+ :inv_cost_per_mwhyr, # to $M/GWh/yr
+ :inv_cost_charge_per_mwyr, # to $M/GW/yr
+
+ :fixed_om_cost_per_mwyr, # to $M/GW/yr
+ :fixed_om_cost_per_mwhyr, # to $M/GWh/yr
+ :fixed_om_cost_charge_per_mwyr, # to $M/GW/yr
+
+ :var_om_cost_per_mwh, # to $M/GWh
+ :var_om_cost_per_mwh_in, # to $M/GWh
+
+ :reg_cost, # to $M/GW
+ :rsv_cost, # to $M/GW
+
+ :min_retired_cap_mw, # to GW
+ :min_retired_charge_cap_mw, # to GW
+ :min_retired_energy_cap_mw, # to GW
+
+ :start_cost_per_mw, # to $M/GW
+
+ :ccs_disposal_cost_per_metric_ton,
+
+ :hydrogen_mwh_per_tonne # to GWh/t
+ ]
+
+ scale_columns!(resource_in, columns_to_scale, scale_factor)
+ return nothing
+end
+
+"""
+ scale_vre_stor_data!(vre_stor_in::DataFrame, scale_factor::Float64)
+
+Scales vre_stor attributes in-place if necessary. Generally, these scalings converts energy and power units from MW to GW and \$/MW to \$M/GW. Both are done by dividing the values by 1000.
+See documentation for descriptions of each column being scaled.
+
+# Arguments
+- `vre_stor_in` (DataFrame): A dataframe containing data for co-located VREs and storage.
+- `scale_factor` (Float64): A scaling factor for energy and currency units.
+
+"""
+function scale_vre_stor_data!(vre_stor_in::DataFrame, scale_factor::Float64)
+ columns_to_scale = [:existing_cap_inverter_mw,
+ :existing_cap_solar_mw,
+ :existing_cap_wind_mw,
+ :existing_cap_charge_dc_mw,
+ :existing_cap_charge_ac_mw,
+ :existing_cap_discharge_dc_mw,
+ :existing_cap_discharge_ac_mw,
+ :min_cap_inverter_mw,
+ :max_cap_inverter_mw,
+ :min_cap_solar_mw,
+ :max_cap_solar_mw,
+ :min_cap_wind_mw,
+ :max_cap_wind_mw,
+ :min_cap_charge_ac_mw,
+ :max_cap_charge_ac_mw,
+ :min_cap_charge_dc_mw,
+ :max_cap_charge_dc_mw,
+ :min_cap_discharge_ac_mw,
+ :max_cap_discharge_ac_mw,
+ :min_cap_discharge_dc_mw,
+ :max_cap_discharge_dc_mw,
+ :inv_cost_inverter_per_mwyr,
+ :fixed_om_inverter_cost_per_mwyr,
+ :inv_cost_solar_per_mwyr,
+ :fixed_om_solar_cost_per_mwyr,
+ :inv_cost_wind_per_mwyr,
+ :fixed_om_wind_cost_per_mwyr,
+ :inv_cost_discharge_dc_per_mwyr,
+ :fixed_om_cost_discharge_dc_per_mwyr,
+ :inv_cost_charge_dc_per_mwyr,
+ :fixed_om_cost_charge_dc_per_mwyr,
+ :inv_cost_discharge_ac_per_mwyr,
+ :fixed_om_cost_discharge_ac_per_mwyr,
+ :inv_cost_charge_ac_per_mwyr,
+ :fixed_om_cost_charge_ac_per_mwyr,
+ :var_om_cost_per_mwh_solar,
+ :var_om_cost_per_mwh_wind,
+ :var_om_cost_per_mwh_charge_dc,
+ :var_om_cost_per_mwh_discharge_dc,
+ :var_om_cost_per_mwh_charge_ac,
+ :var_om_cost_per_mwh_discharge_ac,
+ :min_retired_cap_inverter_mw,
+ :min_retired_cap_solar_mw,
+ :min_retired_cap_wind_mw,
+ :min_retired_cap_charge_dc_mw,
+ :min_retired_cap_charge_ac_mw,
+ :min_retired_cap_discharge_dc_mw,
+ :min_retired_cap_discharge_ac_mw]
+ scale_columns!(vre_stor_in, columns_to_scale, scale_factor)
+ return nothing
+end
+
+"""
+ scale_columns!(df::DataFrame, columns_to_scale::Vector{Symbol}, scale_factor::Float64)
+
+Scales in-place the columns in `columns_to_scale` of a dataframe `df` by a `scale_factor`.
+
+# Arguments
+- `df` (DataFrame): A dataframe containing data to scale.
+- `columns_to_scale` (Vector{Symbol}): A vector of column names to scale.
+- `scale_factor` (Float64): A scaling factor for energy and currency units.
+
+"""
+function scale_columns!(df::DataFrame, columns_to_scale::Vector{Symbol}, scale_factor::Float64)
+ for column in columns_to_scale
+ if string(column) in names(df)
+ df[!, column] /= scale_factor
+ end
+ end
+ return nothing
+end
+
+"""
+ load_resource_df(path::AbstractString, scale_factor::Float64, resource_type::Type)
+
+Function to load and scale the dataframe of a given resource.
+
+# Arguments
+- `path::AbstractString`: Path to the resource dataframe.
+- `scale_factor::Float64`: Scaling factor for the resource data.
+- `resource_type::Type`: GenX type of the resource.
+
+# Returns
+- `resource_in::DataFrame`: The loaded and scaled resource data.
+
+"""
+function load_resource_df(path::AbstractString, scale_factor::Float64, resource_type::Type)
+ resource_in = load_dataframe(path)
+ # rename columns lowercase for internal consistency
+ rename!(resource_in, lowercase.(names(resource_in)))
+ scale_resources_data!(resource_in, scale_factor)
+ # scale vre_stor columns if necessary
+ resource_type == VreStorage && scale_vre_stor_data!(resource_in, scale_factor)
+ return resource_in
+end
+
+"""
+ compute_resource_indices(resources_in::DataFrame, offset::Int64)
+
+Computes the indices for the resources loaded from a single dataframe by shifting the indices by an offset value.
+
+# Arguments
+- `resources_in::DataFrame`: The input DataFrame containing the resources.
+- `offset::Int64`: The offset value to be added to the indices.
+
+# Returns
+- `UnitRange{Int64}`: An array of indices.
+
+"""
+function compute_resource_indices(resources_in::DataFrame, offset::Int64)
+ range = (1,nrow(resources_in)) .+ offset
+ return UnitRange{Int64}(range...)
+end
+
+"""
+ add_id_to_resource_df!(df::DataFrame, indices::AbstractVector)
+
+Adds a new column 'id' to the DataFrame with the provided resource indices. The dataframe is modified in-place.
+
+# Arguments
+- `df::DataFrame`: The input DataFrame to which the indices are to be added.
+- `indices::AbstractVector`: The array of indices to be added as a new column.
+"""
+function add_id_to_resource_df!(df::DataFrame, indices::AbstractVector)
+ df[!, :id] = indices
+ return nothing
+end
+
+"""
+ dataframerow_to_dict(dfr::DataFrameRow)
+
+Converts a DataFrameRow to a Dict.
+
+# Arguments
+- `dfr::DataFrameRow`: The DataFrameRow to be converted.
+
+# Returns
+- `Dict`: Dictionary containing the DataFrameRow data.
+"""
+function dataframerow_to_dict(dfr::DataFrameRow)
+ return Dict(pairs(dfr))
+end
+
+"""
+ create_resources_sametype(resource_in::DataFrame, ResourceType)
+
+This function takes a DataFrame `resource_in` and a GenX `ResourceType` type, and converts the DataFrame to an array of AbstractResource of the specified type.
+
+# Arguments
+- `resource_in::DataFrame`: The input DataFrame containing the resources belonging to a specific type.
+- `ResourceType`: The GenX type of resources to be converted to.
+
+# Returns
+- `resources::Vector{ResourceType}`: An array of resources of the specified type.
+"""
+function create_resources_sametype(resource_in::DataFrame, ResourceType)
+ # convert dataframe to array of resources of correct type
+ resources::Vector{ResourceType} = ResourceType.(dataframerow_to_dict.(eachrow(resource_in)))
+ return resources
+end
+
+"""
+ create_resource_array(resource_folder::AbstractString, resources_info::NamedTuple, scale_factor::Float64=1.0)
+
+Construct the array of resources from multiple files of different types located in the specified `resource_folder`. The `resources_info` NamedTuple contains the filename and GenX type for each type of resource available in GenX.
+
+# Arguments
+- `resource_folder::AbstractString`: The path to the folder containing the resource files.
+- `resources_info::NamedTuple`: A NamedTuple that maps a resource type to its filename and GenX type.
+- `scale_factor::Float64`: A scaling factor to adjust the attributes of the resources (default: 1.0).
+
+# Returns
+- `Vector{AbstractResource}`: An array of GenX resources.
+
+# Raises
+- `Error`: If no resources data is found. Check the data path or the configuration file "genx_settings.yml" inside Settings.
+
+"""
+function create_resource_array(resource_folder::AbstractString, resources_info::NamedTuple, scale_factor::Float64=1.0)
+ resource_id_offset = 0
+ resources = []
+ # loop over available types and load all resources in resource_folder
+ for (filename, resource_type) in values(resources_info)
+ df_path = joinpath(resource_folder, filename)
+ # if file exists, load resources of a single resource_type
+ if isfile(df_path)
+ resource_in = load_resource_df(df_path, scale_factor, resource_type)
+ # compute indices for resources of a given type and add them to dataframe
+ resources_indices = compute_resource_indices(resource_in, resource_id_offset)
+ add_id_to_resource_df!(resource_in, resources_indices)
+ resources_same_type = create_resources_sametype(resource_in, resource_type)
+ push!(resources, resources_same_type)
+ # update id offset for next type of resources
+ resource_id_offset += length(resources_same_type)
+ @info filename * " Successfully Read."
+ end
+ end
+ isempty(resources) && error("No resources data found. Check data path or configuration file \"genx_settings.yml\" inside Settings.")
+ return reduce(vcat, resources)
+end
+
+@doc raw"""
+ check_mustrun_reserve_contribution(r::AbstractResource)
+
+Make sure that a MUST_RUN resource has Reg_Max and Rsv_Max set to 0 (since they cannot contribute to reserves).
+"""
+function check_mustrun_reserve_contribution(r::AbstractResource)
+ applicable_resources = MustRun
+ error_strings = String[]
+
+ if !isa(r, applicable_resources)
+ # not MUST_RUN so the rest is not applicable
+ return error_strings
+ end
+
+ reg_max_r = reg_max(r)
+ if reg_max_r != 0
+ e = string("Resource ", resource_name(r), " is of MUST_RUN type but :Reg_Max = ", reg_max_r, ".\n",
+ "MUST_RUN units must have Reg_Max = 0 since they cannot contribute to reserves.")
+ push!(error_strings, e)
+ end
+
+ rsv_max_r = rsv_max(r)
+ if rsv_max_r != 0
+ e = string("Resource ", resource_name(r), " is of MUST_RUN type but :Rsv_Max = ", rsv_max_r, ".\n",
+ "MUST_RUN units must have Rsv_Max = 0 since they cannot contribute to reserves.")
+ push!(error_strings, e)
+ end
+ return error_strings
+end
+
+function check_LDS_applicability(r::AbstractResource)
+ applicable_resources = Union{Storage, Hydro}
+ error_strings = String[]
+
+ not_set = default_zero
+ lds_value = get(r, :lds, not_set)
+
+ # LDS is available only for Hydro and Storage
+ if !isa(r, applicable_resources) && lds_value > 0
+ e = string("Resource ", resource_name(r), " has :lds = ", lds_value, ".\n",
+ "This setting is valid only for resources where the type is one of $applicable_resources.")
+ push!(error_strings, e)
+ end
+ return error_strings
+end
+
+function check_maintenance_applicability(r::AbstractResource)
+ applicable_resources = Thermal
+
+ not_set = default_zero
+ maint_value = get(r, :maint, not_set)
+
+ error_strings = String[]
+
+ if maint_value == not_set
+ # not MAINT so the rest is not applicable
+ return error_strings
+ end
+
+ # MAINT is available only for Thermal
+ if !isa(r, applicable_resources) && maint_value > 0
+ e = string("Resource ", resource_name(r), " has :maint = ", maint_value, ".\n",
+ "This setting is valid only for resources where the type is one of $applicable_resources.")
+ push!(error_strings, e)
+ end
+ if get(r, :model, not_set) == 2
+ e = string("Resource ", resource_name(r), " has :maint = ", maint_value, ".\n",
+ "This is valid only for resources with unit commitment (:model = 1);\n",
+ "this has :model = 2.")
+ push!(error_strings, e)
+ end
+ return error_strings
+end
+
+function check_resource(r::AbstractResource)::Vector{String}
+ e = String[]
+ e = [e; check_LDS_applicability(r)]
+ e = [e; check_maintenance_applicability(r)]
+ e = [e; check_mustrun_reserve_contribution(r)]
+ return e
+end
+
+@doc raw"""
+check_resource(resources::T)::Vector{String} where T <: Vector{AbstractResource}
+
+Validate the consistency of a vector of GenX resources
+Reports any errors in a list of strings.
+"""
+function check_resource(resources::T)::Vector{String} where T <: Vector{AbstractResource}
+ e = String[]
+ for r in resources
+ e = [e; check_resource(r)]
+ end
+ return e
+end
+
+function announce_errors_and_halt(e::Vector{String})
+ error_count = length(e)
+ for error_message in e
+ @error(error_message)
+ end
+ s = string(error_count, " problems were detected with the input data. Halting.")
+ error(s)
+end
+
+function validate_resources(resources::T) where T <: Vector{AbstractResource}
+ e = check_resource(resources)
+ if length(e) > 0
+ announce_errors_and_halt(e)
+ end
+end
+
+"""
+ create_resources(setup::Dict, case_path::AbstractString)
+
+Function that loads and scales resources data from folder specified in `setup["ResourcePath"] and returns an array of GenX resources.
+
+# Arguments
+- `setup (Dict)`: Dictionary containing GenX settings.
+- `case_path (AbstractString)`: The path to the case.
+
+# Returns
+- `resources (Vector{AbstractResource})`: An array of scaled resources.
+
+"""
+function create_resource_array(setup::Dict, case_path::AbstractString)
+ scale_factor = setup["ParameterScale"] == 1 ? ModelScalingFactor : 1.0
+
+ resources_folder = setup["ResourcePath"]
+ resources_folder = joinpath(case_path,resources_folder)
+
+ # get filename and GenX type for each type of resources available in GenX
+ resources_info = _get_resource_info()
+
+ # load each resource type, scale data and return array of resources
+ resources = create_resource_array(resources_folder, resources_info, scale_factor)
+ # validate input before returning resources
+ validate_resources(resources)
+ return resources
+end
+
+"""
+ validate_policy_dataframe!(filename::AbstractString, policy_in::DataFrame)
+
+Validate the policy dataframe by checking if it has any attributes and if the column names are valid. The dataframe is modified in-place.
+
+# Arguments
+- `filename::AbstractString`: The name of the policy file.
+- `policy_in::DataFrame`: The policy dataframe.
+"""
+function validate_policy_dataframe!(filename::AbstractString, policy_in::DataFrame)
+ cols = names(policy_in)
+ n_cols = length(cols)
+ # check if policy file has any attributes
+ if n_cols == 1
+ msg = "No policy attributes found in policy file: " * filename
+ error(msg)
+ end
+ # if the single column attribute does not have a tag number, add a tag number of 1
+ if n_cols == 2 && cols[2][end-1:end] != "_1"
+ rename!(policy_in, Symbol.(cols[2]) => Symbol.(cols[2], "_1"))
+ end
+ # get policy column names
+ cols = lowercase.(names(policy_in))
+ filter!(col -> col ≠ "resource",cols)
+
+ accepted_cols = ["derating_factor", "esr", "esr_vrestor",
+ [string(cap, type) for cap in ["min_cap", "max_cap"] for type in ("", "_stor", "_solar", "_wind")]...]
+
+ # Check that all policy columns have names in accepted_cols
+ if !all(x -> replace(x, r"(_*|_*\d*)$" => "") in accepted_cols, cols)
+ msg = "The accepted policy columns are: " * join(accepted_cols, ", ")
+ msg *= "\nCheck policy file: " * filename
+ error(msg)
+ end
+ # Check that all policy columns have names with format "[policy_name]_[tagnum]"
+ if !all(any([occursin(Regex("$(y)")*r"_\d", col) for y in accepted_cols]) for col in cols)
+ msg = "Columns in policy file $filename must have names with format \"[policy_name]_[tagnum]\", case insensitive. (e.g., ESR_1, Min_Cap_1, Max_Cap_2, etc.)."
+ error(msg)
+ end
+ return nothing
+end
+
+"""
+ add_attributes_to_resource!(resource::AbstractResource, new_symbols::Vector{Symbol}, new_values::T) where T <: DataFrameRow
+
+Adds a set of new attributes (names and corresponding values) to a resource if their values are different from zero. The resource is modified in-place.
+
+# Arguments
+- `resource::AbstractResource`: The resource to add attributes to.
+- `new_symbols::Vector{Symbol}`: Vector of symbols containing the names of the new attributes.
+- `new_values::DataFrameRow`: DataFrameRow containing the values of the new attributes.
+
+"""
+function add_attributes_to_resource!(resource::AbstractResource, new_symbols::Vector{Symbol}, new_values::T) where T <: DataFrameRow
+ # loop over new attributes
+ for (sym, value) in zip(new_symbols, new_values)
+ # add attribute to resource if value is not zero
+ value ≠ 0 && setproperty!(resource, sym, value)
+ end
+ return nothing
+end
+
+"""
+ add_df_to_resources!(resources::Vector{<:AbstractResource}, module_in::DataFrame)
+
+Adds the data contained in a `DataFrame` to a vector of resources. Each row in the `DataFrame` corresponds to a resource. If the name of the resource in the `DataFrame` matches a name of a resource in the model, all the columns of that DataFrameRow are added as new attributes to the corresponding resource.
+
+# Arguments
+- `resources::Vector{<:AbstractResource}`: A vector of resources.
+- `module_in::DataFrame`: The dataframe to add.
+"""
+function add_df_to_resources!(resources::Vector{<:AbstractResource}, module_in::DataFrame)
+ # rename columns lowercase to ensure consistency with resources
+ rename!(module_in, lowercase.(names(module_in)))
+ # extract columns of module. They will be added as new attributes to resources
+ new_sym = Symbol.(filter(x -> x ≠ "resource", names(module_in)))
+ # loop oper rows of module and add new attributes to resources
+ for row in eachrow(module_in)
+ resource_name = row[:resource]
+ resource = resource_by_name(resources, resource_name)
+ new_values = row[new_sym]
+ add_attributes_to_resource!(resource, new_sym, new_values)
+ end
+ return nothing
+end
+
+"""
+ add_policy_to_resources!(resources::Vector{<:AbstractResource}, path::AbstractString, filename::AbstractString)
+
+Loads a single policy file and adds the columns as new attributes to resources in the model if the resource name in the policy file matches a resource name in the model. The policy file is assumed to have a column named "resource" containing the resource names.
+
+# Arguments
+- `resources::Vector{<:AbstractResource}`: A vector of resources.
+- `path::AbstractString`: The path to the policy file.
+- `filename::AbstractString`: The name of the policy file.
+"""
+function add_policy_to_resources!(resources::Vector{<:AbstractResource}, path::AbstractString, filename::AbstractString)
+ policy_in = load_dataframe(path)
+ # check if policy file has any attributes, validate column names
+ validate_policy_dataframe!(filename, policy_in)
+ # add policy columns to resources as new attributes
+ add_df_to_resources!(resources, policy_in)
+ return nothing
+end
+
+"""
+ add_policies_to_resources!(resources::Vector{<:AbstractResource}, setup::Dict, case_path::AbstractString)
+
+Reads policy files and adds policies-related attributes to resources in the model.
+
+# Arguments
+- `resources::Vector{<:AbstractResource}`: Vector of resources in the model.
+- `setup (Dict)`: Dictionary containing GenX settings.
+- `case_path::AbstractString`: The path to the case.
+"""
+function add_policies_to_resources!(resources::Vector{<:AbstractResource}, setup::Dict, case_path::AbstractString)
+ policy_folder = setup["ResourcePath"]
+ policy_folder = joinpath(case_path, policy_folder)
+ # get filename for each type of policy available in GenX
+ policies_info = _get_policyfile_info()
+ # loop over policy files
+ for filename in values(policies_info)
+ path = joinpath(policy_folder, filename)
+ # if file exists, add policy to resources
+ if isfile(path)
+ add_policy_to_resources!(resources, path, filename)
+ @info filename * " Successfully Read."
+ end
+ end
+ return nothing
+end
+
+"""
+ add_module_to_resources!(resources::Vector{<:AbstractResource}, module_in::DataFrame)
+
+Reads module dataframe and adds columns as new attributes to the resources in the model if the resource name in the module file matches a resource name in the model. The module file is assumed to have a column named "resource" containing the resource names.
+
+# Arguments
+- `resources::Vector{<:AbstractResource}`: A vector of resources.
+- `module_in::DataFrame`: The dataframe with the columns to add to the resources.
+"""
+function add_module_to_resources!(resources::Vector{<:AbstractResource}, module_in::DataFrame)
+ # add module columns to resources as new attributes
+ add_df_to_resources!(resources, module_in)
+ return nothing
+end
+
+"""
+ add_modules_to_resources!(resources::Vector{<:AbstractResource}, setup::Dict, case_path::AbstractString)
+
+Reads module dataframes, loops over files and adds columns as new attributes to the resources in the model.
+
+# Arguments
+- `resources::Vector{<:AbstractResource}`: A vector of resources.
+- `setup (Dict)`: A dictionary containing GenX settings.
+- `case_path::AbstractString`: The path to the case.
+"""
+function add_modules_to_resources!(resources::Vector{<:AbstractResource}, setup::Dict, case_path::AbstractString)
+ modules = Vector{DataFrame}()
+
+ module_folder = setup["ResourcePath"]
+ module_folder = joinpath(case_path, module_folder)
+
+ ## Load all modules and add them to the list of modules to be added to resources
+ # Add multistage if multistage is activated
+ if setup["MultiStage"] == 1
+ filename = joinpath(module_folder, "Resource_multistage_data.csv")
+ multistage_in = load_multistage_dataframe(filename)
+ push!(modules, multistage_in)
+ @info "Multistage data successfully read."
+ end
+
+ ## Loop over modules and add attributes to resources
+ add_module_to_resources!.(Ref(resources), modules)
+
+ return nothing
+end
+
+function validate_piecewisefuelusage(heat_rate_mat, load_point_mat)
+ # it's possible to construct piecewise fuel consumption with n of heat rate and n-1 of load point.
+ # if a user feed n of heat rate and more than n of load point, throw a error message, and then use
+ # n of heat rate and n-1 load point to construct the piecewise fuel usage fuction
+ if size(heat_rate_mat)[2] < size(load_point_mat)[2]
+ @error """ The numbers of heatrate data are less than load points, we found $(size(heat_rate_mat)[2]) of heat rate,
+ and $(size(load_point_mat)[2]) of load points. We will just use $(size(heat_rate_mat)[2]) of heat rate, and $(size(heat_rate_mat)[2]-1)
+ load point to create piecewise fuel usage
+ """
+ end
+
+ # check if values for piecewise fuel consumption make sense. Negative heat rate or load point are not allowed
+ if any(heat_rate_mat .< 0) | any(load_point_mat .< 0)
+ @error """ Neither heat rate nor load point can be negative
+ """
+ error("Invalid inputs detected for piecewise fuel usage")
+ end
+ # for non-zero values, heat rates and load points should follow an increasing trend
+ if any([any(diff(filter(!=(0), row)) .< 0) for row in eachrow(heat_rate_mat)])
+ @error """ Heat rates should follow an increasing trend
+ """
+ error("Invalid inputs detected for piecewise fuel usage")
+ elseif any([any(diff(filter(!=(0), row)) .< 0) for row in eachrow(load_point_mat)])
+ @error """load points should follow an increasing trend
+ """
+ error("Invalid inputs detected for piecewise fuel usage")
+ end
+end
+
+"""
+ process_piecewisefuelusage!(setup::Dict, case_path::AbstractString, gen::Vector{<:AbstractResource}, inputs::Dict)
+
+Reads piecewise fuel usage data from the vector of generators, create a PWFU_data that contain processed intercept and slope (i.e., heat rate) and add them to the inputs dictionary.
+
+# Arguments
+- `setup::Dict`: The dictionary containing the setup parameters
+- `case_path::AbstractString`: The path to the case folder
+- `gen::Vector{<:AbstractResource}`: The vector of generators in the model
+- `inputs::Dict`: The dictionary containing the input data
+"""
+function process_piecewisefuelusage!(setup::Dict, gen::Vector{<:AbstractResource}, inputs::Dict)
+ inputs["PWFU_Num_Segments"] = 0
+ inputs["THERM_COMMIT_PWFU"] = Int64[]
+
+ if any(haskey.(gen, :pwfu_fuel_usage_zero_load_mmbtu_per_h))
+
+ thermal_gen = gen.Thermal
+ has_pwfu = haskey.(thermal_gen, :pwfu_fuel_usage_zero_load_mmbtu_per_h)
+ @assert all(has_pwfu) "Piecewise fuel usage data is not consistent across thermal generators"
+
+ heat_rate_mat_therm = extract_matrix_from_resources(thermal_gen, "pwfu_heat_rate_mmbtu_per_mwh")
+ load_point_mat_therm = extract_matrix_from_resources(thermal_gen, "pwfu_load_point_mw")
+
+ num_segments = size(heat_rate_mat_therm)[2]
+
+ # create a matrix to store the heat rate and load point for each generator in the model
+ heat_rate_mat = zeros(length(gen), num_segments)
+ load_point_mat = zeros(length(gen), num_segments)
+ THERM = thermal(gen)
+ heat_rate_mat[THERM, :] = heat_rate_mat_therm
+ load_point_mat[THERM, :] = load_point_mat_therm
+
+ # check data input
+ validate_piecewisefuelusage(heat_rate_mat, load_point_mat)
+
+ # determine if a generator contains piecewise fuel usage segment based on non-zero heatrate
+ nonzero_rows = any(heat_rate_mat .!= 0 , dims = 2)[:]
+ HAS_PWFU = resource_id.(gen[nonzero_rows])
+
+ # translate the inital fuel usage, heat rate, and load points into intercept for each segment
+ fuel_usage_zero_load = zeros(length(gen))
+ fuel_usage_zero_load[THERM] = pwfu_fuel_usage_zero_load_mmbtu_per_h.(thermal_gen)
+ # construct a matrix for intercept
+ intercept_mat = zeros(size(heat_rate_mat))
+ # PWFU_Fuel_Usage_MMBTU_per_h is always the intercept of the first segment
+ intercept_mat[:,1] = fuel_usage_zero_load
+
+ # create a function to compute intercept if we have more than one segment
+ function calculate_intercepts(slope, intercept_1, load_point)
+ m, n = size(slope)
+ # Initialize the intercepts matrix with zeros
+ intercepts = zeros(m, n)
+ # The first segment's intercepts should be intercept_1 vector
+ intercepts[:, 1] = intercept_1
+ # Calculate intercepts for the other segments using the load points (i.e., intersection points)
+ for j in 1:n-1
+ for i in 1:m
+ current_slope = slope[i, j+1]
+ previous_slope = slope[i, j]
+ # If the current slope is 0, then skip the calculation and return 0
+ if current_slope == 0
+ intercepts[i, j+1] = 0.0
+ else
+ # y = a*x + b; => b = y - ax
+ # Calculate y-coordinate of the intersection
+ y = previous_slope * load_point[i, j] + intercepts[i, j]
+ # determine the new intercept
+ b = y - current_slope * load_point[i, j]
+ intercepts[i, j+1] = b
+ end
+ end
+ end
+ return intercepts
+ end
+
+ if num_segments > 1
+ # determine the intercept for the rest of segment if num_segments > 1
+ intercept_mat = calculate_intercepts(heat_rate_mat, fuel_usage_zero_load, load_point_mat)
+ end
+
+ # create a PWFU_data that contain processed intercept and slope (i.e., heat rate)
+ intercept_cols = [Symbol("pwfu_intercept_", i) for i in 1:num_segments]
+ intercept_df = DataFrame(intercept_mat, Symbol.(intercept_cols))
+ slope_cols = Symbol.(filter(colname -> startswith(string(colname),"pwfu_heat_rate_mmbtu_per_mwh"), collect(attributes(thermal_gen[1]))))
+ sort!(slope_cols, by = x -> parse(Int, split(string(x), "_")[end]))
+ slope_df = DataFrame(heat_rate_mat, Symbol.(slope_cols))
+ PWFU_data = hcat(slope_df, intercept_df)
+ # no need to scale sclope, but intercept should be scaled when parameterscale is on (MMBTU -> billion BTU)
+ scale_factor = setup["ParameterScale"] == 1 ? ModelScalingFactor : 1
+ PWFU_data[!, intercept_cols] ./= scale_factor
+
+ inputs["slope_cols"] = slope_cols
+ inputs["intercept_cols"] = intercept_cols
+ inputs["PWFU_data"] = PWFU_data
+ inputs["PWFU_Num_Segments"] = num_segments
+ inputs["THERM_COMMIT_PWFU"] = intersect(ids_with_unit_commitment(gen), resource_id.(gen[HAS_PWFU]))
+
+ @info "Piecewise fuel usage data successfully read!"
+ end
+ return nothing
+end
+
+@doc raw"""
+ split_storage_resources!(inputs::Dict, gen::Vector{<:AbstractResource})
+
+For co-located VRE-storage resources, this function returns the storage type
+ (1. long-duration or short-duration storage, 2. symmetric or asymmetric storage)
+ for charging and discharging capacities
+"""
+function split_storage_resources!(inputs::Dict, gen::Vector{<:AbstractResource})
+
+ # All Storage Resources
+ inputs["VS_STOR"] = union(storage_dc_charge(gen), storage_dc_discharge(gen),
+ storage_ac_charge(gen), storage_ac_discharge(gen))
+
+ STOR = inputs["VS_STOR"]
+
+ # Storage DC Discharge Resources
+ inputs["VS_STOR_DC_DISCHARGE"] = storage_dc_discharge(gen)
+ inputs["VS_SYM_DC_DISCHARGE"] = storage_sym_dc_discharge(gen)
+ inputs["VS_ASYM_DC_DISCHARGE"] = storage_asym_dc_discharge(gen)
+
+ # Storage DC Charge Resources
+ inputs["VS_STOR_DC_CHARGE"] = storage_dc_charge(gen)
+ inputs["VS_SYM_DC_CHARGE"] = storage_sym_dc_charge(gen)
+ inputs["VS_ASYM_DC_CHARGE"] = storage_asym_dc_charge(gen)
+
+ # Storage AC Discharge Resources
+ inputs["VS_STOR_AC_DISCHARGE"] = storage_ac_discharge(gen)
+ inputs["VS_SYM_AC_DISCHARGE"] = storage_sym_ac_discharge(gen)
+ inputs["VS_ASYM_AC_DISCHARGE"] = storage_asym_ac_discharge(gen)
+
+ # Storage AC Charge Resources
+ inputs["VS_STOR_AC_CHARGE"] = storage_ac_charge(gen)
+ inputs["VS_SYM_AC_CHARGE"] = storage_sym_ac_charge(gen)
+ inputs["VS_ASYM_AC_CHARGE"] = storage_asym_ac_charge(gen)
+
+ # Storage LDS & Non-LDS Resources
+ inputs["VS_LDS"] = is_LDS_VRE_STOR(gen)
+ inputs["VS_nonLDS"] = setdiff(STOR, inputs["VS_LDS"])
+
+ # Symmetric and asymmetric storage resources
+ inputs["VS_ASYM"] = union(inputs["VS_ASYM_DC_CHARGE"], inputs["VS_ASYM_DC_DISCHARGE"],
+ inputs["VS_ASYM_AC_DISCHARGE"], inputs["VS_ASYM_AC_CHARGE"])
+ inputs["VS_SYM_DC"] = intersect(inputs["VS_SYM_DC_CHARGE"], inputs["VS_SYM_DC_DISCHARGE"])
+ inputs["VS_SYM_AC"] = intersect(inputs["VS_SYM_AC_CHARGE"], inputs["VS_SYM_AC_DISCHARGE"])
+
+ # Send warnings for symmetric/asymmetric resources
+ if (!isempty(setdiff(inputs["VS_SYM_DC_DISCHARGE"], inputs["VS_SYM_DC_CHARGE"]))
+ || !isempty(setdiff(inputs["VS_SYM_DC_CHARGE"], inputs["VS_SYM_DC_DISCHARGE"]))
+ || !isempty(setdiff(inputs["VS_SYM_AC_DISCHARGE"], inputs["VS_SYM_AC_CHARGE"]))
+ || !isempty(setdiff(inputs["VS_SYM_AC_CHARGE"], inputs["VS_SYM_AC_DISCHARGE"])))
+ @warn("Symmetric capacities must both be DC or AC.")
+ end
+
+ # Send warnings for battery resources discharging
+ if !isempty(intersect(inputs["VS_STOR_DC_DISCHARGE"], inputs["VS_STOR_AC_DISCHARGE"]))
+ @warn("Both AC and DC discharging functionalities are turned on.")
+ end
+
+ # Send warnings for battery resources charging
+ if !isempty(intersect(inputs["VS_STOR_DC_CHARGE"], inputs["VS_STOR_AC_CHARGE"]))
+ @warn("Both AC and DC charging functionalities are turned on.")
+ end
+end
+
+"""
+ add_resources_to_input_data!(inputs::Dict, setup::Dict, case_path::AbstractString, gen::Vector{<:AbstractResource})
+
+Adds resources to the `inputs` `Dict` with the key "RESOURCES" together with sevaral sets of resource indices that are used inside GenX to construct the optimization problem. The `inputs` `Dict` is modified in-place.
+
+# Arguments
+- `inputs (Dict)`: Dictionary to store the GenX input data.
+- `setup (Dict)`: Dictionary containing GenX settings.
+- `case_path (AbstractString)`: Path to the case.
+- `gen (Vector{<:AbstractResource})`: Array of GenX resources.
+
+"""
+function add_resources_to_input_data!(inputs::Dict, setup::Dict, case_path::AbstractString, gen::Vector{<:AbstractResource})
+
+ # Number of resources
+ G = length(gen)
+ inputs["G"] = G
+
+ # Number of time steps (periods)
+ T = inputs["T"]
+
+ ## HYDRO
+ # Set of all reservoir hydro resources
+ inputs["HYDRO_RES"] = hydro(gen)
+ # Set of hydro resources modeled with known reservoir energy capacity
+ if !isempty(inputs["HYDRO_RES"])
+ inputs["HYDRO_RES_KNOWN_CAP"] = intersect(inputs["HYDRO_RES"], ids_with(gen, hydro_energy_to_power_ratio))
+ end
+
+ ## STORAGE
+ # Set of storage resources with symmetric charge/discharge capacity
+ inputs["STOR_SYMMETRIC"] = symmetric_storage(gen)
+ # Set of storage resources with asymmetric (separte) charge/discharge capacity components
+ inputs["STOR_ASYMMETRIC"] = asymmetric_storage(gen)
+ # Set of all storage resources
+ inputs["STOR_ALL"] = union(inputs["STOR_SYMMETRIC"],inputs["STOR_ASYMMETRIC"])
+
+ # Set of storage resources with long duration storage capabilitites
+ inputs["STOR_HYDRO_LONG_DURATION"] = intersect(inputs["HYDRO_RES"], is_LDS(gen))
+ inputs["STOR_HYDRO_SHORT_DURATION"] = intersect(inputs["HYDRO_RES"], is_SDS(gen))
+ inputs["STOR_LONG_DURATION"] = intersect(inputs["STOR_ALL"], is_LDS(gen))
+ inputs["STOR_SHORT_DURATION"] = intersect(inputs["STOR_ALL"], is_SDS(gen))
+
+ ## VRE
+ # Set of controllable variable renewable resources
+ inputs["VRE"] = vre(gen)
+
+ ## FLEX
+ # Set of flexible demand-side resources
+ inputs["FLEX"] = flex_demand(gen)
+
+ ## TODO: MUST_RUN
+ # Set of must-run plants - could be behind-the-meter PV, hydro run-of-river, must-run fossil or thermal plants
+ inputs["MUST_RUN"] = must_run(gen)
+
+ ## ELECTROLYZER
+ # Set of hydrogen electolyzer resources:
+ inputs["ELECTROLYZER"] = electrolyzer(gen)
+
+ ## Retrofit
+ inputs["RETRO"] = ids_with_retrofit(gen)
+ # Disable Retrofit while it's under development
+ if !(isempty(inputs["RETRO"]))
+ error("The Retrofits feature, which is activated by nonzero data in a 'RETRO' column in any of the resource .csv files, is under development and is not ready for public use. Disable this message to enable this *experimental* feature.")
+ end
+
+ ## Reserves
+ if setup["Reserves"] >= 1
+ # Set for resources with regulation reserve requirements
+ inputs["REG"] = ids_with_regulation_reserve_requirements(gen)
+ # Set for resources with spinning reserve requirements
+ inputs["RSV"] = ids_with_spinning_reserve_requirements(gen)
+ end
+
+ ## THERM
+ # Set of all thermal resources
+ inputs["THERM_ALL"] = thermal(gen)
+ # Unit commitment
+ if setup["UCommit"] >= 1
+ # Set of thermal resources with unit commitment
+ inputs["THERM_COMMIT"] = ids_with_unit_commitment(gen)
+ # Set of thermal resources without unit commitment
+ inputs["THERM_NO_COMMIT"] = no_unit_commitment(gen)
+ # Start-up cost is sum of fixed cost per start startup
+ inputs["C_Start"] = zeros(Float64, G, T)
+ for g in inputs["THERM_COMMIT"]
+ start_up_cost = start_cost_per_mw(gen[g]) * cap_size(gen[g])
+ inputs["C_Start"][g,:] .= start_up_cost
+ end
+ # Piecewise fuel usage option
+ process_piecewisefuelusage!(setup, gen, inputs)
+ else
+ # Set of thermal resources with unit commitment
+ inputs["THERM_COMMIT"] = []
+ # Set of thermal resources without unit commitment
+ inputs["THERM_NO_COMMIT"] = inputs["THERM_ALL"]
+ end
+ # For now, the only resources eligible for UC are themal resources
+ inputs["COMMIT"] = inputs["THERM_COMMIT"]
+
+ buildable = is_buildable(gen)
+ retirable = is_retirable(gen)
+
+ # Set of all resources eligible for new capacity
+ inputs["NEW_CAP"] = intersect(buildable, ids_with(gen, max_cap_mw))
+ # Set of all resources eligible for capacity retirements
+ inputs["RET_CAP"] = intersect(retirable, ids_with_nonneg(gen, existing_cap_mw))
+
+ new_cap_energy = Set{Int64}()
+ ret_cap_energy = Set{Int64}()
+ if !isempty(inputs["STOR_ALL"])
+ # Set of all storage resources eligible for new energy capacity
+ new_cap_energy = intersect(buildable, ids_with(gen, max_cap_mwh), inputs["STOR_ALL"])
+ # Set of all storage resources eligible for energy capacity retirements
+ ret_cap_energy = intersect(retirable, ids_with_nonneg(gen, existing_cap_mwh), inputs["STOR_ALL"])
+ end
+ inputs["NEW_CAP_ENERGY"] = new_cap_energy
+ inputs["RET_CAP_ENERGY"] = ret_cap_energy
+
+ new_cap_charge = Set{Int64}()
+ ret_cap_charge = Set{Int64}()
+ if !isempty(inputs["STOR_ASYMMETRIC"])
+ # Set of asymmetric charge/discharge storage resources eligible for new charge capacity
+ new_cap_charge = intersect(buildable, ids_with(gen, max_charge_cap_mw), inputs["STOR_ASYMMETRIC"])
+ # Set of asymmetric charge/discharge storage resources eligible for charge capacity retirements
+ ret_cap_charge = intersect(buildable, ids_with_nonneg(gen, existing_charge_cap_mw), inputs["STOR_ASYMMETRIC"])
+ end
+ inputs["NEW_CAP_CHARGE"] = new_cap_charge
+ inputs["RET_CAP_CHARGE"] = ret_cap_charge
+
+ ## Co-located resources
+ # VRE and storage
+ inputs["VRE_STOR"] = vre_stor(gen)
+ # Check if VRE-STOR resources exist
+ if !isempty(inputs["VRE_STOR"])
+ # Solar PV Resources
+ inputs["VS_SOLAR"] = solar(gen)
+
+ # DC Resources
+ inputs["VS_DC"] = union(storage_dc_discharge(gen), storage_dc_charge(gen), solar(gen))
+
+ # Wind Resources
+ inputs["VS_WIND"] = wind(gen)
+
+ # Storage Resources
+ split_storage_resources!(inputs, gen)
+
+ gen_VRE_STOR = gen.VreStorage
+ # Set of all VRE-STOR resources eligible for new solar capacity
+ inputs["NEW_CAP_SOLAR"] = intersect(buildable, solar(gen), ids_with(gen_VRE_STOR, max_cap_solar_mw))
+ # Set of all VRE_STOR resources eligible for solar capacity retirements
+ inputs["RET_CAP_SOLAR"] = intersect(retirable, solar(gen), ids_with_nonneg(gen_VRE_STOR, existing_cap_solar_mw))
+ # Set of all VRE-STOR resources eligible for new wind capacity
+ inputs["NEW_CAP_WIND"] = intersect(buildable, wind(gen), ids_with(gen_VRE_STOR, max_cap_wind_mw))
+ # Set of all VRE_STOR resources eligible for wind capacity retirements
+ inputs["RET_CAP_WIND"] = intersect(retirable, wind(gen), ids_with_nonneg(gen_VRE_STOR, existing_cap_wind_mw))
+ # Set of all VRE-STOR resources eligible for new inverter capacity
+ inputs["NEW_CAP_DC"] = intersect(buildable, ids_with(gen_VRE_STOR, max_cap_inverter_mw), inputs["VS_DC"])
+ # Set of all VRE_STOR resources eligible for inverter capacity retirements
+ inputs["RET_CAP_DC"] = intersect(retirable, ids_with_nonneg(gen_VRE_STOR, existing_cap_inverter_mw), inputs["VS_DC"])
+ # Set of all storage resources eligible for new energy capacity
+ inputs["NEW_CAP_STOR"] = intersect(buildable, ids_with(gen_VRE_STOR, max_cap_mwh), inputs["VS_STOR"])
+ # Set of all storage resources eligible for energy capacity retirements
+ inputs["RET_CAP_STOR"] = intersect(retirable, ids_with_nonneg(gen_VRE_STOR, existing_cap_mwh), inputs["VS_STOR"])
+ if !isempty(inputs["VS_ASYM"])
+ # Set of asymmetric charge DC storage resources eligible for new charge capacity
+ inputs["NEW_CAP_CHARGE_DC"] = intersect(buildable, ids_with(gen_VRE_STOR, max_cap_charge_dc_mw), inputs["VS_ASYM_DC_CHARGE"])
+ # Set of asymmetric charge DC storage resources eligible for charge capacity retirements
+ inputs["RET_CAP_CHARGE_DC"] = intersect(retirable, ids_with_nonneg(gen_VRE_STOR, existing_cap_charge_dc_mw), inputs["VS_ASYM_DC_CHARGE"])
+ # Set of asymmetric discharge DC storage resources eligible for new discharge capacity
+ inputs["NEW_CAP_DISCHARGE_DC"] = intersect(buildable, ids_with(gen_VRE_STOR, max_cap_discharge_dc_mw), inputs["VS_ASYM_DC_DISCHARGE"])
+ # Set of asymmetric discharge DC storage resources eligible for discharge capacity retirements
+ inputs["RET_CAP_DISCHARGE_DC"] = intersect(retirable, ids_with_nonneg(gen_VRE_STOR, existing_cap_discharge_dc_mw), inputs["VS_ASYM_DC_DISCHARGE"])
+ # Set of asymmetric charge AC storage resources eligible for new charge capacity
+ inputs["NEW_CAP_CHARGE_AC"] = intersect(buildable, ids_with(gen_VRE_STOR, max_cap_charge_ac_mw), inputs["VS_ASYM_AC_CHARGE"])
+ # Set of asymmetric charge AC storage resources eligible for charge capacity retirements
+ inputs["RET_CAP_CHARGE_AC"] = intersect(retirable, ids_with_nonneg(gen_VRE_STOR, existing_cap_charge_ac_mw), inputs["VS_ASYM_AC_CHARGE"])
+ # Set of asymmetric discharge AC storage resources eligible for new discharge capacity
+ inputs["NEW_CAP_DISCHARGE_AC"] = intersect(buildable, ids_with(gen_VRE_STOR, max_cap_discharge_ac_mw), inputs["VS_ASYM_AC_DISCHARGE"])
+ # Set of asymmetric discharge AC storage resources eligible for discharge capacity retirements
+ inputs["RET_CAP_DISCHARGE_AC"] = intersect(retirable, ids_with_nonneg(gen_VRE_STOR, existing_cap_discharge_ac_mw), inputs["VS_ASYM_AC_DISCHARGE"])
+ end
+
+ # Names for systemwide resources
+ inputs["RESOURCE_NAMES_VRE_STOR"] = resource_name(gen_VRE_STOR)
+
+ # Names for writing outputs
+ inputs["RESOURCE_NAMES_SOLAR"] = resource_name(gen[inputs["VS_SOLAR"]])
+ inputs["RESOURCE_NAMES_WIND"] = resource_name(gen[inputs["VS_WIND"]])
+ inputs["RESOURCE_NAMES_DC_DISCHARGE"] = resource_name(gen[storage_dc_discharge(gen)])
+ inputs["RESOURCE_NAMES_AC_DISCHARGE"] = resource_name(gen[storage_ac_discharge(gen)])
+ inputs["RESOURCE_NAMES_DC_CHARGE"] = resource_name(gen[storage_dc_charge(gen)])
+ inputs["RESOURCE_NAMES_AC_CHARGE"] = resource_name(gen[storage_ac_charge(gen)])
+
+ inputs["ZONES_SOLAR"] = zone_id(gen[inputs["VS_SOLAR"]])
+ inputs["ZONES_WIND"] = zone_id(gen[inputs["VS_WIND"]])
+ inputs["ZONES_DC_DISCHARGE"] = zone_id(gen[storage_dc_discharge(gen)])
+ inputs["ZONES_AC_DISCHARGE"] = zone_id(gen[storage_ac_discharge(gen)])
+ inputs["ZONES_DC_CHARGE"] = zone_id(gen[storage_dc_charge(gen)])
+ inputs["ZONES_AC_CHARGE"] = zone_id(gen[storage_ac_charge(gen)])
+ end
+
+ # Names of resources
+ inputs["RESOURCE_NAMES"] = resource_name(gen)
+
+ # Zones resources are located in
+ zones = zone_id(gen)
+
+ # Resource identifiers by zone (just zones in resource order + resource and zone concatenated)
+ inputs["R_ZONES"] = zones
+ inputs["RESOURCE_ZONES"] = inputs["RESOURCE_NAMES"] .* "_z" .* string.(zones)
+
+ # Fuel
+ inputs["HAS_FUEL"] = ids_with_fuel(gen)
+
+ inputs["RESOURCES"] = gen
+ return nothing
+end
+
+"""
+ summary(rs::Vector{<:AbstractResource})
+
+Prints a summary of the resources loaded into the model.
+
+# Arguments
+- `rs (Vector{<:AbstractResource})`: An array of GenX resources.
+"""
+function summary(rs::Vector{<:AbstractResource})
+ rs_summary_names = _get_summary_map()
+ line_width = 55
+ println("\nSummary of resources loaded into the model:")
+ println(repeat("-", line_width))
+ println("\tResource type \t\tNumber of resources")
+ println(repeat("=", line_width))
+ for r_type ∈ resource_types
+ num_rs = length(rs[nameof.(typeof.(rs)) .== r_type])
+ if num_rs > 0
+ r_type ∉ keys(rs_summary_names) && error("Resource type $r_type not found in summary map. Please add it to the map.")
+ println("\t", rs_summary_names[r_type], "\t\t", num_rs)
+ end
+ end
+ println(repeat("=", line_width))
+ println("Total number of resources: ", length(rs))
+ println(repeat("-", line_width))
+ return nothing
+end
+
+"""
+ load_resources_data!(inputs::Dict, setup::Dict, case_path::AbstractString)
+
+This function loads resources data from the `setup["ResourcePath"]` folder and create the GenX data structures and add them to the `inputs` `Dict`.
+
+# Arguments
+- `inputs (Dict)`: A dictionary to store the input data.
+- `setup (Dict)`: A dictionary containing GenX settings.
+- `case_path (AbstractString)`: The path to the case.
+
+Raises:
+ DeprecationWarning: If the `Generators_data.csv` file is found, a deprecation warning is issued, together with an error message.
+"""
+function load_resources_data!(inputs::Dict, setup::Dict, case_path::AbstractString)
+ if isfile(joinpath(case_path, "Generators_data.csv"))
+ msg = "The `Generators_data.csv` file was deprecated in release v0.4. " *
+ "Please use the new interface for generators creation, and see the documentation for additional details."
+ Base.depwarn(msg, :load_resources_data!, force=true)
+ error("Exiting GenX...")
+ else
+ # create vector of resources from dataframes
+ resources = create_resource_array(setup, case_path)
+
+ # read policy files and add policies-related attributes to resource dataframe
+ add_policies_to_resources!(resources, setup, case_path)
+
+ # read module files add module-related attributes to resource dataframe
+ add_modules_to_resources!(resources, setup, case_path)
+
+ # add resources information to inputs dict
+ add_resources_to_input_data!(inputs, setup, case_path, resources)
+
+ # print summary of resources
+ summary(resources)
+
+ return nothing
+ end
+end
diff --git a/src/load_inputs/load_vre_stor_variability.jl b/src/load_inputs/load_vre_stor_variability.jl
index 7a0144e833..d0f364c365 100644
--- a/src/load_inputs/load_vre_stor_variability.jl
+++ b/src/load_inputs/load_vre_stor_variability.jl
@@ -20,7 +20,7 @@ function load_vre_stor_variability!(setup::Dict, path::AbstractString, inputs::D
filename2 = "Vre_and_stor_wind_variability.csv"
vre_stor_wind = load_dataframe(joinpath(my_dir, filename2))
- all_resources = inputs["RESOURCES"]
+ all_resources = inputs["RESOURCE_NAMES"]
function ensure_column_zeros!(vre_stor_df, all_resources)
existing_variability = names(vre_stor_df)
diff --git a/src/model/core/co2.jl b/src/model/core/co2.jl
index 3d4e14edf0..a037a83568 100644
--- a/src/model/core/co2.jl
+++ b/src/model/core/co2.jl
@@ -13,7 +13,7 @@ fraction, and whether the feedstock is biomass. Biomass is a factor in this equa
biomass generators are assumed to generate zero net CO2 emissions, or negative net CO2 emissions
in the case that the CO2 they emit is captured and sequestered underground.
-If a user wishes to represent a generator that combusts biomass, then in Generators_data.csv,
+If a user wishes to represent a generator that combusts biomass, then in the resource .csv files,
the "Biomass" column (boolean, 1 or 0), which represents if a generator $y$ uses biomass or not, should be set to 1.
The CO2 emissions from such a generator will be assumed to be zero without CCS and negative with CCS.
@@ -54,29 +54,30 @@ function co2!(EP::Model, inputs::Dict)
println("CO2 Module")
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
G = inputs["G"] # Number of resources (generators, storage, DR, and DERs)
T = inputs["T"] # Number of time steps (hours)
Z = inputs["Z"] # Number of zones
fuel_CO2 = inputs["fuel_CO2"] # CO2 content of fuel (t CO2/MMBTU or ktCO2/Billion BTU)
+
### Expressions ###
- # CO2 emissions from power plants in "Generators_data.csv"
- # If all the CO2 capture fractions from Generators_data are zeros, the CO2 emissions from thermal generators are determined by fuel consumption times CO2 content per MMBTU
- if all(dfGen.CO2_Capture_Fraction .==0)
+ # CO2 emissions from power plants in "Thermal.csv"
+ # If all the CO2 capture fractions from Thermal.csv are zeros, the CO2 emissions from thermal generators are determined by fuel consumption times CO2 content per MMBTU
+ if all(co2_capture_fraction.(gen) .==0)
@expression(EP, eEmissionsByPlant[y=1:G, t=1:T],
- ((1-dfGen[y, :Biomass]) *(EP[:vFuel][y, t] + EP[:eStartFuel][y, t]) * fuel_CO2[dfGen[y,:Fuel]]))
+ ((1-biomass(gen[y])) *(EP[:vFuel][y, t] + EP[:eStartFuel][y, t]) * fuel_CO2[fuel(gen[y])]))
else
@info "Using the CO2 module to determine the CO2 emissions of CCS-equipped plants"
# CO2_Capture_Fraction refers to the CO2 capture rate of CCS equiped power plants at a steady state
# CO2_Capture_Fraction_Startup refers to the CO2 capture rate of CCS equiped power plants during startup events
@expression(EP, eEmissionsByPlant[y=1:G, t=1:T],
- (1-dfGen[y, :Biomass] - dfGen[y, :CO2_Capture_Fraction]) * EP[:vFuel][y, t] * fuel_CO2[dfGen[y,:Fuel]]+
- (1-dfGen[y, :Biomass] - dfGen[y, :CO2_Capture_Fraction_Startup]) * EP[:eStartFuel][y, t] * fuel_CO2[dfGen[y,:Fuel]])
+ (1-biomass(gen[y]) - co2_capture_fraction(gen[y])) * EP[:vFuel][y, t] * fuel_CO2[fuel(gen[y])]+
+ (1-biomass(gen[y]) - co2_capture_fraction_startup(gen[y])) * EP[:eStartFuel][y, t] * fuel_CO2[fuel(gen[y])])
- # CO2 captured from power plants in "Generators_data.csv"
+ # CO2 captured from power plants in "Thermal.csv"
@expression(EP, eEmissionsCaptureByPlant[y=1:G, t=1:T],
- dfGen[y, :CO2_Capture_Fraction] * EP[:vFuel][y, t] * fuel_CO2[dfGen[y,:Fuel]]+
- dfGen[y, :CO2_Capture_Fraction_Startup] * EP[:eStartFuel][y, t] * fuel_CO2[dfGen[y,:Fuel]])
+ co2_capture_fraction(gen[y]) * EP[:vFuel][y, t] * fuel_CO2[fuel(gen[y])]+
+ co2_capture_fraction_startup(gen[y]) * EP[:eStartFuel][y, t] * fuel_CO2[fuel(gen[y])])
@expression(EP, eEmissionsCaptureByPlantYear[y=1:G],
sum(inputs["omega"][t] * eEmissionsCaptureByPlant[y, t]
@@ -85,11 +86,10 @@ function co2!(EP::Model, inputs::Dict)
# when scale factor is on tCO2/MWh = > kt CO2/GWh
@expression(EP, ePlantCCO2Sequestration[y=1:G],
sum(inputs["omega"][t] * eEmissionsCaptureByPlant[y, t] *
- dfGen[y, :CCS_Disposal_Cost_per_Metric_Ton] for t in 1:T))
+ ccs_disposal_cost_per_metric_ton(gen[y]) for t in 1:T))
@expression(EP, eZonalCCO2Sequestration[z=1:Z],
- sum(ePlantCCO2Sequestration[y]
- for y in dfGen[(dfGen[!, :Zone].==z), :R_ID]))
+ sum(ePlantCCO2Sequestration[y] for y in resources_in_zone_by_rid(gen,z)))
@expression(EP, eTotaleCCO2Sequestration,
sum(eZonalCCO2Sequestration[z] for z in 1:Z))
@@ -99,7 +99,7 @@ function co2!(EP::Model, inputs::Dict)
# emissions by zone
@expression(EP, eEmissionsByZone[z = 1:Z, t = 1:T],
- sum(eEmissionsByPlant[y, t] for y in dfGen[(dfGen[!, :Zone].==z), :R_ID]))
+ sum(eEmissionsByPlant[y, t] for y in resources_in_zone_by_rid(gen,z)))
return EP
end
diff --git a/src/model/core/discharge/discharge.jl b/src/model/core/discharge/discharge.jl
index 977ea4f04c..953eeecc04 100644
--- a/src/model/core/discharge/discharge.jl
+++ b/src/model/core/discharge/discharge.jl
@@ -13,11 +13,11 @@ function discharge!(EP::Model, inputs::Dict, setup::Dict)
println("Discharge Module")
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
G = inputs["G"] # Number of resources (generators, storage, DR, and DERs)
T = inputs["T"] # Number of time steps
- Z = inputs["Z"] # Number of zones
+
### Variables ###
# Energy injected into the grid by resource "y" at hour "t"
@@ -28,7 +28,7 @@ function discharge!(EP::Model, inputs::Dict, setup::Dict)
## Objective Function Expressions ##
# Variable costs of "generation" for resource "y" during hour "t" = variable O&M
- @expression(EP, eCVar_out[y=1:G,t=1:T], (inputs["omega"][t]*(dfGen[y,:Var_OM_Cost_per_MWh]*vP[y,t])))
+ @expression(EP, eCVar_out[y=1:G,t=1:T], (inputs["omega"][t]*(var_om_cost_per_mwh(gen[y])*vP[y,t])))
# Sum individual resource contributions to variable discharging costs to get total variable discharging costs
@expression(EP, eTotalCVarOutT[t=1:T], sum(eCVar_out[y,t] for y in 1:G))
@expression(EP, eTotalCVarOut, sum(eTotalCVarOutT[t] for t in 1:T))
@@ -40,7 +40,7 @@ function discharge!(EP::Model, inputs::Dict, setup::Dict)
if setup["EnergyShareRequirement"] >= 1
@expression(EP, eESRDischarge[ESR=1:inputs["nESR"]],
- + sum(inputs["omega"][t]*dfGen[y,Symbol("ESR_$ESR")]*EP[:vP][y,t] for y=dfGen[findall(x->x>0,dfGen[!,Symbol("ESR_$ESR")]),:R_ID], t=1:T)
+ + sum(inputs["omega"][t] * esr(gen[y],tag=ESR) * EP[:vP][y,t] for y=ids_with_policy(gen, esr, tag=ESR), t=1:T)
- sum(inputs["dfESR"][z,ESR]*inputs["omega"][t]*inputs["pD"][t,z] for t=1:T, z=findall(x->x>0,inputs["dfESR"][:,ESR]))
)
add_similar_to_expression!(EP[:eESR], eESRDischarge)
diff --git a/src/model/core/discharge/investment_discharge.jl b/src/model/core/discharge/investment_discharge.jl
index 9302774677..728877f6c2 100644
--- a/src/model/core/discharge/investment_discharge.jl
+++ b/src/model/core/discharge/investment_discharge.jl
@@ -37,7 +37,7 @@ function investment_discharge!(EP::Model, inputs::Dict, setup::Dict)
println("Investment Discharge Module")
MultiStage = setup["MultiStage"]
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
G = inputs["G"] # Number of resources (generators, storage, DR, and DERs)
@@ -71,7 +71,7 @@ function investment_discharge!(EP::Model, inputs::Dict, setup::Dict)
if !isempty(RETRO)
# Dependent iterators only allowed in forward sequence, so we reconstruct retrofit destinations from sources.
ALL_SOURCES = intersect(collect(Set(collect(Iterators.flatten(RETRO_SOURCE_IDS)))),RET_CAP)
- DESTS_BY_SOURCE = [ y in ALL_SOURCES ? intersect(findall(x->in(inputs["RESOURCES"][y],RETRO_SOURCES[x]), 1:G), findall(x->x in NEW_CAP, 1:G)) : [] for y in 1:G]
+ DESTS_BY_SOURCE = [ y in ALL_SOURCES ? intersect(findall(x->in(inputs["RESOURCE_NAMES"][y],RETRO_SOURCES[x]), 1:G), findall(x->x in NEW_CAP, 1:G)) : [] for y in 1:G]
@variable(EP, vRETROFIT[yr in ALL_SOURCES, r in DESTS_BY_SOURCE[yr]] >= 0); # Capacity retrofitted from source technology y to retrofit technology r
end
@@ -80,7 +80,7 @@ function investment_discharge!(EP::Model, inputs::Dict, setup::Dict)
if MultiStage == 1
@expression(EP, eExistingCap[y in 1:G], vEXISTINGCAP[y])
else
- @expression(EP, eExistingCap[y in 1:G], dfGen[y,:Existing_Cap_MW])
+ @expression(EP, eExistingCap[y in 1:G], existing_cap_mw(gen[y]))
end
# Cap_Size is set to 1 for all variables when unit UCommit == 0
@@ -88,19 +88,19 @@ function investment_discharge!(EP::Model, inputs::Dict, setup::Dict)
@expression(EP, eTotalCap[y in 1:G],
if y in intersect(NEW_CAP, RET_CAP) # Resources eligible for new capacity and retirements
if y in COMMIT
- eExistingCap[y] + dfGen[y,:Cap_Size]*(EP[:vCAP][y] - EP[:vRETCAP][y])
+ eExistingCap[y] + cap_size(gen[y])*(EP[:vCAP][y] - EP[:vRETCAP][y])
else
eExistingCap[y] + EP[:vCAP][y] - EP[:vRETCAP][y]
end
elseif y in setdiff(NEW_CAP, RET_CAP) # Resources eligible for only new capacity
if y in COMMIT
- eExistingCap[y] + dfGen[y,:Cap_Size]*EP[:vCAP][y]
+ eExistingCap[y] + cap_size(gen[y])*EP[:vCAP][y]
else
eExistingCap[y] + EP[:vCAP][y]
end
elseif y in setdiff(RET_CAP, NEW_CAP) # Resources eligible for only capacity retirements
if y in COMMIT
- eExistingCap[y] - dfGen[y,:Cap_Size]*EP[:vRETCAP][y]
+ eExistingCap[y] - cap_size(gen[y])*EP[:vRETCAP][y]
else
eExistingCap[y] - EP[:vRETCAP][y]
end
@@ -116,18 +116,18 @@ function investment_discharge!(EP::Model, inputs::Dict, setup::Dict)
@expression(EP, eCFix[y in 1:G],
if y in setdiff(NEW_CAP, RETRO) # Resources eligible for new capacity (Non-Retrofit)
if y in COMMIT
- dfGen[y,:Inv_Cost_per_MWyr]*dfGen[y,:Cap_Size]*vCAP[y] + dfGen[y,:Fixed_OM_Cost_per_MWyr]*eTotalCap[y]
+ inv_cost_per_mwyr(gen[y])*cap_size(gen[y])*vCAP[y] + fixed_om_cost_per_mwyr(gen[y])*eTotalCap[y]
else
- dfGen[y,:Inv_Cost_per_MWyr]*vCAP[y] + dfGen[y,:Fixed_OM_Cost_per_MWyr]*eTotalCap[y]
+ inv_cost_per_mwyr(gen[y])*vCAP[y] + fixed_om_cost_per_mwyr(gen[y])*eTotalCap[y]
end
elseif y in intersect(NEW_CAP, RETRO) # Resources eligible for new capacity (Retrofit yr -> y)
if y in COMMIT
- sum( RETRO_SOURCE_IDS[y][i] in RET_CAP ? RETRO_INV_CAP_COSTS[y][i]*dfGen[y,:Cap_Size]*vRETROFIT[RETRO_SOURCE_IDS[y][i],y]*RETRO_EFFICIENCY[y][i] : 0 for i in 1:NUM_RETRO_SOURCES[y]) + dfGen[y,:Fixed_OM_Cost_per_MWyr]*eTotalCap[y]
+ sum( RETRO_SOURCE_IDS[y][i] in RET_CAP ? RETRO_INV_CAP_COSTS[y][i]*cap_size(gen[y])*vRETROFIT[RETRO_SOURCE_IDS[y][i],y]*RETRO_EFFICIENCY[y][i] : 0 for i in 1:NUM_RETRO_SOURCES[y]) + fixed_om_cost_per_mwyr(gen[y])*eTotalCap[y]
else
- sum( RETRO_SOURCE_IDS[y][i] in RET_CAP ? RETRO_INV_CAP_COSTS[y][i]*vRETROFIT[RETRO_SOURCE_IDS[y][i],y]*RETRO_EFFICIENCY[y][i] : 0 for i in 1:NUM_RETRO_SOURCES[y]) + dfGen[y,:Fixed_OM_Cost_per_MWyr]*eTotalCap[y]
+ sum( RETRO_SOURCE_IDS[y][i] in RET_CAP ? RETRO_INV_CAP_COSTS[y][i]*vRETROFIT[RETRO_SOURCE_IDS[y][i],y]*RETRO_EFFICIENCY[y][i] : 0 for i in 1:NUM_RETRO_SOURCES[y]) + fixed_om_cost_per_mwyr(gen[y])*eTotalCap[y]
end
else
- dfGen[y,:Fixed_OM_Cost_per_MWyr]*eTotalCap[y]
+ fixed_om_cost_per_mwyr(gen[y])*eTotalCap[y]
end
)
@@ -148,32 +148,32 @@ function investment_discharge!(EP::Model, inputs::Dict, setup::Dict)
if MultiStage == 1
# Existing capacity variable is equal to existing capacity specified in the input file
- @constraint(EP, cExistingCap[y in 1:G], EP[:vEXISTINGCAP][y] == dfGen[y,:Existing_Cap_MW])
+ @constraint(EP, cExistingCap[y in 1:G], EP[:vEXISTINGCAP][y] == existing_cap_mw(gen[y]))
end
## Constraints on retirements and capacity additions
# Cannot retire more capacity than existing capacity
@constraint(EP, cMaxRetNoCommit[y in setdiff(RET_CAP,COMMIT)], vRETCAP[y] <= eExistingCap[y])
- @constraint(EP, cMaxRetCommit[y in intersect(RET_CAP,COMMIT)], dfGen[y,:Cap_Size]*vRETCAP[y] <= eExistingCap[y])
+ @constraint(EP, cMaxRetCommit[y in intersect(RET_CAP,COMMIT)], cap_size(gen[y])*vRETCAP[y] <= eExistingCap[y])
## Constraints on new built capacity
# Constraint on maximum capacity (if applicable) [set input to -1 if no constraint on maximum capacity]
# DEV NOTE: This constraint may be violated in some cases where Existing_Cap_MW is >= Max_Cap_MW and lead to infeasabilty
- @constraint(EP, cMaxCap[y in intersect(dfGen[dfGen.Max_Cap_MW.>0, :R_ID], 1:G)], eTotalCap[y] <= dfGen[y, :Max_Cap_MW])
+ MAX_CAP = ids_with_positive(gen, max_cap_mw)
+ @constraint(EP, cMaxCap[y in MAX_CAP], eTotalCap[y] <= max_cap_mw(gen[y]))
# Constraint on minimum capacity (if applicable) [set input to -1 if no constraint on minimum capacity]
# DEV NOTE: This constraint may be violated in some cases where Existing_Cap_MW is <= Min_Cap_MW and lead to infeasabilty
- @constraint(EP, cMinCap[y in intersect(dfGen[dfGen.Min_Cap_MW.>0, :R_ID], 1:G)], eTotalCap[y] >= dfGen[y, :Min_Cap_MW])
-
-
+ MIN_CAP = ids_with_positive(gen, min_cap_mw)
+ @constraint(EP, cMinCap[y in MIN_CAP], eTotalCap[y] >= min_cap_mw(gen[y]))
if setup["MinCapReq"] == 1
- @expression(EP, eMinCapResInvest[mincap = 1:inputs["NumberOfMinCapReqs"]], sum(EP[:eTotalCap][y] for y in dfGen[dfGen[!, Symbol("MinCapTag_$mincap")] .== 1, :R_ID]))
+ @expression(EP, eMinCapResInvest[mincap = 1:inputs["NumberOfMinCapReqs"]], sum(EP[:eTotalCap][y] for y in ids_with_policy(gen, min_cap, tag=mincap)))
add_similar_to_expression!(EP[:eMinCapRes], eMinCapResInvest)
end
if setup["MaxCapReq"] == 1
- @expression(EP, eMaxCapResInvest[maxcap = 1:inputs["NumberOfMaxCapReqs"]], sum(EP[:eTotalCap][y] for y in dfGen[dfGen[!, Symbol("MaxCapTag_$maxcap")] .== 1, :R_ID]))
+ @expression(EP, eMaxCapResInvest[maxcap = 1:inputs["NumberOfMaxCapReqs"]], sum(EP[:eTotalCap][y] for y in ids_with_policy(gen, max_cap, tag=maxcap)))
add_similar_to_expression!(EP[:eMaxCapRes], eMaxCapResInvest)
end
end
diff --git a/src/model/core/fuel.jl b/src/model/core/fuel.jl
index edb424c260..268e6a85e5 100644
--- a/src/model/core/fuel.jl
+++ b/src/model/core/fuel.jl
@@ -33,7 +33,7 @@ vFuel_{y,t} >= vP_{y,t} * h_{y,x} + U_{g,t}* f_{y,x}
Where $h_{y,x}$ represents the heat rate slope for generator $y$ in segment $x$ [MMBTU/MWh],
$f_{y,x}$ represents the heat rate intercept (MMBTU) for a generator $y$ in segment $x$ [MMBTU],
and $U_{y,t}$ represents the commitment status of a generator $y$ at time $t$. These parameters
-are optional inputs to "Generators_data.csv".
+are optional inputs to the resource .csv files.
When Unit commitment is on, if a user provides slope and intercept, the standard heat rate
(i.e., Heat_Rate_MMBTU_per_MWh) will not be used. When unit commitment is off, the model will
always use the standard heat rate.
@@ -54,7 +54,8 @@ PWFU_Intercept_* for at least one segment.
function fuel!(EP::Model, inputs::Dict, setup::Dict)
println("Fuel Module")
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
+
T = inputs["T"] # Number of time steps (hours)
Z = inputs["Z"] # Number of zones
G = inputs["G"]
@@ -63,7 +64,6 @@ function fuel!(EP::Model, inputs::Dict, setup::Dict)
fuels = inputs["fuels"]
NUM_FUEL = length(fuels)
-
# create variable for fuel consumption for output
@variable(EP, vFuel[y in 1:G, t = 1:T] >= 0)
@@ -72,8 +72,8 @@ function fuel!(EP::Model, inputs::Dict, setup::Dict)
# if unit commitment is modelled
@expression(EP, eStartFuel[y in 1:G, t = 1:T],
if y in THERM_COMMIT
- (dfGen[y,:Cap_Size] * EP[:vSTART][y, t] *
- dfGen[y,:Start_Fuel_MMBTU_per_MW])
+ (cap_size(gen[y]) * EP[:vSTART][y, t] *
+ start_fuel_mmbtu_per_mw(gen[y]))
else
0
end)
@@ -83,23 +83,23 @@ function fuel!(EP::Model, inputs::Dict, setup::Dict)
# eCFuel_start or eCFuel_out is $ or Million$
# Start up fuel cost
@expression(EP, eCFuelStart[y = 1:G, t = 1:T],
- (inputs["fuel_costs"][dfGen[y,:Fuel]][t] * EP[:eStartFuel][y, t]))
+ (inputs["fuel_costs"][fuel(gen[y])][t] * EP[:eStartFuel][y, t]))
# plant level start-up fuel cost for output
@expression(EP, ePlantCFuelStart[y = 1:G],
sum(inputs["omega"][t] * EP[:eCFuelStart][y, t] for t in 1:T))
# zonal level total fuel cost for output
@expression(EP, eZonalCFuelStart[z = 1:Z],
- sum(EP[:ePlantCFuelStart][y] for y in dfGen[dfGen[!, :Zone].==z, :R_ID]))
+ sum(EP[:ePlantCFuelStart][y] for y in resources_in_zone_by_rid(gen,z)))
# Fuel cost for power generation
@expression(EP, eCFuelOut[y = 1:G, t = 1:T],
- (inputs["fuel_costs"][dfGen[y,:Fuel]][t] * EP[:vFuel][y, t]))
+ (inputs["fuel_costs"][fuel(gen[y])][t] * EP[:vFuel][y, t]))
# plant level start-up fuel cost for output
@expression(EP, ePlantCFuelOut[y = 1:G],
sum(inputs["omega"][t] * EP[:eCFuelOut][y, t] for t in 1:T))
# zonal level total fuel cost for output
@expression(EP, eZonalCFuelOut[z = 1:Z],
- sum(EP[:ePlantCFuelOut][y] for y in dfGen[dfGen[!, :Zone].==z, :R_ID]))
+ sum(EP[:ePlantCFuelOut][y] for y in resources_in_zone_by_rid(gen,z)))
# system level total fuel cost for output
@@ -112,7 +112,7 @@ function fuel!(EP::Model, inputs::Dict, setup::Dict)
#fuel consumption (MMBTU or Billion BTU)
@expression(EP, eFuelConsumption[f in 1:NUM_FUEL, t in 1:T],
sum(EP[:vFuel][y, t] + EP[:eStartFuel][y,t]
- for y in resources_with_fuel(dfGen, fuels[f])))
+ for y in resources_with_fuel(gen, fuels[f])))
@expression(EP, eFuelConsumptionYear[f in 1:NUM_FUEL],
sum(inputs["omega"][t] * EP[:eFuelConsumption][f, t] for t in 1:T))
@@ -121,7 +121,7 @@ function fuel!(EP::Model, inputs::Dict, setup::Dict)
### Constraint ###
### only apply constraint to generators with fuel type other than None
@constraint(EP, FuelCalculation[y in setdiff(HAS_FUEL, THERM_COMMIT), t = 1:T],
- EP[:vFuel][y, t] - EP[:vP][y, t] * dfGen[y, :Heat_Rate_MMBTU_per_MWh] == 0)
+ EP[:vFuel][y, t] - EP[:vP][y, t] * heat_rate_mmbtu_per_mwh(gen[y]) == 0)
if !isempty(THERM_COMMIT)
# Only apply piecewise fuel consumption to thermal generators in THERM_COMMIT_PWFU set
@@ -141,14 +141,15 @@ function fuel!(EP::Model, inputs::Dict, setup::Dict)
end
# constraint for fuel consumption at a constant heat rate
@constraint(EP, FuelCalculationCommit[y in setdiff(THERM_COMMIT,THERM_COMMIT_PWFU), t = 1:T],
- EP[:vFuel][y, t] - EP[:vP][y, t] * dfGen[y, :Heat_Rate_MMBTU_per_MWh] == 0)
+ EP[:vFuel][y, t] - EP[:vP][y, t] * heat_rate_mmbtu_per_mwh(gen[y]) == 0)
end
return EP
end
-function resources_with_fuel(df::DataFrame, fuel::AbstractString)
- return df[df[!, :Fuel] .== fuel, :R_ID]
+function resources_with_fuel(rs::Vector{AbstractResource}, fuel_name::AbstractString)
+ condition::BitVector = fuel.(rs) .== fuel_name
+ return resource_id.(rs[condition])
end
diff --git a/src/model/core/reserves.jl b/src/model/core/reserves.jl
index a850ff05e5..e3601acec5 100644
--- a/src/model/core/reserves.jl
+++ b/src/model/core/reserves.jl
@@ -71,7 +71,7 @@ function reserves_contingency!(EP::Model, inputs::Dict, setup::Dict)
println("Reserves Contingency Module")
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
T = inputs["T"] # Number of time steps (hours)
UCommit = setup["UCommit"]
@@ -116,8 +116,7 @@ function reserves_contingency!(EP::Model, inputs::Dict, setup::Dict)
# Dynamic contingency related constraints
# option 1: ensures vLARGEST_CONTINGENCY is greater than the capacity of the largest installed generator
if UCommit == 1 && pDynamic_Contingency == 1
- @constraint(EP, cContingency[y in COMMIT], vLARGEST_CONTINGENCY >=
- inputs["dfGen"][y,:Cap_Size]*vCONTINGENCY_AUX[y] )
+ @constraint(EP, cContingency[y in COMMIT], vLARGEST_CONTINGENCY >= cap_size(gen[y])*vCONTINGENCY_AUX[y] )
# Ensure vCONTINGENCY_AUX = 0 if total capacity = 0
@constraint(EP, cContAux1[y in COMMIT], vCONTINGENCY_AUX[y] <= EP[:eTotalCap][y])
# Ensure vCONTINGENCY_AUX = 1 if total capacity > 0
@@ -125,8 +124,7 @@ function reserves_contingency!(EP::Model, inputs::Dict, setup::Dict)
# option 2: ensures vLARGEST_CONTINGENCY is greater than the capacity of the largest commited generator in each hour
elseif UCommit == 1 && pDynamic_Contingency == 2
- @constraint(EP, cContingency[y in COMMIT, t=1:T], vLARGEST_CONTINGENCY[t] >=
- inputs["dfGen"][y,:Cap_Size]*vCONTINGENCY_AUX[y,t] )
+ @constraint(EP, cContingency[y in COMMIT, t=1:T], vLARGEST_CONTINGENCY[t] >= cap_size(gen[y])*vCONTINGENCY_AUX[y,t] )
# Ensure vCONTINGENCY_AUX = 0 if vCOMMIT = 0
@constraint(EP, cContAux[y in COMMIT, t=1:T], vCONTINGENCY_AUX[y,t] <= EP[:vCOMMIT][y,t])
# Ensure vCONTINGENCY_AUX = 1 if vCOMMIT > 0
@@ -209,11 +207,10 @@ function reserves_core!(EP::Model, inputs::Dict, setup::Dict)
println("Reserves Core Module")
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
UCommit = setup["UCommit"]
T = inputs["T"] # Number of time steps (hours)
- Z = inputs["Z"] # Number of zones
REG = inputs["REG"]
RSV = inputs["RSV"]
@@ -263,8 +260,8 @@ function reserves_core!(EP::Model, inputs::Dict, setup::Dict)
# Penalty for unmet operating reserves
@expression(EP, eCRsvPen[t=1:T], inputs["omega"][t]*inputs["pC_Rsv_Penalty"]*vUNMET_RSV[t])
@expression(EP, eTotalCRsvPen, sum(eCRsvPen[t] for t=1:T) +
- sum(dfGen[y,:Reg_Cost]*vRSV[y,t] for y in RSV, t=1:T) +
- sum(dfGen[y,:Rsv_Cost]*vREG[y,t] for y in REG, t=1:T) )
+ sum(reg_cost(gen[y])*vRSV[y,t] for y in RSV, t=1:T) +
+ sum(rsv_cost(gen[y])*vREG[y,t] for y in REG, t=1:T) )
add_to_expression!(EP[:eObj], eTotalCRsvPen)
end
diff --git a/src/model/core/ucommit.jl b/src/model/core/ucommit.jl
index 7789ccf1a4..3a3f95f4bb 100644
--- a/src/model/core/ucommit.jl
+++ b/src/model/core/ucommit.jl
@@ -26,11 +26,7 @@ function ucommit!(EP::Model, inputs::Dict, setup::Dict)
println("Unit Commitment Module")
- dfGen = inputs["dfGen"]
-
- G = inputs["G"] # Number of resources (generators, storage, DR, and DERs)
T = inputs["T"] # Number of time steps (hours)
- Z = inputs["Z"] # Number of zones
COMMIT = inputs["COMMIT"] # For not, thermal resources are the only ones eligible for Unit Committment
### Variables ###
diff --git a/src/model/policies/co2_cap.jl b/src/model/policies/co2_cap.jl
index c8903ae028..252cb3a7f3 100644
--- a/src/model/policies/co2_cap.jl
+++ b/src/model/policies/co2_cap.jl
@@ -69,11 +69,8 @@ function co2_cap!(EP::Model, inputs::Dict, setup::Dict)
println("CO2 Policies Module")
- dfGen = inputs["dfGen"]
SEG = inputs["SEG"] # Number of lines
- G = inputs["G"] # Number of resources (generators, storage, DR, and DERs)
T = inputs["T"] # Number of time steps (hours)
- Z = inputs["Z"] # Number of zones
### Variable ###
# if input files are present, add CO2 cap slack variables
diff --git a/src/model/resources/curtailable_variable_renewable/curtailable_variable_renewable.jl b/src/model/resources/curtailable_variable_renewable/curtailable_variable_renewable.jl
index cdd43f1a33..5e624edbc0 100644
--- a/src/model/resources/curtailable_variable_renewable/curtailable_variable_renewable.jl
+++ b/src/model/resources/curtailable_variable_renewable/curtailable_variable_renewable.jl
@@ -14,22 +14,22 @@ Note that if ```Reserves=1``` indicating that frequency regulation and operating
"""
function curtailable_variable_renewable!(EP::Model, inputs::Dict, setup::Dict)
## Controllable variable renewable generators
- ### Option of modeling VRE generators with multiple availability profiles and capacity limits - Num_VRE_Bins in Generators_data.csv >1
+ ### Option of modeling VRE generators with multiple availability profiles and capacity limits - Num_VRE_Bins in Vre.csv >1
## Default value of Num_VRE_Bins ==1
println("Dispatchable Resources Module")
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
Reserves = setup["Reserves"]
CapacityReserveMargin = setup["CapacityReserveMargin"]
T = inputs["T"] # Number of time steps (hours)
Z = inputs["Z"] # Number of zones
- G = inputs["G"] # Number of generators
+ G = inputs["G"] # Number of resources (generators, storage, DR, and DERs)
VRE = inputs["VRE"]
- VRE_POWER_OUT = intersect(dfGen[dfGen.Num_VRE_Bins.>=1,:R_ID], VRE)
+ VRE_POWER_OUT = intersect(VRE, ids_with_positive(gen, num_vre_bins))
VRE_NO_POWER_OUT = setdiff(VRE, VRE_POWER_OUT)
### Expressions ###
@@ -37,13 +37,13 @@ function curtailable_variable_renewable!(EP::Model, inputs::Dict, setup::Dict)
## Power Balance Expressions ##
@expression(EP, ePowerBalanceDisp[t=1:T, z=1:Z],
- sum(EP[:vP][y,t] for y in intersect(VRE, dfGen[dfGen[!,:Zone].==z,:R_ID]))
+ sum(EP[:vP][y,t] for y in intersect(VRE, resources_in_zone_by_rid(gen,z)))
)
add_similar_to_expression!(EP[:ePowerBalance], EP[:ePowerBalanceDisp])
# Capacity Reserves Margin policy
if CapacityReserveMargin > 0
- @expression(EP, eCapResMarBalanceVRE[res=1:inputs["NCapacityReserveMargin"], t=1:T], sum(dfGen[y,Symbol("CapRes_$res")] * EP[:eTotalCap][y] * inputs["pP_Max"][y,t] for y in VRE))
+ @expression(EP, eCapResMarBalanceVRE[res=1:inputs["NCapacityReserveMargin"], t=1:T], sum(derating_factor(gen[y], tag=res) * EP[:eTotalCap][y] * inputs["pP_Max"][y,t] for y in VRE))
add_similar_to_expression!(EP[:eCapResMarBalance], eCapResMarBalanceVRE)
end
@@ -57,7 +57,7 @@ function curtailable_variable_renewable!(EP::Model, inputs::Dict, setup::Dict)
for y in VRE_POWER_OUT
# Define the set of generator indices corresponding to the different sites (or bins) of a particular VRE technology (E.g. wind or solar) in a particular zone.
# For example the wind resource in a particular region could be include three types of bins corresponding to different sites with unique interconnection, hourly capacity factor and maximim available capacity limits.
- VRE_BINS = intersect(dfGen[dfGen[!,:R_ID].>=y,:R_ID], dfGen[dfGen[!,:R_ID].<=y+dfGen[y,:Num_VRE_Bins]-1,:R_ID])
+ VRE_BINS = intersect(resource_id.(gen[resource_id.(gen) .>= y]), resource_id.(gen[resource_id.(gen) .<= y+num_vre_bins(gen[y])-1]))
# Maximum power generated per hour by renewable generators must be less than
# sum of product of hourly capacity factor for each bin times its the bin installed capacity
@@ -72,7 +72,7 @@ function curtailable_variable_renewable!(EP::Model, inputs::Dict, setup::Dict)
end
##CO2 Polcy Module VRE Generation by zone
@expression(EP, eGenerationByVRE[z=1:Z, t=1:T], # the unit is GW
- sum(EP[:vP][y,t] for y in intersect(inputs["VRE"], dfGen[dfGen[!,:Zone].==z,:R_ID]))
+ sum(EP[:vP][y,t] for y in intersect(inputs["VRE"], resources_in_zone_by_rid(gen,z)))
)
add_similar_to_expression!(EP[:eGenerationByZone], eGenerationByVRE)
@@ -102,11 +102,11 @@ The amount of frequency regulation and operating reserves procured in each time
```
"""
function curtailable_variable_renewable_reserves!(EP::Model, inputs::Dict)
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
T = inputs["T"]
VRE = inputs["VRE"]
- VRE_POWER_OUT = intersect(dfGen[dfGen.Num_VRE_Bins.>=1,:R_ID], VRE)
+ VRE_POWER_OUT = intersect(VRE, ids_with_positive(gen, num_vre_bins))
REG = intersect(VRE_POWER_OUT, inputs["REG"])
RSV = intersect(VRE_POWER_OUT, inputs["RSV"])
@@ -115,15 +115,13 @@ function curtailable_variable_renewable_reserves!(EP::Model, inputs::Dict)
vREG = EP[:vREG]
vRSV = EP[:vRSV]
hourly_capacity_factor(y, t) = inputs["pP_Max"][y, t]
- reg_max(y) = dfGen[y, :Reg_Max]
- rsv_max(y) = dfGen[y, :Rsv_Max]
hourly_capacity(y, t) = hourly_capacity_factor(y, t) * eTotalCap[y]
- resources_in_bin(y) = UnitRange(y, y + dfGen[y, :Num_VRE_Bins] - 1)
+ resources_in_bin(y) = UnitRange(y, y + num_vre_bins(gen[y]) - 1)
hourly_bin_capacity(y, t) = sum(hourly_capacity(yy, t) for yy in resources_in_bin(y))
- @constraint(EP, [y in REG, t in 1:T], vREG[y, t] <= reg_max(y) * hourly_bin_capacity(y, t))
- @constraint(EP, [y in RSV, t in 1:T], vRSV[y, t] <= rsv_max(y) * hourly_bin_capacity(y, t))
+ @constraint(EP, [y in REG, t in 1:T], vREG[y, t] <= reg_max(gen[y]) * hourly_bin_capacity(y, t))
+ @constraint(EP, [y in RSV, t in 1:T], vRSV[y, t] <= rsv_max(gen[y]) * hourly_bin_capacity(y, t))
expr = extract_time_series_to_expression(vP, VRE_POWER_OUT)
add_similar_to_expression!(expr[REG, :], -vREG[REG, :])
@@ -136,10 +134,10 @@ function curtailable_variable_renewable_reserves!(EP::Model, inputs::Dict)
end
function remove_reserves_for_binned_vre_resources!(EP::Model, inputs::Dict)
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
VRE = inputs["VRE"]
- VRE_POWER_OUT = intersect(dfGen[dfGen.Num_VRE_Bins.>=1,:R_ID], VRE)
+ VRE_POWER_OUT = intersect(VRE, ids_with_positive(gen, num_vre_bins))
REG = inputs["REG"]
RSV = inputs["RSV"]
diff --git a/src/model/resources/flexible_demand/flexible_demand.jl b/src/model/resources/flexible_demand/flexible_demand.jl
index 26eac4e5c7..1247538efa 100644
--- a/src/model/resources/flexible_demand/flexible_demand.jl
+++ b/src/model/resources/flexible_demand/flexible_demand.jl
@@ -39,12 +39,12 @@ function flexible_demand!(EP::Model, inputs::Dict, setup::Dict)
println("Flexible Demand Resources Module")
-dfGen = inputs["dfGen"]
-
T = inputs["T"] # Number of time steps (hours)
Z = inputs["Z"] # Number of zones
FLEX = inputs["FLEX"] # Set of flexible demand resources
+gen = inputs["RESOURCES"]
+
hours_per_subperiod = inputs["hours_per_subperiod"] # Total number of hours per subperiod
### Variables ###
@@ -59,20 +59,20 @@ hours_per_subperiod = inputs["hours_per_subperiod"] # Total number of hours per
## Power Balance Expressions ##
@expression(EP, ePowerBalanceDemandFlex[t=1:T, z=1:Z],
- sum(-EP[:vP][y,t]+EP[:vCHARGE_FLEX][y,t] for y in intersect(FLEX, dfGen[(dfGen[!,:Zone].==z),:R_ID]))
+ sum(-EP[:vP][y,t]+EP[:vCHARGE_FLEX][y,t] for y in intersect(FLEX, resources_in_zone_by_rid(gen,z)))
)
add_similar_to_expression!(EP[:ePowerBalance], ePowerBalanceDemandFlex)
# Capacity Reserves Margin policy
if setup["CapacityReserveMargin"] > 0
- @expression(EP, eCapResMarBalanceFlex[res=1:inputs["NCapacityReserveMargin"], t=1:T], sum(dfGen[y,Symbol("CapRes_$res")] * (EP[:vCHARGE_FLEX][y,t] - EP[:vP][y,t]) for y in FLEX))
+ @expression(EP, eCapResMarBalanceFlex[res=1:inputs["NCapacityReserveMargin"], t=1:T], sum(derating_factor(gen[y], tag=res) * (EP[:vCHARGE_FLEX][y,t] - EP[:vP][y,t]) for y in FLEX))
add_similar_to_expression!(EP[:eCapResMarBalance], eCapResMarBalanceFlex)
end
## Objective Function Expressions ##
# Variable costs of "charging" for technologies "y" during hour "t" in zone "z"
-@expression(EP, eCVarFlex_in[y in FLEX,t=1:T], inputs["omega"][t]*dfGen[y,:Var_OM_Cost_per_MWh_In]*vCHARGE_FLEX[y,t])
+@expression(EP, eCVarFlex_in[y in FLEX,t=1:T], inputs["omega"][t]*var_om_cost_per_mwh_in(gen[y])*vCHARGE_FLEX[y,t])
# Sum individual resource contributions to variable charging costs to get total variable charging costs
@expression(EP, eTotalCVarFlexInT[t=1:T], sum(eCVarFlex_in[y,t] for y in FLEX))
@@ -84,13 +84,13 @@ add_to_expression!(EP[:eObj], eTotalCVarFlexIn)
## Flexible demand is available only during specified hours with time delay or time advance (virtual storage-shiftable demand)
for z in 1:Z
# NOTE: Flexible demand operates by zone since capacity is now related to zone demand
- FLEX_Z = intersect(FLEX, dfGen[dfGen.Zone .== z, :R_ID])
+ FLEX_Z = intersect(FLEX, resources_in_zone_by_rid(gen,z))
@constraints(EP, begin
# State of "charge" constraint (equals previous state + charge - discharge)
# NOTE: no maximum energy "stored" or deferred for later hours
# NOTE: Flexible_Demand_Energy_Eff corresponds to energy loss due to time shifting
- [y in FLEX_Z, t in 1:T], EP[:vS_FLEX][y,t] == EP[:vS_FLEX][y, hoursbefore(hours_per_subperiod, t, 1)] - dfGen[y, :Flexible_Demand_Energy_Eff] * EP[:vP][y,t] + EP[:vCHARGE_FLEX][y,t]
+ [y in FLEX_Z, t in 1:T], EP[:vS_FLEX][y,t] == EP[:vS_FLEX][y, hoursbefore(hours_per_subperiod, t, 1)] - flexible_demand_energy_eff(gen[y]) * EP[:vP][y,t] + EP[:vCHARGE_FLEX][y,t]
# Maximum charging rate
# NOTE: the maximum amount that can be shifted is given by hourly availability of the resource times the maximum capacity of the resource
@@ -102,18 +102,18 @@ for z in 1:Z
for y in FLEX_Z
# Require deferred demands to be satisfied within the specified time delay
- max_flexible_demand_delay = Int(floor(dfGen[y,:Max_Flexible_Demand_Delay]))
+ max_flex_demand_delay = Int(floor(max_flexible_demand_delay(gen[y])))
# Require advanced demands to be satisfied within the specified time period
- max_flexible_demand_advance = Int(floor(dfGen[y,:Max_Flexible_Demand_Advance]))
+ max_flex_demand_advance = Int(floor(max_flexible_demand_advance(gen[y])))
@constraint(EP, [t in 1:T],
# cFlexibleDemandDelay: Constraints looks forward over next n hours, where n = max_flexible_demand_delay
- sum(EP[:vP][y,e] for e=hoursafter(hours_per_subperiod, t, 1:max_flexible_demand_delay)) >= EP[:vS_FLEX][y,t])
+ sum(EP[:vP][y,e] for e=hoursafter(hours_per_subperiod, t, 1:max_flex_demand_delay)) >= EP[:vS_FLEX][y,t])
@constraint(EP, [t in 1:T],
# cFlexibleDemandAdvance: Constraint looks forward over next n hours, where n = max_flexible_demand_advance
- sum(EP[:vCHARGE_FLEX][y,e] for e=hoursafter(hours_per_subperiod, t, 1:max_flexible_demand_advance)) >= -EP[:vS_FLEX][y,t])
+ sum(EP[:vCHARGE_FLEX][y,e] for e=hoursafter(hours_per_subperiod, t, 1:max_flex_demand_advance)) >= -EP[:vS_FLEX][y,t])
end
end
diff --git a/src/model/resources/hydro/hydro_inter_period_linkage.jl b/src/model/resources/hydro/hydro_inter_period_linkage.jl
index 1963b3f1be..2c6cc00427 100644
--- a/src/model/resources/hydro/hydro_inter_period_linkage.jl
+++ b/src/model/resources/hydro/hydro_inter_period_linkage.jl
@@ -45,11 +45,8 @@ function hydro_inter_period_linkage!(EP::Model, inputs::Dict)
println("Long Duration Storage Module for Hydro Reservoir")
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
- G = inputs["G"] # Number of resources (generators, storage, DR, and DERs)
- T = inputs["T"] # Number of time steps (hours)
- Z = inputs["Z"] # Number of zones
REP_PERIOD = inputs["REP_PERIOD"] # Number of representative periods
STOR_HYDRO_LONG_DURATION = inputs["STOR_HYDRO_LONG_DURATION"]
@@ -80,7 +77,7 @@ function hydro_inter_period_linkage!(EP::Model, inputs::Dict)
# Alternative to cSoCBalStart constraint which is included when not modeling operations wrapping and long duration storage
# Note: tw_min = hours_per_subperiod*(w-1)+1; tw_max = hours_per_subperiod*w
@constraint(EP, cHydroReservoirLongDurationStorageStart[w=1:REP_PERIOD, y in STOR_HYDRO_LONG_DURATION],
- EP[:vS_HYDRO][y,hours_per_subperiod*(w-1)+1] == (EP[:vS_HYDRO][y,hours_per_subperiod*w]-vdSOC_HYDRO[y,w])-(1/dfGen[y,:Eff_Down]*EP[:vP][y,hours_per_subperiod*(w-1)+1])-EP[:vSPILL][y,hours_per_subperiod*(w-1)+1]+inputs["pP_Max"][y,hours_per_subperiod*(w-1)+1]*EP[:eTotalCap][y])
+ EP[:vS_HYDRO][y,hours_per_subperiod*(w-1)+1] == (EP[:vS_HYDRO][y,hours_per_subperiod*w]-vdSOC_HYDRO[y,w])-(1/efficiency_down(gen[y])*EP[:vP][y,hours_per_subperiod*(w-1)+1])-EP[:vSPILL][y,hours_per_subperiod*(w-1)+1]+inputs["pP_Max"][y,hours_per_subperiod*(w-1)+1]*EP[:eTotalCap][y])
# Storage at beginning of period w = storage at beginning of period w-1 + storage built up in period w (after n representative periods)
## Multiply storage build up term from prior period with corresponding weight
@constraint(EP, cHydroReservoirLongDurationStorage[y in STOR_HYDRO_LONG_DURATION, r in MODELED_PERIODS_INDEX],
@@ -88,7 +85,7 @@ function hydro_inter_period_linkage!(EP::Model, inputs::Dict)
# Storage at beginning of each modeled period cannot exceed installed energy capacity
@constraint(EP, cHydroReservoirLongDurationStorageUpper[y in STOR_HYDRO_LONG_DURATION, r in MODELED_PERIODS_INDEX],
- vSOC_HYDROw[y,r] <= dfGen[y,:Hydro_Energy_to_Power_Ratio]*EP[:eTotalCap][y])
+ vSOC_HYDROw[y,r] <= hydro_energy_to_power_ratio(gen[y])*EP[:eTotalCap][y])
# Initial storage level for representative periods must also adhere to sub-period storage inventory balance
# Initial storage = Final storage - change in storage inventory across representative period
diff --git a/src/model/resources/hydro/hydro_res.jl b/src/model/resources/hydro/hydro_res.jl
index 48fede2763..7d3da55db0 100644
--- a/src/model/resources/hydro/hydro_res.jl
+++ b/src/model/resources/hydro/hydro_res.jl
@@ -60,7 +60,7 @@ function hydro_res!(EP::Model, inputs::Dict, setup::Dict)
println("Hydro Reservoir Core Resources Module")
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
T = inputs["T"] # Number of time steps (hours)
Z = inputs["Z"] # Number of zones
@@ -101,13 +101,13 @@ function hydro_res!(EP::Model, inputs::Dict, setup::Dict)
## Power Balance Expressions ##
@expression(EP, ePowerBalanceHydroRes[t=1:T, z=1:Z],
- sum(EP[:vP][y,t] for y in intersect(HYDRO_RES, dfGen[(dfGen[!,:Zone].==z),:R_ID]))
+ sum(EP[:vP][y,t] for y in intersect(HYDRO_RES, resources_in_zone_by_rid(gen,z)))
)
add_similar_to_expression!(EP[:ePowerBalance], ePowerBalanceHydroRes)
# Capacity Reserves Margin policy
if setup["CapacityReserveMargin"] > 0
- @expression(EP, eCapResMarBalanceHydro[res=1:inputs["NCapacityReserveMargin"], t=1:T], sum(dfGen[y,Symbol("CapRes_$res")] * EP[:vP][y,t] for y in HYDRO_RES))
+ @expression(EP, eCapResMarBalanceHydro[res=1:inputs["NCapacityReserveMargin"], t=1:T], sum(derating_factor(gen[y], tag=res) * EP[:vP][y,t] for y in HYDRO_RES))
add_similar_to_expression!(EP[:eCapResMarBalance], eCapResMarBalanceHydro)
end
@@ -119,7 +119,7 @@ function hydro_res!(EP::Model, inputs::Dict, setup::Dict)
CONSTRAINTSET = HYDRO_RES
end
- @constraint(EP, cHydroReservoirStart[y in CONSTRAINTSET,t in START_SUBPERIODS], EP[:vS_HYDRO][y,t] == EP[:vS_HYDRO][y, hoursbefore(p,t,1)]- (1/dfGen[y,:Eff_Down]*EP[:vP][y,t]) - vSPILL[y,t] + inputs["pP_Max"][y,t]*EP[:eTotalCap][y])
+ @constraint(EP, cHydroReservoirStart[y in CONSTRAINTSET,t in START_SUBPERIODS], EP[:vS_HYDRO][y,t] == EP[:vS_HYDRO][y, hoursbefore(p,t,1)]- (1/efficiency_down(gen[y])*EP[:vP][y,t]) - vSPILL[y,t] + inputs["pP_Max"][y,t]*EP[:eTotalCap][y])
### Constraints commmon to all reservoir hydro (y in set HYDRO_RES) ###
@constraints(EP, begin
@@ -129,13 +129,13 @@ function hydro_res!(EP::Model, inputs::Dict, setup::Dict)
# DEV NOTE: Last inputs["pP_Max"][y,t] term above is inflows; currently part of capacity factors inputs in Generators_variability.csv but should be moved to its own Hydro_inflows.csv input in future.
# Constraints for reservoir hydro
- cHydroReservoirInterior[y in HYDRO_RES, t in INTERIOR_SUBPERIODS], EP[:vS_HYDRO][y,t] == (EP[:vS_HYDRO][y, hoursbefore(p,t,1)]- (1/dfGen[y,:Eff_Down]*EP[:vP][y,t]) - vSPILL[y,t] + inputs["pP_Max"][y,t]*EP[:eTotalCap][y])
+ cHydroReservoirInterior[y in HYDRO_RES, t in INTERIOR_SUBPERIODS], EP[:vS_HYDRO][y,t] == (EP[:vS_HYDRO][y, hoursbefore(p,t,1)] - (1/efficiency_down(gen[y])*EP[:vP][y,t]) - vSPILL[y,t] + inputs["pP_Max"][y,t]*EP[:eTotalCap][y])
# Maximum ramp up and down
- cRampUp[y in HYDRO_RES, t in 1:T], EP[:vP][y,t] + regulation_term[y,t] + reserves_term[y,t] - EP[:vP][y, hoursbefore(p,t,1)] <= dfGen[y,:Ramp_Up_Percentage]*EP[:eTotalCap][y]
- cRampDown[y in HYDRO_RES, t in 1:T], EP[:vP][y, hoursbefore(p,t,1)] - EP[:vP][y,t] - regulation_term[y,t] + reserves_term[y, hoursbefore(p,t,1)] <= dfGen[y,:Ramp_Dn_Percentage]*EP[:eTotalCap][y]
+ cRampUp[y in HYDRO_RES, t in 1:T], EP[:vP][y,t] + regulation_term[y,t] + reserves_term[y,t] - EP[:vP][y, hoursbefore(p,t,1)] <= ramp_up_fraction(gen[y])*EP[:eTotalCap][y]
+ cRampDown[y in HYDRO_RES, t in 1:T], EP[:vP][y, hoursbefore(p,t,1)] - EP[:vP][y,t] - regulation_term[y,t] + reserves_term[y, hoursbefore(p,t,1)] <= ramp_down_fraction(gen[y])*EP[:eTotalCap][y]
# Minimum streamflow running requirements (power generation and spills must be >= min value) in all hours
- cHydroMinFlow[y in HYDRO_RES, t in 1:T], EP[:vP][y,t] + EP[:vSPILL][y,t] >= dfGen[y,:Min_Power]*EP[:eTotalCap][y]
+ cHydroMinFlow[y in HYDRO_RES, t in 1:T], EP[:vP][y,t] + EP[:vSPILL][y,t] >= min_power(gen[y])*EP[:eTotalCap][y]
# DEV NOTE: When creating new hydro inputs, should rename Min_Power with Min_flow or similar for clarity since this includes spilled water as well
# Maximum discharging rate must be less than power rating OR available stored energy at start of hour, whichever is less
@@ -147,7 +147,7 @@ function hydro_res!(EP::Model, inputs::Dict, setup::Dict)
### Constraints to limit maximum energy in storage based on known limits on reservoir energy capacity (only for HYDRO_RES_KNOWN_CAP)
# Maximum energy stored in reservoir must be less than energy capacity in all hours - only applied to HYDRO_RES_KNOWN_CAP
- @constraint(EP, cHydroMaxEnergy[y in HYDRO_RES_KNOWN_CAP, t in 1:T], EP[:vS_HYDRO][y,t] <= dfGen[y,:Hydro_Energy_to_Power_Ratio]*EP[:eTotalCap][y])
+ @constraint(EP, cHydroMaxEnergy[y in HYDRO_RES_KNOWN_CAP, t in 1:T], EP[:vS_HYDRO][y,t] <= hydro_energy_to_power_ratio(gen[y])*EP[:eTotalCap][y])
if setup["Reserves"] == 1
### Reserve related constraints for reservoir hydro resources (y in HYDRO_RES), if used
@@ -155,7 +155,7 @@ function hydro_res!(EP::Model, inputs::Dict, setup::Dict)
end
##CO2 Polcy Module Hydro Res Generation by zone
@expression(EP, eGenerationByHydroRes[z=1:Z, t=1:T], # the unit is GW
- sum(EP[:vP][y,t] for y in intersect(HYDRO_RES, dfGen[dfGen[!,:Zone].==z,:R_ID]))
+ sum(EP[:vP][y,t] for y in intersect(HYDRO_RES, resources_in_zone_by_rid(gen,z)))
)
add_similar_to_expression!(EP[:eGenerationByZone], eGenerationByHydroRes)
@@ -193,7 +193,7 @@ function hydro_res_reserves!(EP::Model, inputs::Dict)
println("Hydro Reservoir Reserves Module")
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
T = inputs["T"] # Number of time steps (hours)
@@ -208,8 +208,6 @@ function hydro_res_reserves!(EP::Model, inputs::Dict)
vREG = EP[:vREG]
vRSV = EP[:vRSV]
eTotalCap = EP[:eTotalCap]
- reg_max(y) = dfGen[y, :Reg_Max]
- rsv_max(y) = dfGen[y, :Rsv_Max]
max_up_reserves_lhs = extract_time_series_to_expression(vP, HYDRO_RES)
max_dn_reserves_lhs = extract_time_series_to_expression(vP, HYDRO_RES)
@@ -224,6 +222,6 @@ function hydro_res_reserves!(EP::Model, inputs::Dict)
@constraint(EP, [y in HYDRO_RES, t in 1:T], max_up_reserves_lhs[y, t] <= eTotalCap[y])
@constraint(EP, [y in HYDRO_RES, t in 1:T], max_dn_reserves_lhs[y, t] >= 0)
- @constraint(EP, [y in HYDRO_RES_REG, t in 1:T], vREG[y, t] <= reg_max(y) * eTotalCap[y])
- @constraint(EP, [y in HYDRO_RES_RSV, t in 1:T], vRSV[y, t] <= rsv_max(y) * eTotalCap[y])
+ @constraint(EP, [y in HYDRO_RES_REG, t in 1:T], vREG[y, t] <= reg_max(gen[y]) * eTotalCap[y])
+ @constraint(EP, [y in HYDRO_RES_RSV, t in 1:T], vRSV[y, t] <= rsv_max(gen[y]) * eTotalCap[y])
end
diff --git a/src/model/resources/hydrogen/electrolyzer.jl b/src/model/resources/hydrogen/electrolyzer.jl
index 64463fbf47..7d74de7d34 100644
--- a/src/model/resources/hydrogen/electrolyzer.jl
+++ b/src/model/resources/hydrogen/electrolyzer.jl
@@ -65,7 +65,7 @@ where $\eta^{electrolyzer}_y$ is the efficiency of the electrolyzer $y$ in megaw
**Hourly clean supply matching constraint**
-This optional constraint (enabled by setting `HydrogenHourlyMatching==1` in `genx_settings.yml`) requires generation from qualified resources ($y \in \mathcal{Qualified}$, indicated by `Qualified_Hydrogen_Supply==1` in `Generators_data.csv`) from within the same zone $z$ as the electrolyzers are located to be >= hourly consumption from electrolyzers in the zone (and any charging by qualified storage within the zone used to help increase electrolyzer utilization):
+This optional constraint (enabled by setting `HydrogenHourlyMatching==1` in `genx_settings.yml`) requires generation from qualified resources ($y \in \mathcal{Qualified}$, indicated by `Qualified_Hydrogen_Supply==1` in the resource `.csv` files) from within the same zone $z$ as the electrolyzers are located to be >= hourly consumption from electrolyzers in the zone (and any charging by qualified storage within the zone used to help increase electrolyzer utilization):
```math
\begin{aligned}
@@ -81,11 +81,10 @@ This constraint permits modeling of the 'three pillars' requirements for clean h
function electrolyzer!(EP::Model, inputs::Dict, setup::Dict)
println("Electrolyzer Resources Module")
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
T = inputs["T"] # Number of time steps (hours)
Z = inputs["Z"] # Number of zones
- G = inputs["G"] # Number of generators
ELECTROLYZERS = inputs["ELECTROLYZER"]
STORAGE = inputs["STOR_ALL"]
@@ -102,7 +101,7 @@ function electrolyzer!(EP::Model, inputs::Dict, setup::Dict)
## Power Balance Expressions ##
@expression(EP, ePowerBalanceElectrolyzers[t in 1:T, z in 1:Z],
- sum(EP[:vUSE][y,t] for y in intersect(ELECTROLYZERS, dfGen[dfGen[!,:Zone].==z,:R_ID])))
+ sum(EP[:vUSE][y,t] for y in intersect(ELECTROLYZERS, resources_in_zone_by_rid(gen,z))))
# Electrolyzers consume electricity so their vUSE is subtracted from power balance
EP[:ePowerBalance] -= ePowerBalanceElectrolyzers
@@ -115,10 +114,10 @@ function electrolyzer!(EP::Model, inputs::Dict, setup::Dict)
### Maximum ramp up and down between consecutive hours (Constraints #1-2)
@constraints(EP, begin
## Maximum ramp up between consecutive hours
- [y in ELECTROLYZERS, t in 1:T], EP[:vUSE][y,t] - EP[:vUSE][y, hoursbefore(p,t,1)] <= dfGen[y,:Ramp_Up_Percentage]*EP[:eTotalCap][y]
+ [y in ELECTROLYZERS, t in 1:T], EP[:vUSE][y,t] - EP[:vUSE][y, hoursbefore(p,t,1)] <= ramp_up_fraction(gen[y])*EP[:eTotalCap][y]
## Maximum ramp down between consecutive hours
- [y in ELECTROLYZERS, t in 1:T], EP[:vUSE][y, hoursbefore(p,t,1)] - EP[:vUSE][y,t] <= dfGen[y,:Ramp_Dn_Percentage]*EP[:eTotalCap][y]
+ [y in ELECTROLYZERS, t in 1:T], EP[:vUSE][y, hoursbefore(p,t,1)] - EP[:vUSE][y,t] <= ramp_down_fraction(gen[y])*EP[:eTotalCap][y]
end)
### Minimum and maximum power output constraints (Constraints #3-4)
@@ -127,7 +126,7 @@ function electrolyzer!(EP::Model, inputs::Dict, setup::Dict)
# Could allow them to contribute as a curtailable demand in future.
@constraints(EP, begin
# Minimum stable power generated per technology "y" at hour "t" Min_Power
- [y in ELECTROLYZERS, t in 1:T], EP[:vUSE][y,t] >= dfGen[y,:Min_Power]*EP[:eTotalCap][y]
+ [y in ELECTROLYZERS, t in 1:T], EP[:vUSE][y,t] >= min_power(gen[y])*EP[:eTotalCap][y]
# Maximum power generated per technology "y" at hour "t"
[y in ELECTROLYZERS, t in 1:T], EP[:vUSE][y,t] <= inputs["pP_Max"][y,t]*EP[:eTotalCap][y]
@@ -137,7 +136,7 @@ function electrolyzer!(EP::Model, inputs::Dict, setup::Dict)
kt_to_t = 10^3
@constraint(EP,
cHydrogenMin[y in ELECTROLYZERS],
- sum(inputs["omega"][t] * EP[:vUSE][y,t] / dfGen[y,:Hydrogen_MWh_Per_Tonne] for t=1:T) >= dfGen[y,:Electrolyzer_Min_kt] * kt_to_t
+ sum(inputs["omega"][t] * EP[:vUSE][y,t] / hydrogen_mwh_per_tonne(gen[y]) for t=1:T) >= electrolyzer_min_kt(gen[y]) * kt_to_t
)
### Remove vP (electrolyzers do not produce power so vP = 0 for all periods)
@@ -146,14 +145,14 @@ function electrolyzer!(EP::Model, inputs::Dict, setup::Dict)
end)
### Hydrogen Hourly Supply Matching Constraint (Constraint #6) ###
- # Requires generation from qualified resources (indicated by Qualified_Hydrogen_Supply==1 in Generators_data.csv)
+ # Requires generation from qualified resources (indicated by Qualified_Hydrogen_Supply==1 in the resource .csv files)
# from within the same zone as the electrolyzers are located to be >= hourly consumption from electrolyzers in the zone
# (and any charging by qualified storage within the zone used to help increase electrolyzer utilization).
if setup["HydrogenHourlyMatching"] == 1
- HYDROGEN_ZONES = unique(dfGen.Zone[dfGen.ELECTROLYZER.==1])
- QUALIFIED_SUPPLY = dfGen.R_ID[dfGen.Qualified_Hydrogen_Supply.==1]
+ HYDROGEN_ZONES = unique(zone_id.(gen.Electrolyzer))
+ QUALIFIED_SUPPLY = ids_with(gen, qualified_hydrogen_supply)
@constraint(EP, cHourlyMatching[z in HYDROGEN_ZONES, t in 1:T],
- sum(EP[:vP][y,t] for y=intersect(dfGen.R_ID[dfGen.Zone.==z], QUALIFIED_SUPPLY)) >= sum(EP[:vUSE][y,t] for y=intersect(dfGen.R_ID[dfGen.Zone.==z], ELECTROLYZERS)) + sum(EP[:vCHARGE][y,t] for y=intersect(dfGen.R_ID[dfGen.Zone.==z], QUALIFIED_SUPPLY, STORAGE))
+ sum(EP[:vP][y,t] for y=intersect(resources_in_zone_by_rid(gen,z), QUALIFIED_SUPPLY)) >= sum(EP[:vUSE][y,t] for y=intersect(resources_in_zone_by_rid(gen,z), ELECTROLYZERS)) + sum(EP[:vCHARGE][y,t] for y=intersect(resources_in_zone_by_rid(gen,z), QUALIFIED_SUPPLY, STORAGE))
)
end
@@ -161,16 +160,16 @@ function electrolyzer!(EP::Model, inputs::Dict, setup::Dict)
### Energy Share Requirement Policy ###
# Since we're using vUSE to denote electrolyzer consumption, we subtract this from the eESR Energy Share Requirement balance to increase demand for clean resources if desired
# Electrolyzer demand is only accounted for in an ESR that the electrolyzer resources is tagged in in Generates_data.csv (e.g. ESR_N > 0) and
- # a share of electrolyzer demand equal to dfGen[y,:ESR_N] must be met by resources qualifying for ESR_N for each electrolyzer resource y.
+ # a share of electrolyzer demand equal to df[y,:ESR_N] must be met by resources qualifying for ESR_N for each electrolyzer resource y.
if setup["EnergyShareRequirement"] >= 1
- @expression(EP, eElectrolyzerESR[ESR in 1:inputs["nESR"]], sum(inputs["omega"][t]*EP[:vUSE][y,t] for y=intersect(ELECTROLYZERS, dfGen[findall(x->x>0,dfGen[!,Symbol("ESR_$ESR")]),:R_ID]), t in 1:T))
+ @expression(EP, eElectrolyzerESR[ESR in 1:inputs["nESR"]], sum(inputs["omega"][t]*EP[:vUSE][y,t] for y=intersect(ELECTROLYZERS, ids_with_policy(gen,esr,tag=ESR)), t in 1:T))
EP[:eESR] -= eElectrolyzerESR
end
### Objective Function ###
# Subtract hydrogen revenue from objective function
scale_factor = setup["ParameterScale"] == 1 ? 10^6 : 1 # If ParameterScale==1, costs are in millions of $
- @expression(EP, eHydrogenValue[y in ELECTROLYZERS, t in 1:T], (inputs["omega"][t] * EP[:vUSE][y,t] / dfGen[y,:Hydrogen_MWh_Per_Tonne] * dfGen[y,:Hydrogen_Price_Per_Tonne] / scale_factor))
+ @expression(EP, eHydrogenValue[y in ELECTROLYZERS, t in 1:T], (inputs["omega"][t] * EP[:vUSE][y,t] / hydrogen_mwh_per_tonne(gen[y]) * hydrogen_price_per_tonne(gen[y]) / scale_factor))
@expression(EP, eTotalHydrogenValueT[t in 1:T], sum(eHydrogenValue[y,t] for y in ELECTROLYZERS))
@expression(EP, eTotalHydrogenValue, sum(eTotalHydrogenValueT[t] for t in 1:T))
EP[:eObj] -= eTotalHydrogenValue
diff --git a/src/model/resources/must_run/must_run.jl b/src/model/resources/must_run/must_run.jl
index 9f762891f4..a16efb1141 100644
--- a/src/model/resources/must_run/must_run.jl
+++ b/src/model/resources/must_run/must_run.jl
@@ -16,7 +16,7 @@ function must_run!(EP::Model, inputs::Dict, setup::Dict)
println("Must-Run Resources Module")
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
T = inputs["T"] # Number of time steps (hours)
Z = inputs["Z"] # Number of zones
@@ -30,13 +30,13 @@ function must_run!(EP::Model, inputs::Dict, setup::Dict)
## Power Balance Expressions ##
@expression(EP, ePowerBalanceNdisp[t=1:T, z=1:Z],
- sum(EP[:vP][y,t] for y in intersect(MUST_RUN, dfGen[dfGen[!,:Zone].==z, :R_ID]))
+ sum(EP[:vP][y,t] for y in intersect(MUST_RUN, resources_in_zone_by_rid(gen,z)))
)
add_similar_to_expression!(EP[:ePowerBalance], ePowerBalanceNdisp)
# Capacity Reserves Margin policy
if CapacityReserveMargin > 0
- @expression(EP, eCapResMarBalanceMustRun[res=1:inputs["NCapacityReserveMargin"], t=1:T], sum(dfGen[y,Symbol("CapRes_$res")] * EP[:eTotalCap][y] * inputs["pP_Max"][y,t] for y in MUST_RUN))
+ @expression(EP, eCapResMarBalanceMustRun[res=1:inputs["NCapacityReserveMargin"], t=1:T], sum(derating_factor(gen[y], tag=res) * EP[:eTotalCap][y] * inputs["pP_Max"][y,t] for y in MUST_RUN))
add_similar_to_expression!(EP[:eCapResMarBalance], eCapResMarBalanceMustRun)
end
@@ -45,7 +45,7 @@ function must_run!(EP::Model, inputs::Dict, setup::Dict)
@constraint(EP, [y in MUST_RUN, t=1:T], EP[:vP][y,t] == inputs["pP_Max"][y,t]*EP[:eTotalCap][y])
##CO2 Polcy Module Must Run Generation by zone
@expression(EP, eGenerationByMustRun[z=1:Z, t=1:T], # the unit is GW
- sum(EP[:vP][y,t] for y in intersect(MUST_RUN, dfGen[dfGen[!,:Zone].==z, :R_ID]))
+ sum(EP[:vP][y,t] for y in intersect(MUST_RUN, resources_in_zone_by_rid(gen,z)))
)
add_similar_to_expression!(EP[:eGenerationByZone], eGenerationByMustRun)
diff --git a/src/model/resources/resources.jl b/src/model/resources/resources.jl
index 5927fd0b05..d38db7e27c 100644
--- a/src/model/resources/resources.jl
+++ b/src/model/resources/resources.jl
@@ -1,180 +1,907 @@
-GenXResource = Dict{Symbol, Any}
+"""
+ resource_types
+
+Name of the type of resources available in the model.
+
+Possible values:
+- :Thermal
+- :Vre
+- :Hydro
+- :Storage
+- :MustRun
+- :FlexDemand
+- :VreStorage
+- :Electrolyzer
+"""
+const resource_types = (:Thermal,
+ :Vre,
+ :Hydro,
+ :Storage,
+ :MustRun,
+ :FlexDemand,
+ :VreStorage,
+ :Electrolyzer)
+
+# Create composite types (structs) for each resource type in resource_types
+for r in resource_types
+ let dict = :dict, r = r
+ @eval begin
+ struct $r{names<:Symbol, T<:Any} <: AbstractResource
+ $dict::Dict{names,T}
+ end
+ Base.parent(r::$r) = getfield(r, $(QuoteNode(dict)))
+ end
+ end
+end
-# interface with generators_data.csv
-# acts as a global variable
-resource_attribute_not_set() = 0
+"""
+ Base.getproperty(r::AbstractResource, sym::Symbol)
-resource_name(r::GenXResource) = r[:Resource]
+Allows to access the attributes of an `AbstractResource` object using dot syntax. It checks if the attribute exists in the object and returns its value, otherwise it throws an `ErrorException` indicating that the attribute does not exist.
-@doc raw"""
- check_resource_type_flags(r::GenXResource)
-
-Make sure that a resource is not more than one of a set of mutually-exclusive models
-"""
-function check_resource_type_flags(r::GenXResource)
- exclusive_flags = [:THERM, :MUST_RUN, :STOR, :FLEX, :HYDRO, :VRE, :VRE_STOR, :ELECTROLYZER]
- not_set = resource_attribute_not_set()
- check_for_flag_set(el) = get(r, el, not_set) > 0
-
- statuses = check_for_flag_set.(exclusive_flags)
- number_set = count(statuses)
-
- error_strings = String[]
- if number_set == 0
- e = string("Resource ", resource_name(r), " has none of ", exclusive_flags, " set.\n",
- "Exactly one of these should be non-$not_set.")
- push!(error_strings, e)
- elseif number_set > 1
- set_flags = exclusive_flags[statuses]
- e = string("Resource ", resource_name(r), " has both ", set_flags, " ≠ $not_set.\n",
- "Exactly one of these should be non-$not_set.")
- push!(error_strings, e)
- end
- return error_strings
+# Arguments:
+- `r::AbstractResource`: The resource object.
+- `sym::Symbol`: The symbol representing the attribute name.
+
+# Returns:
+- The value of the attribute if it exists in the parent object.
+
+Throws:
+- `ErrorException`: If the attribute does not exist in the resource.
+
+"""
+function Base.getproperty(r::AbstractResource, sym::Symbol)
+ haskey(parent(r), sym) && return parent(r)[sym]
+ throw(ErrorException("type $(nameof(typeof(r))) has no attribute $(string(sym))"))
end
-@doc raw"""
- check_mustrun_reserve_contribution(r::GenXResource)
+"""
+ setproperty!(r::AbstractResource, sym::Symbol, value)
+
+Allows to set the attribute `sym` of an `AbstractResource` object using dot syntax.
+
+# Arguments:
+- `r::AbstractResource`: The resource object.
+- `sym::Symbol`: The symbol representing the attribute name.
+- `value`: The value to set for the attribute.
+
+"""
+Base.setproperty!(r::AbstractResource, sym::Symbol, value) = setindex!(parent(r), value, sym)
+
+"""
+ haskey(r::AbstractResource, sym::Symbol)
+
+Check if an `AbstractResource` object has a specific attribute. It returns a boolean value indicating whether the attribute exists in the parent object.
+
+# Arguments:
+- `r::AbstractResource`: The resource object.
+- `sym::Symbol`: The symbol representing the attribute name.
+
+# Returns:
+- `true` if the attribute exists in the parent object, `false` otherwise.
+
+"""
+Base.haskey(r::AbstractResource, sym::Symbol) = haskey(parent(r), sym)
-Make sure that a MUST_RUN resource has Reg_Max and Rsv_Max set to 0 (since they cannot contribute to reserves).
"""
-function check_mustrun_reserve_contribution(r::GenXResource)
- not_set = resource_attribute_not_set()
- value = get(r, :MUST_RUN, not_set)
+ get(r::AbstractResource, sym::Symbol, default)
- error_strings = String[]
+Retrieves the value of a specific attribute from an `AbstractResource` object. If the attribute exists, its value is returned; otherwise, the default value is returned.
- if value == not_set
- # not MUST_RUN so the rest is not applicable
- return error_strings
+# Arguments:
+- `r::AbstractResource`: The resource object.
+- `sym::Symbol`: The symbol representing the attribute name.
+- `default`: The default value to return if the attribute does not exist.
+
+# Returns:
+- The value of the attribute if it exists in the parent object, `default` otherwise.
+
+"""
+function Base.get(r::AbstractResource, sym::Symbol, default)
+ return haskey(r, sym) ? getproperty(r,sym) : default
+end
+
+"""
+ Base.getproperty(rs::Vector{<:AbstractResource}, sym::Symbol)
+
+Allows to access attributes of a vector of `AbstractResource` objects using dot syntax. If the `sym` is an element of the `resource_types` constant, it returns all resources of that type. Otherwise, it returns the value of the attribute for each resource in the vector.
+
+# Arguments:
+- `rs::Vector{<:AbstractResource}`: The vector of `AbstractResource` objects.
+- `sym::Symbol`: The symbol representing the attribute name or a type from `resource_types`.
+
+# Returns:
+- If `sym` is an element of the `resource_types` constant, it returns a vector containing all resources of that type.
+- If `sym` is an attribute name, it returns a vector containing the value of the attribute for each resource.
+
+## Examples
+```julia
+julia> vre_gen = gen.Vre; # gen vector of resources
+julia> typeof(vre_gen)
+Vector{Vre} (alias for Array{Vre, 1})
+julia> vre_gen.zone
+```
+"""
+function Base.getproperty(rs::Vector{<:AbstractResource}, sym::Symbol)
+ # if sym is Type then return a vector resources of that type
+ if sym ∈ resource_types
+ res_type = eval(sym)
+ return Vector{res_type}(rs[isa.(rs, res_type)])
end
+ # if sym is a field of the resource then return that field for all resources
+ return [getproperty(r, sym) for r in rs]
+end
- reg_max = get(r, :Reg_Max, not_set)
- if reg_max != 0
- e = string("Resource ", resource_name(r), " has :MUST_RUN = ", value, " but :Reg_Max = ", reg_max, ".\n",
- "MUST_RUN units must have Reg_Max = 0 since they cannot contribute to reserves.")
- push!(error_strings, e)
+"""
+ Base.setproperty!(rs::Vector{<:AbstractResource}, sym::Symbol, value::Vector)
+
+Set the attributes specified by `sym` to the corresponding values in `value` for a vector of resources.
+
+# Arguments
+- `rs::Vector{<:AbstractResource}`: The vector of resources.
+- `sym::Symbol`: The symbol representing the attribute to set.
+- `value::Vector`: The vector of values to set for the attribute.
+
+# Returns
+- `rs::Vector{<:AbstractResource}`: The updated vector of resources.
+
+"""
+function Base.setproperty!(rs::Vector{<:AbstractResource}, sym::Symbol, value::Vector)
+ # if sym is a field of the resource then set that field for all resources
+ @assert length(rs) == length(value)
+ for (r,v) in zip(rs, value)
+ setproperty!(r, sym, v)
end
- rsv_max = get(r, :Rsv_Max, not_set)
- if rsv_max != 0
- e = string("Resource ", resource_name(r), " has :MUST_RUN = ", value, " but :Rsv_Max = ", rsv_max, ".\n",
- "MUST_RUN units must have Rsv_Max = 0 since they cannot contribute to reserves.")
- push!(error_strings, e)
+ return rs
+end
+
+"""
+ Base.setindex!(rs::Vector{<:AbstractResource}, value::Vector, sym::Symbol)
+
+Define dot syntax for setting the attributes specified by `sym` to the corresponding values in `value` for a vector of resources.
+
+# Arguments
+- `rs::Vector{<:AbstractResource}`: The vector of resources.
+- `value::Vector`: The vector of values to set for the attribute.
+- `sym::Symbol`: The symbol representing the attribute to set.
+
+# Returns
+- `rs::Vector{<:AbstractResource}`: The updated vector of resources.
+
+"""
+function Base.setindex!(rs::Vector{<:AbstractResource}, value::Vector, sym::Symbol)
+ # if sym is a field of the resource then set that field for all resources
+ @assert length(rs) == length(value)
+ for (r,v) in zip(rs, value)
+ setproperty!(r, sym, v)
end
- return error_strings
+ return rs
end
-@doc raw"""
- check_longdurationstorage_applicability(r::GenXResource)
+"""
+ pairs(r::AbstractResource)
+
+Return an iterator of key-value pairs with the attributes of a given resource.
+
+# Arguments
+- `r::AbstractResource`: The resource.
+
+# Returns
+- `Pairs`: An iterator of key-value pairs over the attributes.
+
+"""
+Base.pairs(r::AbstractResource) = pairs(parent(r))
-Check whether the LDS flag is set appropriately
"""
-function check_longdurationstorage_applicability(r::GenXResource)
- applicable_resources = [:STOR, :HYDRO]
+ show(io::IO, r::AbstractResource)
- not_set = resource_attribute_not_set()
- lds_value = get(r, :LDS, not_set)
+Print the attributes of the given resource.
- error_strings = String[]
+# Arguments
+- `io::IO`: The IO stream to print to.
+- `r::AbstractResource`: The resource.
- if lds_value == not_set
- # not LDS so the rest is not applicable
- return error_strings
+"""
+function Base.show(io::IO, r::AbstractResource)
+ key_length = maximum(length.(string.(attributes(r))))
+ value_length = length(resource_name(r)) + 3
+ println(io, "\nResource: $(r.resource) (id: $(r.id))")
+ println(io, repeat("-", key_length + value_length))
+ for (k,v) in pairs(r)
+ k,v = string(k), string(v)
+ k = k * repeat(" ", key_length - length(k))
+ println(io, "$k | $v")
end
+ println(io, repeat("-", key_length + value_length))
+end
+
+"""
+ attributes(r::AbstractResource)
+
+Returns a tuple of the attribute names of the given resource.
+
+# Arguments
+- `r::AbstractResource`: The resource.
+
+# Returns
+- `Tuple`: A tuple with symbols representing the attribute names.
+
+"""
+function attributes(r::AbstractResource)
+ return tuple(keys(parent(r))...)
+end
+
- check_for_flag_set(el) = get(r, el, not_set) > 0
- statuses = check_for_flag_set.(applicable_resources)
+"""
+ findall(f::Function, rs::Vector{<:AbstractResource})
+
+Find all resources in the vector `rs` that satisfy the condition given by the function `f`.
+Return the resource id instead of the vector index.
+
+# Arguments
+- `f::Function`: The condition function.
+- `rs::Vector{<:AbstractResource}`: The vector of resources.
+
+# Returns
+- `Vector`: The vector of resource ids.
+
+## Examples
+```julia
+julia> findall(r -> max_cap_mwh(r) != 0, gen.Storage)
+3-element Vector{Int64}:
+ 48
+ 49
+ 50
+```
+"""
+Base.findall(f::Function, rs::Vector{<:AbstractResource}) = resource_id.(filter(r -> f(r), rs))
- if count(statuses) == 0
- e = string("Resource ", resource_name(r), " has :LDS = ", lds_value, ".\n",
- "This setting is valid only for resources where the type is one of $applicable_resources.")
- push!(error_strings, e)
+"""
+ interface(name, default=default_zero, type=AbstractResource)
+
+Define a function interface for accessing the attribute specified by `name` in a resource of type `type`.
+
+# Arguments
+- `name`: The name of the attribute.
+- `default`: The default value to return if the attribute is not found.
+- `type`: The type of the resource.
+
+# Returns
+- `Function`: The generated function.
+
+## Examples
+```julia
+julia> @interface max_cap_mw 0 Vre
+julia> max_cap_mw(gen.Vre[3])
+4.888236
+julia> max_cap_mw.(gen.Vre) # vectorized
+5-element Vector{Float64}:
+ 0.0
+ 0.0
+ 4.888236
+ 20.835569
+ 9.848441999999999
+```
+"""
+macro interface(name, default=default_zero, type=AbstractResource)
+ quote
+ function $(esc(name))(r::$(esc(type)))
+ return get(r, $(QuoteNode(name)), $(esc(default)))
+ end
end
- return error_strings
end
-@doc raw"""
- check_maintenance_applicability(r::GenXResource)
+"""
+ ids_with_positive(rs::Vector{T}, f::Function) where T <: AbstractResource
+
+Function for finding indices of resources in a vector `rs` where the attribute specified by `f` is positive.
+
+# Arguments
+- `rs::Vector{<:AbstractResource}`: The vector of resources.
+- `f::Function`: The getter of the attribute.
+
+# Returns
+- `ids (Vector{Int64})`: The vector of resource ids with positive attribute.
+
+## Examples
+```julia
+julia> ids_with_positive(gen, max_cap_mw)
+3-element Vector{Int64}:
+ 3
+ 4
+ 5
+julia> max_cap_mw(gen[3])
+4.888236
+```
+"""
+function ids_with_positive(rs::Vector{T}, f::Function) where T <: AbstractResource
+ return findall(r -> f(r) > 0, rs)
+end
-Check whether the MAINT flag is set appropriately
"""
-function check_maintenance_applicability(r::GenXResource)
- applicable_resources = [:THERM]
+ ids_with_positive(rs::Vector{T}, name::Symbol) where T <: AbstractResource
+
+Function for finding indices of resources in a vector `rs` where the attribute specified by `name` is positive.
+
+# Arguments
+- `rs::Vector{<:AbstractResource}`: The vector of resources.
+- `name::Symbol`: The name of the attribute.
+
+# Returns
+- `Vector{Int64}`: The vector of resource ids with positive attribute.
+
+## Examples
+```julia
+julia> ids_with_positive(gen, :max_cap_mw)
+3-element Vector{Int64}:
+ 3
+ 4
+ 5
+julia> max_cap_mw(gen[3])
+4.888236
+```
+"""
+function ids_with_positive(rs::Vector{T}, name::Symbol) where T <: AbstractResource
+ # if the getter function exists in GenX then use it, otherwise get the attribute directly
+ f = isdefined(GenX, name) ? getfield(GenX, name) : r -> getproperty(r, name)
+ return ids_with_positive(rs, f)
+end
- not_set = resource_attribute_not_set()
- value = get(r, :MAINT, not_set)
+function ids_with_positive(rs::Vector{T}, name::AbstractString) where T <: AbstractResource
+ return ids_with_positive(rs, Symbol(lowercase(name)))
+end
- error_strings = String[]
+"""
+ ids_with_nonneg(rs::Vector{T}, f::Function) where T <: AbstractResource
- if value == not_set
- # not MAINT so the rest is not applicable
- return error_strings
- end
+Function for finding resources in a vector `rs` where the attribute specified by `f` is non-negative.
- check_for_flag_set(el) = get(r, el, not_set) > 0
- statuses = check_for_flag_set.(applicable_resources)
+# Arguments
+- `rs::Vector{<:AbstractResource}`: The vector of resources.
+- `f::Function`: The getter of the attribute.
- if count(statuses) == 0
- e = string("Resource ", resource_name(r), " has :MAINT = ", value, ".\n",
- "This setting is valid only for resources where the type is \n",
- "one of $applicable_resources. \n",
- )
- push!(error_strings, e)
- end
- if get(r, :THERM, not_set) == 2
- e = string("Resource ", resource_name(r), " has :MAINT = ", value, ".\n",
- "This is valid only for resources with unit commitment (:THERM = 1);\n",
- "this has :THERM = 2.")
- push!(error_strings, e)
- end
- return error_strings
+# Returns
+- `ids (Vector{Int64})`: The vector of resource ids with non-negative attribute.
+
+## Examples
+```julia
+julia> ids_with_nonneg(gen, max_cap_mw)
+```
+"""
+function ids_with_nonneg(rs::Vector{T}, f::Function) where T <: AbstractResource
+ return findall(r -> f(r) >= 0, rs)
end
-@doc raw"""
- check_resource(r::GenXResource)::Vector{String}
+"""
+ ids_with_nonneg(rs::Vector{T}, f::Function) where T <: AbstractResource
+
+Function for finding resources in a vector `rs` where the attribute specified by `name` is non-negative.
+
+# Arguments
+- `rs::Vector{<:AbstractResource}`: The vector of resources.
+- `name::Symbol`: The name of the attribute.
+
+# Returns
+- `ids (Vector{Int64})`: The vector of resource ids with non-negative attribute.
-Top-level function for validating the self-consistency of a GenX resource.
-Reports any errors in a list of strings.
+## Examples
+```julia
+julia> ids_with_nonneg(gen, max_cap_mw)
+```
"""
-function check_resource(r::GenXResource)::Vector{String}
- e = String[]
- e = [e; check_resource_type_flags(r)]
- e = [e; check_longdurationstorage_applicability(r)]
- e = [e; check_maintenance_applicability(r)]
- e = [e; check_mustrun_reserve_contribution(r)]
- return e
+function ids_with_nonneg(rs::Vector{T}, name::Symbol) where T <: AbstractResource
+ # if the getter function exists in GenX then use it, otherwise get the attribute directly
+ f = isdefined(GenX, name) ? getfield(GenX, name) : r -> getproperty(r, name)
+ return ids_with_nonneg(rs, f)
end
-@doc raw"""
- check_resource(resources::Vector{GenXResource})::Vector{String}
+function ids_with_nonneg(rs::Vector{T}, name::AbstractString) where T <: AbstractResource
+ return ids_with_nonneg(rs, Symbol(lowercase(name)))
+end
-Validate the consistency of a vector of GenX resources
-Reports any errors in a list of strings.
"""
-function check_resource(resources::Vector{GenXResource})::Vector{String}
- e = String[]
- for r in resources
- e = [e; check_resource(r)]
- end
- return e
+ ids_with(rs::Vector{T}, f::Function, default=default_zero) where T <: AbstractResource
+
+Function for finding resources in a vector `rs` where the attribute specified by `f` is not equal to `default`.
+
+# Arguments
+- `rs::Vector{<:AbstractResource}`: The vector of resources.
+- `f::Function`: The getter of the attribute.
+- `default`: The default value of the attribute.
+
+
+# Returns
+- `ids (Vector{Int64})`: The vector of resource ids with attribute not equal to `default`.
+
+## Examples
+```julia
+julia> ids_with(gen.Thermal, existing_cap_mw)
+4-element Vector{Int64}:
+ 21
+ 22
+ 23
+ 24
+julia> existing_cap_mw(gen[21])
+7.0773
+```
+"""
+function ids_with(rs::Vector{T}, f::Function, default=default_zero) where T <: AbstractResource
+ return findall(r -> f(r) != default, rs)
end
-function announce_errors_and_halt(e::Vector{String})
- error_count = length(e)
- for error_message in e
- @error(error_message)
- end
- s = string(error_count, " problems were detected with the input data. Halting.")
- error(s)
+"""
+ ids_with(rs::Vector{T}, name::Symbol, default=default_zero) where T <: AbstractResource
+
+Function for finding resources in a vector `rs` where the attribute specified by `name` is not equal to the default value of the attribute.
+
+# Arguments
+- `rs::Vector{<:AbstractResource}`: The vector of resources.
+- `name::Symbol`: The name of the attribute.
+- `default`: The default value of the attribute.
+
+# Returns
+- `ids (Vector{Int64})`: The vector of resource ids with attribute not equal to `default`.
+
+## Examples
+```julia
+julia> ids_with(gen.Thermal, :existing_cap_mw)
+4-element Vector{Int64}:
+ 21
+ 22
+ 23
+ 24
+julia> existing_cap_mw(gen[21])
+7.0773
+```
+"""
+function ids_with(rs::Vector{T}, name::Symbol, default=default_zero) where T <: AbstractResource
+ # if the getter function exists in GenX then use it, otherwise get the attribute directly
+ f = isdefined(GenX, name) ? getfield(GenX, name) : r -> getproperty(r, name)
+ return ids_with(rs, f, default)
+end
+
+function ids_with(rs::Vector{T}, name::AbstractString, default=default_zero) where T <: AbstractResource
+ return ids_with(rs, Symbol(lowercase(name)), default)
+end
+
+"""
+ ids_with_policy(rs::Vector{T}, f::Function; tag::Int64) where T <: AbstractResource
+
+Function for finding resources in a vector `rs` where the policy specified by `f` with tag equal to `tag` is positive.
+
+# Arguments
+- `rs::Vector{<:AbstractResource}`: The vector of resources.
+- `f::Function`: The policy getter function.
+- `tag::Int64`: The tag of the policy.
+
+# Returns
+- `ids (Vector{Int64})`: The vector of resource ids with a positive value for policy `f` and tag `tag`.
+"""
+function ids_with_policy(rs::Vector{T}, f::Function; tag::Int64) where T <: AbstractResource
+ return findall(r -> f(r, tag=tag) > 0, rs)
end
-function validate_resources(resources::Vector{GenXResource})
- e = check_resource(resources)
- if length(e) > 0
- announce_errors_and_halt(e)
+"""
+ids_with_policy(rs::Vector{T}, name::Symbol; tag::Int64) where T <: AbstractResource
+
+Function for finding resources in a vector `rs` where the policy specified by `name` with tag equal to `tag` is positive.
+
+# Arguments
+- `rs::Vector{<:AbstractResource}`: The vector of resources.
+- `name::Symbol`: The name of the policy.
+- `tag::Int64`: The tag of the policy.
+
+# Returns
+- `ids (Vector{Int64})`: The vector of resource ids with a positive value for policy `name` and tag `tag`.
+"""
+function ids_with_policy(rs::Vector{T}, name::Symbol; tag::Int64) where T <: AbstractResource
+ # if the getter function exists in GenX then use it, otherwise get the attribute directly
+ if isdefined(GenX, name)
+ f = getfield(GenX, name)
+ return ids_with_policy(rs, f, tag=tag)
end
+ return findall(r -> getproperty(r, Symbol(string(name, "_$tag"))) > 0, rs)
+end
+
+function ids_with_policy(rs::Vector{T}, name::AbstractString; tag::Int64) where T <: AbstractResource
+ return ids_with_policy(rs, Symbol(lowercase(name)), tag=tag)
+end
+
+"""
+ const default_zero = 0
+
+Default value for resource attributes.
+"""
+const default_zero = 0
+
+# INTERFACE FOR ALL RESOURCES
+resource_name(r::AbstractResource) = r.resource
+resource_name(rs::Vector{T}) where T <: AbstractResource = rs.resource
+
+resource_id(r::AbstractResource)::Int64 = r.id
+resource_id(rs::Vector{T}) where T <: AbstractResource = resource_id.(rs)
+resource_type_mga(r::AbstractResource) = r.resource_type
+
+zone_id(r::AbstractResource) = r.zone
+zone_id(rs::Vector{T}) where T <: AbstractResource = rs.zone
+
+const default_minmax_cap = -1.
+max_cap_mw(r::AbstractResource) = get(r, :max_cap_mw, default_minmax_cap)
+min_cap_mw(r::AbstractResource) = get(r, :min_cap_mw, default_minmax_cap)
+
+max_cap_mwh(r::AbstractResource) = get(r, :max_cap_mwh, default_minmax_cap)
+min_cap_mwh(r::AbstractResource) = get(r, :min_cap_mwh, default_minmax_cap)
+
+max_charge_cap_mw(r::AbstractResource) = get(r, :max_charge_cap_mw, default_minmax_cap)
+min_charge_cap_mw(r::AbstractResource) = get(r, :min_charge_cap_mw, default_minmax_cap)
+
+existing_cap_mw(r::AbstractResource) = r.existing_cap_mw
+existing_cap_mwh(r::AbstractResource) = get(r, :existing_cap_mwh, default_zero)
+existing_charge_cap_mw(r::AbstractResource) = get(r, :existing_charge_cap_mw, default_zero)
+
+cap_size(r::AbstractResource) = get(r, :cap_size, default_zero)
+
+num_vre_bins(r::AbstractResource) = get(r, :num_vre_bins, default_zero)
+
+hydro_energy_to_power_ratio(r::AbstractResource) = get(r, :hydro_energy_to_power_ratio, default_zero)
+
+qualified_hydrogen_supply(r::AbstractResource) = get(r, :qualified_hydrogen_supply, default_zero)
+
+# costs
+reg_cost(r::AbstractResource) = get(r, :reg_cost, default_zero)
+reg_max(r::AbstractResource)::Float64 = get(r, :reg_max, default_zero)
+rsv_cost(r::AbstractResource) = get(r, :rsv_cost, default_zero)
+rsv_max(r::AbstractResource) = get(r, :rsv_max, default_zero)
+inv_cost_per_mwyr(r::AbstractResource) = get(r, :inv_cost_per_mwyr, default_zero)
+fixed_om_cost_per_mwyr(r::AbstractResource) = get(r, :fixed_om_cost_per_mwyr, default_zero)
+var_om_cost_per_mwh(r::AbstractResource) = get(r, :var_om_cost_per_mwh, default_zero)
+inv_cost_per_mwhyr(r::AbstractResource) = get(r, :inv_cost_per_mwhyr, default_zero)
+fixed_om_cost_per_mwhyr(r::AbstractResource) = get(r, :fixed_om_cost_per_mwhyr, default_zero)
+inv_cost_charge_per_mwyr(r::AbstractResource) = get(r, :inv_cost_charge_per_mwyr, default_zero)
+fixed_om_cost_charge_per_mwyr(r::AbstractResource) = get(r, :fixed_om_cost_charge_per_mwyr, default_zero)
+start_cost_per_mw(r::AbstractResource) = get(r, :start_cost_per_mw, default_zero)
+
+# fuel
+fuel(r::AbstractResource) = get(r, :fuel, "None")
+start_fuel_mmbtu_per_mw(r::AbstractResource) = get(r, :start_fuel_mmbtu_per_mw, default_zero)
+heat_rate_mmbtu_per_mwh(r::AbstractResource) = get(r, :heat_rate_mmbtu_per_mwh, default_zero)
+co2_capture_fraction(r::AbstractResource) = get(r, :co2_capture_fraction, default_zero)
+co2_capture_fraction_startup(r::AbstractResource) = get(r, :co2_capture_fraction_startup, default_zero)
+ccs_disposal_cost_per_metric_ton(r::AbstractResource) = get(r, :ccs_disposal_cost_per_metric_ton, default_zero)
+biomass(r::AbstractResource) = get(r, :biomass, default_zero)
+
+# Reservoir hydro and storage
+const default_percent = 1.0
+efficiency_up(r::T) where T <: Union{Hydro,Storage} = get(r, :eff_up, default_percent)
+efficiency_down(r::T) where T <: Union{Hydro,Storage} = get(r, :eff_down, default_percent)
+
+# Ramp up and down
+const VarPower = Union{Electrolyzer, Hydro, Thermal}
+min_power(r::VarPower) = get(r, :min_power, default_zero)
+ramp_up_fraction(r::VarPower) = get(r, :ramp_up_percentage, default_percent)
+ramp_down_fraction(r::VarPower) = get(r, :ramp_dn_percentage, default_percent)
+
+# Retirement - Multistage
+lifetime(r::Storage) = get(r, :lifetime, 15)
+lifetime(r::AbstractResource) = get(r, :lifetime, 30)
+capital_recovery_period(r::Storage) = get(r, :capital_recovery_period, 15)
+capital_recovery_period(r::AbstractResource) = get(r, :capital_recovery_period, 30)
+tech_wacc(r::AbstractResource) = get(r, :wacc, default_zero)
+min_retired_cap_mw(r::AbstractResource) = get(r, :min_retired_cap_mw, default_zero)
+min_retired_energy_cap_mw(r::AbstractResource) = get(r, :min_retired_energy_cap_mw, default_zero)
+min_retired_charge_cap_mw(r::AbstractResource) = get(r, :min_retired_charge_cap_mw, default_zero)
+cum_min_retired_cap_mw(r::AbstractResource) = r.cum_min_retired_cap_mw
+cum_min_retired_energy_cap_mw(r::AbstractResource) = r.cum_min_retired_energy_cap_mw
+cum_min_retired_charge_cap_mw(r::AbstractResource) = r.cum_min_retired_charge_cap_mw
+
+# MGA
+mga(r::AbstractResource) = get(r, :mga, default_zero)
+
+# policies
+esr(r::AbstractResource; tag::Int64) = get(r, Symbol("esr_$tag"), default_zero)
+min_cap(r::AbstractResource; tag::Int64) = get(r, Symbol("min_cap_$tag"), default_zero)
+max_cap(r::AbstractResource; tag::Int64) = get(r, Symbol("max_cap_$tag"), default_zero)
+derating_factor(r::AbstractResource; tag::Int64) = get(r, Symbol("derating_factor_$tag"), default_zero)
+
+# write_outputs
+region(r::AbstractResource) = r.region
+cluster(r::AbstractResource) = r.cluster
+
+# UTILITY FUNCTIONS for working with resources
+is_LDS(rs::Vector{T}) where T <: AbstractResource = findall(r -> get(r, :lds, default_zero) == 1, rs)
+is_SDS(rs::Vector{T}) where T <: AbstractResource = findall(r -> get(r, :lds, default_zero) == 0, rs)
+
+ids_with_mga(rs::Vector{T}) where T <: AbstractResource = findall(r -> mga(r) == 1, rs)
+
+ids_with_fuel(rs::Vector{T}) where T <: AbstractResource = findall(r -> fuel(r) != "None", rs)
+
+is_buildable(rs::Vector{T}) where T <: AbstractResource = findall(r -> get(r, :new_build, default_zero) == 1, rs)
+is_retirable(rs::Vector{T}) where T <: AbstractResource = findall(r -> get(r, :can_retire, default_zero) == 1, rs)
+
+# Retrofit
+ids_with_retrofit(rs::Vector{T}) where T <: AbstractResource = findall(r -> get(r, :retro, default_zero) == 1, rs)
+
+# Unit commitment
+ids_with_unit_commitment(rs::Vector{T}) where T <: AbstractResource = findall(r -> isa(r,Thermal) && r.model == 1, rs)
+# Without unit commitment
+no_unit_commitment(rs::Vector{T}) where T <: AbstractResource = findall(r -> isa(r,Thermal) && r.model == 2, rs)
+
+# Reserves
+# cap reserve margin
+ids_with_regulation_reserve_requirements(rs::Vector{T}) where T <: AbstractResource = findall(r -> reg_max(r) > 0, rs)
+ids_with_spinning_reserve_requirements(rs::Vector{T}) where T <: AbstractResource = findall(r -> rsv_max(r) > 0, rs)
+
+# Maintenance
+ids_with_maintenance(rs::Vector{T}) where T <: AbstractResource = findall(r -> get(r, :maint, default_zero) == 1, rs)
+maintenance_duration(r::AbstractResource) = get(r, :maintenance_duration, default_zero)
+maintenance_cycle_length_years(r::AbstractResource) = get(r, :maintenance_cycle_length_years, default_zero)
+maintenance_begin_cadence(r::AbstractResource) = get(r, :maintenance_begin_cadence, default_zero)
+
+# STORAGE interface
+"""
+ storage(rs::Vector{T}) where T <: AbstractResource
+
+Returns the indices of all storage resources in the vector `rs`.
+"""
+storage(rs::Vector{T}) where T <: AbstractResource = findall(r -> isa(r,Storage), rs)
+
+self_discharge(r::Storage) = r.self_disch
+min_duration(r::Storage) = r.min_duration
+max_duration(r::Storage) = r.max_duration
+var_om_cost_per_mwh_in(r::Storage) = get(r, :var_om_cost_per_mwh_in, default_zero)
+symmetric_storage(rs::Vector{T}) where T <: AbstractResource = findall(r -> isa(r,Storage) && r.model == 1, rs)
+asymmetric_storage(rs::Vector{T}) where T <: AbstractResource = findall(r -> isa(r,Storage) && r.model == 2, rs)
+
+# HYDRO interface
+"""
+ hydro(rs::Vector{T}) where T <: AbstractResource
+
+Returns the indices of all hydro resources in the vector `rs`.
+"""
+hydro(rs::Vector{T}) where T <: AbstractResource = findall(r -> isa(r,Hydro), rs)
+
+# THERM interface
+"""
+ thermal(rs::Vector{T}) where T <: AbstractResource
+
+Returns the indices of all thermal resources in the vector `rs`.
+"""
+thermal(rs::Vector{T}) where T <: AbstractResource = findall(r -> isa(r,Thermal), rs)
+up_time(r::Thermal) = get(r, :up_time, default_zero)
+down_time(r::Thermal) = get(r, :down_time, default_zero)
+pwfu_fuel_usage_zero_load_mmbtu_per_h(r::Thermal) = get(r, :pwfu_fuel_usage_zero_load_mmbtu_per_h, default_zero)
+
+# VRE interface
+"""
+ vre(rs::Vector{T}) where T <: AbstractResource
+
+Returns the indices of all Vre resources in the vector `rs`.
+"""
+vre(rs::Vector{T}) where T <: AbstractResource = findall(r -> isa(r,Vre), rs)
+
+# ELECTROLYZER interface
+"""
+ electrolyzer(rs::Vector{T}) where T <: AbstractResource
+
+Returns the indices of all electrolyzer resources in the vector `rs`.
+"""
+electrolyzer(rs::Vector{T}) where T <: AbstractResource = findall(r -> isa(r,Electrolyzer), rs)
+electrolyzer_min_kt(r::Electrolyzer) = r.electrolyzer_min_kt
+hydrogen_mwh_per_tonne(r::Electrolyzer) = r.hydrogen_mwh_per_tonne
+hydrogen_price_per_tonne(r::Electrolyzer) = r.hydrogen_price_per_tonne
+
+# FLEX_DEMAND interface
+"""
+ flex_demand(rs::Vector{T}) where T <: AbstractResource
+
+Returns the indices of all flexible demand resources in the vector `rs`.
+"""
+flex_demand(rs::Vector{T}) where T <: AbstractResource = findall(r -> isa(r,FlexDemand), rs)
+flexible_demand_energy_eff(r::FlexDemand) = r.flexible_demand_energy_eff
+max_flexible_demand_delay(r::FlexDemand) = r.max_flexible_demand_delay
+max_flexible_demand_advance(r::FlexDemand) = r.max_flexible_demand_advance
+var_om_cost_per_mwh_in(r::FlexDemand) = get(r, :var_om_cost_per_mwh_in, default_zero)
+
+# MUST_RUN interface
+"""
+ must_run(rs::Vector{T}) where T <: AbstractResource
+
+Returns the indices of all must-run resources in the vector `rs`.
+"""
+must_run(rs::Vector{T}) where T <: AbstractResource = findall(r -> isa(r,MustRun), rs)
+
+# VRE_STOR interface
+"""
+ vre_stor(rs::Vector{T}) where T <: AbstractResource
+
+Returns the indices of all VRE_STOR resources in the vector `rs`.
+"""
+vre_stor(rs::Vector{T}) where T <: AbstractResource = findall(r -> isa(r,VreStorage), rs)
+technology(r::VreStorage) = r.technology
+self_discharge(r::VreStorage) = r.self_disch
+
+"""
+ solar(rs::Vector{T}) where T <: AbstractResource
+
+Returns the indices of all co-located solar resources in the vector `rs`.
+"""
+solar(rs::Vector{T}) where T <: AbstractResource = findall(r -> isa(r,VreStorage) && r.solar != 0, rs)
+
+"""
+ wind(rs::Vector{T}) where T <: AbstractResource
+
+Returns the indices of all co-located wind resources in the vector `rs`.
+"""
+wind(rs::Vector{T}) where T <: AbstractResource = findall(r -> isa(r,VreStorage) && r.wind != 0, rs)
+
+"""
+ storage_dc_discharge(rs::Vector{T}) where T <: AbstractResource
+Returns the indices of all co-located storage resources in the vector `rs` that discharge DC.
+"""
+storage_dc_discharge(rs::Vector{T}) where T <: AbstractResource = findall(r -> isa(r,VreStorage) && r.stor_dc_discharge >= 1, rs)
+storage_sym_dc_discharge(rs::Vector{T}) where T <: AbstractResource = findall(r -> isa(r,VreStorage) && r.stor_dc_discharge == 1, rs)
+storage_asym_dc_discharge(rs::Vector{T}) where T <: AbstractResource = findall(r -> isa(r,VreStorage) && r.stor_dc_discharge == 2, rs)
+
+"""
+ storage_dc_charge(rs::Vector{T}) where T <: AbstractResource
+ Returns the indices of all co-located storage resources in the vector `rs` that charge DC.
+"""
+storage_dc_charge(rs::Vector{T}) where T <: AbstractResource = findall(r -> isa(r,VreStorage) && r.stor_dc_charge >= 1, rs)
+storage_sym_dc_charge(rs::Vector{T}) where T <: AbstractResource = findall(r -> isa(r,VreStorage) && r.stor_dc_charge == 1, rs)
+storage_asym_dc_charge(rs::Vector{T}) where T <: AbstractResource = findall(r -> isa(r,VreStorage) && r.stor_dc_charge == 2, rs)
+
+"""
+ storage_ac_discharge(rs::Vector{T}) where T <: AbstractResource
+Returns the indices of all co-located storage resources in the vector `rs` that discharge AC.
+"""
+storage_ac_discharge(rs::Vector{T}) where T <: AbstractResource = findall(r -> isa(r,VreStorage) && r.stor_ac_discharge >= 1, rs)
+storage_sym_ac_discharge(rs::Vector{T}) where T <: AbstractResource = findall(r -> isa(r,VreStorage) && r.stor_ac_discharge == 1, rs)
+storage_asym_ac_discharge(rs::Vector{T}) where T <: AbstractResource = findall(r -> isa(r,VreStorage) && r.stor_ac_discharge == 2, rs)
+
+"""
+ storage_ac_charge(rs::Vector{T}) where T <: AbstractResource
+Returns the indices of all co-located storage resources in the vector `rs` that charge AC.
+"""
+storage_ac_charge(rs::Vector{T}) where T <: AbstractResource = findall(r -> isa(r,VreStorage) && r.stor_ac_charge >= 1, rs)
+storage_sym_ac_charge(rs::Vector{T}) where T <: AbstractResource = findall(r -> isa(r,VreStorage) && r.stor_ac_charge == 1, rs)
+storage_asym_ac_charge(rs::Vector{T}) where T <: AbstractResource = findall(r -> isa(r,VreStorage) && r.stor_ac_charge == 2, rs)
+
+is_LDS_VRE_STOR(rs::Vector{T}) where T <: AbstractResource = findall(r -> get(r, :lds_vre_stor, default_zero) != 0, rs)
+
+# loop over the above attributes and define function interfaces for each one
+for attr in (:existing_cap_solar_mw,
+ :existing_cap_wind_mw,
+ :existing_cap_inverter_mw,
+ :existing_cap_charge_dc_mw,
+ :existing_cap_charge_ac_mw,
+ :existing_cap_discharge_dc_mw,
+ :existing_cap_discharge_ac_mw)
+ @eval @interface $attr
+end
+
+for attr in (:max_cap_solar_mw,
+ :max_cap_wind_mw,
+ :max_cap_inverter_mw,
+ :max_cap_charge_dc_mw,
+ :max_cap_charge_ac_mw,
+ :max_cap_discharge_dc_mw,
+ :max_cap_discharge_ac_mw)
+ @eval @interface $attr
+end
+
+for attr in (:min_cap_solar_mw,
+ :min_cap_wind_mw,
+ :min_cap_inverter_mw,
+ :min_cap_charge_dc_mw,
+ :min_cap_charge_ac_mw,
+ :min_cap_discharge_dc_mw,
+ :min_cap_discharge_ac_mw,
+ :inverter_ratio_solar,
+ :inverter_ratio_wind,)
+ @eval @interface $attr
+end
+
+for attr in (:etainverter,
+ :inv_cost_inverter_per_mwyr,
+ :inv_cost_solar_per_mwyr,
+ :inv_cost_wind_per_mwyr,
+ :inv_cost_discharge_dc_per_mwyr,
+ :inv_cost_charge_dc_per_mwyr,
+ :inv_cost_discharge_ac_per_mwyr,
+ :inv_cost_charge_ac_per_mwyr,
+ :fixed_om_inverter_cost_per_mwyr,
+ :fixed_om_solar_cost_per_mwyr,
+ :fixed_om_wind_cost_per_mwyr,
+ :fixed_om_cost_discharge_dc_per_mwyr,
+ :fixed_om_cost_charge_dc_per_mwyr,
+ :fixed_om_cost_discharge_ac_per_mwyr,
+ :fixed_om_cost_charge_ac_per_mwyr,
+ :var_om_cost_per_mwh_solar,
+ :var_om_cost_per_mwh_wind,
+ :var_om_cost_per_mwh_charge_dc,
+ :var_om_cost_per_mwh_discharge_dc,
+ :var_om_cost_per_mwh_charge_ac,
+ :var_om_cost_per_mwh_discharge_ac,
+ :eff_up_ac,
+ :eff_down_ac,
+ :eff_up_dc,
+ :eff_down_dc,
+ :power_to_energy_ac,
+ :power_to_energy_dc)
+ @eval @interface $attr default_zero VreStorage
+end
+
+# Multistage
+for attr in (:capital_recovery_period_dc,
+ :capital_recovery_period_solar,
+ :capital_recovery_period_wind,
+ :capital_recovery_period_charge_dc,
+ :capital_recovery_period_discharge_dc,
+ :capital_recovery_period_charge_ac,
+ :capital_recovery_period_discharge_ac,
+ :tech_wacc_dc,
+ :tech_wacc_solar,
+ :tech_wacc_wind,
+ :tech_wacc_charge_dc,
+ :tech_wacc_discharge_dc,
+ :tech_wacc_charge_ac,
+ :tech_wacc_discharge_ac)
+ @eval @interface $attr default_zero VreStorage
end
-function dataframerow_to_dict(dfr::DataFrameRow)
- return Dict(pairs(dfr))
+# Endogenous retirement
+for attr in (:min_retired_cap_inverter_mw,
+ :min_retired_cap_solar_mw,
+ :min_retired_cap_wind_mw,
+ :min_retired_cap_discharge_dc_mw,
+ :min_retired_cap_charge_dc_mw,
+ :min_retired_cap_discharge_ac_mw,
+ :min_retired_cap_charge_ac_mw,)
+ @eval @interface $attr default_zero VreStorage
+ cum_attr = Symbol("cum_"*String(attr))
+ @eval @interface $cum_attr default_zero VreStorage
end
+
+## policies
+# co-located storage
+esr_vrestor(r::AbstractResource; tag::Int64) = get(r, Symbol("esr_vrestor_$tag"), default_zero)
+min_cap_stor(r::AbstractResource; tag::Int64) = get(r, Symbol("min_cap_stor_$tag"), default_zero)
+max_cap_stor(r::AbstractResource; tag::Int64) = get(r, Symbol("max_cap_stor_$tag"), default_zero)
+# vre part
+min_cap_solar(r::AbstractResource; tag::Int64) = get(r, Symbol("min_cap_solar_$tag"), default_zero)
+max_cap_solar(r::AbstractResource; tag::Int64) = get(r, Symbol("max_cap_solar_$tag"), default_zero)
+min_cap_wind(r::AbstractResource; tag::Int64) = get(r, Symbol("min_cap_wind_$tag"), default_zero)
+max_cap_wind(r::AbstractResource; tag::Int64) = get(r, Symbol("max_cap_wind_$tag"), default_zero)
+
+## Utility functions for working with resources
+in_zone(r::AbstractResource, zone::Int) = zone_id(r) == zone
+resources_in_zone(rs::Vector{AbstractResource}, zone::Int) = filter(r -> in_zone(r, zone), rs)
+
+@doc raw"""
+ resources_in_zone_by_rid(rs::Vector{<:AbstractResource}, zone::Int)
+Find R_ID's of resources in a zone.
+"""
+function resources_in_zone_by_rid(rs::Vector{<:AbstractResource}, zone::Int)
+ return resource_id.(rs[zone_id.(rs) .== zone])
+end
+
+"""
+ resource_by_name(rs::Vector{AbstractResource}, name::AbstractString)
+
+Find the resource with `name` in the vector `rs`.
+
+# Arguments
+- `rs`: A vector of resources.
+- `name`: The name of the resource.
+
+# Returns
+- `AbstractResource`: The resource with the name `name`.
+"""
+function resource_by_name(rs::Vector{AbstractResource}, name::AbstractString)
+ r_id = findfirst(r -> resource_name(r) == name, rs)
+ # check that the resource exists
+ isnothing(r_id) && error("Resource $name not found in resource data. \nHint: Make sure that the resource names in input files match the ones in the \"resource\" folder.\n")
+ return rs[r_id]
+end
+
+
diff --git a/src/model/resources/retrofits/retrofits.jl b/src/model/resources/retrofits/retrofits.jl
index d8c2eef975..ba6740ef94 100644
--- a/src/model/resources/retrofits/retrofits.jl
+++ b/src/model/resources/retrofits/retrofits.jl
@@ -25,7 +25,7 @@ function retrofit(EP::Model, inputs::Dict)
println("Retrofit Resources Module")
G = inputs["G"] # Number of resources (generators, storage, DR, and DERs)
- RESOURCES = inputs["RESOURCES"] # Set of all resources by name
+ RESOURCES = inputs["RESOURCE_NAMES"] # Set of all resources by name
RETRO = inputs["RETRO"] # Set of all retrofit resources by ID
NEW_CAP = inputs["NEW_CAP"] # Set of all resources eligible for capacity expansion by ID
RET_CAP = inputs["RET_CAP"] # Set of all resources eligible for capacity retirements by ID
@@ -33,7 +33,7 @@ function retrofit(EP::Model, inputs::Dict)
RETRO_SOURCES = inputs["RETROFIT_SOURCES"] # Source technologies by name for each retrofit [1:G]
RETRO_SOURCE_IDS = inputs["RETROFIT_SOURCE_IDS"] # Source technologies by ID for each retrofit [1:G]
RETRO_EFFICIENCY = inputs["RETROFIT_EFFICIENCIES"] # Ratio of installed retrofit capacity to source capacity [0:1] (indexed by retrofit tech r, source # i)
- CAP_SIZE = inputs["dfGen"][!, :Cap_Size] # Capacity sizes for resources subject to unit commitment
+ CAP_SIZE = cap_size.(inputs["RESOURCES"]) # Capacity sizes for resources subject to unit commitment
NUM_RETRO_SOURCES = inputs["NUM_RETROFIT_SOURCES"] # Number of possible sources for a given retrofit resource
### Variables ###
diff --git a/src/model/resources/storage/investment_charge.jl b/src/model/resources/storage/investment_charge.jl
index ea79649509..77f67f76bc 100644
--- a/src/model/resources/storage/investment_charge.jl
+++ b/src/model/resources/storage/investment_charge.jl
@@ -42,7 +42,8 @@ function investment_charge!(EP::Model, inputs::Dict, setup::Dict)
println("Charge Investment Module")
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
+
MultiStage = setup["MultiStage"]
STOR_ASYMMETRIC = inputs["STOR_ASYMMETRIC"] # Set of storage resources with asymmetric (separte) charge/discharge capacity components
@@ -69,7 +70,7 @@ function investment_charge!(EP::Model, inputs::Dict, setup::Dict)
if MultiStage == 1
@expression(EP, eExistingCapCharge[y in STOR_ASYMMETRIC], vEXISTINGCAPCHARGE[y])
else
- @expression(EP, eExistingCapCharge[y in STOR_ASYMMETRIC], dfGen[y,:Existing_Charge_Cap_MW])
+ @expression(EP, eExistingCapCharge[y in STOR_ASYMMETRIC], existing_charge_cap_mw(gen[y]))
end
@expression(EP, eTotalCapCharge[y in STOR_ASYMMETRIC],
@@ -90,9 +91,9 @@ function investment_charge!(EP::Model, inputs::Dict, setup::Dict)
# If resource is not eligible for new charge capacity, fixed costs are only O&M costs
@expression(EP, eCFixCharge[y in STOR_ASYMMETRIC],
if y in NEW_CAP_CHARGE # Resources eligible for new charge capacity
- dfGen[y,:Inv_Cost_Charge_per_MWyr]*vCAPCHARGE[y] + dfGen[y,:Fixed_OM_Cost_Charge_per_MWyr]*eTotalCapCharge[y]
+ inv_cost_charge_per_mwyr(gen[y])*vCAPCHARGE[y] + fixed_om_cost_charge_per_mwyr(gen[y])*eTotalCapCharge[y]
else
- dfGen[y,:Fixed_OM_Cost_Charge_per_MWyr]*eTotalCapCharge[y]
+ fixed_om_cost_charge_per_mwyr(gen[y])*eTotalCapCharge[y]
end
)
@@ -113,7 +114,7 @@ function investment_charge!(EP::Model, inputs::Dict, setup::Dict)
if MultiStage == 1
# Existing capacity variable is equal to existing capacity specified in the input file
- @constraint(EP, cExistingCapCharge[y in STOR_ASYMMETRIC], EP[:vEXISTINGCAPCHARGE][y] == dfGen[y,:Existing_Charge_Cap_MW])
+ @constraint(EP, cExistingCapCharge[y in STOR_ASYMMETRIC], EP[:vEXISTINGCAPCHARGE][y] == existing_charge_cap_mw(gen[y]))
end
## Constraints on retirements and capacity additions
@@ -124,11 +125,11 @@ function investment_charge!(EP::Model, inputs::Dict, setup::Dict)
# Constraint on maximum charge capacity (if applicable) [set input to -1 if no constraint on maximum charge capacity]
# DEV NOTE: This constraint may be violated in some cases where Existing_Charge_Cap_MW is >= Max_Charge_Cap_MWh and lead to infeasabilty
- @constraint(EP, cMaxCapCharge[y in intersect(dfGen[dfGen.Max_Charge_Cap_MW.>0,:R_ID], STOR_ASYMMETRIC)], eTotalCapCharge[y] <= dfGen[y,:Max_Charge_Cap_MW])
+ @constraint(EP, cMaxCapCharge[y in intersect(ids_with_positive(gen, max_charge_cap_mw), STOR_ASYMMETRIC)], eTotalCapCharge[y] <= max_charge_cap_mw(gen[y]))
# Constraint on minimum charge capacity (if applicable) [set input to -1 if no constraint on minimum charge capacity]
# DEV NOTE: This constraint may be violated in some cases where Existing_Charge_Cap_MW is <= Min_Charge_Cap_MWh and lead to infeasabilty
- @constraint(EP, cMinCapCharge[y in intersect(dfGen[dfGen.Min_Charge_Cap_MW.>0,:R_ID], STOR_ASYMMETRIC)], eTotalCapCharge[y] >= dfGen[y,:Min_Charge_Cap_MW])
+ @constraint(EP, cMinCapCharge[y in intersect(ids_with_positive(gen, min_charge_cap_mw), STOR_ASYMMETRIC)], eTotalCapCharge[y] >= min_charge_cap_mw(gen[y]))
end
diff --git a/src/model/resources/storage/investment_energy.jl b/src/model/resources/storage/investment_energy.jl
index 7ef1a6d96c..35757fca6b 100644
--- a/src/model/resources/storage/investment_energy.jl
+++ b/src/model/resources/storage/investment_energy.jl
@@ -45,7 +45,8 @@ function investment_energy!(EP::Model, inputs::Dict, setup::Dict)
println("Storage Investment Module")
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
+
MultiStage = setup["MultiStage"]
STOR_ALL = inputs["STOR_ALL"] # Set of all storage resources
@@ -71,7 +72,7 @@ function investment_energy!(EP::Model, inputs::Dict, setup::Dict)
if MultiStage == 1
@expression(EP, eExistingCapEnergy[y in STOR_ALL], vEXISTINGCAPENERGY[y])
else
- @expression(EP, eExistingCapEnergy[y in STOR_ALL], dfGen[y,:Existing_Cap_MWh])
+ @expression(EP, eExistingCapEnergy[y in STOR_ALL], existing_cap_mwh(gen[y]))
end
@expression(EP, eTotalCapEnergy[y in STOR_ALL],
@@ -92,9 +93,9 @@ function investment_energy!(EP::Model, inputs::Dict, setup::Dict)
# If resource is not eligible for new energy capacity, fixed costs are only O&M costs
@expression(EP, eCFixEnergy[y in STOR_ALL],
if y in NEW_CAP_ENERGY # Resources eligible for new capacity
- dfGen[y,:Inv_Cost_per_MWhyr]*vCAPENERGY[y] + dfGen[y,:Fixed_OM_Cost_per_MWhyr]*eTotalCapEnergy[y]
+ inv_cost_per_mwhyr(gen[y])*vCAPENERGY[y] + fixed_om_cost_per_mwhyr(gen[y])*eTotalCapEnergy[y]
else
- dfGen[y,:Fixed_OM_Cost_per_MWhyr]*eTotalCapEnergy[y]
+ fixed_om_cost_per_mwhyr(gen[y])*eTotalCapEnergy[y]
end
)
@@ -114,7 +115,7 @@ function investment_energy!(EP::Model, inputs::Dict, setup::Dict)
### Constraints ###
if MultiStage == 1
- @constraint(EP, cExistingCapEnergy[y in STOR_ALL], EP[:vEXISTINGCAPENERGY][y] == dfGen[y,:Existing_Cap_MWh])
+ @constraint(EP, cExistingCapEnergy[y in STOR_ALL], EP[:vEXISTINGCAPENERGY][y] == existing_cap_mwh(gen[y]))
end
## Constraints on retirements and capacity additions
@@ -124,14 +125,14 @@ function investment_energy!(EP::Model, inputs::Dict, setup::Dict)
## Constraints on new built energy capacity
# Constraint on maximum energy capacity (if applicable) [set input to -1 if no constraint on maximum energy capacity]
# DEV NOTE: This constraint may be violated in some cases where Existing_Cap_MWh is >= Max_Cap_MWh and lead to infeasabilty
- @constraint(EP, cMaxCapEnergy[y in intersect(dfGen[dfGen.Max_Cap_MWh.>0,:R_ID], STOR_ALL)], eTotalCapEnergy[y] <= dfGen[y,:Max_Cap_MWh])
+ @constraint(EP, cMaxCapEnergy[y in intersect(ids_with_positive(gen, max_cap_mwh), STOR_ALL)], eTotalCapEnergy[y] <= max_cap_mwh(gen[y]))
# Constraint on minimum energy capacity (if applicable) [set input to -1 if no constraint on minimum energy apacity]
# DEV NOTE: This constraint may be violated in some cases where Existing_Cap_MWh is <= Min_Cap_MWh and lead to infeasabilty
- @constraint(EP, cMinCapEnergy[y in intersect(dfGen[dfGen.Min_Cap_MWh.>0,:R_ID], STOR_ALL)], eTotalCapEnergy[y] >= dfGen[y,:Min_Cap_MWh])
+ @constraint(EP, cMinCapEnergy[y in intersect(ids_with_positive(gen, min_cap_mwh), STOR_ALL)], eTotalCapEnergy[y] >= min_cap_mwh(gen[y]))
# Max and min constraints on energy storage capacity built (as proportion to discharge power capacity)
- @constraint(EP, cMinCapEnergyDuration[y in STOR_ALL], EP[:eTotalCapEnergy][y] >= dfGen[y,:Min_Duration] * EP[:eTotalCap][y])
- @constraint(EP, cMaxCapEnergyDuration[y in STOR_ALL], EP[:eTotalCapEnergy][y] <= dfGen[y,:Max_Duration] * EP[:eTotalCap][y])
+ @constraint(EP, cMinCapEnergyDuration[y in STOR_ALL], EP[:eTotalCapEnergy][y] >= min_duration(gen[y]) * EP[:eTotalCap][y])
+ @constraint(EP, cMaxCapEnergyDuration[y in STOR_ALL], EP[:eTotalCapEnergy][y] <= max_duration(gen[y]) * EP[:eTotalCap][y])
end
diff --git a/src/model/resources/storage/long_duration_storage.jl b/src/model/resources/storage/long_duration_storage.jl
index 865de0108f..9eb904c8b8 100644
--- a/src/model/resources/storage/long_duration_storage.jl
+++ b/src/model/resources/storage/long_duration_storage.jl
@@ -66,12 +66,10 @@ function long_duration_storage!(EP::Model, inputs::Dict, setup::Dict)
println("Long Duration Storage Module")
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
+
CapacityReserveMargin = setup["CapacityReserveMargin"]
- G = inputs["G"] # Number of resources (generators, storage, DR, and DERs)
- T = inputs["T"] # Number of time steps (hours)
- Z = inputs["Z"] # Number of zones
REP_PERIOD = inputs["REP_PERIOD"] # Number of representative periods
STOR_LONG_DURATION = inputs["STOR_LONG_DURATION"]
@@ -111,8 +109,8 @@ function long_duration_storage!(EP::Model, inputs::Dict, setup::Dict)
# Alternative to cSoCBalStart constraint which is included when not modeling operations wrapping and long duration storage
# Note: tw_min = hours_per_subperiod*(w-1)+1; tw_max = hours_per_subperiod*w
@constraint(EP, cSoCBalLongDurationStorageStart[w=1:REP_PERIOD, y in STOR_LONG_DURATION],
- EP[:vS][y,hours_per_subperiod*(w-1)+1] == (1-dfGen[y,:Self_Disch])*(EP[:vS][y,hours_per_subperiod*w]-vdSOC[y,w])
- -(1/dfGen[y,:Eff_Down]*EP[:vP][y,hours_per_subperiod*(w-1)+1])+(dfGen[y,:Eff_Up]*EP[:vCHARGE][y,hours_per_subperiod*(w-1)+1]))
+ EP[:vS][y,hours_per_subperiod*(w-1)+1] == (1-self_discharge(gen[y]))*(EP[:vS][y,hours_per_subperiod*w]-vdSOC[y,w])
+ -(1/efficiency_down(gen[y])*EP[:vP][y,hours_per_subperiod*(w-1)+1])+(efficiency_up(gen[y])*EP[:vCHARGE][y,hours_per_subperiod*(w-1)+1]))
# Storage at beginning of period w = storage at beginning of period w-1 + storage built up in period w (after n representative periods)
## Multiply storage build up term from prior period with corresponding weight
@@ -137,8 +135,8 @@ function long_duration_storage!(EP::Model, inputs::Dict, setup::Dict)
# Alternative to cVSoCBalStart constraint which is included when not modeling operations wrapping and long duration storage
# Note: tw_min = hours_per_subperiod*(w-1)+1; tw_max = hours_per_subperiod*w
@constraint(EP, cVSoCBalLongDurationStorageStart[w=1:REP_PERIOD, y in STOR_LONG_DURATION],
- EP[:vCAPRES_socinreserve][y,hours_per_subperiod*(w-1)+1] == (1-dfGen[y,:Self_Disch])*(EP[:vCAPRES_socinreserve][y,hours_per_subperiod*w]-vCAPRES_dsoc[y,w])
- +(1/dfGen[y,:Eff_Down]*EP[:vCAPRES_discharge][y,hours_per_subperiod*(w-1)+1])-(dfGen[y,:Eff_Up]*EP[:vCAPRES_charge][y,hours_per_subperiod*(w-1)+1]))
+ EP[:vCAPRES_socinreserve][y,hours_per_subperiod*(w-1)+1] == (1-self_discharge(gen[y]))*(EP[:vCAPRES_socinreserve][y,hours_per_subperiod*w]-vCAPRES_dsoc[y,w])
+ +(1/efficiency_down(gen[y])*EP[:vCAPRES_discharge][y,hours_per_subperiod*(w-1)+1])-(efficiency_up(gen[y])*EP[:vCAPRES_charge][y,hours_per_subperiod*(w-1)+1]))
# Storage held in reserve at beginning of period w = storage at beginning of period w-1 + storage built up in period w (after n representative periods)
## Multiply storage build up term from prior period with corresponding weight
diff --git a/src/model/resources/storage/storage.jl b/src/model/resources/storage/storage.jl
index 1bbad43e97..609e0911be 100644
--- a/src/model/resources/storage/storage.jl
+++ b/src/model/resources/storage/storage.jl
@@ -131,7 +131,7 @@ The above reserve related constraints are established by ```storage_all_reserves
function storage!(EP::Model, inputs::Dict, setup::Dict)
println("Storage Resources Module")
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
T = inputs["T"]
STOR_ALL = inputs["STOR_ALL"]
@@ -166,14 +166,14 @@ function storage!(EP::Model, inputs::Dict, setup::Dict)
# ESR Lossses
if EnergyShareRequirement >= 1
if IncludeLossesInESR == 1
- @expression(EP, eESRStor[ESR=1:inputs["nESR"]], sum(inputs["dfESR"][z,ESR]*sum(EP[:eELOSS][y] for y in intersect(dfGen[dfGen.Zone.==z,:R_ID],STOR_ALL)) for z=findall(x->x>0,inputs["dfESR"][:,ESR])))
+ @expression(EP, eESRStor[ESR=1:inputs["nESR"]], sum(inputs["dfESR"][z,ESR]*sum(EP[:eELOSS][y] for y in intersect(resources_in_zone_by_rid(gen,z),STOR_ALL)) for z=findall(x->x>0,inputs["dfESR"][:,ESR])))
add_similar_to_expression!(EP[:eESR], -eESRStor)
end
end
# Capacity Reserves Margin policy
if CapacityReserveMargin > 0
- @expression(EP, eCapResMarBalanceStor[res=1:inputs["NCapacityReserveMargin"], t=1:T], sum(dfGen[y,Symbol("CapRes_$res")] * (EP[:vP][y,t] + EP[:vCAPRES_discharge][y,t] - EP[:vCHARGE][y,t] - EP[:vCAPRES_charge][y,t]) for y in STOR_ALL))
+ @expression(EP, eCapResMarBalanceStor[res=1:inputs["NCapacityReserveMargin"], t=1:T], sum(derating_factor(gen[y], tag=res) * (EP[:vP][y,t] + EP[:vCAPRES_discharge][y,t] - EP[:vCHARGE][y,t] - EP[:vCAPRES_charge][y,t]) for y in STOR_ALL))
add_similar_to_expression!(EP[:eCapResMarBalance], eCapResMarBalanceStor)
end
diff --git a/src/model/resources/storage/storage_all.jl b/src/model/resources/storage/storage_all.jl
index 3573e3e55e..c44e88b241 100644
--- a/src/model/resources/storage/storage_all.jl
+++ b/src/model/resources/storage/storage_all.jl
@@ -7,13 +7,12 @@ function storage_all!(EP::Model, inputs::Dict, setup::Dict)
# Setup variables, constraints, and expressions common to all storage resources
println("Storage Core Resources Module")
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
Reserves = setup["Reserves"]
CapacityReserveMargin = setup["CapacityReserveMargin"]
virtual_discharge_cost = inputs["VirtualChargeDischargeCost"]
- G = inputs["G"] # Number of resources (generators, storage, DR, and DERs)
T = inputs["T"] # Number of time steps (hours)
Z = inputs["Z"] # Number of zones
@@ -53,7 +52,7 @@ function storage_all!(EP::Model, inputs::Dict, setup::Dict)
## Objective Function Expressions ##
#Variable costs of "charging" for technologies "y" during hour "t" in zone "z"
- @expression(EP, eCVar_in[y in STOR_ALL,t=1:T], inputs["omega"][t]*dfGen[y,:Var_OM_Cost_per_MWh_In]*vCHARGE[y,t])
+ @expression(EP, eCVar_in[y in STOR_ALL,t=1:T], inputs["omega"][t]*var_om_cost_per_mwh_in(gen[y])*vCHARGE[y,t])
# Sum individual resource contributions to variable charging costs to get total variable charging costs
@expression(EP, eTotalCVarInT[t=1:T], sum(eCVar_in[y,t] for y in STOR_ALL))
@@ -78,7 +77,7 @@ function storage_all!(EP::Model, inputs::Dict, setup::Dict)
# Term to represent net dispatch from storage in any period
@expression(EP, ePowerBalanceStor[t=1:T, z=1:Z],
- sum(EP[:vP][y,t]-EP[:vCHARGE][y,t] for y in intersect(dfGen[dfGen.Zone.==z,:R_ID],STOR_ALL))
+ sum(EP[:vP][y,t]-EP[:vCHARGE][y,t] for y in intersect(resources_in_zone_by_rid(gen,z),STOR_ALL))
)
add_similar_to_expression!(EP[:ePowerBalance], ePowerBalanceStor)
@@ -94,8 +93,8 @@ function storage_all!(EP::Model, inputs::Dict, setup::Dict)
CONSTRAINTSET = STOR_ALL
end
@constraint(EP, cSoCBalStart[t in START_SUBPERIODS, y in CONSTRAINTSET], EP[:vS][y,t] ==
- EP[:vS][y,t+hours_per_subperiod-1] - (1/dfGen[y,:Eff_Down] * EP[:vP][y,t])
- + (dfGen[y,:Eff_Up]*EP[:vCHARGE][y,t]) - (dfGen[y,:Self_Disch] * EP[:vS][y,t+hours_per_subperiod-1]))
+ EP[:vS][y,t+hours_per_subperiod-1] - (1/efficiency_down(gen[y]) * EP[:vP][y,t])
+ + (efficiency_up(gen[y])*EP[:vCHARGE][y,t]) - (self_discharge(gen[y]) * EP[:vS][y,t+hours_per_subperiod-1]))
@constraints(EP, begin
@@ -104,7 +103,7 @@ function storage_all!(EP::Model, inputs::Dict, setup::Dict)
# energy stored for the next hour
cSoCBalInterior[t in INTERIOR_SUBPERIODS, y in STOR_ALL], EP[:vS][y,t] ==
- EP[:vS][y,t-1]-(1/dfGen[y,:Eff_Down]*EP[:vP][y,t])+(dfGen[y,:Eff_Up]*EP[:vCHARGE][y,t])-(dfGen[y,:Self_Disch]*EP[:vS][y,t-1])
+ EP[:vS][y,t-1]-(1/efficiency_down(gen[y])*EP[:vP][y,t])+(efficiency_up(gen[y])*EP[:vCHARGE][y,t])-(self_discharge(gen[y])*EP[:vS][y,t-1])
end)
# Storage discharge and charge power (and reserve contribution) related constraints:
@@ -119,18 +118,18 @@ function storage_all!(EP::Model, inputs::Dict, setup::Dict)
# wrapping from end of sample period to start of sample period for energy capacity constraint
@constraints(EP, begin
[y in STOR_ALL, t=1:T], EP[:vP][y,t] + EP[:vCAPRES_discharge][y,t] <= EP[:eTotalCap][y]
- [y in STOR_ALL, t=1:T], EP[:vP][y,t] + EP[:vCAPRES_discharge][y,t] <= EP[:vS][y, hoursbefore(hours_per_subperiod,t,1)]*dfGen[y,:Eff_Down]
+ [y in STOR_ALL, t=1:T], EP[:vP][y,t] + EP[:vCAPRES_discharge][y,t] <= EP[:vS][y, hoursbefore(hours_per_subperiod,t,1)]*efficiency_down(gen[y])
end)
else
@constraints(EP, begin
[y in STOR_ALL, t=1:T], EP[:vP][y,t] <= EP[:eTotalCap][y]
- [y in STOR_ALL, t=1:T], EP[:vP][y,t] <= EP[:vS][y, hoursbefore(hours_per_subperiod,t,1)]*dfGen[y,:Eff_Down]
+ [y in STOR_ALL, t=1:T], EP[:vP][y,t] <= EP[:vS][y, hoursbefore(hours_per_subperiod,t,1)]*efficiency_down(gen[y])
end)
end
end
# From CO2 Policy module
- expr = @expression(EP, [z=1:Z], sum(EP[:eELOSS][y] for y in intersect(STOR_ALL, dfGen[dfGen[!,:Zone].==z,:R_ID])))
+ expr = @expression(EP, [z=1:Z], sum(EP[:eELOSS][y] for y in intersect(STOR_ALL, resources_in_zone_by_rid(gen,z))))
add_similar_to_expression!(EP[:eELOSSByZone], expr)
# Capacity Reserve Margin policy
@@ -140,12 +139,12 @@ function storage_all!(EP::Model, inputs::Dict, setup::Dict)
# Links energy held in reserve in first time step with decisions in last time step of each subperiod
# We use a modified formulation of this constraint (cVSoCBalLongDurationStorageStart) when operations wrapping and long duration storage are being modeled
@constraint(EP, cVSoCBalStart[t in START_SUBPERIODS, y in CONSTRAINTSET], EP[:vCAPRES_socinreserve][y,t] ==
- EP[:vCAPRES_socinreserve][y,t+hours_per_subperiod-1] + (1/dfGen[y,:Eff_Down] * EP[:vCAPRES_discharge][y,t])
- - (dfGen[y,:Eff_Up]*EP[:vCAPRES_charge][y,t]) - (dfGen[y,:Self_Disch] * EP[:vCAPRES_socinreserve][y,t+hours_per_subperiod-1]))
+ EP[:vCAPRES_socinreserve][y,t+hours_per_subperiod-1] + (1/efficiency_down(gen[y]) * EP[:vCAPRES_discharge][y,t])
+ - (efficiency_up(gen[y])*EP[:vCAPRES_charge][y,t]) - (self_discharge(gen[y]) * EP[:vCAPRES_socinreserve][y,t+hours_per_subperiod-1]))
# energy held in reserve for the next hour
@constraint(EP, cVSoCBalInterior[t in INTERIOR_SUBPERIODS, y in STOR_ALL], EP[:vCAPRES_socinreserve][y,t] ==
- EP[:vCAPRES_socinreserve][y,t-1]+(1/dfGen[y,:Eff_Down]*EP[:vCAPRES_discharge][y,t])-(dfGen[y,:Eff_Up]*EP[:vCAPRES_charge][y,t])-(dfGen[y,:Self_Disch]*EP[:vCAPRES_socinreserve][y,t-1]))
+ EP[:vCAPRES_socinreserve][y,t-1]+(1/efficiency_down(gen[y])*EP[:vCAPRES_discharge][y,t])-(efficiency_up(gen[y])*EP[:vCAPRES_charge][y,t])-(self_discharge(gen[y])*EP[:vCAPRES_socinreserve][y,t-1]))
# energy held in reserve acts as a lower bound on the total energy held in storage
@constraint(EP, cSOCMinCapRes[t in 1:T, y in STOR_ALL], EP[:vS][y,t] >= EP[:vCAPRES_socinreserve][y,t])
@@ -154,7 +153,7 @@ end
function storage_all_reserves!(EP::Model, inputs::Dict, setup::Dict)
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
T = inputs["T"]
p = inputs["hours_per_subperiod"]
CapacityReserveMargin = setup["CapacityReserveMargin"] > 1
@@ -177,14 +176,9 @@ function storage_all_reserves!(EP::Model, inputs::Dict, setup::Dict)
eTotalCap = EP[:eTotalCap]
eTotalCapEnergy = EP[:eTotalCapEnergy]
- eff_up(y) = dfGen[y, :Eff_Up]
- eff_down(y) = dfGen[y, :Eff_Down]
- reg_max(y) = dfGen[y, :Reg_Max]
- rsv_max(y) = dfGen[y, :Rsv_Max]
-
# Maximum storage contribution to reserves is a specified fraction of installed capacity
- @constraint(EP, [y in STOR_REG, t in 1:T], vREG[y, t] <= reg_max(y) * eTotalCap[y])
- @constraint(EP, [y in STOR_RSV, t in 1:T], vRSV[y, t] <= rsv_max(y) * eTotalCap[y])
+ @constraint(EP, [y in STOR_REG, t in 1:T], vREG[y, t] <= reg_max(gen[y]) * eTotalCap[y])
+ @constraint(EP, [y in STOR_RSV, t in 1:T], vRSV[y, t] <= rsv_max(gen[y]) * eTotalCap[y])
# Actual contribution to regulation and reserves is sum of auxilary variables for portions contributed during charging and discharging
@constraint(EP, [y in STOR_REG, t in 1:T], vREG[y, t] == vREG_charge[y, t] + vREG_discharge[y, t])
@@ -202,7 +196,7 @@ function storage_all_reserves!(EP::Model, inputs::Dict, setup::Dict)
@constraint(EP, [y in STOR_REG, t in 1:T], vP[y, t] - vREG_discharge[y, t] >= 0)
# Maximum charging rate plus contribution to regulation down must be less than available storage capacity
- @constraint(EP, [y in STOR_REG, t in 1:T], eff_up(y)*(vCHARGE[y, t]+vREG_charge[y, t]) <= eTotalCapEnergy[y]-vS[y, hoursbefore(p,t,1)])
+ @constraint(EP, [y in STOR_REG, t in 1:T], efficiency_up(gen[y])*(vCHARGE[y, t]+vREG_charge[y, t]) <= eTotalCapEnergy[y]-vS[y, hoursbefore(p,t,1)])
# Note: maximum charge rate is also constrained by maximum charge power capacity, but as this differs by storage type,
# this constraint is set in functions below for each storage type
@@ -216,5 +210,5 @@ function storage_all_reserves!(EP::Model, inputs::Dict, setup::Dict)
# Maximum discharging rate and contribution to reserves up must be less than power rating
@constraint(EP, [y in STOR_ALL, t in 1:T], expr[y, t] <= eTotalCap[y])
# Maximum discharging rate and contribution to reserves up must be less than available stored energy in prior period
- @constraint(EP, [y in STOR_ALL, t in 1:T], expr[y, t] <= vS[y, hoursbefore(p,t,1)] * eff_down(y))
+ @constraint(EP, [y in STOR_ALL, t in 1:T], expr[y, t] <= vS[y, hoursbefore(p,t,1)] * efficiency_down(gen[y]))
end
diff --git a/src/model/resources/storage/storage_asymmetric.jl b/src/model/resources/storage/storage_asymmetric.jl
index 93e74ad025..98d375b171 100644
--- a/src/model/resources/storage/storage_asymmetric.jl
+++ b/src/model/resources/storage/storage_asymmetric.jl
@@ -10,7 +10,6 @@ function storage_asymmetric!(EP::Model, inputs::Dict, setup::Dict)
println("Storage Resources with Asmymetric Charge/Discharge Capacity Module")
- dfGen = inputs["dfGen"]
Reserves = setup["Reserves"]
CapacityReserveMargin = setup["CapacityReserveMargin"]
diff --git a/src/model/resources/thermal/thermal.jl b/src/model/resources/thermal/thermal.jl
index a849a16d46..894c2da2c0 100644
--- a/src/model/resources/thermal/thermal.jl
+++ b/src/model/resources/thermal/thermal.jl
@@ -4,7 +4,7 @@ The thermal module creates decision variables, expressions, and constraints rela
This module uses the following 'helper' functions in separate files: ```thermal_commit()``` for thermal resources subject to unit commitment decisions and constraints (if any) and ```thermal_no_commit()``` for thermal resources not subject to unit commitment (if any).
"""
function thermal!(EP::Model, inputs::Dict, setup::Dict)
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
T = inputs["T"] # Number of time steps (hours)
Z = inputs["Z"] # Number of zones
@@ -13,8 +13,6 @@ function thermal!(EP::Model, inputs::Dict, setup::Dict)
THERM_NO_COMMIT = inputs["THERM_NO_COMMIT"]
THERM_ALL = inputs["THERM_ALL"]
- dfGen = inputs["dfGen"]
-
if !isempty(THERM_COMMIT)
thermal_commit!(EP, inputs, setup)
end
@@ -24,19 +22,18 @@ function thermal!(EP::Model, inputs::Dict, setup::Dict)
end
##CO2 Polcy Module Thermal Generation by zone
@expression(EP, eGenerationByThermAll[z=1:Z, t=1:T], # the unit is GW
- sum(EP[:vP][y,t] for y in intersect(inputs["THERM_ALL"], dfGen[dfGen[!,:Zone].==z,:R_ID]))
+ sum(EP[:vP][y,t] for y in intersect(inputs["THERM_ALL"], resources_in_zone_by_rid(gen,z)))
)
add_similar_to_expression!(EP[:eGenerationByZone], eGenerationByThermAll)
# Capacity Reserves Margin policy
if setup["CapacityReserveMargin"] > 0
ncapres = inputs["NCapacityReserveMargin"]
- capresfactor(y, capres) = dfGen[y, Symbol("CapRes_$capres")]
@expression(EP, eCapResMarBalanceThermal[capres in 1:ncapres, t in 1:T],
- sum(capresfactor(y, capres) * EP[:eTotalCap][y] for y in THERM_ALL))
+ sum(derating_factor(gen[y], tag=capres) * EP[:eTotalCap][y] for y in THERM_ALL))
add_similar_to_expression!(EP[:eCapResMarBalance], eCapResMarBalanceThermal)
- MAINT = resources_with_maintenance(dfGen)
+ MAINT = ids_with_maintenance(gen)
if !isempty(intersect(MAINT, THERM_COMMIT))
thermal_maintenance_capacity_reserve_margin_adjustment!(EP, inputs)
end
@@ -44,7 +41,7 @@ function thermal!(EP::Model, inputs::Dict, setup::Dict)
#=
##CO2 Polcy Module Thermal Generation by zone
@expression(EP, eGenerationByThermAll[z=1:Z, t=1:T], # the unit is GW
- sum(EP[:vP][y,t] for y in intersect(inputs["THERM_ALL"], dfGen[dfGen[!,:Zone].==z,:R_ID]))
+ sum(EP[:vP][y,t] for y in intersect(inputs["THERM_ALL"], resources_in_zone_by_rid(gen,z)))
)
EP[:eGenerationByZone] += eGenerationByThermAll
=# ##From main
diff --git a/src/model/resources/thermal/thermal_commit.jl b/src/model/resources/thermal/thermal_commit.jl
index b654f098ca..fc4be61a54 100644
--- a/src/model/resources/thermal/thermal_commit.jl
+++ b/src/model/resources/thermal/thermal_commit.jl
@@ -128,11 +128,11 @@ function thermal_commit!(EP::Model, inputs::Dict, setup::Dict)
println("Thermal (Unit Commitment) Resources Module")
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
T = inputs["T"] # Number of time steps (hours)
Z = inputs["Z"] # Number of zones
- G = inputs["G"] # Number of resources
+ G = inputs["G"] # Number of resources (generators, storage, DR, and DERs)
p = inputs["hours_per_subperiod"] #total number of hours per subperiod
@@ -155,7 +155,7 @@ function thermal_commit!(EP::Model, inputs::Dict, setup::Dict)
## Power Balance Expressions ##
@expression(EP, ePowerBalanceThermCommit[t=1:T, z=1:Z],
- sum(EP[:vP][y,t] for y in intersect(THERM_COMMIT, dfGen[dfGen[!,:Zone].==z,:R_ID]))
+ sum(EP[:vP][y,t] for y in intersect(THERM_COMMIT, resources_in_zone_by_rid(gen,z)))
)
add_similar_to_expression!(EP[:ePowerBalance], ePowerBalanceThermCommit)
@@ -163,9 +163,9 @@ function thermal_commit!(EP::Model, inputs::Dict, setup::Dict)
### Capacitated limits on unit commitment decision variables (Constraints #1-3)
@constraints(EP, begin
- [y in THERM_COMMIT, t=1:T], EP[:vCOMMIT][y,t] <= EP[:eTotalCap][y]/dfGen[y,:Cap_Size]
- [y in THERM_COMMIT, t=1:T], EP[:vSTART][y,t] <= EP[:eTotalCap][y]/dfGen[y,:Cap_Size]
- [y in THERM_COMMIT, t=1:T], EP[:vSHUT][y,t] <= EP[:eTotalCap][y]/dfGen[y,:Cap_Size]
+ [y in THERM_COMMIT, t=1:T], EP[:vCOMMIT][y,t] <= EP[:eTotalCap][y]/cap_size(gen[y])
+ [y in THERM_COMMIT, t=1:T], EP[:vSTART][y,t] <= EP[:eTotalCap][y]/cap_size(gen[y])
+ [y in THERM_COMMIT, t=1:T], EP[:vSHUT][y,t] <= EP[:eTotalCap][y]/cap_size(gen[y])
end)
# Commitment state constraint linking startup and shutdown decisions (Constraint #4)
@@ -179,15 +179,15 @@ function thermal_commit!(EP::Model, inputs::Dict, setup::Dict)
# Links last time step with first time step, ensuring position in hour 1 is within eligible ramp of final hour position
# rampup constraints
@constraint(EP,[y in THERM_COMMIT, t in 1:T],
- EP[:vP][y,t] - EP[:vP][y, hoursbefore(p, t, 1)] + regulation_term[y,t] + reserves_term[y,t] <= dfGen[y,:Ramp_Up_Percentage]*dfGen[y,:Cap_Size]*(EP[:vCOMMIT][y,t]-EP[:vSTART][y,t])
- + min(inputs["pP_Max"][y,t],max(dfGen[y,:Min_Power],dfGen[y,:Ramp_Up_Percentage]))*dfGen[y,:Cap_Size]*EP[:vSTART][y,t]
- - dfGen[y,:Min_Power]*dfGen[y,:Cap_Size]*EP[:vSHUT][y,t])
+ EP[:vP][y,t] - EP[:vP][y, hoursbefore(p, t, 1)] + regulation_term[y,t] + reserves_term[y,t] <= ramp_up_fraction(gen[y])*cap_size(gen[y])*(EP[:vCOMMIT][y,t]-EP[:vSTART][y,t])
+ + min(inputs["pP_Max"][y,t],max(min_power(gen[y]),ramp_up_fraction(gen[y])))*cap_size(gen[y])*EP[:vSTART][y,t]
+ - min_power(gen[y])*cap_size(gen[y])*EP[:vSHUT][y,t])
# rampdown constraints
@constraint(EP,[y in THERM_COMMIT, t in 1:T],
- EP[:vP][y, hoursbefore(p,t,1)] - EP[:vP][y,t] - regulation_term[y,t] + reserves_term[y, hoursbefore(p,t,1)] <= dfGen[y,:Ramp_Dn_Percentage]*dfGen[y,:Cap_Size]*(EP[:vCOMMIT][y,t]-EP[:vSTART][y,t])
- - dfGen[y,:Min_Power]*dfGen[y,:Cap_Size]*EP[:vSTART][y,t]
- + min(inputs["pP_Max"][y,t],max(dfGen[y,:Min_Power],dfGen[y,:Ramp_Dn_Percentage]))*dfGen[y,:Cap_Size]*EP[:vSHUT][y,t])
+ EP[:vP][y, hoursbefore(p,t,1)] - EP[:vP][y,t] - regulation_term[y,t] + reserves_term[y, hoursbefore(p,t,1)] <= ramp_down_fraction(gen[y])*cap_size(gen[y])*(EP[:vCOMMIT][y,t]-EP[:vSTART][y,t])
+ - min_power(gen[y])*cap_size(gen[y])*EP[:vSTART][y,t]
+ + min(inputs["pP_Max"][y,t],max(min_power(gen[y]),ramp_down_fraction(gen[y])))*cap_size(gen[y])*EP[:vSHUT][y,t])
### Minimum and maximum power output constraints (Constraints #7-8)
@@ -197,28 +197,28 @@ function thermal_commit!(EP::Model, inputs::Dict, setup::Dict)
else
@constraints(EP, begin
# Minimum stable power generated per technology "y" at hour "t" > Min power
- [y in THERM_COMMIT, t=1:T], EP[:vP][y,t] >= dfGen[y,:Min_Power]*dfGen[y,:Cap_Size]*EP[:vCOMMIT][y,t]
+ [y in THERM_COMMIT, t=1:T], EP[:vP][y,t] >= min_power(gen[y])*cap_size(gen[y])*EP[:vCOMMIT][y,t]
# Maximum power generated per technology "y" at hour "t" < Max power
- [y in THERM_COMMIT, t=1:T], EP[:vP][y,t] <= inputs["pP_Max"][y,t]*dfGen[y,:Cap_Size]*EP[:vCOMMIT][y,t]
+ [y in THERM_COMMIT, t=1:T], EP[:vP][y,t] <= inputs["pP_Max"][y,t]*cap_size(gen[y])*EP[:vCOMMIT][y,t]
end)
end
### Minimum up and down times (Constraints #9-10)
- Up_Time = zeros(Int, nrow(dfGen))
- Up_Time[THERM_COMMIT] .= Int.(floor.(dfGen[THERM_COMMIT,:Up_Time]))
+ Up_Time = zeros(Int, G)
+ Up_Time[THERM_COMMIT] .= Int.(floor.(up_time.(gen[THERM_COMMIT])))
@constraint(EP, [y in THERM_COMMIT, t in 1:T],
EP[:vCOMMIT][y,t] >= sum(EP[:vSTART][y, u] for u in hoursbefore(p, t, 0:(Up_Time[y] - 1)))
)
- Down_Time = zeros(Int, nrow(dfGen))
- Down_Time[THERM_COMMIT] .= Int.(floor.(dfGen[THERM_COMMIT,:Down_Time]))
+ Down_Time = zeros(Int, G)
+ Down_Time[THERM_COMMIT] .= Int.(floor.(down_time.(gen[THERM_COMMIT])))
@constraint(EP, [y in THERM_COMMIT, t in 1:T],
- EP[:eTotalCap][y]/dfGen[y,:Cap_Size]-EP[:vCOMMIT][y,t] >= sum(EP[:vSHUT][y, u] for u in hoursbefore(p, t, 0:(Down_Time[y] - 1)))
+ EP[:eTotalCap][y]/cap_size(gen[y])-EP[:vCOMMIT][y,t] >= sum(EP[:vSHUT][y, u] for u in hoursbefore(p, t, 0:(Down_Time[y] - 1)))
)
## END Constraints for thermal units subject to integer (discrete) unit commitment decisions
- if !isempty(resources_with_maintenance(dfGen))
+ if !isempty(ids_with_maintenance(gen))
maintenance_formulation_thermal_commit!(EP, inputs, setup)
end
end
@@ -269,7 +269,7 @@ function thermal_commit_reserves!(EP::Model, inputs::Dict)
println("Thermal Commit Reserves Module")
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
T = inputs["T"] # Number of time steps (hours)
@@ -282,20 +282,17 @@ function thermal_commit_reserves!(EP::Model, inputs::Dict)
vREG = EP[:vREG]
vRSV = EP[:vRSV]
- commit(y,t) = dfGen[y, :Cap_Size] * EP[:vCOMMIT][y,t]
- min_power(y) = dfGen[y, :Min_Power]
+ commit(y,t) = cap_size(gen[y]) * EP[:vCOMMIT][y,t]
max_power(y,t) = inputs["pP_Max"][y,t]
- reg_max(y) = dfGen[y, :Reg_Max]
- rsv_max(y) = dfGen[y, :Rsv_Max]
# Maximum regulation and reserve contributions
- @constraint(EP, [y in REG, t in 1:T], vREG[y, t] <= max_power(y, t) * reg_max(y) * commit(y, t))
- @constraint(EP, [y in RSV, t in 1:T], vRSV[y, t] <= max_power(y, t) * rsv_max(y) * commit(y, t))
+ @constraint(EP, [y in REG, t in 1:T], vREG[y, t] <= max_power(y, t) * reg_max(gen[y]) * commit(y, t))
+ @constraint(EP, [y in RSV, t in 1:T], vRSV[y, t] <= max_power(y, t) * rsv_max(gen[y]) * commit(y, t))
# Minimum stable power generated per technology "y" at hour "t" and contribution to regulation must be > min power
expr = extract_time_series_to_expression(vP, THERM_COMMIT)
add_similar_to_expression!(expr[REG, :], -vREG[REG, :])
- @constraint(EP, [y in THERM_COMMIT, t in 1:T], expr[y, t] >= min_power(y) * commit(y, t))
+ @constraint(EP, [y in THERM_COMMIT, t in 1:T], expr[y, t] >= min_power(gen[y]) * commit(y, t))
# Maximum power generated per technology "y" at hour "t" and contribution to regulation and reserves up must be < max power
expr = extract_time_series_to_expression(vP, THERM_COMMIT)
@@ -314,15 +311,16 @@ function maintenance_formulation_thermal_commit!(EP::Model, inputs::Dict, setup:
@info "Maintenance Module for Thermal plants"
ensure_maintenance_variable_records!(inputs)
- dfGen = inputs["dfGen"]
- by_rid(rid, sym) = by_rid_df(rid, sym, dfGen)
+ gen = inputs["RESOURCES"]
+
+ by_rid(rid, sym) = by_rid_res(rid, sym, gen)
- MAINT = resources_with_maintenance(dfGen)
- resource_component(y) = by_rid(y, :Resource)
- cap(y) = by_rid(y, :Cap_Size)
- maint_dur(y) = Int(floor(by_rid(y, :Maintenance_Duration)))
- maint_freq(y) = Int(floor(by_rid(y, :Maintenance_Cycle_Length_Years)))
- maint_begin_cadence(y) = Int(floor(by_rid(y, :Maintenance_Begin_Cadence)))
+ MAINT = ids_with_maintenance(gen)
+ resource_component(y) = by_rid(y, :resource_name)
+ cap(y) = by_rid(y, :cap_size)
+ maint_dur(y) = Int(floor(by_rid(y, :maintenance_duration)))
+ maint_freq(y) = Int(floor(by_rid(y, :maintenance_cycle_length_years)))
+ maint_begin_cadence(y) = Int(floor(by_rid(y, :maintenance_begin_cadence)))
integer_operational_unit_committment = setup["UCommit"] == 1
@@ -354,11 +352,12 @@ end
"""
function thermal_maintenance_capacity_reserve_margin_adjustment!(EP::Model,
inputs::Dict)
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
+
T = inputs["T"] # Number of time steps (hours)
ncapres = inputs["NCapacityReserveMargin"]
THERM_COMMIT = inputs["THERM_COMMIT"]
- MAINT = resources_with_maintenance(dfGen)
+ MAINT = ids_with_maintenance(gen)
applicable_resources = intersect(MAINT, THERM_COMMIT)
maint_adj = @expression(EP, [capres in 1:ncapres, t in 1:T],
@@ -371,10 +370,10 @@ function thermal_maintenance_capacity_reserve_margin_adjustment(EP::Model,
y::Int,
capres::Int,
t)
- dfGen = inputs["dfGen"]
- resource_component = dfGen[y, :Resource]
- capresfactor = dfGen[y, Symbol("CapRes_$capres")]
- cap_size = dfGen[y, :Cap_Size]
+ gen = inputs["RESOURCES"]
+ resource_component = resource_name(gen[y])
+ capresfactor = derating_factor(gen[y], tag=capres)
+ cap = cap_size(gen[y])
down_var = EP[Symbol(maintenance_down_name(resource_component))]
- return -capresfactor * down_var[t] * cap_size
+ return -capresfactor * down_var[t] * cap
end
diff --git a/src/model/resources/thermal/thermal_no_commit.jl b/src/model/resources/thermal/thermal_no_commit.jl
index 91fc176dd7..f015f21858 100644
--- a/src/model/resources/thermal/thermal_no_commit.jl
+++ b/src/model/resources/thermal/thermal_no_commit.jl
@@ -45,7 +45,7 @@ function thermal_no_commit!(EP::Model, inputs::Dict, setup::Dict)
println("Thermal (No Unit Commitment) Resources Module")
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
T = inputs["T"] # Number of time steps (hours)
Z = inputs["Z"] # Number of zones
@@ -58,7 +58,7 @@ function thermal_no_commit!(EP::Model, inputs::Dict, setup::Dict)
## Power Balance Expressions ##
@expression(EP, ePowerBalanceThermNoCommit[t=1:T, z=1:Z],
- sum(EP[:vP][y,t] for y in intersect(THERM_NO_COMMIT, dfGen[dfGen[!,:Zone].==z,:R_ID]))
+ sum(EP[:vP][y,t] for y in intersect(THERM_NO_COMMIT, resources_in_zone_by_rid(gen,z)))
)
add_similar_to_expression!(EP[:ePowerBalance], ePowerBalanceThermNoCommit)
@@ -68,10 +68,10 @@ function thermal_no_commit!(EP::Model, inputs::Dict, setup::Dict)
@constraints(EP, begin
## Maximum ramp up between consecutive hours
- [y in THERM_NO_COMMIT, t in 1:T], EP[:vP][y,t] - EP[:vP][y, hoursbefore(p,t,1)] <= dfGen[y,:Ramp_Up_Percentage]*EP[:eTotalCap][y]
+ [y in THERM_NO_COMMIT, t in 1:T], EP[:vP][y,t] - EP[:vP][y, hoursbefore(p,t,1)] <= ramp_up_fraction(gen[y])*EP[:eTotalCap][y]
## Maximum ramp down between consecutive hours
- [y in THERM_NO_COMMIT, t in 1:T], EP[:vP][y, hoursbefore(p,t,1)] - EP[:vP][y,t] <= dfGen[y,:Ramp_Dn_Percentage]*EP[:eTotalCap][y]
+ [y in THERM_NO_COMMIT, t in 1:T], EP[:vP][y, hoursbefore(p,t,1)] - EP[:vP][y,t] <= ramp_down_fraction(gen[y])*EP[:eTotalCap][y]
end)
### Minimum and maximum power output constraints (Constraints #3-4)
@@ -81,7 +81,7 @@ function thermal_no_commit!(EP::Model, inputs::Dict, setup::Dict)
else
@constraints(EP, begin
# Minimum stable power generated per technology "y" at hour "t" Min_Power
- [y in THERM_NO_COMMIT, t=1:T], EP[:vP][y,t] >= dfGen[y,:Min_Power]*EP[:eTotalCap][y]
+ [y in THERM_NO_COMMIT, t=1:T], EP[:vP][y,t] >= min_power(gen[y])*EP[:eTotalCap][y]
# Maximum power generated per technology "y" at hour "t"
[y in THERM_NO_COMMIT, t=1:T], EP[:vP][y,t] <= inputs["pP_Max"][y,t]*EP[:eTotalCap][y]
@@ -138,7 +138,7 @@ function thermal_no_commit_reserves!(EP::Model, inputs::Dict)
println("Thermal No Commit Reserves Module")
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
T = inputs["T"] # Number of time steps (hours)
@@ -152,19 +152,16 @@ function thermal_no_commit_reserves!(EP::Model, inputs::Dict)
vRSV = EP[:vRSV]
eTotalCap = EP[:eTotalCap]
- min_power(y) = dfGen[y, :Min_Power]
max_power(y,t) = inputs["pP_Max"][y,t]
- reg_max(y) = dfGen[y, :Reg_Max]
- rsv_max(y) = dfGen[y, :Rsv_Max]
# Maximum regulation and reserve contributions
- @constraint(EP, [y in REG, t in 1:T], vREG[y, t] <= max_power(y, t) * reg_max(y) * eTotalCap[y])
- @constraint(EP, [y in RSV, t in 1:T], vRSV[y, t] <= max_power(y, t) * rsv_max(y) * eTotalCap[y])
+ @constraint(EP, [y in REG, t in 1:T], vREG[y, t] <= max_power(y, t) * reg_max(gen[y]) * eTotalCap[y])
+ @constraint(EP, [y in RSV, t in 1:T], vRSV[y, t] <= max_power(y, t) * rsv_max(gen[y]) * eTotalCap[y])
# Minimum stable power generated per technology "y" at hour "t" and contribution to regulation must be > min power
expr = extract_time_series_to_expression(vP, THERM_NO_COMMIT)
add_similar_to_expression!(expr[REG, :], -vREG[REG, :])
- @constraint(EP, [y in THERM_NO_COMMIT, t in 1:T], expr[y, t] >= min_power(y) * eTotalCap[y])
+ @constraint(EP, [y in THERM_NO_COMMIT, t in 1:T], expr[y, t] >= min_power(gen[y]) * eTotalCap[y])
# Maximum power generated per technology "y" at hour "t" and contribution to regulation and reserves up must be < max power
expr = extract_time_series_to_expression(vP, THERM_NO_COMMIT)
diff --git a/src/model/resources/vre_stor/vre_stor.jl b/src/model/resources/vre_stor/vre_stor.jl
index c87403a294..09d9d0aa74 100644
--- a/src/model/resources/vre_stor/vre_stor.jl
+++ b/src/model/resources/vre_stor/vre_stor.jl
@@ -101,13 +101,14 @@ function vre_stor!(EP::Model, inputs::Dict, setup::Dict)
### LOAD DATA ###
# Load generators dataframe, sets, and time periods
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
+
T = inputs["T"] # Number of time steps (hours)
Z = inputs["Z"] # Number of zones
# Load VRE-storage inputs
- VRE_STOR = inputs["VRE_STOR"] # Set of VRE-STOR generators
- dfVRE_STOR = inputs["dfVRE_STOR"] # Dataframe of VRE-STOR specific parameters
+ VRE_STOR = inputs["VRE_STOR"] # Set of VRE-STOR generators (indices)
+ gen_VRE_STOR = gen.VreStorage # Set of VRE-STOR generators (objects)
SOLAR = inputs["VS_SOLAR"] # Set of VRE-STOR generators with solar-component
DC = inputs["VS_DC"] # Set of VRE-STOR generators with inverter-component
WIND = inputs["VS_WIND"] # Set of VRE-STOR generators with wind-component
@@ -122,7 +123,7 @@ function vre_stor!(EP::Model, inputs::Dict, setup::Dict)
IncludeLossesInESR = setup["IncludeLossesInESR"]
Reserves = setup["Reserves"]
- by_rid(rid, sym) = by_rid_df(rid, sym, dfVRE_STOR)
+ by_rid(rid, sym) = by_rid_res(rid, sym, gen_VRE_STOR)
### VARIABLES ARE DEFINED IN RESPECTIVE MODULES ###
@@ -133,9 +134,9 @@ function vre_stor!(EP::Model, inputs::Dict, setup::Dict)
# Separate grid costs
@expression(EP, eCGrid[y in VRE_STOR],
if y in NEW_CAP # Resources eligible for new capacity
- dfGen[y,:Inv_Cost_per_MWyr]*EP[:vCAP][y] + dfGen[y,:Fixed_OM_Cost_per_MWyr]*EP[:eTotalCap][y]
+ inv_cost_per_mwyr(gen[y])*EP[:vCAP][y] + fixed_om_cost_per_mwyr(gen[y])*EP[:eTotalCap][y]
else
- dfGen[y,:Fixed_OM_Cost_per_MWyr]*EP[:eTotalCap][y]
+ fixed_om_cost_per_mwyr(gen[y])*EP[:eTotalCap][y]
end
)
@expression(EP, eTotalCGrid, sum(eCGrid[y] for y in VRE_STOR))
@@ -145,8 +146,8 @@ function vre_stor!(EP::Model, inputs::Dict, setup::Dict)
# Note: The subtraction of the charging component can be found in STOR function
@expression(EP, ePowerBalance_VRE_STOR[t=1:T, z=1:Z], JuMP.AffExpr())
for t=1:T, z=1:Z
- if !isempty(dfVRE_STOR[(dfVRE_STOR[!,:Zone].==z),:R_ID])
- ePowerBalance_VRE_STOR[t,z] += sum(EP[:vP][y,t] for y=dfVRE_STOR[(dfVRE_STOR[!,:Zone].==z),:R_ID])
+ if !isempty(resources_in_zone_by_rid(gen_VRE_STOR, z))
+ ePowerBalance_VRE_STOR[t,z] += sum(EP[:vP][y,t] for y=resources_in_zone_by_rid(gen_VRE_STOR, z))
end
end
@@ -185,15 +186,15 @@ function vre_stor!(EP::Model, inputs::Dict, setup::Dict)
# Energy Share Requirement
if EnergyShareRequirement >= 1
@expression(EP, eESRVREStor[ESR=1:inputs["nESR"]],
- sum(inputs["omega"][t]*by_rid(y,Symbol("ESRVreStor_$ESR"))*EP[:vP_SOLAR][y,t]*by_rid(y,:EtaInverter)
- for y=intersect(SOLAR, dfVRE_STOR[findall(x->x>0,dfVRE_STOR[!,Symbol("ESRVreStor_$ESR")]),:R_ID]), t=1:T)
- + sum(inputs["omega"][t]*by_rid(y,Symbol("ESRVreStor_$ESR"))*EP[:vP_WIND][y,t]
- for y=intersect(WIND, dfVRE_STOR[findall(x->x>0,dfVRE_STOR[!,Symbol("ESRVreStor_$ESR")]),:R_ID]), t=1:T))
+ sum(inputs["omega"][t]*esr_vrestor(gen[y],tag=ESR)*EP[:vP_SOLAR][y,t]*by_rid(y,:etainverter)
+ for y=intersect(SOLAR, ids_with_policy(gen, esr_vrestor, tag=ESR)), t=1:T)
+ + sum(inputs["omega"][t]*esr_vrestor(gen[y],tag=ESR)*EP[:vP_WIND][y,t]
+ for y=intersect(WIND, ids_with_policy(gen, esr_vrestor, tag=ESR)), t=1:T))
EP[:eESR] += eESRVREStor
if IncludeLossesInESR == 1
@expression(EP, eESRVREStorLosses[ESR=1:inputs["nESR"]],
sum(inputs["dfESR"][z,ESR]*sum(EP[:eELOSS_VRE_STOR][y]
- for y=intersect(STOR, dfVRE_STOR[(dfVRE_STOR[!,:Zone].==z),:R_ID])) for z=findall(x->x>0,inputs["dfESR"][:,ESR])))
+ for y=intersect(STOR, resources_in_zone_by_rid(gen_VRE_STOR, z))) for z=findall(x->x>0,inputs["dfESR"][:,ESR])))
EP[:eESR] -= eESRVREStorLosses
end
end
@@ -201,69 +202,69 @@ function vre_stor!(EP::Model, inputs::Dict, setup::Dict)
# Minimum Capacity Requirement
if MinCapReq == 1
@expression(EP, eMinCapResSolar[mincap = 1:inputs["NumberOfMinCapReqs"]],
- sum(by_rid(y,:EtaInverter)*EP[:eTotalCap_SOLAR][y] for y in intersect(SOLAR, dfVRE_STOR[(dfVRE_STOR[!,Symbol("MinCapTagSolar_$mincap")].== 1),:R_ID])))
+ sum(by_rid(y,:etainverter)*EP[:eTotalCap_SOLAR][y] for y in intersect(SOLAR, ids_with_policy(gen_VRE_STOR, min_cap_solar, tag=mincap))))
EP[:eMinCapRes] += eMinCapResSolar
@expression(EP, eMinCapResWind[mincap = 1:inputs["NumberOfMinCapReqs"]],
- sum(EP[:eTotalCap_WIND][y] for y in intersect(WIND, dfVRE_STOR[(dfVRE_STOR[!,Symbol("MinCapTagWind_$mincap")].== 1),:R_ID])))
+ sum(EP[:eTotalCap_WIND][y] for y in intersect(WIND, ids_with_policy(gen_VRE_STOR, min_cap_wind, tag=mincap))))
EP[:eMinCapRes] += eMinCapResWind
if !isempty(inputs["VS_ASYM_AC_DISCHARGE"])
@expression(EP, eMinCapResACDis[mincap = 1:inputs["NumberOfMinCapReqs"]],
- sum(EP[:eTotalCapDischarge_AC][y] for y in intersect(inputs["VS_ASYM_AC_DISCHARGE"], dfVRE_STOR[(dfVRE_STOR[!,Symbol("MinCapTagStor_$mincap")].== 1),:R_ID])))
+ sum(EP[:eTotalCapDischarge_AC][y] for y in intersect(inputs["VS_ASYM_AC_DISCHARGE"], ids_with_policy(gen_VRE_STOR, min_cap_stor, tag=mincap))))
EP[:eMinCapRes] += eMinCapResACDis
end
if !isempty(inputs["VS_ASYM_DC_DISCHARGE"])
@expression(EP, eMinCapResDCDis[mincap = 1:inputs["NumberOfMinCapReqs"]],
- sum(EP[:eTotalCapDischarge_DC][y] for y in intersect(inputs["VS_ASYM_DC_DISCHARGE"], dfVRE_STOR[(dfVRE_STOR[!,Symbol("MinCapTagStor_$mincap")].== 1),:R_ID])))
+ sum(EP[:eTotalCapDischarge_DC][y] for y in intersect(inputs["VS_ASYM_DC_DISCHARGE"], ids_with_policy(gen_VRE_STOR, min_cap_stor, tag=mincap))))
EP[:eMinCapRes] += eMinCapResDCDis
end
if !isempty(inputs["VS_SYM_AC"])
@expression(EP, eMinCapResACStor[mincap = 1:inputs["NumberOfMinCapReqs"]],
- sum(by_rid(y,:Power_to_Energy_AC)*EP[:eTotalCap_STOR][y] for y in intersect(inputs["VS_SYM_AC"], dfVRE_STOR[(dfVRE_STOR[!,Symbol("MinCapTagStor_$mincap")].== 1),:R_ID])))
+ sum(by_rid(y,:power_to_energy_ac)*EP[:eTotalCap_STOR][y] for y in intersect(inputs["VS_SYM_AC"], ids_with_policy(gen_VRE_STOR, min_cap_stor, tag=mincap))))
EP[:eMinCapRes] += eMinCapResACStor
end
if !isempty(inputs["VS_SYM_DC"])
@expression(EP, eMinCapResDCStor[mincap = 1:inputs["NumberOfMinCapReqs"]],
- sum(by_rid(y,:Power_to_Energy_DC)*EP[:eTotalCap_STOR][y] for y in intersect(inputs["VS_SYM_DC"], dfVRE_STOR[(dfVRE_STOR[!,Symbol("MinCapTagStor_$mincap")].== 1),:R_ID])))
+ sum(by_rid(y,:power_to_energy_dc)*EP[:eTotalCap_STOR][y] for y in intersect(inputs["VS_SYM_DC"], ids_with_policy(gen_VRE_STOR, min_cap_stor, tag=mincap))))
EP[:eMinCapRes] += eMinCapResDCStor
end
end
# Maximum Capacity Requirement
if MaxCapReq == 1
- @expression(EP, eMaxCapResSolar[mincap = 1:inputs["NumberOfMaxCapReqs"]],
- sum(by_rid(y,:EtaInverter)*EP[:eTotalCap_SOLAR][y] for y in intersect(SOLAR, dfVRE_STOR[(dfVRE_STOR[!,Symbol("MaxCapTagSolar_$mincap")].== 1),:R_ID])))
+ @expression(EP, eMaxCapResSolar[maxcap = 1:inputs["NumberOfMaxCapReqs"]],
+ sum(by_rid(y,:etainverter)*EP[:eTotalCap_SOLAR][y] for y in intersect(SOLAR, ids_with_policy(gen_VRE_STOR, max_cap_solar, tag=maxcap))))
EP[:eMaxCapRes] += eMaxCapResSolar
- @expression(EP, eMaxCapResWind[mincap = 1:inputs["NumberOfMaxCapReqs"]],
- sum(EP[:eTotalCap_WIND][y] for y in intersect(WIND, dfVRE_STOR[(dfVRE_STOR[!,Symbol("MaxCapTagWind_$mincap")].== 1),:R_ID])))
+ @expression(EP, eMaxCapResWind[maxcap = 1:inputs["NumberOfMaxCapReqs"]],
+ sum(EP[:eTotalCap_WIND][y] for y in intersect(WIND, ids_with_policy(gen_VRE_STOR, max_cap_wind, tag=maxcap))))
EP[:eMaxCapRes] += eMaxCapResWind
if !isempty(inputs["VS_ASYM_AC_DISCHARGE"])
- @expression(EP, eMaxCapResACDis[mincap = 1:inputs["NumberOfMaxCapReqs"]],
- sum(EP[:eTotalCapDischarge_AC][y] for y in intersect(inputs["VS_ASYM_AC_DISCHARGE"], dfVRE_STOR[(dfVRE_STOR[!,Symbol("MaxCapTagStor_$mincap")].== 1),:R_ID])))
+ @expression(EP, eMaxCapResACDis[maxcap = 1:inputs["NumberOfMaxCapReqs"]],
+ sum(EP[:eTotalCapDischarge_AC][y] for y in intersect(inputs["VS_ASYM_AC_DISCHARGE"], ids_with_policy(gen_VRE_STOR, max_cap_stor, tag=maxcap))))
EP[:eMaxCapRes] += eMaxCapResACDis
end
if !isempty(inputs["VS_ASYM_DC_DISCHARGE"])
- @expression(EP, eMaxCapResDCDis[mincap = 1:inputs["NumberOfMaxCapReqs"]],
- sum(EP[:eTotalCapDischarge_DC][y] for y in intersect(inputs["VS_ASYM_DC_DISCHARGE"], dfVRE_STOR[(dfVRE_STOR[!,Symbol("MaxCapTagStor_$mincap")].== 1),:R_ID])))
+ @expression(EP, eMaxCapResDCDis[maxcap = 1:inputs["NumberOfMaxCapReqs"]],
+ sum(EP[:eTotalCapDischarge_DC][y] for y in intersect(inputs["VS_ASYM_DC_DISCHARGE"], ids_with_policy(gen_VRE_STOR, max_cap_stor, tag=maxcap))))
EP[:eMaxCapRes] += eMaxCapResDCDis
end
if !isempty(inputs["VS_SYM_AC"])
- @expression(EP, eMaxCapResACStor[mincap = 1:inputs["NumberOfMaxCapReqs"]],
- sum(by_rid(y,:Power_to_Energy_AC)*EP[:eTotalCap_STOR][y] for y in intersect(inputs["VS_SYM_AC"], dfVRE_STOR[(dfVRE_STOR[!,Symbol("MaxCapTagStor_$mincap")].== 1),:R_ID])))
+ @expression(EP, eMaxCapResACStor[maxcap = 1:inputs["NumberOfMaxCapReqs"]],
+ sum(by_rid(y,:power_to_energy_ac)*EP[:eTotalCap_STOR][y] for y in intersect(inputs["VS_SYM_AC"], ids_with_policy(gen_VRE_STOR, max_cap_stor, tag=maxcap))))
EP[:eMaxCapRes] += eMaxCapResACStor
end
if !isempty(inputs["VS_SYM_DC"])
- @expression(EP, eMaxCapResDCStor[mincap = 1:inputs["NumberOfMaxCapReqs"]],
- sum(by_rid(y,:Power_to_Energy_DC)*EP[:eTotalCap_STOR][y] for y in intersect(inputs["VS_SYM_DC"], dfVRE_STOR[(dfVRE_STOR[!,Symbol("MaxCapTagStor_$mincap")].== 1),:R_ID])))
+ @expression(EP, eMaxCapResDCStor[maxcap = 1:inputs["NumberOfMaxCapReqs"]],
+ sum(by_rid(y,:power_to_energy_dc)*EP[:eTotalCap_STOR][y] for y in intersect(inputs["VS_SYM_DC"], ids_with_policy(gen_VRE_STOR, max_cap_stor, tag=maxcap))))
EP[:eMaxCapRes] += eMaxCapResDCStor
end
end
@@ -302,9 +303,9 @@ function vre_stor!(EP::Model, inputs::Dict, setup::Dict)
# Constraint 6: Symmetric Storage Resources (implemented in main module due to potential capacity reserve margin and operating reserve constraints)
@constraint(EP, cChargeDischargeMaxDC[y in inputs["VS_SYM_DC"], t=1:T],
- EP[:eChargeDischargeMaxDC][y,t] <= by_rid(y,:Power_to_Energy_DC)*EP[:eTotalCap_STOR][y])
+ EP[:eChargeDischargeMaxDC][y,t] <= by_rid(y,:power_to_energy_dc)*EP[:eTotalCap_STOR][y])
@constraint(EP, cChargeDischargeMaxAC[y in inputs["VS_SYM_AC"], t=1:T],
- EP[:eChargeDischargeMaxAC][y,t] <= by_rid(y,:Power_to_Energy_AC)*EP[:eTotalCap_STOR][y])
+ EP[:eChargeDischargeMaxAC][y,t] <= by_rid(y,:power_to_energy_ac)*EP[:eTotalCap_STOR][y])
# Constraint 7: Asymmetric Storage Resources (implemented in main module due to potential capacity reserve margin and operating reserve constraints)
@constraint(EP, cVreStorMaxDischargingDC[y in inputs["VS_ASYM_DC_DISCHARGE"], t=1:T], EP[:eVreStorMaxDischargingDC][y,t] <= EP[:eTotalCapDischarge_DC][y])
@@ -395,11 +396,12 @@ function inverter_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
DC = inputs["VS_DC"]
NEW_CAP_DC = inputs["NEW_CAP_DC"]
RET_CAP_DC = inputs["RET_CAP_DC"]
- dfVRE_STOR = inputs["dfVRE_STOR"]
+ gen = inputs["RESOURCES"]
+ gen_VRE_STOR = gen.VreStorage
MultiStage = setup["MultiStage"]
- by_rid(rid, sym) = by_rid_df(rid, sym, dfVRE_STOR)
+ by_rid(rid, sym) = by_rid_res(rid, sym, gen_VRE_STOR)
### INVERTER VARIABLES ###
@@ -419,7 +421,7 @@ function inverter_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
if MultiStage == 1
@expression(EP, eExistingCapDC[y in DC], vEXISTINGDCCAP[y])
else
- @expression(EP, eExistingCapDC[y in DC], by_rid(y,:Existing_Cap_Inverter_MW))
+ @expression(EP, eExistingCapDC[y in DC], by_rid(y,:existing_cap_inverter_mw))
end
# 1. Total inverter capacity
@@ -440,9 +442,9 @@ function inverter_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
# Fixed costs for inverter component (if resource is not eligible for new inverter capacity, fixed costs are only O&M costs)
@expression(EP, eCFixDC[y in DC],
if y in NEW_CAP_DC # Resources eligible for new capacity
- by_rid(y,:Inv_Cost_Inverter_per_MWyr)*vDCCAP[y] + by_rid(y,:Fixed_OM_Inverter_Cost_per_MWyr)*eTotalCap_DC[y]
+ by_rid(y,:inv_cost_inverter_per_mwyr)*vDCCAP[y] + by_rid(y,:fixed_om_inverter_cost_per_mwyr)*eTotalCap_DC[y]
else
- by_rid(y,:Fixed_OM_Inverter_Cost_per_MWyr)*eTotalCap_DC[y]
+ by_rid(y,:fixed_om_inverter_cost_per_mwyr)*eTotalCap_DC[y]
end
)
@@ -462,7 +464,7 @@ function inverter_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
# Constraint 0: Existing capacity variable is equal to existing capacity specified in the input file
if MultiStage == 1
- @constraint(EP, cExistingCapDC[y in DC], EP[:vEXISTINGDCCAP][y] == by_rid(y,:Existing_Cap_Inverter_MW))
+ @constraint(EP, cExistingCapDC[y in DC], EP[:vEXISTINGDCCAP][y] == by_rid(y,:existing_cap_inverter_mw))
end
# Constraints 1: Retirements and capacity additions
@@ -470,12 +472,12 @@ function inverter_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
@constraint(EP, cMaxRet_DC[y=RET_CAP_DC], vRETDCCAP[y] <= eExistingCapDC[y])
# Constraint on maximum capacity (if applicable) [set input to -1 if no constraint on maximum capacity]
# DEV NOTE: This constraint may be violated in some cases where Existing_Cap_MW is >= Max_Cap_MW and lead to infeasabilty
- @constraint(EP, cMaxCap_DC[y in dfVRE_STOR[dfVRE_STOR.Max_Cap_Inverter_MW.>=0,:R_ID]],
- eTotalCap_DC[y] <= by_rid(y,:Max_Cap_Inverter_MW))
+ @constraint(EP, cMaxCap_DC[y in ids_with_nonneg(gen_VRE_STOR, max_cap_inverter_mw)],
+ eTotalCap_DC[y] <= by_rid(y,:max_cap_inverter_mw))
# Constraint on Minimum capacity (if applicable) [set input to -1 if no constraint on minimum capacity]
# DEV NOTE: This constraint may be violated in some cases where Existing_Cap_MW is <= Min_Cap_MW and lead to infeasabilty
- @constraint(EP, cMinCap_DC[y in dfVRE_STOR[dfVRE_STOR.Min_Cap_Inverter_MW.>0,:R_ID]],
- eTotalCap_DC[y] >= by_rid(y,:Min_Cap_Inverter_MW))
+ @constraint(EP, cMinCap_DC[y in ids_with_positive(gen_VRE_STOR, min_cap_inverter_mw)],
+ eTotalCap_DC[y] >= by_rid(y,:min_cap_inverter_mw))
# Constraint 2: Inverter Exports Maximum: see main module because capacity reserve margin/operating reserves may alter constraint
end
@@ -548,16 +550,18 @@ function solar_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
println("VRE-STOR Solar Module")
### LOAD DATA ###
+ gen = inputs["RESOURCES"]
+ gen_VRE_STOR = gen.VreStorage
T = inputs["T"]
SOLAR = inputs["VS_SOLAR"]
+
NEW_CAP_SOLAR = inputs["NEW_CAP_SOLAR"]
RET_CAP_SOLAR = inputs["RET_CAP_SOLAR"]
- dfVRE_STOR = inputs["dfVRE_STOR"]
MultiStage = setup["MultiStage"]
- by_rid(rid, sym) = by_rid_df(rid, sym, dfVRE_STOR)
+ by_rid(rid, sym) = by_rid_res(rid, sym, gen_VRE_STOR)
### SOLAR VARIABLES ###
@@ -579,7 +583,7 @@ function solar_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
if MultiStage == 1
@expression(EP, eExistingCapSolar[y in SOLAR], vEXISTINGSOLARCAP[y])
else
- @expression(EP, eExistingCapSolar[y in SOLAR], by_rid(y,:Existing_Cap_Solar_MW))
+ @expression(EP, eExistingCapSolar[y in SOLAR], by_rid(y,:existing_cap_solar_mw))
end
# 1. Total solar capacity
@@ -600,9 +604,9 @@ function solar_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
# Fixed costs for solar resources (if resource is not eligible for new solar capacity, fixed costs are only O&M costs)
@expression(EP, eCFixSolar[y in SOLAR],
if y in NEW_CAP_SOLAR # Resources eligible for new capacity
- by_rid(y,:Inv_Cost_Solar_per_MWyr)*vSOLARCAP[y] + by_rid(y,:Fixed_OM_Solar_Cost_per_MWyr)*eTotalCap_SOLAR[y]
+ by_rid(y,:inv_cost_solar_per_mwyr)*vSOLARCAP[y] + by_rid(y,:fixed_om_solar_cost_per_mwyr)*eTotalCap_SOLAR[y]
else
- by_rid(y,:Fixed_OM_Solar_Cost_per_MWyr)*eTotalCap_SOLAR[y]
+ by_rid(y,:fixed_om_solar_cost_per_mwyr)*eTotalCap_SOLAR[y]
end
)
@expression(EP, eTotalCFixSolar, sum(eCFixSolar[y] for y in SOLAR))
@@ -615,15 +619,15 @@ function solar_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
# Variable costs of "generation" for solar resource "y" during hour "t"
@expression(EP, eCVarOutSolar[y in SOLAR, t=1:T],
- inputs["omega"][t]*by_rid(y,:Var_OM_Cost_per_MWh_Solar)*by_rid(y,:EtaInverter)*EP[:vP_SOLAR][y,t])
+ inputs["omega"][t]*by_rid(y,:var_om_cost_per_mwh_solar)*by_rid(y,:etainverter)*EP[:vP_SOLAR][y,t])
@expression(EP, eTotalCVarOutSolar, sum(eCVarOutSolar[y,t] for y in SOLAR, t=1:T))
EP[:eObj] += eTotalCVarOutSolar
# 3. Inverter Balance, PV Generation Maximum
@expression(EP, eSolarGenMaxS[y in SOLAR, t=1:T], JuMP.AffExpr())
for y in SOLAR, t=1:T
- EP[:eInvACBalance][y,t] += by_rid(y,:EtaInverter)*EP[:vP_SOLAR][y,t]
- EP[:eInverterExport][y,t] += by_rid(y,:EtaInverter)*EP[:vP_SOLAR][y,t]
+ EP[:eInvACBalance][y,t] += by_rid(y,:etainverter)*EP[:vP_SOLAR][y,t]
+ EP[:eInverterExport][y,t] += by_rid(y,:etainverter)*EP[:vP_SOLAR][y,t]
eSolarGenMaxS[y,t] += EP[:vP_SOLAR][y,t]
end
@@ -631,7 +635,7 @@ function solar_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
# Constraint 0: Existing capacity variable is equal to existing capacity specified in the input file
if MultiStage == 1
- @constraint(EP, cExistingCapSolar[y in SOLAR], EP[:vEXISTINGSOLARCAP][y] == by_rid(y,:Existing_Cap_Solar_MW))
+ @constraint(EP, cExistingCapSolar[y in SOLAR], EP[:vEXISTINGSOLARCAP][y] == by_rid(y,:existing_cap_solar_mw))
end
# Constraints 1: Retirements and capacity additions
@@ -639,18 +643,18 @@ function solar_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
@constraint(EP, cMaxRet_Solar[y=RET_CAP_SOLAR], vRETSOLARCAP[y] <= eExistingCapSolar[y])
# Constraint on maximum capacity (if applicable) [set input to -1 if no constraint on maximum capacity]
# DEV NOTE: This constraint may be violated in some cases where Existing_Cap_MW is >= Max_Cap_MW and lead to infeasabilty
- @constraint(EP, cMaxCap_Solar[y in dfVRE_STOR[dfVRE_STOR.Max_Cap_Solar_MW.>=0,:R_ID]],
- eTotalCap_SOLAR[y] <= by_rid(y,:Max_Cap_Solar_MW))
+ @constraint(EP, cMaxCap_Solar[y in ids_with_nonneg(gen_VRE_STOR, max_cap_solar_mw)],
+ eTotalCap_SOLAR[y] <= by_rid(y,:max_cap_solar_mw))
# Constraint on Minimum capacity (if applicable) [set input to -1 if no constraint on minimum capacity]
# DEV NOTE: This constraint may be violated in some cases where Existing_Cap_MW is <= Min_Cap_MW and lead to infeasabilty
- @constraint(EP, cMinCap_Solar[y in dfVRE_STOR[dfVRE_STOR.Min_Cap_Solar_MW.>0,:R_ID]],
- eTotalCap_SOLAR[y] >= by_rid(y,:Min_Cap_Solar_MW))
+ @constraint(EP, cMinCap_Solar[y in ids_with_positive(gen_VRE_STOR, min_cap_solar_mw)],
+ eTotalCap_SOLAR[y] >= by_rid(y,:min_cap_solar_mw))
# Constraint 2: PV Generation: see main module because operating reserves may alter constraint
# Constraint 3: Inverter Ratio between solar capacity and grid
- @constraint(EP, cInverterRatio_Solar[y in dfVRE_STOR[dfVRE_STOR.Inverter_Ratio_Solar.>0,:R_ID]],
- EP[:eTotalCap_SOLAR][y] == by_rid(y,:Inverter_Ratio_Solar)*EP[:eTotalCap_DC][y])
+ @constraint(EP, cInverterRatio_Solar[y in ids_with_positive(gen_VRE_STOR, inverter_ratio_solar)],
+ EP[:eTotalCap_SOLAR][y] == by_rid(y,:inverter_ratio_solar)*EP[:eTotalCap_DC][y])
end
@doc raw"""
@@ -721,16 +725,17 @@ function wind_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
println("VRE-STOR Wind Module")
### LOAD DATA ###
+ gen = inputs["RESOURCES"]
+ gen_VRE_STOR = gen.VreStorage
T = inputs["T"]
WIND = inputs["VS_WIND"]
NEW_CAP_WIND = inputs["NEW_CAP_WIND"]
RET_CAP_WIND = inputs["RET_CAP_WIND"]
- dfVRE_STOR = inputs["dfVRE_STOR"]
MultiStage = setup["MultiStage"]
- by_rid(rid, sym) = by_rid_df(rid, sym, dfVRE_STOR)
+ by_rid(rid, sym) = by_rid_res(rid, sym, gen_VRE_STOR)
### WIND VARIABLES ###
@@ -753,7 +758,7 @@ function wind_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
if MultiStage == 1
@expression(EP, eExistingCapWind[y in WIND], vEXISTINGWINDCAP[y])
else
- @expression(EP, eExistingCapWind[y in WIND], by_rid(y,:Existing_Cap_Wind_MW))
+ @expression(EP, eExistingCapWind[y in WIND], by_rid(y,:existing_cap_wind_mw))
end
# 1. Total wind capacity
@@ -774,9 +779,9 @@ function wind_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
# Fixed costs for wind resources (if resource is not eligible for new wind capacity, fixed costs are only O&M costs)
@expression(EP, eCFixWind[y in WIND],
if y in NEW_CAP_WIND # Resources eligible for new capacity
- by_rid(y,:Inv_Cost_Wind_per_MWyr)*vWINDCAP[y] + by_rid(y,:Fixed_OM_Wind_Cost_per_MWyr)*eTotalCap_WIND[y]
+ by_rid(y,:inv_cost_wind_per_mwyr)*vWINDCAP[y] + by_rid(y,:fixed_om_wind_cost_per_mwyr)*eTotalCap_WIND[y]
else
- by_rid(y,:Fixed_OM_Wind_Cost_per_MWyr)*eTotalCap_WIND[y]
+ by_rid(y,:fixed_om_wind_cost_per_mwyr)*eTotalCap_WIND[y]
end
)
@expression(EP, eTotalCFixWind, sum(eCFixWind[y] for y in WIND))
@@ -788,7 +793,7 @@ function wind_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
end
# Variable costs of "generation" for wind resource "y" during hour "t"
- @expression(EP, eCVarOutWind[y in WIND, t=1:T], inputs["omega"][t]*by_rid(y,:Var_OM_Cost_per_MWh_Wind)*EP[:vP_WIND][y,t])
+ @expression(EP, eCVarOutWind[y in WIND, t=1:T], inputs["omega"][t]*by_rid(y,:var_om_cost_per_mwh_wind)*EP[:vP_WIND][y,t])
@expression(EP, eTotalCVarOutWind, sum(eCVarOutWind[y,t] for y in WIND, t=1:T))
EP[:eObj] += eTotalCVarOutWind
@@ -803,7 +808,7 @@ function wind_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
# Constraint 0: Existing capacity variable is equal to existing capacity specified in the input file
if MultiStage == 1
- @constraint(EP, cExistingCapWind[y in WIND], EP[:vEXISTINGWINDCAP][y] == by_rid(y,:Existing_Cap_Wind_MW))
+ @constraint(EP, cExistingCapWind[y in WIND], EP[:vEXISTINGWINDCAP][y] == by_rid(y,:existing_cap_wind_mw))
end
# Constraints 1: Retirements and capacity additions
@@ -811,18 +816,18 @@ function wind_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
@constraint(EP, cMaxRet_Wind[y=RET_CAP_WIND], vRETWINDCAP[y] <= eExistingCapWind[y])
# Constraint on maximum capacity (if applicable) [set input to -1 if no constraint on maximum capacity]
# DEV NOTE: This constraint may be violated in some cases where Existing_Cap_MW is >= Max_Cap_MW and lead to infeasabilty
- @constraint(EP, cMaxCap_Wind[y in dfVRE_STOR[dfVRE_STOR.Max_Cap_Wind_MW.>=0,:R_ID]],
- eTotalCap_WIND[y] <= by_rid(y,:Max_Cap_Wind_MW))
+ @constraint(EP, cMaxCap_Wind[y in ids_with_nonneg(gen_VRE_STOR, max_cap_wind_mw)],
+ eTotalCap_WIND[y] <= by_rid(y,:max_cap_wind_mw))
# Constraint on Minimum capacity (if applicable) [set input to -1 if no constraint on minimum capacity]
# DEV NOTE: This constraint may be violated in some cases where Existing_Cap_MW is <= Min_Cap_MW and lead to infeasabilty
- @constraint(EP, cMinCap_Wind[y in dfVRE_STOR[dfVRE_STOR.Min_Cap_Wind_MW.>0,:R_ID]],
- eTotalCap_WIND[y] >= by_rid(y,:Min_Cap_Wind_MW))
+ @constraint(EP, cMinCap_Wind[y in ids_with_positive(gen_VRE_STOR, min_cap_wind_mw)],
+ eTotalCap_WIND[y] >= by_rid(y,:min_cap_wind_mw))
# Constraint 2: Wind Generation: see main module because capacity reserve margin/operating reserves may alter constraint
# Constraint 3: Inverter Ratio between wind capacity and grid
- @constraint(EP, cInverterRatio_Wind[y in dfVRE_STOR[dfVRE_STOR.Inverter_Ratio_Wind.>0,:R_ID]],
- EP[:eTotalCap_WIND][y] == by_rid(y,:Inverter_Ratio_Wind)*EP[:eTotalCap][y])
+ @constraint(EP, cInverterRatio_Wind[y in ids_with_positive(gen_VRE_STOR, inverter_ratio_wind)],
+ EP[:eTotalCap_WIND][y] == by_rid(y,:inverter_ratio_wind)*EP[:eTotalCap][y])
end
@doc raw"""
@@ -959,10 +964,11 @@ function stor_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
T = inputs["T"]
Z = inputs["Z"]
- dfGen = inputs["dfGen"]
+
+ gen = inputs["RESOURCES"]
+ gen_VRE_STOR = gen.VreStorage
STOR = inputs["VS_STOR"]
- dfVRE_STOR = inputs["dfVRE_STOR"]
NEW_CAP_STOR = inputs["NEW_CAP_STOR"]
RET_CAP_STOR = inputs["RET_CAP_STOR"]
DC_DISCHARGE = inputs["VS_STOR_DC_DISCHARGE"]
@@ -980,7 +986,7 @@ function stor_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
MultiStage = setup["MultiStage"]
- by_rid(rid, sym) = by_rid_df(rid, sym, dfVRE_STOR)
+ by_rid(rid, sym) = by_rid_res(rid, sym, gen_VRE_STOR)
### STOR VARIABLES ###
@@ -1018,7 +1024,7 @@ function stor_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
if MultiStage == 1
@expression(EP, eExistingCapEnergy_VS[y in STOR], vEXISTINGCAPENERGY_VS[y])
else
- @expression(EP, eExistingCapEnergy_VS[y in STOR], dfGen[y,:Existing_Cap_MWh])
+ @expression(EP, eExistingCapEnergy_VS[y in STOR], existing_cap_mwh(gen[y]))
end
# 1. Total storage energy capacity
@@ -1039,9 +1045,9 @@ function stor_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
# Fixed costs for storage resources (if resource is not eligible for new energy capacity, fixed costs are only O&M costs)
@expression(EP, eCFixEnergy_VS[y in STOR],
if y in NEW_CAP_STOR # Resources eligible for new capacity
- dfGen[y,:Inv_Cost_per_MWhyr]*vCAPENERGY_VS[y] + dfGen[y,:Fixed_OM_Cost_per_MWhyr]*eTotalCap_STOR[y]
+ inv_cost_per_mwhyr(gen[y])*vCAPENERGY_VS[y] + fixed_om_cost_per_mwhyr(gen[y])*eTotalCap_STOR[y]
else
- dfGen[y,:Fixed_OM_Cost_per_MWhyr]*eTotalCap_STOR[y]
+ fixed_om_cost_per_mwhyr(gen[y])*eTotalCap_STOR[y]
end
)
@expression(EP, eTotalCFixStor, sum(eCFixEnergy_VS[y] for y in STOR))
@@ -1054,16 +1060,16 @@ function stor_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
# Variable costs of charging DC for VRE-STOR resources "y" during hour "t"
@expression(EP, eCVar_Charge_DC[y in DC_CHARGE, t=1:T],
- inputs["omega"][t]*by_rid(y,:Var_OM_Cost_per_MWh_Charge_DC)*EP[:vP_DC_CHARGE][y,t]/by_rid(y,:EtaInverter))
+ inputs["omega"][t]*by_rid(y,:var_om_cost_per_mwh_charge_dc)*EP[:vP_DC_CHARGE][y,t]/by_rid(y,:etainverter))
# Variable costs of discharging DC for VRE-STOR resources "y" during hour "t"
@expression(EP, eCVar_Discharge_DC[y in DC_DISCHARGE, t=1:T],
- inputs["omega"][t]*by_rid(y,:Var_OM_Cost_per_MWh_Discharge_DC)*by_rid(y,:EtaInverter)*EP[:vP_DC_DISCHARGE][y,t])
+ inputs["omega"][t]*by_rid(y,:var_om_cost_per_mwh_discharge_dc)*by_rid(y,:etainverter)*EP[:vP_DC_DISCHARGE][y,t])
# Variable costs of charging AC for VRE-STOR resources "y" during hour "t"
@expression(EP, eCVar_Charge_AC[y in AC_CHARGE, t=1:T],
- inputs["omega"][t]*by_rid(y,:Var_OM_Cost_per_MWh_Charge_AC)*EP[:vP_AC_CHARGE][y,t])
+ inputs["omega"][t]*by_rid(y,:var_om_cost_per_mwh_charge_ac)*EP[:vP_AC_CHARGE][y,t])
# Variable costs of discharging AC for VRE-STOR resources "y" during hour "t"
@expression(EP, eCVar_Discharge_AC[y in AC_DISCHARGE, t=1:T],
- inputs["omega"][t]*by_rid(y,:Var_OM_Cost_per_MWh_Discharge_AC)*EP[:vP_AC_DISCHARGE][y,t])
+ inputs["omega"][t]*by_rid(y,:var_om_cost_per_mwh_discharge_ac)*EP[:vP_AC_DISCHARGE][y,t])
# Sum individual resource contributions
@expression(EP, eTotalCVarStor, sum(eCVar_Charge_DC[y,t] for y in DC_CHARGE, t=1:T)
@@ -1083,9 +1089,9 @@ function stor_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
# SoC expressions
@expression(EP, eSoCBalStart_VRE_STOR[y in CONSTRAINTSET, t in START_SUBPERIODS],
- vS_VRE_STOR[y,t+hours_per_subperiod-1] - dfGen[y,:Self_Disch]*vS_VRE_STOR[y,t+hours_per_subperiod-1])
+ vS_VRE_STOR[y,t+hours_per_subperiod-1] - self_discharge(gen[y])*vS_VRE_STOR[y,t+hours_per_subperiod-1])
@expression(EP, eSoCBalInterior_VRE_STOR[y in STOR, t in INTERIOR_SUBPERIODS],
- vS_VRE_STOR[y,t-1] - dfGen[y,:Self_Disch]*vS_VRE_STOR[y,t-1])
+ vS_VRE_STOR[y,t-1] - self_discharge(gen[y])*vS_VRE_STOR[y,t-1])
# Expression for energy losses related to technologies (increase in effective demand)
@expression(EP, eELOSS_VRE_STOR[y in STOR], JuMP.AffExpr())
@@ -1095,38 +1101,38 @@ function stor_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
AC_CHARGE_CONSTRAINTSET = intersect(CONSTRAINTSET, AC_CHARGE)
for t in START_SUBPERIODS
for y in DC_DISCHARGE_CONSTRAINTSET
- eSoCBalStart_VRE_STOR[y,t] -= EP[:vP_DC_DISCHARGE][y,t]/by_rid(y,:Eff_Down_DC)
+ eSoCBalStart_VRE_STOR[y,t] -= EP[:vP_DC_DISCHARGE][y,t]/by_rid(y,:eff_down_dc)
end
for y in DC_CHARGE_CONSTRAINTSET
- eSoCBalStart_VRE_STOR[y,t] += by_rid(y,:Eff_Up_DC)*EP[:vP_DC_CHARGE][y,t]
+ eSoCBalStart_VRE_STOR[y,t] += by_rid(y,:eff_up_dc)*EP[:vP_DC_CHARGE][y,t]
end
for y in AC_DISCHARGE_CONSTRAINTSET
- eSoCBalStart_VRE_STOR[y,t] -= EP[:vP_AC_DISCHARGE][y,t]/by_rid(y,:Eff_Down_AC)
+ eSoCBalStart_VRE_STOR[y,t] -= EP[:vP_AC_DISCHARGE][y,t]/by_rid(y,:eff_down_ac)
end
for y in AC_CHARGE_CONSTRAINTSET
- eSoCBalStart_VRE_STOR[y,t] += by_rid(y,:Eff_Up_AC)*EP[:vP_AC_CHARGE][y,t]
+ eSoCBalStart_VRE_STOR[y,t] += by_rid(y,:eff_up_ac)*EP[:vP_AC_CHARGE][y,t]
end
end
for y in DC_DISCHARGE
- EP[:eELOSS_VRE_STOR][y] -= sum(inputs["omega"][t]*vP_DC_DISCHARGE[y,t]*by_rid(y,:EtaInverter) for t=1:T)
+ EP[:eELOSS_VRE_STOR][y] -= sum(inputs["omega"][t]*vP_DC_DISCHARGE[y,t]*by_rid(y,:etainverter) for t=1:T)
for t=1:T
- EP[:eInvACBalance][y,t] += by_rid(y,:EtaInverter)*vP_DC_DISCHARGE[y,t]
- EP[:eInverterExport][y,t] += by_rid(y,:EtaInverter)*vP_DC_DISCHARGE[y,t]
+ EP[:eInvACBalance][y,t] += by_rid(y,:etainverter)*vP_DC_DISCHARGE[y,t]
+ EP[:eInverterExport][y,t] += by_rid(y,:etainverter)*vP_DC_DISCHARGE[y,t]
end
for t in INTERIOR_SUBPERIODS
- eSoCBalInterior_VRE_STOR[y,t] -= EP[:vP_DC_DISCHARGE][y,t]/by_rid(y,:Eff_Down_DC)
+ eSoCBalInterior_VRE_STOR[y,t] -= EP[:vP_DC_DISCHARGE][y,t]/by_rid(y,:eff_down_dc)
end
end
for y in DC_CHARGE
- EP[:eELOSS_VRE_STOR][y] += sum(inputs["omega"][t]*vP_DC_CHARGE[y,t]/by_rid(y,:EtaInverter) for t=1:T)
+ EP[:eELOSS_VRE_STOR][y] += sum(inputs["omega"][t]*vP_DC_CHARGE[y,t]/by_rid(y,:etainverter) for t=1:T)
for t=1:T
- EP[:eInvACBalance][y,t] -= vP_DC_CHARGE[y,t]/by_rid(y,:EtaInverter)
- EP[:eInverterExport][y,t] += vP_DC_CHARGE[y,t]/by_rid(y,:EtaInverter)
+ EP[:eInvACBalance][y,t] -= vP_DC_CHARGE[y,t]/by_rid(y,:etainverter)
+ EP[:eInverterExport][y,t] += vP_DC_CHARGE[y,t]/by_rid(y,:etainverter)
end
for t in INTERIOR_SUBPERIODS
- eSoCBalInterior_VRE_STOR[y,t] += by_rid(y,:Eff_Up_DC)*EP[:vP_DC_CHARGE][y,t]
+ eSoCBalInterior_VRE_STOR[y,t] += by_rid(y,:eff_up_dc)*EP[:vP_DC_CHARGE][y,t]
end
end
@@ -1136,7 +1142,7 @@ function stor_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
EP[:eInvACBalance][y,t] += vP_AC_DISCHARGE[y,t]
end
for t in INTERIOR_SUBPERIODS
- eSoCBalInterior_VRE_STOR[y,t] -= EP[:vP_AC_DISCHARGE][y,t]/by_rid(y,:Eff_Down_AC)
+ eSoCBalInterior_VRE_STOR[y,t] -= EP[:vP_AC_DISCHARGE][y,t]/by_rid(y,:eff_down_ac)
end
end
@@ -1146,7 +1152,7 @@ function stor_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
EP[:eInvACBalance][y,t] -= vP_AC_CHARGE[y,t]
end
for t in INTERIOR_SUBPERIODS
- eSoCBalInterior_VRE_STOR[y,t] += by_rid(y,:Eff_Up_AC)*EP[:vP_AC_CHARGE][y,t]
+ eSoCBalInterior_VRE_STOR[y,t] += by_rid(y,:eff_up_ac)*EP[:vP_AC_CHARGE][y,t]
end
end
@@ -1156,8 +1162,8 @@ function stor_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
end
for z in 1:Z, t=1:T
- if !isempty(dfVRE_STOR[(dfVRE_STOR[!,:Zone].==z),:R_ID])
- EP[:ePowerBalance_VRE_STOR][t, z] -= sum(vCHARGE_VRE_STOR[y,t] for y=intersect(dfVRE_STOR[(dfVRE_STOR[!,:Zone].==z),:R_ID],STOR))
+ if !isempty(resources_in_zone_by_rid(gen_VRE_STOR,z))
+ EP[:ePowerBalance_VRE_STOR][t, z] -= sum(vCHARGE_VRE_STOR[y,t] for y=intersect(resources_in_zone_by_rid(gen_VRE_STOR,z),STOR))
end
end
@@ -1165,14 +1171,14 @@ function stor_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
# From CO2 Policy module
@expression(EP, eELOSSByZone_VRE_STOR[z=1:Z],
- sum(EP[:eELOSS_VRE_STOR][y] for y in intersect(dfVRE_STOR[(dfVRE_STOR[!,:Zone].==z),:R_ID],STOR)))
+ sum(EP[:eELOSS_VRE_STOR][y] for y in intersect(resources_in_zone_by_rid(gen_VRE_STOR,z),STOR)))
add_similar_to_expression!(EP[:eELOSSByZone], eELOSSByZone_VRE_STOR)
### CONSTRAINTS ###
# Constraint 0: Existing capacity variable is equal to existing capacity specified in the input file
if MultiStage == 1
- @constraint(EP, cExistingCapEnergy_VS[y in STOR], EP[:vEXISTINGCAPENERGY_VS][y] == dfGen[y,:Existing_Cap_MWh])
+ @constraint(EP, cExistingCapEnergy_VS[y in STOR], EP[:vEXISTINGCAPENERGY_VS][y] == existing_cap_mwh(gen[y]))
end
# Constraints 1: Retirements and capacity additions
@@ -1180,12 +1186,12 @@ function stor_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
@constraint(EP, cMaxRet_Stor[y=RET_CAP_STOR], vRETCAPENERGY_VS[y] <= eExistingCapEnergy_VS[y])
# Constraint on maximum capacity (if applicable) [set input to -1 if no constraint on maximum capacity]
# DEV NOTE: This constraint may be violated in some cases where Existing_Cap_MW is >= Max_Cap_MW and lead to infeasabilty
- @constraint(EP, cMaxCap_Stor[y in intersect(dfGen[dfGen.Max_Cap_MWh.>=0,:R_ID], STOR)],
- eTotalCap_STOR[y] <= dfGen[y, :Max_Cap_MWh])
+ @constraint(EP, cMaxCap_Stor[y in intersect(ids_with_nonneg(gen, max_cap_mwh), STOR)],
+ eTotalCap_STOR[y] <= max_cap_mwh(gen[y]))
# Constraint on minimum capacity (if applicable) [set input to -1 if no constraint on minimum capacity]
# DEV NOTE: This constraint may be violated in some cases where Existing_Cap_MW is <= Min_Cap_MW and lead to infeasabilty
- @constraint(EP, cMinCap_Stor[y in intersect(dfGen[dfGen.Min_Cap_MWh.>0,:R_ID], STOR)],
- eTotalCap_STOR[y] >= dfGen[y, :Min_Cap_MWh])
+ @constraint(EP, cMinCap_Stor[y in intersect(ids_with_positive(gen, min_cap_mwh), STOR)],
+ eTotalCap_STOR[y] >= min_cap_mwh(gen[y]))
# Constraint 2: SOC Maximum
@constraint(EP, cSOCMax[y in STOR, t=1:T], vS_VRE_STOR[y,t] <= eTotalCap_STOR[y])
@@ -1250,8 +1256,8 @@ function lds_vre_stor!(EP::Model, inputs::Dict)
### LOAD DATA ###
VS_LDS = inputs["VS_LDS"]
- dfGen = inputs["dfGen"]
- dfVRE_STOR = inputs["dfVRE_STOR"]
+ gen = inputs["RESOURCES"]
+ gen_VRE_STOR = gen.VreStorage
REP_PERIOD = inputs["REP_PERIOD"] # Number of representative periods
dfPeriodMap = inputs["Period_Map"] # Dataframe that maps modeled periods to representative periods
@@ -1260,7 +1266,7 @@ function lds_vre_stor!(EP::Model, inputs::Dict)
MODELED_PERIODS_INDEX = 1:NPeriods
REP_PERIODS_INDEX = MODELED_PERIODS_INDEX[dfPeriodMap[!,:Rep_Period] .== MODELED_PERIODS_INDEX]
- by_rid(rid, sym) = by_rid_df(rid, sym, dfVRE_STOR)
+ by_rid(rid, sym) = by_rid_res(rid, sym, gen_VRE_STOR)
### LDS VARIABLES ###
@@ -1276,7 +1282,7 @@ function lds_vre_stor!(EP::Model, inputs::Dict)
# Note: tw_min = hours_per_subperiod*(w-1)+1; tw_max = hours_per_subperiod*w
@expression(EP, eVreStorSoCBalLongDurationStorageStart[y in VS_LDS, w=1:REP_PERIOD],
- (1-dfGen[y,:Self_Disch]) * (EP[:vS_VRE_STOR][y,hours_per_subperiod*w]-EP[:vdSOC_VRE_STOR][y,w]))
+ (1-self_discharge(gen[y])) * (EP[:vS_VRE_STOR][y,hours_per_subperiod*w]-EP[:vdSOC_VRE_STOR][y,w]))
DC_DISCHARGE_CONSTRAINTSET = intersect(inputs["VS_STOR_DC_DISCHARGE"], VS_LDS)
DC_CHARGE_CONSTRAINTSET = intersect(inputs["VS_STOR_DC_CHARGE"], VS_LDS)
@@ -1284,19 +1290,19 @@ function lds_vre_stor!(EP::Model, inputs::Dict)
AC_CHARGE_CONSTRAINTSET = intersect(inputs["VS_STOR_AC_CHARGE"], VS_LDS)
for w=1:REP_PERIOD
for y in DC_DISCHARGE_CONSTRAINTSET
- EP[:eVreStorSoCBalLongDurationStorageStart][y,w] -= EP[:vP_DC_DISCHARGE][y,hours_per_subperiod*(w-1)+1]/by_rid(y,:Eff_Down_DC)
+ EP[:eVreStorSoCBalLongDurationStorageStart][y,w] -= EP[:vP_DC_DISCHARGE][y,hours_per_subperiod*(w-1)+1]/by_rid(y,:eff_down_dc)
end
for y in DC_CHARGE_CONSTRAINTSET
- EP[:eVreStorSoCBalLongDurationStorageStart][y,w] += by_rid(y,:Eff_Up_DC)*EP[:vP_DC_CHARGE][y,hours_per_subperiod*(w-1)+1]
+ EP[:eVreStorSoCBalLongDurationStorageStart][y,w] += by_rid(y,:eff_up_dc)*EP[:vP_DC_CHARGE][y,hours_per_subperiod*(w-1)+1]
end
for y in AC_DISCHARGE_CONSTRAINTSET
- EP[:eVreStorSoCBalLongDurationStorageStart][y,w] -= EP[:vP_AC_DISCHARGE][y,hours_per_subperiod*(w-1)+1]/by_rid(y,:Eff_Down_AC)
+ EP[:eVreStorSoCBalLongDurationStorageStart][y,w] -= EP[:vP_AC_DISCHARGE][y,hours_per_subperiod*(w-1)+1]/by_rid(y,:eff_down_ac)
end
for y in AC_CHARGE_CONSTRAINTSET
- EP[:eVreStorSoCBalLongDurationStorageStart][y,w] += by_rid(y,:Eff_Up_AC)*EP[:vP_AC_CHARGE][y,hours_per_subperiod*(w-1)+1]
+ EP[:eVreStorSoCBalLongDurationStorageStart][y,w] += by_rid(y,:eff_up_ac)*EP[:vP_AC_CHARGE][y,hours_per_subperiod*(w-1)+1]
end
end
@@ -1451,9 +1457,10 @@ function investment_charge_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
println("VRE-STOR Charge Investment Module")
### LOAD INPUTS ###
+ gen = inputs["RESOURCES"]
+ gen_VRE_STOR = gen.VreStorage
T = inputs["T"]
- dfVRE_STOR = inputs["dfVRE_STOR"]
VS_ASYM_DC_CHARGE = inputs["VS_ASYM_DC_CHARGE"]
VS_ASYM_AC_CHARGE = inputs["VS_ASYM_AC_CHARGE"]
VS_ASYM_DC_DISCHARGE = inputs["VS_ASYM_DC_DISCHARGE"]
@@ -1470,11 +1477,11 @@ function investment_charge_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
MultiStage = setup["MultiStage"]
- by_rid(rid, sym) = by_rid_df(rid, sym, dfVRE_STOR)
+ by_rid(rid, sym) = by_rid_res(rid, sym, gen_VRE_STOR)
if !isempty(VS_ASYM_DC_DISCHARGE)
- MAX_DC_DISCHARGE = intersect(dfVRE_STOR[dfVRE_STOR.Max_Cap_Discharge_DC_MW.>=0,:R_ID], VS_ASYM_DC_DISCHARGE)
- MIN_DC_DISCHARGE = intersect(dfVRE_STOR[dfVRE_STOR.Min_Cap_Discharge_DC_MW.>0,:R_ID], VS_ASYM_DC_DISCHARGE)
+ MAX_DC_DISCHARGE = intersect(ids_with_nonneg(gen_VRE_STOR, max_cap_discharge_dc_mw), VS_ASYM_DC_DISCHARGE)
+ MIN_DC_DISCHARGE = intersect(ids_with_positive(gen_VRE_STOR, min_cap_discharge_dc_mw), VS_ASYM_DC_DISCHARGE)
### VARIABLES ###
@variables(EP, begin
@@ -1492,7 +1499,7 @@ function investment_charge_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
if MultiStage == 1
@expression(EP, eExistingCapDischargeDC[y in VS_ASYM_DC_DISCHARGE], vEXISTINGCAPDISCHARGEDC[y])
else
- @expression(EP, eExistingCapDischargeDC[y in VS_ASYM_DC_DISCHARGE], by_rid(y,:Existing_Cap_Discharge_DC_MW))
+ @expression(EP, eExistingCapDischargeDC[y in VS_ASYM_DC_DISCHARGE], by_rid(y,:existing_cap_discharge_dc_mw))
end
# 1. Total storage discharge DC capacity
@@ -1513,9 +1520,9 @@ function investment_charge_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
# If resource is not eligible for new discharge DC capacity, fixed costs are only O&M costs
@expression(EP, eCFixDischarge_DC[y in VS_ASYM_DC_DISCHARGE],
if y in NEW_CAP_DISCHARGE_DC # Resources eligible for new discharge DC capacity
- by_rid(y,:Inv_Cost_Discharge_DC_per_MWyr)*vCAPDISCHARGE_DC[y] + by_rid(y,:Fixed_OM_Cost_Discharge_DC_per_MWyr)*eTotalCapDischarge_DC[y]
+ by_rid(y,:inv_cost_discharge_dc_per_mwyr)*vCAPDISCHARGE_DC[y] + by_rid(y,:fixed_om_cost_discharge_dc_per_mwyr)*eTotalCapDischarge_DC[y]
else
- by_rid(y,:Fixed_OM_Cost_Discharge_DC_per_MWyr)*eTotalCapDischarge_DC[y]
+ by_rid(y,:fixed_om_cost_discharge_dc_per_mwyr)*eTotalCapDischarge_DC[y]
end
)
@@ -1532,7 +1539,7 @@ function investment_charge_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
# Constraint 0: Existing capacity variable is equal to existing capacity specified in the input file
if MultiStage == 1
- @constraint(EP, cExistingCapDischargeDC[y in VS_ASYM_DC_DISCHARGE], EP[:vEXISTINGCAPDISCHARGEDC][y] == by_rid(y,:Existing_Cap_Discharge_DC_MW))
+ @constraint(EP, cExistingCapDischargeDC[y in VS_ASYM_DC_DISCHARGE], EP[:vEXISTINGCAPDISCHARGEDC][y] == by_rid(y,:existing_cap_discharge_dc_mw))
end
# Constraints 1: Retirements and capacity additions
@@ -1553,8 +1560,8 @@ function investment_charge_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
end
if !isempty(VS_ASYM_DC_CHARGE)
- MAX_DC_CHARGE = intersect(dfVRE_STOR[dfVRE_STOR.Max_Cap_Charge_DC_MW.>=0,:R_ID], VS_ASYM_DC_CHARGE)
- MIN_DC_CHARGE = intersect(dfVRE_STOR[dfVRE_STOR.Min_Cap_Charge_DC_MW.>0,:R_ID], VS_ASYM_DC_CHARGE)
+ MAX_DC_CHARGE = intersect(ids_with_nonneg(gen_VRE_STOR, max_cap_charge_dc_mw), VS_ASYM_DC_CHARGE)
+ MIN_DC_CHARGE = intersect(ids_with_positive(gen_VRE_STOR, min_cap_charge_dc_mw), VS_ASYM_DC_CHARGE)
### VARIABLES ###
@variables(EP, begin
@@ -1572,7 +1579,7 @@ function investment_charge_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
if MultiStage == 1
@expression(EP, eExistingCapChargeDC[y in VS_ASYM_DC_CHARGE], vEXISTINGCAPCHARGEDC[y])
else
- @expression(EP, eExistingCapChargeDC[y in VS_ASYM_DC_CHARGE], by_rid(y,:Existing_Cap_Charge_DC_MW))
+ @expression(EP, eExistingCapChargeDC[y in VS_ASYM_DC_CHARGE], by_rid(y,:existing_cap_charge_dc_mw))
end
# 1. Total storage charge DC capacity
@@ -1593,9 +1600,9 @@ function investment_charge_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
# If resource is not eligible for new charge DC capacity, fixed costs are only O&M costs
@expression(EP, eCFixCharge_DC[y in VS_ASYM_DC_CHARGE],
if y in NEW_CAP_CHARGE_DC # Resources eligible for new charge DC capacity
- by_rid(y,:Inv_Cost_Charge_DC_per_MWyr)*vCAPCHARGE_DC[y] + by_rid(y,:Fixed_OM_Cost_Charge_DC_per_MWyr)*eTotalCapCharge_DC[y]
+ by_rid(y,:inv_cost_charge_dc_per_mwyr)*vCAPCHARGE_DC[y] + by_rid(y,:fixed_om_cost_charge_dc_per_mwyr)*eTotalCapCharge_DC[y]
else
- by_rid(y,:Fixed_OM_Cost_Charge_DC_per_MWyr)*eTotalCapCharge_DC[y]
+ by_rid(y,:fixed_om_cost_charge_dc_per_mwyr)*eTotalCapCharge_DC[y]
end
)
@@ -1620,10 +1627,10 @@ function investment_charge_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
@constraint(EP, cVreStorMaxRetChargeDC[y in RET_CAP_CHARGE_DC], vRETCAPCHARGE_DC[y] <= eExistingCapChargeDC[y])
# Constraint on maximum charge DC capacity (if applicable) [set input to -1 if no constraint on maximum charge capacity]
# DEV NOTE: This constraint may be violated in some cases where Existing_Charge_Cap_MW is >= Max_Charge_Cap_MWh and lead to infeasabilty
- @constraint(EP, cVreStorMaxCapChargeDC[y in MAX_DC_CHARGE], eTotalCapCharge_DC[y] <= by_rid(y,:Max_Cap_Charge_DC_MW))
+ @constraint(EP, cVreStorMaxCapChargeDC[y in MAX_DC_CHARGE], eTotalCapCharge_DC[y] <= by_rid(y,:max_cap_charge_dc_mw))
# Constraint on minimum charge DC capacity (if applicable) [set input to -1 if no constraint on minimum charge capacity]
# DEV NOTE: This constraint may be violated in some cases where Existing_Charge_Cap_MW is <= Min_Charge_Cap_MWh and lead to infeasabilty
- @constraint(EP, cVreStorMinCapChargeDC[y in MIN_DC_CHARGE], eTotalCapCharge_DC[y] >= by_rid(y,:Min_Cap_Charge_DC_MW))
+ @constraint(EP, cVreStorMinCapChargeDC[y in MIN_DC_CHARGE], eTotalCapCharge_DC[y] >= by_rid(y,:min_cap_charge_dc_mw))
# Constraint 2: Maximum charging must be less than charge power rating
@expression(EP, eVreStorMaxChargingDC[y in VS_ASYM_DC_CHARGE, t=1:T], JuMP.AffExpr())
@@ -1633,8 +1640,8 @@ function investment_charge_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
end
if !isempty(VS_ASYM_AC_DISCHARGE)
- MAX_AC_DISCHARGE = intersect(dfVRE_STOR[dfVRE_STOR.Max_Cap_Discharge_AC_MW.>=0,:R_ID], VS_ASYM_AC_DISCHARGE)
- MIN_AC_DISCHARGE = intersect(dfVRE_STOR[dfVRE_STOR.Min_Cap_Discharge_AC_MW.>0,:R_ID], VS_ASYM_AC_DISCHARGE)
+ MAX_AC_DISCHARGE = intersect(ids_with_nonneg(gen_VRE_STOR, max_cap_discharge_ac_mw), VS_ASYM_AC_DISCHARGE)
+ MIN_AC_DISCHARGE = intersect(ids_with_positive(gen_VRE_STOR, min_cap_discharge_ac_mw), VS_ASYM_AC_DISCHARGE)
### VARIABLES ###
@variables(EP, begin
@@ -1652,7 +1659,7 @@ function investment_charge_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
if MultiStage == 1
@expression(EP, eExistingCapDischargeAC[y in VS_ASYM_AC_DISCHARGE], vEXISTINGCAPDISCHARGEAC[y])
else
- @expression(EP, eExistingCapDischargeAC[y in VS_ASYM_AC_DISCHARGE], by_rid(y,:Existing_Cap_Discharge_AC_MW))
+ @expression(EP, eExistingCapDischargeAC[y in VS_ASYM_AC_DISCHARGE], by_rid(y,:existing_cap_discharge_ac_mw))
end
# 1. Total storage discharge AC capacity
@@ -1673,9 +1680,9 @@ function investment_charge_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
# If resource is not eligible for new discharge AC capacity, fixed costs are only O&M costs
@expression(EP, eCFixDischarge_AC[y in VS_ASYM_AC_DISCHARGE],
if y in NEW_CAP_DISCHARGE_AC # Resources eligible for new discharge AC capacity
- by_rid(y,:Inv_Cost_Discharge_AC_per_MWyr)*vCAPDISCHARGE_AC[y] + by_rid(y,:Fixed_OM_Cost_Discharge_AC_per_MWyr)*eTotalCapDischarge_AC[y]
+ by_rid(y,:inv_cost_discharge_ac_per_mwyr)*vCAPDISCHARGE_AC[y] + by_rid(y,:fixed_om_cost_discharge_ac_per_mwyr)*eTotalCapDischarge_AC[y]
else
- by_rid(y,:Fixed_OM_Cost_Discharge_AC_per_MWyr)*eTotalCapDischarge_AC[y]
+ by_rid(y,:fixed_om_cost_discharge_ac_per_mwyr)*eTotalCapDischarge_AC[y]
end
)
@@ -1692,7 +1699,7 @@ function investment_charge_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
# Constraint 0: Existing capacity variable is equal to existing capacity specified in the input file
if MultiStage == 1
- @constraint(EP, cExistingCapDischargeAC[y in VS_ASYM_AC_DISCHARGE], EP[:vEXISTINGCAPDISCHARGEAC][y] == by_rid(y,:Existing_Cap_Discharge_AC_MW))
+ @constraint(EP, cExistingCapDischargeAC[y in VS_ASYM_AC_DISCHARGE], EP[:vEXISTINGCAPDISCHARGEAC][y] == by_rid(y,:existing_cap_discharge_ac_mw))
end
# Constraints 1: Retirements and capacity additions
@@ -1700,10 +1707,10 @@ function investment_charge_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
@constraint(EP, cVreStorMaxRetDischargeAC[y in RET_CAP_DISCHARGE_AC], vRETCAPDISCHARGE_AC[y] <= eExistingCapDischargeAC[y])
# Constraint on maximum discharge AC capacity (if applicable) [set input to -1 if no constraint on maximum charge capacity]
# DEV NOTE: This constraint may be violated in some cases where Existing_Charge_Cap_MW is >= Max_Charge_Cap_MWh and lead to infeasabilty
- @constraint(EP, cVreStorMaxCapDischargeAC[y in MAX_AC_DISCHARGE], eTotalCapDischarge_AC[y] <= by_rid(y,:Max_Cap_Discharge_AC_MW))
+ @constraint(EP, cVreStorMaxCapDischargeAC[y in MAX_AC_DISCHARGE], eTotalCapDischarge_AC[y] <= by_rid(y,:max_cap_discharge_ac_mw))
# Constraint on minimum discharge AC capacity (if applicable) [set input to -1 if no constraint on minimum charge capacity]
# DEV NOTE: This constraint may be violated in some cases where Existing_Charge_Cap_MW is <= Min_Charge_Cap_MWh and lead to infeasabilty
- @constraint(EP, cVreStorMinCapDischargeAC[y in MIN_AC_DISCHARGE], eTotalCapDischarge_AC[y] >= by_rid(y,:Min_Cap_Discharge_AC_MW))
+ @constraint(EP, cVreStorMinCapDischargeAC[y in MIN_AC_DISCHARGE], eTotalCapDischarge_AC[y] >= by_rid(y,:min_cap_discharge_ac_mw))
# Constraint 2: Maximum discharging rate must be less than discharge power rating
@expression(EP, eVreStorMaxDischargingAC[y in VS_ASYM_AC_DISCHARGE, t=1:T], JuMP.AffExpr())
@@ -1713,8 +1720,8 @@ function investment_charge_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
end
if !isempty(VS_ASYM_AC_CHARGE)
- MAX_AC_CHARGE = intersect(dfVRE_STOR[dfVRE_STOR.Max_Cap_Charge_AC_MW.>=0,:R_ID], VS_ASYM_AC_CHARGE)
- MIN_AC_CHARGE = intersect(dfVRE_STOR[dfVRE_STOR.Min_Cap_Charge_AC_MW.>0,:R_ID], VS_ASYM_AC_CHARGE)
+ MAX_AC_CHARGE = intersect(ids_with_nonneg(gen_VRE_STOR, max_cap_charge_ac_mw), VS_ASYM_AC_CHARGE)
+ MIN_AC_CHARGE = intersect(ids_with_positive(gen_VRE_STOR, min_cap_charge_ac_mw), VS_ASYM_AC_CHARGE)
### VARIABLES ###
@variables(EP, begin
@@ -1732,7 +1739,7 @@ function investment_charge_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
if MultiStage == 1
@expression(EP, eExistingCapChargeAC[y in VS_ASYM_AC_CHARGE], vEXISTINGCAPCHARGEAC[y])
else
- @expression(EP, eExistingCapChargeAC[y in VS_ASYM_AC_CHARGE], by_rid(y,:Existing_Cap_Charge_AC_MW))
+ @expression(EP, eExistingCapChargeAC[y in VS_ASYM_AC_CHARGE], by_rid(y,:existing_cap_charge_ac_mw))
end
# 1. Total storage charge AC capacity
@@ -1753,9 +1760,9 @@ function investment_charge_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
# If resource is not eligible for new charge AC capacity, fixed costs are only O&M costs
@expression(EP, eCFixCharge_AC[y in VS_ASYM_AC_CHARGE],
if y in NEW_CAP_CHARGE_AC # Resources eligible for new charge AC capacity
- by_rid(y,:Inv_Cost_Charge_AC_per_MWyr)*vCAPCHARGE_AC[y] + by_rid(y,:Fixed_OM_Cost_Charge_AC_per_MWyr)*eTotalCapCharge_AC[y]
+ by_rid(y,:inv_cost_charge_ac_per_mwyr)*vCAPCHARGE_AC[y] + by_rid(y,:fixed_om_cost_charge_ac_per_mwyr)*eTotalCapCharge_AC[y]
else
- by_rid(y,:Fixed_OM_Cost_Charge_AC_per_MWyr)*eTotalCapCharge_AC[y]
+ by_rid(y,:fixed_om_cost_charge_ac_per_mwyr)*eTotalCapCharge_AC[y]
end
)
@@ -1772,7 +1779,7 @@ function investment_charge_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
# Constraint 0: Existing capacity variable is equal to existing capacity specified in the input file
if MultiStage == 1
- @constraint(EP, cExistingCapChargeAC[y in VS_ASYM_AC_CHARGE], EP[:vEXISTINGCAPCHARGEAC][y] == by_rid(y,:Existing_Cap_Charge_AC_MW))
+ @constraint(EP, cExistingCapChargeAC[y in VS_ASYM_AC_CHARGE], EP[:vEXISTINGCAPCHARGEAC][y] == by_rid(y,:existing_cap_charge_ac_mw))
end
# Constraints 1: Retirements and capacity additions
@@ -1780,10 +1787,10 @@ function investment_charge_vre_stor!(EP::Model, inputs::Dict, setup::Dict)
@constraint(EP, cVreStorMaxRetChargeAC[y in RET_CAP_CHARGE_AC], vRETCAPCHARGE_AC[y] <= eExistingCapChargeAC[y])
# Constraint on maximum charge AC capacity (if applicable) [set input to -1 if no constraint on maximum charge capacity]
# DEV NOTE: This constraint may be violated in some cases where Existing_Charge_Cap_MW is >= Max_Charge_Cap_MWh and lead to infeasabilty
- @constraint(EP, cVreStorMaxCapChargeAC[y in MAX_AC_CHARGE], eTotalCapCharge_AC[y] <= by_rid(y,:Max_Cap_Charge_AC_MW))
+ @constraint(EP, cVreStorMaxCapChargeAC[y in MAX_AC_CHARGE], eTotalCapCharge_AC[y] <= by_rid(y,:max_cap_charge_ac_mw))
# Constraint on minimum charge AC capacity (if applicable) [set input to -1 if no constraint on minimum charge capacity]
# DEV NOTE: This constraint may be violated in some cases where Existing_Charge_Cap_MW is <= Min_Charge_Cap_MWh and lead to infeasabilty
- @constraint(EP, cVreStorMinCapChargeAC[y in MIN_AC_CHARGE], eTotalCapCharge_AC[y] >= by_rid(y,:Min_Cap_Charge_AC_MW))
+ @constraint(EP, cVreStorMinCapChargeAC[y in MIN_AC_CHARGE], eTotalCapCharge_AC[y] >= by_rid(y,:min_cap_charge_ac_mw))
# Constraint 2: Maximum charging rate must be less than charge power rating
@expression(EP, eVreStorMaxChargingAC[y in VS_ASYM_AC_CHARGE, t=1:T], JuMP.AffExpr())
@@ -1873,8 +1880,8 @@ function vre_stor_capres!(EP::Model, inputs::Dict, setup::Dict)
### LOAD DATA ###
T = inputs["T"]
- dfGen = inputs["dfGen"]
- dfVRE_STOR = inputs["dfVRE_STOR"]
+ gen = inputs["RESOURCES"]
+ gen_VRE_STOR = gen.VreStorage
STOR = inputs["VS_STOR"]
DC_DISCHARGE = inputs["VS_STOR_DC_DISCHARGE"]
DC_CHARGE = inputs["VS_STOR_DC_CHARGE"]
@@ -1893,10 +1900,10 @@ function vre_stor_capres!(EP::Model, inputs::Dict, setup::Dict)
hours_per_subperiod = inputs["hours_per_subperiod"] # total number of hours per subperiod
rep_periods = inputs["REP_PERIOD"]
- by_rid(rid, sym) = by_rid_df(rid, sym, dfVRE_STOR)
-
virtual_discharge_cost = inputs["VirtualChargeDischargeCost"]
+ by_rid(rid, sym) = by_rid_res(rid, sym, gen_VRE_STOR)
+
### VARIABLES ###
@variables(EP, begin
@@ -1930,10 +1937,10 @@ function vre_stor_capres!(EP::Model, inputs::Dict, setup::Dict)
# Virtual State of Charge Expressions
@expression(EP, eVreStorVSoCBalStart[y in CONSTRAINTSET, t in START_SUBPERIODS],
EP[:vCAPRES_VS_VRE_STOR][y,t+hours_per_subperiod-1]
- - dfGen[y,:Self_Disch]*EP[:vCAPRES_VS_VRE_STOR][y,t+hours_per_subperiod-1])
+ - self_discharge(gen[y])*EP[:vCAPRES_VS_VRE_STOR][y,t+hours_per_subperiod-1])
@expression(EP, eVreStorVSoCBalInterior[y in STOR, t in INTERIOR_SUBPERIODS],
EP[:vCAPRES_VS_VRE_STOR][y,t-1]
- - dfGen[y,:Self_Disch]*EP[:vCAPRES_VS_VRE_STOR][y,t-1])
+ - self_discharge(gen[y])*EP[:vCAPRES_VS_VRE_STOR][y,t-1])
DC_DISCHARGE_CONSTRAINTSET = intersect(CONSTRAINTSET, DC_DISCHARGE)
DC_CHARGE_CONSTRAINTSET = intersect(CONSTRAINTSET, DC_CHARGE)
@@ -1941,43 +1948,43 @@ function vre_stor_capres!(EP::Model, inputs::Dict, setup::Dict)
AC_CHARGE_CONSTRAINTSET = intersect(CONSTRAINTSET, AC_CHARGE)
for t in START_SUBPERIODS
for y in DC_DISCHARGE_CONSTRAINTSET
- eVreStorVSoCBalStart[y,t] += EP[:vCAPRES_DC_DISCHARGE][y,t]/by_rid(y,:Eff_Down_DC)
+ eVreStorVSoCBalStart[y,t] += EP[:vCAPRES_DC_DISCHARGE][y,t]/by_rid(y,:eff_down_dc)
end
for y in DC_CHARGE_CONSTRAINTSET
- eVreStorVSoCBalStart[y,t] -= by_rid(y,:Eff_Up_DC)*EP[:vCAPRES_DC_CHARGE][y,t]
+ eVreStorVSoCBalStart[y,t] -= by_rid(y,:eff_up_dc)*EP[:vCAPRES_DC_CHARGE][y,t]
end
for y in AC_DISCHARGE_CONSTRAINTSET
- eVreStorVSoCBalStart[y,t] += EP[:vCAPRES_AC_DISCHARGE][y,t]/by_rid(y,:Eff_Down_AC)
+ eVreStorVSoCBalStart[y,t] += EP[:vCAPRES_AC_DISCHARGE][y,t]/by_rid(y,:eff_down_ac)
end
for y in AC_CHARGE_CONSTRAINTSET
- eVreStorVSoCBalStart[y,t] -= by_rid(y,:Eff_Up_AC)*EP[:vCAPRES_AC_CHARGE][y,t]
+ eVreStorVSoCBalStart[y,t] -= by_rid(y,:eff_up_ac)*EP[:vCAPRES_AC_CHARGE][y,t]
end
end
for t in INTERIOR_SUBPERIODS
for y in DC_DISCHARGE
- eVreStorVSoCBalInterior[y,t] += EP[:vCAPRES_DC_DISCHARGE][y,t]/by_rid(y,:Eff_Down_DC)
+ eVreStorVSoCBalInterior[y,t] += EP[:vCAPRES_DC_DISCHARGE][y,t]/by_rid(y,:eff_down_dc)
end
for y in DC_CHARGE
- eVreStorVSoCBalInterior[y,t] -= by_rid(y,:Eff_Up_DC)*EP[:vCAPRES_DC_CHARGE][y,t]
+ eVreStorVSoCBalInterior[y,t] -= by_rid(y,:eff_up_dc)*EP[:vCAPRES_DC_CHARGE][y,t]
end
for y in AC_DISCHARGE
- eVreStorVSoCBalInterior[y,t] += EP[:vCAPRES_AC_DISCHARGE][y,t]/by_rid(y,:Eff_Down_AC)
+ eVreStorVSoCBalInterior[y,t] += EP[:vCAPRES_AC_DISCHARGE][y,t]/by_rid(y,:eff_down_ac)
end
for y in AC_CHARGE
- eVreStorVSoCBalInterior[y,t] -= by_rid(y,:Eff_Up_AC)*EP[:vCAPRES_AC_CHARGE][y,t]
+ eVreStorVSoCBalInterior[y,t] -= by_rid(y,:eff_up_ac)*EP[:vCAPRES_AC_CHARGE][y,t]
end
end
# Inverter & grid connection export additions
for t=1:T
for y in DC_DISCHARGE
- EP[:eInverterExport][y,t] += by_rid(y,:EtaInverter)*vCAPRES_DC_DISCHARGE[y,t]
- EP[:eGridExport][y,t] += by_rid(y,:EtaInverter)*vCAPRES_DC_DISCHARGE[y,t]
+ EP[:eInverterExport][y,t] += by_rid(y,:etainverter)*vCAPRES_DC_DISCHARGE[y,t]
+ EP[:eGridExport][y,t] += by_rid(y,:etainverter)*vCAPRES_DC_DISCHARGE[y,t]
end
for y in DC_CHARGE
- EP[:eInverterExport][y,t] += vCAPRES_DC_CHARGE[y,t]/by_rid(y,:EtaInverter)
- EP[:eGridExport][y,t] += vCAPRES_DC_CHARGE[y,t]/by_rid(y,:EtaInverter)
+ EP[:eInverterExport][y,t] += vCAPRES_DC_CHARGE[y,t]/by_rid(y,:etainverter)
+ EP[:eGridExport][y,t] += vCAPRES_DC_CHARGE[y,t]/by_rid(y,:etainverter)
end
for y in AC_DISCHARGE
EP[:eGridExport][y,t] += vCAPRES_AC_DISCHARGE[y,t]
@@ -2023,26 +2030,26 @@ function vre_stor_capres!(EP::Model, inputs::Dict, setup::Dict)
# Constraint 3: Add capacity reserve margin contributions from VRE-STOR resources to capacity reserve margin constraint
@expression(EP, eCapResMarBalanceStor_VRE_STOR[res=1:inputs["NCapacityReserveMargin"], t=1:T],(
- sum(by_rid(y,Symbol("CapResVreStor_$res"))*by_rid(y,:EtaInverter)*inputs["pP_Max_Solar"][y,t]*EP[:eTotalCap_SOLAR][y] for y in inputs["VS_SOLAR"])
- + sum(by_rid(y,Symbol("CapResVreStor_$res"))*inputs["pP_Max_Wind"][y,t]*EP[:eTotalCap_WIND][y] for y in inputs["VS_WIND"])
- + sum(by_rid(y,Symbol("CapResVreStor_$res"))*by_rid(y,:EtaInverter)*(EP[:vP_DC_DISCHARGE][y,t]+vCAPRES_DC_DISCHARGE[y,t]) for y in DC_DISCHARGE)
- + sum(by_rid(y,Symbol("CapResVreStor_$res"))*(EP[:vP_AC_DISCHARGE][y,t]+vCAPRES_AC_DISCHARGE[y,t]) for y in AC_DISCHARGE)
- - sum(by_rid(y,Symbol("CapResVreStor_$res"))*(EP[:vP_DC_CHARGE][y,t]+vCAPRES_DC_CHARGE[y,t])/by_rid(y,:EtaInverter) for y in DC_CHARGE)
- - sum(by_rid(y,Symbol("CapResVreStor_$res"))*(EP[:vP_AC_CHARGE][y,t]+vCAPRES_AC_CHARGE[y,t]) for y in AC_CHARGE)))
+ sum(derating_factor(gen[y],tag=res)*by_rid(y,:etainverter)*inputs["pP_Max_Solar"][y,t]*EP[:eTotalCap_SOLAR][y] for y in inputs["VS_SOLAR"])
+ + sum(derating_factor(gen[y],tag=res)*inputs["pP_Max_Wind"][y,t]*EP[:eTotalCap_WIND][y] for y in inputs["VS_WIND"])
+ + sum(derating_factor(gen[y],tag=res)*by_rid(y,:etainverter)*(EP[:vP_DC_DISCHARGE][y,t]+vCAPRES_DC_DISCHARGE[y,t]) for y in DC_DISCHARGE)
+ + sum(derating_factor(gen[y],tag=res)*(EP[:vP_AC_DISCHARGE][y,t]+vCAPRES_AC_DISCHARGE[y,t]) for y in AC_DISCHARGE)
+ - sum(derating_factor(gen[y],tag=res)*(EP[:vP_DC_CHARGE][y,t]+vCAPRES_DC_CHARGE[y,t])/by_rid(y,:etainverter) for y in DC_CHARGE)
+ - sum(derating_factor(gen[y],tag=res)*(EP[:vP_AC_CHARGE][y,t]+vCAPRES_AC_CHARGE[y,t]) for y in AC_CHARGE)))
EP[:eCapResMarBalance] += EP[:eCapResMarBalanceStor_VRE_STOR]
### OBJECTIVE FUNCTION ADDITIONS ###
#Variable costs of DC "virtual charging" for technologies "y" during hour "t" in zone "z"
@expression(EP, eCVar_Charge_DC_virtual[y in DC_CHARGE,t=1:T],
- inputs["omega"][t]*virtual_discharge_cost*vCAPRES_DC_CHARGE[y,t]/by_rid(y,:EtaInverter))
+ inputs["omega"][t]*virtual_discharge_cost*vCAPRES_DC_CHARGE[y,t]/by_rid(y,:etainverter))
@expression(EP, eTotalCVar_Charge_DC_T_virtual[t=1:T], sum(eCVar_Charge_DC_virtual[y,t] for y in DC_CHARGE))
@expression(EP, eTotalCVar_Charge_DC_virtual, sum(eTotalCVar_Charge_DC_T_virtual[t] for t in 1:T))
EP[:eObj] += eTotalCVar_Charge_DC_virtual
#Variable costs of DC "virtual discharging" for technologies "y" during hour "t" in zone "z"
@expression(EP, eCVar_Discharge_DC_virtual[y in DC_DISCHARGE,t=1:T],
- inputs["omega"][t]*virtual_discharge_cost*by_rid(y,:EtaInverter)*vCAPRES_DC_DISCHARGE[y,t])
+ inputs["omega"][t]*virtual_discharge_cost*by_rid(y,:etainverter)*vCAPRES_DC_DISCHARGE[y,t])
@expression(EP, eTotalCVar_Discharge_DC_T_virtual[t=1:T], sum(eCVar_Discharge_DC_virtual[y,t] for y in DC_DISCHARGE))
@expression(EP, eTotalCVar_Discharge_DC_virtual, sum(eTotalCVar_Discharge_DC_T_virtual[t] for t in 1:T))
EP[:eObj] += eTotalCVar_Discharge_DC_virtual
@@ -2085,7 +2092,7 @@ function vre_stor_capres!(EP::Model, inputs::Dict, setup::Dict)
### EXPRESSIONS ###
@expression(EP, eVreStorVSoCBalLongDurationStorageStart[y in VS_LDS, w=1:REP_PERIOD],
- (1-dfGen[y,:Self_Disch])*(EP[:vCAPRES_VS_VRE_STOR][y,hours_per_subperiod*w]-vCAPCONTRSTOR_VdSOC_VRE_STOR[y,w]))
+ (1-self_discharge(gen[y]))*(EP[:vCAPRES_VS_VRE_STOR][y,hours_per_subperiod*w]-vCAPCONTRSTOR_VdSOC_VRE_STOR[y,w]))
DC_DISCHARGE_CONSTRAINTSET = intersect(DC_DISCHARGE, VS_LDS)
DC_CHARGE_CONSTRAINTSET = intersect(DC_CHARGE, VS_LDS)
@@ -2093,16 +2100,16 @@ function vre_stor_capres!(EP::Model, inputs::Dict, setup::Dict)
AC_CHARGE_CONSTRAINTSET = intersect(AC_CHARGE, VS_LDS)
for w=1:REP_PERIOD
for y in DC_DISCHARGE_CONSTRAINTSET
- eVreStorVSoCBalLongDurationStorageStart[y,w] += EP[:vCAPRES_DC_DISCHARGE][y,hours_per_subperiod*(w-1)+1]/by_rid(y,:Eff_Down_DC)
+ eVreStorVSoCBalLongDurationStorageStart[y,w] += EP[:vCAPRES_DC_DISCHARGE][y,hours_per_subperiod*(w-1)+1]/by_rid(y,:eff_down_dc)
end
for y in DC_CHARGE_CONSTRAINTSET
- eVreStorVSoCBalLongDurationStorageStart[y,w] -= by_rid(y,:Eff_Up_DC)*EP[:vCAPRES_DC_CHARGE][y,hours_per_subperiod*(w-1)+1]
+ eVreStorVSoCBalLongDurationStorageStart[y,w] -= by_rid(y,:eff_up_dc)*EP[:vCAPRES_DC_CHARGE][y,hours_per_subperiod*(w-1)+1]
end
for y in AC_DISCHARGE_CONSTRAINTSET
- eVreStorVSoCBalLongDurationStorageStart[y,w] += EP[:vCAPRES_AC_DISCHARGE][y,hours_per_subperiod*(w-1)+1]/by_rid(y,:Eff_Down_AC)
+ eVreStorVSoCBalLongDurationStorageStart[y,w] += EP[:vCAPRES_AC_DISCHARGE][y,hours_per_subperiod*(w-1)+1]/by_rid(y,:eff_down_ac)
end
for y in AC_CHARGE_CONSTRAINTSET
- eVreStorVSoCBalLongDurationStorageStart[y,w] -= by_rid(y,:Eff_Up_AC)*EP[:vCAPRES_AC_CHARGE][y,hours_per_subperiod*(w-1)+1]
+ eVreStorVSoCBalLongDurationStorageStart[y,w] -= by_rid(y,:eff_up_ac)*EP[:vCAPRES_AC_CHARGE][y,hours_per_subperiod*(w-1)+1]
end
end
@@ -2217,7 +2224,9 @@ function vre_stor_reserves!(EP::Model, inputs::Dict, setup::Dict)
### LOAD DATA & CREATE SETS ###
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
+ gen_VRE_STOR = gen.VreStorage
+
T = inputs["T"]
VRE_STOR = inputs["VRE_STOR"]
STOR = inputs["VS_STOR"]
@@ -2271,7 +2280,7 @@ function vre_stor_reserves!(EP::Model, inputs::Dict, setup::Dict)
VS_SYM_AC_REG = intersect(VS_SYM_AC, STOR_REG) # Set of symmetric AC resources with REG reserves
VS_SYM_AC_RSV = intersect(VS_SYM_AC, STOR_RSV) # Set of symmetric AC resources with RSV reserves
- by_rid(rid, sym) = by_rid_df(rid, sym, inputs["dfVRE_STOR"])
+ by_rid(rid, sym) = by_rid_res(rid, sym, gen_VRE_STOR)
### VARIABLES ###
@@ -2307,34 +2316,34 @@ function vre_stor_reserves!(EP::Model, inputs::Dict, setup::Dict)
for t=1:T
for y in DC_DISCHARGE
eDischargeDCMin[y,t] += EP[:vP_DC_DISCHARGE][y,t]
- eDischargeMax[y,t] += EP[:vP_DC_DISCHARGE][y,t]/by_rid(y,:Eff_Down_DC)
+ eDischargeMax[y,t] += EP[:vP_DC_DISCHARGE][y,t]/by_rid(y,:eff_down_dc)
end
for y in DC_CHARGE
eChargeDCMin[y,t] += EP[:vP_DC_CHARGE][y,t]
- eChargeMax[y,t] += by_rid(y,:Eff_Up_DC)*EP[:vP_DC_CHARGE][y,t]
+ eChargeMax[y,t] += by_rid(y,:eff_up_dc)*EP[:vP_DC_CHARGE][y,t]
end
for y in AC_DISCHARGE
eDischargeACMin[y,t] += EP[:vP_AC_DISCHARGE][y,t]
- eDischargeMax[y,t] += EP[:vP_AC_DISCHARGE][y,t]/by_rid(y,:Eff_Down_AC)
+ eDischargeMax[y,t] += EP[:vP_AC_DISCHARGE][y,t]/by_rid(y,:eff_down_ac)
end
for y in AC_CHARGE
eChargeACMin[y,t] += EP[:vP_AC_CHARGE][y,t]
- eChargeMax[y,t] += by_rid(y,:Eff_Up_AC)*EP[:vP_AC_CHARGE][y,t]
+ eChargeMax[y,t] += by_rid(y,:eff_up_ac)*EP[:vP_AC_CHARGE][y,t]
end
for y in SOLAR_REG
- eVreStorRegOnlyBalance[y,t] += by_rid(y,:EtaInverter)*vREG_SOLAR[y,t]
- EP[:eGridExport][y,t] += by_rid(y,:EtaInverter)*vREG_SOLAR[y,t]
- EP[:eInverterExport][y,t] += by_rid(y,:EtaInverter)*vREG_SOLAR[y,t]
+ eVreStorRegOnlyBalance[y,t] += by_rid(y,:etainverter)*vREG_SOLAR[y,t]
+ EP[:eGridExport][y,t] += by_rid(y,:etainverter)*vREG_SOLAR[y,t]
+ EP[:eInverterExport][y,t] += by_rid(y,:etainverter)*vREG_SOLAR[y,t]
EP[:eSolarGenMaxS][y,t] += vREG_SOLAR[y,t]
end
for y in SOLAR_RSV
- eVreStorRsvOnlyBalance[y,t] += by_rid(y,:EtaInverter)*vRSV_SOLAR[y,t]
- EP[:eGridExport][y,t] += by_rid(y,:EtaInverter)*vRSV_SOLAR[y,t]
- EP[:eInverterExport][y,t] += by_rid(y,:EtaInverter)*vRSV_SOLAR[y,t]
+ eVreStorRsvOnlyBalance[y,t] += by_rid(y,:etainverter)*vRSV_SOLAR[y,t]
+ EP[:eGridExport][y,t] += by_rid(y,:etainverter)*vRSV_SOLAR[y,t]
+ EP[:eInverterExport][y,t] += by_rid(y,:etainverter)*vRSV_SOLAR[y,t]
EP[:eSolarGenMaxS][y,t] += vRSV_SOLAR[y,t]
end
@@ -2350,47 +2359,47 @@ function vre_stor_reserves!(EP::Model, inputs::Dict, setup::Dict)
end
for y in DC_DISCHARGE_REG
- eVreStorRegOnlyBalance[y,t] += by_rid(y,:EtaInverter)*vREG_DC_Discharge[y,t]
+ eVreStorRegOnlyBalance[y,t] += by_rid(y,:etainverter)*vREG_DC_Discharge[y,t]
eDischargeDCMin[y,t] -= vREG_DC_Discharge[y,t]
- eDischargeMax[y,t] += EP[:vREG_DC_Discharge][y,t]/by_rid(y,:Eff_Down_DC)
- EP[:eGridExport][y,t] += by_rid(y,:EtaInverter)*vREG_DC_Discharge[y,t]
- EP[:eInverterExport][y,t] += by_rid(y,:EtaInverter)*vREG_DC_Discharge[y,t]
+ eDischargeMax[y,t] += EP[:vREG_DC_Discharge][y,t]/by_rid(y,:eff_down_dc)
+ EP[:eGridExport][y,t] += by_rid(y,:etainverter)*vREG_DC_Discharge[y,t]
+ EP[:eInverterExport][y,t] += by_rid(y,:etainverter)*vREG_DC_Discharge[y,t]
end
for y in DC_DISCHARGE_RSV
- eVreStorRsvOnlyBalance[y,t] += by_rid(y,:EtaInverter)*vRSV_DC_Discharge[y,t]
- eDischargeMax[y,t] += EP[:vRSV_DC_Discharge][y,t]/by_rid(y,:Eff_Down_DC)
- EP[:eGridExport][y,t] += by_rid(y,:EtaInverter)*vRSV_DC_Discharge[y,t]
- EP[:eInverterExport][y,t] += by_rid(y,:EtaInverter)*vRSV_DC_Discharge[y,t]
+ eVreStorRsvOnlyBalance[y,t] += by_rid(y,:etainverter)*vRSV_DC_Discharge[y,t]
+ eDischargeMax[y,t] += EP[:vRSV_DC_Discharge][y,t]/by_rid(y,:eff_down_dc)
+ EP[:eGridExport][y,t] += by_rid(y,:etainverter)*vRSV_DC_Discharge[y,t]
+ EP[:eInverterExport][y,t] += by_rid(y,:etainverter)*vRSV_DC_Discharge[y,t]
end
for y in DC_CHARGE_REG
- eVreStorRegOnlyBalance[y,t] += vREG_DC_Charge[y,t]/by_rid(y,:EtaInverter)
+ eVreStorRegOnlyBalance[y,t] += vREG_DC_Charge[y,t]/by_rid(y,:etainverter)
eChargeDCMin[y,t] -= vREG_DC_Charge[y,t]
- eChargeMax[y,t] += by_rid(y,:Eff_Up_DC)*EP[:vREG_DC_Charge][y,t]
- EP[:eGridExport][y,t] += vREG_DC_Charge[y,t]/by_rid(y,:EtaInverter)
- EP[:eInverterExport][y,t] += vREG_DC_Charge[y,t]/by_rid(y,:EtaInverter)
+ eChargeMax[y,t] += by_rid(y,:eff_up_dc)*EP[:vREG_DC_Charge][y,t]
+ EP[:eGridExport][y,t] += vREG_DC_Charge[y,t]/by_rid(y,:etainverter)
+ EP[:eInverterExport][y,t] += vREG_DC_Charge[y,t]/by_rid(y,:etainverter)
end
for y in DC_CHARGE_RSV
- eVreStorRsvOnlyBalance[y,t] += vRSV_DC_Charge[y,t]/by_rid(y,:EtaInverter)
+ eVreStorRsvOnlyBalance[y,t] += vRSV_DC_Charge[y,t]/by_rid(y,:etainverter)
eChargeDCMin[y,t] -= vRSV_DC_Charge[y,t]
end
for y in AC_DISCHARGE_REG
eVreStorRegOnlyBalance[y,t] += vREG_AC_Discharge[y,t]
eDischargeACMin[y,t] -= vREG_AC_Discharge[y,t]
- eDischargeMax[y,t] += EP[:vREG_AC_Discharge][y,t]/by_rid(y,:Eff_Down_AC)
+ eDischargeMax[y,t] += EP[:vREG_AC_Discharge][y,t]/by_rid(y,:eff_down_ac)
EP[:eGridExport][y,t] += vREG_AC_Discharge[y,t]
end
for y in AC_DISCHARGE_RSV
eVreStorRsvOnlyBalance[y,t] += vRSV_AC_Discharge[y,t]
- eDischargeMax[y,t] += EP[:vRSV_AC_Discharge][y,t]/by_rid(y,:Eff_Down_AC)
+ eDischargeMax[y,t] += EP[:vRSV_AC_Discharge][y,t]/by_rid(y,:eff_down_ac)
EP[:eGridExport][y,t] += vRSV_AC_Discharge[y,t]
end
for y in AC_CHARGE_REG
eVreStorRegOnlyBalance[y,t] += vREG_AC_Charge[y,t]
eChargeACMin[y,t] -= vREG_AC_Charge[y,t]
- eChargeMax[y,t] += by_rid(y,:Eff_Down_AC)*EP[:vREG_AC_Charge][y,t]
+ eChargeMax[y,t] += by_rid(y,:eff_down_ac)*EP[:vREG_AC_Charge][y,t]
EP[:eGridExport][y,t] += vREG_AC_Charge[y,t]
end
for y in AC_CHARGE_RSV
@@ -2440,10 +2449,10 @@ function vre_stor_reserves!(EP::Model, inputs::Dict, setup::Dict)
if CapacityReserveMargin > 0
for t=1:T
for y in DC_DISCHARGE
- eDischargeMax[y,t] += EP[:vCAPRES_DC_DISCHARGE][y,t]/by_rid(y,:Eff_Down_DC)
+ eDischargeMax[y,t] += EP[:vCAPRES_DC_DISCHARGE][y,t]/by_rid(y,:eff_down_dc)
end
for y in AC_DISCHARGE
- eDischargeMax[y,t] += EP[:vCAPRES_AC_DISCHARGE][y,t]/by_rid(y,:Eff_Down_AC)
+ eDischargeMax[y,t] += EP[:vCAPRES_AC_DISCHARGE][y,t]/by_rid(y,:eff_down_ac)
end
end
end
@@ -2454,8 +2463,8 @@ function vre_stor_reserves!(EP::Model, inputs::Dict, setup::Dict)
if !isempty(VRE_STOR_REG_RSV)
@constraints(EP, begin
# Maximum VRE-STOR contribution to reserves is a specified fraction of installed grid connection capacity
- [y in VRE_STOR_REG_RSV, t=1:T], EP[:vREG][y,t] <= dfGen[y,:Reg_Max]*EP[:eTotalCap][y]
- [y in VRE_STOR_REG_RSV, t=1:T], EP[:vRSV][y,t] <= dfGen[y,:Rsv_Max]*EP[:eTotalCap][y]
+ [y in VRE_STOR_REG_RSV, t=1:T], EP[:vREG][y,t] <= reg_max(gen[y])*EP[:eTotalCap][y]
+ [y in VRE_STOR_REG_RSV, t=1:T], EP[:vRSV][y,t] <= rsv_max(gen[y])*EP[:eTotalCap][y]
# Actual contribution to regulation and reserves is sum of auxilary variables
[y in VRE_STOR_REG_RSV, t=1:T], EP[:vREG][y,t] == eVreStorRegOnlyBalance[y,t]
@@ -2465,7 +2474,7 @@ function vre_stor_reserves!(EP::Model, inputs::Dict, setup::Dict)
if !isempty(VRE_STOR_REG_ONLY)
@constraints(EP, begin
# Maximum VRE-STOR contribution to reserves is a specified fraction of installed grid connection capacity
- [y in VRE_STOR_REG_ONLY, t=1:T], EP[:vREG][y,t] <= dfGen[y,:Reg_Max]*EP[:eTotalCap][y]
+ [y in VRE_STOR_REG_ONLY, t=1:T], EP[:vREG][y,t] <= reg_max(gen[y])*EP[:eTotalCap][y]
# Actual contribution to regulation is sum of auxilary variables
[y in VRE_STOR_REG_ONLY, t=1:T], EP[:vREG][y,t] == eVreStorRegOnlyBalance[y,t]
@@ -2474,7 +2483,7 @@ function vre_stor_reserves!(EP::Model, inputs::Dict, setup::Dict)
if !isempty(VRE_STOR_RSV_ONLY)
@constraints(EP, begin
# Maximum VRE-STOR contribution to reserves is a specified fraction of installed grid connection capacity
- [y in VRE_STOR_RSV_ONLY, t=1:T], EP[:vRSV][y,t] <= dfGen[y,:Rsv_Max]*EP[:eTotalCap][y]
+ [y in VRE_STOR_RSV_ONLY, t=1:T], EP[:vRSV][y,t] <= rsv_max(gen[y])*EP[:eTotalCap][y]
# Actual contribution to reserves is sum of auxilary variables
[y in VRE_STOR_RSV_ONLY, t=1:T], EP[:vRSV][y,t] == eVreStorRsvOnlyBalance[y,t]
@@ -2525,9 +2534,9 @@ function vre_stor_reserves!(EP::Model, inputs::Dict, setup::Dict)
end
# Total system reserve constraints
- @expression(EP, eRegReqVreStor[t=1:T], inputs["pReg_Req_VRE"]*sum(inputs["pP_Max_Solar"][y,t]*EP[:eTotalCap_SOLAR][y]*by_rid(y, :EtaInverter) for y in SOLAR_REG)
+ @expression(EP, eRegReqVreStor[t=1:T], inputs["pReg_Req_VRE"]*sum(inputs["pP_Max_Solar"][y,t]*EP[:eTotalCap_SOLAR][y]*by_rid(y, :etainverter) for y in SOLAR_REG)
+ inputs["pReg_Req_VRE"]*sum(inputs["pP_Max_Wind"][y,t]*EP[:eTotalCap_WIND][y] for y in WIND_REG))
- @expression(EP, eRsvReqVreStor[t=1:T], inputs["pRsv_Req_VRE"]*sum(inputs["pP_Max_Solar"][y,t]*EP[:eTotalCap_SOLAR][y]*by_rid(y, :EtaInverter) for y in SOLAR_RSV)
+ @expression(EP, eRsvReqVreStor[t=1:T], inputs["pRsv_Req_VRE"]*sum(inputs["pP_Max_Solar"][y,t]*EP[:eTotalCap_SOLAR][y]*by_rid(y, :etainverter) for y in SOLAR_RSV)
+ inputs["pRsv_Req_VRE"]*sum(inputs["pP_Max_Wind"][y,t]*EP[:eTotalCap_WIND][y] for y in WIND_RSV))
if !isempty(VRE_STOR_REG)
diff --git a/src/model/utility.jl b/src/model/utility.jl
index 22a3a3ede2..58ef20231f 100644
--- a/src/model/utility.jl
+++ b/src/model/utility.jl
@@ -67,21 +67,19 @@ function is_nonzero(df::DataFrame, col::Symbol)::BitVector
convert(BitVector, df[!, col] .> 0)::BitVector
end
-@doc raw"""
- by_rid_df(rid::Integer, sym::Symbol, df::DataFrame)
-
- This function extracts the row of a DataFrame df for the resource given by the resource ID "rid".
-"""
-function by_rid_df(rid::Integer, sym::Symbol, df::DataFrame)
- return df[df.R_ID .== rid, sym][]
+function is_nonzero(rs::Vector{AbstractResource}, col::Symbol)
+ !isnothing(findfirst(r -> get(r, col, 0) ≠ 0, rs))
end
-@doc raw"""
- by_rid_df(rid::Vector{Int}, sym::Symbol, df::DataFrame)
+@doc raw"""
+ by_rid_res(rid::Integer, sym::Symbol, rs::Vector{<:AbstractResource})
- This function extracts the rows of a DataFrame df for the resources given by the vector of resource IDs "rid".
+ This function returns the value of the attribute `sym` for the resource given by the ID `rid`.
"""
-function by_rid_df(rid::Vector{Int}, sym::Symbol, df::DataFrame)
- indices = [findall(x -> x == y, df.R_ID)[] for y in rid]
- return df[indices, sym]
+function by_rid_res(rid::Integer, sym::Symbol, rs::Vector{<:AbstractResource})
+ r = rs[findfirst(resource_id.(rs) .== rid)]
+ # use getter function for attribute `sym` if exists in GenX, otherwise get the attribute directly
+ f = isdefined(GenX, sym) ? getfield(GenX, sym) : r -> getproperty(r, sym)
+ return f(r)
end
+
diff --git a/src/multi_stage/configure_multi_stage_inputs.jl b/src/multi_stage/configure_multi_stage_inputs.jl
index c113c04331..458de01556 100644
--- a/src/multi_stage/configure_multi_stage_inputs.jl
+++ b/src/multi_stage/configure_multi_stage_inputs.jl
@@ -69,7 +69,7 @@ returns: dictionary containing updated model inputs, to be used in the generate\
"""
function configure_multi_stage_inputs(inputs_d::Dict, settings_d::Dict, NetworkExpansion::Int64)
- dfGen = inputs_d["dfGen"]
+ gen = inputs_d["RESOURCES"]
# Parameter inputs when multi-year discounting is activated
cur_stage = settings_d["CurStage"]
@@ -84,39 +84,40 @@ function configure_multi_stage_inputs(inputs_d::Dict, settings_d::Dict, NetworkE
if !myopic ### Leave myopic costs in annualized form and do not scale OPEX costs
# 1. Convert annualized investment costs incured within the model horizon into overnight capital costs
# NOTE: Although the "yr" suffix is still in use in these parameter names, they no longer represent annualized costs but rather truncated overnight capital costs
- inputs_d["dfGen"][!,:Inv_Cost_per_MWyr] = compute_overnight_capital_cost(settings_d,dfGen[!,:Inv_Cost_per_MWyr],dfGen[!,:Capital_Recovery_Period],dfGen[!,:WACC])
- inputs_d["dfGen"][!,:Inv_Cost_per_MWhyr] = compute_overnight_capital_cost(settings_d,dfGen[!,:Inv_Cost_per_MWhyr],dfGen[!,:Capital_Recovery_Period],dfGen[!,:WACC])
- inputs_d["dfGen"][!,:Inv_Cost_Charge_per_MWyr] = compute_overnight_capital_cost(settings_d,dfGen[!,:Inv_Cost_Charge_per_MWyr],dfGen[!,:Capital_Recovery_Period],dfGen[!,:WACC])
+ gen.inv_cost_per_mwyr = compute_overnight_capital_cost(settings_d, inv_cost_per_mwyr.(gen), capital_recovery_period.(gen), tech_wacc.(gen))
+ gen.inv_cost_per_mwhyr = compute_overnight_capital_cost(settings_d, inv_cost_per_mwhyr.(gen), capital_recovery_period.(gen), tech_wacc.(gen))
+ gen.inv_cost_charge_per_mwyr = compute_overnight_capital_cost(settings_d, inv_cost_charge_per_mwyr.(gen), capital_recovery_period.(gen), tech_wacc.(gen))
# 2. Update fixed O&M costs to account for the possibility of more than 1 year between two model stages
# NOTE: Although the "yr" suffix is still in use in these parameter names, they now represent total costs incured in each stage, which may be multiple years
- inputs_d["dfGen"][!,:Fixed_OM_Cost_per_MWyr] .*= OPEXMULT
- inputs_d["dfGen"][!,:Fixed_OM_Cost_per_MWhyr] .*= OPEXMULT
- inputs_d["dfGen"][!,:Fixed_OM_Cost_Charge_per_MWyr] .*= OPEXMULT
+ gen.fixed_om_cost_per_mwyr = fixed_om_cost_per_mwyr.(gen) .* OPEXMULT
+ gen.fixed_om_cost_per_mwhyr = fixed_om_cost_per_mwhyr.(gen) .* OPEXMULT
+ gen.fixed_om_cost_charge_per_mwyr = fixed_om_cost_charge_per_mwyr.(gen) .* OPEXMULT
# Conduct 1. and 2. for any co-located VRE-STOR resources
if !isempty(inputs_d["VRE_STOR"])
- dfVRE_STOR = inputs_d["dfVRE_STOR"]
- dfVRE_STOR[!,:Inv_Cost_Inverter_per_MWyr] = compute_overnight_capital_cost(settings_d,dfVRE_STOR[!,:Inv_Cost_Inverter_per_MWyr],dfVRE_STOR[!,:Capital_Recovery_Period_DC],dfVRE_STOR[!,:WACC_DC])
- dfVRE_STOR[!,:Inv_Cost_Solar_per_MWyr] = compute_overnight_capital_cost(settings_d,dfVRE_STOR[!,:Inv_Cost_Solar_per_MWyr],dfVRE_STOR[!,:Capital_Recovery_Period_Solar],dfVRE_STOR[!,:WACC_Solar])
- dfVRE_STOR[!,:Inv_Cost_Wind_per_MWyr] = compute_overnight_capital_cost(settings_d,dfVRE_STOR[!,:Inv_Cost_Wind_per_MWyr],dfVRE_STOR[!,:Capital_Recovery_Period_Wind],dfVRE_STOR[!,:WACC_Wind])
- dfVRE_STOR[!,:Inv_Cost_Discharge_DC_per_MWyr] = compute_overnight_capital_cost(settings_d,dfVRE_STOR[!,:Inv_Cost_Discharge_DC_per_MWyr],dfVRE_STOR[!,:Capital_Recovery_Period_Discharge_DC],dfVRE_STOR[!,:WACC_Discharge_DC])
- dfVRE_STOR[!,:Inv_Cost_Charge_DC_per_MWyr] = compute_overnight_capital_cost(settings_d,dfVRE_STOR[!,:Inv_Cost_Charge_DC_per_MWyr],dfVRE_STOR[!,:Capital_Recovery_Period_Charge_DC],dfVRE_STOR[!,:WACC_Charge_DC])
- dfVRE_STOR[!,:Inv_Cost_Discharge_AC_per_MWyr] = compute_overnight_capital_cost(settings_d,dfVRE_STOR[!,:Inv_Cost_Discharge_AC_per_MWyr],dfVRE_STOR[!,:Capital_Recovery_Period_Discharge_AC],dfVRE_STOR[!,:WACC_Discharge_AC])
- dfVRE_STOR[!,:Inv_Cost_Charge_AC_per_MWyr] = compute_overnight_capital_cost(settings_d,dfVRE_STOR[!,:Inv_Cost_Charge_AC_per_MWyr],dfVRE_STOR[!,:Capital_Recovery_Period_Charge_AC],dfVRE_STOR[!,:WACC_Charge_AC])
-
- dfVRE_STOR[!,:Fixed_OM_Inverter_Cost_per_MWyr] .*= OPEXMULT
- dfVRE_STOR[!,:Fixed_OM_Solar_Cost_per_MWyr] .*= OPEXMULT
- dfVRE_STOR[!,:Fixed_OM_Wind_Cost_per_MWyr] .*= OPEXMULT
- dfVRE_STOR[!,:Fixed_OM_Cost_Discharge_DC_per_MWyr] .*= OPEXMULT
- dfVRE_STOR[!,:Fixed_OM_Cost_Charge_DC_per_MWyr] .*= OPEXMULT
- dfVRE_STOR[!,:Fixed_OM_Cost_Discharge_AC_per_MWyr] .*= OPEXMULT
- dfVRE_STOR[!,:Fixed_OM_Cost_Charge_AC_per_MWyr] .*= OPEXMULT
+ gen_VRE_STOR = gen.VreStorage
+ gen_VRE_STOR.inv_cost_inverter_per_mwyr = compute_overnight_capital_cost(settings_d, inv_cost_inverter_per_mwyr.(gen_VRE_STOR), capital_recovery_period_dc.(gen_VRE_STOR), tech_wacc_dc.(gen_VRE_STOR))
+ gen_VRE_STOR.inv_cost_solar_per_mwyr = compute_overnight_capital_cost(settings_d, inv_cost_solar_per_mwyr.(gen_VRE_STOR), capital_recovery_period_solar.(gen_VRE_STOR), tech_wacc_solar.(gen_VRE_STOR))
+ gen_VRE_STOR.inv_cost_wind_per_mwyr = compute_overnight_capital_cost(settings_d, inv_cost_wind_per_mwyr.(gen_VRE_STOR), capital_recovery_period_wind.(gen_VRE_STOR), tech_wacc_wind.(gen_VRE_STOR))
+ gen_VRE_STOR.inv_cost_discharge_dc_per_mwyr = compute_overnight_capital_cost(settings_d, inv_cost_discharge_dc_per_mwyr.(gen_VRE_STOR), capital_recovery_period_discharge_dc.(gen_VRE_STOR), tech_wacc_discharge_dc.(gen_VRE_STOR))
+ gen_VRE_STOR.inv_cost_charge_dc_per_mwyr = compute_overnight_capital_cost(settings_d, inv_cost_charge_dc_per_mwyr.(gen_VRE_STOR), capital_recovery_period_charge_dc.(gen_VRE_STOR), tech_wacc_charge_dc.(gen_VRE_STOR))
+ gen_VRE_STOR.inv_cost_discharge_ac_per_mwyr = compute_overnight_capital_cost(settings_d, inv_cost_discharge_ac_per_mwyr.(gen_VRE_STOR), capital_recovery_period_discharge_ac.(gen_VRE_STOR), tech_wacc_discharge_ac.(gen_VRE_STOR))
+ gen_VRE_STOR.inv_cost_charge_ac_per_mwyr = compute_overnight_capital_cost(settings_d, inv_cost_charge_ac_per_mwyr.(gen_VRE_STOR), capital_recovery_period_charge_ac.(gen_VRE_STOR), tech_wacc_charge_ac.(gen_VRE_STOR))
+
+ gen_VRE_STOR.fixed_om_inverter_cost_per_mwyr .*= OPEXMULT
+ gen_VRE_STOR.fixed_om_solar_cost_per_mwyr .*= OPEXMULT
+ gen_VRE_STOR.fixed_om_wind_cost_per_mwyr .*= OPEXMULT
+ gen_VRE_STOR.fixed_om_cost_discharge_dc_per_mwyr .*= OPEXMULT
+ gen_VRE_STOR.fixed_om_cost_charge_dc_per_mwyr .*= OPEXMULT
+ gen_VRE_STOR.fixed_om_cost_discharge_ac_per_mwyr .*= OPEXMULT
+ gen_VRE_STOR.fixed_om_cost_charge_ac_per_mwyr .*= OPEXMULT
end
end
- retirable = resources_which_can_be_retired(dfGen)
+ retirable = is_retirable(gen)
+ # TODO: ask Sam about this
# Set of all resources eligible for capacity retirements
inputs_d["RET_CAP"] = retirable
# Set of all storage resources eligible for energy capacity retirements
diff --git a/src/multi_stage/endogenous_retirement.jl b/src/multi_stage/endogenous_retirement.jl
index 3371476c17..5aa21599db 100644
--- a/src/multi_stage/endogenous_retirement.jl
+++ b/src/multi_stage/endogenous_retirement.jl
@@ -22,41 +22,44 @@ function get_retirement_stage(cur_stage::Int, lifetime::Int, stage_lens::Array{I
return Int(ret_stage)
end
-function update_cumulative_min_ret!(inputs_d::Dict,t::Int,Resource_Set::String,dfGen_Name::String,RetCap::Symbol)
-
- CumRetCap = Symbol("Cum_"*String(RetCap));
+function update_cumulative_min_ret!(inputs_d::Dict,t::Int,Resource_Set::String,RetCap::Symbol)
+ gen_name = "RESOURCES"
+ CumRetCap = Symbol("cum_"*String(RetCap))
+ # if the getter function exists in GenX then use it, otherwise get the attribute directly
+ ret_cap_f = isdefined(GenX, RetCap) ? getfield(GenX, RetCap) : r -> getproperty(r, RetCap)
+ cum_ret_cap_f = isdefined(GenX, CumRetCap) ? getfield(GenX, CumRetCap) : r -> getproperty(r, CumRetCap)
if !isempty(inputs_d[1][Resource_Set])
+ gen_t = inputs_d[t][gen_name]
if t==1
- inputs_d[t][dfGen_Name][!,CumRetCap] = inputs_d[t][dfGen_Name][!,RetCap];
+ gen_t[CumRetCap] = ret_cap_f.(gen_t)
else
- inputs_d[t][dfGen_Name][!,CumRetCap] = inputs_d[t-1][dfGen_Name][!,CumRetCap] + inputs_d[t][dfGen_Name][!,RetCap];
+ gen_t[CumRetCap] = cum_ret_cap_f.(inputs_d[t-1][gen_name]) + ret_cap_f.(gen_t)
end
end
-
end
function compute_cumulative_min_retirements!(inputs_d::Dict,t::Int)
- mytab =[("G","dfGen",:Min_Retired_Cap_MW),
- ("STOR_ALL","dfGen",:Min_Retired_Energy_Cap_MW),
- ("STOR_ASYMMETRIC","dfGen",:Min_Retired_Charge_Cap_MW)];
+ mytab =[("G", :min_retired_cap_mw),
+ ("STOR_ALL", :min_retired_energy_cap_mw),
+ ("STOR_ASYMMETRIC", :min_retired_charge_cap_mw)];
if !isempty(inputs_d[1]["VRE_STOR"])
- append!(mytab,[("VS_DC","dfVRE_STOR",:Min_Retired_Cap_Inverter_MW),
- ("VS_SOLAR","dfVRE_STOR",:Min_Retired_Cap_Solar_MW),
- ("VS_WIND","dfVRE_STOR",:Min_Retired_Cap_Wind_MW),
- ("VS_STOR","dfGen",:Min_Retired_Energy_Cap_MW),
- ("VS_ASYM_DC_DISCHARGE","dfVRE_STOR",:Min_Retired_Cap_Discharge_DC_MW),
- ("VS_ASYM_DC_CHARGE","dfVRE_STOR",:Min_Retired_Cap_Charge_DC_MW),
- ("VS_ASYM_AC_DISCHARGE","dfVRE_STOR",:Min_Retired_Cap_Discharge_AC_MW),
- ("VS_ASYM_AC_CHARGE","dfVRE_STOR",:Min_Retired_Cap_Charge_AC_MW)])
+ append!(mytab,[("VS_STOR", :min_retired_energy_cap_mw),
+ ("VS_DC", :min_retired_cap_inverter_mw),
+ ("VS_SOLAR", :min_retired_cap_solar_mw),
+ ("VS_WIND", :min_retired_cap_wind_mw),
+ ("VS_ASYM_DC_DISCHARGE", :min_retired_cap_discharge_dc_mw),
+ ("VS_ASYM_DC_CHARGE", :min_retired_cap_charge_dc_mw),
+ ("VS_ASYM_AC_DISCHARGE", :min_retired_cap_discharge_ac_mw),
+ ("VS_ASYM_AC_CHARGE", :min_retired_cap_charge_ac_mw)])
end
- for (Resource_Set,dfGen_Name,RetCap) in mytab
- update_cumulative_min_ret!(inputs_d,t,Resource_Set,dfGen_Name,RetCap)
+ for (Resource_Set,RetCap) in mytab
+ update_cumulative_min_ret!(inputs_d,t,Resource_Set,RetCap)
end
@@ -122,7 +125,7 @@ function endogenous_retirement_discharge!(EP::Model, inputs::Dict, num_stages::I
println("Endogenous Retirement (Discharge) Module")
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
NEW_CAP = inputs["NEW_CAP"] # Set of all resources eligible for new capacity
RET_CAP = inputs["RET_CAP"] # Set of all resources eligible for capacity retirements
@@ -148,12 +151,12 @@ function endogenous_retirement_discharge!(EP::Model, inputs::Dict, num_stages::I
# Construct and add the endogenous retirement constraint expressions
@expression(EP, eRetCapTrack[y in RET_CAP], sum(EP[:vRETCAPTRACK][y,p] for p=1:cur_stage))
- @expression(EP, eNewCapTrack[y in RET_CAP], sum(EP[:vCAPTRACK][y,p] for p=1:get_retirement_stage(cur_stage, dfGen[!,:Lifetime][y], stage_lens)))
+ @expression(EP, eNewCapTrack[y in RET_CAP], sum(EP[:vCAPTRACK][y,p] for p=1:get_retirement_stage(cur_stage, lifetime(gen[y]), stage_lens)))
@expression(EP, eMinRetCapTrack[y in RET_CAP],
if y in COMMIT
- dfGen[y,:Cum_Min_Retired_Cap_MW]/dfGen[y,:Cap_Size]
+ cum_min_retired_cap_mw(gen[y])/cap_size(gen[y])
else
- dfGen[y,:Cum_Min_Retired_Cap_MW]
+ cum_min_retired_cap_mw(gen[y])
end
)
@@ -177,7 +180,7 @@ function endogenous_retirement_charge!(EP::Model, inputs::Dict, num_stages::Int,
println("Endogenous Retirement (Charge) Module")
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
NEW_CAP_CHARGE = inputs["NEW_CAP_CHARGE"] # Set of asymmetric charge/discharge storage resources eligible for new charge capacity
RET_CAP_CHARGE = inputs["RET_CAP_CHARGE"] # Set of asymmetric charge/discharge storage resources eligible for charge capacity retirements
@@ -202,8 +205,8 @@ function endogenous_retirement_charge!(EP::Model, inputs::Dict, num_stages::Int,
# Construct and add the endogenous retirement constraint expressions
@expression(EP, eRetCapTrackCharge[y in RET_CAP_CHARGE], sum(EP[:vRETCAPTRACKCHARGE][y,p] for p=1:cur_stage))
- @expression(EP, eNewCapTrackCharge[y in RET_CAP_CHARGE], sum(EP[:vCAPTRACKCHARGE][y,p] for p=1:get_retirement_stage(cur_stage, dfGen[!,:Lifetime][y], stage_lens)))
- @expression(EP, eMinRetCapTrackCharge[y in RET_CAP_CHARGE], dfGen[y,:Cum_Min_Retired_Charge_Cap_MW])
+ @expression(EP, eNewCapTrackCharge[y in RET_CAP_CHARGE], sum(EP[:vCAPTRACKCHARGE][y,p] for p=1:get_retirement_stage(cur_stage, lifetime(gen[y]), stage_lens)))
+ @expression(EP, eMinRetCapTrackCharge[y in RET_CAP_CHARGE], cum_min_retired_charge_cap_mw(gen[y]))
### Constratints ###
@@ -225,7 +228,7 @@ function endogenous_retirement_energy!(EP::Model, inputs::Dict, num_stages::Int,
println("Endogenous Retirement (Energy) Module")
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
NEW_CAP_ENERGY = inputs["NEW_CAP_ENERGY"] # Set of all storage resources eligible for new energy capacity
RET_CAP_ENERGY = inputs["RET_CAP_ENERGY"] # Set of all storage resources eligible for energy capacity retirements
@@ -250,8 +253,8 @@ function endogenous_retirement_energy!(EP::Model, inputs::Dict, num_stages::Int,
# Construct and add the endogenous retirement constraint expressions
@expression(EP, eRetCapTrackEnergy[y in RET_CAP_ENERGY], sum(EP[:vRETCAPTRACKENERGY][y,p] for p=1:cur_stage))
- @expression(EP, eNewCapTrackEnergy[y in RET_CAP_ENERGY], sum(EP[:vCAPTRACKENERGY][y,p] for p=1:get_retirement_stage(cur_stage, dfGen[!,:Lifetime][y], stage_lens)))
- @expression(EP, eMinRetCapTrackEnergy[y in RET_CAP_ENERGY], dfGen[y,:Cum_Min_Retired_Energy_Cap_MW])
+ @expression(EP, eNewCapTrackEnergy[y in RET_CAP_ENERGY], sum(EP[:vCAPTRACKENERGY][y,p] for p=1:get_retirement_stage(cur_stage, lifetime(gen[y]), stage_lens)))
+ @expression(EP, eMinRetCapTrackEnergy[y in RET_CAP_ENERGY], cum_min_retired_energy_cap_mw(gen[y]))
### Constratints ###
@@ -272,9 +275,7 @@ function endogenous_retirement_vre_stor_dc!(EP::Model, inputs::Dict, num_stages:
println("Endogenous Retirement (VRE-Storage DC) Module")
- dfGen = inputs["dfGen"]
-
- dfVRE_STOR = inputs["dfVRE_STOR"];
+ gen = inputs["RESOURCES"]
NEW_CAP_DC = inputs["NEW_CAP_DC"] # Set of all resources eligible for new capacity
RET_CAP_DC = inputs["RET_CAP_DC"] # Set of all resources eligible for capacity retirements
@@ -299,8 +300,8 @@ function endogenous_retirement_vre_stor_dc!(EP::Model, inputs::Dict, num_stages:
# Construct and add the endogenous retirement constraint expressions
@expression(EP, eRetCapTrackDC[y in RET_CAP_DC], sum(EP[:vRETCAPTRACKDC][y,p] for p=1:cur_stage))
- @expression(EP, eNewCapTrackDC[y in RET_CAP_DC], sum(EP[:vCAPTRACKDC][y,p] for p=1:get_retirement_stage(cur_stage, dfGen[!,:Lifetime][y], stage_lens)))
- @expression(EP, eMinRetCapTrackDC[y in RET_CAP_DC], dfVRE_STOR[y,:Cum_Min_Retired_Cap_Inverter_MW])
+ @expression(EP, eNewCapTrackDC[y in RET_CAP_DC], sum(EP[:vCAPTRACKDC][y,p] for p=1:get_retirement_stage(cur_stage, lifetime(gen[y]), stage_lens)))
+ @expression(EP, eMinRetCapTrackDC[y in RET_CAP_DC], cum_min_retired_cap_inverter_mw(gen[y]))
### Constraints ###
@@ -321,8 +322,7 @@ function endogenous_retirement_vre_stor_solar!(EP::Model, inputs::Dict, num_stag
println("Endogenous Retirement (VRE-Storage Solar) Module")
- dfGen = inputs["dfGen"]
- dfVRE_STOR = inputs["dfVRE_STOR"];
+ gen = inputs["RESOURCES"]
NEW_CAP_SOLAR = inputs["NEW_CAP_SOLAR"] # Set of all resources eligible for new capacity
RET_CAP_SOLAR = inputs["RET_CAP_SOLAR"] # Set of all resources eligible for capacity retirements
@@ -347,8 +347,8 @@ function endogenous_retirement_vre_stor_solar!(EP::Model, inputs::Dict, num_stag
# Construct and add the endogenous retirement constraint expressions
@expression(EP, eRetCapTrackSolar[y in RET_CAP_SOLAR], sum(EP[:vRETCAPTRACKSOLAR][y,p] for p=1:cur_stage))
- @expression(EP, eNewCapTrackSolar[y in RET_CAP_SOLAR], sum(EP[:vCAPTRACKSOLAR][y,p] for p=1:get_retirement_stage(cur_stage, dfGen[!,:Lifetime][y], stage_lens)))
- @expression(EP, eMinRetCapTrackSolar[y in RET_CAP_SOLAR], dfVRE_STOR[y,:Cum_Min_Retired_Cap_Solar_MW])
+ @expression(EP, eNewCapTrackSolar[y in RET_CAP_SOLAR], sum(EP[:vCAPTRACKSOLAR][y,p] for p=1:get_retirement_stage(cur_stage, lifetime(gen[y]), stage_lens)))
+ @expression(EP, eMinRetCapTrackSolar[y in RET_CAP_SOLAR], cum_min_retired_cap_solar_mw(gen[y]))
### Constraints ###
@@ -369,8 +369,7 @@ function endogenous_retirement_vre_stor_wind!(EP::Model, inputs::Dict, num_stage
println("Endogenous Retirement (VRE-Storage Wind) Module")
- dfGen = inputs["dfGen"]
- dfVRE_STOR = inputs["dfVRE_STOR"];
+ gen = inputs["RESOURCES"]
NEW_CAP_WIND = inputs["NEW_CAP_WIND"] # Set of all resources eligible for new capacity
RET_CAP_WIND = inputs["RET_CAP_WIND"] # Set of all resources eligible for capacity retirements
@@ -395,8 +394,8 @@ function endogenous_retirement_vre_stor_wind!(EP::Model, inputs::Dict, num_stage
# Construct and add the endogenous retirement constraint expressions
@expression(EP, eRetCapTrackWind[y in RET_CAP_WIND], sum(EP[:vRETCAPTRACKWIND][y,p] for p=1:cur_stage))
- @expression(EP, eNewCapTrackWind[y in RET_CAP_WIND], sum(EP[:vCAPTRACKWIND][y,p] for p=1:get_retirement_stage(cur_stage, dfGen[!,:Lifetime][y], stage_lens)))
- @expression(EP, eMinRetCapTrackWind[y in RET_CAP_WIND], dfVRE_STOR[y,:Cum_Min_Retired_Cap_Wind_MW])
+ @expression(EP, eNewCapTrackWind[y in RET_CAP_WIND], sum(EP[:vCAPTRACKWIND][y,p] for p=1:get_retirement_stage(cur_stage, lifetime(gen[y]), stage_lens)))
+ @expression(EP, eMinRetCapTrackWind[y in RET_CAP_WIND], cum_min_retired_cap_wind_mw(gen[y]))
### Constraints ###
@@ -417,7 +416,7 @@ function endogenous_retirement_vre_stor_stor!(EP::Model, inputs::Dict, num_stage
println("Endogenous Retirement (VRE-Storage Storage) Module")
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
NEW_CAP_STOR = inputs["NEW_CAP_STOR"] # Set of all resources eligible for new capacity
RET_CAP_STOR = inputs["RET_CAP_STOR"] # Set of all resources eligible for capacity retirements
@@ -442,8 +441,8 @@ function endogenous_retirement_vre_stor_stor!(EP::Model, inputs::Dict, num_stage
# Construct and add the endogenous retirement constraint expressions
@expression(EP, eRetCapTrackEnergy_VS[y in RET_CAP_STOR], sum(EP[:vRETCAPTRACKENERGY_VS][y,p] for p=1:cur_stage))
- @expression(EP, eNewCapTrackEnergy_VS[y in RET_CAP_STOR], sum(EP[:vCAPTRACKENERGY_VS][y,p] for p=1:get_retirement_stage(cur_stage, dfGen[!,:Lifetime][y], stage_lens)))
- @expression(EP, eMinRetCapTrackEnergy_VS[y in RET_CAP_STOR], dfGen[y,:Cum_Min_Retired_Energy_Cap_MW])
+ @expression(EP, eNewCapTrackEnergy_VS[y in RET_CAP_STOR], sum(EP[:vCAPTRACKENERGY_VS][y,p] for p=1:get_retirement_stage(cur_stage, lifetime(gen[y]), stage_lens)))
+ @expression(EP, eMinRetCapTrackEnergy_VS[y in RET_CAP_STOR], cum_min_retired_energy_cap_mw(gen[y]))
### Constratints ###
@@ -464,9 +463,7 @@ function endogenous_retirement_vre_stor_discharge_dc!(EP::Model, inputs::Dict, n
println("Endogenous Retirement (VRE-Storage Discharge DC) Module")
- dfGen = inputs["dfGen"]
-
- dfVRE_STOR = inputs["dfVRE_STOR"]
+ gen = inputs["RESOURCES"]
NEW_CAP_DISCHARGE_DC = inputs["NEW_CAP_DISCHARGE_DC"] # Set of all resources eligible for new capacity
RET_CAP_DISCHARGE_DC = inputs["RET_CAP_DISCHARGE_DC"] # Set of all resources eligible for capacity retirements
@@ -491,8 +488,8 @@ function endogenous_retirement_vre_stor_discharge_dc!(EP::Model, inputs::Dict, n
# Construct and add the endogenous retirement constraint expressions
@expression(EP, eRetCapTrackDischargeDC[y in RET_CAP_DISCHARGE_DC], sum(EP[:vRETCAPTRACKDISCHARGEDC][y,p] for p=1:cur_stage))
- @expression(EP, eNewCapTrackDischargeDC[y in RET_CAP_DISCHARGE_DC], sum(EP[:vCAPTRACKDISCHARGEDC][y,p] for p=1:get_retirement_stage(cur_stage, dfGen[!,:Lifetime][y], stage_lens)))
- @expression(EP, eMinRetCapTrackDischargeDC[y in RET_CAP_DISCHARGE_DC], dfVRE_STOR[y,:Cum_Min_Retired_Cap_Discharge_DC_MW])
+ @expression(EP, eNewCapTrackDischargeDC[y in RET_CAP_DISCHARGE_DC], sum(EP[:vCAPTRACKDISCHARGEDC][y,p] for p=1:get_retirement_stage(cur_stage, lifetime(gen[y]), stage_lens)))
+ @expression(EP, eMinRetCapTrackDischargeDC[y in RET_CAP_DISCHARGE_DC], cum_min_retired_cap_discharge_dc_mw(gen[y]))
### Constraints ###
@@ -513,8 +510,7 @@ function endogenous_retirement_vre_stor_charge_dc!(EP::Model, inputs::Dict, num_
println("Endogenous Retirement (VRE-Storage Charge DC) Module")
- dfGen = inputs["dfGen"]
- dfVRE_STOR = inputs["dfVRE_STOR"];
+ gen = inputs["RESOURCES"]
NEW_CAP_CHARGE_DC = inputs["NEW_CAP_CHARGE_DC"] # Set of all resources eligible for new capacity
RET_CAP_CHARGE_DC = inputs["RET_CAP_CHARGE_DC"] # Set of all resources eligible for capacity retirements
@@ -538,8 +534,8 @@ function endogenous_retirement_vre_stor_charge_dc!(EP::Model, inputs::Dict, num_
# Construct and add the endogenous retirement constraint expressions
@expression(EP, eRetCapTrackChargeDC[y in RET_CAP_CHARGE_DC], sum(EP[:vRETCAPTRACKCHARGEDC][y,p] for p=1:cur_stage))
- @expression(EP, eNewCapTrackChargeDC[y in RET_CAP_CHARGE_DC], sum(EP[:vCAPTRACKCHARGEDC][y,p] for p=1:get_retirement_stage(cur_stage, dfGen[!,:Lifetime][y], stage_lens)))
- @expression(EP, eMinRetCapTrackChargeDC[y in RET_CAP_CHARGE_DC], dfVRE_STOR[y,:Cum_Min_Retired_Cap_Charge_DC_MW])
+ @expression(EP, eNewCapTrackChargeDC[y in RET_CAP_CHARGE_DC], sum(EP[:vCAPTRACKCHARGEDC][y,p] for p=1:get_retirement_stage(cur_stage, lifetime(gen[y]), stage_lens)))
+ @expression(EP, eMinRetCapTrackChargeDC[y in RET_CAP_CHARGE_DC], cum_min_retired_cap_charge_dc_mw(gen[y]))
### Constraints ###
@@ -560,8 +556,7 @@ function endogenous_retirement_vre_stor_discharge_ac!(EP::Model, inputs::Dict, n
println("Endogenous Retirement (VRE-Storage Discharge AC) Module")
- dfGen = inputs["dfGen"]
- dfVRE_STOR = inputs["dfVRE_STOR"];
+ gen = inputs["RESOURCES"]
NEW_CAP_DISCHARGE_AC = inputs["NEW_CAP_DISCHARGE_AC"] # Set of all resources eligible for new capacity
RET_CAP_DISCHARGE_AC = inputs["RET_CAP_DISCHARGE_AC"] # Set of all resources eligible for capacity retirements
@@ -585,8 +580,8 @@ function endogenous_retirement_vre_stor_discharge_ac!(EP::Model, inputs::Dict, n
# Construct and add the endogenous retirement constraint expressions
@expression(EP, eRetCapTrackDischargeAC[y in RET_CAP_DISCHARGE_AC], sum(EP[:vRETCAPTRACKDISCHARGEAC][y,p] for p=1:cur_stage))
- @expression(EP, eNewCapTrackDischargeAC[y in RET_CAP_DISCHARGE_AC], sum(EP[:vCAPTRACKDISCHARGEAC][y,p] for p=1:get_retirement_stage(cur_stage, dfGen[!,:Lifetime][y], stage_lens)))
- @expression(EP, eMinRetCapTrackDischargeAC[y in RET_CAP_DISCHARGE_AC], dfVRE_STOR[y,:Cum_Min_Retired_Cap_Discharge_AC_MW])
+ @expression(EP, eNewCapTrackDischargeAC[y in RET_CAP_DISCHARGE_AC], sum(EP[:vCAPTRACKDISCHARGEAC][y,p] for p=1:get_retirement_stage(cur_stage, lifetime(gen[y]), stage_lens)))
+ @expression(EP, eMinRetCapTrackDischargeAC[y in RET_CAP_DISCHARGE_AC], cum_min_retired_cap_discharge_ac_mw(gen[y]))
### Constraints ###
@@ -607,8 +602,7 @@ function endogenous_retirement_vre_stor_charge_ac!(EP::Model, inputs::Dict, num_
println("Endogenous Retirement (VRE-Storage Charge AC) Module")
- dfGen = inputs["dfGen"]
- dfVRE_STOR = inputs["dfVRE_STOR"]
+ gen = inputs["RESOURCES"]
NEW_CAP_CHARGE_AC = inputs["NEW_CAP_CHARGE_AC"] # Set of all resources eligible for new capacity
RET_CAP_CHARGE_AC = inputs["RET_CAP_CHARGE_AC"] # Set of all resources eligible for capacity retirements
@@ -632,8 +626,8 @@ function endogenous_retirement_vre_stor_charge_ac!(EP::Model, inputs::Dict, num_
# Construct and add the endogenous retirement constraint expressions
@expression(EP, eRetCapTrackChargeAC[y in RET_CAP_CHARGE_AC], sum(EP[:vRETCAPTRACKCHARGEAC][y,p] for p=1:cur_stage))
- @expression(EP, eNewCapTrackChargeAC[y in RET_CAP_CHARGE_AC], sum(EP[:vCAPTRACKCHARGEAC][y,p] for p=1:get_retirement_stage(cur_stage, dfGen[!,:Lifetime][y], stage_lens)))
- @expression(EP, eMinRetCapTrackChargeAC[y in RET_CAP_CHARGE_AC], dfVRE_STOR[y,:Cum_Min_Retired_Cap_Charge_AC_MW])
+ @expression(EP, eNewCapTrackChargeAC[y in RET_CAP_CHARGE_AC], sum(EP[:vCAPTRACKCHARGEAC][y,p] for p=1:get_retirement_stage(cur_stage, lifetime(gen[y]), stage_lens)))
+ @expression(EP, eMinRetCapTrackChargeAC[y in RET_CAP_CHARGE_AC], cum_min_retired_cap_charge_ac_mw(gen[y]))
### Constraints ###
diff --git a/src/time_domain_reduction/time_domain_reduction.jl b/src/time_domain_reduction/time_domain_reduction.jl
index 3b27644211..1bc854e6c8 100644
--- a/src/time_domain_reduction/time_domain_reduction.jl
+++ b/src/time_domain_reduction/time_domain_reduction.jl
@@ -614,7 +614,7 @@ function cluster_inputs(inpath, settings_path, mysetup, stage_id=-99, v=false; r
if MultiStageConcatenate == 1
if v println("MultiStage with Concatenation") end
RESOURCE_ZONES = inputs_dict[1]["RESOURCE_ZONES"]
- RESOURCES = inputs_dict[1]["RESOURCES"]
+ RESOURCES = inputs_dict[1]["RESOURCE_NAMES"]
ZONES = inputs_dict[1]["R_ZONES"]
# Parse input data into useful structures divided by type (demand, wind, solar, fuel, groupings thereof, etc.)
# TO DO LATER: Replace these with collections of col_names, profiles, zones
@@ -626,7 +626,7 @@ function cluster_inputs(inpath, settings_path, mysetup, stage_id=-99, v=false; r
if v println("---> STAGE ", stage_id) end
myinputs = inputs_dict[stage_id]
RESOURCE_ZONES = myinputs["RESOURCE_ZONES"]
- RESOURCES = myinputs["RESOURCES"]
+ RESOURCES = myinputs["RESOURCE_NAMES"]
ZONES = myinputs["R_ZONES"]
# Parse input data into useful structures divided by type (demand, wind, solar, fuel, groupings thereof, etc.)
# TO DO LATER: Replace these with collections of col_names, profiles, zones
@@ -638,7 +638,7 @@ function cluster_inputs(inpath, settings_path, mysetup, stage_id=-99, v=false; r
if v println("Not MultiStage") end
myinputs = load_inputs(mysetup_local,inpath)
RESOURCE_ZONES = myinputs["RESOURCE_ZONES"]
- RESOURCES = myinputs["RESOURCES"]
+ RESOURCES = myinputs["RESOURCE_NAMES"]
ZONES = myinputs["R_ZONES"]
# Parse input data into useful structures divided by type (demand, wind, solar, fuel, groupings thereof, etc.)
# TO DO LATER: Replace these with collections of col_names, profiles, zones
@@ -1023,7 +1023,7 @@ function cluster_inputs(inpath, settings_path, mysetup, stage_id=-99, v=false; r
### TDR_Results/Generators_variability.csv
# Reset column ordering, add time index, and solve duplicate column name trouble with CSV.write's header kwarg
- GVColMap = Dict(RESOURCE_ZONES[i] => RESOURCES[i] for i in 1:length(inputs_dict[1]["RESOURCES"]))
+ GVColMap = Dict(RESOURCE_ZONES[i] => RESOURCES[i] for i in 1:length(inputs_dict[1]["RESOURCE_NAMES"]))
GVColMap["Time_Index"] = "Time_Index"
GVOutputData = GVOutputData[!, Symbol.(RESOURCE_ZONES)]
insertcols!(GVOutputData, 1, :Time_Index => 1:size(GVOutputData,1))
@@ -1108,7 +1108,7 @@ function cluster_inputs(inpath, settings_path, mysetup, stage_id=-99, v=false; r
### TDR_Results/Generators_variability.csv
# Reset column ordering, add time index, and solve duplicate column name trouble with CSV.write's header kwarg
- GVColMap = Dict(RESOURCE_ZONES[i] => RESOURCES[i] for i in 1:length(myinputs["RESOURCES"]))
+ GVColMap = Dict(RESOURCE_ZONES[i] => RESOURCES[i] for i in 1:length(myinputs["RESOURCE_NAMES"]))
GVColMap["Time_Index"] = "Time_Index"
GVOutputData = GVOutputData[!, Symbol.(RESOURCE_ZONES)]
insertcols!(GVOutputData, 1, :Time_Index => 1:size(GVOutputData,1))
@@ -1193,7 +1193,7 @@ function cluster_inputs(inpath, settings_path, mysetup, stage_id=-99, v=false; r
### TDR_Results/Generators_variability.csv
# Reset column ordering, add time index, and solve duplicate column name trouble with CSV.write's header kwarg
- GVColMap = Dict(RESOURCE_ZONES[i] => RESOURCES[i] for i in 1:length(myinputs["RESOURCES"]))
+ GVColMap = Dict(RESOURCE_ZONES[i] => RESOURCES[i] for i in 1:length(myinputs["RESOURCE_NAMES"]))
GVColMap["Time_Index"] = "Time_Index"
GVOutputData = GVOutputData[!, Symbol.(RESOURCE_ZONES)]
insertcols!(GVOutputData, 1, :Time_Index => 1:size(GVOutputData,1))
diff --git a/src/write_outputs/capacity_reserve_margin/effective_capacity.jl b/src/write_outputs/capacity_reserve_margin/effective_capacity.jl
index 5d6d47246c..aa2a90c3ed 100644
--- a/src/write_outputs/capacity_reserve_margin/effective_capacity.jl
+++ b/src/write_outputs/capacity_reserve_margin/effective_capacity.jl
@@ -39,13 +39,13 @@ function thermal_plant_effective_capacity(
timesteps::Vector{Int},
)::Vector{Float64}
y = r_id
- dfGen = inputs["dfGen"]
- capresfactor = dfGen[y, Symbol("CapRes_$capres_zone")]
+ gen = inputs["RESOURCES"]
+ capresfactor = derating_factor(gen[y], tag=capres_zone)
eTotalCap = value.(EP[:eTotalCap][y])
effective_capacity = fill(capresfactor * eTotalCap, length(timesteps))
- if has_maintenance(inputs) && y in resources_with_maintenance(dfGen)
+ if has_maintenance(inputs) && y in ids_with_maintenance(gen)
adjustment = thermal_maintenance_capacity_reserve_margin_adjustment(EP, inputs, y, capres_zone, timesteps)
effective_capacity = effective_capacity .+ value.(adjustment)
end
diff --git a/src/write_outputs/capacity_reserve_margin/write_capacity_value.jl b/src/write_outputs/capacity_reserve_margin/write_capacity_value.jl
index 275ba7453f..747bf5602b 100644
--- a/src/write_outputs/capacity_reserve_margin/write_capacity_value.jl
+++ b/src/write_outputs/capacity_reserve_margin/write_capacity_value.jl
@@ -1,5 +1,7 @@
function write_capacity_value(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
+ zones = zone_id.(gen)
+
G = inputs["G"] # Number of resources (generators, storage, DR, and DERs)
T = inputs["T"] # Number of time steps (hours)
THERM_ALL = inputs["THERM_ALL"]
@@ -32,11 +34,9 @@ function write_capacity_value(path::AbstractString, inputs::Dict, setup::Dict, E
AC_DISCHARGE_EX = intersect(inputs["VS_STOR_AC_DISCHARGE"], VRE_STOR_EX)
DC_CHARGE_EX = intersect(DC_CHARGE, VRE_STOR_EX)
AC_CHARGE_EX = intersect(inputs["VS_STOR_AC_CHARGE"], VRE_STOR_EX)
- dfVRE_STOR = inputs["dfVRE_STOR"]
- crm_derate_vrestor(i, y::Vector{Int}) = by_rid_df(y, Symbol("CapResVreStor_$i"), dfVRE_STOR)'
end
- crm_derate(i, y::Vector{Int}) = dfGen[y, Symbol("CapRes_$i")]'
+ crm_derate(i, y::Vector{Int}) = derating_factor.(gen[y], tag=i)'
max_power(t::Vector{Int}, y::Vector{Int}) = inputs["pP_Max"][y, t]'
total_cap(y::Vector{Int}) = eTotalCap[y]'
@@ -71,36 +71,30 @@ function write_capacity_value(path::AbstractString, inputs::Dict, setup::Dict, E
end
if !isempty(VRE_STOR_EX)
capres_dc_discharge = value.(EP[:vCAPRES_DC_DISCHARGE][DC_DISCHARGE, riskyhour].data)'
- discharge_eff = dfVRE_STOR[dfVRE_STOR.STOR_DC_DISCHARGE .!= 0, :EtaInverter]'
+ discharge_eff = etainverter.(gen[storage_dc_discharge(gen)])'
capvalue_dc_discharge = zeros(T, G)
capvalue_dc_discharge[riskyhour, DC_DISCHARGE] = capres_dc_discharge .* discharge_eff
capres_dc_charge = value.(EP[:vCAPRES_DC_CHARGE][DC_CHARGE, riskyhour].data)'
- charge_eff = dfVRE_STOR[dfVRE_STOR.STOR_DC_CHARGE .!= 0, :EtaInverter]'
+ charge_eff = etainverter.(gen[storage_dc_charge(gen)])'
capvalue_dc_charge = zeros(T, G)
capvalue_dc_charge[riskyhour, DC_CHARGE] = capres_dc_charge ./ charge_eff
- capvalue[riskyhour, VRE_STOR_EX] = crm_derate_vrestor(i, VRE_STOR_EX) .* power(VRE_STOR_EX) ./ total_cap(VRE_STOR_EX)
+ capvalue[riskyhour, VRE_STOR_EX] = crm_derate(i, VRE_STOR_EX) .* power(VRE_STOR_EX) ./ total_cap(VRE_STOR_EX)
charge_vre_stor = value.(EP[:vCHARGE_VRE_STOR][VRE_STOR_STOR_EX, riskyhour].data)'
- capvalue[riskyhour, VRE_STOR_STOR_EX] -= crm_derate_vrestor(i, VRE_STOR_STOR_EX) .* charge_vre_stor ./ total_cap(VRE_STOR_STOR_EX)
+ capvalue[riskyhour, VRE_STOR_STOR_EX] -= crm_derate(i, VRE_STOR_STOR_EX) .* charge_vre_stor ./ total_cap(VRE_STOR_STOR_EX)
- capvalue[riskyhour, DC_DISCHARGE_EX] += crm_derate_vrestor(i, DC_DISCHARGE_EX) .* capvalue_dc_discharge[riskyhour, DC_DISCHARGE_EX] ./ total_cap(DC_DISCHARGE_EX)
+ capvalue[riskyhour, DC_DISCHARGE_EX] += crm_derate(i, DC_DISCHARGE_EX) .* capvalue_dc_discharge[riskyhour, DC_DISCHARGE_EX] ./ total_cap(DC_DISCHARGE_EX)
capres_ac_discharge = value.(EP[:vCAPRES_AC_DISCHARGE][AC_DISCHARGE_EX, riskyhour].data)'
- capvalue[riskyhour, AC_DISCHARGE_EX] += crm_derate_vrestor(i, AC_DISCHARGE_EX) .* capres_ac_discharge ./ total_cap(AC_DISCHARGE_EX)
+ capvalue[riskyhour, AC_DISCHARGE_EX] += crm_derate(i, AC_DISCHARGE_EX) .* capres_ac_discharge ./ total_cap(AC_DISCHARGE_EX)
- capvalue[riskyhour, DC_CHARGE_EX] -= crm_derate_vrestor(i, DC_CHARGE_EX) .* capvalue_dc_charge[riskyhour, DC_CHARGE_EX] ./ total_cap(DC_CHARGE_EX)
+ capvalue[riskyhour, DC_CHARGE_EX] -= crm_derate(i, DC_CHARGE_EX) .* capvalue_dc_charge[riskyhour, DC_CHARGE_EX] ./ total_cap(DC_CHARGE_EX)
capres_ac_charge = value.(EP[:vCAPRES_AC_CHARGE][AC_CHARGE_EX, riskyhour].data)'
- capvalue[riskyhour, AC_CHARGE_EX] -= crm_derate_vrestor(i, AC_CHARGE_EX) .* capres_ac_charge ./ total_cap(AC_CHARGE_EX)
+ capvalue[riskyhour, AC_CHARGE_EX] -= crm_derate(i, AC_CHARGE_EX) .* capres_ac_charge ./ total_cap(AC_CHARGE_EX)
end
capvalue = collect(transpose(capvalue))
-
- # CapRes_* for all resources except VRE_STOR, CapResVreStor_* for VRE_STOR
- reserve = Array{Symbol}(undef, G)
- reserve[filter(x-> x ∉ VRE_STOR, dfGen.R_ID)] .= Symbol("CapRes_$i")
- reserve[VRE_STOR] .= Symbol("CapResVreStor_$i")
-
- temp_dfCapValue = DataFrame(Resource = inputs["RESOURCES"], Zone = dfGen.Zone, Reserve = reserve)
+ temp_dfCapValue = DataFrame(Resource = inputs["RESOURCE_NAMES"], Zone = zones, Reserve = fill(Symbol("CapRes_$i"), G))
temp_dfCapValue = hcat(temp_dfCapValue, DataFrame(capvalue, :auto))
auxNew_Names = [Symbol("Resource"); Symbol("Zone"); Symbol("Reserve"); [Symbol("t$t") for t in 1:T]]
rename!(temp_dfCapValue, auxNew_Names)
diff --git a/src/write_outputs/capacity_reserve_margin/write_reserve_margin_revenue.jl b/src/write_outputs/capacity_reserve_margin/write_reserve_margin_revenue.jl
index 0311dc0143..629cc76756 100644
--- a/src/write_outputs/capacity_reserve_margin/write_reserve_margin_revenue.jl
+++ b/src/write_outputs/capacity_reserve_margin/write_reserve_margin_revenue.jl
@@ -10,7 +10,13 @@ Function for reporting the capacity revenue earned by each generator listed in t
"""
function write_reserve_margin_revenue(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
scale_factor = setup["ParameterScale"] == 1 ? ModelScalingFactor : 1
- dfGen = inputs["dfGen"]
+
+ gen = inputs["RESOURCES"]
+ regions = region.(gen)
+ clusters = cluster.(gen)
+ zones = zone_id.(gen)
+
+
G = inputs["G"] # Number of resources (generators, storage, DR, and DERs)
T = inputs["T"] # Number of time steps (hours)
THERM_ALL = inputs["THERM_ALL"]
@@ -20,43 +26,40 @@ function write_reserve_margin_revenue(path::AbstractString, inputs::Dict, setup:
FLEX = inputs["FLEX"]
MUST_RUN = inputs["MUST_RUN"]
VRE_STOR = inputs["VRE_STOR"]
- dfVRE_STOR = inputs["dfVRE_STOR"]
if !isempty(VRE_STOR)
VRE_STOR_STOR = inputs["VS_STOR"]
DC_DISCHARGE = inputs["VS_STOR_DC_DISCHARGE"]
AC_DISCHARGE = inputs["VS_STOR_AC_DISCHARGE"]
DC_CHARGE = inputs["VS_STOR_DC_CHARGE"]
AC_CHARGE = inputs["VS_STOR_AC_CHARGE"]
- dfVRE_STOR = inputs["dfVRE_STOR"]
end
- dfResRevenue = DataFrame(Region = dfGen.region, Resource = inputs["RESOURCES"], Zone = dfGen.Zone, Cluster = dfGen.cluster)
+ dfResRevenue = DataFrame(Region = regions, Resource = inputs["RESOURCE_NAMES"], Zone = zones, Cluster = clusters)
annual_sum = zeros(G)
for i in 1:inputs["NCapacityReserveMargin"]
weighted_price = capacity_reserve_margin_price(EP, inputs, setup, i) .* inputs["omega"]
- sym = Symbol("CapRes_$i")
tempresrev = zeros(G)
tempresrev[THERM_ALL] = thermal_plant_effective_capacity(EP, inputs, THERM_ALL, i)' * weighted_price
- tempresrev[VRE] = dfGen[VRE, sym] .* (value.(EP[:eTotalCap][VRE])) .* (inputs["pP_Max"][VRE, :] * weighted_price)
- tempresrev[MUST_RUN] = dfGen[MUST_RUN, sym] .* (value.(EP[:eTotalCap][MUST_RUN])) .* (inputs["pP_Max"][MUST_RUN, :] * weighted_price)
- tempresrev[HYDRO_RES] = dfGen[HYDRO_RES, sym] .* (value.(EP[:vP][HYDRO_RES, :]) * weighted_price)
+ tempresrev[VRE] = derating_factor.(gen.Vre, tag=i) .* (value.(EP[:eTotalCap][VRE])) .* (inputs["pP_Max"][VRE, :] * weighted_price)
+ tempresrev[MUST_RUN] = derating_factor.(gen.MustRun, tag=i) .* (value.(EP[:eTotalCap][MUST_RUN])) .* (inputs["pP_Max"][MUST_RUN, :] * weighted_price)
+ tempresrev[HYDRO_RES] = derating_factor.(gen.Hydro, tag=i) .* (value.(EP[:vP][HYDRO_RES, :]) * weighted_price)
if !isempty(STOR_ALL)
- tempresrev[STOR_ALL] = dfGen[STOR_ALL, sym] .* ((value.(EP[:vP][STOR_ALL, :]) - value.(EP[:vCHARGE][STOR_ALL, :]).data + value.(EP[:vCAPRES_discharge][STOR_ALL, :]).data - value.(EP[:vCAPRES_charge][STOR_ALL, :]).data) * weighted_price)
+ tempresrev[STOR_ALL] = derating_factor.(gen.Storage, tag=i) .* ((value.(EP[:vP][STOR_ALL, :]) - value.(EP[:vCHARGE][STOR_ALL, :]).data + value.(EP[:vCAPRES_discharge][STOR_ALL, :]).data - value.(EP[:vCAPRES_charge][STOR_ALL, :]).data) * weighted_price)
end
if !isempty(FLEX)
- tempresrev[FLEX] = dfGen[FLEX, sym] .* ((value.(EP[:vCHARGE_FLEX][FLEX, :]).data - value.(EP[:vP][FLEX, :])) * weighted_price)
+ tempresrev[FLEX] = derating_factor.(gen.FlexDemand, tag=i) .* ((value.(EP[:vCHARGE_FLEX][FLEX, :]).data - value.(EP[:vP][FLEX, :])) * weighted_price)
end
if !isempty(VRE_STOR)
- sym_vs = Symbol("CapResVreStor_$i")
- tempresrev[VRE_STOR] = dfVRE_STOR[!, sym_vs] .* ((value.(EP[:vP][VRE_STOR, :])) * weighted_price)
- tempresrev[VRE_STOR_STOR] .-= dfVRE_STOR[((dfVRE_STOR.STOR_DC_DISCHARGE.!=0) .| (dfVRE_STOR.STOR_DC_CHARGE.!=0) .| (dfVRE_STOR.STOR_AC_DISCHARGE.!=0) .|(dfVRE_STOR.STOR_AC_CHARGE.!=0)), sym_vs] .* (value.(EP[:vCHARGE_VRE_STOR][VRE_STOR_STOR, :]).data * weighted_price)
- tempresrev[DC_DISCHARGE] .+= dfVRE_STOR[(dfVRE_STOR.STOR_DC_DISCHARGE.!=0), sym_vs] .* ((value.(EP[:vCAPRES_DC_DISCHARGE][DC_DISCHARGE, :]).data .* dfVRE_STOR[(dfVRE_STOR.STOR_DC_DISCHARGE.!=0), :EtaInverter]) * weighted_price)
- tempresrev[AC_DISCHARGE] .+= dfVRE_STOR[(dfVRE_STOR.STOR_AC_DISCHARGE.!=0), sym_vs] .* ((value.(EP[:vCAPRES_AC_DISCHARGE][AC_DISCHARGE, :]).data) * weighted_price)
- tempresrev[DC_CHARGE] .-= dfVRE_STOR[(dfVRE_STOR.STOR_DC_CHARGE.!=0), sym_vs] .* ((value.(EP[:vCAPRES_DC_CHARGE][DC_CHARGE, :]).data ./ dfVRE_STOR[(dfVRE_STOR.STOR_DC_CHARGE.!=0), :EtaInverter]) * weighted_price)
- tempresrev[AC_CHARGE] .-= dfVRE_STOR[(dfVRE_STOR.STOR_AC_CHARGE.!=0), sym_vs] .* ((value.(EP[:vCAPRES_AC_CHARGE][AC_CHARGE, :]).data) * weighted_price)
+ gen_VRE_STOR = gen.VreStorage
+ tempresrev[VRE_STOR] = derating_factor.(gen_VRE_STOR, tag=i) .* ((value.(EP[:vP][VRE_STOR, :])) * weighted_price)
+ tempresrev[VRE_STOR_STOR] .-= derating_factor.(gen_VRE_STOR[(gen_VRE_STOR.stor_dc_discharge.!=0) .| (gen_VRE_STOR.stor_dc_charge.!=0) .| (gen_VRE_STOR.stor_ac_discharge.!=0) .|(gen_VRE_STOR.stor_ac_charge.!=0)], tag=i) .* (value.(EP[:vCHARGE_VRE_STOR][VRE_STOR_STOR, :]).data * weighted_price)
+ tempresrev[DC_DISCHARGE] .+= derating_factor.(gen_VRE_STOR[(gen_VRE_STOR.stor_dc_discharge.!=0)], tag=i) .* ((value.(EP[:vCAPRES_DC_DISCHARGE][DC_DISCHARGE, :]).data .* etainverter.(gen_VRE_STOR[(gen_VRE_STOR.stor_dc_discharge.!=0)])) * weighted_price)
+ tempresrev[AC_DISCHARGE] .+= derating_factor.(gen_VRE_STOR[(gen_VRE_STOR.stor_ac_discharge.!=0)], tag=i) .* ((value.(EP[:vCAPRES_AC_DISCHARGE][AC_DISCHARGE, :]).data) * weighted_price)
+ tempresrev[DC_CHARGE] .-= derating_factor.(gen_VRE_STOR[(gen_VRE_STOR.stor_dc_charge.!=0)], tag=i) .* ((value.(EP[:vCAPRES_DC_CHARGE][DC_CHARGE, :]).data ./ etainverter.(gen_VRE_STOR[(gen_VRE_STOR.stor_dc_charge.!=0)])) * weighted_price)
+ tempresrev[AC_CHARGE] .-= derating_factor.(gen_VRE_STOR[(gen_VRE_STOR.stor_ac_charge.!=0)], tag=i) .* ((value.(EP[:vCAPRES_AC_CHARGE][AC_CHARGE, :]).data) * weighted_price)
end
tempresrev *= scale_factor
annual_sum .+= tempresrev
- dfResRevenue = hcat(dfResRevenue, DataFrame([tempresrev], [sym]))
+ dfResRevenue = hcat(dfResRevenue, DataFrame([tempresrev], [Symbol("CapRes_$i")]))
end
dfResRevenue.AnnualSum = annual_sum
CSV.write(joinpath(path, "ReserveMarginRevenue.csv"), dfResRevenue)
diff --git a/src/write_outputs/capacity_reserve_margin/write_reserve_margin_slack.jl b/src/write_outputs/capacity_reserve_margin/write_reserve_margin_slack.jl
index 53a79b3b11..221241c278 100644
--- a/src/write_outputs/capacity_reserve_margin/write_reserve_margin_slack.jl
+++ b/src/write_outputs/capacity_reserve_margin/write_reserve_margin_slack.jl
@@ -11,7 +11,7 @@ function write_reserve_margin_slack(path::AbstractString, inputs::Dict, setup::D
temp_ResMar_slack .*= ModelScalingFactor # Convert GW to MW
end
dfResMar_slack = hcat(dfResMar_slack, DataFrame(temp_ResMar_slack, [Symbol("t$t") for t in 1:T]))
- CSV.write(joinpath(path, "ReserveMargin_prices_and_penalties.csv"), dftranspose(dfResMar_slack, false), writeheader=false)
+ CSV.write(joinpath(path, "ReserveMargin_prices_and_penalties.csv"), dftranspose(dfResMar_slack, false), header=false)
return dfResMar_slack
end
diff --git a/src/write_outputs/capacity_reserve_margin/write_virtual_discharge.jl b/src/write_outputs/capacity_reserve_margin/write_virtual_discharge.jl
index 1949cde0ba..b093e984d9 100644
--- a/src/write_outputs/capacity_reserve_margin/write_virtual_discharge.jl
+++ b/src/write_outputs/capacity_reserve_margin/write_virtual_discharge.jl
@@ -5,12 +5,14 @@ Function for writing the "virtual" discharge of each storage technology. Virtual
allow storage resources to contribute to the capacity reserve margin without actually discharging.
"""
function write_virtual_discharge(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
+ zones = zone_id.(gen)
+
G = inputs["G"] # Number of resources (generators, storage, DR, and DERs)
T = inputs["T"] # Number of time steps (hours)
STOR_ALL = inputs["STOR_ALL"]
- dfVirtualDischarge = DataFrame(Resource = inputs["RESOURCES"], Zone = dfGen[!,:Zone], AnnualSum = Array{Union{Missing,Float64}}(undef, G))
+ dfVirtualDischarge = DataFrame(Resource = inputs["RESOURCE_NAMES"], Zone = zones, AnnualSum = Array{Union{Missing,Float64}}(undef, G))
virtual_discharge = zeros(G,T)
scale_factor = setup["ParameterScale"] == 1 ? ModelScalingFactor : 1
@@ -27,6 +29,6 @@ function write_virtual_discharge(path::AbstractString, inputs::Dict, setup::Dict
total[:, 4:T+3] .= sum(virtual_discharge, dims = 1)
rename!(total,auxNew_Names)
dfVirtualDischarge = vcat(dfVirtualDischarge, total)
- CSV.write(joinpath(path, "virtual_discharge.csv"), dftranspose(dfVirtualDischarge, false), writeheader=false)
+ CSV.write(joinpath(path, "virtual_discharge.csv"), dftranspose(dfVirtualDischarge, false), header=false)
return dfVirtualDischarge
end
diff --git a/src/write_outputs/energy_share_requirement/write_esr_revenue.jl b/src/write_outputs/energy_share_requirement/write_esr_revenue.jl
index 9f74ed5baa..271f25a167 100644
--- a/src/write_outputs/energy_share_requirement/write_esr_revenue.jl
+++ b/src/write_outputs/energy_share_requirement/write_esr_revenue.jl
@@ -4,14 +4,21 @@
Function for reporting the renewable/clean credit revenue earned by each generator listed in the input file. GenX will print this file only when RPS/CES is modeled and the shadow price can be obtained form the solver. Each row corresponds to a generator, and each column starting from the 6th to the second last is the total revenue earned from each RPS constraint. The revenue is calculated as the total annual generation (if elgible for the corresponding constraint) multiplied by the RPS/CES price. The last column is the total revenue received from all constraint. The unit is \$.
"""
function write_esr_revenue(path::AbstractString, inputs::Dict, setup::Dict, dfPower::DataFrame, dfESR::DataFrame, EP::Model)
- dfGen = inputs["dfGen"]
- dfESRRev = DataFrame(region = dfGen[!,:region], Resource = inputs["RESOURCES"], zone = dfGen[!,:Zone], Cluster = dfGen[!,:cluster], R_ID = dfGen[!,:R_ID])
+ gen = inputs["RESOURCES"]
+ regions = region.(gen)
+ clusters = cluster.(gen)
+ zones = zone_id.(gen)
+ rid = resource_id.(gen)
+
+ dfESRRev = DataFrame(region = regions, Resource = inputs["RESOURCE_NAMES"], zone = zones, Cluster = clusters, R_ID = rid)
G = inputs["G"]
nESR = inputs["nESR"]
weight = inputs["omega"]
- VRE_STOR = inputs["VRE_STOR"]
- dfVRE_STOR = inputs["dfVRE_STOR"]
+ # Load VRE-storage inputs
+ VRE_STOR = inputs["VRE_STOR"] # Set of VRE-STOR generators (indices)
+
if !isempty(VRE_STOR)
+ gen_VRE_STOR = gen.VreStorage # Set of VRE-STOR generators (objects)
SOLAR = inputs["VS_SOLAR"]
WIND = inputs["VS_WIND"]
SOLAR_ONLY = setdiff(SOLAR, WIND)
@@ -19,41 +26,39 @@ function write_esr_revenue(path::AbstractString, inputs::Dict, setup::Dict, dfPo
SOLAR_WIND = intersect(SOLAR, WIND)
end
- by_rid(rid, sym) = by_rid_df(rid, sym, dfVRE_STOR)
for i in 1:nESR
esr_col = Symbol("ESR_$i")
price = dfESR[i, :ESR_Price]
- derated_annual_net_generation = dfPower[1:G,:AnnualSum] .* dfGen[!,esr_col]
+ derated_annual_net_generation = dfPower[1:G,:AnnualSum] .* esr.(gen, tag=i)
revenue = derated_annual_net_generation * price
dfESRRev[!, esr_col] = revenue
if !isempty(VRE_STOR)
- esr_vrestor_col = Symbol("ESRVreStor_$i")
if !isempty(SOLAR_ONLY)
- solar_resources = ((dfVRE_STOR.WIND.==0) .& (dfVRE_STOR.SOLAR.!=0))
+ solar_resources = ((gen_VRE_STOR.wind.==0) .& (gen_VRE_STOR.solar.!=0))
dfESRRev[SOLAR, esr_col] = (
value.(EP[:vP_SOLAR][SOLAR, :]).data
- .* dfVRE_STOR[solar_resources, :EtaInverter] * weight
- ) .* dfVRE_STOR[solar_resources,esr_vrestor_col] * price
+ .* etainverter.(gen_VRE_STOR[solar_resources]) * weight
+ ) .* esr_vrestor.(gen_VRE_STOR[solar_resources], tag=i) * price
end
if !isempty(WIND_ONLY)
- wind_resources = ((dfVRE_STOR.WIND.!=0) .& (dfVRE_STOR.SOLAR.==0))
+ wind_resources = ((gen_VRE_STOR.wind.!=0) .& (gen_VRE_STOR.solar.==0))
dfESRRev[WIND, esr_col] = (
value.(EP[:vP_WIND][WIND, :]).data
* weight
- ) .* dfVRE_STOR[wind_resources,esr_vrestor_col] * price
+ ) .* esr_vrestor.(gen_VRE_STOR[wind_resources], tag=i) * price
end
if !isempty(SOLAR_WIND)
- solar_and_wind_resources = ((dfVRE_STOR.WIND.!=0) .& (dfVRE_STOR.SOLAR.!=0))
+ solar_and_wind_resources = ((gen_VRE_STOR.wind.!=0) .& (gen_VRE_STOR.solar.!=0))
dfESRRev[SOLAR_WIND, esr_col] = (
(
(value.(EP[:vP_WIND][SOLAR_WIND, :]).data * weight)
- .* dfVRE_STOR[solar_and_wind_resources,esr_vrestor_col] * price
+ .* esr_vrestor.(gen_VRE_STOR[solar_and_wind_resources], tag=i) * price
) + (
value.(EP[:vP_SOLAR][SOLAR_WIND, :]).data
- .* dfVRE_STOR[solar_and_wind_resources, :EtaInverter]
+ .* etainverter.(gen_VRE_STOR[solar_and_wind_resources])
* weight
- ) .* dfVRE_STOR[solar_and_wind_resources,esr_vrestor_col] * price
+ ) .* esr_vrestor.(gen_VRE_STOR[solar_and_wind_resources], tag=i) * price
)
end
end
diff --git a/src/write_outputs/hydrogen/write_hourly_matching_prices.jl b/src/write_outputs/hydrogen/write_hourly_matching_prices.jl
index 1e4188a0b6..c804d810c4 100644
--- a/src/write_outputs/hydrogen/write_hourly_matching_prices.jl
+++ b/src/write_outputs/hydrogen/write_hourly_matching_prices.jl
@@ -11,7 +11,7 @@ function write_hourly_matching_prices(path::AbstractString, inputs::Dict, setup:
auxNew_Names=[Symbol("Zone");[Symbol("t$t") for t in 1:T]]
rename!(dfHourlyMatchPrices,auxNew_Names)
- CSV.write(joinpath(path, "hourly_matching_prices.csv"), dftranspose(dfHourlyMatchPrices, false), writeheader=false)
+ CSV.write(joinpath(path, "hourly_matching_prices.csv"), dftranspose(dfHourlyMatchPrices, false), header=false)
return dfHourlyMatchPrices
end
diff --git a/src/write_outputs/long_duration_storage/write_opwrap_lds_dstor.jl b/src/write_outputs/long_duration_storage/write_opwrap_lds_dstor.jl
index 332d7ad56b..a5ce31ec7b 100644
--- a/src/write_outputs/long_duration_storage/write_opwrap_lds_dstor.jl
+++ b/src/write_outputs/long_duration_storage/write_opwrap_lds_dstor.jl
@@ -1,11 +1,13 @@
function write_opwrap_lds_dstor(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
## Extract data frames from input dictionary
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
+ zones = zone_id.(gen)
+
W = inputs["REP_PERIOD"] # Number of subperiods
G = inputs["G"] # Number of resources (generators, storage, DR, and DERs)
#Excess inventory of storage period built up during representative period w
- dfdStorage = DataFrame(Resource = inputs["RESOURCES"], Zone = dfGen[!,:Zone])
+ dfdStorage = DataFrame(Resource = inputs["RESOURCE_NAMES"], Zone = zones)
dsoc = zeros(G,W)
for i in 1:G
if i in inputs["STOR_LONG_DURATION"]
@@ -24,5 +26,5 @@ function write_opwrap_lds_dstor(path::AbstractString, inputs::Dict, setup::Dict,
dfdStorage = hcat(dfdStorage, DataFrame(dsoc, :auto))
auxNew_Names=[Symbol("Resource");Symbol("Zone");[Symbol("w$t") for t in 1:W]]
rename!(dfdStorage,auxNew_Names)
- CSV.write(joinpath(path, "dStorage.csv"), dftranspose(dfdStorage, false), writeheader=false)
+ CSV.write(joinpath(path, "dStorage.csv"), dftranspose(dfdStorage, false), header=false)
end
diff --git a/src/write_outputs/long_duration_storage/write_opwrap_lds_stor_init.jl b/src/write_outputs/long_duration_storage/write_opwrap_lds_stor_init.jl
index 873b3a53ce..bf1bda48aa 100644
--- a/src/write_outputs/long_duration_storage/write_opwrap_lds_stor_init.jl
+++ b/src/write_outputs/long_duration_storage/write_opwrap_lds_stor_init.jl
@@ -1,11 +1,13 @@
function write_opwrap_lds_stor_init(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
## Extract data frames from input dictionary
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
+ zones = zone_id.(gen)
+
G = inputs["G"]
# Initial level of storage in each modeled period
NPeriods = size(inputs["Period_Map"])[1]
- dfStorageInit = DataFrame(Resource = inputs["RESOURCES"], Zone = dfGen[!,:Zone])
+ dfStorageInit = DataFrame(Resource = inputs["RESOURCE_NAMES"], Zone = zones)
socw = zeros(G,NPeriods)
for i in 1:G
if i in inputs["STOR_LONG_DURATION"]
@@ -24,5 +26,5 @@ function write_opwrap_lds_stor_init(path::AbstractString, inputs::Dict, setup::D
dfStorageInit = hcat(dfStorageInit, DataFrame(socw, :auto))
auxNew_Names=[Symbol("Resource");Symbol("Zone");[Symbol("n$t") for t in 1:NPeriods]]
rename!(dfStorageInit,auxNew_Names)
- CSV.write(joinpath(path, "StorageInit.csv"), dftranspose(dfStorageInit, false), writeheader=false)
+ CSV.write(joinpath(path, "StorageInit.csv"), dftranspose(dfStorageInit, false), header=false)
end
diff --git a/src/write_outputs/reserves/write_operating_reserve_price_revenue.jl b/src/write_outputs/reserves/write_operating_reserve_price_revenue.jl
index 769c8b9646..3e69afcef8 100644
--- a/src/write_outputs/reserves/write_operating_reserve_price_revenue.jl
+++ b/src/write_outputs/reserves/write_operating_reserve_price_revenue.jl
@@ -9,12 +9,18 @@ Function for reporting the operating reserve and regulation revenue earned by ge
"""
function write_operating_reserve_regulation_revenue(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
scale_factor = setup["ParameterScale"] == 1 ? ModelScalingFactor : 1
- dfGen = inputs["dfGen"]
+
+ gen = inputs["RESOURCES"]
RSV = inputs["RSV"]
REG = inputs["REG"]
- dfOpRsvRevenue = DataFrame(Region = dfGen[RSV, :region], Resource = dfGen[RSV, :Resource], Zone = dfGen[RSV, :Zone], Cluster = dfGen[RSV, :cluster], AnnualSum = Array{Float64}(undef, length(RSV)),)
- dfOpRegRevenue = DataFrame(Region = dfGen[REG, :region], Resource = dfGen[REG, :Resource], Zone = dfGen[REG, :Zone], Cluster = dfGen[REG, :cluster], AnnualSum = Array{Float64}(undef, length(REG)),)
+ regions = region.(gen)
+ clusters = cluster.(gen)
+ zones = zone_id.(gen)
+ names = inputs["RESOURCE_NAMES"]
+
+ dfOpRsvRevenue = DataFrame(Region = regions[RSV], Resource = names[RSV], Zone = zones[RSV], Cluster = clusters[RSV], AnnualSum = Array{Float64}(undef, length(RSV)),)
+ dfOpRegRevenue = DataFrame(Region = regions[REG], Resource = names[REG], Zone = zones[REG], Cluster = clusters[REG], AnnualSum = Array{Float64}(undef, length(REG)),)
weighted_reg_price = operating_regulation_price(EP, inputs, setup)
weighted_rsv_price = operating_reserve_price(EP, inputs, setup)
diff --git a/src/write_outputs/reserves/write_reg.jl b/src/write_outputs/reserves/write_reg.jl
index 0f306ab309..8d8d51f217 100644
--- a/src/write_outputs/reserves/write_reg.jl
+++ b/src/write_outputs/reserves/write_reg.jl
@@ -1,12 +1,13 @@
function write_reg(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
+ zones = zone_id.(gen)
G = inputs["G"] # Number of resources (generators, storage, DR, and DERs)
T = inputs["T"] # Number of time steps (hours)
REG = inputs["REG"]
scale_factor = setup["ParameterScale"] == 1 ? ModelScalingFactor : 1
# Regulation contributions for each resource in each time step
- dfReg = DataFrame(Resource = inputs["RESOURCES"], Zone = dfGen[!,:Zone])
+ dfReg = DataFrame(Resource = inputs["RESOURCE_NAMES"], Zone = zones)
reg = zeros(G,T)
reg[REG, :] = value.(EP[:vREG][REG, :])
dfReg.AnnualSum = (reg*scale_factor) * inputs["omega"]
@@ -18,5 +19,5 @@ function write_reg(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
total[!, 4:T+3] .= sum(reg, dims = 1)
rename!(total,auxNew_Names)
dfReg = vcat(dfReg, total)
- CSV.write(joinpath(path, "reg.csv"), dftranspose(dfReg, false), writeheader=false)
+ CSV.write(joinpath(path, "reg.csv"), dftranspose(dfReg, false), header=false)
end
diff --git a/src/write_outputs/reserves/write_rsv.jl b/src/write_outputs/reserves/write_rsv.jl
index 53f81d0817..7db756e394 100644
--- a/src/write_outputs/reserves/write_rsv.jl
+++ b/src/write_outputs/reserves/write_rsv.jl
@@ -1,11 +1,12 @@
function write_rsv(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
+ zones = zone_id.(gen)
G = inputs["G"] # Number of resources (generators, storage, DR, and DERs)
T = inputs["T"] # Number of time steps (hours)
RSV = inputs["RSV"]
scale_factor = setup["ParameterScale"] == 1 ? ModelScalingFactor : 1
- dfRsv = DataFrame(Resource = inputs["RESOURCES"], Zone = dfGen[!, :Zone])
+ dfRsv = DataFrame(Resource = inputs["RESOURCE_NAMES"], Zone = zones)
rsv = zeros(G,T)
unmet_vec = zeros(T)
rsv[RSV, :] = value.(EP[:vRSV][RSV, :]) * scale_factor
@@ -23,5 +24,5 @@ function write_rsv(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
rename!(total,auxNew_Names)
rename!(unmet,auxNew_Names)
dfRsv = vcat(dfRsv, unmet, total)
- CSV.write(joinpath(path, "reg_dn.csv"), dftranspose(dfRsv, false), writeheader=false)
+ CSV.write(joinpath(path, "reg_dn.csv"), dftranspose(dfRsv, false), header=false)
end
diff --git a/src/write_outputs/transmission/write_transmission_flows.jl b/src/write_outputs/transmission/write_transmission_flows.jl
index 22ce42ca7f..28a6fddffa 100644
--- a/src/write_outputs/transmission/write_transmission_flows.jl
+++ b/src/write_outputs/transmission/write_transmission_flows.jl
@@ -16,5 +16,5 @@ function write_transmission_flows(path::AbstractString, inputs::Dict, setup::Dic
total[:, 3:T+2] .= sum(flow, dims = 1)
rename!(total,auxNew_Names)
dfFlow = vcat(dfFlow, total)
- CSV.write(joinpath(path, "flow.csv"), dftranspose(dfFlow, false), writeheader=false)
+ CSV.write(joinpath(path, "flow.csv"), dftranspose(dfFlow, false), header=false)
end
diff --git a/src/write_outputs/transmission/write_transmission_losses.jl b/src/write_outputs/transmission/write_transmission_losses.jl
index 127d90fbc5..583e00dc9f 100644
--- a/src/write_outputs/transmission/write_transmission_losses.jl
+++ b/src/write_outputs/transmission/write_transmission_losses.jl
@@ -18,5 +18,5 @@ function write_transmission_losses(path::AbstractString, inputs::Dict, setup::Di
total[:, 3:T+2] .= sum(tlosses, dims = 1)
rename!(total,auxNew_Names)
dfTLosses = vcat(dfTLosses, total)
- CSV.write(joinpath(path, "tlosses.csv"), dftranspose(dfTLosses, false), writeheader=false)
+ CSV.write(joinpath(path, "tlosses.csv"), dftranspose(dfTLosses, false), header=false)
end
diff --git a/src/write_outputs/ucommit/write_commit.jl b/src/write_outputs/ucommit/write_commit.jl
index cc1e21dda3..3e4eff5387 100644
--- a/src/write_outputs/ucommit/write_commit.jl
+++ b/src/write_outputs/ucommit/write_commit.jl
@@ -1,14 +1,16 @@
function write_commit(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
+ zones = zone_id.(gen)
+
G = inputs["G"] # Number of resources (generators, storage, DR, and DERs)
T = inputs["T"] # Number of time steps (hours)
COMMIT = inputs["COMMIT"]
# Commitment state for each resource in each time step
commit = zeros(G,T)
commit[COMMIT, :] = value.(EP[:vCOMMIT][COMMIT, :])
- dfCommit = DataFrame(Resource = inputs["RESOURCES"], Zone = dfGen[!,:Zone])
+ dfCommit = DataFrame(Resource = inputs["RESOURCE_NAMES"], Zone = zones)
dfCommit = hcat(dfCommit, DataFrame(commit, :auto))
auxNew_Names=[Symbol("Resource");Symbol("Zone");[Symbol("t$t") for t in 1:T]]
rename!(dfCommit,auxNew_Names)
- CSV.write(joinpath(path, "commit.csv"), dftranspose(dfCommit, false), writeheader=false)
+ CSV.write(joinpath(path, "commit.csv"), dftranspose(dfCommit, false), header=false)
end
diff --git a/src/write_outputs/ucommit/write_shutdown.jl b/src/write_outputs/ucommit/write_shutdown.jl
index cfe4229610..f524fb4daf 100644
--- a/src/write_outputs/ucommit/write_shutdown.jl
+++ b/src/write_outputs/ucommit/write_shutdown.jl
@@ -1,11 +1,13 @@
function write_shutdown(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
+ zones = zone_id.(gen)
+
G = inputs["G"] # Number of resources (generators, storage, DR, and DERs)
T = inputs["T"] # Number of time steps (hours)
# Operational decision variable states
COMMIT = inputs["COMMIT"]
# Shutdown state for each resource in each time step
- dfShutdown = DataFrame(Resource = inputs["RESOURCES"], Zone = dfGen[!, :Zone])
+ dfShutdown = DataFrame(Resource = inputs["RESOURCE_NAMES"], Zone = zones)
shut = zeros(G,T)
shut[COMMIT, :] = value.(EP[:vSHUT][COMMIT, :])
dfShutdown.AnnualSum = shut * inputs["omega"]
@@ -16,5 +18,5 @@ function write_shutdown(path::AbstractString, inputs::Dict, setup::Dict, EP::Mod
total[:, 4:T+3] .= sum(shut, dims = 1)
rename!(total,auxNew_Names)
dfShutdown = vcat(dfShutdown, total)
- CSV.write(joinpath(path, "shutdown.csv"), dftranspose(dfShutdown, false), writeheader=false)
+ CSV.write(joinpath(path, "shutdown.csv"), dftranspose(dfShutdown, false), header=false)
end
diff --git a/src/write_outputs/ucommit/write_start.jl b/src/write_outputs/ucommit/write_start.jl
index 2621f188c9..71aa7b723e 100644
--- a/src/write_outputs/ucommit/write_start.jl
+++ b/src/write_outputs/ucommit/write_start.jl
@@ -1,10 +1,12 @@
function write_start(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
+ zones = zone_id.(gen)
+
G = inputs["G"] # Number of resources (generators, storage, DR, and DERs)
T = inputs["T"] # Number of time steps (hours)
COMMIT = inputs["COMMIT"]
# Startup state for each resource in each time step
- dfStart = DataFrame(Resource = inputs["RESOURCES"], Zone = dfGen[!, :Zone])
+ dfStart = DataFrame(Resource = inputs["RESOURCE_NAMES"], Zone = zones)
start = zeros(G,T)
start[COMMIT, :] = value.(EP[:vSTART][COMMIT, :])
dfStart.AnnualSum = start * inputs["omega"]
@@ -16,5 +18,5 @@ function write_start(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
total[:, 4:T+3] .= sum(start, dims = 1)
rename!(total,auxNew_Names)
dfStart = vcat(dfStart, total)
- CSV.write(joinpath(path, "start.csv"), dftranspose(dfStart, false), writeheader=false)
+ CSV.write(joinpath(path, "start.csv"), dftranspose(dfStart, false), header=false)
end
diff --git a/src/write_outputs/write_capacity.jl b/src/write_outputs/write_capacity.jl
index 33c6e105fc..0ceae25a7f 100644
--- a/src/write_outputs/write_capacity.jl
+++ b/src/write_outputs/write_capacity.jl
@@ -4,38 +4,38 @@
Function for writing the diferent capacities for the different generation technologies (starting capacities or, existing capacities, retired capacities, and new-built capacities).
"""
function write_capacity(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
- # Capacity decisions
- dfGen = inputs["dfGen"]
+
+ gen = inputs["RESOURCES"]
+
MultiStage = setup["MultiStage"]
- capdischarge = zeros(size(inputs["RESOURCES"]))
+ # Capacity decisions
+ capdischarge = zeros(size(inputs["RESOURCE_NAMES"]))
for i in inputs["NEW_CAP"]
if i in inputs["COMMIT"]
- capdischarge[i] = value(EP[:vCAP][i])*dfGen[!,:Cap_Size][i]
+ capdischarge[i] = value(EP[:vCAP][i])*cap_size(gen[i])
else
capdischarge[i] = value(EP[:vCAP][i])
end
end
- retcapdischarge = zeros(size(inputs["RESOURCES"]))
+ retcapdischarge = zeros(size(inputs["RESOURCE_NAMES"]))
for i in inputs["RET_CAP"]
if i in inputs["COMMIT"]
- retcapdischarge[i] = first(value.(EP[:vRETCAP][i]))*dfGen[!,:Cap_Size][i]
+ retcapdischarge[i] = first(value.(EP[:vRETCAP][i]))*cap_size(gen[i])
else
retcapdischarge[i] = first(value.(EP[:vRETCAP][i]))
end
end
- capacity_constraint_dual = zeros(size(inputs["RESOURCES"]))
- if :Max_Cap_MW in propertynames(dfGen)
- for y in dfGen[dfGen.Max_Cap_MW.>0, :R_ID]
- capacity_constraint_dual[y] = -dual.(EP[:cMaxCap][y])
- end
+ capacity_constraint_dual = zeros(size(inputs["RESOURCE_NAMES"]))
+ for y in ids_with_positive(gen, max_cap_mw)
+ capacity_constraint_dual[y] = -dual.(EP[:cMaxCap][y])
end
- capcharge = zeros(size(inputs["RESOURCES"]))
- retcapcharge = zeros(size(inputs["RESOURCES"]))
- existingcapcharge = zeros(size(inputs["RESOURCES"]))
+ capcharge = zeros(size(inputs["RESOURCE_NAMES"]))
+ retcapcharge = zeros(size(inputs["RESOURCE_NAMES"]))
+ existingcapcharge = zeros(size(inputs["RESOURCE_NAMES"]))
for i in inputs["STOR_ASYMMETRIC"]
if i in inputs["NEW_CAP_CHARGE"]
capcharge[i] = value(EP[:vCAPCHARGE][i])
@@ -43,12 +43,12 @@ function write_capacity(path::AbstractString, inputs::Dict, setup::Dict, EP::Mod
if i in inputs["RET_CAP_CHARGE"]
retcapcharge[i] = value(EP[:vRETCAPCHARGE][i])
end
- existingcapcharge[i] = MultiStage == 1 ? value(EP[:vEXISTINGCAPCHARGE][i]) : dfGen[!,:Existing_Charge_Cap_MW][i]
+ existingcapcharge[i] = MultiStage == 1 ? value(EP[:vEXISTINGCAPCHARGE][i]) : existing_charge_cap_mw(gen[i])
end
- capenergy = zeros(size(inputs["RESOURCES"]))
- retcapenergy = zeros(size(inputs["RESOURCES"]))
- existingcapenergy = zeros(size(inputs["RESOURCES"]))
+ capenergy = zeros(size(inputs["RESOURCE_NAMES"]))
+ retcapenergy = zeros(size(inputs["RESOURCE_NAMES"]))
+ existingcapenergy = zeros(size(inputs["RESOURCE_NAMES"]))
for i in inputs["STOR_ALL"]
if i in inputs["NEW_CAP_ENERGY"]
capenergy[i] = value(EP[:vCAPENERGY][i])
@@ -56,7 +56,7 @@ function write_capacity(path::AbstractString, inputs::Dict, setup::Dict, EP::Mod
if i in inputs["RET_CAP_ENERGY"]
retcapenergy[i] = value(EP[:vRETCAPENERGY][i])
end
- existingcapenergy[i] = MultiStage == 1 ? value(EP[:vEXISTINGCAPENERGY][i]) : dfGen[i,:Existing_Cap_MWh]
+ existingcapenergy[i] = MultiStage == 1 ? value(EP[:vEXISTINGCAPENERGY][i]) : existing_cap_mwh(gen[i])
end
if !isempty(inputs["VRE_STOR"])
for i in inputs["VS_STOR"]
@@ -66,13 +66,13 @@ function write_capacity(path::AbstractString, inputs::Dict, setup::Dict, EP::Mod
if i in inputs["RET_CAP_STOR"]
retcapenergy[i] = value(EP[:vRETCAPENERGY_VS][i])
end
- existingcapenergy[i] = dfGen[i,:Existing_Cap_MWh] # multistage functionality doesn't exist yet for VRE-storage resources
+ existingcapenergy[i] = existing_cap_mwh(gen[i]) # multistage functionality doesn't exist yet for VRE-storage resources
end
end
dfCap = DataFrame(
- Resource = inputs["RESOURCES"], Zone = dfGen[!,:Zone],
- StartCap = MultiStage == 1 ? value.(EP[:vEXISTINGCAP]) : dfGen[!,:Existing_Cap_MW],
+ Resource = inputs["RESOURCE_NAMES"], Zone = zone_id.(gen),
+ StartCap = MultiStage == 1 ? value.(EP[:vEXISTINGCAP]) : existing_cap_mw.(gen),
RetCap = retcapdischarge[:],
NewCap = capdischarge[:],
EndCap = value.(EP[:eTotalCap]),
diff --git a/src/write_outputs/write_capacityfactor.jl b/src/write_outputs/write_capacityfactor.jl
index 31d0860252..959f4366e2 100644
--- a/src/write_outputs/write_capacityfactor.jl
+++ b/src/write_outputs/write_capacityfactor.jl
@@ -5,7 +5,7 @@ Function for writing the capacity factor of different resources. For co-located
value is calculated if the site has either or both a solar PV or wind resource.
"""
function write_capacityfactor(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
G = inputs["G"] # Number of resources (generators, storage, DR, and DERs)
T = inputs["T"] # Number of time steps (hours)
THERM_ALL = inputs["THERM_ALL"]
@@ -15,7 +15,7 @@ function write_capacityfactor(path::AbstractString, inputs::Dict, setup::Dict, E
ELECTROLYZER = inputs["ELECTROLYZER"]
VRE_STOR = inputs["VRE_STOR"]
- dfCapacityfactor = DataFrame(Resource=inputs["RESOURCES"], Zone=dfGen[!, :Zone], AnnualSum=zeros(G), Capacity=zeros(G), CapacityFactor=zeros(G))
+ dfCapacityfactor = DataFrame(Resource=inputs["RESOURCE_NAMES"], Zone=zone_id.(gen), AnnualSum=zeros(G), Capacity=zeros(G), CapacityFactor=zeros(G))
scale_factor = setup["ParameterScale"] == 1 ? ModelScalingFactor : 1
dfCapacityfactor.AnnualSum .= value.(EP[:vP]) * inputs["omega"] * scale_factor
dfCapacityfactor.Capacity .= value.(EP[:eTotalCap]) * scale_factor
@@ -24,7 +24,7 @@ function write_capacityfactor(path::AbstractString, inputs::Dict, setup::Dict, E
SOLAR = setdiff(inputs["VS_SOLAR"],inputs["VS_WIND"])
WIND = setdiff(inputs["VS_WIND"],inputs["VS_SOLAR"])
SOLAR_WIND = intersect(inputs["VS_SOLAR"],inputs["VS_WIND"])
- dfVRE_STOR = inputs["dfVRE_STOR"]
+ gen_VRE_STOR = gen.VreStorage
if !isempty(SOLAR)
dfCapacityfactor.AnnualSum[SOLAR] .= value.(EP[:vP_SOLAR][SOLAR, :]).data * inputs["omega"] * scale_factor
dfCapacityfactor.Capacity[SOLAR] .= value.(EP[:eTotalCap_SOLAR][SOLAR]).data * scale_factor
@@ -35,8 +35,8 @@ function write_capacityfactor(path::AbstractString, inputs::Dict, setup::Dict, E
end
if !isempty(SOLAR_WIND)
dfCapacityfactor.AnnualSum[SOLAR_WIND] .= (value.(EP[:vP_WIND][SOLAR_WIND, :]).data
- + value.(EP[:vP_SOLAR][SOLAR_WIND, :]).data .* dfVRE_STOR[((dfVRE_STOR.SOLAR.!=0) .& (dfVRE_STOR.WIND.!=0)), :EtaInverter]) * inputs["omega"] * scale_factor
- dfCapacityfactor.Capacity[SOLAR_WIND] .= (value.(EP[:eTotalCap_WIND][SOLAR_WIND]).data + value.(EP[:eTotalCap_SOLAR][SOLAR_WIND]).data .* dfVRE_STOR[((dfVRE_STOR.SOLAR.!=0) .& (dfVRE_STOR.WIND.!=0)), :EtaInverter]) * scale_factor
+ + value.(EP[:vP_SOLAR][SOLAR_WIND, :]).data .* etainverter.(gen_VRE_STOR[(gen_VRE_STOR.wind.!=0) .& (gen_VRE_STOR.solar.!=0)])) * inputs["omega"] * scale_factor
+ dfCapacityfactor.Capacity[SOLAR_WIND] .= (value.(EP[:eTotalCap_WIND][SOLAR_WIND]).data + value.(EP[:eTotalCap_SOLAR][SOLAR_WIND]).data .* etainverter.(gen_VRE_STOR[(gen_VRE_STOR.wind.!=0) .& (gen_VRE_STOR.solar.!=0)])) * scale_factor
end
end
diff --git a/src/write_outputs/write_charge.jl b/src/write_outputs/write_charge.jl
index 2229ebd4a4..7913799c6f 100644
--- a/src/write_outputs/write_charge.jl
+++ b/src/write_outputs/write_charge.jl
@@ -4,7 +4,9 @@
Function for writing the charging energy values of the different storage technologies.
"""
function write_charge(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
+ zones = zone_id.(gen)
+
G = inputs["G"] # Number of resources (generators, storage, DR, and DERs)
T = inputs["T"] # Number of time steps (hours)
STOR_ALL = inputs["STOR_ALL"]
@@ -14,7 +16,7 @@ function write_charge(path::AbstractString, inputs::Dict, setup::Dict, EP::Model
VS_STOR = !isempty(VRE_STOR) ? inputs["VS_STOR"] : []
# Power withdrawn to charge each resource in each time step
- dfCharge = DataFrame(Resource = inputs["RESOURCES"], Zone = dfGen[!,:Zone], AnnualSum = Array{Union{Missing,Float64}}(undef, G))
+ dfCharge = DataFrame(Resource = inputs["RESOURCE_NAMES"], Zone = zones, AnnualSum = Array{Union{Missing,Float64}}(undef, G))
charge = zeros(G,T)
scale_factor = setup["ParameterScale"] == 1 ? ModelScalingFactor : 1
@@ -40,6 +42,6 @@ function write_charge(path::AbstractString, inputs::Dict, setup::Dict, EP::Model
total[:, 4:T+3] .= sum(charge, dims = 1)
rename!(total,auxNew_Names)
dfCharge = vcat(dfCharge, total)
- CSV.write(joinpath(path, "charge.csv"), dftranspose(dfCharge, false), writeheader=false)
+ CSV.write(joinpath(path, "charge.csv"), dftranspose(dfCharge, false), header=false)
return dfCharge
end
diff --git a/src/write_outputs/write_charging_cost.jl b/src/write_outputs/write_charging_cost.jl
index 3f87f64549..7c2c84a812 100644
--- a/src/write_outputs/write_charging_cost.jl
+++ b/src/write_outputs/write_charging_cost.jl
@@ -1,5 +1,10 @@
function write_charging_cost(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
+
+ regions = region.(gen)
+ clusters = cluster.(gen)
+ zones = zone_id.(gen)
+
G = inputs["G"] # Number of resources (generators, storage, DR, and DERs)
T = inputs["T"] # Number of time steps (hours)
STOR_ALL = inputs["STOR_ALL"]
@@ -10,19 +15,19 @@ function write_charging_cost(path::AbstractString, inputs::Dict, setup::Dict, EP
price = locational_marginal_price(EP, inputs, setup)
- dfChargingcost = DataFrame(Region = dfGen[!, :region], Resource = inputs["RESOURCES"], Zone = dfGen[!, :Zone], Cluster = dfGen[!, :cluster], AnnualSum = Array{Float64}(undef, G),)
+ dfChargingcost = DataFrame(Region = regions, Resource = inputs["RESOURCE_NAMES"], Zone = zones, Cluster = clusters, AnnualSum = Array{Float64}(undef, G),)
chargecost = zeros(G, T)
if !isempty(STOR_ALL)
- chargecost[STOR_ALL, :] .= (value.(EP[:vCHARGE][STOR_ALL, :]).data) .* transpose(price)[dfGen[STOR_ALL, :Zone], :]
+ chargecost[STOR_ALL, :] .= (value.(EP[:vCHARGE][STOR_ALL, :]).data) .* transpose(price)[zone_id.(gen.Storage), :]
end
if !isempty(FLEX)
- chargecost[FLEX, :] .= value.(EP[:vP][FLEX, :]) .* transpose(price)[dfGen[FLEX, :Zone], :]
+ chargecost[FLEX, :] .= value.(EP[:vP][FLEX, :]) .* transpose(price)[zone_id.(gen.FlexDemand), :]
end
if !isempty(ELECTROLYZER)
- chargecost[ELECTROLYZER, :] .= (value.(EP[:vUSE][ELECTROLYZER, :]).data) .* transpose(price)[dfGen[ELECTROLYZER, :Zone], :]
+ chargecost[ELECTROLYZER, :] .= (value.(EP[:vUSE][ELECTROLYZER, :]).data) .* transpose(price)[zone_id.(gen.Electrolyzer), :]
end
if !isempty(VS_STOR)
- chargecost[VS_STOR, :] .= value.(EP[:vCHARGE_VRE_STOR][VS_STOR, :].data) .* transpose(price)[dfGen[VS_STOR, :Zone], :]
+ chargecost[VS_STOR, :] .= value.(EP[:vCHARGE_VRE_STOR][VS_STOR, :].data) .* transpose(price)[zone_id.(gen[VS_STOR]), :]
end
if setup["ParameterScale"] == 1
chargecost *= ModelScalingFactor
diff --git a/src/write_outputs/write_co2.jl b/src/write_outputs/write_co2.jl
index 3cbf100fd0..b06c9d8802 100644
--- a/src/write_outputs/write_co2.jl
+++ b/src/write_outputs/write_co2.jl
@@ -11,13 +11,13 @@ end
function write_co2_emissions_plant(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
G = inputs["G"] # Number of resources (generators, storage, DR, and DERs)
T = inputs["T"] # Number of time steps (hours)
Z = inputs["Z"] # Number of zones
# CO2 emissions by plant
- dfEmissions_plant = DataFrame(Resource=inputs["RESOURCES"], Zone=dfGen[!, :Zone], AnnualSum=zeros(G))
+ dfEmissions_plant = DataFrame(Resource=inputs["RESOURCE_NAMES"], Zone=zone_id.(gen), AnnualSum=zeros(G))
emissions_plant = value.(EP[:eEmissionsByPlant])
if setup["ParameterScale"] == 1
emissions_plant *= ModelScalingFactor
@@ -31,17 +31,17 @@ function write_co2_emissions_plant(path::AbstractString, inputs::Dict, setup::Di
total = DataFrame(["Total" 0 sum(dfEmissions_plant[!, :AnnualSum]) fill(0.0, (1, T))], auxNew_Names)
total[!, 4:T+3] .= sum(emissions_plant, dims=1)
dfEmissions_plant = vcat(dfEmissions_plant, total)
- CSV.write(joinpath(path, "emissions_plant.csv"), dftranspose(dfEmissions_plant, false), writeheader=false)
+ CSV.write(joinpath(path, "emissions_plant.csv"), dftranspose(dfEmissions_plant, false), header=false)
end
function write_co2_capture_plant(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
G = inputs["G"] # Number of resources (generators, storage, DR, and DERs)
T = inputs["T"] # Number of time steps (hours)
Z = inputs["Z"] # Number of zones
- dfCapturedEmissions_plant = DataFrame(Resource=inputs["RESOURCES"], Zone=dfGen[!, :Zone], AnnualSum=zeros(G))
- if any(dfGen.CO2_Capture_Fraction .!= 0)
+ dfCapturedEmissions_plant = DataFrame(Resource=inputs["RESOURCE_NAMES"], Zone=zone_id.(gen), AnnualSum=zeros(G))
+ if any(co2_capture_fraction.(gen) .!= 0)
# Captured CO2 emissions by plant
emissions_captured_plant = zeros(G, T)
emissions_captured_plant = (value.(EP[:eEmissionsCaptureByPlant]))
@@ -58,6 +58,6 @@ function write_co2_capture_plant(path::AbstractString, inputs::Dict, setup::Dict
total[!, 4:T+3] .= sum(emissions_captured_plant, dims=1)
dfCapturedEmissions_plant = vcat(dfCapturedEmissions_plant, total)
- CSV.write(joinpath(path, "captured_emissions_plant.csv"), dftranspose(dfCapturedEmissions_plant, false), writeheader=false)
+ CSV.write(joinpath(path, "captured_emissions_plant.csv"), dftranspose(dfCapturedEmissions_plant, false), header=false)
end
end
diff --git a/src/write_outputs/write_costs.jl b/src/write_outputs/write_costs.jl
index 6c78735e79..2814655359 100644
--- a/src/write_outputs/write_costs.jl
+++ b/src/write_outputs/write_costs.jl
@@ -5,7 +5,7 @@ Function for writing the costs pertaining to the objective function (fixed, vari
"""
function write_costs(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
## Cost results
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
SEG = inputs["SEG"] # Number of lines
Z = inputs["Z"] # Number of zones
T = inputs["T"] # Number of time steps (hours)
@@ -80,7 +80,7 @@ function write_costs(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
dfCost[!,2][11] = value(EP[:eTotalCGrid]) * (setup["ParameterScale"] == 1 ? ModelScalingFactor^2 : 1)
end
- if any(dfGen.CO2_Capture_Fraction .!= 0)
+ if any(co2_capture_fraction.(gen) .!= 0)
dfCost[10,2] += value(EP[:eTotaleCCO2Sequestration])
end
@@ -102,7 +102,7 @@ function write_costs(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
tempHydrogenValue = 0.0
tempCCO2 = 0.0
- Y_ZONE = dfGen[dfGen[!,:Zone].==z,:R_ID]
+ Y_ZONE = resources_in_zone_by_rid(gen,z)
STOR_ALL_ZONE = intersect(inputs["STOR_ALL"], Y_ZONE)
STOR_ASYMMETRIC_ZONE = intersect(inputs["STOR_ASYMMETRIC"], Y_ZONE)
FLEX_ZONE = intersect(inputs["FLEX"], Y_ZONE)
@@ -137,8 +137,8 @@ function write_costs(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
tempCTotal += eCVarFlex_in
end
if !isempty(VRE_STOR)
- dfVRE_STOR = inputs["dfVRE_STOR"]
- Y_ZONE_VRE_STOR = dfVRE_STOR[dfVRE_STOR[!,:Zone].==z,:R_ID]
+ gen_VRE_STOR = gen.VreStorage
+ Y_ZONE_VRE_STOR = resources_in_zone_by_rid(gen_VRE_STOR, z)
# Fixed Costs
eCFix_VRE_STOR = 0.0
@@ -218,7 +218,7 @@ function write_costs(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
tempCNSE = sum(value.(EP[:eCNSE][:,:,z]))
tempCTotal += tempCNSE
- if any(dfGen.CO2_Capture_Fraction .!=0)
+ if any(co2_capture_fraction.(gen) .!=0)
tempCCO2 = sum(value.(EP[:ePlantCCO2Sequestration][Y_ZONE,:]))
tempCTotal += tempCCO2
end
diff --git a/src/write_outputs/write_curtailment.jl b/src/write_outputs/write_curtailment.jl
index fa60f82f93..76061269a5 100644
--- a/src/write_outputs/write_curtailment.jl
+++ b/src/write_outputs/write_curtailment.jl
@@ -5,11 +5,11 @@ Function for writing the curtailment values of the different variable renewable
co-located).
"""
function write_curtailment(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
G = inputs["G"] # Number of resources (generators, storage, DR, and DERs)
T = inputs["T"] # Number of time steps (hours)
VRE = inputs["VRE"]
- dfCurtailment = DataFrame(Resource = inputs["RESOURCES"], Zone = dfGen[!, :Zone], AnnualSum = zeros(G))
+ dfCurtailment = DataFrame(Resource = inputs["RESOURCE_NAMES"], Zone = zone_id.(gen), AnnualSum = zeros(G))
curtailment = zeros(G, T)
scale_factor = setup["ParameterScale"] == 1 ? ModelScalingFactor : 1
curtailment[VRE, :] = scale_factor * (value.(EP[:eTotalCap][VRE]) .* inputs["pP_Max"][VRE, :] .- value.(EP[:vP][VRE, :]))
@@ -19,9 +19,9 @@ function write_curtailment(path::AbstractString, inputs::Dict, setup::Dict, EP::
SOLAR = setdiff(inputs["VS_SOLAR"],inputs["VS_WIND"])
WIND = setdiff(inputs["VS_WIND"],inputs["VS_SOLAR"])
SOLAR_WIND = intersect(inputs["VS_SOLAR"],inputs["VS_WIND"])
- dfVRE_STOR = inputs["dfVRE_STOR"]
+ gen_VRE_STOR = gen.VreStorage
if !isempty(SOLAR)
- curtailment[SOLAR, :] = scale_factor * (value.(EP[:eTotalCap_SOLAR][SOLAR]).data .* inputs["pP_Max_Solar"][SOLAR, :] .- value.(EP[:vP_SOLAR][SOLAR, :]).data) .* dfVRE_STOR[(dfVRE_STOR.SOLAR.!=0), :EtaInverter]
+ curtailment[SOLAR, :] = scale_factor * (value.(EP[:eTotalCap_SOLAR][SOLAR]).data .* inputs["pP_Max_Solar"][SOLAR, :] .- value.(EP[:vP_SOLAR][SOLAR, :]).data) .* etainverter.(gen_VRE_STOR[(gen_VRE_STOR.solar.!=0)])
end
if !isempty(WIND)
curtailment[WIND, :] = scale_factor * (value.(EP[:eTotalCap_WIND][WIND]).data .* inputs["pP_Max_Wind"][WIND, :] .- value.(EP[:vP_WIND][WIND, :]).data)
@@ -29,7 +29,7 @@ function write_curtailment(path::AbstractString, inputs::Dict, setup::Dict, EP::
if !isempty(SOLAR_WIND)
curtailment[SOLAR_WIND, :] = scale_factor * ((value.(EP[:eTotalCap_SOLAR])[SOLAR_WIND].data
.* inputs["pP_Max_Solar"][SOLAR_WIND, :] .- value.(EP[:vP_SOLAR][SOLAR_WIND, :]).data)
- .* dfVRE_STOR[((dfVRE_STOR.SOLAR.!=0) .& (dfVRE_STOR.WIND.!=0)), :EtaInverter]
+ .* etainverter.(gen_VRE_STOR[((gen_VRE_STOR.wind.!=0) .& (gen_VRE_STOR.solar.!=0))])
+ (value.(EP[:eTotalCap_WIND][SOLAR_WIND]).data .* inputs["pP_Max_Wind"][SOLAR_WIND, :] .- value.(EP[:vP_WIND][SOLAR_WIND, :]).data))
end
end
@@ -42,6 +42,6 @@ function write_curtailment(path::AbstractString, inputs::Dict, setup::Dict, EP::
total[:, 4:T+3] .= sum(curtailment, dims = 1)
rename!(total,auxNew_Names)
dfCurtailment = vcat(dfCurtailment, total)
- CSV.write(joinpath(path, "curtail.csv"), dftranspose(dfCurtailment, false), writeheader=false)
+ CSV.write(joinpath(path, "curtail.csv"), dftranspose(dfCurtailment, false), header=false)
return dfCurtailment
end
diff --git a/src/write_outputs/write_emissions.jl b/src/write_outputs/write_emissions.jl
index 34ae042c31..53129e81bc 100644
--- a/src/write_outputs/write_emissions.jl
+++ b/src/write_outputs/write_emissions.jl
@@ -5,8 +5,7 @@ Function for reporting time-dependent CO$_2$ emissions by zone.
"""
function write_emissions(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
- dfGen = inputs["dfGen"]
- G = inputs["G"] # Number of resources (generators, storage, DR, and DERs)
+
T = inputs["T"] # Number of time steps (hours)
Z = inputs["Z"] # Number of zones
@@ -78,5 +77,5 @@ function write_emissions(path::AbstractString, inputs::Dict, setup::Dict, EP::Mo
rename!(total,auxNew_Names)
dfEmissions = vcat(dfEmissions, total)
end
- CSV.write(joinpath(path, "emissions.csv"), dftranspose(dfEmissions, false), writeheader=false)
+ CSV.write(joinpath(path, "emissions.csv"), dftranspose(dfEmissions, false), header=false)
end
diff --git a/src/write_outputs/write_energy_revenue.jl b/src/write_outputs/write_energy_revenue.jl
index f53abbaa5b..92168c52f1 100644
--- a/src/write_outputs/write_energy_revenue.jl
+++ b/src/write_outputs/write_energy_revenue.jl
@@ -4,17 +4,21 @@
Function for writing energy revenue from the different generation technologies.
"""
function write_energy_revenue(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
+ regions = region.(gen)
+ clusters = cluster.(gen)
+ zones = zone_id.(gen)
+
G = inputs["G"] # Number of resources (generators, storage, DR, and DERs)
T = inputs["T"] # Number of time steps (hours)
FLEX = inputs["FLEX"]
NONFLEX = setdiff(collect(1:G), FLEX)
- dfEnergyRevenue = DataFrame(Region = dfGen.region, Resource = inputs["RESOURCES"], Zone = dfGen.Zone, Cluster = dfGen.cluster, AnnualSum = Array{Float64}(undef, G),)
+ dfEnergyRevenue = DataFrame(Region = regions, Resource = inputs["RESOURCE_NAMES"], Zone = zones, Cluster = clusters, AnnualSum = Array{Float64}(undef, G),)
energyrevenue = zeros(G, T)
price = locational_marginal_price(EP, inputs, setup)
- energyrevenue[NONFLEX, :] = value.(EP[:vP][NONFLEX, :]) .* transpose(price)[dfGen[NONFLEX, :Zone], :]
+ energyrevenue[NONFLEX, :] = value.(EP[:vP][NONFLEX, :]) .* transpose(price)[zone_id.(gen[NONFLEX]), :]
if !isempty(FLEX)
- energyrevenue[FLEX, :] = value.(EP[:vCHARGE_FLEX][FLEX, :]).data .* transpose(price)[dfGen[FLEX, :Zone], :]
+ energyrevenue[FLEX, :] = value.(EP[:vCHARGE_FLEX][FLEX, :]).data .* transpose(price)[zone_id.(gen[FLEX]), :]
end
if setup["ParameterScale"] == 1
energyrevenue *= ModelScalingFactor
diff --git a/src/write_outputs/write_fuel_consumption.jl b/src/write_outputs/write_fuel_consumption.jl
index ec88b3bae8..08da77ce2c 100644
--- a/src/write_outputs/write_fuel_consumption.jl
+++ b/src/write_outputs/write_fuel_consumption.jl
@@ -11,13 +11,13 @@ function write_fuel_consumption(path::AbstractString, inputs::Dict, setup::Dict,
end
function write_fuel_consumption_plant(path::AbstractString,inputs::Dict, setup::Dict, EP::Model)
- dfGen = inputs["dfGen"]
- G = inputs["G"]
+ gen = inputs["RESOURCES"]
+
HAS_FUEL = inputs["HAS_FUEL"]
# Fuel consumption cost by each resource, including start up fuel
- dfPlantFuel = DataFrame(Resource = inputs["RESOURCES"][HAS_FUEL],
- Fuel = dfGen[HAS_FUEL, :Fuel],
- Zone = dfGen[HAS_FUEL,:Zone],
+ dfPlantFuel = DataFrame(Resource = inputs["RESOURCE_NAMES"][HAS_FUEL],
+ Fuel = fuel.(gen[HAS_FUEL]),
+ Zone = zone_id.(gen[HAS_FUEL]),
AnnualSum = zeros(length(HAS_FUEL)))
tempannualsum = value.(EP[:ePlantCFuelOut][HAS_FUEL]) + value.(EP[:ePlantCFuelStart][HAS_FUEL])
@@ -33,7 +33,7 @@ function write_fuel_consumption_ts(path::AbstractString, inputs::Dict, setup::Di
T = inputs["T"] # Number of time steps (hours)
HAS_FUEL = inputs["HAS_FUEL"]
# Fuel consumption by each resource per time step, unit is MMBTU
- dfPlantFuel_TS = DataFrame(Resource = inputs["RESOURCES"][HAS_FUEL])
+ dfPlantFuel_TS = DataFrame(Resource = inputs["RESOURCE_NAMES"][HAS_FUEL])
tempts = value.(EP[:vFuel] + EP[:eStartFuel])[HAS_FUEL,:]
if setup["ParameterScale"] == 1
tempts *= ModelScalingFactor # kMMBTU to MMBTU
@@ -41,7 +41,7 @@ function write_fuel_consumption_ts(path::AbstractString, inputs::Dict, setup::Di
dfPlantFuel_TS = hcat(dfPlantFuel_TS,
DataFrame(tempts, [Symbol("t$t") for t in 1:T]))
CSV.write(joinpath(path, "FuelConsumption_plant_MMBTU.csv"),
- dftranspose(dfPlantFuel_TS, false), writeheader=false)
+ dftranspose(dfPlantFuel_TS, false), header=false)
end
diff --git a/src/write_outputs/write_net_revenue.jl b/src/write_outputs/write_net_revenue.jl
index 653bc05be0..f895a8e624 100644
--- a/src/write_outputs/write_net_revenue.jl
+++ b/src/write_outputs/write_net_revenue.jl
@@ -4,9 +4,13 @@
Function for writing net revenue of different generation technologies.
"""
function write_net_revenue(path::AbstractString, inputs::Dict, setup::Dict, EP::Model, dfCap::DataFrame, dfESRRev::DataFrame, dfResRevenue::DataFrame, dfChargingcost::DataFrame, dfPower::DataFrame, dfEnergyRevenue::DataFrame, dfSubRevenue::DataFrame, dfRegSubRevenue::DataFrame, dfVreStor::DataFrame, dfOpRegRevenue::DataFrame, dfOpRsvRevenue::DataFrame)
- dfGen = inputs["dfGen"]
- T = inputs["T"] # Number of time steps (hours)
- Z = inputs["Z"] # Number of zones
+
+ gen = inputs["RESOURCES"]
+ zones = zone_id.(gen)
+ regions = region.(gen)
+ clusters = cluster.(gen)
+ rid = resource_id.(gen)
+
G = inputs["G"] # Number of generators
COMMIT = inputs["COMMIT"] # Thermal units for unit commitment
STOR_ALL = inputs["STOR_ALL"]
@@ -17,8 +21,8 @@ function write_net_revenue(path::AbstractString, inputs::Dict, setup::Dict, EP::
end
VRE_STOR = inputs["VRE_STOR"]
- dfVRE_STOR = inputs["dfVRE_STOR"]
if !isempty(VRE_STOR)
+ gen_VRE_STOR = gen.VreStorage
VRE_STOR_LENGTH = size(inputs["VRE_STOR"])[1]
SOLAR = inputs["VS_SOLAR"]
WIND = inputs["VS_WIND"]
@@ -31,23 +35,22 @@ function write_net_revenue(path::AbstractString, inputs::Dict, setup::Dict, EP::
end
# Create a NetRevenue dataframe
- dfNetRevenue = DataFrame(region = dfGen[!,:region], Resource = inputs["RESOURCES"], zone = dfGen[!,:Zone], Cluster = dfGen[!,:cluster], R_ID = dfGen[!,:R_ID])
+ dfNetRevenue = DataFrame(region = regions, Resource = inputs["RESOURCE_NAMES"], zone = zones, Cluster = clusters, R_ID = rid)
# Add investment cost to the dataframe
- dfNetRevenue.Inv_cost_MW = dfGen[!,:Inv_Cost_per_MWyr] .* dfCap[1:G,:NewCap]
- dfNetRevenue.Inv_cost_MWh = dfGen[!,:Inv_Cost_per_MWhyr] .* dfCap[1:G,:NewEnergyCap]
- dfNetRevenue.Inv_cost_charge_MW = dfGen[!,:Inv_Cost_Charge_per_MWyr] .* dfCap[1:G,:NewChargeCap]
-
+ dfNetRevenue.Inv_cost_MW = inv_cost_per_mwyr.(gen) .* dfCap[1:G,:NewCap]
+ dfNetRevenue.Inv_cost_MWh = inv_cost_per_mwhyr.(gen) .* dfCap[1:G,:NewEnergyCap]
+ dfNetRevenue.Inv_cost_charge_MW = inv_cost_charge_per_mwyr.(gen) .* dfCap[1:G,:NewChargeCap]
if !isempty(VRE_STOR)
# Doesn't include charge capacities
if !isempty(SOLAR)
- dfNetRevenue.Inv_cost_MW[VRE_STOR] += dfVRE_STOR[!,:Inv_Cost_Solar_per_MWyr] .* dfVreStor[1:VRE_STOR_LENGTH,:NewCapSolar]
+ dfNetRevenue.Inv_cost_MW[VRE_STOR] += inv_cost_solar_per_mwyr.(gen_VRE_STOR) .* dfVreStor[1:VRE_STOR_LENGTH,:NewCapSolar]
end
if !isempty(DC)
- dfNetRevenue.Inv_cost_MW[VRE_STOR] += dfVRE_STOR[!,:Inv_Cost_Inverter_per_MWyr] .* dfVreStor[1:VRE_STOR_LENGTH,:NewCapDC]
- end
+ dfNetRevenue.Inv_cost_MW[VRE_STOR] += inv_cost_inverter_per_mwyr.(gen_VRE_STOR) .* dfVreStor[1:VRE_STOR_LENGTH,:NewCapDC]
+ end
if !isempty(WIND)
- dfNetRevenue.Inv_cost_MW[VRE_STOR] += dfVRE_STOR[!,:Inv_Cost_Wind_per_MWyr] .* dfVreStor[1:VRE_STOR_LENGTH,:NewCapWind]
+ dfNetRevenue.Inv_cost_MW[VRE_STOR] += inv_cost_wind_per_mwyr.(gen_VRE_STOR) .* dfVreStor[1:VRE_STOR_LENGTH,:NewCapWind]
end
end
if setup["ParameterScale"] == 1
@@ -57,28 +60,28 @@ function write_net_revenue(path::AbstractString, inputs::Dict, setup::Dict, EP::
end
# Add operations and maintenance cost to the dataframe
- dfNetRevenue.Fixed_OM_cost_MW = dfGen[!,:Fixed_OM_Cost_per_MWyr] .* dfCap[1:G,:EndCap]
- dfNetRevenue.Fixed_OM_cost_MWh = dfGen[!,:Fixed_OM_Cost_per_MWhyr] .* dfCap[1:G,:EndEnergyCap]
- dfNetRevenue.Fixed_OM_cost_charge_MW = dfGen[!, :Fixed_OM_Cost_Charge_per_MWyr] .* dfCap[1:G, :EndChargeCap]
+ dfNetRevenue.Fixed_OM_cost_MW = fixed_om_cost_per_mwyr.(gen) .* dfCap[1:G,:EndCap]
+ dfNetRevenue.Fixed_OM_cost_MWh = fixed_om_cost_per_mwhyr.(gen) .* dfCap[1:G,:EndEnergyCap]
+ dfNetRevenue.Fixed_OM_cost_charge_MW = fixed_om_cost_charge_per_mwyr.(gen) .* dfCap[1:G, :EndChargeCap]
- dfNetRevenue.Var_OM_cost_out = (dfGen[!,:Var_OM_Cost_per_MWh]) .* dfPower[1:G,:AnnualSum]
+ dfNetRevenue.Var_OM_cost_out = var_om_cost_per_mwh.(gen) .* dfPower[1:G,:AnnualSum]
if !isempty(VRE_STOR)
if !isempty(SOLAR)
- dfNetRevenue.Fixed_OM_cost_MW[VRE_STOR] += dfVRE_STOR[!,:Fixed_OM_Solar_Cost_per_MWyr] .* dfVreStor[1:VRE_STOR_LENGTH, :EndCapSolar]
- dfNetRevenue.Var_OM_cost_out[SOLAR] += dfVRE_STOR[(dfVRE_STOR.SOLAR.!=0),:Var_OM_Cost_per_MWh_Solar] .* (value.(EP[:vP_SOLAR][SOLAR, :]).data .* dfVRE_STOR[(dfVRE_STOR.SOLAR.!=0),:EtaInverter] * inputs["omega"])
+ dfNetRevenue.Fixed_OM_cost_MW[VRE_STOR] += fixed_om_solar_cost_per_mwyr.(gen_VRE_STOR) .* dfVreStor[1:VRE_STOR_LENGTH, :EndCapSolar]
+ dfNetRevenue.Var_OM_cost_out[SOLAR] += var_om_cost_per_mwh_solar.(gen_VRE_STOR[(gen_VRE_STOR.solar.!=0)]) .* (value.(EP[:vP_SOLAR][SOLAR, :]).data .* etainverter.(gen_VRE_STOR[(gen_VRE_STOR.solar.!=0)]) * inputs["omega"])
end
if !isempty(WIND)
- dfNetRevenue.Fixed_OM_cost_MW[VRE_STOR] += dfVRE_STOR[!,:Fixed_OM_Wind_Cost_per_MWyr] .* dfVreStor[1:VRE_STOR_LENGTH, :EndCapWind]
- dfNetRevenue.Var_OM_cost_out[WIND] += dfVRE_STOR[(dfVRE_STOR.WIND.!=0),:Var_OM_Cost_per_MWh_Wind] .* (value.(EP[:vP_WIND][WIND, :]).data * inputs["omega"])
- end
+ dfNetRevenue.Fixed_OM_cost_MW[VRE_STOR] += fixed_om_wind_cost_per_mwyr.(gen_VRE_STOR) .* dfVreStor[1:VRE_STOR_LENGTH, :EndCapWind]
+ dfNetRevenue.Var_OM_cost_out[WIND] += var_om_cost_per_mwh_wind.(gen_VRE_STOR[(gen_VRE_STOR.wind.!=0)]) .* (value.(EP[:vP_WIND][WIND, :]).data * inputs["omega"])
+ end
if !isempty(DC)
- dfNetRevenue.Fixed_OM_cost_MW[VRE_STOR] += dfVRE_STOR[!,:Fixed_OM_Inverter_Cost_per_MWyr] .* dfVreStor[1:VRE_STOR_LENGTH, :EndCapDC]
- end
+ dfNetRevenue.Fixed_OM_cost_MW[VRE_STOR] += fixed_om_inverter_cost_per_mwyr.(gen_VRE_STOR) .* dfVreStor[1:VRE_STOR_LENGTH, :EndCapDC]
+ end
if !isempty(DC_DISCHARGE)
- dfNetRevenue.Var_OM_cost_out[DC_DISCHARGE] += dfVRE_STOR[(dfVRE_STOR.STOR_DC_DISCHARGE.!=0),:Var_OM_Cost_per_MWh_Discharge_DC] .* (value.(EP[:vP_DC_DISCHARGE][DC_DISCHARGE, :]).data .* dfVRE_STOR[(dfVRE_STOR.STOR_DC_DISCHARGE.!=0),:EtaInverter] * inputs["omega"])
+ dfNetRevenue.Var_OM_cost_out[DC_DISCHARGE] += var_om_cost_per_mwh_discharge_dc.(gen_VRE_STOR[(gen_VRE_STOR.stor_dc_discharge.!=0)]) .* (value.(EP[:vP_DC_DISCHARGE][DC_DISCHARGE, :]).data .* etainverter.(gen_VRE_STOR[(gen_VRE_STOR.stor_dc_discharge.!=0)]) * inputs["omega"])
end
if !isempty(AC_DISCHARGE)
- dfNetRevenue.Var_OM_cost_out[AC_DISCHARGE] += dfVRE_STOR[(dfVRE_STOR.STOR_AC_DISCHARGE.!=0),:Var_OM_Cost_per_MWh_Discharge_AC] .* (value.(EP[:vP_AC_DISCHARGE][AC_DISCHARGE, :]).data * inputs["omega"])
+ dfNetRevenue.Var_OM_cost_out[AC_DISCHARGE] += var_om_cost_per_mwh_discharge_ac.(gen_VRE_STOR[(gen_VRE_STOR.stor_ac_discharge.!=0)]) .* (value.(EP[:vP_AC_DISCHARGE][AC_DISCHARGE, :]).data * inputs["omega"])
end
end
if setup["ParameterScale"] == 1
@@ -97,14 +100,14 @@ function write_net_revenue(path::AbstractString, inputs::Dict, setup::Dict, EP::
# Add storage cost to the dataframe
dfNetRevenue.Var_OM_cost_in = zeros(nrow(dfNetRevenue))
if !isempty(STOR_ALL)
- dfNetRevenue.Var_OM_cost_in[STOR_ALL] = dfGen[STOR_ALL,:Var_OM_Cost_per_MWh_In] .* ((value.(EP[:vCHARGE][STOR_ALL,:]).data) * inputs["omega"])
+ dfNetRevenue.Var_OM_cost_in[STOR_ALL] = var_om_cost_per_mwh_in.(gen.Storage) .* ((value.(EP[:vCHARGE][STOR_ALL,:]).data) * inputs["omega"])
end
if !isempty(VRE_STOR)
if !isempty(DC_CHARGE)
- dfNetRevenue.Var_OM_cost_in[DC_CHARGE] += dfVRE_STOR[(dfVRE_STOR.STOR_DC_CHARGE.!=0),:Var_OM_Cost_per_MWh_Charge_DC] .* (value.(EP[:vP_DC_CHARGE][DC_CHARGE, :]).data ./ dfVRE_STOR[(dfVRE_STOR.STOR_DC_CHARGE.!=0),:EtaInverter] * inputs["omega"])
+ dfNetRevenue.Var_OM_cost_in[DC_CHARGE] += var_om_cost_per_mwh_charge_dc.(gen_VRE_STOR[(gen_VRE_STOR.stor_dc_charge.!=0)]) .* (value.(EP[:vP_DC_CHARGE][DC_CHARGE, :]).data ./ etainverter.(gen_VRE_STOR[(gen_VRE_STOR.stor_dc_charge.!=0)]) * inputs["omega"])
end
if !isempty(AC_CHARGE)
- dfNetRevenue.Var_OM_cost_in[AC_CHARGE] += dfVRE_STOR[(dfVRE_STOR.STOR_AC_CHARGE.!=0),:Var_OM_Cost_per_MWh_Charge_AC] .* (value.(EP[:vP_AC_CHARGE][AC_CHARGE, :]).data * inputs["omega"])
+ dfNetRevenue.Var_OM_cost_in[AC_CHARGE] += var_om_cost_per_mwh_charge_ac.(gen_VRE_STOR[(gen_VRE_STOR.stor_ac_charge.!=0)]) .* (value.(EP[:vP_AC_CHARGE][AC_CHARGE, :]).data * inputs["omega"])
end
end
@@ -161,7 +164,7 @@ function write_net_revenue(path::AbstractString, inputs::Dict, setup::Dict, EP::
for cap in 1:inputs["NCO2Cap"]
co2_cap_dual = dual(EP[:cCO2Emissions_systemwide][cap])
CO2ZONES = findall(x->x==1, inputs["dfCO2CapZones"][:,cap])
- GEN_IN_ZONE = dfGen[[y in CO2ZONES for y in dfGen[:, :Zone]], :R_ID]
+ GEN_IN_ZONE = resource_id.(gen[[y in CO2ZONES for y in zone_id.(gen)]])
if setup["CO2Cap"]==1 || setup["CO2Cap"]==2 # Mass-based or Demand + Rate-based
# Cost = sum(sum(emissions for zone z * dual(CO2 constraint[cap]) for z in Z) for cap in setup["NCO2"])
temp_vec = value.(EP[:eEmissionsByPlant][GEN_IN_ZONE, :]) * inputs["omega"]
@@ -169,7 +172,7 @@ function write_net_revenue(path::AbstractString, inputs::Dict, setup::Dict, EP::
elseif setup["CO2Cap"]==3 # Generation + Rate-based
SET_WITH_MAXCO2RATE = union(inputs["THERM_ALL"],inputs["VRE"], inputs["VRE"],inputs["MUST_RUN"],inputs["HYDRO_RES"])
Y = intersect(GEN_IN_ZONE, SET_WITH_MAXCO2RATE)
- temp_vec = (value.(EP[:eEmissionsByPlant][Y,:]) - (value.(EP[:vP][Y,:]) .* inputs["dfMaxCO2Rate"][dfGen[Y, :Zone], cap])) * inputs["omega"]
+ temp_vec = (value.(EP[:eEmissionsByPlant][Y,:]) - (value.(EP[:vP][Y,:]) .* inputs["dfMaxCO2Rate"][zone_id.(gen[Y]), cap])) * inputs["omega"]
dfNetRevenue.EmissionsCost[Y] += - co2_cap_dual * temp_vec
end
end
diff --git a/src/write_outputs/write_nse.jl b/src/write_outputs/write_nse.jl
index 2da7ddb897..ae896fe416 100644
--- a/src/write_outputs/write_nse.jl
+++ b/src/write_outputs/write_nse.jl
@@ -4,7 +4,6 @@
Function for reporting non-served energy for every model zone, time step and cost-segment.
"""
function write_nse(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
- dfGen = inputs["dfGen"]
T = inputs["T"] # Number of time steps (hours)
Z = inputs["Z"] # Number of zones
SEG = inputs["SEG"] # Number of demand curtailment segments
@@ -25,6 +24,6 @@ function write_nse(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
rename!(total,auxNew_Names)
dfNse = vcat(dfNse, total)
- CSV.write(joinpath(path, "nse.csv"), dftranspose(dfNse, false), writeheader=false)
+ CSV.write(joinpath(path, "nse.csv"), dftranspose(dfNse, false), header=false)
return dfNse
end
diff --git a/src/write_outputs/write_power.jl b/src/write_outputs/write_power.jl
index d1aa4e58af..7e1cc986da 100644
--- a/src/write_outputs/write_power.jl
+++ b/src/write_outputs/write_power.jl
@@ -4,12 +4,14 @@
Function for writing the different values of power generated by the different technologies in operation.
"""
function write_power(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
+ zones = zone_id.(gen)
+
G = inputs["G"] # Number of resources (generators, storage, DR, and DERs)
T = inputs["T"] # Number of time steps (hours)
# Power injected by each resource in each time step
- dfPower = DataFrame(Resource = inputs["RESOURCES"], Zone = dfGen[!,:Zone], AnnualSum = Array{Union{Missing,Float64}}(undef, G))
+ dfPower = DataFrame(Resource = inputs["RESOURCE_NAMES"], Zone = zones, AnnualSum = Array{Union{Missing,Float64}}(undef, G))
power = value.(EP[:vP])
if setup["ParameterScale"] == 1
power *= ModelScalingFactor
@@ -25,6 +27,6 @@ function write_power(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
rename!(total,auxNew_Names)
dfPower = vcat(dfPower, total)
- CSV.write(joinpath(path, "power.csv"), dftranspose(dfPower, false), writeheader=false)
+ CSV.write(joinpath(path, "power.csv"), dftranspose(dfPower, false), header=false)
return dfPower
end
diff --git a/src/write_outputs/write_power_balance.jl b/src/write_outputs/write_power_balance.jl
index ae45be8aed..82bd6e2b27 100644
--- a/src/write_outputs/write_power_balance.jl
+++ b/src/write_outputs/write_power_balance.jl
@@ -1,5 +1,5 @@
function write_power_balance(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
T = inputs["T"] # Number of time steps (hours)
Z = inputs["Z"] # Number of zones
SEG = inputs["SEG"] # Number of demand curtailment segments
@@ -23,20 +23,20 @@ function write_power_balance(path::AbstractString, inputs::Dict, setup::Dict, EP
dfPowerBalance = DataFrame(BalanceComponent = repeat(Com_list, outer = Z), Zone = repeat(1:Z, inner = L), AnnualSum = zeros(L * Z))
powerbalance = zeros(Z * L, T) # following the same style of power/charge/storage/nse
for z in 1:Z
- POWER_ZONE = intersect(dfGen[(dfGen[!, :Zone].==z), :R_ID], union(THERM_ALL, VRE, MUST_RUN, HYDRO_RES))
+ POWER_ZONE = intersect(resources_in_zone_by_rid(gen,z), union(THERM_ALL, VRE, MUST_RUN, HYDRO_RES))
powerbalance[(z-1)*L+1, :] = sum(value.(EP[:vP][POWER_ZONE, :]), dims = 1)
- if !isempty(intersect(dfGen[dfGen.Zone.==z, :R_ID], STOR_ALL))
- STOR_ALL_ZONE = intersect(dfGen[dfGen.Zone.==z, :R_ID], STOR_ALL)
+ if !isempty(intersect(resources_in_zone_by_rid(gen,z), STOR_ALL))
+ STOR_ALL_ZONE = intersect(resources_in_zone_by_rid(gen,z), STOR_ALL)
powerbalance[(z-1)*L+2, :] = sum(value.(EP[:vP][STOR_ALL_ZONE, :]), dims = 1)
powerbalance[(z-1)*L+3, :] = (-1) * sum((value.(EP[:vCHARGE][STOR_ALL_ZONE, :]).data), dims = 1)
end
- if !isempty(intersect(dfGen[dfGen.Zone.==z, :R_ID], VRE_STOR))
- VS_ALL_ZONE = intersect(dfGen[dfGen.Zone.==z, :R_ID], inputs["VS_STOR"])
+ if !isempty(intersect(resources_in_zone_by_rid(gen,z), VRE_STOR))
+ VS_ALL_ZONE = intersect(resources_in_zone_by_rid(gen,z), inputs["VS_STOR"])
powerbalance[(z-1)*L+2, :] = sum(value.(EP[:vP][VS_ALL_ZONE, :]), dims = 1)
powerbalance[(z-1)*L+3, :] = (-1) * sum(value.(EP[:vCHARGE_VRE_STOR][VS_ALL_ZONE, :]).data, dims=1)
end
- if !isempty(intersect(dfGen[dfGen.Zone.==z, :R_ID], FLEX))
- FLEX_ZONE = intersect(dfGen[dfGen.Zone.==z, :R_ID], FLEX)
+ if !isempty(intersect(resources_in_zone_by_rid(gen,z), FLEX))
+ FLEX_ZONE = intersect(resources_in_zone_by_rid(gen,z), FLEX)
powerbalance[(z-1)*L+4, :] = sum((value.(EP[:vCHARGE_FLEX][FLEX_ZONE, :]).data), dims = 1)
powerbalance[(z-1)*L+5, :] = (-1) * sum(value.(EP[:vP][FLEX_ZONE, :]), dims = 1)
end
@@ -50,7 +50,7 @@ function write_power_balance(path::AbstractString, inputs::Dict, setup::Dict, EP
end
powerbalance[(z-1)*L+10, :] = (((-1) * inputs["pD"][:, z]))' # Transpose
if !isempty(ELECTROLYZER)
- ELECTROLYZER_ZONE = intersect(dfGen[dfGen.Zone.==z, :R_ID], ELECTROLYZER)
+ ELECTROLYZER_ZONE = intersect(resources_in_zone_by_rid(gen,z), ELECTROLYZER)
powerbalance[(z-1)*L+11, :] = (-1) * sum(value.(EP[:vUSE][ELECTROLYZER_ZONE, :].data), dims = 1)
end
end
@@ -61,5 +61,5 @@ function write_power_balance(path::AbstractString, inputs::Dict, setup::Dict, EP
dfPowerBalance = hcat(dfPowerBalance, DataFrame(powerbalance, :auto))
auxNew_Names = [Symbol("BalanceComponent"); Symbol("Zone"); Symbol("AnnualSum"); [Symbol("t$t") for t in 1:T]]
rename!(dfPowerBalance,auxNew_Names)
- CSV.write(joinpath(path, "power_balance.csv"), dftranspose(dfPowerBalance, false), writeheader=false)
+ CSV.write(joinpath(path, "power_balance.csv"), dftranspose(dfPowerBalance, false), header=false)
end
diff --git a/src/write_outputs/write_price.jl b/src/write_outputs/write_price.jl
index 0a2f743ff9..3bb03c130b 100644
--- a/src/write_outputs/write_price.jl
+++ b/src/write_outputs/write_price.jl
@@ -18,7 +18,7 @@ function write_price(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
rename!(dfPrice,auxNew_Names)
## Linear configuration final output
- CSV.write(joinpath(path, "prices.csv"), dftranspose(dfPrice, false), writeheader=false)
+ CSV.write(joinpath(path, "prices.csv"), dftranspose(dfPrice, false), header=false)
return dfPrice
end
diff --git a/src/write_outputs/write_reliability.jl b/src/write_outputs/write_reliability.jl
index 6f283db048..ce5cd34efd 100644
--- a/src/write_outputs/write_reliability.jl
+++ b/src/write_outputs/write_reliability.jl
@@ -16,6 +16,6 @@ function write_reliability(path::AbstractString, inputs::Dict, setup::Dict, EP::
auxNew_Names=[Symbol("Zone");[Symbol("t$t") for t in 1:T]]
rename!(dfReliability,auxNew_Names)
- CSV.write(joinpath(path, "reliability.csv"), dftranspose(dfReliability, false), writeheader=false)
+ CSV.write(joinpath(path, "reliability.csv"), dftranspose(dfReliability, false), header=false)
end
diff --git a/src/write_outputs/write_storage.jl b/src/write_outputs/write_storage.jl
index 7f8e168a2f..b8d2167dba 100644
--- a/src/write_outputs/write_storage.jl
+++ b/src/write_outputs/write_storage.jl
@@ -4,7 +4,9 @@
Function for writing the capacities of different storage technologies, including hydro reservoir, flexible storage tech etc.
"""
function write_storage(path::AbstractString, inputs::Dict,setup::Dict, EP::Model)
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
+ zones = zone_id.(gen)
+
T = inputs["T"] # Number of time steps (hours)
G = inputs["G"]
STOR_ALL = inputs["STOR_ALL"]
@@ -14,7 +16,7 @@ function write_storage(path::AbstractString, inputs::Dict,setup::Dict, EP::Model
VS_STOR = !isempty(VRE_STOR) ? inputs["VS_STOR"] : []
# Storage level (state of charge) of each resource in each time step
- dfStorage = DataFrame(Resource = inputs["RESOURCES"], Zone = dfGen[!,:Zone])
+ dfStorage = DataFrame(Resource = inputs["RESOURCE_NAMES"], Zone = zones)
storagevcapvalue = zeros(G,T)
if !isempty(inputs["STOR_ALL"])
@@ -36,5 +38,5 @@ function write_storage(path::AbstractString, inputs::Dict,setup::Dict, EP::Model
dfStorage = hcat(dfStorage, DataFrame(storagevcapvalue, :auto))
auxNew_Names=[Symbol("Resource");Symbol("Zone");[Symbol("t$t") for t in 1:T]]
rename!(dfStorage,auxNew_Names)
- CSV.write(joinpath(path, "storage.csv"), dftranspose(dfStorage, false), writeheader=false)
+ CSV.write(joinpath(path, "storage.csv"), dftranspose(dfStorage, false), header=false)
end
diff --git a/src/write_outputs/write_storagedual.jl b/src/write_outputs/write_storagedual.jl
index da2ae8b291..53a99f9603 100644
--- a/src/write_outputs/write_storagedual.jl
+++ b/src/write_outputs/write_storagedual.jl
@@ -4,7 +4,8 @@
Function for reporting dual of storage level (state of charge) balance of each resource in each time step.
"""
function write_storagedual(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
+ zones = zone_id.(gen)
G = inputs["G"] # Number of resources (generators, storage, DR, and DERs)
T = inputs["T"] # Number of time steps (hours)
@@ -21,7 +22,7 @@ function write_storagedual(path::AbstractString, inputs::Dict, setup::Dict, EP::
end
# # Dual of storage level (state of charge) balance of each resource in each time step
- dfStorageDual = DataFrame(Resource = inputs["RESOURCES"], Zone = dfGen[!, :Zone])
+ dfStorageDual = DataFrame(Resource = inputs["RESOURCE_NAMES"], Zone = zones)
dual_values = zeros(G, T)
# Loop over W separately hours_per_subperiod
@@ -58,5 +59,5 @@ function write_storagedual(path::AbstractString, inputs::Dict, setup::Dict, EP::
dfStorageDual=hcat(dfStorageDual, DataFrame(dual_values, :auto))
rename!(dfStorageDual,[Symbol("Resource");Symbol("Zone");[Symbol("t$t") for t in 1:T]])
- CSV.write(joinpath(path, "storagebal_duals.csv"), dftranspose(dfStorageDual, false), writeheader=false)
+ CSV.write(joinpath(path, "storagebal_duals.csv"), dftranspose(dfStorageDual, false), header=false)
end
diff --git a/src/write_outputs/write_subsidy_revenue.jl b/src/write_outputs/write_subsidy_revenue.jl
index 9a0856cf1e..b7702cd747 100644
--- a/src/write_outputs/write_subsidy_revenue.jl
+++ b/src/write_outputs/write_subsidy_revenue.jl
@@ -4,16 +4,20 @@
Function for reporting subsidy revenue earned if a generator specified `Min_Cap` is provided in the input file, or if a generator is subject to a Minimum Capacity Requirement constraint. The unit is \$.
"""
function write_subsidy_revenue(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
- dfGen = inputs["dfGen"]
+ gen = inputs["RESOURCES"]
+ regions = region.(gen)
+ clusters = cluster.(gen)
+ zones = zone_id.(gen)
+ rid = resource_id.(gen)
+
G = inputs["G"]
- dfSubRevenue = DataFrame(Region = dfGen[!, :region], Resource = inputs["RESOURCES"], Zone = dfGen[!, :Zone], Cluster = dfGen[!, :cluster], R_ID=dfGen[!, :R_ID], SubsidyRevenue = zeros(G))
- MIN_CAP = dfGen[(dfGen[!, :Min_Cap_MW].>0), :R_ID]
+ dfSubRevenue = DataFrame(Region = regions, Resource = inputs["RESOURCE_NAMES"], Zone = zones, Cluster = clusters, R_ID=rid, SubsidyRevenue = zeros(G))
+ MIN_CAP = ids_with_positive(gen, min_cap_mw)
if !isempty(inputs["VRE_STOR"])
- dfVRE_STOR = inputs["dfVRE_STOR"]
- MIN_CAP_SOLAR = dfVRE_STOR[(dfVRE_STOR[!, :Min_Cap_Solar_MW].>0), :R_ID]
- MIN_CAP_WIND = dfVRE_STOR[(dfVRE_STOR[!, :Min_Cap_Wind_MW].>0), :R_ID]
- MIN_CAP_STOR = dfGen[(dfGen[!, :Min_Cap_MWh].>0), :R_ID]
+ MIN_CAP_SOLAR = ids_with_positive(gen.VreStorage, min_cap_solar_mw)
+ MIN_CAP_WIND = ids_with_positive(gen.VreStorage, min_cap_wind_mw)
+ MIN_CAP_STOR = ids_with_positive(gen, min_cap_mwh)
if !isempty(MIN_CAP_SOLAR)
dfSubRevenue.SubsidyRevenue[MIN_CAP_SOLAR] .+= (value.(EP[:eTotalCap_SOLAR])[MIN_CAP_SOLAR]) .* (dual.(EP[:cMinCap_Solar][MIN_CAP_SOLAR])).data
end
@@ -26,24 +30,24 @@ function write_subsidy_revenue(path::AbstractString, inputs::Dict, setup::Dict,
end
dfSubRevenue.SubsidyRevenue[MIN_CAP] .= (value.(EP[:eTotalCap])[MIN_CAP]) .* (dual.(EP[:cMinCap][MIN_CAP])).data
### calculating tech specific subsidy revenue
- dfRegSubRevenue = DataFrame(Region = dfGen[!, :region], Resource = inputs["RESOURCES"], Zone = dfGen[!, :Zone], Cluster = dfGen[!, :cluster], R_ID=dfGen[!, :R_ID], SubsidyRevenue = zeros(G))
+ dfRegSubRevenue = DataFrame(Region = regions, Resource = inputs["RESOURCE_NAMES"], Zone = zones, Cluster = clusters, R_ID=rid, SubsidyRevenue = zeros(G))
if (setup["MinCapReq"] >= 1)
for mincap in 1:inputs["NumberOfMinCapReqs"] # This key only exists if MinCapReq >= 1, so we can't get it at the top outside of this condition.
- MIN_CAP_GEN = dfGen[(dfGen[!, Symbol("MinCapTag_$mincap")].==1), :R_ID]
+ MIN_CAP_GEN = ids_with_policy(gen, min_cap, tag=mincap)
dfRegSubRevenue.SubsidyRevenue[MIN_CAP_GEN] .= dfRegSubRevenue.SubsidyRevenue[MIN_CAP_GEN] + (value.(EP[:eTotalCap][MIN_CAP_GEN])) * (dual.(EP[:cZoneMinCapReq][mincap]))
if !isempty(inputs["VRE_STOR"])
- mincap_solar_sym = Symbol("MinCapTagSolar_$mincap")
- mincap_stor_sym = Symbol("MinCapTagStor_$mincap")
- MIN_CAP_GEN_SOLAR = dfVRE_STOR[(dfVRE_STOR[!, mincap_solar_sym].==1), :R_ID]
- MIN_CAP_GEN_WIND = dfVRE_STOR[(dfVRE_STOR[!, Symbol("MinCapTagWind_$mincap")].==1), :R_ID]
- MIN_CAP_GEN_ASYM_DC_DIS = intersect(inputs["VS_ASYM_DC_DISCHARGE"], dfVRE_STOR[(dfVRE_STOR[!, mincap_stor_sym].==1), :R_ID])
- MIN_CAP_GEN_ASYM_AC_DIS = intersect(inputs["VS_ASYM_AC_DISCHARGE"], dfVRE_STOR[(dfVRE_STOR[!, mincap_stor_sym].==1), :R_ID])
- MIN_CAP_GEN_SYM_DC = intersect(inputs["VS_SYM_DC"], dfVRE_STOR[(dfVRE_STOR[!, mincap_stor_sym].==1), :R_ID])
- MIN_CAP_GEN_SYM_AC = intersect(inputs["VS_SYM_AC"], dfVRE_STOR[(dfVRE_STOR[!, mincap_stor_sym].==1), :R_ID])
+ gen_VRE_STOR = gen.VreStorage
+ HAS_MIN_CAP_STOR = ids_with_policy(gen_VRE_STOR, min_cap_stor, tag=mincap)
+ MIN_CAP_GEN_SOLAR = ids_with_policy(gen_VRE_STOR, min_cap_solar, tag=mincap)
+ MIN_CAP_GEN_WIND = ids_with_policy(gen_VRE_STOR, min_cap_wind, tag=mincap)
+ MIN_CAP_GEN_ASYM_DC_DIS = intersect(inputs["VS_ASYM_DC_DISCHARGE"], HAS_MIN_CAP_STOR)
+ MIN_CAP_GEN_ASYM_AC_DIS = intersect(inputs["VS_ASYM_AC_DISCHARGE"], HAS_MIN_CAP_STOR)
+ MIN_CAP_GEN_SYM_DC = intersect(inputs["VS_SYM_DC"], HAS_MIN_CAP_STOR)
+ MIN_CAP_GEN_SYM_AC = intersect(inputs["VS_SYM_AC"], HAS_MIN_CAP_STOR)
if !isempty(MIN_CAP_GEN_SOLAR)
dfRegSubRevenue.SubsidyRevenue[MIN_CAP_GEN_SOLAR] .+= (
(value.(EP[:eTotalCap_SOLAR][MIN_CAP_GEN_SOLAR]).data)
- .* dfVRE_STOR[((dfVRE_STOR[!, mincap_solar_sym].==1)), :EtaInverter]
+ .* etainverter.(gen[ids_with_policy(gen, min_cap_solar, tag=mincap)])
* (dual.(EP[:cZoneMinCapReq][mincap]))
)
end
@@ -54,10 +58,10 @@ function write_subsidy_revenue(path::AbstractString, inputs::Dict, setup::Dict,
)
end
if !isempty(MIN_CAP_GEN_ASYM_DC_DIS)
- MIN_CAP_GEN_ASYM_DC_DIS = intersect(inputs["VS_ASYM_DC_DISCHARGE"], dfVRE_STOR[(dfVRE_STOR[!, mincap_stor_sym].==1), :R_ID])
+ MIN_CAP_GEN_ASYM_DC_DIS = intersect(inputs["VS_ASYM_DC_DISCHARGE"], HAS_MIN_CAP_STOR)
dfRegSubRevenue.SubsidyRevenue[MIN_CAP_GEN_ASYM_DC_DIS] .+= (
(value.(EP[:eTotalCapDischarge_DC][MIN_CAP_GEN_ASYM_DC_DIS].data)
- .* dfVRE_STOR[((dfVRE_STOR[!, mincap_stor_sym].==1) .& (dfVRE_STOR.STOR_DC_DISCHARGE.==2)), :EtaInverter])
+ .* etainverter.(gen_VRE_STOR[min_cap_stor.(gen_VRE_STOR, tag=mincap).==1 .& (gen_VRE_STOR.stor_dc_discharge.==2)]))
* (dual.(EP[:cZoneMinCapReq][mincap]))
)
end
@@ -70,15 +74,15 @@ function write_subsidy_revenue(path::AbstractString, inputs::Dict, setup::Dict,
if !isempty(MIN_CAP_GEN_SYM_DC)
dfRegSubRevenue.SubsidyRevenue[MIN_CAP_GEN_SYM_DC] .+= (
(value.(EP[:eTotalCap_STOR][MIN_CAP_GEN_SYM_DC]).data
- .* dfVRE_STOR[((dfVRE_STOR[!, mincap_stor_sym].==1) .& (dfVRE_STOR.STOR_DC_DISCHARGE.==1)), :Power_to_Energy_DC]
- .* dfVRE_STOR[((dfVRE_STOR[!, mincap_stor_sym].==1) .& (dfVRE_STOR.STOR_DC_DISCHARGE.==1)), :EtaInverter])
+ .* power_to_energy_dc.(gen_VRE_STOR[(min_cap_stor.(gen_VRE_STOR, tag=mincap).==1 .& (gen_VRE_STOR.stor_dc_discharge.==1))])
+ .* etainverter.(gen_VRE_STOR[(min_cap_stor.(gen_VRE_STOR, tag=mincap).==1 .& (gen_VRE_STOR.stor_dc_discharge.==1))]))
* (dual.(EP[:cZoneMinCapReq][mincap]))
)
end
if !isempty(MIN_CAP_GEN_SYM_AC)
dfRegSubRevenue.SubsidyRevenue[MIN_CAP_GEN_SYM_AC] .+= (
(value.(EP[:eTotalCap_STOR][MIN_CAP_GEN_SYM_AC]).data
- .* dfVRE_STOR[((dfVRE_STOR[!, mincap_stor_sym].==1) .& (dfVRE_STOR.STOR_AC_DISCHARGE.==1)), :Power_to_Energy_AC])
+ .* power_to_energy_ac.(gen_VRE_STOR[(min_cap_stor.(gen_VRE_STOR, tag=mincap).==1 .& (gen_VRE_STOR.stor_ac_discharge.==1))]))
* (dual.(EP[:cZoneMinCapReq][mincap]))
)
end
diff --git a/src/write_outputs/write_vre_stor.jl b/src/write_outputs/write_vre_stor.jl
index 77fa13b073..818cb60c58 100644
--- a/src/write_outputs/write_vre_stor.jl
+++ b/src/write_outputs/write_vre_stor.jl
@@ -24,15 +24,16 @@ end
Function for writing the vre-storage capacities.
"""
function write_vre_stor_capacity(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
+ gen = inputs["RESOURCES"]
+ gen_VRE_STOR = gen.VreStorage
+
VRE_STOR = inputs["VRE_STOR"]
SOLAR = inputs["VS_SOLAR"]
WIND = inputs["VS_WIND"]
DC = inputs["VS_DC"]
STOR = inputs["VS_STOR"]
- dfGen = inputs["dfGen"]
- dfVRE_STOR = inputs["dfVRE_STOR"]
MultiStage = setup["MultiStage"]
- size_vrestor_resources = size(inputs["RESOURCES_VRE_STOR"])
+ size_vrestor_resources = size(inputs["RESOURCE_NAMES_VRE_STOR"])
# Solar capacity
capsolar = zeros(size_vrestor_resources)
@@ -81,7 +82,7 @@ function write_vre_stor_capacity(path::AbstractString, inputs::Dict, setup::Dict
j = 1
for i in VRE_STOR
- existingcapgrid[j] = MultiStage == 1 ? value(EP[:vEXISTINGCAP][i]) : dfGen[i,:Existing_Cap_MW]
+ existingcapgrid[j] = MultiStage == 1 ? value(EP[:vEXISTINGCAP][i]) : existing_cap_mw(gen[i])
if i in inputs["NEW_CAP"]
capgrid[j] = value(EP[:vCAP][i])
end
@@ -90,7 +91,7 @@ function write_vre_stor_capacity(path::AbstractString, inputs::Dict, setup::Dict
end
if i in SOLAR
- existingcapsolar[j] = MultiStage == 1 ? value(EP[:vEXISTINGSOLARCAP][i]) : dfVRE_STOR[j,:Existing_Cap_Solar_MW]
+ existingcapsolar[j] = MultiStage == 1 ? value(EP[:vEXISTINGSOLARCAP][i]) : existing_cap_solar_mw(gen_VRE_STOR[j])
if i in inputs["NEW_CAP_SOLAR"]
capsolar[j] = value(EP[:vSOLARCAP][i])
end
@@ -100,7 +101,7 @@ function write_vre_stor_capacity(path::AbstractString, inputs::Dict, setup::Dict
end
if i in WIND
- existingcapwind[j] = MultiStage == 1 ? value(EP[:vEXISTINGWINDCAP][i]) : dfVRE_STOR[j,:Existing_Cap_Wind_MW]
+ existingcapwind[j] = MultiStage == 1 ? value(EP[:vEXISTINGWINDCAP][i]) : existing_cap_wind_mw(gen_VRE_STOR[j])
if i in inputs["NEW_CAP_WIND"]
capwind[j] = value(EP[:vWINDCAP][i])
end
@@ -110,7 +111,7 @@ function write_vre_stor_capacity(path::AbstractString, inputs::Dict, setup::Dict
end
if i in DC
- existingcapdc[j] = MultiStage == 1 ? value(EP[:vEXISTINGDCCAP][i]) : dfVRE_STOR[j,:Existing_Cap_Inverter_MW]
+ existingcapdc[j] = MultiStage == 1 ? value(EP[:vEXISTINGDCCAP][i]) : existing_cap_inverter_mw(gen_VRE_STOR[j])
if i in inputs["NEW_CAP_DC"]
capdc[j] = value(EP[:vDCCAP][i])
end
@@ -120,7 +121,7 @@ function write_vre_stor_capacity(path::AbstractString, inputs::Dict, setup::Dict
end
if i in STOR
- existingcapenergy[j] = MultiStage == 1 ? value(EP[:vEXISTINGCAPENERGY_VS][i]) : dfGen[i,:Existing_Cap_MWh]
+ existingcapenergy[j] = MultiStage == 1 ? value(EP[:vEXISTINGCAPENERGY_VS][i]) : existing_cap_mwh(gen[i])
if i in inputs["NEW_CAP_STOR"]
capenergy[j] = value(EP[:vCAPENERGY_VS][i])
end
@@ -135,7 +136,7 @@ function write_vre_stor_capacity(path::AbstractString, inputs::Dict, setup::Dict
if i in inputs["RET_CAP_CHARGE_DC"]
retcapchargedc[j] = value(EP[:vRETCAPCHARGE_DC][i])
end
- existingcapchargedc[j] = MultiStage == 1 ? value(EP[:vEXISTINGCAPCHARGEDC][i]) : dfVRE_STOR[j,:Existing_Cap_Charge_DC_MW]
+ existingcapchargedc[j] = MultiStage == 1 ? value(EP[:vEXISTINGCAPCHARGEDC][i]) : existing_cap_charge_dc_mw(gen_VRE_STOR[j])
end
if i in inputs["VS_ASYM_AC_CHARGE"]
if i in inputs["NEW_CAP_CHARGE_AC"]
@@ -144,7 +145,7 @@ function write_vre_stor_capacity(path::AbstractString, inputs::Dict, setup::Dict
if i in inputs["RET_CAP_CHARGE_AC"]
retcapchargeac[j] = value(EP[:vRETCAPCHARGE_AC][i])
end
- existingcapchargeac[j] = MultiStage == 1 ? value(EP[:vEXISTINGCAPCHARGEAC][i]) : dfVRE_STOR[j,:Existing_Cap_Charge_AC_MW]
+ existingcapchargeac[j] = MultiStage == 1 ? value(EP[:vEXISTINGCAPCHARGEAC][i]) : existing_cap_charge_ac_mw(gen_VRE_STOR[j])
end
if i in inputs["VS_ASYM_DC_DISCHARGE"]
if i in inputs["NEW_CAP_DISCHARGE_DC"]
@@ -153,7 +154,7 @@ function write_vre_stor_capacity(path::AbstractString, inputs::Dict, setup::Dict
if i in inputs["RET_CAP_DISCHARGE_DC"]
retcapdischargedc[j] = value(EP[:vRETCAPDISCHARGE_DC][i])
end
- existingcapdischargedc[j] = MultiStage == 1 ? value(EP[:vEXISTINGCAPDISCHARGEDC][i]) : dfVRE_STOR[j,:Existing_Cap_Discharge_DC_MW]
+ existingcapdischargedc[j] = MultiStage == 1 ? value(EP[:vEXISTINGCAPDISCHARGEDC][i]) : existing_cap_discharge_dc_mw(gen_VRE_STOR[j])
end
if i in inputs["VS_ASYM_AC_DISCHARGE"]
if i in inputs["NEW_CAP_DISCHARGE_AC"]
@@ -162,14 +163,18 @@ function write_vre_stor_capacity(path::AbstractString, inputs::Dict, setup::Dict
if i in inputs["RET_CAP_DISCHARGE_AC"]
retcapdischargeac[j] = value(EP[:vRETCAPDISCHARGE_AC][i])
end
- existingcapdischargeac[j] = MultiStage == 1 ? value(EP[:vEXISTINGCAPDISCHARGEAC][i]) : dfVRE_STOR[j,:Existing_Cap_Discharge_AC_MW]
+ existingcapdischargeac[j] = MultiStage == 1 ? value(EP[:vEXISTINGCAPDISCHARGEAC][i]) : existing_cap_discharge_ac_mw(gen_VRE_STOR[j])
end
end
j += 1
end
+ technologies = resource_type_mga.(gen_VRE_STOR)
+ clusters = cluster.(gen_VRE_STOR)
+ zones = zone_id.(gen_VRE_STOR)
+
dfCap = DataFrame(
- Resource = inputs["RESOURCES_VRE_STOR"], Zone = dfVRE_STOR[!,:Zone], Resource_Type = dfVRE_STOR[!,:Resource_Type], Cluster=dfVRE_STOR[!,:cluster],
+ Resource = inputs["RESOURCE_NAMES_VRE_STOR"], Zone = zones, Resource_Type = technologies, Cluster=clusters,
StartCapSolar = existingcapsolar[:],
RetCapSolar = retcapsolar[:],
NewCapSolar = capsolar[:],
@@ -283,16 +288,17 @@ end
Function for writing the vre-storage charging decision variables/expressions.
"""
function write_vre_stor_charge(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
- dfVRE_STOR = inputs["dfVRE_STOR"]
+ gen = inputs["RESOURCES"]
+ gen_VRE_STOR = gen.VreStorage
T = inputs["T"]
DC_CHARGE = inputs["VS_STOR_DC_CHARGE"]
AC_CHARGE = inputs["VS_STOR_AC_CHARGE"]
# DC charging of battery dataframe
if !isempty(DC_CHARGE)
- dfCharge_DC = DataFrame(Resource = inputs["RESOURCES_DC_CHARGE"], Zone = inputs["ZONES_DC_CHARGE"], AnnualSum = Array{Union{Missing,Float32}}(undef, size(DC_CHARGE)[1]))
+ dfCharge_DC = DataFrame(Resource = inputs["RESOURCE_NAMES_DC_CHARGE"], Zone = inputs["ZONES_DC_CHARGE"], AnnualSum = Array{Union{Missing,Float32}}(undef, size(DC_CHARGE)[1]))
charge_dc = zeros(size(DC_CHARGE)[1], T)
- charge_dc = value.(EP[:vP_DC_CHARGE]).data ./ dfVRE_STOR[(dfVRE_STOR.STOR_DC_DISCHARGE.!=0), :EtaInverter] * (setup["ParameterScale"]==1 ? ModelScalingFactor : 1)
+ charge_dc = value.(EP[:vP_DC_CHARGE]).data ./ etainverter.(gen_VRE_STOR[(gen_VRE_STOR.stor_dc_discharge.!=0)]) * (setup["ParameterScale"]==1 ? ModelScalingFactor : 1)
dfCharge_DC.AnnualSum .= charge_dc * inputs["omega"]
dfCharge_DC = hcat(dfCharge_DC, DataFrame(charge_dc, :auto))
auxNew_Names=[Symbol("Resource");Symbol("Zone");Symbol("AnnualSum");[Symbol("t$t") for t in 1:T]]
@@ -301,12 +307,12 @@ function write_vre_stor_charge(path::AbstractString, inputs::Dict, setup::Dict,
total[:, 4:T+3] .= sum(charge_dc, dims = 1)
rename!(total,auxNew_Names)
dfCharge_DC = vcat(dfCharge_DC, total)
- CSV.write(joinpath(path,"vre_stor_dc_charge.csv"), dftranspose(dfCharge_DC, false), writeheader=false)
+ CSV.write(joinpath(path,"vre_stor_dc_charge.csv"), dftranspose(dfCharge_DC, false), header=false)
end
# AC charging of battery dataframe
if !isempty(AC_CHARGE)
- dfCharge_AC = DataFrame(Resource = inputs["RESOURCES_AC_CHARGE"], Zone = inputs["ZONES_AC_CHARGE"], AnnualSum = Array{Union{Missing,Float32}}(undef, size(AC_CHARGE)[1]))
+ dfCharge_AC = DataFrame(Resource = inputs["RESOURCE_NAMES_AC_CHARGE"], Zone = inputs["ZONES_AC_CHARGE"], AnnualSum = Array{Union{Missing,Float32}}(undef, size(AC_CHARGE)[1]))
charge_ac = zeros(size(AC_CHARGE)[1], T)
charge_ac = value.(EP[:vP_AC_CHARGE]).data * (setup["ParameterScale"]==1 ? ModelScalingFactor : 1)
dfCharge_AC.AnnualSum .= charge_ac * inputs["omega"]
@@ -317,7 +323,7 @@ function write_vre_stor_charge(path::AbstractString, inputs::Dict, setup::Dict,
total[:, 4:T+3] .= sum(charge_ac, dims = 1)
rename!(total,auxNew_Names)
dfCharge_AC = vcat(dfCharge_AC, total)
- CSV.write(joinpath(path,"vre_stor_ac_charge.csv"), dftranspose(dfCharge_AC, false), writeheader=false)
+ CSV.write(joinpath(path,"vre_stor_ac_charge.csv"), dftranspose(dfCharge_AC, false), header=false)
end
end
@@ -327,7 +333,8 @@ end
Function for writing the vre-storage discharging decision variables/expressions.
"""
function write_vre_stor_discharge(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
- dfVRE_STOR = inputs["dfVRE_STOR"]
+ gen = inputs["RESOURCES"]
+ gen_VRE_STOR = gen.VreStorage
T = inputs["T"]
DC_DISCHARGE = inputs["VS_STOR_DC_DISCHARGE"]
AC_DISCHARGE = inputs["VS_STOR_AC_DISCHARGE"]
@@ -336,8 +343,8 @@ function write_vre_stor_discharge(path::AbstractString, inputs::Dict, setup::Dic
# DC discharging of battery dataframe
if !isempty(DC_DISCHARGE)
- dfDischarge_DC = DataFrame(Resource = inputs["RESOURCES_DC_DISCHARGE"], Zone = inputs["ZONES_DC_DISCHARGE"], AnnualSum = Array{Union{Missing,Float32}}(undef, size(DC_DISCHARGE)[1]))
- power_vre_stor = value.(EP[:vP_DC_DISCHARGE]).data .* dfVRE_STOR[(dfVRE_STOR.STOR_DC_DISCHARGE.!=0), :EtaInverter]
+ dfDischarge_DC = DataFrame(Resource = inputs["RESOURCE_NAMES_DC_DISCHARGE"], Zone = inputs["ZONES_DC_DISCHARGE"], AnnualSum = Array{Union{Missing,Float32}}(undef, size(DC_DISCHARGE)[1]))
+ power_vre_stor = value.(EP[:vP_DC_DISCHARGE]).data .* etainverter.(gen_VRE_STOR[(gen_VRE_STOR.stor_dc_discharge.!=0)])
if setup["ParameterScale"] == 1
power_vre_stor *= ModelScalingFactor
end
@@ -349,12 +356,12 @@ function write_vre_stor_discharge(path::AbstractString, inputs::Dict, setup::Dic
total[:, 4:T+3] .= sum(power_vre_stor, dims = 1)
rename!(total,auxNew_Names)
dfDischarge_DC = vcat(dfDischarge_DC, total)
- CSV.write(joinpath(path, "vre_stor_dc_discharge.csv"), dftranspose(dfDischarge_DC, false), writeheader=false)
+ CSV.write(joinpath(path, "vre_stor_dc_discharge.csv"), dftranspose(dfDischarge_DC, false), header=false)
end
# AC discharging of battery dataframe
if !isempty(AC_DISCHARGE)
- dfDischarge_AC = DataFrame(Resource = inputs["RESOURCES_AC_DISCHARGE"], Zone = inputs["ZONES_AC_DISCHARGE"], AnnualSum = Array{Union{Missing,Float32}}(undef, size(AC_DISCHARGE)[1]))
+ dfDischarge_AC = DataFrame(Resource = inputs["RESOURCE_NAMES_AC_DISCHARGE"], Zone = inputs["ZONES_AC_DISCHARGE"], AnnualSum = Array{Union{Missing,Float32}}(undef, size(AC_DISCHARGE)[1]))
power_vre_stor = value.(EP[:vP_AC_DISCHARGE]).data
if setup["ParameterScale"] == 1
power_vre_stor *= ModelScalingFactor
@@ -367,12 +374,12 @@ function write_vre_stor_discharge(path::AbstractString, inputs::Dict, setup::Dic
total[:, 4:T+3] .= sum(power_vre_stor, dims = 1)
rename!(total,auxNew_Names)
dfDischarge_AC = vcat(dfDischarge_AC, total)
- CSV.write(joinpath(path, "vre_stor_ac_discharge.csv"), dftranspose(dfDischarge_AC, false), writeheader=false)
+ CSV.write(joinpath(path, "vre_stor_ac_discharge.csv"), dftranspose(dfDischarge_AC, false), header=false)
end
# Wind generation of co-located resource dataframe
if !isempty(WIND)
- dfVP_VRE_STOR = DataFrame(Resource = inputs["RESOURCES_WIND"], Zone = inputs["ZONES_WIND"], AnnualSum = Array{Union{Missing,Float32}}(undef, size(WIND)[1]))
+ dfVP_VRE_STOR = DataFrame(Resource = inputs["RESOURCE_NAMES_WIND"], Zone = inputs["ZONES_WIND"], AnnualSum = Array{Union{Missing,Float32}}(undef, size(WIND)[1]))
vre_vre_stor = value.(EP[:vP_WIND]).data
if setup["ParameterScale"] == 1
vre_vre_stor *= ModelScalingFactor
@@ -385,13 +392,13 @@ function write_vre_stor_discharge(path::AbstractString, inputs::Dict, setup::Dic
total[:, 4:T+3] .= sum(vre_vre_stor, dims = 1)
rename!(total,auxNew_Names)
dfVP_VRE_STOR = vcat(dfVP_VRE_STOR, total)
- CSV.write(joinpath(path,"vre_stor_wind_power.csv"), dftranspose(dfVP_VRE_STOR, false), writeheader=false)
+ CSV.write(joinpath(path,"vre_stor_wind_power.csv"), dftranspose(dfVP_VRE_STOR, false), header=false)
end
# Solar generation of co-located resource dataframe
if !isempty(SOLAR)
- dfVP_VRE_STOR = DataFrame(Resource = inputs["RESOURCES_SOLAR"], Zone = inputs["ZONES_SOLAR"], AnnualSum = Array{Union{Missing,Float32}}(undef, size(SOLAR)[1]))
- vre_vre_stor = value.(EP[:vP_SOLAR]).data .* dfVRE_STOR[(dfVRE_STOR.SOLAR.!=0), :EtaInverter]
+ dfVP_VRE_STOR = DataFrame(Resource = inputs["RESOURCE_NAMES_SOLAR"], Zone = inputs["ZONES_SOLAR"], AnnualSum = Array{Union{Missing,Float32}}(undef, size(SOLAR)[1]))
+ vre_vre_stor = value.(EP[:vP_SOLAR]).data .* etainverter.(gen_VRE_STOR[(gen_VRE_STOR.solar.!=0)])
if setup["ParameterScale"] == 1
vre_vre_stor *= ModelScalingFactor
end
@@ -403,6 +410,6 @@ function write_vre_stor_discharge(path::AbstractString, inputs::Dict, setup::Dic
total[:, 4:T+3] .= sum(vre_vre_stor, dims = 1)
rename!(total,auxNew_Names)
dfVP_VRE_STOR = vcat(dfVP_VRE_STOR, total)
- CSV.write(joinpath(path,"vre_stor_solar_power.csv"), dftranspose(dfVP_VRE_STOR, false), writeheader=false)
+ CSV.write(joinpath(path,"vre_stor_solar_power.csv"), dftranspose(dfVP_VRE_STOR, false), header=false)
end
end
diff --git a/test/ComputeConflicts/Generators_data.csv b/test/ComputeConflicts/Generators_data.csv
deleted file mode 100644
index 8f0d856757..0000000000
--- a/test/ComputeConflicts/Generators_data.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,LDS,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,MaxCapTag_1,MaxCapTag_2,MaxCapTag_3,Resource_Type,CapRes_1,region,cluster
-natural_gas_combined_cycle,1,1,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,65400,0,0,10287,0,0,3.55,0,7.43,NG,250,91,2,6,6,0.64,0.64,0.468,0,1,1,0,0,0,0,0,natural_gas_fired_combined_cycle,0.93,NE,1
-solar_pv,1,0,0,0,0,0,1,0,1,1,0,0,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.13,None,0,0,0,0,0,1,1,0,0,1,1,0,0,1,0,0,solar_photovoltaic,0.8,NE,1
-onshore_wind,1,0,0,0,0,0,1,0,1,1,0,0,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,0,0,0,0,1,1,0,0,1,1,0,0,0,1,0,onshore_wind_turbine,0.8,NE,1
-battery,1,0,0,1,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0.92,0.92,1,10,0,0,1,battery_mid,0.95,NE,0
diff --git a/test/ComputeConflicts/Resources/Storage.csv b/test/ComputeConflicts/Resources/Storage.csv
new file mode 100644
index 0000000000..6e066c6823
--- /dev/null
+++ b/test/ComputeConflicts/Resources/Storage.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Max_Cap_MW,Max_Cap_MWh,Min_Cap_MW,Min_Cap_MWh,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Resource_Type,CapRes_1,region,cluster
+battery,1,1,1,0,0,0,-1,-1,0,0,19584,22494,4895,5622,0.15,0.15,0,0,0.92,0.92,1,10,battery_mid,0.95,NE,0
\ No newline at end of file
diff --git a/test/ComputeConflicts/Resources/Thermal.csv b/test/ComputeConflicts/Resources/Thermal.csv
new file mode 100644
index 0000000000..1f56d4b48f
--- /dev/null
+++ b/test/ComputeConflicts/Resources/Thermal.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Resource_Type,CapRes_1,region,cluster
+natural_gas_combined_cycle,1,1,1,0,0,-1,0,65400,10287,3.55,7.43,NG,250,91,2,6,6,0.64,0.64,0.468,natural_gas_fired_combined_cycle,0.93,NE,1
\ No newline at end of file
diff --git a/test/ComputeConflicts/Resources/Vre.csv b/test/ComputeConflicts/Resources/Vre.csv
new file mode 100644
index 0000000000..6e5014b7b4
--- /dev/null
+++ b/test/ComputeConflicts/Resources/Vre.csv
@@ -0,0 +1,3 @@
+Resource,Zone,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Resource_Type,CapRes_1,region,cluster
+solar_pv,1,1,1,0,0,-1,0,85300,18760,0,9.13,solar_photovoltaic,0.8,NE,1
+onshore_wind,1,1,1,0,0,-1,0,97200,43205,0.1,9.12,onshore_wind_turbine,0.8,NE,1
\ No newline at end of file
diff --git a/test/Electrolyzer/Generators_data.csv b/test/Electrolyzer/Generators_data.csv
deleted file mode 100644
index eca69e60ae..0000000000
--- a/test/Electrolyzer/Generators_data.csv
+++ /dev/null
@@ -1,7 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,LDS,ELECTROLYZER,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Resource_Type,ESR_1,ESR_2,region,cluster,Hydrogen_MWh_Per_Tonne,Electrolyzer_Min_kt,Hydrogen_Price_Per_Tonne,Qualified_Hydrogen_Supply
-natural_gas_combined_cycle,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,65400,0,0,10287,0,0,3.55,0,7.43,NG,250,91,2,6,6,0.64,0.64,0,0.468,0,1,1,0,0,natural_gas_fired_combined_cycle,0,0,NE,1,0,0,0,0
-solar_pv,1,0,0,0,0,0,1,0,0,1,1,1,0,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.13,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,solar_photovoltaic,1,1,NE,1,0,0,0,1
-onshore_wind,1,0,0,0,0,0,1,0,0,1,1,1,0,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,onshore_wind_turbine,1,1,NE,1,0,0,0,1
-battery,1,0,0,1,0,0,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,battery_mid,0,0,NE,0,0,0,0,0
-electrolyzer,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,-1,-1,-1,-1,0,0,125000,0,0,15000,0,0,0,0,0,None,1,0,0,0,0,1,1,0,0,0,0,0,0,0,hydrogen_electrolyzer,0,1,NE,0,55,1000,1000,0
-battery_for_electrolyzer,1,0,0,1,0,0,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,21542,24743,0,4895,5622,0,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,battery_mid,0,0,NE,0,0,0,0,1
diff --git a/test/Electrolyzer/Generators_variability.csv b/test/Electrolyzer/Generators_variability.csv
index c2ac9b8ee4..1a6a2caf86 100644
--- a/test/Electrolyzer/Generators_variability.csv
+++ b/test/Electrolyzer/Generators_variability.csv
@@ -1,121 +1,121 @@
-Time_Index,natural_gas_combined_cycle,solar_pv,onshore_wind,battery,electrolyzer,battery_for_electrolyzer
-1,1.0,0.0,0.523972332,1.0,1.0,1.0
-2,1.0,0.0,0.657110274,1.0,1.0,1.0
-3,1.0,0.0,0.757477045,1.0,1.0,1.0
-4,1.0,0.0,0.644009769,1.0,1.0,1.0
-5,1.0,0.0,0.467615873,1.0,1.0,1.0
-6,1.0,0.0,0.553678334,1.0,1.0,1.0
-7,1.0,0.0,0.77921623,1.0,1.0,1.0
-8,1.0,0.0,0.725531518,1.0,1.0,1.0
-9,1.0,0.0,0.786552846,1.0,1.0,1.0
-10,1.0,0.003,0.589495063,1.0,1.0,1.0
-11,1.0,0.0852,0.436854541,1.0,1.0,1.0
-12,1.0,0.1324,0.533977807,1.0,1.0,1.0
-13,1.0,0.1041,0.54939425,1.0,1.0,1.0
-14,1.0,0.1276,0.297182679,1.0,1.0,1.0
-15,1.0,0.1108,0.108885378,1.0,1.0,1.0
-16,1.0,0.0825,0.097908288,1.0,1.0,1.0
-17,1.0,0.0043,0.092191279,1.0,1.0,1.0
-18,1.0,0.0,0.112537816,1.0,1.0,1.0
-19,1.0,0.0,0.366680771,1.0,1.0,1.0
-20,1.0,0.0,0.794670165,1.0,1.0,1.0
-21,1.0,0.0,0.931621909,1.0,1.0,1.0
-22,1.0,0.0,1.0,1.0,1.0,1.0
-23,1.0,0.0,1.0,1.0,1.0,1.0
-24,1.0,0.0,1.0,1.0,1.0,1.0
-25,1.0,0.0,0.676885605,1.0,1.0,1.0
-26,1.0,0.0,0.738456726,1.0,1.0,1.0
-27,1.0,0.0,0.703836918,1.0,1.0,1.0
-28,1.0,0.0,0.697715104,1.0,1.0,1.0
-29,1.0,0.0,0.578294039,1.0,1.0,1.0
-30,1.0,0.0,0.478842616,1.0,1.0,1.0
-31,1.0,0.0,0.57159102,1.0,1.0,1.0
-32,1.0,0.0216,0.389114857,1.0,1.0,1.0
-33,1.0,0.1372,0.520889282,1.0,1.0,1.0
-34,1.0,0.3468,0.376534432,1.0,1.0,1.0
-35,1.0,0.3952,0.327963144,1.0,1.0,1.0
-36,1.0,0.4551,0.407575041,1.0,1.0,1.0
-37,1.0,0.5095,0.536571622,1.0,1.0,1.0
-38,1.0,0.5567,0.576452434,1.0,1.0,1.0
-39,1.0,0.5691,0.562025309,1.0,1.0,1.0
-40,1.0,0.4904,0.422575682,1.0,1.0,1.0
-41,1.0,0.3087,0.521396458,1.0,1.0,1.0
-42,1.0,0.1034,0.710955501,1.0,1.0,1.0
-43,1.0,0.0,0.683217525,1.0,1.0,1.0
-44,1.0,0.0,0.635520697,1.0,1.0,1.0
-45,1.0,0.0,0.5644238,1.0,1.0,1.0
-46,1.0,0.0,0.61978668,1.0,1.0,1.0
-47,1.0,0.0,0.516743779,1.0,1.0,1.0
-48,1.0,0.0,0.470443606,1.0,1.0,1.0
-49,1.0,0.0,0.500380576,1.0,1.0,1.0
-50,1.0,0.0,0.512022793,1.0,1.0,1.0
-51,1.0,0.0,0.404206336,1.0,1.0,1.0
-52,1.0,0.0,0.142279267,1.0,1.0,1.0
-53,1.0,0.0,0.133046106,1.0,1.0,1.0
-54,1.0,0.1356,0.133957967,1.0,1.0,1.0
-55,1.0,0.1041,0.041104347,1.0,1.0,1.0
-56,1.0,0.2399,0.029715812,1.0,1.0,1.0
-57,1.0,0.3785,0.064291924,1.0,1.0,1.0
-58,1.0,0.4837,0.043738909,1.0,1.0,1.0
-59,1.0,0.5323,0.056054953,1.0,1.0,1.0
-60,1.0,0.5114,0.101633437,1.0,1.0,1.0
-61,1.0,0.5175,0.238559932,1.0,1.0,1.0
-62,1.0,0.5099,0.194997847,1.0,1.0,1.0
-63,1.0,0.502,0.190832943,1.0,1.0,1.0
-64,1.0,0.4113,0.26438266,1.0,1.0,1.0
-65,1.0,0.3017,0.273810387,1.0,1.0,1.0
-66,1.0,0.1773,0.195969075,1.0,1.0,1.0
-67,1.0,0.0811,0.235671312,1.0,1.0,1.0
-68,1.0,0.0006,0.188544422,1.0,1.0,1.0
-69,1.0,0.0,0.179863051,1.0,1.0,1.0
-70,1.0,0.0,0.223087296,1.0,1.0,1.0
-71,1.0,0.0,0.457369655,1.0,1.0,1.0
-72,1.0,0.0,0.715852976,1.0,1.0,1.0
-73,1.0,0.0,0.280310601,1.0,1.0,1.0
-74,1.0,0.0,0.603805244,1.0,1.0,1.0
-75,1.0,0.0,0.741859972,1.0,1.0,1.0
-76,1.0,0.0,0.44207269,1.0,1.0,1.0
-77,1.0,0.0,0.534612,1.0,1.0,1.0
-78,1.0,0.0259,0.587511122,1.0,1.0,1.0
-79,1.0,0.096,0.48241505,1.0,1.0,1.0
-80,1.0,0.2133,0.226682097,1.0,1.0,1.0
-81,1.0,0.3624,0.376575917,1.0,1.0,1.0
-82,1.0,0.4795,0.272142261,1.0,1.0,1.0
-83,1.0,0.5633,0.132447034,1.0,1.0,1.0
-84,1.0,0.5708,0.091180928,1.0,1.0,1.0
-85,1.0,0.534,0.420845181,1.0,1.0,1.0
-86,1.0,0.5641,0.543866694,1.0,1.0,1.0
-87,1.0,0.5537,0.943579316,1.0,1.0,1.0
-88,1.0,0.457,0.83001256,1.0,1.0,1.0
-89,1.0,0.3439,0.698711514,1.0,1.0,1.0
-90,1.0,0.1642,0.536995411,1.0,1.0,1.0
-91,1.0,0.0638,0.770702124,1.0,1.0,1.0
-92,1.0,0.0,0.569594324,1.0,1.0,1.0
-93,1.0,0.0,0.668922722,1.0,1.0,1.0
-94,1.0,0.0,0.759383678,1.0,1.0,1.0
-95,1.0,0.0,0.672967851,1.0,1.0,1.0
-96,1.0,0.0,0.861851215,1.0,1.0,1.0
-97,1.0,0.0,0.000154842,1.0,1.0,1.0
-98,1.0,0.0,5.75e-5,1.0,1.0,1.0
-99,1.0,0.0,7.18e-5,1.0,1.0,1.0
-100,1.0,0.0,3.65e-5,1.0,1.0,1.0
-101,1.0,0.0,3.0e-5,1.0,1.0,1.0
-102,1.0,0.0,0.0,1.0,1.0,1.0
-103,1.0,0.0,0.000772537,1.0,1.0,1.0
-104,1.0,0.0,0.000930232,1.0,1.0,1.0
-105,1.0,0.1029,0.000778525,1.0,1.0,1.0
-106,1.0,0.2427,0.000131503,1.0,1.0,1.0
-107,1.0,0.3353,0.005792293,1.0,1.0,1.0
-108,1.0,0.3693,0.00257458,1.0,1.0,1.0
-109,1.0,0.321,1.01e-5,1.0,1.0,1.0
-110,1.0,0.2798,0.000134685,1.0,1.0,1.0
-111,1.0,0.2887,0.000516413,1.0,1.0,1.0
-112,1.0,0.1717,0.001232307,1.0,1.0,1.0
-113,1.0,0.0,0.002655152,1.0,1.0,1.0
-114,1.0,0.0,0.003173271,1.0,1.0,1.0
-115,1.0,0.0,0.003878384,1.0,1.0,1.0
-116,1.0,0.0,0.005781263,1.0,1.0,1.0
-117,1.0,0.0,0.006259252,1.0,1.0,1.0
-118,1.0,0.0,0.008088858,1.0,1.0,1.0
-119,1.0,0.0,0.008165604,1.0,1.0,1.0
-120,1.0,0.0,0.007110484,1.0,1.0,1.0
+Time_Index,solar_pv,onshore_wind
+1,0,0.523972332
+2,0,0.657110274
+3,0,0.757477045
+4,0,0.644009769
+5,0,0.467615873
+6,0,0.553678334
+7,0,0.77921623
+8,0,0.725531518
+9,0,0.786552846
+10,0.003,0.589495063
+11,0.0852,0.436854541
+12,0.1324,0.533977807
+13,0.1041,0.54939425
+14,0.1276,0.297182679
+15,0.1108,0.108885378
+16,0.0825,0.097908288
+17,0.0043,0.092191279
+18,0,0.112537816
+19,0,0.366680771
+20,0,0.794670165
+21,0,0.931621909
+22,0,1
+23,0,1
+24,0,1
+25,0,0.676885605
+26,0,0.738456726
+27,0,0.703836918
+28,0,0.697715104
+29,0,0.578294039
+30,0,0.478842616
+31,0,0.57159102
+32,0.0216,0.389114857
+33,0.1372,0.520889282
+34,0.3468,0.376534432
+35,0.3952,0.327963144
+36,0.4551,0.407575041
+37,0.5095,0.536571622
+38,0.5567,0.576452434
+39,0.5691,0.562025309
+40,0.4904,0.422575682
+41,0.3087,0.521396458
+42,0.1034,0.710955501
+43,0,0.683217525
+44,0,0.635520697
+45,0,0.5644238
+46,0,0.61978668
+47,0,0.516743779
+48,0,0.470443606
+49,0,0.500380576
+50,0,0.512022793
+51,0,0.404206336
+52,0,0.142279267
+53,0,0.133046106
+54,0.1356,0.133957967
+55,0.1041,0.041104347
+56,0.2399,0.029715812
+57,0.3785,0.064291924
+58,0.4837,0.043738909
+59,0.5323,0.056054953
+60,0.5114,0.101633437
+61,0.5175,0.238559932
+62,0.5099,0.194997847
+63,0.502,0.190832943
+64,0.4113,0.26438266
+65,0.3017,0.273810387
+66,0.1773,0.195969075
+67,0.0811,0.235671312
+68,0.0006,0.188544422
+69,0,0.179863051
+70,0,0.223087296
+71,0,0.457369655
+72,0,0.715852976
+73,0,0.280310601
+74,0,0.603805244
+75,0,0.741859972
+76,0,0.44207269
+77,0,0.534612
+78,0.0259,0.587511122
+79,0.096,0.48241505
+80,0.2133,0.226682097
+81,0.3624,0.376575917
+82,0.4795,0.272142261
+83,0.5633,0.132447034
+84,0.5708,0.091180928
+85,0.534,0.420845181
+86,0.5641,0.543866694
+87,0.5537,0.943579316
+88,0.457,0.83001256
+89,0.3439,0.698711514
+90,0.1642,0.536995411
+91,0.0638,0.770702124
+92,0,0.569594324
+93,0,0.668922722
+94,0,0.759383678
+95,0,0.672967851
+96,0,0.861851215
+97,0,0.000154842
+98,0,5.75e-5
+99,0,7.18e-5
+100,0,3.65e-5
+101,0,3.0e-5
+102,0,0
+103,0,0.000772537
+104,0,0.000930232
+105,0.1029,0.000778525
+106,0.2427,0.000131503
+107,0.3353,0.005792293
+108,0.3693,0.00257458
+109,0.321,1.01e-5
+110,0.2798,0.000134685
+111,0.2887,0.000516413
+112,0.1717,0.001232307
+113,0,0.002655152
+114,0,0.003173271
+115,0,0.003878384
+116,0,0.005781263
+117,0,0.006259252
+118,0,0.008088858
+119,0,0.008165604
+120,0,0.007110484
\ No newline at end of file
diff --git a/test/Electrolyzer/Resources/Electrolyzer.csv b/test/Electrolyzer/Resources/Electrolyzer.csv
new file mode 100644
index 0000000000..cbb782c7ac
--- /dev/null
+++ b/test/Electrolyzer/Resources/Electrolyzer.csv
@@ -0,0 +1,2 @@
+Resource,Zone,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Cap_Size,Resource_Type,ESR_1,ESR_2,region,cluster,Hydrogen_MWh_Per_Tonne,Electrolyzer_Min_kt,Hydrogen_Price_Per_Tonne
+electrolyzer,1,1,1,0,-1,-1,125000,15000,0,1,hydrogen_electrolyzer,0,1,NE,0,55,1000,1000
\ No newline at end of file
diff --git a/test/Electrolyzer/Resources/Resource_energy_share_requirement.csv b/test/Electrolyzer/Resources/Resource_energy_share_requirement.csv
new file mode 100644
index 0000000000..cf003f74c5
--- /dev/null
+++ b/test/Electrolyzer/Resources/Resource_energy_share_requirement.csv
@@ -0,0 +1,4 @@
+Resource,ESR_1,ESR_2
+solar_pv,1,1
+onshore_wind,1,1
+electrolyzer,0,1
\ No newline at end of file
diff --git a/test/Electrolyzer/Resources/Storage.csv b/test/Electrolyzer/Resources/Storage.csv
new file mode 100644
index 0000000000..462abd16f3
--- /dev/null
+++ b/test/Electrolyzer/Resources/Storage.csv
@@ -0,0 +1,3 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Qualified_Hydrogen_Supply,Resource_Type,region,cluster
+battery,1,1,1,1,0,0,-1,0,19584,22494,4895,5622,0.15,0.15,0,0.92,0.92,1,10,0,battery_mid,NE,0
+battery_for_electrolyzer,1,1,1,1,0,0,-1,0,21542,24743,4895,5622,0.15,0.15,0,0.92,0.92,1,10,1,battery_mid,NE,0
\ No newline at end of file
diff --git a/test/Electrolyzer/Resources/Thermal.csv b/test/Electrolyzer/Resources/Thermal.csv
new file mode 100644
index 0000000000..6da8fe8786
--- /dev/null
+++ b/test/Electrolyzer/Resources/Thermal.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Resource_Type,region,cluster
+natural_gas_combined_cycle,1,1,1,1,0,-1,0,65400,10287,3.55,7.43,NG,250,91,2,6,6,0.64,0.64,0.468,natural_gas_fired_combined_cycle,NE,1
\ No newline at end of file
diff --git a/test/Electrolyzer/Resources/Vre.csv b/test/Electrolyzer/Resources/Vre.csv
new file mode 100644
index 0000000000..c470033ac3
--- /dev/null
+++ b/test/Electrolyzer/Resources/Vre.csv
@@ -0,0 +1,3 @@
+Resource,Zone,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Resource_Type,region,cluster,Qualified_Hydrogen_Supply
+solar_pv,1,1,1,1,0,-1,0,85300,18760,0,9.13,solar_photovoltaic,NE,1,1
+onshore_wind,1,1,1,1,0,-1,0,97200,43205,0.1,9.12,onshore_wind_turbine,NE,1,1
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_non_colocated/CO2_cap.csv b/test/LoadResourceData/test_gen_non_colocated/CO2_cap.csv
new file mode 100644
index 0000000000..97ba02e752
--- /dev/null
+++ b/test/LoadResourceData/test_gen_non_colocated/CO2_cap.csv
@@ -0,0 +1,4 @@
+,Network_zones,CO_2_Cap_Zone_1,CO_2_Max_Mtons_1
+NENGREST,z1,1,8.59
+NENG_CT,z2,1,2.31
+NENG_ME,z3,1,1.29
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_non_colocated/Capacity_reserve_margin.csv b/test/LoadResourceData/test_gen_non_colocated/Capacity_reserve_margin.csv
new file mode 100644
index 0000000000..29700c6bdb
--- /dev/null
+++ b/test/LoadResourceData/test_gen_non_colocated/Capacity_reserve_margin.csv
@@ -0,0 +1,4 @@
+Zone_name,Network_zones,CapRes_1
+NENGREST,z1,0.156
+NENG_CT,z2,0.156
+NENG_ME,z3,0.156
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_non_colocated/Demand_data.csv b/test/LoadResourceData/test_gen_non_colocated/Demand_data.csv
new file mode 100644
index 0000000000..b5166aaedb
--- /dev/null
+++ b/test/LoadResourceData/test_gen_non_colocated/Demand_data.csv
@@ -0,0 +1,481 @@
+Voll,Demand_Segment,Cost_of_Demand_Curtailment_per_MW,Max_Demand_Curtailment,$/MWh,Rep_Periods,Timesteps_per_Rep_Period,Sub_Weights,Time_Index,Demand_MW_z1,Demand_MW_z2,Demand_MW_z3
+2000,1,1,1,2000,5,96,2112,1,8953,2557,1220
+,2,0.9,0.04,1800,,,2880,2,8388,2395,1144
+,3,0.55,0.024,1100,,,1632,3,8016,2290,1093
+,4,0.2,0.003,400,,,2016,4,7790,2225,1062
+,,,,,,,96,5,7739,2210,1055
+,,,,,,,,6,7807,2230,1065
+,,,,,,,,7,8107,2316,1105
+,,,,,,,,8,8824,2520,1203
+,,,,,,,,9,9731,2779,1327
+,,,,,,,,10,10541,3011,1437
+,,,,,,,,11,11119,3175,1515
+,,,,,,,,12,11425,3262,1557
+,,,,,,,,13,11542,3296,1574
+,,,,,,,,14,11550,3299,1575
+,,,,,,,,15,11459,3272,1562
+,,,,,,,,16,11195,3198,1526
+,,,,,,,,17,10966,3132,1496
+,,,,,,,,18,10858,3101,1481
+,,,,,,,,19,10692,3053,1458
+,,,,,,,,20,10550,3012,1438
+,,,,,,,,21,10553,3014,1439
+,,,,,,,,22,10177,2907,1387
+,,,,,,,,23,9511,2716,1296
+,,,,,,,,24,8764,2503,1195
+,,,,,,,,25,8114,2317,1106
+,,,,,,,,26,7691,2197,1048
+,,,,,,,,27,7414,2118,1011
+,,,,,,,,28,7254,2072,988
+,,,,,,,,29,7216,2061,984
+,,,,,,,,30,7273,2077,991
+,,,,,,,,31,7399,2113,1008
+,,,,,,,,32,7880,2251,1074
+,,,,,,,,33,8565,2446,1168
+,,,,,,,,34,9180,2622,1251
+,,,,,,,,35,9605,2743,1309
+,,,,,,,,36,9924,2834,1353
+,,,,,,,,37,10117,2889,1379
+,,,,,,,,38,10140,2896,1382
+,,,,,,,,39,10108,2887,1378
+,,,,,,,,40,10060,2873,1372
+,,,,,,,,41,10158,2902,1385
+,,,,,,,,42,10299,2942,1404
+,,,,,,,,43,10241,2924,1396
+,,,,,,,,44,10094,2883,1377
+,,,,,,,,45,10205,2914,1391
+,,,,,,,,46,9904,2828,1350
+,,,,,,,,47,9154,2615,1248
+,,,,,,,,48,8340,2382,1137
+,,,,,,,,49,7697,2199,1049
+,,,,,,,,50,7297,2084,994
+,,,,,,,,51,7070,2019,964
+,,,,,,,,52,6978,1992,951
+,,,,,,,,53,7123,2034,971
+,,,,,,,,54,7552,2158,1029
+,,,,,,,,55,8389,2396,1144
+,,,,,,,,56,9466,2703,1290
+,,,,,,,,57,10292,2939,1403
+,,,,,,,,58,10907,3115,1487
+,,,,,,,,59,11444,3268,1560
+,,,,,,,,60,11836,3381,1614
+,,,,,,,,61,12132,3465,1653
+,,,,,,,,62,12456,3558,1698
+,,,,,,,,63,12667,3618,1727
+,,,,,,,,64,12784,3652,1743
+,,,,,,,,65,12883,3680,1757
+,,,,,,,,66,12812,3658,1747
+,,,,,,,,67,12469,3561,1700
+,,,,,,,,68,12004,3428,1637
+,,,,,,,,69,11893,3397,1622
+,,,,,,,,70,11349,3242,1548
+,,,,,,,,71,10234,2923,1395
+,,,,,,,,72,9136,2609,1246
+,,,,,,,,73,8338,2382,1137
+,,,,,,,,74,7843,2240,1070
+,,,,,,,,75,7549,2156,1029
+,,,,,,,,76,7403,2115,1009
+,,,,,,,,77,7491,2140,1022
+,,,,,,,,78,7905,2257,1077
+,,,,,,,,79,8725,2492,1189
+,,,,,,,,80,9745,2783,1329
+,,,,,,,,81,10474,2992,1427
+,,,,,,,,82,10995,3140,1500
+,,,,,,,,83,11445,3269,1560
+,,,,,,,,84,11722,3348,1598
+,,,,,,,,85,11882,3393,1620
+,,,,,,,,86,12062,3445,1644
+,,,,,,,,87,12064,3446,1644
+,,,,,,,,88,11937,3409,1628
+,,,,,,,,89,11813,3374,1610
+,,,,,,,,90,11683,3337,1593
+,,,,,,,,91,11469,3276,1564
+,,,,,,,,92,11308,3230,1542
+,,,,,,,,93,11382,3251,1552
+,,,,,,,,94,10872,3105,1482
+,,,,,,,,95,9922,2834,1352
+,,,,,,,,96,8995,2569,1226
+,,,,,,,,97,7909,2258,1078
+,,,,,,,,98,7636,2181,1041
+,,,,,,,,99,7537,2153,1028
+,,,,,,,,100,7535,2152,1027
+,,,,,,,,101,7765,2218,1059
+,,,,,,,,102,8486,2424,1157
+,,,,,,,,103,9799,2799,1336
+,,,,,,,,104,10421,2976,1421
+,,,,,,,,105,10462,2988,1426
+,,,,,,,,106,10430,2978,1421
+,,,,,,,,107,10410,2973,1420
+,,,,,,,,108,10320,2948,1407
+,,,,,,,,109,10201,2913,1391
+,,,,,,,,110,10110,2887,1378
+,,,,,,,,111,9996,2855,1363
+,,,,,,,,112,9942,2839,1355
+,,,,,,,,113,10151,2899,1383
+,,,,,,,,114,10934,3123,1491
+,,,,,,,,115,11231,3208,1531
+,,,,,,,,116,10947,3127,1492
+,,,,,,,,117,10521,3004,1434
+,,,,,,,,118,9831,2808,1340
+,,,,,,,,119,8930,2551,1217
+,,,,,,,,120,8132,2322,1109
+,,,,,,,,121,7589,2167,1034
+,,,,,,,,122,7299,2084,995
+,,,,,,,,123,7158,2044,976
+,,,,,,,,124,7144,2040,974
+,,,,,,,,125,7342,2096,1001
+,,,,,,,,126,8068,2304,1100
+,,,,,,,,127,9367,2675,1277
+,,,,,,,,128,10061,2873,1372
+,,,,,,,,129,10198,2912,1390
+,,,,,,,,130,10231,2922,1395
+,,,,,,,,131,10260,2930,1399
+,,,,,,,,132,10215,2917,1392
+,,,,,,,,133,10093,2883,1377
+,,,,,,,,134,10037,2866,1368
+,,,,,,,,135,9922,2834,1352
+,,,,,,,,136,9884,2822,1347
+,,,,,,,,137,10127,2893,1381
+,,,,,,,,138,10851,3099,1479
+,,,,,,,,139,11101,3171,1513
+,,,,,,,,140,10840,3096,1478
+,,,,,,,,141,10398,2969,1418
+,,,,,,,,142,9705,2772,1323
+,,,,,,,,143,8792,2512,1199
+,,,,,,,,144,7960,2273,1085
+,,,,,,,,145,7455,2129,1017
+,,,,,,,,146,7188,2052,980
+,,,,,,,,147,7085,2023,966
+,,,,,,,,148,7134,2037,972
+,,,,,,,,149,7364,2103,1004
+,,,,,,,,150,8128,2321,1108
+,,,,,,,,151,9425,2692,1285
+,,,,,,,,152,10057,2872,1372
+,,,,,,,,153,10138,2895,1382
+,,,,,,,,154,10153,2900,1384
+,,,,,,,,155,10133,2894,1381
+,,,,,,,,156,10080,2879,1374
+,,,,,,,,157,10018,2861,1366
+,,,,,,,,158,10015,2860,1366
+,,,,,,,,159,9941,2839,1355
+,,,,,,,,160,9976,2850,1360
+,,,,,,,,161,10336,2952,1409
+,,,,,,,,162,11007,3144,1501
+,,,,,,,,163,11151,3184,1520
+,,,,,,,,164,10872,3105,1482
+,,,,,,,,165,10440,2982,1423
+,,,,,,,,166,9743,2782,1328
+,,,,,,,,167,8823,2520,1203
+,,,,,,,,168,8004,2286,1091
+,,,,,,,,169,7441,2125,1015
+,,,,,,,,170,7121,2034,971
+,,,,,,,,171,6951,1986,947
+,,,,,,,,172,6924,1978,943
+,,,,,,,,173,7104,2029,968
+,,,,,,,,174,7763,2217,1059
+,,,,,,,,175,8985,2566,1225
+,,,,,,,,176,9713,2774,1324
+,,,,,,,,177,9918,2832,1352
+,,,,,,,,178,9971,2848,1359
+,,,,,,,,179,9985,2852,1362
+,,,,,,,,180,9908,2830,1351
+,,,,,,,,181,9741,2781,1328
+,,,,,,,,182,9622,2748,1312
+,,,,,,,,183,9461,2702,1290
+,,,,,,,,184,9374,2678,1279
+,,,,,,,,185,9539,2724,1300
+,,,,,,,,186,10190,2909,1389
+,,,,,,,,187,10492,2996,1430
+,,,,,,,,188,10231,2922,1395
+,,,,,,,,189,9886,2823,1347
+,,,,,,,,190,9393,2683,1281
+,,,,,,,,191,8703,2486,1187
+,,,,,,,,192,7986,2281,1089
+,,,,,,,,193,8496,2427,1159
+,,,,,,,,194,8193,2340,1116
+,,,,,,,,195,8007,2287,1091
+,,,,,,,,196,7935,2266,1081
+,,,,,,,,197,8002,2286,1091
+,,,,,,,,198,8261,2360,1126
+,,,,,,,,199,8772,2506,1196
+,,,,,,,,200,9381,2679,1279
+,,,,,,,,201,10060,2873,1372
+,,,,,,,,202,10651,3041,1452
+,,,,,,,,203,11015,3146,1502
+,,,,,,,,204,11171,3190,1523
+,,,,,,,,205,11170,3190,1523
+,,,,,,,,206,11028,3149,1504
+,,,,,,,,207,10848,3098,1479
+,,,,,,,,208,10772,3076,1468
+,,,,,,,,209,11183,3193,1525
+,,,,,,,,210,11889,3395,1621
+,,,,,,,,211,11767,3360,1604
+,,,,,,,,212,11359,3244,1549
+,,,,,,,,213,10940,3124,1491
+,,,,,,,,214,10396,2969,1417
+,,,,,,,,215,9729,2778,1327
+,,,,,,,,216,9075,2592,1238
+,,,,,,,,217,8565,2446,1168
+,,,,,,,,218,8285,2366,1130
+,,,,,,,,219,8150,2327,1111
+,,,,,,,,220,8090,2311,1103
+,,,,,,,,221,8144,2326,1111
+,,,,,,,,222,8366,2389,1140
+,,,,,,,,223,8759,2502,1195
+,,,,,,,,224,9189,2624,1253
+,,,,,,,,225,9759,2786,1331
+,,,,,,,,226,10110,2887,1378
+,,,,,,,,227,10249,2927,1397
+,,,,,,,,228,10247,2926,1396
+,,,,,,,,229,10185,2908,1388
+,,,,,,,,230,10108,2887,1378
+,,,,,,,,231,10078,2878,1374
+,,,,,,,,232,10095,2883,1377
+,,,,,,,,233,10566,3017,1441
+,,,,,,,,234,11269,3218,1536
+,,,,,,,,235,11273,3219,1537
+,,,,,,,,236,11067,3161,1509
+,,,,,,,,237,10661,3045,1454
+,,,,,,,,238,9993,2855,1362
+,,,,,,,,239,9247,2641,1260
+,,,,,,,,240,8489,2424,1158
+,,,,,,,,241,7944,2269,1083
+,,,,,,,,242,7667,2189,1045
+,,,,,,,,243,7554,2158,1030
+,,,,,,,,244,7560,2160,1031
+,,,,,,,,245,7795,2226,1063
+,,,,,,,,246,8509,2429,1159
+,,,,,,,,247,9810,2801,1337
+,,,,,,,,248,10540,3010,1436
+,,,,,,,,249,10697,3056,1459
+,,,,,,,,250,10786,3081,1470
+,,,,,,,,251,10870,3105,1482
+,,,,,,,,252,10855,3099,1480
+,,,,,,,,253,10750,3070,1465
+,,,,,,,,254,10677,3049,1456
+,,,,,,,,255,10561,3016,1440
+,,,,,,,,256,10566,3017,1441
+,,,,,,,,257,11048,3155,1506
+,,,,,,,,258,11750,3355,1602
+,,,,,,,,259,11653,3328,1589
+,,,,,,,,260,11283,3222,1539
+,,,,,,,,261,10751,3070,1465
+,,,,,,,,262,9969,2847,1359
+,,,,,,,,263,8988,2566,1225
+,,,,,,,,264,8100,2313,1105
+,,,,,,,,265,7535,2152,1027
+,,,,,,,,266,7177,2050,978
+,,,,,,,,267,7002,1999,954
+,,,,,,,,268,6957,1987,948
+,,,,,,,,269,7155,2043,976
+,,,,,,,,270,7815,2232,1066
+,,,,,,,,271,9128,2606,1245
+,,,,,,,,272,9853,2814,1343
+,,,,,,,,273,9926,2835,1353
+,,,,,,,,274,9885,2823,1347
+,,,,,,,,275,9897,2826,1349
+,,,,,,,,276,9856,2815,1343
+,,,,,,,,277,9742,2782,1328
+,,,,,,,,278,9668,2762,1318
+,,,,,,,,279,9564,2732,1303
+,,,,,,,,280,9572,2733,1305
+,,,,,,,,281,10051,2870,1371
+,,,,,,,,282,10932,3123,1491
+,,,,,,,,283,10942,3125,1492
+,,,,,,,,284,10682,3050,1456
+,,,,,,,,285,10258,2930,1398
+,,,,,,,,286,9557,2730,1302
+,,,,,,,,287,8681,2479,1184
+,,,,,,,,288,7862,2246,1071
+,,,,,,,,289,7141,2039,973
+,,,,,,,,290,6781,1937,924
+,,,,,,,,291,6566,1875,895
+,,,,,,,,292,6498,1856,886
+,,,,,,,,293,6636,1895,904
+,,,,,,,,294,7126,2035,972
+,,,,,,,,295,8188,2339,1115
+,,,,,,,,296,9111,2602,1243
+,,,,,,,,297,9562,2732,1303
+,,,,,,,,298,9841,2811,1342
+,,,,,,,,299,10049,2869,1371
+,,,,,,,,300,10190,2910,1389
+,,,,,,,,301,10212,2917,1392
+,,,,,,,,302,10252,2928,1397
+,,,,,,,,303,10199,2913,1390
+,,,,,,,,304,10149,2899,1383
+,,,,,,,,305,10146,2898,1383
+,,,,,,,,306,10064,2874,1372
+,,,,,,,,307,9882,2822,1347
+,,,,,,,,308,9729,2778,1327
+,,,,,,,,309,9858,2816,1343
+,,,,,,,,310,9575,2734,1305
+,,,,,,,,311,8811,2516,1201
+,,,,,,,,312,7946,2269,1083
+,,,,,,,,313,7289,2081,993
+,,,,,,,,314,6891,1968,940
+,,,,,,,,315,6649,1900,906
+,,,,,,,,316,6527,1864,890
+,,,,,,,,317,6541,1868,892
+,,,,,,,,318,6640,1896,905
+,,,,,,,,319,7019,2005,957
+,,,,,,,,320,7737,2209,1055
+,,,,,,,,321,8583,2451,1169
+,,,,,,,,322,9273,2648,1264
+,,,,,,,,323,9748,2784,1329
+,,,,,,,,324,10054,2871,1371
+,,,,,,,,325,10237,2924,1396
+,,,,,,,,326,10296,2940,1404
+,,,,,,,,327,10335,2952,1409
+,,,,,,,,328,10335,2952,1409
+,,,,,,,,329,10408,2972,1419
+,,,,,,,,330,10408,2972,1419
+,,,,,,,,331,10262,2931,1399
+,,,,,,,,332,10071,2876,1373
+,,,,,,,,333,10168,2904,1386
+,,,,,,,,334,9880,2821,1347
+,,,,,,,,335,9070,2590,1237
+,,,,,,,,336,8197,2340,1117
+,,,,,,,,337,7469,2133,1018
+,,,,,,,,338,7002,1999,954
+,,,,,,,,339,6688,1909,912
+,,,,,,,,340,6498,1856,886
+,,,,,,,,341,6411,1831,874
+,,,,,,,,342,6313,1803,860
+,,,,,,,,343,6535,1866,891
+,,,,,,,,344,7104,2029,968
+,,,,,,,,345,7816,2233,1066
+,,,,,,,,346,8449,2413,1152
+,,,,,,,,347,8856,2529,1207
+,,,,,,,,348,9131,2608,1245
+,,,,,,,,349,9295,2654,1267
+,,,,,,,,350,9322,2662,1271
+,,,,,,,,351,9341,2668,1273
+,,,,,,,,352,9390,2682,1280
+,,,,,,,,353,9479,2707,1292
+,,,,,,,,354,9519,2718,1298
+,,,,,,,,355,9366,2675,1277
+,,,,,,,,356,9188,2624,1252
+,,,,,,,,357,9362,2674,1277
+,,,,,,,,358,9170,2619,1249
+,,,,,,,,359,8537,2438,1164
+,,,,,,,,360,7792,2225,1062
+,,,,,,,,361,7194,2055,981
+,,,,,,,,362,6800,1943,928
+,,,,,,,,363,6579,1879,897
+,,,,,,,,364,6470,1848,882
+,,,,,,,,365,6484,1852,884
+,,,,,,,,366,6545,1870,893
+,,,,,,,,367,6845,1955,933
+,,,,,,,,368,7460,2130,1017
+,,,,,,,,369,8287,2367,1130
+,,,,,,,,370,8975,2563,1224
+,,,,,,,,371,9499,2713,1294
+,,,,,,,,372,9889,2824,1348
+,,,,,,,,373,10168,2904,1386
+,,,,,,,,374,10270,2933,1400
+,,,,,,,,375,10340,2952,1410
+,,,,,,,,376,10418,2976,1421
+,,,,,,,,377,10561,3016,1440
+,,,,,,,,378,10665,3045,1454
+,,,,,,,,379,10545,3012,1437
+,,,,,,,,380,10414,2974,1420
+,,,,,,,,381,10556,3015,1439
+,,,,,,,,382,10084,2880,1375
+,,,,,,,,383,9059,2587,1235
+,,,,,,,,384,8076,2306,1101
+,,,,,,,,385,9966,2846,1358
+,,,,,,,,386,9488,2710,1293
+,,,,,,,,387,9182,2622,1252
+,,,,,,,,388,9021,2576,1230
+,,,,,,,,389,9083,2594,1238
+,,,,,,,,390,9497,2712,1295
+,,,,,,,,391,10491,2996,1430
+,,,,,,,,392,11808,3372,1610
+,,,,,,,,393,12831,3665,1749
+,,,,,,,,394,13653,3899,1862
+,,,,,,,,395,14376,4106,1960
+,,,,,,,,396,14958,4272,2040
+,,,,,,,,397,15407,4400,2100
+,,,,,,,,398,15793,4511,2153
+,,,,,,,,399,15875,4534,2165
+,,,,,,,,400,15907,4543,2169
+,,,,,,,,401,15877,4534,2165
+,,,,,,,,402,15759,4501,2149
+,,,,,,,,403,15392,4396,2099
+,,,,,,,,404,14909,4258,2033
+,,,,,,,,405,14720,4204,2007
+,,,,,,,,406,14135,4037,1927
+,,,,,,,,407,12785,3651,1743
+,,,,,,,,408,11449,3270,1561
+,,,,,,,,409,10503,3000,1432
+,,,,,,,,410,9889,2825,1348
+,,,,,,,,411,9493,2711,1294
+,,,,,,,,412,9245,2640,1261
+,,,,,,,,413,9268,2647,1263
+,,,,,,,,414,9643,2754,1315
+,,,,,,,,415,10684,3051,1457
+,,,,,,,,416,12036,3437,1641
+,,,,,,,,417,13120,3747,1789
+,,,,,,,,418,14080,4021,1919
+,,,,,,,,419,14910,4258,2033
+,,,,,,,,420,15478,4421,2110
+,,,,,,,,421,15870,4533,2164
+,,,,,,,,422,16225,4633,2212
+,,,,,,,,423,16448,4698,2242
+,,,,,,,,424,16617,4746,2266
+,,,,,,,,425,16717,4774,2279
+,,,,,,,,426,16579,4735,2261
+,,,,,,,,427,16199,4626,2209
+,,,,,,,,428,15701,4484,2140
+,,,,,,,,429,15416,4403,2102
+,,,,,,,,430,14854,4243,2025
+,,,,,,,,431,13581,3878,1852
+,,,,,,,,432,12317,3518,1679
+,,,,,,,,433,11428,3264,1558
+,,,,,,,,434,10876,3106,1483
+,,,,,,,,435,10527,3006,1435
+,,,,,,,,436,10316,2946,1407
+,,,,,,,,437,10305,2943,1405
+,,,,,,,,438,10666,3046,1454
+,,,,,,,,439,11610,3316,1583
+,,,,,,,,440,12998,3712,1772
+,,,,,,,,441,13972,3990,1905
+,,,,,,,,442,14756,4214,2012
+,,,,,,,,443,15564,4445,2122
+,,,,,,,,444,16180,4621,2206
+,,,,,,,,445,16567,4732,2259
+,,,,,,,,446,16579,4735,2261
+,,,,,,,,447,16191,4624,2207
+,,,,,,,,448,15434,4408,2105
+,,,,,,,,449,14862,4244,2026
+,,,,,,,,450,14616,4174,1993
+,,,,,,,,451,14244,4068,1942
+,,,,,,,,452,13888,3967,1893
+,,,,,,,,453,13782,3937,1879
+,,,,,,,,454,13334,3808,1818
+,,,,,,,,455,12202,3485,1664
+,,,,,,,,456,11020,3147,1503
+,,,,,,,,457,10113,2888,1378
+,,,,,,,,458,9460,2702,1290
+,,,,,,,,459,9045,2583,1233
+,,,,,,,,460,8791,2511,1198
+,,,,,,,,461,8777,2506,1196
+,,,,,,,,462,9086,2595,1239
+,,,,,,,,463,9840,2810,1342
+,,,,,,,,464,10757,3072,1467
+,,,,,,,,465,11290,3225,1540
+,,,,,,,,466,11661,3331,1590
+,,,,,,,,467,12023,3434,1639
+,,,,,,,,468,12273,3506,1673
+,,,,,,,,469,12425,3549,1694
+,,,,,,,,470,12644,3611,1724
+,,,,,,,,471,12722,3633,1735
+,,,,,,,,472,12820,3661,1748
+,,,,,,,,473,12921,3690,1762
+,,,,,,,,474,12885,3680,1757
+,,,,,,,,475,12514,3574,1707
+,,,,,,,,476,12068,3446,1645
+,,,,,,,,477,11994,3426,1635
+,,,,,,,,478,11578,3306,1579
+,,,,,,,,479,10569,3018,1441
+,,,,,,,,480,9506,2715,1296
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_non_colocated/Energy_share_requirement.csv b/test/LoadResourceData/test_gen_non_colocated/Energy_share_requirement.csv
new file mode 100644
index 0000000000..5aac67302b
--- /dev/null
+++ b/test/LoadResourceData/test_gen_non_colocated/Energy_share_requirement.csv
@@ -0,0 +1,4 @@
+Zone_name,Network_zones,ESR_1,ESR_2
+NENGREST,z1,0.259,0.348
+NENG_CT,z2,0.44,0.44
+NENG_ME,z3,0.776,0.776
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_non_colocated/Fuels_data.csv b/test/LoadResourceData/test_gen_non_colocated/Fuels_data.csv
new file mode 100644
index 0000000000..7579bca1a6
--- /dev/null
+++ b/test/LoadResourceData/test_gen_non_colocated/Fuels_data.csv
@@ -0,0 +1,482 @@
+Time_Index,NENG_CT_NG,NENG_ME_NG,NENGREST_NG,NENGREST_NG_ccs90,west_north_central_coal,new_england_uranium,NENG_CT_NG_ccs90,NENG_ME_ccs90,NENGREST_ccs90,NENG_CT_NG_ccs100,NENGREST_NG_ccs100,NENG_ME_NG_ccs90,NENG_ME_NG_ccs100,NENG_ME_ccs100,NENGREST_ccs100,None,Biomass
+0,0.05306,0.05306,0.05306,0.05306,0.09552,0,0.00531,0.00531,0.00531,0,0,0.00531,0,0,0,0,0.095
+1,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+2,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+3,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+4,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+5,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+6,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+7,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+8,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+9,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+10,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+11,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+12,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+13,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+14,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+15,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+16,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+17,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+18,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+19,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+20,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+21,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+22,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+23,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+24,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+25,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+26,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+27,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+28,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+29,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+30,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+31,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+32,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+33,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+34,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+35,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+36,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+37,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+38,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+39,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+40,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+41,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+42,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+43,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+44,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+45,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+46,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+47,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+48,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+49,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+50,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+51,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+52,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+53,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+54,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+55,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+56,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+57,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+58,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+59,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+60,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+61,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+62,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+63,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+64,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+65,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+66,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+67,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+68,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+69,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+70,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+71,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+72,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+73,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+74,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+75,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+76,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+77,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+78,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+79,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+80,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+81,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+82,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+83,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+84,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+85,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+86,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+87,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+88,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+89,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+90,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+91,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+92,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+93,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+94,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+95,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+96,3.14,3.14,3.69,3.69,1.67,0.69,3.14,3.14,3.69,1.71,1.71,3.69,1.71,1.71,2.26,0,8
+97,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+98,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+99,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+100,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+101,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+102,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+103,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+104,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+105,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+106,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+107,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+108,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+109,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+110,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+111,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+112,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+113,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+114,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+115,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+116,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+117,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+118,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+119,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+120,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+121,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+122,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+123,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+124,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+125,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+126,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+127,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+128,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+129,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+130,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+131,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+132,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+133,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+134,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+135,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+136,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+137,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+138,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+139,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+140,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+141,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+142,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+143,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+144,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+145,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+146,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+147,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+148,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+149,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+150,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+151,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+152,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+153,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+154,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+155,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+156,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+157,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+158,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+159,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+160,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+161,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+162,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+163,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+164,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+165,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+166,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+167,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+168,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+169,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+170,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+171,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+172,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+173,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+174,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+175,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+176,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+177,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+178,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+179,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+180,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+181,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+182,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+183,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+184,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+185,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+186,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+187,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+188,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+189,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+190,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+191,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+192,1.89,1.89,2.34,2.34,1.67,0.69,1.89,1.89,2.34,0.46,0.46,2.34,0.46,0.46,0.91,0,8
+193,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+194,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+195,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+196,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+197,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+198,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+199,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+200,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+201,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+202,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+203,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+204,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+205,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+206,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+207,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+208,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+209,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+210,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+211,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+212,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+213,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+214,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+215,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+216,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+217,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+218,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+219,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+220,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+221,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+222,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+223,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+224,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+225,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+226,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+227,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+228,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+229,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+230,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+231,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+232,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+233,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+234,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+235,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+236,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+237,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+238,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+239,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+240,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+241,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+242,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+243,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+244,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+245,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+246,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+247,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+248,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+249,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+250,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+251,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+252,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+253,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+254,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+255,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+256,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+257,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+258,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+259,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+260,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+261,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+262,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+263,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+264,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+265,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+266,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+267,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+268,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+269,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+270,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+271,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+272,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+273,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+274,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+275,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+276,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+277,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+278,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+279,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+280,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+281,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+282,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+283,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+284,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+285,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+286,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+287,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+288,0.74,0.74,1.01,1.01,0.64,0.27,0.74,0.74,1.01,0.19,0.19,1.01,0.19,0.19,0.46,0,8
+289,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+290,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+291,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+292,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+293,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+294,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+295,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+296,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+297,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+298,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+299,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+300,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+301,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+302,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+303,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+304,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+305,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+306,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+307,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+308,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+309,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+310,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+311,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+312,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+313,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+314,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+315,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+316,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+317,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+318,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+319,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+320,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+321,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+322,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+323,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+324,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+325,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+326,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+327,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+328,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+329,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+330,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+331,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+332,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+333,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+334,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+335,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+336,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+337,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+338,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+339,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+340,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+341,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+342,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+343,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+344,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+345,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+346,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+347,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+348,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+349,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+350,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+351,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+352,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+353,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+354,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+355,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+356,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+357,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+358,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+359,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+360,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+361,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+362,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+363,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+364,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+365,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+366,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+367,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+368,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+369,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+370,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+371,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+372,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+373,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+374,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+375,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+376,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+377,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+378,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+379,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+380,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+381,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+382,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+383,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+384,0.26,0.26,0.32,0.32,0.24,0.1,0.26,0.26,0.32,0.06,0.06,0.32,0.06,0.06,0.11,0,8
+385,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+386,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+387,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+388,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+389,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+390,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+391,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+392,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+393,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+394,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+395,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+396,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+397,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+398,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+399,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+400,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+401,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+402,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+403,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+404,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+405,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+406,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+407,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+408,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+409,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+410,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+411,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+412,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+413,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+414,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+415,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+416,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+417,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+418,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+419,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+420,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+421,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+422,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+423,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+424,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+425,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+426,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+427,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+428,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+429,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+430,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+431,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+432,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+433,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+434,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+435,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+436,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+437,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+438,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+439,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+440,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+441,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+442,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+443,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+444,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+445,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+446,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+447,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+448,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+449,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+450,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+451,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+452,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+453,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+454,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+455,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+456,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+457,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+458,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+459,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+460,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+461,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+462,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+463,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+464,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+465,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+466,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+467,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+468,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+469,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+470,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+471,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+472,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+473,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+474,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+475,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+476,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+477,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+478,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+479,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
+480,0.49,0.49,0.54,0.54,0.3,0.12,0.49,0.49,0.54,0.23,0.23,0.54,0.23,0.23,0.29,0,8
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_non_colocated/Generators_variability.csv b/test/LoadResourceData/test_gen_non_colocated/Generators_variability.csv
new file mode 100644
index 0000000000..2319762f6c
--- /dev/null
+++ b/test/LoadResourceData/test_gen_non_colocated/Generators_variability.csv
@@ -0,0 +1,481 @@
+Time_Index,NENGREST_conventional_hydroelectric_1,NENGREST_onshore_wind_turbine_1,NENGREST_small_hydroelectric_1,NENGREST_solar_photovoltaic_1,NENG_CT_conventional_hydroelectric_1,NENG_CT_onshore_wind_turbine_1,NENG_CT_small_hydroelectric_1,NENG_CT_solar_photovoltaic_1,NENG_ME_conventional_hydroelectric_1,NENG_ME_onshore_wind_turbine_1,NENG_ME_small_hydroelectric_1,NENG_ME_solar_photovoltaic_1,NENGREST_landbasedwind_ltrg1_mid_130_1,NENGREST_utilitypv_losangeles_mid_80_0_2_1,NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,NENG_CT_landbasedwind_ltrg1_mid_110_1,NENG_CT_utilitypv_losangeles_mid_80_0_2_1,NENG_CT_offshorewind_otrg3_mid_fixed_1_176_77_1,NENG_ME_landbasedwind_ltrg1_mid_110_1,NENG_ME_utilitypv_losangeles_mid_100_0_2_1,NENGREST_heat_load_shifting_1,NENG_CT_heat_load_shifting_1,NENG_ME_heat_load_shifting_1
+1,0.1531,0.0153,0.1531,0,0.2065,0.0626,0.2065,0,0.5201,0.2652,0.5201,0,0.065292753,0,0.01332443,0.103481233,0,0.000801047,0.376813948,0,0.547788787,0.547704675,0.54787234
+2,0.1529,0.0096,0.1529,0,0.2064,0.0741,0.2064,0,0.5199,0.2219,0.5199,0,0.052334037,0,0.003825564,0.122626804,0,0.015034294,0.364595324,0,0.51323103,0.513221917,0.513297872
+3,0.1528,0.0024,0.1528,0,0.2063,0.1111,0.2063,0,0.5198,0.2331,0.5198,0,0.040673904,0,0.000506716,0.161907911,0,0.026875654,0.402507216,0,0.490454326,0.490585995,0.490691489
+4,0.1527,0.0013,0.1527,0,0.2062,0.07,0.2062,0,0.5196,0.2218,0.5196,0,0.026909461,0,0,0.099254258,0,0.00276911,0.400019258,0,0.47661914,0.476835202,0.476950355
+5,0.1525,0.0033,0.1525,0,0.2061,0.0733,0.2061,0,0.5194,0.1759,0.5194,0,0.020325907,0,0,0.110299528,0,0.035911258,0.330832094,0,0.473537941,0.473661942,0.473404255
+6,0.1524,0,0.1524,0,0.206,0.0365,0.206,0,0.5193,0.1043,0.5193,0,0.007212133,3.65E-06,0,0.063602038,0,0.050005242,0.222387373,0.013533911,0.477706622,0.477681405,0.477836879
+7,0.1523,0,0.1523,0.0759,0.2059,0.0234,0.2059,0.0696,0.5191,0.0769,0.5191,0.0904,0.008170175,0.184360758,0.027611975,0.040593714,0.125903487,0.047288746,0.17746836,0.332922995,0.496012567,0.496086313,0.496010638
+8,0.1521,0,0.1521,0.1942,0.2058,0,0.2058,0.2154,0.5189,0.0447,0.5189,0.198,5.58E-05,0.392683566,0.051668573,0.011311333,0.391294956,0.030801307,0.131412923,0.529030442,0.539934751,0.539877301,0.540336879
+9,0.152,0,0.152,0.3388,0.2057,0.009,0.2057,0.3492,0.5188,0.0288,0.5188,0.2909,0.000133052,0.587511301,0.133093059,0.013711058,0.605442703,0.037334293,0.095543988,0.561009407,0.595396327,0.595515126,0.595301418
+10,0.1519,0.0041,0.1519,0.4434,0.2056,0.0158,0.2056,0.3816,0.5186,0.0346,0.5186,0.3935,0.002134913,0.685464025,0.234719694,0.018147571,0.618171573,0.107505769,0.07800559,0.567943335,0.644937168,0.645017982,0.645390071
+11,0.1517,0.0059,0.1517,0.5172,0.2055,0.0441,0.2055,0.3968,0.5184,0.0048,0.5184,0.4017,0.00234053,0.616370916,0.156284452,0.042958312,0.599574626,0.191954464,0.025781849,0.650587142,0.680280329,0.680346943,0.680407801
+12,0.1516,0.0191,0.1516,0.4947,0.2054,0.0771,0.2054,0.4368,0.5183,0.0143,0.5183,0.5062,0.008151108,0.622940779,0.242628396,0.073289946,0.644762218,0.31661284,0.048904218,0.58204931,0.699009183,0.698963402,0.699024823
+13,0.1515,0.0301,0.1515,0.4841,0.2053,0,0.2053,0.3948,0.5181,0.0453,0.5181,0.5072,0.006961724,0.623241484,0.406754732,0.020861842,0.588721633,0.293354213,0.083536409,0.61391294,0.706198647,0.706156124,0.706560284
+14,0.1513,0.0559,0.1513,0.4469,0.2052,0.0013,0.2052,0.3538,0.5179,0.0639,0.5179,0.5036,0.009078478,0.570706308,0.316491723,0.008775378,0.517868459,0.227496073,0.086366162,0.632317364,0.706681972,0.706579226,0.707003546
+15,0.1512,0.1051,0.1512,0.3442,0.2051,0.0821,0.2051,0.2453,0.5178,0.08,0.5178,0.3942,0.028089678,0.446025997,0.373291254,0.095363103,0.31654349,0.741438508,0.082046971,0.540764332,0.701123731,0.701078908,0.701241135
+16,0.1511,0.06,0.1511,0.2529,0.205,0.1972,0.205,0.1974,0.5176,0.0747,0.5176,0.3035,0.050746199,0.309538156,0.228688031,0.123457052,0.28948319,0.20311676,0.085125253,0.468044192,0.68499275,0.685001058,0.685283688
+17,0.1509,0.03,0.1509,0.1595,0.2049,0.1352,0.2049,0.0995,0.5174,0.0801,0.5174,0.1983,0.017428808,0.138130486,0.296999008,0.123827852,0.180463612,0.148169905,0.097150236,0.409677744,0.670976317,0.671038714,0.671099291
+18,0.1508,0.0069,0.1508,0.0649,0.2048,0.0565,0.2048,0.0488,0.5173,0.1059,0.5173,0.1037,0.007835865,0.061673351,0.292313695,0.06580779,0.134101063,0.099628538,0.117435888,0.165352792,0.664330595,0.664480643,0.664893617
+19,0.1507,0.0133,0.1507,0.0001,0.2047,0.047,0.2047,0.0018,0.5171,0.087,0.5171,0.0095,0.019914083,0.000127123,0.160788432,0.047395445,0.003018669,0.046998691,0.116367564,0.003531569,0.654120348,0.654114661,0.654255319
+20,0.1505,0.0333,0.1505,0,0.2046,0.1201,0.2046,0,0.5169,0.0334,0.5169,0,0.07540524,0,0.064300358,0.165233195,0,0.111020416,0.091881208,0,0.645480909,0.645441083,0.645833333
+21,0.1504,0.1005,0.1504,0,0.2045,0.203,0.2045,0,0.5168,0.0233,0.5168,0,0.052637972,0,0.231896117,0.236350656,0,0.010772513,0.085106082,0,0.645662156,0.645864185,0.645833333
+22,0.1503,0.0289,0.1503,0,0.2044,0.0707,0.2044,0,0.5166,0.0138,0.5166,0,0.026745947,0,0.126861706,0.070020534,0,0.319542706,0.020752296,0,0.622704205,0.622593611,0.622783688
+23,0.1501,0.0468,0.1501,0,0.2044,0.0188,0.2044,0,0.5164,0.0102,0.5164,0,0.025927531,0,0.152657956,0.013385094,0,0.034334295,0.017476626,0,0.581863219,0.581764333,0.582003546
+24,0.15,0.0744,0.15,0,0.2043,0.007,0.2043,0,0.5163,0.0101,0.5163,0,0.03693749,0,0.1048944,0.013921568,0,0.015131153,0.022096325,0,0.536249396,0.536280939,0.536347518
+25,0.1499,0.0421,0.1499,0,0.2042,0.0236,0.2042,0,0.5161,0.0183,0.5161,0,0.034658864,0,0.08944007,0.031985622,0,0.018787697,0.045628548,0,0.496495892,0.496509414,0.496453901
+26,0.1497,0.0615,0.1497,0,0.2041,0.0726,0.2041,0,0.5159,0.0196,0.5159,0,0.044860251,0,0.215190679,0.086156786,0,0.174672514,0.039953098,0,0.470577574,0.470700233,0.470301418
+27,0.1496,0.0948,0.1496,0,0.204,0.0582,0.204,0,0.5158,0.004,0.5158,0,0.052799776,0,0.411421448,0.097559929,0,0.201319903,0.019691244,0,0.453600773,0.453776179,0.453457447
+28,0.1495,0.1125,0.1495,0,0.2039,0.057,0.2039,0,0.5156,0.0056,0.5156,0,0.067824267,0,0.552116275,0.119017407,0,0.200681686,0.028433105,0,0.443813436,0.443833298,0.443705674
+29,0.1493,0.0796,0.1493,0,0.2038,0.0325,0.2038,0,0.5154,0.0158,0.5154,0,0.050243534,0,0.421252549,0.074381158,0,0.200313881,0.043670997,0,0.441517641,0.441506241,0.441489362
+30,0.1492,0.0155,0.1492,0,0.2037,0.0176,0.2037,0,0.5153,0.034,0.5153,0,0.017221928,0,0.220671773,0.074560687,0,0.16608718,0.074578553,0,0.444961334,0.444891051,0.445035461
+31,0.1491,0.0179,0.1491,0.0332,0.2036,0.019,0.2036,0.0514,0.5151,0.0306,0.5151,0.0403,0.010373427,0.066505551,0.27323544,0.043967955,0.200801462,0.080578797,0.072065502,0.057881795,0.452694538,0.452718426,0.452570922
+32,0.1489,0.0156,0.1489,0.1747,0.2035,0,0.2035,0.2047,0.5149,0.0121,0.5149,0.1587,0.002428631,0.32694453,0.200677544,0.006775284,0.378910482,0.060398959,0.035953183,0.217560619,0.482116965,0.482123969,0.482269504
+33,0.1488,0.0172,0.1488,0.2926,0.2034,0,0.2034,0.3065,0.5148,0.004,0.5148,0.2751,0.002566876,0.448335052,0.304661334,0.00093309,0.458124369,0.142086655,0.011958488,0.302506179,0.524105848,0.524011001,0.524379433
+34,0.1487,0.0241,0.1487,0.3854,0.2033,0,0.2033,0.3813,0.5146,0.015,0.5146,0.3408,0.003611403,0.531844318,0.226176024,0.000243986,0.539205372,0.096455775,0.025423488,0.448341131,0.561684389,0.561667019,0.561613475
+35,0.1485,0.032,0.1485,0.4568,0.2032,0.0101,0.2032,0.4341,0.5144,0.0204,0.5144,0.4201,0.005624436,0.601224899,0.243716806,0.005231365,0.601645231,0.201825649,0.042783734,0.532999754,0.587723538,0.587687751,0.587765957
+36,0.1484,0.0592,0.1484,0.4712,0.2031,0.0091,0.2031,0.441,0.5143,0.0138,0.5143,0.4445,0.012782884,0.621242821,0.156384543,0.013265309,0.61688453,0.206813097,0.038536161,0.556740463,0.607237796,0.607150413,0.607712766
+37,0.1483,0.0442,0.1483,0.4664,0.203,0.0012,0.203,0.4547,0.5141,0.0402,0.5141,0.438,0.017346889,0.61447376,0.074185491,0.015720278,0.650676727,0.138357863,0.079403915,0.538190424,0.61901885,0.61899725,0.619237589
+38,0.1481,0.0466,0.1481,0.5758,0.2029,0.0015,0.2029,0.5636,0.5139,0.0237,0.5139,0.5244,0.013750245,0.772060514,0.022568563,0.011008149,0.749152422,0.028026965,0.055592764,0.577705145,0.62040841,0.620478105,0.620567376
+39,0.148,0.0428,0.148,0.3979,0.2028,0.0023,0.2028,0.3996,0.5138,0.008,0.5138,0.4006,0.017138852,0.55417341,0.051447712,0.004268894,0.60099411,0,0.026709341,0.438920111,0.618475109,0.618574149,0.618351064
+40,0.1479,0.0379,0.1479,0.3435,0.2027,0,0.2027,0.3548,0.5136,0.0195,0.5136,0.348,0.014250422,0.512610257,0.035391368,0.000125251,0.582904279,0,0.036932766,0.385501057,0.615514741,0.615612439,0.615691489
+41,0.1477,0.0353,0.1477,0.2533,0.2026,0,0.2026,0.247,0.5134,0.0102,0.5134,0.2132,0.006402459,0.416100174,0.032427806,0.00053452,0.548698306,0.006775393,0.01535768,0.347824365,0.621495892,0.621747409,0.621897163
+42,0.1476,0.0441,0.1476,0.1416,0.2025,0,0.2025,0.1639,0.5133,0.0523,0.5133,0.1217,0.010903064,0.284536719,0.047829591,9.45E-05,0.431092978,0,0.047571044,0.2250451,0.630135331,0.630209435,0.630319149
+43,0.1475,0.0356,0.1475,0.037,0.2024,0,0.2024,0.0612,0.5131,0.064,0.5131,0.03,0.014553991,0.129970193,0.041080989,5.81E-05,0.285668582,0.000612566,0.077780418,0.057166476,0.626570807,0.626613074,0.62677305
+44,0.1473,0.0365,0.1473,0,0.2023,0,0.2023,0,0.5129,0.0507,0.5129,0,0.007713901,0,0.126314491,0.004635042,0,0.207087189,0.107284553,0,0.61762929,0.617727946,0.617907801
+45,0.1472,0.0129,0.1472,0,0.2022,0.0042,0.2022,0,0.5128,0.0535,0.5128,0,0.0058565,0,0.08200334,0.014006531,0,0.149906278,0.101532109,0,0.624395843,0.624497567,0.624556738
+46,0.1471,0.0357,0.1471,0,0.2021,0,0.2021,0,0.5126,0.0478,0.5126,0,0.022701541,0,0.111567095,0.017007494,0,0.040073823,0.086758919,0,0.605969067,0.605881109,0.605939716
+47,0.1469,0.0129,0.1469,0,0.202,0.0425,0.202,0,0.5124,0.0701,0.5124,0,0.020868678,0,0.083027355,0.061066702,0,0.016895551,0.152101591,0,0.560053166,0.560186165,0.560283688
+48,0.1468,0.004,0.1468,0,0.2019,0,0.2019,0,0.5123,0.0002,0.5123,0,8.66E-05,0,0.075362757,1.13E-05,0,0.080960475,0.000741268,0,0.510270662,0.510260207,0.510638298
+49,0.1467,0.0124,0.1467,0,0.2018,0.008,0.2018,0,0.5121,0.0677,0.5121,0,0.004744857,0,0.097618878,0.030100621,0,0.003839006,0.177268758,0,0.470940068,0.470911783,0.470744681
+50,0.1465,0.0114,0.1465,0,0.2018,0,0.2018,0,0.5119,0.0677,0.5119,0,0.002719705,0,0.225894779,0.019255322,0,0.029375395,0.197093874,0,0.446471726,0.446583457,0.446365248
+51,0.1464,0.002,0.1464,0,0.2017,0,0.2017,0,0.5118,0,0.5118,0,0.00010409,0,0.188784003,0.000033714,0,0.096268073,0.002023064,0,0.432576124,0.432621113,0.432624114
+52,0.1463,0.0056,0.1463,0,0.2016,0,0.2016,0,0.5116,0.0839,0.5116,0,0.006765652,0,0.20851934,0.005068693,0,0.042369112,0.214174733,0,0.426957467,0.426909245,0.426861702
+53,0.1461,0.0038,0.1461,0,0.2015,0,0.2015,0,0.5114,0.0612,0.5114,0,0.008018229,0,0.088911235,0.002749863,0,0.024419634,0.226037741,0,0.435838569,0.435794373,0.43572695
+54,0.146,0.0193,0.146,0.0006,0.2014,0.0045,0.2014,0,0.5113,0.0584,0.5113,0.0024,0.008957319,0.000240326,0.021473989,0.012861684,0,0.037380628,0.230653733,0.060233783,0.462119381,0.462238206,0.461879433
+55,0.1459,0.0081,0.1459,0.0743,0.2013,0,0.2013,0.1022,0.5111,0.0583,0.5111,0.0537,0.003660081,0.48990795,0,0.00046645,0.446400285,0,0.232023567,0.501660347,0.513291445,0.513433467,0.513297872
+56,0.1457,0.0012,0.1457,0.2155,0.2012,0,0.2012,0.2321,0.5109,0.0368,0.5109,0.1997,0.000613676,0.674091935,0.001419886,0,0.604865134,0,0.097109132,0.748290956,0.579144514,0.579225725,0.579343972
+57,0.1456,0,0.1456,0.3828,0.2011,0,0.2011,0.4014,0.5108,0.0202,0.5108,0.3758,0.00011487,0.816774249,0.001373258,0,0.744025827,0,0.042923428,0.832321525,0.629712422,0.629786334,0.629875887
+58,0.1455,0,0.1455,0.5145,0.201,0,0.201,0.5211,0.5106,0.0073,0.5106,0.5148,4.48E-06,0.876774967,0,0,0.799411118,0,0.013343919,0.872836471,0.667351378,0.667442352,0.667553192
+59,0.1453,0.0003,0.1453,0.6114,0.2009,0,0.2009,0.6106,0.5104,0.0077,0.5104,0.6151,0.000885552,0.891837001,0,0.000243949,0.836563349,0,0.006216149,0.894069552,0.700217496,0.700232706,0.70035461
+60,0.1452,0.0086,0.1452,0.6382,0.2008,0,0.2008,0.6374,0.5103,0.0061,0.5103,0.638,0.002429813,0.898506522,0,0.002871435,0.854514718,0,0.00786264,0.897833586,0.724262929,0.724349482,0.72429078
+61,0.1451,0.057,0.1451,0.6077,0.2007,0.0048,0.2007,0.6107,0.5101,0.0007,0.5101,0.5879,0.023022356,0.853422284,0.062501624,0.012987654,0.825059712,0.007581153,0.00919114,0.827724934,0.742266796,0.742331288,0.742464539
+62,0.1449,0.0394,0.1449,0.6255,0.2006,0.0393,0.2006,0.635,0.5099,0.0079,0.5099,0.6294,0.00606587,0.879794538,0.012417493,0.026892424,0.87692523,0.012503928,0.018922158,0.861542642,0.762143548,0.762217051,0.762411348
+63,0.1448,0.0549,0.1448,0.584,0.2005,0.0072,0.2005,0.6011,0.5098,0.0364,0.5098,0.5815,0.022713542,0.805331826,0.002281686,0.019087818,0.871758938,0.016798168,0.044150669,0.8518942,0.775012083,0.775121642,0.775265957
+64,0.1447,0.096,0.1447,0.4761,0.2004,0.0092,0.2004,0.5084,0.5096,0.0748,0.5096,0.4653,0.05813643,0.797433376,0.002159626,0.025647491,0.843530536,0,0.110258639,0.783786058,0.782201547,0.782314364,0.782801418
+65,0.1445,0.1858,0.1445,0.3395,0.2003,0.0145,0.2003,0.3821,0.5094,0.1496,0.5094,0.3204,0.115620852,0.763544381,0.000863487,0.0305652,0.802785814,0,0.255804598,0.741935492,0.788303528,0.788449334,0.78856383
+66,0.1444,0.1698,0.1444,0.168,0.2002,0.0265,0.2002,0.2194,0.5093,0.1903,0.5093,0.1469,0.111024849,0.681785107,0.002296204,0.054737903,0.697857201,0,0.229029477,0.62893939,0.783893185,0.783795219,0.784131206
+67,0.1443,0.1601,0.1443,0.0586,0.2001,0.0522,0.2001,0.0915,0.5091,0.2388,0.5091,0.0512,0.150710434,0.431306392,0.013319594,0.093738839,0.447823852,0,0.428741276,0.354201168,0.762928951,0.762851703,0.763297872
+68,0.1441,0.0452,0.1441,0,0.2,0.0607,0.2,0,0.5089,0.0047,0.5089,0,0.022967177,0,0.008663013,0.056786023,0,0.129303664,0.002968501,0,0.734473175,0.734503914,0.734485816
+69,0.144,0.0247,0.144,0,0.1999,0.0491,0.1999,0,0.5088,0.0089,0.5088,0,0.01622523,0,0.041881327,0.046015333,0,0.190009683,0.001798895,0,0.727706622,0.727734292,0.727836879
+70,0.1439,0.1295,0.1439,0,0.1998,0.1059,0.1998,0,0.5086,0.1427,0.5086,0,0.151130855,0,0.105958581,0.12655279,0,0.016958378,0.25828594,0,0.694417593,0.694520838,0.694592199
+71,0.1437,0.0856,0.1437,0,0.1997,0.0402,0.1997,0,0.5084,0.1061,0.5084,0,0.105697438,0,0.115842223,0.056476753,0,0.019089006,0.239348143,0,0.626147898,0.626189973,0.626329787
+72,0.1436,0.1058,0.1436,0,0.1996,0.0376,0.1996,0,0.5083,0.105,0.5083,0,0.157893077,0,0.062783882,0.049083069,0,0.008295288,0.210482791,0,0.558965684,0.558916861,0.558953901
+73,0.1435,0.0894,0.1435,0,0.1995,0.061,0.1995,0,0.5081,0.1314,0.5081,0,0.121989697,0,0.071597286,0.05584668,0,0.022780106,0.229862139,0,0.510149831,0.510260207,0.510638298
+74,0.1433,0.069,0.1433,0,0.1994,0.0494,0.1994,0,0.5079,0.1381,0.5079,0,0.086370833,0,0.062523902,0.06284716,0,0.021092933,0.244065851,0,0.479881585,0.479796911,0.480053192
+75,0.1432,0.0421,0.1432,0,0.1993,0.0302,0.1993,0,0.5078,0.1364,0.5078,0,0.055079069,0,0.063589878,0.047760159,0,0.080997132,0.288150966,0,0.461938134,0.461815105,0.461879433
+76,0.1431,0.0573,0.1431,0,0.1992,0.0391,0.1992,0,0.5076,0.1338,0.5076,0,0.081626386,0,0.047314398,0.055187594,0,0.056404978,0.307797253,0,0.452936201,0.452929977,0.453014184
+77,0.1429,0.0501,0.1429,0,0.1992,0.0121,0.1992,0,0.5074,0.1155,0.5074,0,0.085024893,0,0.006884417,0.032553703,0,0.007557592,0.297397137,0,0.45837361,0.458430294,0.458333333
+78,0.1428,0.0417,0.1428,0,0.1991,0.0237,0.1991,0,0.5073,0.0896,0.5073,0.0071,0.067074545,0.005700601,0.000363545,0.038894404,0,0,0.225422978,0.147618383,0.483687772,0.483816374,0.483599291
+79,0.1427,0.0406,0.1427,0.078,0.199,0,0.199,0.0684,0.5071,0.0597,0.5071,0.0689,0.08501289,0.297614873,0.003372176,0.015080798,0.204011172,0,0.1872949,0.534214973,0.53383277,0.533742331,0.533687943
+80,0.1425,0.0059,0.1425,0.1981,0.1989,0,0.1989,0.2084,0.5069,0.0498,0.5069,0.21,0.009664503,0.51723206,0.050063659,0.003296833,0.489236116,0.088157862,0.117109321,0.7558195,0.596302562,0.596361329,0.596631206
+81,0.1424,0.0017,0.1424,0.3184,0.1988,0.0077,0.1988,0.3294,0.5068,0.0327,0.5068,0.3768,0.005428661,0.595659673,0.12678875,0.008800596,0.613827229,0.135825932,0.060178876,0.837224662,0.640889319,0.640786969,0.640957447
+82,0.1423,0.008,0.1423,0.4295,0.1987,0.0126,0.1987,0.4428,0.5066,0.069,0.5066,0.5119,0.011832649,0.703888178,0.240806937,0.01555074,0.675319314,0.163486391,0.13457121,0.857886374,0.672728371,0.672731119,0.67287234
+83,0.1421,0.0323,0.1421,0.5029,0.1986,0.0695,0.1986,0.5,0.5064,0.0836,0.5064,0.6086,0.039269716,0.782315075,0.332892299,0.071022578,0.715933025,0.263014138,0.08217147,0.87527132,0.700277912,0.700444256,0.70035461
+84,0.142,0.063,0.142,0.5136,0.1985,0.0924,0.1985,0.4964,0.5063,0.1778,0.5063,0.6377,0.070254892,0.815530896,0.517871022,0.084203228,0.695111036,0.201307342,0.174124837,0.86837852,0.717194297,0.71736831,0.717641844
+85,0.1419,0.0794,0.1419,0.5054,0.1984,0.0943,0.1984,0.4662,0.5061,0.2392,0.5061,0.6434,0.103844516,0.750395536,0.559189439,0.107111625,0.681191266,0.179222241,0.183451787,0.819962442,0.727042049,0.72709964,0.727393617
+86,0.1417,0.0706,0.1417,0.4654,0.1983,0.0868,0.1983,0.4529,0.5059,0.3126,0.5059,0.6483,0.079616793,0.68530792,0.523985148,0.086829864,0.624842763,0.173315704,0.232415155,0.772307813,0.738037699,0.738100275,0.738475177
+87,0.1416,0.0599,0.1416,0.3574,0.1982,0.0255,0.1982,0.3612,0.5058,0.3643,0.5058,0.5868,0.070643783,0.55040139,0.401850343,0.03636989,0.511814416,0.034700003,0.308341652,0.666417122,0.738158531,0.738311826,0.738475177
+88,0.1415,0.0968,0.1415,0.2901,0.1981,0.0176,0.1981,0.2925,0.5056,0.412,0.5056,0.4739,0.083732612,0.40975219,0.542008042,0.018455712,0.451868504,0.034059163,0.528127968,0.62745589,0.730364911,0.730484451,0.730496454
+89,0.1413,0.0743,0.1413,0.1878,0.198,0.0073,0.198,0.2143,0.5054,0.3848,0.5054,0.3168,0.087176055,0.293204784,0.532647371,0.007658152,0.378451794,0.125816226,0.453720301,0.677511513,0.722812953,0.722868627,0.722960993
+90,0.1412,0.0477,0.1412,0.0768,0.1979,0.0093,0.1979,0.1306,0.5053,0.4928,0.5053,0.1457,0.108627126,0.156168059,0.153137118,0.014025279,0.312374681,0.460122794,0.6170789,0.324155748,0.71477767,0.714829702,0.71498227
+91,0.1411,0.0963,0.1411,0.005,0.1978,0,0.1978,0.038,0.5051,0.3902,0.5051,0.049,0.12583442,0.008683183,0.104900651,0.000561502,0.174553752,0.238817543,0.429712802,0.062938877,0.701727888,0.70171356,0.70212766
+92,0.1409,0.0976,0.1409,0,0.1977,0,0.1977,0,0.5049,0.2855,0.5049,0,0.048357926,0,0.093298458,0.000253321,0,0.152920947,0.496359825,0,0.691880135,0.69198223,0.691932624
+93,0.1408,0.0271,0.1408,0,0.1976,0,0.1976,0,0.5048,0.3208,0.5048,0,0.010211765,0,0.141792655,0.001588382,0,0.052405503,0.484939694,0,0.69641131,0.696424794,0.696365248
+94,0.1407,0.0104,0.1407,0,0.1975,0,0.1975,0,0.5046,0.2125,0.5046,0,0.008361611,0,0.09790536,0.002117226,0,0.091463879,0.323495626,0,0.665236829,0.665326846,0.665336879
+95,0.1405,0.0152,0.1405,0,0.1974,0,0.1974,0,0.5044,0.1682,0.5044,0,0.011755069,0,0.032598659,0.00792115,0,0,0.311031073,0,0.607116965,0.607150413,0.607269504
+96,0.1404,0.0172,0.1404,0,0.1973,0,0.1973,0,0.5043,0.1147,0.5043,0,0.028959088,0,0.000126581,0.011633929,0,0,0.229129672,0,0.55038666,0.550454834,0.550531915
+97,0.3353,0.2342,0.3353,0,0.2783,0.3328,0.2783,0,0.5992,0.0464,0.5992,0,0.340543807,0,0.951961637,0.396313548,0,1,0.057745896,0,0.483929435,0.483816374,0.484042553
+98,0.3353,0.3291,0.3353,0,0.2783,0.3303,0.2783,0,0.5992,0.0914,0.5992,0,0.47736305,0,0.723744631,0.344732225,0,0.674463391,0.210174009,0,0.467254712,0.467315422,0.467198582
+99,0.3353,0.2905,0.3353,0,0.2783,0.1811,0.2783,0,0.5992,0.1582,0.5992,0,0.471031487,0,0.453945518,0.159885496,0,0.496303141,0.332458019,0,0.461152731,0.461180453,0.46143617
+100,0.3353,0.2069,0.3353,0,0.2783,0.1306,0.2783,0,0.5992,0.2336,0.5992,0,0.398436338,0,0.282089144,0.091254428,0,0.341608644,0.458970815,0,0.4610319,0.460968902,0.460992908
+101,0.3353,0.0684,0.3353,0,0.2783,0.0311,0.2783,0,0.5992,0.2549,0.5992,0,0.180473939,0,0.185217351,0.020236973,0,0.244839817,0.531448722,0,0.475169164,0.475142797,0.475177305
+102,0.3353,0.0999,0.3353,0,0.2783,0.0115,0.2783,0,0.5992,0.201,0.5992,0,0.206174016,0,0.17999509,0.006590917,0,0.162442416,0.458401471,0,0.51921218,0.519145335,0.519060284
+103,0.3353,0.073,0.3353,0,0.2783,0.0632,0.2783,0,0.5992,0.1695,0.5992,0,0.15341562,0,0.067971632,0.037877314,0,0.120555505,0.364987403,0,0.599565007,0.599746139,0.599734043
+104,0.3353,0.0613,0.3353,0.0062,0.2783,0.0268,0.2783,0,0.5992,0.1387,0.5992,0.0255,0.118538402,0.014192468,0.091725685,0.012939813,0,0.042171728,0.266541362,0.186134338,0.637566457,0.637613709,0.63785461
+105,0.3353,0.0495,0.3353,0.2119,0.2783,0.0074,0.2783,0.1959,0.5992,0.0777,0.5992,0.2837,0.102821335,0.339985967,0.011115281,0.004708333,0.310952276,0,0.106331267,0.525537193,0.640103915,0.640152317,0.640070922
+106,0.3353,0.0178,0.3353,0.3608,0.2783,0.0016,0.2783,0.3224,0.5992,0.0498,0.5992,0.4763,0.04687928,0.518666685,0.00168068,0.001076122,0.499693483,0.040739004,0.101931214,0.698534489,0.638110198,0.63803681,0.638297872
+107,0.3353,0.0057,0.3353,0.4334,0.2783,0,0.2783,0.4463,0.5992,0.0473,0.5992,0.6271,0.006887558,0.595648408,0.001408386,0.000328184,0.61341995,0.010822514,0.086632088,0.757857621,0.636901885,0.636979057,0.637411348
+108,0.3353,0.0008,0.3353,0.496,0.2783,0,0.2783,0.4513,0.5992,0.0389,0.5992,0.695,0.000104528,0.705536485,0.002444054,0,0.633169591,0.021018326,0.079875037,0.754530132,0.63140406,0.631478739,0.631648936
+109,0.3353,0,0.3353,0.4844,0.2783,0.0391,0.2783,0.4641,0.5992,0.0446,0.5992,0.6414,0.002018983,0.70180279,7.22E-05,0.037956238,0.632471561,0.002988744,0.105751939,0.828321338,0.624154181,0.624074466,0.624556738
+110,0.3353,0.0121,0.3353,0.5786,0.2783,0.0153,0.2783,0.6105,0.5992,0.0419,0.5992,0.7025,0.007209733,0.767341495,0.003048972,0.009417345,0.881190777,0,0.092641033,0.958709717,0.61859594,0.618574149,0.618794326
+111,0.3353,0.0395,0.3353,0.4078,0.2783,0.0327,0.2783,0.4214,0.5992,0.0602,0.5992,0.5202,0.052469421,0.575399458,0.01162939,0.034468301,0.621795774,0,0.103165664,0.839419246,0.611648139,0.611804527,0.611702128
+112,0.3353,0.036,0.3353,0.3444,0.2783,0.0099,0.2783,0.3846,0.5992,0.1176,0.5992,0.4177,0.053068925,0.546132028,0.089984819,0.022223983,0.65506351,0,0.173716277,0.687713146,0.608264862,0.608208166,0.608156028
+113,0.3353,0.0415,0.3353,0.2249,0.2783,0.0157,0.2783,0.2885,0.5992,0.1981,0.5992,0.2377,0.108836338,0.444707453,0.091163978,0.027305046,0.528101385,0,0.252788484,0.41919291,0.621072982,0.621112757,0.621010638
+114,0.3353,0.0367,0.3353,0.0122,0.2783,0.0208,0.2783,0.0337,0.5992,0.3519,0.5992,0,0.08615572,0.038480602,0.180393949,0.035222165,0.136732534,0,0.463289082,0,0.6689826,0.668923207,0.668882979
+115,0.3353,0.0721,0.3353,0,0.2783,0.061,0.2783,0,0.5992,0.3697,0.5992,0,0.135538846,0,0.139605165,0.088056445,0,0,0.527615786,0,0.687167714,0.687116564,0.6875
+116,0.3353,0.0678,0.3353,0,0.2783,0.0396,0.2783,0,0.5992,0.3254,0.5992,0,0.043199215,0,0.53976059,0.088940099,0,0.039158117,0.453964204,0,0.669768004,0.66976941,0.669769504
+117,0.3353,0.0755,0.3353,0,0.2783,0.0236,0.2783,0,0.5992,0.2045,0.5992,0,0.042970236,0,0.480655342,0.059755467,0,0.19911781,0.269749194,0,0.643728855,0.643748678,0.643617021
+118,0.3353,0.0509,0.3353,0,0.2783,0.0371,0.2783,0,0.5992,0.132,0.5992,0,0.03064315,0,0.166967809,0.054738641,0,0.22547619,0.177533671,0,0.601558724,0.601650095,0.601507092
+119,0.3353,0.0503,0.3353,0,0.2783,0.0521,0.2783,0,0.5992,0.1442,0.5992,0,0.049356826,0,0.098843873,0.097993136,0,0.278927267,0.170501396,0,0.546399227,0.546435371,0.546542553
+120,0.3353,0.0611,0.3353,0,0.2783,0.0031,0.2783,0,0.5992,0.156,0.5992,0,0.051604521,0,0.161583245,0.029563505,0,0.389920473,0.147218838,0,0.497583374,0.497567167,0.497783688
+121,0.3353,0.0394,0.3353,0,0.2783,0.0468,0.2783,0,0.5992,0.171,0.5992,0,0.029222723,0,0.162525415,0.075474158,0,0.313165724,0.194382474,0,0.464354761,0.464353713,0.464095745
+122,0.3353,0.0533,0.3353,0,0.2783,0.1899,0.2783,0,0.5992,0.1461,0.5992,0,0.047840923,0,0.095295847,0.153759107,0,0.067757592,0.157280669,0,0.446592557,0.446583457,0.446808511
+123,0.3353,0.0469,0.3353,0,0.2783,0.0194,0.2783,0,0.5992,0.095,0.5992,0,0.065937504,0,0.011147552,0.051554609,0,0.096064925,0.103672326,0,0.437953117,0.437909879,0.437943262
+124,0.3353,0.0487,0.3353,0,0.2783,0,0.2783,0,0.5992,0.0664,0.5992,0,0.070105247,0,0.006252729,0.002158957,0,0,0.06112304,0,0.437046883,0.437063677,0.437056738
+125,0.3353,0.0454,0.3353,0,0.2783,0,0.2783,0,0.5992,0.0515,0.5992,0,0.045880351,0,0,0.000149522,0,0,0.040833768,0,0.44919043,0.449122065,0.449468085
+126,0.3353,0.0353,0.3353,0,0.2783,0,0.2783,0,0.5992,0.0399,0.5992,0,0.017604046,0,0,0.000263594,0,0,0.059951149,0,0.49359594,0.493759255,0.493794326
+127,0.3353,0.0146,0.3353,0,0.2783,0.0149,0.2783,0,0.5992,0.0214,0.5992,0,0.00301992,0,0.006769722,0.008667981,0,0.012625917,0.042005826,0,0.573102948,0.573090755,0.573138298
+128,0.3353,0.0174,0.3353,0,0.2783,0,0.2783,0,0.5992,0.0106,0.5992,0,0.00625662,0,0.014876311,0.005263689,0,0.080059424,0.03722835,0.013479548,0.615575157,0.615612439,0.615691489
+129,0.3353,0.0093,0.3353,0.142,0.2783,0,0.2783,0.2009,0.5992,0.0042,0.5992,0.202,0.003951265,0.349179506,0.015524953,0.000401821,0.291373551,0.061198957,0.022719318,0.434636295,0.623972934,0.623862915,0.624113475
+130,0.3353,0.0033,0.3353,0.2896,0.2783,0,0.2783,0.3639,0.5992,0.0012,0.5992,0.3615,0.004615302,0.514957786,0.010969135,0.003379712,0.534627438,0,0.007916736,0.58468765,0.625966651,0.625978422,0.626329787
+131,0.3353,0.0006,0.3353,0.3832,0.2783,0,0.2783,0.4752,0.5992,0.001,0.5992,0.4506,0.005063584,0.558726788,0.017523618,0.003152695,0.647850692,0,0.001069679,0.608341456,0.62777912,0.627670827,0.628102837
+132,0.3353,0.0013,0.3353,0.4001,0.2783,0,0.2783,0.4461,0.5992,0,0.5992,0.4365,0.004127369,0.582769394,0.025185499,0.003216317,0.642627358,0,0.000370599,0.611747623,0.625,0.624920669,0.625
+133,0.3353,0,0.3353,0.3979,0.2783,0,0.2783,0.4694,0.5992,0.0025,0.5992,0.4185,0.000329846,0.602562308,0.015069776,0.002190562,0.662625432,0.008151309,0.004105932,0.595377803,0.617568874,0.617727946,0.617907801
+134,0.3353,0.001,0.3353,0.3975,0.2783,0,0.2783,0.4491,0.5992,0.008,0.5992,0.3787,0,0.633594096,0.013273727,0.001052633,0.672993779,0.101724088,0.022061357,0.557721913,0.614064766,0.614131585,0.61391844
+135,0.3353,0.002,0.3353,0.4351,0.2783,0,0.2783,0.4923,0.5992,0.0235,0.5992,0.4175,2.31E-06,0.671257675,0.071118698,0.000637823,0.694713473,0.156142414,0.046326287,0.546066582,0.607116965,0.607150413,0.607269504
+136,0.3353,0.0013,0.3353,0.3602,0.2783,0,0.2783,0.4357,0.5992,0.0588,0.5992,0.3264,0.002965278,0.59887594,0.156938747,0.000722208,0.595216334,0.201426715,0.066430353,0.508017361,0.604760754,0.604823355,0.605053192
+137,0.3353,0.0048,0.3353,0.2179,0.2783,0,0.2783,0.2689,0.5992,0.087,0.5992,0.1731,0.003663415,0.423196405,0.235061526,0.000460288,0.453348726,0.132251054,0.084686771,0.337374985,0.619623006,0.619631902,0.620124114
+138,0.3353,0.0028,0.3353,0.0012,0.2783,0.0074,0.2783,0.0291,0.5992,0.1081,0.5992,0,0.010761268,0.028205086,0.254560232,0.013701504,0.093099222,0.135036409,0.077363201,0,0.663907685,0.663845991,0.664007092
+139,0.3353,0.0037,0.3353,0,0.2783,0.0422,0.2783,0,0.5992,0.1147,0.5992,0,0.046665151,0,0.242791414,0.072233729,0,0.298220694,0.106213242,0,0.679253262,0.67928919,0.679521277
+140,0.3353,0.0048,0.3353,0,0.2783,0.0909,0.2783,0,0.5992,0.1005,0.5992,0,0.055832595,0,0.059668772,0.136343688,0,0.192917556,0.113991655,0,0.663303528,0.66342289,0.66356383
+141,0.3353,0.0225,0.3353,0,0.2783,0.1208,0.2783,0,0.5992,0.0787,0.5992,0,0.075337775,0,0.047003094,0.177106515,0,0.439277738,0.097335458,0,0.636176897,0.636132854,0.636524823
+142,0.3353,0.0683,0.3353,0,0.2783,0.1202,0.2783,0,0.5992,0.0675,0.5992,0,0.082746476,0,0.020546136,0.168459937,0,0.275989294,0.125470683,0,0.59382552,0.593822721,0.593971631
+143,0.3353,0.1146,0.3353,0,0.2783,0.157,0.2783,0,0.5992,0.044,0.5992,0,0.11460375,0,0.008724602,0.209471554,0,0.3150644,0.085176602,0,0.537941034,0.537973345,0.538120567
+144,0.3353,0.0572,0.3353,0,0.2783,0.1428,0.2783,0,0.5992,0.0343,0.5992,0,0.048893597,0,0.028796984,0.157406271,0,0.28583324,0.054507189,0,0.487010633,0.486989634,0.48714539
+145,0.3353,0.0689,0.3353,0,0.2783,0.079,0.2783,0,0.5992,0.0523,0.5992,0,0.081243813,0,0.071472019,0.109008879,0,0.205130637,0.071306929,0,0.456077815,0.456103237,0.456117021
+146,0.3353,0.0757,0.3353,0,0.2783,0.0466,0.2783,0,0.5992,0.0731,0.5992,0,0.078676045,0,0.132356674,0.083080128,0,0.280035615,0.112381756,0,0.439765587,0.439813835,0.439716312
+147,0.3353,0.0796,0.3353,0,0.2783,0.0425,0.2783,0,0.5992,0.0643,0.5992,0,0.106914848,0,0.117482096,0.079231285,0,0.12364766,0.10742867,0,0.433482359,0.433467315,0.433510638
+148,0.3353,0.0756,0.3353,0,0.2783,0.04,0.2783,0,0.5992,0.0536,0.5992,0,0.084026337,0,0.143809155,0.075666659,0,0.096530899,0.098277256,0,0.436503142,0.436640575,0.436613475
+149,0.3353,0.0874,0.3353,0,0.2783,0.038,0.2783,0,0.5992,0.0417,0.5992,0,0.107747838,0,0.181571946,0.072163574,0,0.170542941,0.071277931,0,0.450519575,0.450602919,0.450797872
+150,0.3353,0.0652,0.3353,0,0.2783,0.0076,0.2783,0,0.5992,0.0264,0.5992,0,0.08012899,0,0.148158878,0.022536812,0,0.160324097,0.040680472,0,0.497341711,0.497355617,0.497340426
+151,0.3353,0.0332,0.3353,0,0.2783,0,0.2783,0,0.5992,0.0182,0.5992,0,0.042060122,0,0.060637206,0.011356694,0,0.052404717,0.03396637,0,0.576667472,0.576687117,0.576684397
+152,0.3353,0.008,0.3353,0,0.2783,0.0185,0.2783,0,0.5992,0.0106,0.5992,0,0.011661833,0,0.026185583,0.014108179,0,0.030558117,0.023133211,0,0.615333494,0.615400889,0.615691489
+153,0.3353,0.0002,0.3353,0.251,0.2783,0,0.2783,0.2135,0.5992,0.0287,0.5992,0.2287,0.004216762,0.421669364,0.011390129,0.001075404,0.366246313,0.046053402,0.042276233,0.52107513,0.620287579,0.620266554,0.620567376
+154,0.3353,0,0.3353,0.398,0.2783,0,0.2783,0.3957,0.5992,0.0187,0.5992,0.36,0.000107081,0.624025583,0.003211733,0.000291988,0.569521368,0,0.020247368,0.771772504,0.621193813,0.621324307,0.621453901
+155,0.3353,0,0.3353,0.5777,0.2783,0.0231,0.2783,0.4714,0.5992,0.0105,0.5992,0.6638,0,0.830872178,0,0.035424843,0.608862341,0,0.01060041,0.999690712,0.6199855,0.620055003,0.620124114
+156,0.3353,0,0.3353,0.5222,0.2783,0,0.2783,0.446,0.5992,0.006,0.5992,0.5803,0,0.712612987,0,0.002315169,0.535365284,0,0.004428415,0.885320664,0.616723055,0.616670193,0.616578014
+157,0.3353,0.0026,0.3353,0.4391,0.2783,0,0.2783,0.4033,0.5992,0.0027,0.5992,0.585,0.000138794,0.62785691,0,0.005570313,0.554500699,0,0.000169873,0.855731487,0.612977284,0.612862281,0.613031915
+158,0.3353,0.0162,0.3353,0.4041,0.2783,0.0075,0.2783,0.4023,0.5992,0.0064,0.5992,0.5582,0.012443317,0.572152019,0.003454699,0.017332878,0.555582404,0.024717279,0.000638945,0.805173159,0.612796037,0.612862281,0.613031915
+159,0.3353,0.0418,0.3353,0.3776,0.2783,0,0.2783,0.3253,0.5992,0.0056,0.5992,0.5298,0.007533296,0.520351827,0.084458515,0.007419934,0.458313495,0.068899736,0.002452825,0.724157333,0.608264862,0.608208166,0.608156028
+160,0.3353,0.0384,0.3353,0.2577,0.2783,0.0017,0.2783,0.2138,0.5992,0.0174,0.5992,0.3695,0.008783901,0.413797915,0.062754475,0.010369309,0.320449889,0.05394372,0.006953084,0.616675735,0.61037941,0.610535223,0.61037234
+161,0.3353,0.0812,0.3353,0.0836,0.2783,0.0403,0.2783,0.0846,0.5992,0.047,0.5992,0.2124,0.079519555,0.127957165,0.054840323,0.058607429,0.130032092,0.009626178,0.041584462,0.378108114,0.632370711,0.632536493,0.632535461
+162,0.3353,0.0687,0.3353,0,0.2783,0.0755,0.2783,0,0.5992,0.1222,0.5992,0,0.095078185,0,0.080111712,0.087329604,0,0.038936131,0.145138115,0,0.673513775,0.673577322,0.673758865
+163,0.3353,0.0442,0.3353,0,0.2783,0.0938,0.2783,0,0.5992,0.2036,0.5992,0,0.06459564,0,0.048527647,0.108412832,0,0,0.304443628,0,0.682274045,0.682250899,0.682624114
+164,0.3353,0.0257,0.3353,0,0.2783,0.0371,0.2783,0,0.5992,0.2666,0.5992,0,0.023319216,0,0.000567935,0.059193447,0,0,0.515886605,0,0.665236829,0.665326846,0.665336879
+165,0.3353,0.0221,0.3353,0,0.2783,0.1563,0.2783,0,0.5992,0.1433,0.5992,0,0.039155327,0,0,0.180636972,0,0.006618849,0.31086725,0,0.63877477,0.638671462,0.639184397
+166,0.3353,0.013,0.3353,0,0.2783,0.1412,0.2783,0,0.5992,0.1562,0.5992,0,0.012497285,0,0.001954996,0.158648685,0,0.003782199,0.356954515,0,0.59618173,0.596149778,0.596187943
+167,0.3353,0.0373,0.3353,0,0.2783,0.1121,0.2783,0,0.5992,0.2046,0.5992,0,0.043758962,0,0.030432951,0.131980807,0,0.036523037,0.426760942,0,0.539874335,0.539877301,0.540336879
+168,0.3353,0.0718,0.3353,0,0.2783,0.1073,0.2783,0,0.5992,0.2062,0.5992,0,0.061800312,0,0.072916091,0.147166222,0,0.21237959,0.395702064,0,0.489729338,0.489739793,0.489804965
+169,0.3353,0.0873,0.3353,0,0.2783,0.1343,0.2783,0,0.5992,0.2341,0.5992,0,0.068880677,0,0.066637524,0.185943991,0,0.194197387,0.399948031,0,0.455231996,0.455257034,0.455673759
+170,0.3353,0.1224,0.3353,0,0.2783,0.2056,0.2783,0,0.5992,0.2438,0.5992,0,0.107841097,0,0.026773676,0.290738761,0,0.059220687,0.395727009,0,0.435717738,0.435794373,0.43572695
+171,0.3353,0.1607,0.3353,0,0.2783,0.3046,0.2783,0,0.5992,0.2289,0.5992,0,0.15782921,0,0.032786746,0.385691464,0,0.07835184,0.310579389,0,0.425326245,0.42542839,0.425531915
+172,0.3353,0.1622,0.3353,0,0.2783,0.2478,0.2783,0,0.5992,0.158,0.5992,0,0.197893649,0,0.054544114,0.310194105,0,0.007161519,0.257609129,0,0.423634606,0.423735985,0.423758865
+173,0.3353,0.1664,0.3353,0,0.2783,0.2256,0.2783,0,0.5992,0.1621,0.5992,0,0.178165928,0,0.036942624,0.216431111,0,0,0.207180604,0,0.434630256,0.434736619,0.434840426
+174,0.3353,0.1754,0.3353,0,0.2783,0.0788,0.2783,0,0.5992,0.1834,0.5992,0,0.149377078,0,0.067278497,0.106815361,0,0.037470419,0.228798643,0,0.475048333,0.474931246,0.475177305
+175,0.3353,0.1451,0.3353,0,0.2783,0.0726,0.2783,0,0.5992,0.1712,0.5992,0,0.108588591,0,0.1455497,0.095053226,0,0.053612571,0.231774837,0,0.549722088,0.549820182,0.550088653
+176,0.3353,0.1264,0.3353,0,0.2783,0.0824,0.2783,0,0.5992,0.1808,0.5992,0,0.122287504,0,0.162636712,0.113910697,0,0,0.23295176,0,0.594308845,0.594245822,0.594414894
+177,0.3353,0.1382,0.3353,0.1131,0.2783,0.0955,0.2783,0.1509,0.5992,0.1763,0.5992,0.1502,0.138602197,0.273250043,0.3493644,0.10015589,0.314969033,0.009180104,0.147349984,0.222592801,0.606875302,0.606727311,0.607269504
+178,0.3353,0.0699,0.3353,0.3099,0.2783,0.0936,0.2783,0.3546,0.5992,0.1801,0.5992,0.2967,0.083995506,0.55990386,0.288135141,0.103539191,0.597141385,0.00792932,0.160080031,0.441352129,0.610077332,0.610112122,0.609929078
+179,0.3353,0.0934,0.3353,0.4462,0.2783,0.3774,0.2783,0.5514,0.5992,0.1307,0.5992,0.432,0.106427036,0.712844014,0.124160439,0.299305052,0.822447777,0,0.11868111,0.557519674,0.610923151,0.610958325,0.611258865
+180,0.3353,0.1113,0.3353,0.4971,0.2783,0.3909,0.2783,0.5828,0.5992,0.1105,0.5992,0.4349,0.146284461,0.745839894,0.083927713,0.340600729,0.788909257,0.07988482,0.10592211,0.721094608,0.606271146,0.60630421,0.606382979
+181,0.3353,0.1494,0.3353,0.5491,0.2783,0.4286,0.2783,0.5721,0.5992,0.1267,0.5992,0.4613,0.227206588,0.795065403,0.120059073,0.361115009,0.798173189,0.304969668,0.173086584,0.709834695,0.596060899,0.595938227,0.596187943
+182,0.3353,0.2268,0.3353,0.5788,0.2783,0.2547,0.2783,0.5944,0.5992,0.1659,0.5992,0.4651,0.325680584,0.81992197,0.215272263,0.223857179,0.829602122,0.281709433,0.261818111,0.696449697,0.588750604,0.588745505,0.588652482
+183,0.3353,0.1818,0.3353,0.5935,0.2783,0.4355,0.2783,0.5804,0.5992,0.1349,0.5992,0.4731,0.357862145,0.852696896,0.297833979,0.398809969,0.793542385,0.31898874,0.257945806,0.723677814,0.578842436,0.578802623,0.578900709
+184,0.3353,0.204,0.3353,0.4606,0.2783,0.266,0.2783,0.5083,0.5992,0.0952,0.5992,0.368,0.316188395,0.782290101,0.313831151,0.283590913,0.765566111,0.347253174,0.15048115,0.647790313,0.573525858,0.573725407,0.574024823
+185,0.3353,0.169,0.3353,0.2861,0.2783,0.4383,0.2783,0.3311,0.5992,0.1087,0.5992,0.1997,0.236047566,0.577710569,0.164843708,0.414026558,0.572428346,0.326350272,0.198451817,0.454336852,0.583615273,0.583668289,0.583776596
+186,0.3353,0.1969,0.3353,0.04,0.2783,0.246,0.2783,0.0839,0.5992,0.1683,0.5992,0,0.219240755,0.181716263,0.234954879,0.259087026,0.26353401,0.994571567,0.338978112,0.016318373,0.623489609,0.623439814,0.623670213
+187,0.3353,0.1917,0.3353,0,0.2783,0.0964,0.2783,0,0.5992,0.1426,0.5992,0,0.144899592,0,0.460470438,0.147896081,0,1,0.272070825,0,0.641916385,0.641844722,0.641843972
+188,0.3353,0.2034,0.3353,0,0.2783,0.1788,0.2783,0,0.5992,0.2315,0.5992,0,0.218267709,0,0.595855176,0.210983038,0,0.999340415,0.247287497,0,0.625966651,0.625978422,0.626329787
+189,0.3353,0.2599,0.3353,0,0.2783,0.2117,0.2783,0,0.5992,0.1944,0.5992,0,0.231125847,0,0.991824508,0.242717549,0,0.991057634,0.294774503,0,0.604881585,0.604823355,0.605053192
+190,0.3353,0.2623,0.3353,0,0.2783,0.2868,0.2783,0,0.5992,0.1141,0.5992,0,0.257896334,0,0.977468252,0.375778914,0,0.82260704,0.182252407,0,0.574734171,0.574783161,0.574911348
+191,0.3353,0.3366,0.3353,0,0.2783,0.1927,0.2783,0,0.5992,0.1659,0.5992,0,0.315684408,0,0.876997232,0.238841474,0,0.364857614,0.261173576,0,0.532503625,0.532684578,0.532801418
+192,0.3353,0.275,0.3353,0,0.2783,0.1699,0.2783,0,0.5992,0.2065,0.5992,0,0.219144747,0,0.755017519,0.237392083,0,0.300655782,0.340680182,0,0.488641856,0.488682039,0.48891844
+193,0.3901,0.1119,0.3901,0,0.3178,0.0099,0.3178,0,0.6624,0.4984,0.6624,0,0.120503485,0,0.109031886,0.036232617,0,0.03731833,0.832992256,0,0.519816336,0.519779987,0.519946809
+194,0.3901,0.0794,0.3901,0,0.3178,0.0128,0.3178,0,0.6624,0.3099,0.6624,0,0.057855781,0,0.073038578,0.042845599,0,0.037343461,0.606036305,0,0.501268729,0.501163529,0.501329787
+195,0.3901,0.0495,0.3901,0,0.3178,0,0.3178,0,0.6624,0.2899,0.6624,0,0.053303592,0,0.043719381,0.014324972,0,0.037011258,0.531005204,0,0.489910585,0.489951343,0.489804965
+196,0.3901,0.0548,0.3901,0,0.3178,0.006,0.3178,0,0.6624,0.2222,0.6624,0,0.026825195,0,0.077305451,0.036265694,0,0.040064924,0.471726447,0,0.485500242,0.485508779,0.48537234
+197,0.3901,0.0331,0.3901,0,0.3178,0.0342,0.3178,0,0.6624,0.1204,0.6624,0,0.012255549,0,0.077560157,0.060173765,0,0.078937434,0.274086297,0,0.489608507,0.489739793,0.489361702
+198,0.3901,0.0221,0.3901,0,0.3178,0.0501,0.3178,0,0.6624,0.0692,0.6624,0,0.01008457,0,0.091319233,0.063513756,0,0.155076712,0.189517856,0,0.505437409,0.505606093,0.505762411
+199,0.3901,0.006,0.3901,0,0.3178,0.0687,0.3178,0,0.6624,0.0688,0.6624,0,0.004177272,0,0.089516357,0.089355812,0,0.307229847,0.148454115,0,0.536732721,0.536704041,0.53679078
+200,0.3901,0.0002,0.3901,0,0.3178,0.0216,0.3178,0,0.6624,0.0359,0.6624,0,0.000670298,0,0.15081726,0.039953135,0,0.434677243,0.070686765,0,0.574009183,0.573936958,0.574024823
+201,0.3901,0.0113,0.3901,0.0338,0.3178,0.0774,0.3178,0.0205,0.6624,0.0199,0.6624,0.0959,0.004628616,0.053709865,0.419818997,0.109133691,0.018420931,0.63019973,0.045996632,0.078395985,0.615514741,0.615612439,0.615691489
+202,0.3901,0.0389,0.3901,0.1381,0.3178,0.0679,0.3178,0.109,0.6624,0.0099,0.6624,0.2689,0.014147854,0.192283168,0.760859013,0.120777823,0.144316495,1,0.032252479,0.304617047,0.651703722,0.651576053,0.652039007
+203,0.3901,0.0663,0.3901,0.2102,0.3178,0.1044,0.3178,0.1812,0.6624,0.0005,0.6624,0.3327,0.026046477,0.303351104,0.987595797,0.186181381,0.250372738,1,0.013428211,0.385682464,0.6739971,0.674000423,0.674202128
+204,0.3901,0.1178,0.3901,0.2284,0.3178,0.1631,0.3178,0.211,0.6624,0.0001,0.6624,0.4238,0.034658346,0.341895819,0.995827317,0.265076429,0.288601548,1,0.008641397,0.480376244,0.683482359,0.683520203,0.683510638
+205,0.3901,0.211,0.3901,0.2429,0.3178,0.1642,0.3178,0.2366,0.6624,0.0004,0.6624,0.4288,0.057607554,0.354768723,1,0.312806368,0.341011763,1,0.010712845,0.51420486,0.683421943,0.683520203,0.683510638
+206,0.3901,0.2425,0.3901,0.2345,0.3178,0.1714,0.3178,0.243,0.6624,0.0062,0.6624,0.4197,0.067297198,0.399075508,1,0.278471023,0.351463229,1,0.027082564,0.57644248,0.674782504,0.674846626,0.675088653
+207,0.3901,0.3825,0.3901,0.196,0.3178,0.2593,0.3178,0.2089,0.6624,0.0067,0.6624,0.4012,0.107579127,0.358603001,1,0.363505065,0.30205816,1,0.024522964,0.57705462,0.663726438,0.66363444,0.664007092
+208,0.3901,0.4625,0.3901,0.1088,0.3178,0.2369,0.3178,0.1287,0.6624,0.009,0.6624,0.3214,0.174622506,0.226323158,1,0.372528017,0.172121823,1,0.032747258,0.471946716,0.659074432,0.658980326,0.659131206
+209,0.3901,0.461,0.3901,0.0095,0.3178,0.2483,0.3178,0.0039,0.6624,0.03,0.6624,0.1402,0.179446012,0.054913122,1,0.404273152,0.00736948,1,0.069884099,0.234559417,0.684267762,0.684154855,0.684397163
+210,0.3901,0.467,0.3901,0,0.3178,0.1636,0.3178,0,0.6624,0.0663,0.6624,0,0.211576432,0,1,0.251190245,0,1,0.12557368,0,0.727464959,0.727522742,0.727836879
+211,0.3901,0.4127,0.3901,0,0.3178,0.1287,0.3178,0,0.6624,0.0988,0.6624,0,0.199717,0,1,0.21637997,0,1,0.168479249,0,0.719913001,0.719906918,0.719858156
+212,0.3901,0.3576,0.3901,0,0.3178,0.0478,0.3178,0,0.6624,0.1317,0.6624,0,0.184474587,0,1,0.114194989,0,1,0.229773998,0,0.69502175,0.694943939,0.695035461
+213,0.3901,0.3696,0.3901,0,0.3178,0.0305,0.3178,0,0.6624,0.2168,0.6624,0,0.152843535,0,1,0.113586158,0,1,0.363334149,0,0.669345094,0.669346308,0.669326241
+214,0.3901,0.3535,0.3901,0,0.3178,0.0737,0.3178,0,0.6624,0.2153,0.6624,0,0.184802026,0,1,0.171696171,0,1,0.443449885,0,0.636116481,0.636132854,0.63608156
+215,0.3901,0.2283,0.3901,0,0.3178,0.0515,0.3178,0,0.6624,0.2561,0.6624,0,0.067875408,0,1,0.133330569,0,1,0.476634681,0,0.595275495,0.595303575,0.595301418
+216,0.3901,0.3722,0.3901,0,0.3178,0.143,0.3178,0,0.6624,0.2426,0.6624,0,0.189117149,0,1,0.269549131,0,1,0.365168929,0,0.555280329,0.555320499,0.555407801
+217,0.3901,0.4256,0.3901,0,0.3178,0.1096,0.3178,0,0.6624,0.29,0.6624,0,0.160570681,0,1,0.252668351,0,1,0.431885868,0,0.524105848,0.524011001,0.524379433
+218,0.3901,0.2923,0.3901,0,0.3178,0.1097,0.3178,0,0.6624,0.2866,0.6624,0,0.109217495,0,1,0.23330684,0,1,0.45360738,0,0.506887385,0.506875397,0.507092199
+219,0.3901,0.1925,0.3901,0,0.3178,0.1475,0.3178,0,0.6624,0.3085,0.6624,0,0.106418639,0,1,0.256683856,0,1,0.496107429,0,0.49861044,0.498624921,0.498670213
+220,0.3901,0.209,0.3901,0,0.3178,0.1033,0.3178,0,0.6624,0.1829,0.6624,0,0.104868852,0,1,0.22366941,0,1,0.349143177,0,0.4949855,0.495028559,0.495124114
+221,0.3901,0.2068,0.3901,0,0.3178,0.0775,0.3178,0,0.6624,0.1996,0.6624,0,0.107377291,0,1,0.177673981,0,1,0.314562023,0,0.498247946,0.498201819,0.49822695
+222,0.3901,0.2067,0.3901,0,0.3178,0.0869,0.3178,0,0.6624,0.2681,0.6624,0,0.115992263,0,1,0.193624631,0,1,0.419279188,0,0.511841469,0.511741062,0.511968085
+223,0.3901,0.1446,0.3901,0,0.3178,0.1155,0.3178,0,0.6624,0.2711,0.6624,0,0.077996135,0,0.964708924,0.223193497,0,0.981933296,0.457887143,0,0.535947318,0.535857838,0.535904255
+224,0.3901,0.1159,0.3901,0,0.3178,0.1327,0.3178,0,0.6624,0.2358,0.6624,0,0.064411894,0,0.859868348,0.196382344,0,0.693728566,0.423730552,0,0.56222813,0.562301671,0.5625
+225,0.3901,0.1664,0.3901,0.2175,0.3178,0.1563,0.3178,0.2258,0.6624,0.2464,0.6624,0.1997,0.098334894,0.404655278,1,0.263617486,0.401312143,0.990814686,0.459070087,0.440780342,0.597087965,0.596995981,0.597074468
+226,0.3901,0.1006,0.3901,0.4081,0.3178,0.0155,0.3178,0.4428,0.6624,0.074,0.6624,0.4197,0.050663918,0.679540217,0.956516743,0.062423609,0.68576932,0.840303779,0.139345616,0.720973849,0.61859594,0.618574149,0.618794326
+227,0.3901,0.0487,0.3901,0.5613,0.3178,0,0.3178,0.5538,0.6624,0.0244,0.6624,0.5556,0.009933624,0.833085418,0.73586607,0.004825974,0.769854367,0.615973592,0.047255825,0.860327959,0.627054132,0.627036175,0.627216312
+228,0.3901,0.0376,0.3901,0.5322,0.3178,0.0065,0.3178,0.6097,0.6624,0.0085,0.6624,0.6247,0.009950076,0.780405462,0.693450689,0.01372513,0.854087532,0.560471773,0.025679257,0.950450242,0.626933301,0.626824625,0.62677305
+229,0.3901,0.0262,0.3901,0.5679,0.3178,0.0269,0.3178,0.6059,0.6624,0.008,0.6624,0.5837,0.004341427,0.86239183,0.582497954,0.031877942,0.823680341,0.259051323,0.029347412,0.900006175,0.62318753,0.623228263,0.62322695
+230,0.3901,0.0174,0.3901,0.5247,0.3178,0.0101,0.3178,0.5139,0.6624,0.0026,0.6624,0.5606,0.002885568,0.785116851,0.586721659,0.01491439,0.66516012,0.155594766,0.015595263,0.772518218,0.618475109,0.618574149,0.618351064
+231,0.3901,0.004,0.3901,0.4229,0.3178,0,0.3178,0.4232,0.6624,0.0138,0.6624,0.4619,0.002349213,0.637138128,0.539751291,0.00301314,0.593340457,0.220113367,0.033706091,0.706330597,0.616602223,0.616670193,0.616578014
+232,0.3901,0.0203,0.3901,0.3114,0.3178,0.0687,0.3178,0.363,0.6624,0.0296,0.6624,0.3161,0.025419714,0.509942234,0.364952117,0.071307533,0.568504334,0.21019949,0.067622408,0.520428538,0.617689705,0.617727946,0.617907801
+233,0.3901,0.0341,0.3901,0.109,0.3178,0.0981,0.3178,0.1806,0.6624,0.0849,0.6624,0.1138,0.058809057,0.282011777,0.308240444,0.104445308,0.306727648,0.153333008,0.17168577,0.25320223,0.646507975,0.646498837,0.646719858
+234,0.3901,0.0718,0.3901,0,0.3178,0.1428,0.3178,0,0.6624,0.2129,0.6624,0,0.140464246,0,0.24397713,0.178153262,0,0.130465731,0.429364324,0,0.689523925,0.689655172,0.689716312
+235,0.3901,0.1569,0.3901,0,0.3178,0.1886,0.3178,0,0.6624,0.3401,0.6624,0,0.338828415,0,0.160066932,0.295357883,0,0.063504189,0.642948687,0,0.689765587,0.689655172,0.689716312
+236,0.3901,0.1861,0.3901,0,0.3178,0.0455,0.3178,0,0.6624,0.3487,0.6624,0,0.403424114,0,0.206176162,0.114362463,0,0.125471741,0.678964555,0,0.677138714,0.677173683,0.677304965
+237,0.3901,0.1315,0.3901,0,0.3178,0.1484,0.3178,0,0.6624,0.3144,0.6624,0,0.382502914,0,0.229102075,0.231769681,0,0.195113361,0.532498121,0,0.652307878,0.652422255,0.65248227
+238,0.3901,0.1463,0.3901,0,0.3178,0.1426,0.3178,0,0.6624,0.386,0.6624,0,0.389041603,0,0.192775786,0.207796887,0,0.23948063,0.677794218,0,0.611466892,0.611592977,0.611702128
+239,0.3901,0.1285,0.3901,0,0.3178,0.1579,0.3178,0,0.6624,0.3647,0.6624,0,0.3803505,0,0.183335111,0.258410692,0,0.296441138,0.691874802,0,0.565732238,0.565686482,0.565602837
+240,0.3901,0.1069,0.3901,0,0.3178,0.1479,0.3178,0,0.6624,0.3353,0.6624,0,0.289933115,0,0.137859643,0.243095577,0,0.177257091,0.699401915,0,0.519393427,0.519356886,0.519503546
+241,0.3901,0.136,0.3901,0,0.3178,0.1693,0.3178,0,0.6624,0.3501,0.6624,0,0.315427333,0,0.084138379,0.274803817,0,0.148058385,0.718370974,0,0.486104398,0.486143431,0.486258865
+242,0.3901,0.1734,0.3901,0,0.3178,0.3006,0.3178,0,0.6624,0.3708,0.6624,0,0.413454682,0,0.213552058,0.433208376,0,0.109275922,0.700574815,0,0.469127598,0.469007827,0.468971631
+243,0.3901,0.1678,0.3901,0,0.3178,0.225,0.3178,0,0.6624,0.4118,0.6624,0,0.379670739,0,0.323283702,0.332038134,0,0.164830625,0.762360513,0,0.462240213,0.462238206,0.462322695
+244,0.3901,0.1565,0.3901,0,0.3178,0.2714,0.3178,0,0.6624,0.4473,0.6624,0,0.372016937,0,0.204186902,0.389134824,0,0.16150026,0.870534658,0,0.462602707,0.462661307,0.462765957
+245,0.3901,0.2762,0.3901,0,0.3178,0.3333,0.3178,0,0.6624,0.3735,0.6624,0,0.533230722,0,0.269460559,0.501860023,0,0.388051033,0.829701543,0,0.476921218,0.476835202,0.476950355
+246,0.3901,0.2992,0.3901,0,0.3178,0.2885,0.3178,0,0.6624,0.2641,0.6624,0,0.559709728,0,0.451925099,0.384678572,0,0.629839301,0.694203913,0,0.52060174,0.52062619,0.520833333
+247,0.3901,0.2145,0.3901,0,0.3178,0.1549,0.3178,0,0.6624,0.2381,0.6624,0,0.392397463,0,0.559710622,0.246748239,0,0.879858136,0.636787057,0,0.60022958,0.600169241,0.600620567
+248,0.3901,0.1484,0.3901,0,0.3178,0.0467,0.3178,0,0.6624,0.3623,0.6624,0,0.246410802,0,0.492618084,0.088999912,0,0.755990088,0.785576642,0,0.644876752,0.644806431,0.644946809
+249,0.3901,0.1407,0.3901,0.109,0.3178,0.0434,0.3178,0.1325,0.6624,0.3712,0.6624,0.1791,0.206950858,0.241210476,0.387375861,0.105640069,0.158013523,0.616167545,0.778141201,0.290976077,0.654543258,0.654749313,0.654698582
+250,0.3901,0.1245,0.3901,0.3235,0.3178,0.1744,0.3178,0.3044,0.6624,0.2961,0.6624,0.347,0.196065307,0.465222418,0.370672822,0.298146397,0.286300719,0.798244238,0.645206273,0.564218819,0.659980667,0.660038079,0.660460993
+251,0.3901,0.096,0.3901,0.3563,0.3178,0.0759,0.3178,0.3022,0.6624,0.2881,0.6624,0.4265,0.145341292,0.506199479,0.520363033,0.163800865,0.416147053,0.622791171,0.589344859,0.639770865,0.665115998,0.665115295,0.665336879
+252,0.3901,0.1166,0.3901,0.3784,0.3178,0.04,0.3178,0.4041,0.6624,0.1706,0.6624,0.3306,0.101395622,0.566710174,0.6584903,0.116298989,0.398162782,0.375435352,0.39519158,0.500069618,0.664149348,0.664057542,0.664450355
+253,0.3901,0.1044,0.3901,0.3346,0.3178,0.0816,0.3178,0.2614,0.6624,0.1698,0.6624,0.3834,0.086076871,0.433936596,0.579901576,0.220251709,0.365732104,0.236882731,0.385340095,0.380476654,0.657805703,0.657711022,0.658244681
+254,0.3901,0.2326,0.3901,0.2609,0.3178,0.1738,0.3178,0.2753,0.6624,0.1955,0.6624,0.2391,0.191405714,0.379352331,0.621176779,0.398240268,0.328983128,0.509845316,0.443078369,0.370686889,0.653214113,0.653268458,0.653368794
+255,0.3901,0.1805,0.3901,0.2381,0.3178,0.119,0.3178,0.1934,0.6624,0.3019,0.6624,0.2144,0.160513535,0.35280031,0.898490191,0.356975317,0.275281847,1,0.535503388,0.306617081,0.646205897,0.646287286,0.646276596
+256,0.3901,0.1597,0.3901,0.1307,0.3178,0.0979,0.3178,0.2166,0.6624,0.34,0.6624,0.0893,0.124228887,0.193886682,0.937764466,0.289872289,0.259687007,0.885226965,0.605705738,0.111397766,0.646507975,0.646498837,0.646719858
+257,0.3901,0.1483,0.3901,0.0266,0.3178,0.044,0.3178,0.0182,0.6624,0.4315,0.6624,0.0033,0.087120563,0.102469601,0.934247494,0.197817445,0.019180359,0.833556056,0.741962791,0,0.675990817,0.675904379,0.675975177
+258,0.3901,0.1784,0.3901,0,0.3178,0.1346,0.3178,0,0.6624,0.5071,0.6624,0,0.147102803,0,0.984330416,0.392012477,0,0.997785449,0.791446865,0,0.718946351,0.718849164,0.719414894
+259,0.3901,0.2497,0.3901,0,0.3178,0.2903,0.3178,0,0.6624,0.3505,0.6624,0,0.212808251,0,1,0.556888342,0,1,0.657197833,0,0.712965201,0.712925746,0.71320922
+260,0.3901,0.1879,0.3901,0,0.3178,0.4373,0.3178,0,0.6624,0.473,0.6624,0,0.202867627,0,1,0.619576454,0,1,0.732649088,0,0.690369744,0.690289824,0.690602837
+261,0.3901,0.3712,0.3901,0,0.3178,0.6209,0.3178,0,0.6624,0.438,0.6624,0,0.416482389,0,1,0.701148629,0,1,0.644316316,0,0.657866119,0.657711022,0.658244681
+262,0.3901,0.3268,0.3901,0,0.3178,0.3763,0.3178,0,0.6624,0.4976,0.6624,0,0.427124679,0,1,0.519282937,0,1,0.766804516,0,0.609956501,0.609900571,0.609929078
+263,0.3901,0.4796,0.3901,0,0.3178,0.3135,0.3178,0,0.6624,0.5917,0.6624,0,0.539691865,0,1,0.442616165,0,1,0.82458663,0,0.549963751,0.549820182,0.550088653
+264,0.3901,0.4519,0.3901,0,0.3178,0.487,0.3178,0,0.6624,0.5097,0.6624,0,0.260195226,0,1,0.4927454,0,1,0.786526084,0,0.495589657,0.495663211,0.496010638
+265,0.3901,0.5536,0.3901,0,0.3178,0.64,0.3178,0,0.6624,0.4291,0.6624,0,0.216492117,0,1,0.625216007,0,1,0.639156282,0,0.4610319,0.460968902,0.460992908
+266,0.3901,0.5864,0.3901,0,0.3178,0.6807,0.3178,0,0.6624,0.3328,0.6624,0,0.214984268,0,1,0.661117792,0,1,0.516517222,0,0.439101015,0.439179183,0.438829787
+267,0.3901,0.6644,0.3901,0,0.3178,0.5887,0.3178,0,0.6624,0.3521,0.6624,0,0.352891088,0,1,0.618125498,0,1,0.549280345,0,0.428407443,0.428390099,0.428191489
+268,0.3901,0.7506,0.3901,0,0.3178,0.2931,0.3178,0,0.6624,0.2979,0.6624,0,0.442067266,0,1,0.368625552,0,1,0.507342696,0,0.425688739,0.425639941,0.425975177
+269,0.3901,0.5882,0.3901,0,0.3178,0.1128,0.3178,0,0.6624,0.3221,0.6624,0,0.371072769,0,1,0.214122772,0,1,0.475048184,0,0.437771871,0.437909879,0.437943262
+270,0.3901,0.5954,0.3901,0,0.3178,0.0639,0.3178,0,0.6624,0.3993,0.6624,0,0.399746835,0,1,0.143449828,0,1,0.624332368,0,0.478189947,0.478104506,0.478280142
+271,0.3901,0.3232,0.3901,0,0.3178,0.0905,0.3178,0,0.6624,0.393,0.6624,0,0.24813661,0,1,0.136806577,0,1,0.72884357,0,0.558482359,0.558493759,0.558953901
+272,0.3901,0.297,0.3901,0,0.3178,0.1307,0.3178,0,0.6624,0.2839,0.6624,0,0.282510638,0,1,0.165759057,0,1,0.579252362,0,0.602887869,0.602707849,0.603280142
+273,0.3899,0.1826,0.3899,0.1008,0.3177,0.3306,0.3177,0.1563,0.6622,0.2003,0.6622,0.0817,0.182465851,0.236937389,1,0.299337328,0.362588108,0.560800374,0.442220718,0.255904913,0.607358627,0.607361963,0.607712766
+274,0.3898,0.1408,0.3898,0.3571,0.3176,0.2714,0.3176,0.4284,0.6621,0.1738,0.6621,0.3005,0.131159633,0.612088859,0.958232522,0.191371769,0.682959735,0.373580128,0.422047854,0.593546093,0.60482117,0.604823355,0.605053192
+275,0.3896,0.1367,0.3896,0.5425,0.3175,0.3441,0.3175,0.5777,0.6619,0.1747,0.6619,0.3797,0.143900737,0.780409455,0.730005682,0.303414434,0.831908643,0.360524356,0.3751598,0.751739025,0.605546158,0.605669558,0.605496454
+276,0.3895,0.2209,0.3895,0.6327,0.3174,0.1898,0.3174,0.6501,0.6617,0.165,0.6617,0.4315,0.198314294,0.858942092,0.920607209,0.21737963,0.910569906,0.537046909,0.259621054,0.79437846,0.6030087,0.602919399,0.603280142
+277,0.3893,0.2392,0.3893,0.6563,0.3173,0.2485,0.3173,0.6632,0.6615,0.2132,0.6615,0.4191,0.218283534,0.897629023,0.974759162,0.276159108,0.94185859,0.58096838,0.343196511,0.823120117,0.596121315,0.596149778,0.596187943
+278,0.3892,0.2848,0.3892,0.6462,0.3172,0.1227,0.3172,0.6461,0.6614,0.2082,0.6614,0.4222,0.254532039,0.900672555,1,0.185802132,0.896925211,0.582921743,0.438845277,0.863766789,0.59159014,0.591707214,0.591755319
+279,0.389,0.2453,0.389,0.5642,0.3171,0.2346,0.3171,0.5617,0.6612,0.4143,0.6612,0.4058,0.247006446,0.795192599,0.99453032,0.283673108,0.775765479,0.68333137,0.596738219,0.748500109,0.58518608,0.585149143,0.585106383
+280,0.3889,0.2811,0.3889,0.3954,0.317,0.1022,0.317,0.3732,0.661,0.4471,0.661,0.3121,0.209499329,0.584593952,1,0.122582026,0.593517125,0.626590669,0.588526428,0.574264288,0.585669406,0.585572245,0.585992908
+281,0.3887,0.3158,0.3887,0.1551,0.3169,0.3814,0.3169,0.1768,0.6608,0.3686,0.6608,0.0905,0.383485586,0.310923249,0.932848334,0.395263761,0.305663049,0.687052906,0.538321972,0.267084718,0.614971001,0.614977787,0.615248227
+282,0.3886,0.3149,0.3886,0,0.3167,0.1815,0.3167,0,0.6607,0.3004,0.6607,0,0.426643223,0,0.928340018,0.225260541,0,0.999099612,0.471244842,0,0.668861769,0.668923207,0.668882979
+283,0.3884,0.3414,0.3884,0,0.3166,0.1595,0.3166,0,0.6605,0.3144,0.6605,0,0.368312597,0,0.959610164,0.244742572,0,1,0.457496494,0,0.669465926,0.669557859,0.669769504
+284,0.3883,0.2419,0.3883,0,0.3165,0.1428,0.3165,0,0.6603,0.3457,0.6603,0,0.233646572,0,0.994261146,0.196254939,0,1,0.486181587,0,0.653576607,0.653691559,0.653812057
+285,0.3881,0.1498,0.3881,0,0.3164,0.1519,0.3164,0,0.6601,0.4419,0.6601,0,0.174997136,0,0.985978961,0.17046386,0,1,0.631752074,0,0.627658289,0.627670827,0.627659575
+286,0.388,0.2856,0.388,0,0.3163,0.2419,0.3163,0,0.66,0.3133,0.66,0,0.394229263,0,0.99136734,0.286830157,0,1,0.574119985,0,0.584763171,0.584726042,0.584663121
+287,0.3878,0.4486,0.3878,0,0.3162,0.3086,0.3162,0,0.6598,0.1992,0.6598,0,0.462068379,0,0.628719449,0.333986431,0,0.995685935,0.437746197,0,0.53117448,0.531203723,0.531471631
+288,0.3876,0.3611,0.3876,0,0.3161,0.4669,0.3161,0,0.6596,0.2688,0.6596,0,0.333746761,0,0.774292469,0.38871792,0,0.996052384,0.521710396,0,0.481029483,0.481066215,0.480939716
+289,0.5428,0.0554,0.5428,0,0.368,0.0509,0.368,0,0.613,0.2436,0.613,0,0.102929287,0,0.28655833,0.067501307,0,0.306544006,0.360672176,0,0.436865636,0.436852126,0.436613475
+290,0.5423,0.0335,0.5423,0,0.3678,0.0245,0.3678,0,0.613,0.2548,0.613,0,0.070069149,0,0.244399473,0.03964423,0,0.445659459,0.358865291,0,0.414934751,0.414850857,0.414893617
+291,0.5418,0.0298,0.5418,0,0.3677,0.0196,0.3677,0,0.6131,0.148,0.6131,0,0.069911592,0,0.244833529,0.040781193,0,0.689976454,0.262341768,0,0.401764137,0.401734716,0.401595745
+292,0.5412,0.0084,0.5412,0,0.3675,0.0156,0.3675,0,0.6131,0.1111,0.6131,0,0.014961205,0,0.244127989,0.03616431,0,0.791790605,0.221059725,0,0.397655872,0.397715253,0.397606383
+293,0.5407,0.0085,0.5407,0,0.3674,0,0.3674,0,0.6131,0.125,0.6131,0,0.020019906,0,0.211876005,0.014359617,0,0.465516508,0.230596468,0,0.406053649,0.405965729,0.406028369
+294,0.5402,0.0021,0.5402,0.0049,0.3672,0,0.3672,0.0008,0.6131,0.1131,0.6131,0.0136,0.007520093,0.004839725,0.289745718,0.007557144,0,0.460135877,0.226175949,0.008954303,0.436019816,0.436005923,0.436170213
+295,0.5397,0.0029,0.5397,0.0941,0.367,0.0049,0.367,0.0735,0.6131,0.1255,0.6131,0.0987,0.007531909,0.163497344,0.223146796,0.016487908,0.124448769,0.405033797,0.204162121,0.166514278,0.500966651,0.500951978,0.500886525
+296,0.5392,0.0095,0.5392,0.2171,0.3669,0.0036,0.3669,0.1971,0.6131,0.1218,0.6131,0.2353,0.020222772,0.366256326,0.399918079,0.017013889,0.339877576,0.214261025,0.217606798,0.377554804,0.557455292,0.557436006,0.557624114
+297,0.5387,0.0202,0.5387,0.338,0.3667,0,0.3667,0.352,0.6131,0.1588,0.6131,0.3624,0.012131217,0.51266861,0.372137129,0.01705572,0.548357666,0.205175936,0.246868596,0.564755321,0.585065249,0.585149143,0.585106383
+298,0.5382,0.0118,0.5382,0.4496,0.3666,0.003,0.3666,0.4415,0.6131,0.1834,0.6131,0.4693,0.015408306,0.641467035,0.271962106,0.021653213,0.667341054,0.148014396,0.319478989,0.682289004,0.602162881,0.602073197,0.602393617
+299,0.5377,0.0115,0.5377,0.6574,0.3664,0.0112,0.3664,0.6511,0.6131,0.1882,0.6131,0.6499,0.012474523,0.944623053,0.297082424,0.024686296,0.929904997,0.127350539,0.321994692,0.959149838,0.614850169,0.614766237,0.615248227
+300,0.5372,0.0167,0.5372,0.5304,0.3662,0.0051,0.3662,0.5241,0.6131,0.2792,0.6131,0.5302,0.03286979,0.763183296,0.365212739,0.016091846,0.713555157,0.460607886,0.464787126,0.736581981,0.623489609,0.623651365,0.623670213
+301,0.5367,0.0139,0.5367,0.518,0.3661,0.0277,0.3661,0.5291,0.6131,0.2951,0.6131,0.5243,0.021454006,0.752946496,0.472586632,0.040691424,0.725884199,1,0.486889899,0.747741342,0.624818753,0.624920669,0.625
+302,0.5362,0.0296,0.5362,0.5066,0.3659,0.0879,0.3659,0.5035,0.6131,0.3901,0.6131,0.5014,0.082228646,0.733274221,0.558043897,0.089652121,0.732926846,1,0.637303412,0.747792244,0.627235379,0.627247726,0.627216312
+303,0.5357,0.0675,0.5357,0.4998,0.3658,0.2124,0.3658,0.5097,0.6131,0.4318,0.6131,0.5092,0.147074938,0.716671348,0.273781955,0.210959673,0.731348395,0.453748465,0.659193039,0.715080202,0.624033349,0.624074466,0.624113475
+304,0.5352,0.0874,0.5352,0.4264,0.3656,0.1334,0.3656,0.4509,0.6131,0.3482,0.6131,0.3765,0.160640761,0.693377793,0.213523984,0.137134001,0.705526233,0.311781704,0.529499769,0.698079467,0.620952151,0.621112757,0.621010638
+305,0.5347,0.0934,0.5347,0.2974,0.3655,0.0398,0.3655,0.3258,0.6131,0.3334,0.6131,0.2584,0.129200593,0.586790562,0.138957962,0.050490655,0.63049984,0.185062319,0.503858209,0.581993341,0.620770904,0.620689655,0.621010638
+306,0.5342,0.0969,0.5342,0.1493,0.3653,0.0497,0.3653,0.1867,0.6131,0.3284,0.6131,0.1442,0.114053294,0.403389722,0.092829756,0.061868861,0.513354957,0.176666498,0.515562952,0.306327373,0.615756404,0.61582399,0.616134752
+307,0.5337,0.1098,0.5337,0.0488,0.3651,0.0749,0.3651,0.0732,0.6131,0.358,0.6131,0.0591,0.127998903,0.22100696,0.117127135,0.085354745,0.287998051,0.125957608,0.495559037,0.070040196,0.604639923,0.604823355,0.605053192
+308,0.5332,0.1264,0.5332,0,0.365,0.0365,0.365,0,0.6131,0.4554,0.6131,0,0.103152841,0,0.117953621,0.060099483,0,0.039143719,0.6747877,0,0.595275495,0.595303575,0.595301418
+309,0.5327,0.1441,0.5327,0,0.3648,0.0602,0.3648,0,0.6131,0.455,0.6131,0,0.143746465,0,0.147683203,0.090489812,0,0.059764139,0.623450279,0,0.603129531,0.60313095,0.603280142
+310,0.5322,0.1966,0.5322,0,0.3647,0.0289,0.3647,0,0.6131,0.3671,0.6131,0,0.192906633,0,0.37370503,0.039535411,0,0.138283253,0.560451567,0,0.585850653,0.585783795,0.585992908
+311,0.5316,0.1432,0.5316,0,0.3645,0.0601,0.3645,0,0.6131,0.3246,0.6131,0,0.18569909,0,0.575402319,0.076915391,0,0.194575399,0.552035093,0,0.539088932,0.539031098,0.539007092
+312,0.5311,0.1587,0.5311,0,0.3643,0.0983,0.3643,0,0.6131,0.3508,0.6131,0,0.17065762,0,0.666500807,0.12334802,0,0.305845827,0.653798878,0,0.48622523,0.486143431,0.486258865
+313,0.5306,0.2148,0.5306,0,0.3642,0.1068,0.3642,0,0.6131,0.3604,0.6131,0,0.201032296,0,0.954202414,0.123919778,0,0.3628833,0.672906995,0,0.4459884,0.445948805,0.445921986
+314,0.5301,0.2955,0.5301,0,0.364,0.1037,0.364,0,0.6132,0.3634,0.6132,0,0.236418411,0,0.979016721,0.103414245,0,0.396931976,0.68204242,0,0.421640889,0.421832029,0.421985816
+315,0.5296,0.332,0.5296,0,0.3639,0.0938,0.3639,0,0.6132,0.3532,0.6132,0,0.301238269,0,0.955985069,0.089088917,0,0.432177484,0.731578231,0,0.406839053,0.406811932,0.406914894
+316,0.5291,0.4087,0.5291,0,0.3637,0.1876,0.3637,0,0.6132,0.2717,0.6132,0,0.39020884,0,0.993632317,0.210339248,0,0.387375653,0.558156729,0,0.399347511,0.399407658,0.399379433
+317,0.5286,0.349,0.5286,0,0.3636,0.1478,0.3636,0,0.6132,0.2064,0.6132,0,0.380123615,0,0.918339968,0.176655948,0,0.334295839,0.441318661,0,0.400253746,0.400253861,0.400265957
+318,0.5281,0.1797,0.5281,0.026,0.3634,0.1886,0.3634,0.0121,0.6132,0.1902,0.6132,0.0409,0.235861972,0.049373325,0.466329932,0.192031875,0.022724975,0.339601845,0.45386827,0.152818382,0.406295312,0.40617728,0.406471631
+319,0.5276,0.1659,0.5276,0.1018,0.3632,0.1399,0.3632,0.13,0.6132,0.1876,0.6132,0.0873,0.183815897,0.458189815,0.338065684,0.108884692,0.487261832,0.352346093,0.440796673,0.420681775,0.429494925,0.429659403,0.429521277
+320,0.5271,0.1331,0.5271,0.2433,0.3631,0.0987,0.3631,0.2585,0.6132,0.0837,0.6132,0.1897,0.089953058,0.603047133,0.594026804,0.081454344,0.610282898,0.403067827,0.192150861,0.466695249,0.47341711,0.473450391,0.473404255
+321,0.5266,0.128,0.5266,0.3818,0.3629,0.0154,0.3629,0.3965,0.6132,0.0755,0.6132,0.3086,0.054063726,0.670013547,0.604393601,0.015007132,0.726192355,0.381297648,0.196360469,0.658982933,0.525132915,0.525068754,0.525265957
+322,0.5261,0.0712,0.5261,0.4982,0.3628,0.0061,0.3628,0.4937,0.6132,0.0858,0.6132,0.3997,0.020784948,0.770968735,0.401578367,0.012040151,0.772229612,0.591825485,0.164881259,0.673514366,0.567363461,0.567378887,0.567375887
+323,0.5256,0.0862,0.5256,0.5353,0.3626,0.0043,0.3626,0.5335,0.6132,0.0808,0.6132,0.5139,0.016812757,0.697871029,0.580888927,0.009310487,0.794491172,0.598218679,0.114012696,0.597352088,0.596483809,0.596572879,0.596631206
+324,0.5251,0.1196,0.5251,0.5261,0.3624,0.0594,0.3624,0.539,0.6132,0.1086,0.6132,0.582,0.068726257,0.74565649,0.828314841,0.043812402,0.794821799,0.682179809,0.12996468,0.606385469,0.615152248,0.615189338,0.615248227
+325,0.5246,0.1109,0.5246,0.5122,0.3623,0.0492,0.3623,0.5061,0.6132,0.2391,0.6132,0.6627,0.071737021,0.684711933,0.73906374,0.039249744,0.753941178,0.780026496,0.252119541,0.737015903,0.626329145,0.626401523,0.62677305
+326,0.5241,0.1518,0.5241,0.6212,0.3621,0.0035,0.3621,0.6245,0.6132,0.277,0.6132,0.7799,0.073892027,0.868428469,1,0.011705987,0.874346674,1,0.298006117,0.994849503,0.629954084,0.629786334,0.630319149
+327,0.5236,0.1656,0.5236,0.4165,0.362,0.0012,0.362,0.3972,0.6132,0.2761,0.6132,0.5856,0.059361372,0.639644206,0.995629609,0.015990097,0.549309194,0.671295524,0.283086956,0.914367557,0.632310295,0.632324942,0.632535461
+328,0.5231,0.2013,0.5231,0.3874,0.3618,0.0066,0.3618,0.3532,0.6132,0.347,0.6132,0.4619,0.084108204,0.702865779,0.998854637,0.028533269,0.520966053,0.786381781,0.340696096,0.89767617,0.632310295,0.632324942,0.632535461
+329,0.5226,0.1814,0.5226,0.2828,0.3617,0,0.3617,0.2343,0.6132,0.4828,0.6132,0.3078,0.061644688,0.633072138,0.977961302,0.015878014,0.335467786,0.738582492,0.539063335,0.852163374,0.636781054,0.636767506,0.636968085
+330,0.5221,0.175,0.5221,0.1567,0.3615,0.044,0.3615,0.1124,0.6132,0.3649,0.6132,0.1234,0.08750321,0.476917625,0.963040888,0.057438612,0.174902946,0.750400543,0.430850416,0.733914018,0.636781054,0.636767506,0.636968085
+331,0.5215,0.2286,0.5215,0.0604,0.3613,0.0109,0.3613,0.0397,0.6132,0.2706,0.6132,0.0769,0.110712282,0.242785856,1,0.082583472,0.041037187,1,0.307669967,0.490603566,0.627899952,0.627882378,0.628102837
+332,0.521,0.0939,0.521,0.0018,0.3612,0.0113,0.3612,0,0.6132,0.2094,0.6132,0.0408,0.06268514,0,0.791789591,0.030916506,0,0.591982544,0.280342639,0,0.616179314,0.616247091,0.616134752
+333,0.5205,0.1196,0.5205,0,0.361,0.0207,0.361,0,0.6132,0.2086,0.6132,0,0.079687506,0,0.690502524,0.035293765,0,0.387329578,0.32381013,0,0.622100048,0.62217051,0.622340426
+334,0.52,0.1163,0.52,0,0.3609,0.0913,0.3609,0,0.6132,0.2564,0.6132,0,0.209309652,0,0.371470213,0.118508779,0,0.186375141,0.345559239,0,0.604519091,0.604611805,0.604609929
+335,0.5195,0.1461,0.5195,0,0.3607,0.2797,0.3607,0,0.6132,0.3102,0.6132,0,0.347161263,0,0.235487819,0.293499112,0,0.287831694,0.48878479,0,0.554917835,0.554897398,0.554964539
+336,0.519,0.2864,0.519,0,0.3605,0.5674,0.3605,0,0.6132,0.3171,0.6132,0,0.426779628,0,0.24946785,0.531790853,0,0.560889304,0.432373047,0,0.501510392,0.50158663,0.50177305
+337,0.5185,0.2711,0.5185,0,0.3604,0.2931,0.3604,0,0.6132,0.1866,0.6132,0,0.34032023,0,0.653070331,0.393169761,0,0.617837012,0.343333662,0,0.457044466,0.456949439,0.457003546
+338,0.518,0.1829,0.518,0,0.3602,0.2742,0.3602,0,0.6133,0.1478,0.6133,0,0.209819675,0,0.869526088,0.371684939,0,0.72388792,0.284313917,0,0.428407443,0.428390099,0.428191489
+339,0.5175,0.1844,0.5175,0,0.3601,0.5432,0.3601,0,0.6133,0.1773,0.6133,0,0.228416383,0,0.928739488,0.457418025,0,0.751158357,0.241683677,0,0.409255679,0.409138989,0.409131206
+340,0.517,0.2522,0.517,0,0.3599,0.33,0.3599,0,0.6133,0.1432,0.6133,0,0.207252786,0,0.845790386,0.43018651,0,0.829544604,0.22548914,0,0.397655872,0.397715253,0.397606383
+341,0.5165,0.2607,0.5165,0,0.3598,0.2193,0.3598,0,0.6133,0.1329,0.6133,0,0.195063695,0,0.479269803,0.330451816,0,0.775633276,0.221389622,0,0.392278879,0.392214936,0.392287234
+342,0.516,0.2212,0.516,0.0973,0.3596,0.2581,0.3596,0.0752,0.6133,0.0723,0.6133,0.059,0.195275858,0.248310834,0.218139723,0.33224842,0.115721382,0.579433203,0.13964197,0.231346116,0.386237313,0.386291517,0.38608156
+343,0.5155,0.1456,0.5155,0.1144,0.3594,0.164,0.3594,0.138,0.6133,0.0453,0.6133,0.1168,0.109856688,0.525692761,0.150333703,0.206480548,0.31754446,0.140880883,0.076125711,0.655412436,0.399830836,0.39983076,0.399822695
+344,0.515,0.0674,0.515,0.2496,0.3593,0.0309,0.3593,0.2598,0.6133,0.0091,0.6133,0.2575,0.020254515,0.707271993,0.119932413,0.052579988,0.485493958,0.044088483,0.006525885,0.772856474,0.434630256,0.434736619,0.434840426
+345,0.5145,0.0287,0.5145,0.4063,0.3591,0,0.3591,0.4016,0.6133,0.0063,0.6133,0.416,0.006522118,0.818332374,0.115701422,0.002567487,0.668443859,0.057944506,0.002153539,0.882645607,0.478250363,0.478316057,0.478280142
+346,0.514,0.0344,0.514,0.5217,0.359,0,0.359,0.5187,0.6133,0.0061,0.6133,0.5489,0.00640721,0.858387113,0.094033748,0.001303967,0.821421921,0.033942148,0.001924694,0.91635406,0.516916385,0.516818278,0.516843972
+347,0.5135,0.0279,0.5135,0.6837,0.3588,0,0.3588,0.6685,0.6133,0.0053,0.6133,0.7417,0.005469657,0.990906656,0.089679062,0.002256513,0.980414927,0.069912314,0.009007787,1,0.541868052,0.541781257,0.542109929
+348,0.513,0.0209,0.513,0.6141,0.3586,0,0.3586,0.5887,0.6133,0.0099,0.6133,0.6676,0.005807847,0.866961598,0.052571714,0.000736253,0.781377852,0.003317539,0.00634783,0.915979266,0.558724021,0.55870531,0.558953901
+349,0.5125,0.0305,0.5125,0.6254,0.3585,0,0.3585,0.5841,0.6133,0.0158,0.6133,0.61,0.009198739,0.88501215,0.048186928,0.002049996,0.801012933,0,0.028446689,0.920965672,0.568753021,0.568648191,0.568705674
+350,0.5119,0.0314,0.5119,0.6295,0.3583,0,0.3583,0.5947,0.6133,0.017,0.6133,0.527,0.010839716,0.867754877,0.028566901,0.006953634,0.824292362,0.009132199,0.045451026,0.90958482,0.570323828,0.570340597,0.570478723
+351,0.5114,0.0375,0.5114,0.5713,0.3582,0.0108,0.3582,0.5658,0.6133,0.0292,0.6133,0.4364,0.029926123,0.866189599,0.090105362,0.019025767,0.844137788,0.069604456,0.042708278,0.542909801,0.571532141,0.571609901,0.571808511
+352,0.5109,0.0911,0.5109,0.4664,0.358,0.0329,0.358,0.4846,0.6133,0.015,0.6133,0.4434,0.054838117,0.855623722,0.175722048,0.048079811,0.831098139,0.020941624,0.044498995,0.443953484,0.574552924,0.57457161,0.574468085
+353,0.5104,0.1296,0.5104,0.3225,0.3578,0.0352,0.3578,0.357,0.6133,0.0328,0.6133,0.29,0.07538908,0.792096496,0.200383514,0.06945663,0.765474975,0.040855758,0.071649931,0.638964295,0.579990334,0.579860377,0.580230497
+354,0.5099,0.1024,0.5099,0.1542,0.3577,0.0063,0.3577,0.1974,0.6133,0.0373,0.6133,0.1523,0.08161626,0.6482867,0.156256527,0.038182136,0.617378116,0.041342147,0.087772548,0.638399243,0.58240696,0.582398985,0.582446809
+355,0.5094,0.0762,0.5094,0.0734,0.3575,0.0553,0.3575,0.0874,0.6133,0.0424,0.6133,0.0676,0.07382483,0.326692373,0.046422366,0.084147491,0.315512568,0.045055497,0.085680999,0.305667967,0.573042533,0.573090755,0.573138298
+356,0.5089,0.104,0.5089,0,0.3574,0.0847,0.3574,0,0.6133,0.0541,0.6133,0,0.161338687,0,0.067104608,0.132098615,0,0.146847129,0.085918419,0,0.562167714,0.562090121,0.562056738
+357,0.5084,0.1042,0.5084,0,0.3572,0.1265,0.3572,0,0.6133,0.04,0.6133,0,0.15919514,0,0.039689653,0.163268238,0,0.123765454,0.058647409,0,0.57280087,0.572667654,0.573138298
+358,0.5079,0.087,0.5079,0,0.3571,0.1107,0.3571,0,0.6133,0.0466,0.6133,0,0.108535186,0,0.065212756,0.142740086,0,0.338499755,0.067917563,0,0.561080232,0.561032367,0.561170213
+359,0.5074,0.0581,0.5074,0,0.3569,0.1212,0.3569,0,0.6133,0.0512,0.6133,0,0.071472719,0,0.217857033,0.138909176,0,0.244642153,0.092894673,0,0.522353794,0.522318595,0.522606383
+360,0.5069,0.0925,0.5069,0,0.3567,0.2,0.3567,0,0.6133,0.0627,0.6133,0,0.111822933,0,0.349852622,0.214631125,0,0.414055526,0.148355186,0,0.476739971,0.476835202,0.476950355
+361,0.5064,0.0786,0.5064,0,0.3566,0.1856,0.3566,0,0.6134,0.0398,0.6134,0,0.110325836,0,0.327212632,0.184857607,0,0.563972533,0.099001825,0,0.440188497,0.440236937,0.440159575
+362,0.5059,0.0609,0.5059,0,0.3564,0.1325,0.3564,0,0.6134,0.0292,0.6134,0,0.093629137,0,0.378330529,0.166632116,0,0.674354196,0.125508308,0,0.416082649,0.416120161,0.416223404
+363,0.5054,0.0554,0.5054,0,0.3563,0.1046,0.3563,0,0.6134,0.0325,0.6134,0,0.047552854,0,0.675056875,0.142442837,0,0.82370317,0.152086809,0,0.402549541,0.402580918,0.402925532
+364,0.5049,0.0389,0.5049,0,0.3561,0.0672,0.3561,0,0.6134,0.0299,0.6134,0,0.035386208,0,0.779412627,0.093350187,0,1,0.082653493,0,0.395903818,0.395811297,0.395833333
+365,0.5044,0.0278,0.5044,0,0.3559,0.043,0.3559,0,0.6134,0.0299,0.6134,0,0.044179618,0,0.970574141,0.075678729,0,1,0.051712863,0,0.396749638,0.39686905,0.396719858
+366,0.5039,0.0018,0.5039,0.0359,0.3558,0.046,0.3558,0.0118,0.6134,0.0385,0.6134,0.0436,0.050887093,0.096717402,0.811164498,0.057695933,0.069058806,1,0.053232022,0.136604279,0.400495408,0.400676962,0.40070922
+367,0.5034,0.0034,0.5034,0.1068,0.3556,0.005,0.3556,0.1206,0.6134,0.0259,0.6134,0.1378,0.011802151,0.445279241,0.798115969,0.012516349,0.452267677,0.873755574,0.056437861,0.427904367,0.418861769,0.418870319,0.418882979
+368,0.5029,0.0048,0.5029,0.2425,0.3555,0,0.3555,0.2677,0.6134,0.0286,0.6134,0.248,0.010198699,0.683956683,0.860122562,0,0.708063066,0.443921745,0.056191221,0.709809661,0.456440309,0.456526338,0.456560284
+369,0.5023,0.0012,0.5023,0.3923,0.3553,0,0.3553,0.4168,0.6134,0.0205,0.6134,0.3691,0.002185003,0.78157872,0.587973356,4.14E-06,0.817111433,0.803598762,0.017246964,0.820502579,0.507068632,0.507086947,0.507092199
+370,0.5018,0.0087,0.5018,0.5074,0.3552,0,0.3552,0.5283,0.6134,0.0351,0.6134,0.4759,0.003054135,0.843060255,0.593473434,0,0.858579099,0.628719926,0.012483159,0.880974174,0.549117931,0.54918553,0.549202128
+371,0.5013,0.0083,0.5013,0.6026,0.355,0,0.355,0.6076,0.6134,0.0482,0.6134,0.47,0.001627549,0.880451083,0.41860193,0.000109725,0.877711237,0.17581363,0.018060023,0.881064296,0.581138231,0.581129681,0.581117021
+372,0.5008,0.0145,0.5008,0.6293,0.3548,0,0.3548,0.6221,0.6134,0.0367,0.6134,0.521,0.002265822,0.880549073,0.187907904,0.002390011,0.876857698,0.130292937,0.002811063,0.880626679,0.605062832,0.605034906,0.605496454
+373,0.5003,0.0189,0.5003,0.6032,0.3547,0,0.3547,0.5993,0.6134,0.0405,0.6134,0.5412,0.004129499,0.82160759,0.064052969,0.002647798,0.859360158,0.097917542,0.005518335,0.911264956,0.622160464,0.62217051,0.622340426
+374,0.4998,0.0219,0.4998,0.5956,0.3545,0,0.3545,0.5694,0.6134,0.0526,0.6134,0.4555,0.007144081,0.804832161,0.088177927,0.004862648,0.765307427,0.012381938,0.051187784,0.865523696,0.628383277,0.62851703,0.628546099
+375,0.4993,0.0499,0.4993,0.5497,0.3544,0,0.3544,0.5184,0.6134,0.1268,0.6134,0.4178,0.020478513,0.803928673,0.069377817,0.013637004,0.728534877,0.009062566,0.125595883,0.733185232,0.632612373,0.632748043,0.632978723
+376,0.4988,0.077,0.4988,0.4475,0.3542,0,0.3542,0.4624,0.6134,0.2036,0.6134,0.3587,0.078456752,0.806182385,0.043587331,0.040330511,0.784437716,0.061906025,0.230736941,0.637027204,0.63738521,0.637613709,0.637411348
+377,0.4983,0.0979,0.4983,0.3146,0.354,0,0.354,0.3444,0.6134,0.1319,0.6134,0.2848,0.145345926,0.754471779,0.033999901,0.068920702,0.731807947,0.021825396,0.1605739,0.685909629,0.646145481,0.646287286,0.646276596
+378,0.4978,0.1186,0.4978,0.1529,0.3539,0.1888,0.3539,0.1995,0.6134,0.1342,0.6134,0.134,0.250567436,0.6176669,0.015773797,0.280011445,0.514961958,0,0.161806598,0.586301327,0.652549541,0.652633806,0.65248227
+379,0.4973,0.1807,0.4973,0.0686,0.3537,0.2795,0.3537,0.0905,0.6134,0.1234,0.6134,0.0714,0.293726653,0.340904981,0.018532129,0.338294953,0.294265181,0,0.174860343,0.342638254,0.64517883,0.645229533,0.645390071
+380,0.4968,0.0655,0.4968,0,0.3536,0.0233,0.3536,0,0.6134,0.176,0.6134,0,0.129458889,0,0.00505148,0.041073062,0,0,0.268521637,0.0000196,0.637143548,0.637190607,0.637411348
+381,0.4963,0.0918,0.4963,0,0.3534,0.1062,0.3534,0,0.6134,0.1566,0.6134,0,0.165676624,0,0.010476673,0.148222417,0,0.053382203,0.233442634,0,0.645843403,0.645864185,0.645833333
+382,0.4958,0.0698,0.4958,0,0.3533,0.222,0.3533,0,0.6134,0.1314,0.6134,0,0.198202223,0,0.014508187,0.238910809,0,0.098121733,0.265107542,0,0.617025133,0.617093294,0.617021277
+383,0.4953,0.0486,0.4953,0,0.3531,0.175,0.3531,0,0.6134,0.1383,0.6134,0,0.161508367,0,0.045076083,0.196971089,0,0.138786927,0.306821913,0,0.554253262,0.554262746,0.554521277
+384,0.4948,0.0422,0.4948,0,0.3529,0.1053,0.3529,0,0.6135,0.1693,0.6135,0,0.127100974,0,0.161075637,0.140977368,0,0.392001361,0.321119994,0,0.494139681,0.494182357,0.494237589
+385,0.1649,0.0966,0.1649,0,0.215,0.0302,0.215,0,0.5349,0.0151,0.5349,0,0.023907624,0,0.417306423,0.034292813,0,1,0.020571349,0,0.59618173,0.596149778,0.596187943
+386,0.1649,0.1738,0.1649,0,0.215,0.0737,0.215,0,0.5349,0.0282,0.5349,0,0.068487756,0,0.915883303,0.079222478,0,0.99107337,0.025771072,0,0.567544708,0.567590438,0.567375887
+387,0.1649,0.1676,0.1649,0,0.215,0.1417,0.215,0,0.5349,0.0371,0.5349,0,0.080683127,0,0.804368138,0.145942792,0,0.662275672,0.027744928,0,0.549238763,0.54918553,0.549202128
+388,0.1649,0.0604,0.1649,0,0.215,0.2023,0.215,0,0.5349,0.0232,0.5349,0,0.085766658,0,0.669743061,0.214158848,0,0.993282795,0.03124867,0,0.539632673,0.53966575,0.539893617
+389,0.1649,0.0876,0.1649,0,0.215,0.2069,0.215,0,0.5349,0.0179,0.5349,0,0.109562613,0,0.857402027,0.223272532,0,0.995654464,0.023975259,0,0.543318028,0.543473662,0.543439716
+390,0.1649,0.0716,0.1649,0.0316,0.215,0.201,0.215,0.0168,0.5349,0.0059,0.5349,0,0.104910389,0.048925817,0.622618437,0.21813342,0.028234283,0.676141143,0.014987183,0.005167271,0.568088449,0.568013539,0.568262411
+391,0.1649,0.0503,0.1649,0.0805,0.215,0.0923,0.215,0.1067,0.5349,0.0101,0.5349,0.086,0.044781681,0.382301807,0.735658586,0.081565261,0.424099892,0.372645557,0.038940638,0.238480106,0.627537458,0.627670827,0.627659575
+392,0.1649,0.1238,0.1649,0.2149,0.215,0.131,0.215,0.2393,0.5349,0.004,0.5349,0.2077,0.098245755,0.654169679,0.725578904,0.137218773,0.562330484,0.44511205,0.011610627,0.511969805,0.706319478,0.706367675,0.706560284
+393,0.1649,0.0824,0.1649,0.3659,0.215,0.1469,0.215,0.3837,0.5349,0.0017,0.5349,0.3529,0.071114846,0.757350922,0.579348803,0.114812493,0.752826154,0.30573538,0.009155178,0.727080345,0.767520541,0.767717368,0.767730497
+394,0.1649,0.0601,0.1649,0.4898,0.215,0.115,0.215,0.4951,0.5349,0.0039,0.5349,0.4723,0.032162994,0.805259585,0.530722499,0.09734036,0.810123205,0.275747657,0.007694993,0.788729906,0.816698888,0.816797123,0.816932624
+395,0.1649,0.1055,0.1649,0.5831,0.215,0.1406,0.215,0.5785,0.5349,0.0134,0.5349,0.5436,0.091004223,0.82989347,0.433776796,0.143119335,0.837365151,0.264700264,0.025805254,0.830189049,0.859956501,0.859953459,0.86037234
+396,0.1649,0.0853,0.1649,0.6085,0.215,0.2261,0.215,0.6126,0.5349,0.0451,0.5349,0.5843,0.092592314,0.849625409,0.373571277,0.198024914,0.863726378,0.238614678,0.089819893,0.84804672,0.894755921,0.894647768,0.894946809
+397,0.1649,0.1433,0.1649,0.5999,0.215,0.1885,0.215,0.6174,0.5349,0.0418,0.5349,0.5893,0.173794836,0.837577999,0.433625162,0.168830335,0.871693909,0.227770433,0.055512808,0.841647446,0.921640889,0.921726253,0.921985816
+398,0.1649,0.1712,0.1649,0.5772,0.215,0.1281,0.215,0.6044,0.5349,0.129,0.5349,0.5534,0.132632583,0.814279378,0.79791081,0.134183258,0.845688641,0.409148991,0.191790685,0.798665047,0.944719671,0.944785276,0.945035461
+399,0.1649,0.1848,0.1649,0.5188,0.215,0.1351,0.215,0.5663,0.5349,0.0866,0.5349,0.5003,0.152588874,0.773287952,1,0.130121231,0.795576215,0.439282239,0.096225865,0.698141456,0.94961334,0.949650941,0.949911348
+400,0.1649,0.1469,0.1649,0.4201,0.215,0.1776,0.215,0.4586,0.5349,0.0651,0.5349,0.4107,0.137453303,0.696662486,1,0.176341489,0.707151115,0.486715198,0.051740754,0.596123815,0.951486225,0.951554897,0.951684397
+401,0.1649,0.1033,0.1649,0.3017,0.215,0.1491,0.215,0.3374,0.5349,0.0463,0.5349,0.2813,0.096672967,0.611576557,1,0.148207724,0.601497173,0.705397964,0.054552019,0.579768598,0.949734171,0.949650941,0.949911348
+402,0.1649,0.218,0.1649,0.1691,0.215,0.267,0.215,0.2068,0.5349,0.0428,0.5349,0.1628,0.246728316,0.466124952,1,0.235715553,0.509555697,0.762290359,0.041651979,0.466523498,0.942665539,0.942669769,0.943262411
+403,0.1649,0.0872,0.1649,0.0705,0.215,0.0681,0.215,0.0937,0.5349,0.0372,0.5349,0.0507,0.117695704,0.194905758,1,0.059019528,0.3035146,0.570949793,0.034362815,0.137939692,0.920734654,0.9206685,0.921099291
+404,0.1649,0.0529,0.1649,0,0.215,0.0314,0.215,0,0.5349,0.0362,0.5349,0,0.100484103,0,1,0.037133232,0,0.491913617,0.057075974,0,0.891795553,0.89189761,0.892287234
+405,0.1649,0.0325,0.1649,0,0.215,0.0175,0.215,0,0.5349,0.0411,0.5349,0,0.059404828,0,0.998141885,0.026813105,0,0.682712853,0.099441372,0,0.880497825,0.880685424,0.880762411
+406,0.1649,0.0519,0.1649,0,0.215,0.0503,0.215,0,0.5349,0.0617,0.5349,0,0.107082434,0,0.723340154,0.06148164,0,0.634384334,0.148364067,0,0.845517158,0.845568014,0.845744681
+407,0.1649,0.0295,0.1649,0,0.215,0.0333,0.215,0,0.5349,0.0466,0.5349,0,0.067474082,0,0.636288285,0.048424825,0,0.577560782,0.103087641,0,0.764741421,0.764755659,0.765070922
+408,0.1649,0.0343,0.1649,0,0.215,0.1177,0.215,0,0.5349,0.0177,0.5349,0,0.076981142,0,0.689040303,0.100923747,0,1,0.047065575,0,0.684871919,0.684789507,0.685283688
+409,0.1649,0.04,0.1649,0,0.215,0.1587,0.215,0,0.5349,0.0209,0.5349,0,0.088664487,0,0.95889777,0.190048918,0,1,0.038112242,0,0.628262446,0.628305479,0.628546099
+410,0.1649,0.102,0.1649,0,0.215,0.2127,0.215,0,0.5349,0.0415,0.5349,0,0.196175486,0,0.973448098,0.253231585,0,1,0.042202726,0,0.59159014,0.591707214,0.591755319
+411,0.1649,0.1432,0.1649,0,0.215,0.2058,0.215,0,0.5349,0.0451,0.5349,0,0.255708128,0,0.82672441,0.296434999,0,0.279786944,0.042854957,0,0.567846786,0.567801989,0.567819149
+412,0.1649,0.1592,0.1649,0,0.215,0.1181,0.215,0,0.5349,0.0462,0.5349,0,0.142633662,0,0.596264303,0.179559961,0,0.178385884,0.059922714,0,0.553044949,0.552993442,0.553191489
+413,0.1649,0.1248,0.1649,0,0.215,0.11,0.215,0,0.5349,0.053,0.5349,0,0.161802918,0,0.586191595,0.127627045,0,0.15827696,0.076737471,0,0.554374094,0.554474297,0.554521277
+414,0.1649,0.1249,0.1649,0.0259,0.215,0.0505,0.215,0.0003,0.5349,0.0455,0.5349,0.0083,0.191856578,0.034566909,0.498638719,0.061767213,0.001520546,0.067278281,0.060737375,0.138037294,0.576788304,0.576687117,0.57712766
+415,0.1649,0.088,0.1649,0.096,0.215,0.0136,0.215,0.0996,0.5349,0.0247,0.5349,0.0608,0.145739317,0.34051609,0.377310753,0.021560257,0.306335449,0.000539267,0.037652876,0.473481745,0.639076849,0.639094563,0.639184397
+416,0.1649,0.0553,0.1649,0.2133,0.215,0.0031,0.215,0.2184,0.5349,0.0244,0.5349,0.0906,0.063441776,0.547159135,0.388509452,0.00647525,0.54831779,0.000329843,0.050226711,0.462442458,0.719973417,0.719906918,0.720301418
+417,0.1649,0.0608,0.1649,0.3624,0.215,0.0035,0.215,0.3801,0.5349,0.0266,0.5349,0.157,0.107709236,0.747829616,0.260568708,0.003027687,0.758825243,0.023841623,0.04504494,0.412879914,0.784859836,0.784852972,0.785017731
+418,0.1649,0.0483,0.1649,0.4795,0.215,0.0187,0.215,0.497,0.5349,0.0347,0.5349,0.3141,0.077111453,0.776483536,0.065477707,0.016431429,0.81982255,0.04393246,0.124877751,0.471285522,0.842194297,0.842183203,0.842198582
+419,0.1649,0.0521,0.1649,0.5633,0.215,0.0611,0.215,0.566,0.5349,0.0441,0.5349,0.3079,0.041601107,0.7407341,0.070179462,0.04828972,0.813200533,0.017215969,0.188969538,0.488849372,0.891855969,0.89189761,0.892287234
+420,0.1649,0.1347,0.1649,0.5708,0.215,0.1496,0.215,0.5632,0.5349,0.0817,0.5349,0.4452,0.034508858,0.721973896,0.095890448,0.122549281,0.76173687,0.032446075,0.224277183,0.530159354,0.925869986,0.925957267,0.92641844
+421,0.1649,0.3076,0.1649,0.534,0.215,0.199,0.215,0.5305,0.5349,0.0563,0.5349,0.4428,0.153099567,0.781870365,0.205791622,0.199565381,0.770466328,0.120509699,0.177167088,0.664518833,0.949311262,0.949439391,0.949468085
+422,0.1649,0.3513,0.1649,0.5641,0.215,0.2721,0.215,0.5783,0.5349,0.0923,0.5349,0.4834,0.191757113,0.821734905,0.377977192,0.273406863,0.844895959,0.295387983,0.146371976,0.715889216,0.970517158,0.970594457,0.970744681
+423,0.1649,0.5379,0.1649,0.5537,0.215,0.2836,0.215,0.5735,0.5349,0.0596,0.5349,0.4119,0.377724767,0.827906728,0.513582945,0.281844467,0.849149346,0.440620959,0.133162469,0.748334169,0.983929435,0.983922149,0.984042553
+424,0.1649,0.5602,0.1649,0.457,0.215,0.2746,0.215,0.4853,0.5349,0.054,0.5349,0.3376,0.354122341,0.795335829,0.714232802,0.308719426,0.822357357,0.799556851,0.152271077,0.724883318,0.99401885,0.994076581,0.994237589
+425,0.1649,0.573,0.1649,0.3439,0.215,0.2808,0.215,0.4051,0.5349,0.0413,0.5349,0.1446,0.322912455,0.916427732,0.975401282,0.337165982,0.947162032,1,0.119346462,0.805045307,1,1,1
+426,0.1649,0.5305,0.1649,0.1642,0.215,0.2359,0.215,0.2135,0.5349,0.0691,0.5349,0.0666,0.23743692,0.592885971,1,0.277880848,0.630017042,1,0.124509253,0.148911506,0.991723055,0.991749524,0.992021277
+427,0.1649,0.4565,0.1649,0.0638,0.215,0.1028,0.215,0.0909,0.5349,0.0799,0.5349,0.0064,0.273301721,0.291396022,1,0.126930207,0.36169523,1,0.183063909,0.001705564,0.968946351,0.968902052,0.969414894
+428,0.1649,0.3317,0.1649,0,0.215,0.0481,0.215,0,0.5349,0.0853,0.5349,0,0.196990103,0,1,0.092703208,0,1,0.188168913,0,0.939221846,0.939284959,0.93927305
+429,0.1649,0.2588,0.1649,0,0.215,0.1203,0.215,0,0.5349,0.1128,0.5349,0,0.243232921,0,1,0.192564219,0,1,0.278062165,0,0.92218463,0.922360905,0.922429078
+430,0.1649,0.3635,0.1649,0,0.215,0.1436,0.215,0,0.5349,0.136,0.5349,0,0.398288399,0,1,0.21815072,0,1,0.305683553,0,0.888533108,0.88872435,0.888741135
+431,0.1649,0.358,0.1649,0,0.215,0.1599,0.215,0,0.5349,0.2111,0.5349,0,0.299076855,0,1,0.2167622,0,1,0.479759544,0,0.812409377,0.812354559,0.8125
+432,0.1649,0.5364,0.1649,0,0.215,0.2532,0.215,0,0.5349,0.1774,0.5349,0,0.428693622,0,1,0.351906925,0,1,0.506558478,0,0.736768971,0.736830971,0.736702128
+433,0.1649,0.5554,0.1649,0,0.215,0.285,0.215,0,0.5349,0.1791,0.5349,0,0.446920902,0,1,0.369857788,0,1,0.434830606,0,0.68360319,0.683731754,0.683510638
+434,0.1649,0.6115,0.1649,0,0.215,0.2766,0.215,0,0.5349,0.2365,0.5349,0,0.520143688,0,1,0.392075658,0,1,0.462207615,0,0.650555824,0.65072985,0.65070922
+435,0.1649,0.5166,0.1649,0,0.215,0.2303,0.215,0,0.5349,0.265,0.5349,0,0.462805867,0,1,0.345716238,0,1,0.454005748,0,0.629712422,0.629786334,0.629875887
+436,0.1649,0.2835,0.1649,0,0.215,0.1009,0.215,0,0.5349,0.2695,0.5349,0,0.200760424,0,1,0.15580602,0,1,0.439529955,0,0.617085549,0.617093294,0.617464539
+437,0.1649,0.2476,0.1649,0,0.215,0.0649,0.215,0,0.5349,0.2045,0.5349,0,0.218583316,0,1,0.107753277,0,1,0.371108502,0,0.616420976,0.616458642,0.616578014
+438,0.1649,0.1892,0.1649,0.0054,0.215,0.0957,0.215,0.0003,0.5349,0.1657,0.5349,0.0115,0.230784699,0.014356065,1,0.144820839,0.001643444,1,0.310442865,0.043553945,0.637989367,0.63803681,0.638297872
+439,0.1649,0.1257,0.1649,0.0826,0.215,0.0842,0.215,0.1088,0.5349,0.1622,0.5349,0.0819,0.115110144,0.408010691,1,0.133617148,0.337741107,1,0.284077495,0.292382002,0.694478009,0.694520838,0.694592199
+440,0.1649,0.0923,0.1649,0.2036,0.215,0.0415,0.215,0.2241,0.5349,0.0704,0.5349,0.1882,0.09064839,0.500300586,1,0.057466157,0.492300063,1,0.125205591,0.4777928,0.777489125,0.77766025,0.777925532
+441,0.1649,0.0996,0.1649,0.3215,0.215,0.0653,0.215,0.3379,0.5349,0.0518,0.5349,0.2889,0.101875342,0.572936118,1,0.040974785,0.621728003,1,0.104450181,0.384502202,0.835729821,0.835625132,0.835992908
+442,0.1649,0.029,0.1649,0.4199,0.215,0.0273,0.215,0.4303,0.5349,0.0807,0.5349,0.4314,0.037748117,0.643825829,0.982930124,0.012773825,0.708128691,0.776718855,0.160246581,0.471451998,0.882672789,0.88258938,0.882978723
+443,0.1649,0.0736,0.1649,0.5034,0.215,0.0701,0.215,0.5516,0.5349,0.0721,0.5349,0.5286,0.090113364,0.691235483,0.944338918,0.058362749,0.803988457,0.69870472,0.151949063,0.701848865,0.931005317,0.931034483,0.931294326
+444,0.1649,0.0823,0.1649,0.5322,0.215,0.0938,0.215,0.5807,0.5349,0.0992,0.5349,0.6059,0.058706414,0.728465676,0.89212358,0.091590725,0.831256807,0.408814937,0.221775517,0.788343072,0.967858869,0.967844299,0.968085106
+445,0.1649,0.0944,0.1649,0.5403,0.215,0.1569,0.215,0.5564,0.5349,0.0835,0.5349,0.5827,0.104665354,0.751403451,0.815032542,0.209645316,0.791470885,0.291341901,0.176887646,0.826405048,0.990998067,0.991114872,0.991578014
+446,0.1649,0.3264,0.1649,0.4716,0.215,0.2171,0.215,0.4414,0.5349,0.1483,0.5349,0.5847,0.134735078,0.733063757,0.996589541,0.28378588,0.524960578,0.436626196,0.233327001,0.807368279,0.991723055,0.991749524,0.992021277
+447,0.1649,0.3717,0.1649,0.3179,0.215,0.6722,0.215,0.2005,0.5349,0.2132,0.5349,0.5537,0.23368378,0.4913477,1,0.584838092,0.310497671,1,0.35360831,0.779829025,0.968463026,0.968478951,0.968528369
+448,0.1649,0.3871,0.1649,0.1481,0.215,0.1198,0.215,0.201,0.5349,0.2665,0.5349,0.4275,0.193673953,0.276577056,1,0.138526395,0.359608442,1,0.321805239,0.748753369,0.923272112,0.923418659,0.923758865
+449,0.1649,0.265,0.1649,0.1209,0.215,0,0.215,0.2205,0.5349,0.2383,0.5349,0.3,0.128874421,0.364836365,1,0.015718777,0.300126106,1,0.392843694,0.63640517,0.889016433,0.8889359,0.889184397
+450,0.1649,0.1447,0.1649,0.1182,0.215,0,0.215,0.1106,0.5349,0.2359,0.5349,0.1539,0.148247615,0.360952109,0.782070756,0.003871796,0.122339971,0.919652998,0.395749539,0.481694907,0.874275012,0.874338904,0.874556738
+451,0.1649,0.0631,0.1649,0.0209,0.215,0.0081,0.215,0.0083,0.5349,0.2236,0.5349,0.0663,0.134407207,0.105237834,0.525878906,0.010777082,0.011056531,0.142133504,0.319491208,0.215907306,0.852042049,0.852126084,0.852393617
+452,0.1649,0.0738,0.1649,0,0.215,0.0061,0.215,0,0.5349,0.2269,0.5349,0,0.151918814,0,0.24867934,0.026775681,0,0.167484552,0.262148351,0,0.830715321,0.830759467,0.831117021
+453,0.1649,0.108,0.1649,0,0.215,0.0388,0.215,0,0.5349,0.2488,0.5349,0,0.219351977,0,0.086771652,0.062072091,0,0.497421801,0.302593887,0,0.824371677,0.824624498,0.824911348
+454,0.1649,0.154,0.1649,0,0.215,0.0381,0.215,0,0.5349,0.3402,0.5349,0,0.300874442,0,0.376271904,0.077332281,0,0.109956294,0.542058647,0,0.79760754,0.797546012,0.79787234
+455,0.1649,0.0907,0.1649,0,0.215,0.0832,0.215,0,0.5349,0.3945,0.5349,0,0.170339525,0,0.577430666,0.142371073,0,0.281535387,0.614292502,0,0.729942001,0.729849799,0.730053192
+456,0.1649,0.1312,0.1649,0,0.215,0.0742,0.215,0,0.5349,0.2117,0.5349,0,0.226485148,0,0.698540628,0.106692657,0,0.597258151,0.355144262,0,0.659195263,0.659191877,0.659574468
+457,0.1649,0.2031,0.1649,0,0.215,0.0598,0.215,0,0.5349,0.161,0.5349,0,0.203092501,0,1,0.115914375,0,0.858946085,0.352015317,0,0.604942001,0.604823355,0.605053192
+458,0.1649,0.0693,0.1649,0,0.215,0.0785,0.215,0,0.5349,0.1218,0.5349,0,0.073014692,0,0.553786516,0.092836194,0,0.573802888,0.315606326,0,0.565853069,0.565898033,0.566046099
+459,0.1649,0.0595,0.1649,0,0.215,0.0612,0.215,0,0.5349,0.1712,0.5349,0,0.048557453,0,0.182125241,0.061029151,0,0.097973824,0.356773734,0,0.541082649,0.540935054,0.541223404
+460,0.1649,0.1433,0.1649,0,0.215,0.1281,0.215,0,0.5349,0.1274,0.5349,0,0.081252858,0,0.084433675,0.155295983,0,0.00937932,0.261457473,0,0.525857902,0.525914957,0.52570922
+461,0.1649,0.1611,0.1649,0,0.215,0.1147,0.215,0,0.5349,0.1015,0.5349,0,0.056756094,0,0.155232966,0.160338864,0,0.056475923,0.23646307,0,0.525012083,0.524857203,0.525265957
+462,0.1649,0.1142,0.1649,0.0124,0.215,0.0704,0.215,0,0.5349,0.1133,0.5349,0.1712,0.039480805,0.034734808,0.344614059,0.101018563,0,0.220993727,0.273359031,0.333132505,0.543499275,0.543685213,0.543882979
+463,0.1649,0.0537,0.1649,0.0858,0.215,0.0337,0.215,0.0708,0.5349,0.0853,0.5349,0.0746,0.033044539,0.288021117,0.550334752,0.058161687,0.090551943,0.317995071,0.163404182,0.64150548,0.588629773,0.588745505,0.588652482
+464,0.1649,0.0204,0.1649,0.1993,0.215,0.0069,0.215,0.1866,0.5349,0.0704,0.5349,0.2154,0.010854188,0.448916018,0.546161592,0.029836489,0.332579553,0.352932483,0.141204849,0.82897234,0.643426776,0.643537127,0.643617021
+465,0.1649,0.012,0.1649,0.3012,0.215,0.0129,0.215,0.3088,0.5349,0.0809,0.5349,0.3946,0.004625168,0.554099262,0.459402621,0.019468248,0.387813836,0.457070947,0.147696659,0.880127192,0.675326245,0.675481278,0.675531915
+466,0.1649,0.0131,0.1649,0.4181,0.215,0,0.215,0.41,0.5349,0.0827,0.5349,0.5318,0.001710013,0.669843435,0.331966072,0.002571994,0.513942123,0.341971219,0.179438919,0.91497761,0.697498792,0.697694098,0.697695036
+467,0.1649,0.0392,0.1649,0.5171,0.215,0,0.215,0.4767,0.5349,0.0657,0.5349,0.5926,0.009030138,0.758770585,0.416693121,0.006532928,0.623589337,0.5023458,0.093943827,0.908989847,0.719188014,0.719272266,0.719414894
+468,0.1649,0.0337,0.1649,0.5313,0.215,0,0.215,0.5248,0.5349,0.1638,0.5349,0.5996,0.013189962,0.790840447,0.331713498,0.003781874,0.71173346,0.4322474,0.266508639,0.903005779,0.734171097,0.734292363,0.734485816
+469,0.1649,0.0232,0.1649,0.5773,0.215,0.0038,0.215,0.5645,0.5349,0.1372,0.5349,0.604,0.024710197,0.82169652,0.148988813,0.005695872,0.800025225,0.254680365,0.177739739,0.881454289,0.743233446,0.743389042,0.743351064
+470,0.1649,0.0262,0.1649,0.5196,0.215,0.0344,0.215,0.5172,0.5349,0.2062,0.5349,0.5363,0.046252828,0.744971216,0.400914371,0.026595816,0.767799616,0.131301835,0.240302816,0.755365968,0.756343644,0.756293632,0.756648936
+471,0.1649,0.0394,0.1649,0.4946,0.215,0.042,0.215,0.5145,0.5349,0.293,0.5349,0.4946,0.048311885,0.759233892,0.346616268,0.023692181,0.753026187,0.060074352,0.398055136,0.758140385,0.76099565,0.760947747,0.761524823
+472,0.1649,0.0395,0.1649,0.4443,0.215,0.0601,0.215,0.4684,0.5349,0.3,0.5349,0.4206,0.052704442,0.769900858,0.04904097,0.048752945,0.782815218,0.113629326,0.276938498,0.67558521,0.766855969,0.766871166,0.767287234
+473,0.1649,0.0734,0.1649,0.3279,0.215,0.0188,0.215,0.3687,0.5349,0.3075,0.5349,0.3049,0.071964227,0.745966792,0.101872809,0.03249548,0.766022027,0.113960475,0.386607349,0.673641264,0.772897535,0.772794584,0.773049645
+474,0.1649,0.0658,0.1649,0.1745,0.215,0.0076,0.215,0.2197,0.5349,0.268,0.5349,0.1543,0.08904288,0.641563058,0.160282776,0.035651691,0.655197084,0.033726703,0.300646275,0.584378064,0.770722571,0.770679078,0.770833333
+475,0.1649,0.0757,0.1649,0.071,0.215,0,0.215,0.0928,0.5349,0.2591,0.5349,0.0691,0.144742221,0.330304802,0.192567304,0.005692022,0.279427737,0.062466234,0.317055255,0.406945348,0.748550024,0.748677808,0.749113475
+476,0.1649,0.0515,0.1649,0.0002,0.215,0.0888,0.215,0,0.5349,0.1143,0.5349,0.0478,0.078745119,0,0.225619927,0.109765127,0,0.179941356,0.209791765,0,0.721906718,0.721810874,0.722074468
+477,0.1649,0.0704,0.1649,0,0.215,0.14,0.215,0,0.5349,0.1777,0.5349,0,0.173726961,0,0.187185794,0.140384704,0,0.267715991,0.318446577,0,0.717435959,0.71757986,0.717641844
+478,0.1649,0.0026,0.1649,0,0.215,0,0.215,0,0.5349,0.0053,0.5349,0,0.001307457,0,0.172808588,0.000122102,0,0.264530391,0.007717164,0,0.692544708,0.692616882,0.692819149
+479,0.1649,0.0211,0.1649,0,0.215,0,0.215,0,0.5349,0.1874,0.5349,0,0.082256749,0,0.071840972,0.029596476,0,0.12061806,0.388096631,0,0.632189464,0.632113391,0.632535461
+480,0.1649,0.0279,0.1649,0,0.215,0.0349,0.215,0,0.5349,0.2378,0.5349,0,0.074167073,0,0.126893818,0.048897166,0,0.179285884,0.479969114,0,0.56863219,0.568648191,0.568705674
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_non_colocated/Minimum_capacity_requirement.csv b/test/LoadResourceData/test_gen_non_colocated/Minimum_capacity_requirement.csv
new file mode 100644
index 0000000000..858294b6fc
--- /dev/null
+++ b/test/LoadResourceData/test_gen_non_colocated/Minimum_capacity_requirement.csv
@@ -0,0 +1,4 @@
+MinCapReqConstraint,Constraint_Description,Min_MW
+1,ME_Wind,8000
+2,ME_OSW,5000
+3,MA_Solar,3200
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_non_colocated/Network.csv b/test/LoadResourceData/test_gen_non_colocated/Network.csv
new file mode 100644
index 0000000000..a26c95a6be
--- /dev/null
+++ b/test/LoadResourceData/test_gen_non_colocated/Network.csv
@@ -0,0 +1,4 @@
+,Network_zones,Network_Lines,z1,z2,z3,Line_Max_Flow_MW,transmission_path_name,distance_mile,Line_Loss_Percentage,Line_Max_Reinforcement_MW,Line_Reinforcement_Cost_per_MWyr,DerateCapRes_1,CapRes_1,CapRes_Excl_1
+NENGREST,z1,1,1,-1,0,2950,NENGREST_to_NENG_CT,123.0584,0.012305837,2950,12060,0.95,0,0
+NENG_CT,z2,2,1,0,-1,2000,NENGREST_to_NENG_ME,196.5385,0.019653847,2000,19261,0.95,0,0
+NENG_ME,z3,,,,,,,,,,,,,
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_non_colocated/Period_map.csv b/test/LoadResourceData/test_gen_non_colocated/Period_map.csv
new file mode 100644
index 0000000000..c11379f0a7
--- /dev/null
+++ b/test/LoadResourceData/test_gen_non_colocated/Period_map.csv
@@ -0,0 +1,92 @@
+Period_Index,Rep_Period,Rep_Period_Index
+1,4,1
+2,4,1
+3,4,1
+4,4,1
+5,4,1
+6,4,1
+7,4,1
+8,4,1
+9,4,1
+10,4,1
+11,4,1
+12,4,1
+13,4,1
+14,4,1
+15,4,1
+16,4,1
+17,4,1
+18,4,1
+19,4,1
+20,4,1
+21,4,1
+22,4,1
+23,24,2
+24,24,2
+25,24,2
+26,24,2
+27,24,2
+28,24,2
+29,24,2
+30,24,2
+31,24,2
+32,24,2
+33,24,2
+34,24,2
+35,24,2
+36,24,2
+37,24,2
+38,24,2
+39,24,2
+40,24,2
+41,24,2
+42,24,2
+43,24,2
+44,24,2
+45,24,2
+46,24,2
+47,24,2
+48,24,2
+49,24,2
+50,24,2
+51,24,2
+52,24,2
+53,51,3
+54,51,3
+55,51,3
+56,51,3
+57,51,3
+58,51,3
+59,51,3
+60,51,3
+61,51,3
+62,51,3
+63,51,3
+64,51,3
+65,51,3
+66,51,3
+67,51,3
+68,51,3
+69,51,3
+70,77,4
+71,77,4
+72,77,4
+73,77,4
+74,77,4
+75,77,4
+76,77,4
+77,77,4
+78,77,4
+79,77,4
+80,77,4
+81,77,4
+82,77,4
+83,77,4
+84,77,4
+85,77,4
+86,77,4
+87,77,4
+88,77,4
+89,77,4
+90,77,4
+91,69,5
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_non_colocated/Reserves.csv b/test/LoadResourceData/test_gen_non_colocated/Reserves.csv
new file mode 100644
index 0000000000..d310c45ffb
--- /dev/null
+++ b/test/LoadResourceData/test_gen_non_colocated/Reserves.csv
@@ -0,0 +1,2 @@
+Reg_Req_Percent_Demand,Reg_Req_Percent_VRE,Rsv_Req_Percent_Demand,Rsv_Req_Percent_VRE,Unmet_Rsv_Penalty_Dollar_per_MW,Dynamic_Contingency,Static_Contingency_MW
+0.01,0.0032,0.033,0.0795,1000,0,0
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_non_colocated/Resources/Electrolyzer.csv b/test/LoadResourceData/test_gen_non_colocated/Resources/Electrolyzer.csv
new file mode 100644
index 0000000000..0ac8f3f877
--- /dev/null
+++ b/test/LoadResourceData/test_gen_non_colocated/Resources/Electrolyzer.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Hydrogen_MWh_Per_Tonne,Electrolyzer_Min_Kt,Hydrogen_Price_Per_Tonne,Qualified_Hydrogen_Supply,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_Per_MWyr,Fixed_Om_Cost_Per_MWyr,Heat_Rate_Mmbtu_Per_MWh,Fuel,Min_Power,Ramp_Up_Percentage,Ramp_Dn_Percentage,Region,Cluster,Resource_Type
+NENG_ME_electrolyzer,1,55,1000,1000,0,1,1,0,-1,-1,125000,15000,0,None,0,1,1,NENG_ME,0,hydrogen_electrolyzer
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_non_colocated/Resources/Flex_demand.csv b/test/LoadResourceData/test_gen_non_colocated/Resources/Flex_demand.csv
new file mode 100644
index 0000000000..242fbc6dad
--- /dev/null
+++ b/test/LoadResourceData/test_gen_non_colocated/Resources/Flex_demand.csv
@@ -0,0 +1,4 @@
+Resource,Zone,MGA,Resource_Type,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Existing_Cap_MW,Cap_Size,Min_Cap_MW,Max_Cap_MW,New_Build,Can_Retire,Inv_Cost_Per_MWyr,Fixed_Om_Cost_Per_MWyr,Var_Om_Cost_Per_MWh,Var_Om_Cost_Per_MWh_In,Heat_Rate_Mmbtu_Per_MWh,Region,Cluster
+NENGREST_heat_load_shifting_1,1,1,heat_load_shifting,0,4,1,165.52,0,0,0,0,0,0,0,0,0,0,NENGREST,1
+NENG_CT_heat_load_shifting_1,2,1,heat_load_shifting,0,4,1,47.27,0,0,0,0,0,0,0,0,0,0,NENG_CT,1
+NENG_ME_heat_load_shifting_1,3,1,heat_load_shifting,0,4,1,22.56,0,0,0,0,0,0,0,0,0,0,NENG_ME,1
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_non_colocated/Resources/Hydro.csv b/test/LoadResourceData/test_gen_non_colocated/Resources/Hydro.csv
new file mode 100644
index 0000000000..03fa95d0ef
--- /dev/null
+++ b/test/LoadResourceData/test_gen_non_colocated/Resources/Hydro.csv
@@ -0,0 +1,4 @@
+Resource,Zone,Hydro_Energy_To_Power_Ratio,Min_Power,Ramp_Up_Percentage,Ramp_Dn_Percentage,Mga,Resource_Type,Must_Run,LDS,Existing_Cap_MW,Cap_Size,New_Build,Can_Retire,Min_Cap_MW,Max_Cap_MW,Inv_Cost_Per_MWyr,Fixed_Om_Cost_Per_MWyr,Var_Om_Cost_Per_MWh,Heat_Rate_Mmbtu_Per_MWh,Fuel,Reg_Cost,Rsv_Cost,Reg_Max,Rsv_Max,Region,Cluster
+NENGREST_conventional_hydroelectric_1,1,1,0.117,0.083,0.083,1,conventional_hydroelectric,0,1,662.983,11.24,0,0,0,0,0,46475,0,9.12,None,0,0,0.006916667,0.013833333,NENGREST,1
+NENG_CT_conventional_hydroelectric_1,2,1,0.18,0.083,0.083,1,conventional_hydroelectric,0,1,67.7,13.54,0,0,0,0,0,46475,0,9.12,None,0,0,0.006916667,0.013833333,NENG_CT,1
+NENG_ME_conventional_hydroelectric_1,3,1,0.402,0.083,0.083,1,conventional_hydroelectric,0,1,327.81,7.8,0,0,0,0,0,46475,0,9.12,None,0,0,0.006916667,0.013833333,NENG_ME,1
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_non_colocated/Resources/Must_run.csv b/test/LoadResourceData/test_gen_non_colocated/Resources/Must_run.csv
new file mode 100644
index 0000000000..004fe5b5ad
--- /dev/null
+++ b/test/LoadResourceData/test_gen_non_colocated/Resources/Must_run.csv
@@ -0,0 +1,4 @@
+Resource,Zone,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_Per_MWyr,Fixed_Om_Cost_Per_MWyr,Inv_Cost_Per_MWhyr,Fixed_Om_Cost_Per_MWhyr,Inv_Cost_Charge_Per_MWyr,Fixed_Om_Cost_Charge_Per_MWyr,Var_Om_Cost_Per_MWh,Var_Om_Cost_Per_MWh_In,Start_Cost_Per_MW,Start_Fuel_Mmbtu_Per_MW,Heat_Rate_Mmbtu_Per_MWh,Fuel,Min_Power,Self_Disch,Eff_Up,Eff_Down,Hydro_Energy_To_Power_Ratio,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Ramp_Up_Percentage,Ramp_Dn_Percentage,Up_Time,Down_Time,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,Resource_Type,MGA,Region,Cluster
+NENGREST_small_hydroelectric_1,1,186.355,0,0,0.79,0,0,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.117,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,small_hydroelectric,1,NENGREST,1
+NENG_CT_small_hydroelectric_1,2,18.711,0,0,0.57,0,0,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.18,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,small_hydroelectric,1,NENG_CT,1
+NENG_ME_small_hydroelectric_1,3,195.266,0,0,1.1,0,0,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.192,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,small_hydroelectric,1,NENG_ME,1
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_non_colocated/Resources/Resource_capacity_reserve_margin.csv b/test/LoadResourceData/test_gen_non_colocated/Resources/Resource_capacity_reserve_margin.csv
new file mode 100644
index 0000000000..09f1513480
--- /dev/null
+++ b/test/LoadResourceData/test_gen_non_colocated/Resources/Resource_capacity_reserve_margin.csv
@@ -0,0 +1,56 @@
+Resource,Derating_Factor
+NENGREST_conventional_hydroelectric_1,0.8
+NENG_CT_conventional_hydroelectric_1,0.8
+NENG_ME_conventional_hydroelectric_1,0.8
+NENGREST_heat_load_shifting_1,0.95
+NENG_CT_heat_load_shifting_1,0.95
+NENG_ME_heat_load_shifting_1,0.95
+NENGREST_hydroelectric_pumped_storage_1,0.95
+NENG_CT_hydroelectric_pumped_storage_1,0.95
+NENGREST_battery_mid_0,0.95
+NENG_CT_battery_mid_0,0.95
+NENG_ME_battery_mid_0,0.95
+NENGREST_biomass_1,0.93
+NENGREST_natural_gas_fired_combined_cycle_1,0.93
+NENGREST_natural_gas_fired_combined_cycle_2,0.93
+NENGREST_natural_gas_fired_combustion_turbine_1,0.93
+NENGREST_natural_gas_fired_combustion_turbine_2,0.93
+NENGREST_natural_gas_steam_turbine_1,0.93
+NENGREST_nuclear_1,0.93
+NENG_CT_biomass_1,0.93
+NENG_CT_natural_gas_fired_combined_cycle_1,0.93
+NENG_CT_natural_gas_fired_combined_cycle_2,0.93
+NENG_CT_natural_gas_fired_combustion_turbine_1,0.93
+NENG_CT_natural_gas_fired_combustion_turbine_2,0.93
+NENG_CT_nuclear_1,0.93
+NENG_ME_biomass_1,0.93
+NENG_ME_natural_gas_fired_combined_cycle_1,0.93
+NENG_ME_natural_gas_fired_combined_cycle_2,0.93
+NENG_ME_natural_gas_fired_combustion_turbine_1,0.93
+NENGREST_naturalgas_ccccsavgcf_mid_0,0.93
+NENGREST_naturalgas_ccavgcf_mid_0,0.93
+NENGREST_naturalgas_ctavgcf_mid_0,0.93
+NENGREST_naturalgas_ccs100_mid_0,0.93
+NENG_CT_naturalgas_ccccsavgcf_mid_0,0.93
+NENG_CT_naturalgas_ccavgcf_mid_0,0.93
+NENG_CT_naturalgas_ctavgcf_mid_0,0.93
+NENG_CT_naturalgas_ccs100_mid_0,0.93
+NENG_ME_naturalgas_ccccsavgcf_mid_0,0.93
+NENG_ME_naturalgas_ccavgcf_mid_0,0.93
+NENG_ME_naturalgas_ctavgcf_mid_0,0.93
+NENG_ME_naturalgas_ccs100_mid_0,0.93
+NENGREST_offshore_wind_turbine_1,0.8
+NENGREST_onshore_wind_turbine_1,0.8
+NENGREST_solar_photovoltaic_1,0.8
+NENG_CT_onshore_wind_turbine_1,0.8
+NENG_CT_solar_photovoltaic_1,0.8
+NENG_ME_onshore_wind_turbine_1,0.8
+NENG_ME_solar_photovoltaic_1,0.8
+NENGREST_landbasedwind_ltrg1_mid_130_1,0.8
+NENGREST_utilitypv_losangeles_mid_80_0_2_1,0.8
+NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,0.8
+NENG_CT_landbasedwind_ltrg1_mid_110_1,0.8
+NENG_CT_utilitypv_losangeles_mid_80_0_2_1,0.8
+NENG_CT_offshorewind_otrg3_mid_fixed_1_176_77_1,0.8
+NENG_ME_landbasedwind_ltrg1_mid_110_1,0.8
+NENG_ME_utilitypv_losangeles_mid_100_0_2_1,0.8
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_non_colocated/Resources/Resource_energy_share_requirement.csv b/test/LoadResourceData/test_gen_non_colocated/Resources/Resource_energy_share_requirement.csv
new file mode 100644
index 0000000000..436ad020bc
--- /dev/null
+++ b/test/LoadResourceData/test_gen_non_colocated/Resources/Resource_energy_share_requirement.csv
@@ -0,0 +1,28 @@
+Resource,ESR_1,ESR_2
+NENGREST_conventional_hydroelectric_1,0,1
+NENG_CT_conventional_hydroelectric_1,0,1
+NENG_ME_conventional_hydroelectric_1,0,1
+NENGREST_small_hydroelectric_1,1,1
+NENG_CT_small_hydroelectric_1,1,1
+NENG_ME_small_hydroelectric_1,1,1
+NENGREST_biomass_1,1,1
+NENGREST_nuclear_1,0,1
+NENG_CT_biomass_1,1,1
+NENG_CT_nuclear_1,0,1
+NENG_ME_biomass_1,1,1
+NENGREST_offshore_wind_turbine_1,1,1
+NENGREST_onshore_wind_turbine_1,1,1
+NENGREST_solar_photovoltaic_1,1,1
+NENG_CT_onshore_wind_turbine_1,1,1
+NENG_CT_solar_photovoltaic_1,1,1
+NENG_ME_onshore_wind_turbine_1,1,1
+NENG_ME_solar_photovoltaic_1,1,1
+NENGREST_landbasedwind_ltrg1_mid_130_1,1,1
+NENGREST_utilitypv_losangeles_mid_80_0_2_1,1,1
+NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,1,1
+NENG_CT_landbasedwind_ltrg1_mid_110_1,1,1
+NENG_CT_utilitypv_losangeles_mid_80_0_2_1,1,1
+NENG_CT_offshorewind_otrg3_mid_fixed_1_176_77_1,1,1
+NENG_ME_landbasedwind_ltrg1_mid_110_1,1,1
+NENG_ME_utilitypv_losangeles_mid_100_0_2_1,1,1
+NENG_ME_electrolyzer,0,1
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_non_colocated/Resources/Resource_minimum_capacity_requirement.csv b/test/LoadResourceData/test_gen_non_colocated/Resources/Resource_minimum_capacity_requirement.csv
new file mode 100644
index 0000000000..12450e7774
--- /dev/null
+++ b/test/LoadResourceData/test_gen_non_colocated/Resources/Resource_minimum_capacity_requirement.csv
@@ -0,0 +1,9 @@
+Resource,Min_Cap_1,Min_Cap_2,Min_Cap_3
+NENGREST_offshore_wind_turbine_1,1,1,0
+NENGREST_onshore_wind_turbine_1,1,0,0
+NENGREST_solar_photovoltaic_1,0,0,1
+NENG_ME_onshore_wind_turbine_1,1,0,0
+NENGREST_landbasedwind_ltrg1_mid_130_1,1,0,0
+NENGREST_utilitypv_losangeles_mid_80_0_2_1,0,0,1
+NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,1,1,0
+NENG_ME_landbasedwind_ltrg1_mid_110_1,1,0,0
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_non_colocated/Resources/Resource_multistage_data.csv b/test/LoadResourceData/test_gen_non_colocated/Resources/Resource_multistage_data.csv
new file mode 100644
index 0000000000..eedfbedfdb
--- /dev/null
+++ b/test/LoadResourceData/test_gen_non_colocated/Resources/Resource_multistage_data.csv
@@ -0,0 +1,63 @@
+Resource,WACC,Capital_Recovery_Period,Lifetime
+NENGREST_conventional_hydroelectric_1,0.039,20,20
+NENG_CT_conventional_hydroelectric_1,0.017,20,20
+NENG_ME_conventional_hydroelectric_1,0.024,20,20
+NENGREST_biomass_1,0.027,20,20
+NENGREST_natural_gas_fired_combined_cycle_1,0.0195,20,20
+NENGREST_natural_gas_fired_combined_cycle_2,0.0166,20,20
+NENGREST_natural_gas_fired_combustion_turbine_1,0.0137,20,20
+NENGREST_natural_gas_fired_combustion_turbine_2,0.0108,20,20
+NENGREST_natural_gas_steam_turbine_1,0.0079,20,20
+NENGREST_nuclear_1,0.005,20,20
+NENG_CT_biomass_1,0.0021,20,20
+NENG_CT_natural_gas_fired_combined_cycle_1,0.039,20,20
+NENG_CT_natural_gas_fired_combined_cycle_2,0.017,20,20
+NENG_CT_natural_gas_fired_combustion_turbine_1,0.024,20,20
+NENG_CT_natural_gas_fired_combustion_turbine_2,0.027,20,20
+NENG_CT_nuclear_1,0.0195,20,20
+NENG_ME_biomass_1,0.0166,20,20
+NENG_ME_natural_gas_fired_combined_cycle_1,0.0137,20,20
+NENG_ME_natural_gas_fired_combined_cycle_2,0.0108,20,20
+NENG_ME_natural_gas_fired_combustion_turbine_1,0.0079,20,20
+NENGREST_naturalgas_ccccsavgcf_mid_0,0.005,20,20
+NENGREST_naturalgas_ccavgcf_mid_0,0.0021,20,20
+NENGREST_naturalgas_ctavgcf_mid_0,0.039,20,20
+NENGREST_naturalgas_ccs100_mid_0,0.017,20,20
+NENG_CT_naturalgas_ccccsavgcf_mid_0,0.024,20,20
+NENG_CT_naturalgas_ccavgcf_mid_0,0.027,20,20
+NENG_CT_naturalgas_ctavgcf_mid_0,0.0195,20,20
+NENG_CT_naturalgas_ccs100_mid_0,0.0166,20,20
+NENG_ME_naturalgas_ccccsavgcf_mid_0,0.0137,20,20
+NENG_ME_naturalgas_ccavgcf_mid_0,0.0108,20,20
+NENG_ME_naturalgas_ctavgcf_mid_0,0.0079,20,20
+NENG_ME_naturalgas_ccs100_mid_0,0.005,20,20
+NENGREST_offshore_wind_turbine_1,0.0021,20,20
+NENGREST_onshore_wind_turbine_1,0.0021,20,20
+NENGREST_solar_photovoltaic_1,0.039,20,20
+NENG_CT_onshore_wind_turbine_1,0.017,20,20
+NENG_CT_solar_photovoltaic_1,0.024,20,20
+NENG_ME_onshore_wind_turbine_1,0.027,20,20
+NENG_ME_solar_photovoltaic_1,0.0195,20,20
+NENGREST_landbasedwind_ltrg1_mid_130_1,0.0166,20,20
+NENGREST_utilitypv_losangeles_mid_80_0_2_1,0.0137,20,20
+NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,0.0108,20,20
+NENG_CT_landbasedwind_ltrg1_mid_110_1,0.0079,20,20
+NENG_CT_utilitypv_losangeles_mid_80_0_2_1,0.005,20,20
+NENG_CT_offshorewind_otrg3_mid_fixed_1_176_77_1,0.0021,20,20
+NENG_ME_landbasedwind_ltrg1_mid_110_1,0.039,20,20
+NENG_ME_utilitypv_losangeles_mid_100_0_2_1,0.017,20,20
+NENGREST_hydroelectric_pumped_storage_1,0.024,20,20
+NENG_CT_hydroelectric_pumped_storage_1,0.027,20,20
+NENGREST_battery_mid_0,0.0195,20,20
+NENG_CT_battery_mid_0,0.0166,20,20
+NENG_ME_battery_mid_0,0.0137,20,20
+NENGREST_hydrogen_storage_1,0.0108,20,20
+NENG_CT_hydrogen_storage_1,0.0079,20,20
+NENG_ME_hydrogen_storage_1,0.005,20,20
+NENGREST_heat_load_shifting_1,0.0021,20,20
+NENG_CT_heat_load_shifting_1,0.039,20,20
+NENG_ME_heat_load_shifting_1,0.017,20,20
+NENGREST_small_hydroelectric_1,0.024,20,20
+NENG_CT_small_hydroelectric_1,0.027,20,20
+NENG_ME_small_hydroelectric_1,0.0195,20,20
+NENG_ME_electrolyzer,0.0195,20,20
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_non_colocated/Resources/Storage.csv b/test/LoadResourceData/test_gen_non_colocated/Resources/Storage.csv
new file mode 100644
index 0000000000..b8a71f2bd2
--- /dev/null
+++ b/test/LoadResourceData/test_gen_non_colocated/Resources/Storage.csv
@@ -0,0 +1,9 @@
+Resource,Zone,Model,LDS,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Cap_Size,Min_Cap_MW,Max_Cap_MW,Min_Cap_MWh,Max_Cap_MWh,Inv_Cost_Per_MWyr,Fixed_Om_Cost_Per_MWyr,Inv_Cost_Per_MWhyr,Fixed_Om_Cost_Per_MWhyr,Var_Om_Cost_Per_MWh,Reg_Cost,Rsv_Cost,Reg_Max,Rsv_Max,Region,Cluster,Resource_Type,Mga
+NENGREST_hydroelectric_pumped_storage_1,1,1,0,0,0.866,0.866,0,200,0,0,1768.002,280635.2381,294.67,0,0,0,-1,0,40113,0,0,0,0,0,0.083333333,0.166666667,NENGREST,1,hydroelectric_pumped_storage,0
+NENG_CT_hydroelectric_pumped_storage_1,2,1,0,0,0.866,0.866,0,200,0,0,30.999,4920.47619,10.33,0,0,0,-1,0,40113,0,0,0,0,0,0.083333333,0.166666667,NENG_CT,1,hydroelectric_pumped_storage,0
+NENGREST_battery_mid_0,1,1,0,0,0.92,0.92,1,10,1,1,0,0,1,0,-1,0,-1,19584,4895,22494,5622,0.15,0,0,0.083333333,0.166666667,NENGREST,0,battery_mid,0
+NENG_CT_battery_mid_0,2,1,0,0,0.92,0.92,1,10,1,1,0,0,1,0,-1,0,-1,19584,4895,22494,5622,0.15,0,0,0.083333333,0.166666667,NENG_CT,0,battery_mid,0
+NENG_ME_battery_mid_0,3,1,0,0,0.92,0.92,1,10,1,1,0,0,1,0,-1,0,-1,19584,4895,22494,5622,0.15,0,0,0.083333333,0.166666667,NENG_ME,0,battery_mid,0
+NENGREST_hydrogen_storage_1,1,1,1,0,0.67,0.4,48,2000,1,1,0,0,1,0,-1,0,-1,39761,5000,404,0,4.3,0,0,0,0,NENGREST,1,hydrogen_storage,0
+NENG_CT_hydrogen_storage_1,2,1,1,0,0.67,0.4,48,2000,1,1,0,0,1,0,-1,0,-1,49333,5000,404,0,4.3,0,0,0,0,NENG_CT,1,hydrogen_storage,0
+NENG_ME_hydrogen_storage_1,3,1,1,0,0.67,0.4,48,2000,1,1,0,0,1,0,-1,0,-1,38489,5000,404,0,4.3,0,0,0,0,NENG_ME,1,hydrogen_storage,0
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_non_colocated/Resources/Thermal.csv b/test/LoadResourceData/test_gen_non_colocated/Resources/Thermal.csv
new file mode 100644
index 0000000000..2a06d41360
--- /dev/null
+++ b/test/LoadResourceData/test_gen_non_colocated/Resources/Thermal.csv
@@ -0,0 +1,30 @@
+Resource,Zone,Model,MGA,Resource_Type,Min_Power,Ramp_Up_Percentage,Ramp_Dn_Percentage,Existing_Cap_MW,Cap_Size,Min_Cap_MW,Max_Cap_MW,New_Build,Can_Retire,Fuel,Inv_Cost_Per_MWyr,Fixed_Om_Cost_Per_MWyr,Var_Om_Cost_Per_MWh,Up_Time,Down_Time,Start_Cost_Per_MW,Start_Fuel_Mmbtu_Per_MW,Heat_Rate_Mmbtu_Per_MWh,Reg_Cost,Rsv_Cost,Reg_Max,Rsv_Max,Region,Cluster,PWFU_Fuel_Usage_Zero_Load_MMBTU_per_h,PWFU_Heat_Rate_MMBTU_per_MWh_1,PWFU_Heat_Rate_MMBTU_per_MWh_2,PWFU_Load_Point_MW_1,PWFU_Load_Point_MW_2,CO2_Capture_Fraction,CO2_Capture_Fraction_Startup,CCS_Disposal_Cost_per_Metric_Ton,Biomass
+NENGREST_biomass_1,1,1,1,biomass,0.45,1,1,106.062,3.21,0,0,0,0,None,0,122976,5.08,0,0,0,0,14.58,0,0,0.083333333,0.166666667,NENGREST,1,0,0,0,0,0,0,0,0,0
+NENGREST_natural_gas_fired_combined_cycle_1,1,1,1,natural_gas_fired_combined_cycle,0.468,0.64,0.64,7077.3,471.82,0,0,0,1,NENGREST_NG,0,10287,3.55,6,6,91,2,7.43,0,0,0.053333333,0.106666667,NENGREST,1,400,6,7.2,160,250,0.9,0.6,20,0
+NENGREST_natural_gas_fired_combined_cycle_2,1,1,1,natural_gas_fired_combined_cycle,0.507,0.64,0.64,2684.803,244.07,0,0,0,1,NENGREST_NG,0,16291,4.5,6,6,91,2,8.29,0,0,0.053333333,0.106666667,NENGREST,2,0,0,0,0,0,0,0,0,0
+NENGREST_natural_gas_fired_combustion_turbine_1,1,1,1,natural_gas_fired_combustion_turbine,0.456,3.78,3.78,302.701,43.24,0,0,0,1,NENGREST_NG,0,12080,4.6,1,1,118,3.5,10.13,0,0,0.315,0.63,NENGREST,1,0,0,0,0,0,0,0,0,0
+NENGREST_natural_gas_fired_combustion_turbine_2,1,1,1,natural_gas_fired_combustion_turbine,0.488,3.78,3.78,62.704,7.84,0,0,0,1,NENGREST_NG,0,13991,4.6,1,1,118,3.5,4.74,0,0,0.315,0.63,NENGREST,2,0,0,0,0,0,0,0,0,0
+NENGREST_natural_gas_steam_turbine_1,1,1,1,natural_gas_steam_turbine,0,0,0,0.6,0.6,0,0,0,1,NENGREST_NG,0,50678,1.04,0,0,86,13.7,0,0,0,0,0,NENGREST,1,0,0,0,0,0,0,0,0,0
+NENGREST_nuclear_1,1,1,1,nuclear,0.5,0.25,0.25,1242,1242,0,0,0,1,new_england_uranium,0,271818,2.32,24,24,245,0,10.46,0,0,0.020833333,0.041666667,NENGREST,1,0,0,0,0,0,0,0,0,0
+NENG_CT_biomass_1,2,1,1,biomass,0.348,1,1,27.248,3.41,0,0,0,0,Biomass,0,122976,5.37,0,0,0,0,15.33,0,0,0.083333333,0.166666667,NENG_CT,1,0,0,0,0,0,0.9,0.6,20,1
+NENG_CT_natural_gas_fired_combined_cycle_1,2,1,1,natural_gas_fired_combined_cycle,0.338,0.64,0.64,3488.704,436.09,0,0,0,1,NENG_CT_NG,0,9698,3.57,6,6,91,2,7.12,0,0,0.053333333,0.106666667,NENG_CT,1,0,0,0,0,0,0,0,0,0
+NENG_CT_natural_gas_fired_combined_cycle_2,2,1,1,natural_gas_fired_combined_cycle,0.466,0.64,0.64,35.2,17.6,0,0,0,1,NENG_CT_NG,0,16291,4.5,6,6,91,2,10.77,0,0,0.053333333,0.106666667,NENG_CT,2,0,0,0,0,0,0,0,0,0
+NENG_CT_natural_gas_fired_combustion_turbine_1,2,1,1,natural_gas_fired_combustion_turbine,0.124,3.78,3.78,434,54.25,0,0,0,1,NENG_CT_NG,0,10609,4.6,1,1,118,3.5,11.06,0,0,0.315,0.63,NENG_CT,1,0,0,0,0,0,0,0,0,0
+NENG_CT_natural_gas_fired_combustion_turbine_2,2,1,1,natural_gas_fired_combustion_turbine,0.476,3.78,3.78,124.9,24.98,0,0,0,1,NENG_CT_NG,0,13991,4.6,1,1,118,3.5,8.35,0,0,0.315,0.63,NENG_CT,2,0,0,0,0,0,0,0,0,0
+NENG_CT_nuclear_1,2,1,1,nuclear,0.5,0.25,0.25,2162.9,1081.45,0,0,0,1,new_england_uranium,0,190920,2.32,24,24,245,0,10.46,0,0,0.020833333,0.041666667,NENG_CT,1,0,0,0,0,0,0,0,0,0
+NENG_ME_biomass_1,3,1,1,biomass,0.404,1,1,24.95,2.5,0,0,0,0,None,0,122976,4.85,0,0,0,0,13.84,0,0,0.083333333,0.166666667,NENG_ME,1,0,0,0,0,0,0,0,0,0
+NENG_ME_natural_gas_fired_combined_cycle_1,3,1,1,natural_gas_fired_combined_cycle,0.474,0.64,0.64,274.5,137.25,0,0,0,1,NENG_ME_NG,0,16291,4.5,6,6,91,2,12.62,0,0,0.053333333,0.106666667,NENG_ME,1,0,0,0,0,0,0,0,0,0
+NENG_ME_natural_gas_fired_combined_cycle_2,3,1,1,natural_gas_fired_combined_cycle,0.386,0.64,0.64,1114.1,557.05,0,0,0,1,NENG_ME_NG,0,9668,3.57,6,6,91,2,7.65,0,0,0.053333333,0.106666667,NENG_ME,2,0,0,0,0,0,0,0,0,0
+NENG_ME_natural_gas_fired_combustion_turbine_1,3,1,1,natural_gas_fired_combustion_turbine,0.697,3.78,3.78,163.5,54.5,0,0,0,1,NENG_ME_NG,0,11540,4.6,1,1,118,3.5,4.75,0,0,0.315,0.63,NENG_ME,1,0,0,0,0,0,0,0,0,0
+NENGREST_naturalgas_ccccsavgcf_mid_0,1,1,1,naturalgas_ccccsavgcf_mid,0.6,0.64,0.64,0,500,0,-1,0,1,NENGREST_NG_ccs90,229388,27483,5.82,6,6,103,0,7.52,0,0,0.053333333,0.106666667,NENGREST,0,0,0,0,0,0,0,0,0,0
+NENGREST_naturalgas_ccavgcf_mid_0,1,1,1,naturalgas_ccavgcf_mid,0.2,0.64,0.64,0,500,0,-1,1,1,NENGREST_NG,110025,12441,1.61,6,6,103,2,6.27,0,0,0.053333333,0.106666667,NENGREST,0,0,0,0,0,0,0,0,0,0
+NENGREST_naturalgas_ctavgcf_mid_0,1,1,1,naturalgas_ctavgcf_mid,0.3,3.78,3.78,0,100,0,-1,1,1,NENGREST_NG,81998,6960,4.49,1,1,134,3.5,9.9,0,0,0.315,0.63,NENGREST,0,0,0,0,0,0,0,0,0,0
+NENGREST_naturalgas_ccs100_mid_0,1,1,1,naturalgas_ccs100_mid,0.6,0.64,0.64,0,500,0,-1,0,1,NENGREST_NG_ccs100,239841,37153,6.26,6,6,103,0,7.89,0,0,0.053333333,0.106666667,NENGREST,0,0,0,0,0,0,0,0,0,0
+NENG_CT_naturalgas_ccccsavgcf_mid_0,2,1,1,naturalgas_ccccsavgcf_mid,0.6,0.64,0.64,0,500,0,-1,0,1,NENG_CT_NG_ccs90,229388,27483,5.82,6,6,103,0,7.52,0,0,0.053333333,0.106666667,NENG_CT,0,0,0,0,0,0,0,0,0,0
+NENG_CT_naturalgas_ccavgcf_mid_0,2,1,1,naturalgas_ccavgcf_mid,0.2,0.64,0.64,0,500,0,-1,1,1,NENG_CT_NG,110025,12441,1.61,6,6,103,2,6.27,0,0,0.053333333,0.106666667,NENG_CT,0,0,0,0,0,0,0,0,0,0
+NENG_CT_naturalgas_ctavgcf_mid_0,2,1,1,naturalgas_ctavgcf_mid,0.3,3.78,3.78,0,100,0,-1,1,1,NENG_CT_NG,81998,6960,4.49,1,1,134,3.5,9.9,0,0,0.315,0.63,NENG_CT,0,0,0,0,0,0,0,0,0,0
+NENG_CT_naturalgas_ccs100_mid_0,2,1,1,naturalgas_ccs100_mid,0.6,0.64,0.64,0,500,0,-1,0,1,NENG_CT_NG_ccs100,239841,37153,6.26,6,6,103,0,7.89,0,0,0.053333333,0.106666667,NENG_CT,0,0,0,0,0,0,0,0,0,0
+NENG_ME_naturalgas_ccccsavgcf_mid_0,3,1,1,naturalgas_ccccsavgcf_mid,0.6,0.64,0.64,0,500,0,-1,0,1,NENG_ME_NG_ccs90,229388,27483,5.82,6,6,103,0,7.52,0,0,0.053333333,0.106666667,NENG_ME,0,0,0,0,0,0,0,0,0,0
+NENG_ME_naturalgas_ccavgcf_mid_0,3,1,1,naturalgas_ccavgcf_mid,0.2,0.64,0.64,0,500,0,-1,1,1,NENG_ME_NG,110025,12441,1.61,6,6,103,2,6.27,0,0,0.053333333,0.106666667,NENG_ME,0,0,0,0,0,0,0,0,0,0
+NENG_ME_naturalgas_ctavgcf_mid_0,3,1,1,naturalgas_ctavgcf_mid,0.3,3.78,3.78,0,100,0,-1,1,1,NENG_ME_NG,81998,6960,4.49,1,1,134,3.5,9.9,0,0,0.315,0.63,NENG_ME,0,0,0,0,0,0,0,0,0,0
+NENG_ME_naturalgas_ccs100_mid_0,3,1,1,naturalgas_ccs100_mid,0.6,0.64,0.64,0,500,0,-1,0,1,NENG_ME_NG_ccs100,239841,37153,6.26,6,6,103,0,7.89,0,0,0.053333333,0.106666667,NENG_ME,0,0,0,0,0,0,0,0,0,0
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_non_colocated/Resources/Vre.csv b/test/LoadResourceData/test_gen_non_colocated/Resources/Vre.csv
new file mode 100644
index 0000000000..bb83199e98
--- /dev/null
+++ b/test/LoadResourceData/test_gen_non_colocated/Resources/Vre.csv
@@ -0,0 +1,16 @@
+Resource,Zone,MGA,Resource_Type,Num_Vre_Bins,Existing_Cap_MW,Cap_Size,Min_Cap_MW,Max_Cap_MW,New_Build,Can_Retire,Inv_Cost_Per_MWyr,Fixed_Om_Cost_Per_MWyr,Var_Om_Cost_Per_MWh,Heat_Rate_Mmbtu_Per_MWh,Reg_Cost,Rsv_Cost,Reg_Max,Rsv_Max,Region,Cluster
+NENGREST_offshore_wind_turbine_1,1,1,offshore_wind_turbine,1,30,30,0,0,0,1,0,128440,0,9.12,0,0,0,0,NENGREST,1
+NENGREST_onshore_wind_turbine_1,1,1,onshore_wind_turbine,1,145.8,9.75,0,0,0,1,0,43205,-18,9.12,0,0,0.083333333,0.166666667,NENGREST,1
+NENGREST_solar_photovoltaic_1,1,1,solar_photovoltaic,1,821.4,2.6,0,0,0,1,0,18760,0,9.13,0,0,0.083333333,0.166666667,NENGREST,1
+NENG_CT_onshore_wind_turbine_1,2,1,onshore_wind_turbine,1,6.5,5,0,0,0,1,0,43205,-18,9.12,0,0,0.083333333,0.166666667,NENG_CT,1
+NENG_CT_solar_photovoltaic_1,2,1,solar_photovoltaic,1,374.6,5.67,0,0,0,1,0,18760,0,9.16,0,0,0.083333333,0.166666667,NENG_CT,1
+NENG_ME_onshore_wind_turbine_1,3,1,onshore_wind_turbine,1,1190.9,48.5,0,0,0,1,0,43205,-18,9.12,0,0,0.083333333,0.166666667,NENG_ME,1
+NENG_ME_solar_photovoltaic_1,3,1,solar_photovoltaic,1,11.8,1.5,0,0,0,1,0,18760,0,9.12,0,0,0.083333333,0.166666667,NENG_ME,1
+NENGREST_landbasedwind_ltrg1_mid_130_1,1,1,landbasedwind_ltrg1_mid_130,1,0,1,0,4888.236,1,1,194100,41460,0,0,0,0,0.083333333,0.166666667,NENGREST,1
+NENGREST_utilitypv_losangeles_mid_80_0_2_1,1,1,utilitypv_losangeles_mid_80_0_2,1,0,1,0,20835.569,1,1,99283,13055,0,0,0,0,0.083333333,0.166666667,NENGREST,1
+NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,1,1,offshorewind_otrg3_mid_fixed_1_176_77,1,0,1,0,9848.442,1,1,260044,91549,0,0,0,0,0.083333333,0.166666667,NENGREST,1
+NENG_CT_landbasedwind_ltrg1_mid_110_1,2,1,landbasedwind_ltrg1_mid_110,1,0,1,0,1982.895,1,1,185181,41460,0,0,0,0,0.083333333,0.166666667,NENG_CT,1
+NENG_CT_utilitypv_losangeles_mid_80_0_2_1,2,1,utilitypv_losangeles_mid_80_0_2,1,0,1,0,17063.264,1,1,98631,13055,0,0,0,0,0.083333333,0.166666667,NENG_CT,1
+NENG_CT_offshorewind_otrg3_mid_fixed_1_176_77_1,2,1,offshorewind_otrg3_mid_fixed_1_176_77,1,0,1,0,477.5,1,1,247542,91549,0,0,0,0,0.083333333,0.166666667,NENG_CT,1
+NENG_ME_landbasedwind_ltrg1_mid_110_1,3,1,landbasedwind_ltrg1_mid_110,1,0,1,0,20430.499,1,1,233173,41460,0,0,0,0,0.083333333,0.166666667,NENG_ME,1
+NENG_ME_utilitypv_losangeles_mid_100_0_2_1,3,1,utilitypv_losangeles_mid_100_0_2,1,0,1,0,21535.709,1,1,98706,13055,0,0,0,0,0.083333333,0.166666667,NENG_ME,1
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_non_colocated/Settings/genx_settings.yml b/test/LoadResourceData/test_gen_non_colocated/Settings/genx_settings.yml
new file mode 100644
index 0000000000..c210cd63a1
--- /dev/null
+++ b/test/LoadResourceData/test_gen_non_colocated/Settings/genx_settings.yml
@@ -0,0 +1,12 @@
+NetworkExpansion: 1
+ParameterScale: 1
+EnergyShareRequirement: 1
+Trans_Loss_Segments: 1
+CapacityReserveMargin: 1
+Reserves: 1
+StorageLosses: 1
+OverwriteResults: 1
+UCommit: 2
+MinCapReq: 1
+CO2Cap: 1
+WriteShadowPrices: 1
diff --git a/test/LoadResourceData/test_gen_non_colocated/Settings/highs_settings.yml b/test/LoadResourceData/test_gen_non_colocated/Settings/highs_settings.yml
new file mode 100644
index 0000000000..e244a0b4cf
--- /dev/null
+++ b/test/LoadResourceData/test_gen_non_colocated/Settings/highs_settings.yml
@@ -0,0 +1,13 @@
+# HiGHS Solver Parameters
+# Common solver settings
+Feasib_Tol: 1.0e-05 # Primal feasibility tolerance # [type: double, advanced: false, range: [1e-10, inf], default: 1e-07]
+Optimal_Tol: 1.0e-05 # Dual feasibility tolerance # [type: double, advanced: false, range: [1e-10, inf], default: 1e-07]
+TimeLimit: 1.0e23 # Time limit # [type: double, advanced: false, range: [0, inf], default: inf]
+Pre_Solve: choose # Presolve option: "off", "choose" or "on" # [type: string, advanced: false, default: "choose"]
+Method: choose #HiGHS-specific solver settings # Solver option: "simplex", "choose" or "ipm" # [type: string, advanced: false, default: "choose"]
+
+#highs-specific solver settings
+
+# run the crossover routine for ipx
+# [type: string, advanced: "on", range: {"off", "on"}, default: "off"]
+run_crossover: "on"
diff --git a/test/TDR/TDR_Results_test/time_domain_reduction_settings.yml b/test/LoadResourceData/test_gen_non_colocated/Settings/time_domain_reduction_settings.yml
similarity index 89%
rename from test/TDR/TDR_Results_test/time_domain_reduction_settings.yml
rename to test/LoadResourceData/test_gen_non_colocated/Settings/time_domain_reduction_settings.yml
index 5f02386d72..77a15db91e 100644
--- a/test/TDR/TDR_Results_test/time_domain_reduction_settings.yml
+++ b/test/LoadResourceData/test_gen_non_colocated/Settings/time_domain_reduction_settings.yml
@@ -6,20 +6,20 @@ ExtremePeriods:
Min: 0
Max: 0
Integral:
- Min: 0
+ Min: 1
Max: 0
Zone:
Absolute:
Min: 0
Max: 0
Integral:
- Min: 1
+ Min: 0
Max: 0
- PV:
+ Demand:
System:
Absolute:
Min: 0
- Max: 0
+ Max: 1
Integral:
Min: 0
Max: 0
@@ -28,15 +28,15 @@ ExtremePeriods:
Min: 0
Max: 0
Integral:
- Min: 1
+ Min: 0
Max: 0
- Demand:
+ PV:
System:
Absolute:
Min: 0
- Max: 1
+ Max: 0
Integral:
- Min: 0
+ Min: 1
Max: 0
Zone:
Absolute:
@@ -46,14 +46,13 @@ ExtremePeriods:
Min: 0
Max: 0
UseExtremePeriods: 1
-MinPeriods: 8
-MaxPeriods: 11
+MinPeriods: 5
+MaxPeriods: 5
DemandWeight: 1
-ClusterFuelPrices: 1
+ClusterFuelPrices: 0
nReps: 100
-MultiStageConcatenate: 0
Threshold: 0.05
-TimestepsPerRepPeriod: 168
+TimestepsPerRepPeriod: 24
IterateMethod: "cluster"
ScalingMethod: "S"
ClusterMethod: "kmeans"
diff --git a/test/LoadResourceData/test_gen_non_colocated/generators_data.csv b/test/LoadResourceData/test_gen_non_colocated/generators_data.csv
new file mode 100644
index 0000000000..898ec34679
--- /dev/null
+++ b/test/LoadResourceData/test_gen_non_colocated/generators_data.csv
@@ -0,0 +1,63 @@
+region,cluster,Resource,Resource_Type,MGA,R_ID,Zone,THERM,STOR,HYDRO,FLEX,MUST_RUN,VRE,ELECTROLYZER,Num_VRE_Bins,LDS,CapRes_1,ESR_1,ESR_2,Existing_Cap_MW,Existing_Charge_Cap_MW,Existing_Cap_MWh,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Min_Charge_Cap_MW,Max_Charge_Cap_MW,Min_Cap_MWh,Max_Cap_MWh,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Self_Disch,Eff_Up,Eff_Down,Hydro_Energy_to_Power_Ratio,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Ramp_Up_Percentage,Ramp_Dn_Percentage,Up_Time,Down_Time,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag_1,MinCapTag_2,MinCapTag_3,Hydrogen_MWh_Per_Tonne,Electrolyzer_Min_kt,Hydrogen_Price_Per_Tonne,Qualified_Hydrogen_Supply,PWFU_Fuel_Usage_Zero_Load_MMBTU_per_h,PWFU_Heat_Rate_MMBTU_per_MWh_1,PWFU_Heat_Rate_MMBTU_per_MWh_2,PWFU_Load_Point_MW_1,PWFU_Load_Point_MW_2,CO2_Capture_Fraction,CO2_Capture_Fraction_Startup,CCS_Disposal_Cost_per_Metric_Ton,Biomass,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW
+NENGREST,1,NENGREST_conventional_hydroelectric_1,conventional_hydroelectric,1,2,1,0,0,1,0,0,0,0,0,1,0.8,0,1,662.983,0,0,0,0,11.24,0,0,0,-1,-1,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.117,0,1,1,1,0,0,0,0,1,0.083,0.083,0,0,0.006916667,0.013833333,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.039,20,20,0,0,0
+NENG_CT,1,NENG_CT_conventional_hydroelectric_1,conventional_hydroelectric,1,15,2,0,0,1,0,0,0,0,0,1,0.8,0,1,67.7,0,0,0,0,13.54,0,0,0,-1,-1,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.18,0,1,1,1,0,0,0,0,1,0.083,0.083,0,0,0.006916667,0.013833333,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.017,20,20,0,0,0
+NENG_ME,1,NENG_ME_conventional_hydroelectric_1,conventional_hydroelectric,1,26,3,0,0,1,0,0,0,0,0,1,0.8,0,1,327.81,0,0,0,0,7.8,0,0,0,-1,-1,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.402,0,1,1,1,0,0,0,0,1,0.083,0.083,0,0,0.006916667,0.013833333,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.024,20,20,0,0,0
+NENGREST,1,NENGREST_biomass_1,biomass,1,1,1,1,0,0,0,0,0,0,0,0,0.93,1,1,106.062,0,0,0,0,3.21,0,0,0,-1,-1,-1,0,122976,0,0,0,0,5.08,0,0,0,14.58,None,0.45,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.027,20,20,0,0,0
+NENGREST,1,NENGREST_natural_gas_fired_combined_cycle_1,natural_gas_fired_combined_cycle,1,4,1,1,0,0,0,0,0,0,0,0,0.93,0,0,7077.3,0,0,0,1,471.82,0,0,0,-1,-1,-1,0,10287,0,0,0,0,3.55,0,91,2,7.43,NENGREST_NG,0.468,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0,0,0,0,0,400,6,7.2,160,250,0.9,0.6,20,0,0.0195,20,20,0,0,0
+NENGREST,2,NENGREST_natural_gas_fired_combined_cycle_2,natural_gas_fired_combined_cycle,1,5,1,1,0,0,0,0,0,0,0,0,0.93,0,0,2684.803,0,0,0,1,244.07,0,0,0,-1,-1,-1,0,16291,0,0,0,0,4.5,0,91,2,8.29,NENGREST_NG,0.507,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0166,20,20,0,0,0
+NENGREST,1,NENGREST_natural_gas_fired_combustion_turbine_1,natural_gas_fired_combustion_turbine,1,6,1,1,0,0,0,0,0,0,0,0,0.93,0,0,302.701,0,0,0,1,43.24,0,0,0,-1,-1,-1,0,12080,0,0,0,0,4.6,0,118,3.5,10.13,NENGREST_NG,0.456,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0137,20,20,0,0,0
+NENGREST,2,NENGREST_natural_gas_fired_combustion_turbine_2,natural_gas_fired_combustion_turbine,1,7,1,1,0,0,0,0,0,0,0,0,0.93,0,0,62.704,0,0,0,1,7.84,0,0,0,-1,-1,-1,0,13991,0,0,0,0,4.6,0,118,3.5,4.74,NENGREST_NG,0.488,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0108,20,20,0,0,0
+NENGREST,1,NENGREST_natural_gas_steam_turbine_1,natural_gas_steam_turbine,1,8,1,1,0,0,0,0,0,0,0,0,0.93,0,0,0.6,0,0,0,1,0.6,0,0,0,-1,-1,-1,0,50678,0,0,0,0,1.04,0,86,13.7,0,NENGREST_NG,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0079,20,20,0,0,0
+NENGREST,1,NENGREST_nuclear_1,nuclear,1,9,1,1,0,0,0,0,0,0,0,0,0.93,0,1,1242,0,0,0,1,1242,0,0,0,-1,-1,-1,0,271818,0,0,0,0,2.32,0,245,0,10.46,new_england_uranium,0.5,0,1,1,1,0,0,0,0,1,0.25,0.25,24,24,0.020833333,0.041666667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.005,20,20,0,0,0
+NENG_CT,1,NENG_CT_biomass_1,biomass,1,14,2,1,0,0,0,0,0,0,0,0,0.93,1,1,27.248,0,0,0,0,3.41,0,0,0,-1,-1,-1,0,122976,0,0,0,0,5.37,0,0,0,15.33,Biomass,0.348,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.9,0.6,20,1,0.0021,20,20,0,0,0
+NENG_CT,1,NENG_CT_natural_gas_fired_combined_cycle_1,natural_gas_fired_combined_cycle,1,17,2,1,0,0,0,0,0,0,0,0,0.93,0,0,3488.704,0,0,0,1,436.09,0,0,0,-1,-1,-1,0,9698,0,0,0,0,3.57,0,91,2,7.12,NENG_CT_NG,0.338,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.039,20,20,0,0,0
+NENG_CT,2,NENG_CT_natural_gas_fired_combined_cycle_2,natural_gas_fired_combined_cycle,1,18,2,1,0,0,0,0,0,0,0,0,0.93,0,0,35.2,0,0,0,1,17.6,0,0,0,-1,-1,-1,0,16291,0,0,0,0,4.5,0,91,2,10.77,NENG_CT_NG,0.466,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.017,20,20,0,0,0
+NENG_CT,1,NENG_CT_natural_gas_fired_combustion_turbine_1,natural_gas_fired_combustion_turbine,1,19,2,1,0,0,0,0,0,0,0,0,0.93,0,0,434,0,0,0,1,54.25,0,0,0,-1,-1,-1,0,10609,0,0,0,0,4.6,0,118,3.5,11.06,NENG_CT_NG,0.124,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.024,20,20,0,0,0
+NENG_CT,2,NENG_CT_natural_gas_fired_combustion_turbine_2,natural_gas_fired_combustion_turbine,1,20,2,1,0,0,0,0,0,0,0,0,0.93,0,0,124.9,0,0,0,1,24.98,0,0,0,-1,-1,-1,0,13991,0,0,0,0,4.6,0,118,3.5,8.35,NENG_CT_NG,0.476,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.027,20,20,0,0,0
+NENG_CT,1,NENG_CT_nuclear_1,nuclear,1,21,2,1,0,0,0,0,0,0,0,0,0.93,0,1,2162.9,0,0,0,1,1081.45,0,0,0,-1,-1,-1,0,190920,0,0,0,0,2.32,0,245,0,10.46,new_england_uranium,0.5,0,1,1,1,0,0,0,0,1,0.25,0.25,24,24,0.020833333,0.041666667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0195,20,20,0,0,0
+NENG_ME,1,NENG_ME_biomass_1,biomass,1,25,3,1,0,0,0,0,0,0,0,0,0.93,1,1,24.95,0,0,0,0,2.5,0,0,0,-1,-1,-1,0,122976,0,0,0,0,4.85,0,0,0,13.84,None,0.404,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0166,20,20,0,0,0
+NENG_ME,1,NENG_ME_natural_gas_fired_combined_cycle_1,natural_gas_fired_combined_cycle,1,27,3,1,0,0,0,0,0,0,0,0,0.93,0,0,274.5,0,0,0,1,137.25,0,0,0,-1,-1,-1,0,16291,0,0,0,0,4.5,0,91,2,12.62,NENG_ME_NG,0.474,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0137,20,20,0,0,0
+NENG_ME,2,NENG_ME_natural_gas_fired_combined_cycle_2,natural_gas_fired_combined_cycle,1,28,3,1,0,0,0,0,0,0,0,0,0.93,0,0,1114.1,0,0,0,1,557.05,0,0,0,-1,-1,-1,0,9668,0,0,0,0,3.57,0,91,2,7.65,NENG_ME_NG,0.386,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0108,20,20,0,0,0
+NENG_ME,1,NENG_ME_natural_gas_fired_combustion_turbine_1,natural_gas_fired_combustion_turbine,1,29,3,1,0,0,0,0,0,0,0,0,0.93,0,0,163.5,0,0,0,1,54.5,0,0,0,-1,-1,-1,0,11540,0,0,0,0,4.6,0,118,3.5,4.75,NENG_ME_NG,0.697,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0079,20,20,0,0,0
+NENGREST,0,NENGREST_naturalgas_ccccsavgcf_mid_0,naturalgas_ccccsavgcf_mid,1,33,1,1,0,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,1,500,0,-1,0,-1,-1,-1,229388,27483,0,0,0,0,5.82,0,103,0,7.52,NENGREST_NG_ccs90,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.005,20,20,0,0,0
+NENGREST,0,NENGREST_naturalgas_ccavgcf_mid_0,naturalgas_ccavgcf_mid,1,34,1,1,0,0,0,0,0,0,0,0,0.93,0,0,0,0,0,1,1,500,0,-1,0,-1,-1,-1,110025,12441,0,0,0,0,1.61,0,103,2,6.27,NENGREST_NG,0.2,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0021,20,20,0,0,0
+NENGREST,0,NENGREST_naturalgas_ctavgcf_mid_0,naturalgas_ctavgcf_mid,1,35,1,1,0,0,0,0,0,0,0,0,0.93,0,0,0,0,0,1,1,100,0,-1,0,-1,-1,-1,81998,6960,0,0,0,0,4.49,0,134,3.5,9.9,NENGREST_NG,0.3,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.039,20,20,0,0,0
+NENGREST,0,NENGREST_naturalgas_ccs100_mid_0,naturalgas_ccs100_mid,1,37,1,1,0,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,1,500,0,-1,0,-1,-1,-1,239841,37153,0,0,0,0,6.26,0,103,0,7.89,NENGREST_NG_ccs100,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.017,20,20,0,0,0
+NENG_CT,0,NENG_CT_naturalgas_ccccsavgcf_mid_0,naturalgas_ccccsavgcf_mid,1,41,2,1,0,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,1,500,0,-1,0,-1,-1,-1,229388,27483,0,0,0,0,5.82,0,103,0,7.52,NENG_CT_NG_ccs90,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.024,20,20,0,0,0
+NENG_CT,0,NENG_CT_naturalgas_ccavgcf_mid_0,naturalgas_ccavgcf_mid,1,42,2,1,0,0,0,0,0,0,0,0,0.93,0,0,0,0,0,1,1,500,0,-1,0,-1,-1,-1,110025,12441,0,0,0,0,1.61,0,103,2,6.27,NENG_CT_NG,0.2,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.027,20,20,0,0,0
+NENG_CT,0,NENG_CT_naturalgas_ctavgcf_mid_0,naturalgas_ctavgcf_mid,1,43,2,1,0,0,0,0,0,0,0,0,0.93,0,0,0,0,0,1,1,100,0,-1,0,-1,-1,-1,81998,6960,0,0,0,0,4.49,0,134,3.5,9.9,NENG_CT_NG,0.3,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0195,20,20,0,0,0
+NENG_CT,0,NENG_CT_naturalgas_ccs100_mid_0,naturalgas_ccs100_mid,1,45,2,1,0,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,1,500,0,-1,0,-1,-1,-1,239841,37153,0,0,0,0,6.26,0,103,0,7.89,NENG_CT_NG_ccs100,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0166,20,20,0,0,0
+NENG_ME,0,NENG_ME_naturalgas_ccccsavgcf_mid_0,naturalgas_ccccsavgcf_mid,1,49,3,1,0,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,1,500,0,-1,0,-1,-1,-1,229388,27483,0,0,0,0,5.82,0,103,0,7.52,NENG_ME_NG_ccs90,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0137,20,20,0,0,0
+NENG_ME,0,NENG_ME_naturalgas_ccavgcf_mid_0,naturalgas_ccavgcf_mid,1,50,3,1,0,0,0,0,0,0,0,0,0.93,0,0,0,0,0,1,1,500,0,-1,0,-1,-1,-1,110025,12441,0,0,0,0,1.61,0,103,2,6.27,NENG_ME_NG,0.2,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0108,20,20,0,0,0
+NENG_ME,0,NENG_ME_naturalgas_ctavgcf_mid_0,naturalgas_ctavgcf_mid,1,51,3,1,0,0,0,0,0,0,0,0,0.93,0,0,0,0,0,1,1,100,0,-1,0,-1,-1,-1,81998,6960,0,0,0,0,4.49,0,134,3.5,9.9,NENG_ME_NG,0.3,0,1,1,1,0,0,0,0,1,3.78,3.78,1,1,0.315,0.63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0079,20,20,0,0,0
+NENG_ME,0,NENG_ME_naturalgas_ccs100_mid_0,naturalgas_ccs100_mid,1,53,3,1,0,0,0,0,0,0,0,0,0.93,0,0,0,0,0,0,1,500,0,-1,0,-1,-1,-1,239841,37153,0,0,0,0,6.26,0,103,0,7.89,NENG_ME_NG_ccs100,0.6,0,1,1,1,0,0,0,0,1,0.64,0.64,6,6,0.053333333,0.106666667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.005,20,20,0,0,0
+NENGREST,1,NENGREST_offshore_wind_turbine_1,offshore_wind_turbine,1,10,1,0,0,0,0,0,1,0,1,0,0.8,1,1,30,0,0,0,1,30,0,0,0,-1,-1,-1,0,128440,0,0,0,0,0,0,0,0,9.12,None,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0021,20,20,0,0,0
+NENGREST,1,NENGREST_onshore_wind_turbine_1,onshore_wind_turbine,1,11,1,0,0,0,0,0,1,0,1,0,0.8,1,1,145.8,0,0,0,1,9.75,0,0,0,-1,-1,-1,0,43205,0,0,0,0,-18,0,0,0,9.12,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0021,20,20,0,0,0
+NENGREST,1,NENGREST_solar_photovoltaic_1,solar_photovoltaic,1,13,1,0,0,0,0,0,1,0,1,0,0.8,1,1,821.4,0,0,0,1,2.6,0,0,0,-1,-1,-1,0,18760,0,0,0,0,0,0,0,0,9.13,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0.039,20,20,0,0,0
+NENG_CT,1,NENG_CT_onshore_wind_turbine_1,onshore_wind_turbine,1,22,2,0,0,0,0,0,1,0,1,0,0.8,1,1,6.5,0,0,0,1,5,0,0,0,-1,-1,-1,0,43205,0,0,0,0,-18,0,0,0,9.12,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.017,20,20,0,0,0
+NENG_CT,1,NENG_CT_solar_photovoltaic_1,solar_photovoltaic,1,24,2,0,0,0,0,0,1,0,1,0,0.8,1,1,374.6,0,0,0,1,5.67,0,0,0,-1,-1,-1,0,18760,0,0,0,0,0,0,0,0,9.16,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.024,20,20,0,0,0
+NENG_ME,1,NENG_ME_onshore_wind_turbine_1,onshore_wind_turbine,1,30,3,0,0,0,0,0,1,0,1,0,0.8,1,1,1190.9,0,0,0,1,48.5,0,0,0,-1,-1,-1,0,43205,0,0,0,0,-18,0,0,0,9.12,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.027,20,20,0,0,0
+NENG_ME,1,NENG_ME_solar_photovoltaic_1,solar_photovoltaic,1,32,3,0,0,0,0,0,1,0,1,0,0.8,1,1,11.8,0,0,0,1,1.5,0,0,0,-1,-1,-1,0,18760,0,0,0,0,0,0,0,0,9.12,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0195,20,20,0,0,0
+NENGREST,1,NENGREST_landbasedwind_ltrg1_mid_130_1,landbasedwind_ltrg1_mid_130,1,38,1,0,0,0,0,0,1,0,1,0,0.8,1,1,0,0,0,1,1,1,0,4888.236,0,-1,-1,-1,194100,41460,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0166,20,20,0,0,0
+NENGREST,1,NENGREST_utilitypv_losangeles_mid_80_0_2_1,utilitypv_losangeles_mid_80_0_2,1,39,1,0,0,0,0,0,1,0,1,0,0.8,1,1,0,0,0,1,1,1,0,20835.569,0,-1,-1,-1,99283,13055,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0137,20,20,0,0,0
+NENGREST,1,NENGREST_offshorewind_otrg3_mid_fixed_1_176_77_1,offshorewind_otrg3_mid_fixed_1_176_77,1,40,1,0,0,0,0,0,1,0,1,0,0.8,1,1,0,0,0,1,1,1,0,9848.442,0,-1,-1,-1,260044,91549,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0108,20,20,0,0,0
+NENG_CT,1,NENG_CT_landbasedwind_ltrg1_mid_110_1,landbasedwind_ltrg1_mid_110,1,46,2,0,0,0,0,0,1,0,1,0,0.8,1,1,0,0,0,1,1,1,0,1982.895,0,-1,-1,-1,185181,41460,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0079,20,20,0,0,0
+NENG_CT,1,NENG_CT_utilitypv_losangeles_mid_80_0_2_1,utilitypv_losangeles_mid_80_0_2,1,47,2,0,0,0,0,0,1,0,1,0,0.8,1,1,0,0,0,1,1,1,0,17063.264,0,-1,-1,-1,98631,13055,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.005,20,20,0,0,0
+NENG_CT,1,NENG_CT_offshorewind_otrg3_mid_fixed_1_176_77_1,offshorewind_otrg3_mid_fixed_1_176_77,1,48,2,0,0,0,0,0,1,0,1,0,0.8,1,1,0,0,0,1,1,1,0,477.5,0,-1,-1,-1,247542,91549,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0021,20,20,0,0,0
+NENG_ME,1,NENG_ME_landbasedwind_ltrg1_mid_110_1,landbasedwind_ltrg1_mid_110,1,54,3,0,0,0,0,0,1,0,1,0,0.8,1,1,0,0,0,1,1,1,0,20430.499,0,-1,-1,-1,233173,41460,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.039,20,20,0,0,0
+NENG_ME,1,NENG_ME_utilitypv_losangeles_mid_100_0_2_1,utilitypv_losangeles_mid_100_0_2,1,55,3,0,0,0,0,0,1,0,1,0,0.8,1,1,0,0,0,1,1,1,0,21535.709,0,-1,-1,-1,98706,13055,0,0,0,0,0,0,0,0,0,None,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.017,20,20,0,0,0
+NENGREST,1,NENGREST_hydroelectric_pumped_storage_1,hydroelectric_pumped_storage,0,3,1,0,1,0,0,0,0,0,0,0,0.95,0,0,1768.002,0,280635.2381,0,0,294.67,0,0,0,-1,0,-1,0,40113,0,0,0,0,0,0,0,0,0,None,0.532,0,0.866,0.866,158.730159,0,200,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.024,20,20,0,0,0
+NENG_CT,1,NENG_CT_hydroelectric_pumped_storage_1,hydroelectric_pumped_storage,0,16,2,0,1,0,0,0,0,0,0,0,0.95,0,0,30.999,0,4920.47619,0,0,10.33,0,0,0,-1,0,-1,0,40113,0,0,0,0,0,0,0,0,0,None,0.871,0,0.866,0.866,158.730159,0,200,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.027,20,20,0,0,0
+NENGREST,0,NENGREST_battery_mid_0,battery_mid,0,36,1,0,1,0,0,0,0,0,0,0,0.95,0,0,0,0,0,1,1,1,0,-1,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0,0,None,0,0,0.92,0.92,1,1,10,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0195,20,20,0,0,0
+NENG_CT,0,NENG_CT_battery_mid_0,battery_mid,0,44,2,0,1,0,0,0,0,0,0,0,0.95,0,0,0,0,0,1,1,1,0,-1,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0,0,None,0,0,0.92,0.92,1,1,10,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0166,20,20,0,0,0
+NENG_ME,0,NENG_ME_battery_mid_0,battery_mid,0,52,3,0,1,0,0,0,0,0,0,0,0.95,0,0,0,0,0,1,1,1,0,-1,0,-1,0,-1,19584,4895,22494,5622,0,0,0.15,0.15,0,0,0,None,0,0,0.92,0.92,1,1,10,0,0,1,1,1,0,0,0.083333333,0.166666667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0137,20,20,0,0,0
+NENGREST,1,NENGREST_hydrogen_storage_1,hydrogen_storage,0,59,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,1,0,-1,0,-1,0,-1,39761,5000,404,0,38914,29750,4.3,0,0,0,0,None,0,0,0.67,0.4,0,48,2000,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0108,20,20,0,0,0
+NENG_CT,1,NENG_CT_hydrogen_storage_1,hydrogen_storage,0,60,2,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,1,0,-1,0,-1,0,-1,49333,5000,404,0,38914,29750,4.3,0,0,0,0,None,0,0,0.67,0.4,0,48,2000,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0079,20,20,0,0,0
+NENG_ME,1,NENG_ME_hydrogen_storage_1,hydrogen_storage,0,61,3,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,1,0,-1,0,-1,0,-1,38489,5000,404,0,38914,29750,4.3,0,0,0,0,None,0,0,0.67,0.4,0,48,2000,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.005,20,20,0,0,0
+NENGREST,1,NENGREST_heat_load_shifting_1,heat_load_shifting,1,56,1,0,0,0,1,0,0,0,0,0,0.95,0,0,165.52,0,0,0,0,0,0,0,0,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0021,20,20,0,0,0
+NENG_CT,1,NENG_CT_heat_load_shifting_1,heat_load_shifting,1,57,2,0,0,0,1,0,0,0,0,0,0.95,0,0,47.27,0,0,0,0,0,0,0,0,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.039,20,20,0,0,0
+NENG_ME,1,NENG_ME_heat_load_shifting_1,heat_load_shifting,1,58,3,0,0,0,1,0,0,0,0,0,0.95,0,0,22.56,0,0,0,0,0,0,0,0,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.017,20,20,0,0,0
+NENGREST,1,NENGREST_small_hydroelectric_1,small_hydroelectric,1,12,1,0,0,0,0,1,0,0,0,0,0,1,1,186.355,0,0,0,0,0.79,0,0,0,-1,-1,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.117,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.024,20,20,0,0,0
+NENG_CT,1,NENG_CT_small_hydroelectric_1,small_hydroelectric,1,23,2,0,0,0,0,1,0,0,0,0,0,1,1,18.711,0,0,0,0,0.57,0,0,0,-1,-1,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.18,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.027,20,20,0,0,0
+NENG_ME,1,NENG_ME_small_hydroelectric_1,small_hydroelectric,1,31,3,0,0,0,0,1,0,0,0,0,0,1,1,195.266,0,0,0,0,1.1,0,0,0,-1,-1,-1,0,46475,0,0,0,0,0,0,0,0,9.12,None,0.192,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0195,20,20,0,0,0
+NENG_ME,0,NENG_ME_electrolyzer,hydrogen_electrolyzer,0,62,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1,1,-1,-1,0,-1,-1,-1,125000,15000,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,55,1000,1000,0,0,0,0,0,0,0,0,0,0,0.0195,20,20,0,0,0
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_non_colocated/inputs_after_loadgen.jld2 b/test/LoadResourceData/test_gen_non_colocated/inputs_after_loadgen.jld2
new file mode 100644
index 0000000000..bc15c99057
Binary files /dev/null and b/test/LoadResourceData/test_gen_non_colocated/inputs_after_loadgen.jld2 differ
diff --git a/test/LoadResourceData/test_gen_non_colocated/inputs_before_loadgen.jld2 b/test/LoadResourceData/test_gen_non_colocated/inputs_before_loadgen.jld2
new file mode 100644
index 0000000000..5871850518
Binary files /dev/null and b/test/LoadResourceData/test_gen_non_colocated/inputs_before_loadgen.jld2 differ
diff --git a/test/LoadResourceData/test_gen_vre_stor/CO2_cap.csv b/test/LoadResourceData/test_gen_vre_stor/CO2_cap.csv
new file mode 100644
index 0000000000..566be5a56c
--- /dev/null
+++ b/test/LoadResourceData/test_gen_vre_stor/CO2_cap.csv
@@ -0,0 +1,4 @@
+,Network_zones,CO_2_Max_Mtons_1,CO_2_Cap_Zone_1
+EIC,z1,0.0,1
+TRE,z2,0.0,1
+WECC,z3,0.0,1
diff --git a/test/LoadResourceData/test_gen_vre_stor/Capacity_reserve_margin.csv b/test/LoadResourceData/test_gen_vre_stor/Capacity_reserve_margin.csv
new file mode 100644
index 0000000000..aaeec46061
--- /dev/null
+++ b/test/LoadResourceData/test_gen_vre_stor/Capacity_reserve_margin.csv
@@ -0,0 +1,4 @@
+region,Network_zones,CapRes_1,CapRes_2,CapRes_3
+EIC,z1,0.1572,0.0,0.0
+TRE,z2,0.0,0.1375,0.0
+WECC,z3,0.0,0.0,0.1538
diff --git a/test/LoadResourceData/test_gen_vre_stor/Demand_data.csv b/test/LoadResourceData/test_gen_vre_stor/Demand_data.csv
new file mode 100644
index 0000000000..4d077ddfb0
--- /dev/null
+++ b/test/LoadResourceData/test_gen_vre_stor/Demand_data.csv
@@ -0,0 +1,25 @@
+Voll,Demand_Segment,Cost_of_Demand_Curtailment_per_MW,Max_Demand_Curtailment,$/MWh,Rep_Periods,Timesteps_per_Rep_Period,Sub_Weights,Time_Index,Demand_MW_z1,Demand_MW_z2,Demand_MW_z3
+2000,1,1,1,2000,1,24,8760,1,433055,56250,158195
+,2,0.9,0.04,1800,,,,2,406808,53975,151211
+,3,0.55,0.024,1100,,,,3,394480,51413,144460
+,4,0.2,0.003,400,,,,4,389845,50217,137745
+,,,,,,,,5,387098,49407,131059
+,,,,,,,,6,392355,48847,129242
+,,,,,,,,7,404654,49928,127643
+,,,,,,,,8,416313,52099,127594
+,,,,,,,,9,428156,53971,131035
+,,,,,,,,10,443175,56180,136863
+,,,,,,,,11,461485,59324,140327
+,,,,,,,,12,478750,61430,146574
+,,,,,,,,13,500639,63720,153859
+,,,,,,,,14,510242,66292,160582
+,,,,,,,,15,512939,66236,167097
+,,,,,,,,16,520359,66270,172644
+,,,,,,,,17,542617,66603,173528
+,,,,,,,,18,567183,68052,174662
+,,,,,,,,19,589765,70029,179348
+,,,,,,,,20,597606,78675,189488
+,,,,,,,,21,578601,79796,200159
+,,,,,,,,22,551207,77624,206282
+,,,,,,,,23,519544,74795,201139
+,,,,,,,,24,480627,70153,190159
diff --git a/test/LoadResourceData/test_gen_vre_stor/Energy_share_requirement.csv b/test/LoadResourceData/test_gen_vre_stor/Energy_share_requirement.csv
new file mode 100644
index 0000000000..5aac67302b
--- /dev/null
+++ b/test/LoadResourceData/test_gen_vre_stor/Energy_share_requirement.csv
@@ -0,0 +1,4 @@
+Zone_name,Network_zones,ESR_1,ESR_2
+NENGREST,z1,0.259,0.348
+NENG_CT,z2,0.44,0.44
+NENG_ME,z3,0.776,0.776
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_vre_stor/Fuels_data.csv b/test/LoadResourceData/test_gen_vre_stor/Fuels_data.csv
new file mode 100644
index 0000000000..71ad4f619d
--- /dev/null
+++ b/test/LoadResourceData/test_gen_vre_stor/Fuels_data.csv
@@ -0,0 +1,26 @@
+Time_Index,None,biomass,east_north_central_coal,east_north_central_naturalgas,east_north_central_uranium,east_north_central_distillate,west_south_central_coal,west_south_central_naturalgas,west_south_central_uranium,west_south_central_distillate,mountain_coal,mountain_naturalgas,mountain_uranium,mountain_distillate,zerocarbon_fuel
+0,0,0,0.09552,0.05306,0,0.07315,0.09552,0.05306,0,0.07315,0.09552,0.05306,0,0.07315,0
+1,0,5,1.81,3.13,0.73,17.8,1.71,3.51,0.73,19.31,1.36,4.35,0.73,22.83,20
+2,0,5,1.81,3.13,0.73,17.8,1.71,3.51,0.73,19.31,1.36,4.35,0.73,22.83,20
+3,0,5,1.81,3.13,0.73,17.8,1.71,3.51,0.73,19.31,1.36,4.35,0.73,22.83,20
+4,0,5,1.81,3.13,0.73,17.8,1.71,3.51,0.73,19.31,1.36,4.35,0.73,22.83,20
+5,0,5,1.81,3.13,0.73,17.8,1.71,3.51,0.73,19.31,1.36,4.35,0.73,22.83,20
+6,0,5,1.81,3.13,0.73,17.8,1.71,3.51,0.73,19.31,1.36,4.35,0.73,22.83,20
+7,0,5,1.81,3.13,0.73,17.8,1.71,3.51,0.73,19.31,1.36,4.35,0.73,22.83,20
+8,0,5,1.81,3.13,0.73,17.8,1.71,3.51,0.73,19.31,1.36,4.35,0.73,22.83,20
+9,0,5,1.81,3.13,0.73,17.8,1.71,3.51,0.73,19.31,1.36,4.35,0.73,22.83,20
+10,0,5,1.81,3.13,0.73,17.8,1.71,3.51,0.73,19.31,1.36,4.35,0.73,22.83,20
+11,0,5,1.81,3.13,0.73,17.8,1.71,3.51,0.73,19.31,1.36,4.35,0.73,22.83,20
+12,0,5,1.81,3.13,0.73,17.8,1.71,3.51,0.73,19.31,1.36,4.35,0.73,22.83,20
+13,0,5,1.81,3.13,0.73,17.8,1.71,3.51,0.73,19.31,1.36,4.35,0.73,22.83,20
+14,0,5,1.81,3.13,0.73,17.8,1.71,3.51,0.73,19.31,1.36,4.35,0.73,22.83,20
+15,0,5,1.81,3.13,0.73,17.8,1.71,3.51,0.73,19.31,1.36,4.35,0.73,22.83,20
+16,0,5,1.81,3.13,0.73,17.8,1.71,3.51,0.73,19.31,1.36,4.35,0.73,22.83,20
+17,0,5,1.81,3.13,0.73,17.8,1.71,3.51,0.73,19.31,1.36,4.35,0.73,22.83,20
+18,0,5,1.81,3.13,0.73,17.8,1.71,3.51,0.73,19.31,1.36,4.35,0.73,22.83,20
+19,0,5,1.81,3.13,0.73,17.8,1.71,3.51,0.73,19.31,1.36,4.35,0.73,22.83,20
+20,0,5,1.81,3.13,0.73,17.8,1.71,3.51,0.73,19.31,1.36,4.35,0.73,22.83,20
+21,0,5,1.81,3.13,0.73,17.8,1.71,3.51,0.73,19.31,1.36,4.35,0.73,22.83,20
+22,0,5,1.81,3.13,0.73,17.8,1.71,3.51,0.73,19.31,1.36,4.35,0.73,22.83,20
+23,0,5,1.81,3.13,0.73,17.8,1.71,3.51,0.73,19.31,1.36,4.35,0.73,22.83,20
+24,0,5,1.81,3.13,0.73,17.8,1.71,3.51,0.73,19.31,1.36,4.35,0.73,22.83,20
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_vre_stor/Generators_variability.csv b/test/LoadResourceData/test_gen_vre_stor/Generators_variability.csv
new file mode 100644
index 0000000000..3ccfe2a616
--- /dev/null
+++ b/test/LoadResourceData/test_gen_vre_stor/Generators_variability.csv
@@ -0,0 +1,25 @@
+,Time_Index,EIC_batteries_1,EIC_biomass_1,EIC_conventional_hydroelectric_1,EIC_conventional_steam_coal_1,EIC_conventional_steam_coal_2,EIC_hydroelectric_pumped_storage_1,EIC_natural_gas_fired_combined_cycle_1,EIC_natural_gas_fired_combined_cycle_2,EIC_natural_gas_fired_combustion_turbine_1,EIC_natural_gas_fired_combustion_turbine_2,EIC_natural_gas_internal_combustion_engine_1,EIC_natural_gas_steam_turbine_1,EIC_nuclear_1,EIC_offshore_wind_turbine_1,EIC_onshore_wind_turbine_1,EIC_petroleum_liquids_1,EIC_small_hydroelectric_1,EIC_solar_photovoltaic_1,TRE_batteries_1,TRE_biomass_1,TRE_conventional_hydroelectric_1,TRE_conventional_steam_coal_1,TRE_conventional_steam_coal_2,TRE_natural_gas_fired_combined_cycle_1,TRE_natural_gas_fired_combined_cycle_2,TRE_natural_gas_fired_combustion_turbine_1,TRE_natural_gas_fired_combustion_turbine_2,TRE_natural_gas_internal_combustion_engine_1,TRE_natural_gas_steam_turbine_1,TRE_nuclear_1,TRE_onshore_wind_turbine_1,TRE_petroleum_liquids_1,TRE_small_hydroelectric_1,TRE_solar_photovoltaic_1,WECC_batteries_1,WECC_biomass_1,WECC_conventional_hydroelectric_1,WECC_conventional_steam_coal_1,WECC_conventional_steam_coal_2,WECC_geothermal_1,WECC_hydroelectric_pumped_storage_1,WECC_natural_gas_fired_combined_cycle_1,WECC_natural_gas_fired_combined_cycle_2,WECC_natural_gas_fired_combustion_turbine_1,WECC_natural_gas_fired_combustion_turbine_2,WECC_natural_gas_internal_combustion_engine_1,WECC_natural_gas_steam_turbine_1,WECC_nuclear_1,WECC_onshore_wind_turbine_1,WECC_petroleum_liquids_1,WECC_small_hydroelectric_1,WECC_solar_photovoltaic_1,WECC_distributed_generation_1,EIC_distributed_generation_1,TRE_distributed_generation_1,EIC_naturalgas_ccavgcf_moderate_0,EIC_naturalgas_ctavgcf_moderate_0,EIC_battery_moderate_0,EIC_naturalgas_ccccsavgcf_conservative_0,EIC_naturalgas_ccccsavgcf_repowercoal_0,EIC_naturalgas_ccccsavgcf_retrofitngcc_0,EIC_advnuclear_atb_moderate_0,EIC_storage_metalair_advanced_0,EIC_hydrogen_ccavgcf_moderate_0,EIC_hydrogen_ctavgcf_moderate_0,EIC_hydrogen_ccavgcf_retrofitngcc_0,EIC_hydrogen_ctavgcf_retrofitngct_0,EIC_storage_hydrogen_advanced_0,EIC_landbasedwind_class1_moderate_0,EIC_landbasedwind_class1_moderate_1,EIC_landbasedwind_class1_moderate_2,EIC_landbasedwind_class1_moderate_3,EIC_landbasedwind_class1_moderate_4,EIC_landbasedwind_class1_moderate_5,EIC_landbasedwind_class1_moderate_6,EIC_landbasedwind_class1_moderate_7,EIC_landbasedwind_class1_moderate_8,EIC_landbasedwind_class1_moderate_9,EIC_utilitypv_class1_moderate_0,EIC_utilitypv_class1_moderate_1,EIC_utilitypv_class1_moderate_2,EIC_utilitypv_class1_moderate_3,EIC_utilitypv_class1_moderate_4,EIC_utilitypv_class1_moderate_5,EIC_utilitypv_class1_moderate_6,EIC_utilitypv_class1_moderate_7,EIC_utilitypv_class1_moderate_8,EIC_utilitypv_class1_moderate_9,EIC_offshorewind_class3_moderate_fixed_1_0,EIC_offshorewind_class3_moderate_fixed_1_1,EIC_offshorewind_class3_moderate_fixed_1_2,EIC_offshorewind_class3_moderate_fixed_1_3,EIC_offshorewind_class3_moderate_fixed_1_4,EIC_offshorewind_class3_moderate_fixed_1_5,EIC_offshorewind_class3_moderate_fixed_1_6,EIC_offshorewind_class3_moderate_fixed_1_7,EIC_offshorewind_class3_moderate_fixed_1_8,EIC_offshorewind_class3_moderate_fixed_1_9,EIC_offshorewind_class3_moderate_fixed_0_0,EIC_offshorewind_class3_moderate_fixed_0_1,EIC_offshorewind_class3_moderate_fixed_0_4,EIC_offshorewind_class3_moderate_fixed_0_5,EIC_offshorewind_class3_moderate_fixed_0_10,EIC_offshorewind_class3_moderate_fixed_0_11,EIC_offshorewind_class3_moderate_fixed_0_18,EIC_offshorewind_class3_moderate_fixed_0_19,EIC_offshorewind_class3_moderate_fixed_0_28,EIC_offshorewind_class3_moderate_fixed_0_29,EIC_offshorewind_class12_moderate_floating_1_0,EIC_offshorewind_class12_moderate_floating_1_1,EIC_offshorewind_class12_moderate_floating_1_6,EIC_offshorewind_class12_moderate_floating_1_7,EIC_offshorewind_class12_moderate_floating_1_18,EIC_offshorewind_class12_moderate_floating_1_19,EIC_offshorewind_class12_moderate_floating_1_38,EIC_offshorewind_class12_moderate_floating_1_39,EIC_offshorewind_class12_moderate_floating_1_68,EIC_offshorewind_class12_moderate_floating_1_69,EIC_offshorewind_class12_moderate_floating_0_0,EIC_offshorewind_class12_moderate_floating_0_1,EIC_offshorewind_class12_moderate_floating_0_8,EIC_offshorewind_class12_moderate_floating_0_9,EIC_offshorewind_class12_moderate_floating_0_28,EIC_offshorewind_class12_moderate_floating_0_29,EIC_offshorewind_class12_moderate_floating_0_68,EIC_offshorewind_class12_moderate_floating_0_69,EIC_offshorewind_class12_moderate_floating_0_138,EIC_offshorewind_class12_moderate_floating_0_139,TRE_naturalgas_ccavgcf_moderate_0,TRE_naturalgas_ctavgcf_moderate_0,TRE_battery_moderate_0,TRE_naturalgas_ccccsavgcf_conservative_0,TRE_naturalgas_ccccsavgcf_repowercoal_0,TRE_naturalgas_ccccsavgcf_retrofitngcc_0,TRE_advnuclear_atb_moderate_0,TRE_storage_metalair_advanced_0,TRE_hydrogen_ccavgcf_moderate_0,TRE_hydrogen_ctavgcf_moderate_0,TRE_hydrogen_ccavgcf_retrofitngcc_0,TRE_hydrogen_ctavgcf_retrofitngct_0,TRE_storage_hydrogen_advanced_0,TRE_landbasedwind_class1_moderate_0,TRE_landbasedwind_class1_moderate_1,TRE_landbasedwind_class1_moderate_2,TRE_landbasedwind_class1_moderate_3,TRE_landbasedwind_class1_moderate_4,TRE_landbasedwind_class1_moderate_5,TRE_landbasedwind_class1_moderate_6,TRE_landbasedwind_class1_moderate_7,TRE_landbasedwind_class1_moderate_8,TRE_landbasedwind_class1_moderate_9,TRE_utilitypv_class1_moderate_0,TRE_utilitypv_class1_moderate_1,TRE_utilitypv_class1_moderate_2,TRE_utilitypv_class1_moderate_3,TRE_utilitypv_class1_moderate_4,TRE_utilitypv_class1_moderate_5,TRE_utilitypv_class1_moderate_6,TRE_utilitypv_class1_moderate_7,TRE_utilitypv_class1_moderate_8,TRE_utilitypv_class1_moderate_9,TRE_offshorewind_class3_moderate_fixed_1_0,TRE_offshorewind_class3_moderate_fixed_1_1,TRE_offshorewind_class3_moderate_fixed_1_2,TRE_offshorewind_class3_moderate_fixed_1_3,TRE_offshorewind_class3_moderate_fixed_1_4,TRE_offshorewind_class3_moderate_fixed_1_5,TRE_offshorewind_class3_moderate_fixed_1_6,TRE_offshorewind_class3_moderate_fixed_1_7,TRE_offshorewind_class3_moderate_fixed_1_8,TRE_offshorewind_class3_moderate_fixed_1_9,TRE_offshorewind_class3_moderate_fixed_0_0,TRE_offshorewind_class3_moderate_fixed_0_1,TRE_offshorewind_class3_moderate_fixed_0_4,TRE_offshorewind_class3_moderate_fixed_0_5,TRE_offshorewind_class3_moderate_fixed_0_10,TRE_offshorewind_class3_moderate_fixed_0_11,TRE_offshorewind_class3_moderate_fixed_0_18,TRE_offshorewind_class3_moderate_fixed_0_19,TRE_offshorewind_class3_moderate_fixed_0_28,TRE_offshorewind_class3_moderate_fixed_0_29,TRE_offshorewind_class12_moderate_floating_1_0,TRE_offshorewind_class12_moderate_floating_1_1,TRE_offshorewind_class12_moderate_floating_1_6,TRE_offshorewind_class12_moderate_floating_1_7,TRE_offshorewind_class12_moderate_floating_1_18,TRE_offshorewind_class12_moderate_floating_1_19,TRE_offshorewind_class12_moderate_floating_1_38,TRE_offshorewind_class12_moderate_floating_1_39,TRE_offshorewind_class12_moderate_floating_1_68,TRE_offshorewind_class12_moderate_floating_1_69,TRE_offshorewind_class12_moderate_floating_0_0,TRE_offshorewind_class12_moderate_floating_0_1,TRE_offshorewind_class12_moderate_floating_0_8,TRE_offshorewind_class12_moderate_floating_0_9,TRE_offshorewind_class12_moderate_floating_0_28,TRE_offshorewind_class12_moderate_floating_0_29,TRE_offshorewind_class12_moderate_floating_0_68,TRE_offshorewind_class12_moderate_floating_0_69,TRE_offshorewind_class12_moderate_floating_0_138,TRE_offshorewind_class12_moderate_floating_0_139,WECC_naturalgas_ccavgcf_moderate_0,WECC_naturalgas_ctavgcf_moderate_0,WECC_battery_moderate_0,WECC_naturalgas_ccccsavgcf_conservative_0,WECC_naturalgas_ccccsavgcf_repowercoal_0,WECC_naturalgas_ccccsavgcf_retrofitngcc_0,WECC_advnuclear_atb_moderate_0,WECC_storage_metalair_advanced_0,WECC_hydrogen_ccavgcf_moderate_0,WECC_hydrogen_ctavgcf_moderate_0,WECC_hydrogen_ccavgcf_retrofitngcc_0,WECC_hydrogen_ctavgcf_retrofitngct_0,WECC_storage_hydrogen_advanced_0,WECC_landbasedwind_class1_moderate_0,WECC_landbasedwind_class1_moderate_1,WECC_landbasedwind_class1_moderate_2,WECC_landbasedwind_class1_moderate_3,WECC_landbasedwind_class1_moderate_4,WECC_landbasedwind_class1_moderate_5,WECC_landbasedwind_class1_moderate_6,WECC_landbasedwind_class1_moderate_7,WECC_landbasedwind_class1_moderate_8,WECC_landbasedwind_class1_moderate_9,WECC_utilitypv_class1_moderate_0,WECC_utilitypv_class1_moderate_1,WECC_utilitypv_class1_moderate_2,WECC_utilitypv_class1_moderate_3,WECC_utilitypv_class1_moderate_4,WECC_utilitypv_class1_moderate_5,WECC_utilitypv_class1_moderate_6,WECC_utilitypv_class1_moderate_7,WECC_utilitypv_class1_moderate_8,WECC_utilitypv_class1_moderate_9,WECC_offshorewind_class3_moderate_fixed_1_0,WECC_offshorewind_class3_moderate_fixed_1_1,WECC_offshorewind_class3_moderate_fixed_1_2,WECC_offshorewind_class3_moderate_fixed_1_3,WECC_offshorewind_class3_moderate_fixed_1_4,WECC_offshorewind_class3_moderate_fixed_1_5,WECC_offshorewind_class3_moderate_fixed_1_6,WECC_offshorewind_class3_moderate_fixed_1_7,WECC_offshorewind_class3_moderate_fixed_1_8,WECC_offshorewind_class3_moderate_fixed_1_9,WECC_offshorewind_class3_moderate_fixed_0_0,WECC_offshorewind_class3_moderate_fixed_0_1,WECC_offshorewind_class3_moderate_fixed_0_4,WECC_offshorewind_class3_moderate_fixed_0_5,WECC_offshorewind_class3_moderate_fixed_0_10,WECC_offshorewind_class3_moderate_fixed_0_11,WECC_offshorewind_class3_moderate_fixed_0_18,WECC_offshorewind_class3_moderate_fixed_0_19,WECC_offshorewind_class3_moderate_fixed_0_28,WECC_offshorewind_class3_moderate_fixed_0_29,WECC_offshorewind_class12_moderate_floating_1_0,WECC_offshorewind_class12_moderate_floating_1_1,WECC_offshorewind_class12_moderate_floating_1_6,WECC_offshorewind_class12_moderate_floating_1_7,WECC_offshorewind_class12_moderate_floating_1_18,WECC_offshorewind_class12_moderate_floating_1_19,WECC_offshorewind_class12_moderate_floating_1_38,WECC_offshorewind_class12_moderate_floating_1_39,WECC_offshorewind_class12_moderate_floating_1_68,WECC_offshorewind_class12_moderate_floating_1_69,WECC_offshorewind_class12_moderate_floating_0_0,WECC_offshorewind_class12_moderate_floating_0_1,WECC_offshorewind_class12_moderate_floating_0_8,WECC_offshorewind_class12_moderate_floating_0_9,WECC_offshorewind_class12_moderate_floating_0_28,WECC_offshorewind_class12_moderate_floating_0_29,WECC_offshorewind_class12_moderate_floating_0_68,WECC_offshorewind_class12_moderate_floating_0_69,WECC_offshorewind_class12_moderate_floating_0_138,WECC_offshorewind_class12_moderate_floating_0_139,WECC_trans_light_duty_1,EIC_trans_light_duty_1,TRE_trans_light_duty_1,WECC_comm_water_heat_1,EIC_comm_water_heat_1,TRE_comm_water_heat_1,WECC_res_water_heat_1,EIC_res_water_heat_1,TRE_res_water_heat_1,WECC_comm_space_heat_cool_1,EIC_comm_space_heat_cool_1,TRE_comm_space_heat_cool_1,WECC_res_space_heat_cool_1,EIC_res_space_heat_cool_1,TRE_res_space_heat_cool_1,EIC_naturalgas_ctavgcf_moderate_0_zerocarbon,TRE_naturalgas_ctavgcf_moderate_0_zerocarbon,WECC_naturalgas_ctavgcf_moderate_0_zerocarbon
+0,1,1,1,0.395,1,1,1,1,1,1,1,1,1,1,1,0.791,1,0.395,0,1,1,0.028,1,1,1,1,1,1,1,1,1,0.692,1,0.028,0,1,1,0.404,1,1,1,1,1,1,1,1,1,1,1,0.411,1,0.404,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0.966,0.978,0.936,0.939,0.867,0.752,0.666,0.527,0.548,0.98,0,0,0,0,0,0,0,0,0,0,0.657,0.799,0.577,0.847,0.609,0.08,0.034,0.268,0.297,0.019,0.657,0.799,0.577,0.847,0.609,0.08,0.034,0.268,0.297,0.019,0.657,0.799,0.577,0.847,0.609,0.08,0.034,0.268,0.297,0.019,0.657,0.799,0.577,0.847,0.609,0.08,0.034,0.268,0.297,0.019,1,1,1,1,1,1,1,1,1,1,1,1,1,0.84,0.705,0.752,0.794,0.614,0.749,0.485,0.799,0.637,1,0,0,0,0,0,0,0,0,0,0,0.409,0.526,0.167,0.48,0.18,0.651,0.505,0.64,0.32,0.352,0.409,0.526,0.167,0.48,0.18,0.651,0.505,0.64,0.32,0.352,0.409,0.526,0.167,0.48,0.18,0.651,0.505,0.64,0.32,0.352,0.409,0.526,0.167,0.48,0.18,0.651,0.505,0.64,0.32,0.352,1,1,1,1,1,1,1,1,1,1,1,1,1,0.814,0.752,0.532,0.49,0.407,0.945,0.371,0.889,0.325,0.969,0,0,0,0,0,0,0,0,0,0,0.032,0.029,0.017,0.865,0.032,0.008,0.12,0.004,0.119,0.002,0.032,0.029,0.017,0.865,0.032,0.008,0.12,0.004,0.119,0.002,0.032,0.029,0.017,0.865,0.032,0.008,0.12,0.004,0.119,0.002,0.032,0.029,0.017,0.865,0.032,0.008,0.12,0.004,0.119,0.002,0.154,0.126,0.095,0.4,0.336,0.278,0.334,0.309,0.295,0.122,0.101,0.018,0.461,0.278,0.185,1,1,1
+1,2,1,1,0.396,1,1,1,1,1,1,1,1,1,1,1,0.8,1,0.396,0,1,1,0.028,1,1,1,1,1,1,1,1,1,0.708,1,0.028,0,1,1,0.404,1,1,1,1,1,1,1,1,1,1,1,0.41,1,0.404,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0.972,0.978,0.945,0.947,0.877,0.72,0.648,0.442,0.546,0.993,0,0,0,0,0,0,0,0,0,0,0.554,0.81,0.521,0.853,0.596,0.081,0.022,0.152,0.173,0.029,0.554,0.81,0.521,0.853,0.596,0.081,0.022,0.152,0.173,0.029,0.554,0.81,0.521,0.853,0.596,0.081,0.022,0.152,0.173,0.029,0.554,0.81,0.521,0.853,0.596,0.081,0.022,0.152,0.173,0.029,1,1,1,1,1,1,1,1,1,1,1,1,1,0.848,0.671,0.783,0.787,0.686,0.718,0.497,0.75,0.624,1,0,0,0,0,0,0,0,0,0,0,0.307,0.474,0.183,0.239,0.223,0.679,0.528,0.657,0.247,0.212,0.307,0.474,0.183,0.239,0.223,0.679,0.528,0.657,0.247,0.212,0.307,0.474,0.183,0.239,0.223,0.679,0.528,0.657,0.247,0.212,0.307,0.474,0.183,0.239,0.223,0.679,0.528,0.657,0.247,0.212,1,1,1,1,1,1,1,1,1,1,1,1,1,0.749,0.739,0.509,0.452,0.377,0.948,0.333,0.89,0.298,0.967,0,0,0,0,0,0,0,0,0,0,0.061,0.078,0.057,0.752,0.022,0.012,0.131,0.011,0.197,0.027,0.061,0.078,0.057,0.752,0.022,0.012,0.131,0.011,0.197,0.027,0.061,0.078,0.057,0.752,0.022,0.012,0.131,0.011,0.197,0.027,0.061,0.078,0.057,0.752,0.022,0.012,0.131,0.011,0.197,0.027,0.147,0.077,0.093,0.382,0.33,0.266,0.319,0.227,0.281,0.117,0.105,0.017,0.441,0.301,0.178,1,1,1
+2,3,1,1,0.396,1,1,1,1,1,1,1,1,1,1,1,0.789,1,0.396,0,1,1,0.028,1,1,1,1,1,1,1,1,1,0.641,1,0.028,0,1,1,0.404,1,1,1,1,1,1,1,1,1,1,1,0.365,1,0.404,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0.967,0.978,0.951,0.946,0.899,0.694,0.644,0.435,0.533,0.985,0,0,0,0,0,0,0,0,0,0,0.375,0.694,0.458,0.815,0.518,0.124,0.036,0.089,0.124,0.019,0.375,0.694,0.458,0.815,0.518,0.124,0.036,0.089,0.124,0.019,0.375,0.694,0.458,0.815,0.518,0.124,0.036,0.089,0.124,0.019,0.375,0.694,0.458,0.815,0.518,0.124,0.036,0.089,0.124,0.019,1,1,1,1,1,1,1,1,1,1,1,1,1,0.872,0.858,0.805,0.826,0.641,0.622,0.469,0.513,0.646,1,0,0,0,0,0,0,0,0,0,0,0.249,0.355,0.239,0.19,0.38,0.658,0.449,0.633,0.171,0.147,0.249,0.355,0.239,0.19,0.38,0.658,0.449,0.633,0.171,0.147,0.249,0.355,0.239,0.19,0.38,0.658,0.449,0.633,0.171,0.147,0.249,0.355,0.239,0.19,0.38,0.658,0.449,0.633,0.171,0.147,1,1,1,1,1,1,1,1,1,1,1,1,1,0.594,0.705,0.459,0.373,0.366,0.929,0.341,0.855,0.327,0.962,0,0,0,0,0,0,0,0,0,0,0.073,0.093,0.067,0.785,0.025,0.023,0.127,0.094,0.204,0.113,0.073,0.093,0.067,0.785,0.025,0.023,0.127,0.094,0.204,0.113,0.073,0.093,0.067,0.785,0.025,0.023,0.127,0.094,0.204,0.113,0.073,0.093,0.067,0.785,0.025,0.023,0.127,0.094,0.204,0.113,0.136,0.044,0.045,0.366,0.334,0.265,0.304,0.12,0.187,0.112,0.109,0.018,0.425,0.337,0.215,1,1,1
+3,4,1,1,0.397,1,1,1,1,1,1,1,1,1,1,1,0.771,1,0.397,0,1,1,0.028,1,1,1,1,1,1,1,1,1,0.61,1,0.028,0,1,1,0.403,1,1,1,1,1,1,1,1,1,1,1,0.35,1,0.403,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0.969,0.967,0.95,0.878,0.889,0.68,0.668,0.424,0.528,0.983,0,0,0,0,0,0,0,0,0,0,0.211,0.56,0.29,0.77,0.385,0.113,0.036,0.039,0.058,0.012,0.211,0.56,0.29,0.77,0.385,0.113,0.036,0.039,0.058,0.012,0.211,0.56,0.29,0.77,0.385,0.113,0.036,0.039,0.058,0.012,0.211,0.56,0.29,0.77,0.385,0.113,0.036,0.039,0.058,0.012,1,1,1,1,1,1,1,1,1,1,1,1,1,0.856,0.972,0.771,0.866,0.554,0.652,0.51,0.463,0.717,1,0,0,0,0,0,0,0,0,0,0,0.323,0.381,0.296,0.291,0.438,0.486,0.389,0.628,0.264,0.24,0.323,0.381,0.296,0.291,0.438,0.486,0.389,0.628,0.264,0.24,0.323,0.381,0.296,0.291,0.438,0.486,0.389,0.628,0.264,0.24,0.323,0.381,0.296,0.291,0.438,0.486,0.389,0.628,0.264,0.24,1,1,1,1,1,1,1,1,1,1,1,1,1,0.514,0.708,0.437,0.353,0.35,0.865,0.351,0.746,0.343,0.924,0,0,0,0,0,0,0,0,0,0,0.124,0.15,0.11,0.694,0.061,0.065,0.101,0.013,0.178,0.022,0.124,0.15,0.11,0.694,0.061,0.065,0.101,0.013,0.178,0.022,0.124,0.15,0.11,0.694,0.061,0.065,0.101,0.013,0.178,0.022,0.124,0.15,0.11,0.694,0.061,0.065,0.101,0.013,0.178,0.022,0.104,0.033,0.031,0.355,0.347,0.267,0.269,0.091,0.088,0.112,0.112,0.02,0.439,0.368,0.261,1,1,1
+4,5,1,1,0.397,1,1,1,1,1,1,1,1,1,1,1,0.761,1,0.397,0,1,1,0.027,1,1,1,1,1,1,1,1,1,0.559,1,0.027,0,1,1,0.403,1,1,1,1,1,1,1,1,1,1,1,0.343,1,0.403,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0.953,0.949,0.95,0.834,0.898,0.688,0.681,0.389,0.456,0.974,0,0,0,0,0,0,0,0,0,0,0.195,0.615,0.256,0.785,0.358,0.08,0.043,0.039,0.048,0.015,0.195,0.615,0.256,0.785,0.358,0.08,0.043,0.039,0.048,0.015,0.195,0.615,0.256,0.785,0.358,0.08,0.043,0.039,0.048,0.015,0.195,0.615,0.256,0.785,0.358,0.08,0.043,0.039,0.048,0.015,1,1,1,1,1,1,1,1,1,1,1,1,1,0.8,0.929,0.71,0.806,0.619,0.66,0.702,0.634,0.861,0.996,0,0,0,0,0,0,0,0,0,0,0.277,0.412,0.18,0.212,0.343,0.456,0.432,0.693,0.443,0.393,0.277,0.412,0.18,0.212,0.343,0.456,0.432,0.693,0.443,0.393,0.277,0.412,0.18,0.212,0.343,0.456,0.432,0.693,0.443,0.393,0.277,0.412,0.18,0.212,0.343,0.456,0.432,0.693,0.443,0.393,1,1,1,1,1,1,1,1,1,1,1,1,1,0.436,0.614,0.418,0.367,0.351,0.751,0.342,0.644,0.323,0.735,0,0,0,0,0,0,0,0,0,0,0.14,0.272,0.179,0.562,0.091,0.117,0.051,0,0.161,0,0.14,0.272,0.179,0.562,0.091,0.117,0.051,0,0.161,0,0.14,0.272,0.179,0.562,0.091,0.117,0.051,0,0.161,0,0.14,0.272,0.179,0.562,0.091,0.117,0.051,0,0.161,0,0.048,0.015,0.022,0.353,0.386,0.273,0.159,0.079,0.082,0.119,0.117,0.023,0.516,0.397,0.298,1,1,1
+5,6,1,1,0.398,1,1,1,1,1,1,1,1,1,1,1,0.739,1,0.398,0,1,1,0.027,1,1,1,1,1,1,1,1,1,0.475,1,0.027,0,1,1,0.403,1,1,1,1,1,1,1,1,1,1,1,0.335,1,0.403,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0.953,0.946,0.956,0.852,0.911,0.735,0.691,0.401,0.514,0.961,0,0,0,0,0,0,0,0,0,0,0.123,0.552,0.188,0.766,0.298,0.068,0.048,0.026,0.035,0.025,0.123,0.552,0.188,0.766,0.298,0.068,0.048,0.026,0.035,0.025,0.123,0.552,0.188,0.766,0.298,0.068,0.048,0.026,0.035,0.025,0.123,0.552,0.188,0.766,0.298,0.068,0.048,0.026,0.035,0.025,1,1,1,1,1,1,1,1,1,1,1,1,1,0.749,0.895,0.737,0.697,0.763,0.512,0.88,0.307,0.951,0.954,0,0,0,0,0,0,0,0,0,0,0.364,0.22,0.289,0.299,0.364,0.36,0.368,0.609,0.34,0.238,0.364,0.22,0.289,0.299,0.364,0.36,0.368,0.609,0.34,0.238,0.364,0.22,0.289,0.299,0.364,0.36,0.368,0.609,0.34,0.238,0.364,0.22,0.289,0.299,0.364,0.36,0.368,0.609,0.34,0.238,1,1,1,1,1,1,1,1,1,1,1,1,1,0.424,0.585,0.375,0.353,0.338,0.783,0.328,0.726,0.303,0.695,0,0,0,0,0,0,0,0,0,0,0.136,0.582,0.372,0.513,0.141,0.218,0.039,0,0.148,0,0.136,0.582,0.372,0.513,0.141,0.218,0.039,0,0.148,0,0.136,0.582,0.372,0.513,0.141,0.218,0.039,0,0.148,0,0.136,0.582,0.372,0.513,0.141,0.218,0.039,0,0.148,0,0.037,0.013,0.006,0.359,0.452,0.294,0.08,0.096,0.065,0.129,0.126,0.025,0.582,0.405,0.334,1,1,1
+6,7,1,1,0.398,1,1,1,1,1,1,1,1,1,1,1,0.709,1,0.398,0,1,1,0.027,1,1,1,1,1,1,1,1,1,0.405,1,0.027,0,1,1,0.402,1,1,1,1,1,1,1,1,1,1,1,0.341,1,0.402,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0.95,0.949,0.954,0.842,0.915,0.766,0.69,0.415,0.581,0.936,0,0,0,0,0,0,0,0,0,0,0.096,0.408,0.113,0.686,0.225,0.095,0.05,0.005,0.011,0.054,0.096,0.408,0.113,0.686,0.225,0.095,0.05,0.005,0.011,0.054,0.096,0.408,0.113,0.686,0.225,0.095,0.05,0.005,0.011,0.054,0.096,0.408,0.113,0.686,0.225,0.095,0.05,0.005,0.011,0.054,1,1,1,1,1,1,1,1,1,1,1,1,1,0.758,0.896,0.802,0.68,0.851,0.476,0.889,0.219,0.92,0.788,0,0,0,0,0,0,0,0,0,0,0.864,0.1,0.924,0.976,0.841,0.299,0.223,0.555,0.198,0.618,0.864,0.1,0.924,0.976,0.841,0.299,0.223,0.555,0.198,0.618,0.864,0.1,0.924,0.976,0.841,0.299,0.223,0.555,0.198,0.618,0.864,0.1,0.924,0.976,0.841,0.299,0.223,0.555,0.198,0.618,1,1,1,1,1,1,1,1,1,1,1,1,1,0.391,0.56,0.357,0.349,0.345,0.791,0.335,0.822,0.29,0.689,0,0,0,0,0,0,0,0,0,0,0.205,0.718,0.504,0.466,0.173,0.282,0.031,0,0.157,0,0.205,0.718,0.504,0.466,0.173,0.282,0.031,0,0.157,0,0.205,0.718,0.504,0.466,0.173,0.282,0.031,0,0.157,0,0.205,0.718,0.504,0.466,0.173,0.282,0.031,0,0.157,0,0.021,0.027,0.011,0.38,0.52,0.337,0.082,0.221,0.088,0.137,0.134,0.037,0.63,0.424,0.346,1,1,1
+7,8,1,1,0.399,1,1,1,1,1,1,1,1,1,1,1,0.675,1,0.399,0,1,1,0.027,1,1,1,1,1,1,1,1,1,0.332,1,0.027,0,1,1,0.402,1,1,1,1,1,1,1,1,1,1,1,0.283,1,0.402,0,0,0.021,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0.917,0.885,0.937,0.85,0.93,0.785,0.683,0.467,0.529,0.839,0,0,0,0,0,0,0,0,0,0,0.048,0.246,0.089,0.499,0.163,0.053,0.059,0.001,0.004,0.048,0.048,0.246,0.089,0.499,0.163,0.053,0.059,0.001,0.004,0.048,0.048,0.246,0.089,0.499,0.163,0.053,0.059,0.001,0.004,0.048,0.048,0.246,0.089,0.499,0.163,0.053,0.059,0.001,0.004,0.048,1,1,1,1,1,1,1,1,1,1,1,1,1,0.789,0.911,0.847,0.709,0.962,0.523,0.899,0.252,0.838,0.434,0,0,0,0,0,0,0,0,0,0,0.859,0.042,0.931,0.878,0.932,0.065,0.111,0.72,0.231,0.784,0.859,0.042,0.931,0.878,0.932,0.065,0.111,0.72,0.231,0.784,0.859,0.042,0.931,0.878,0.932,0.065,0.111,0.72,0.231,0.784,0.859,0.042,0.931,0.878,0.932,0.065,0.111,0.72,0.231,0.784,1,1,1,1,1,1,1,1,1,1,1,1,1,0.338,0.493,0.321,0.299,0.304,0.643,0.286,0.682,0.247,0.485,0,0,0,0,0,0,0,0,0,0,0.307,0.832,0.688,0.516,0.246,0.479,0.021,0,0.15,0,0.307,0.832,0.688,0.516,0.246,0.479,0.021,0,0.15,0,0.307,0.832,0.688,0.516,0.246,0.479,0.021,0,0.15,0,0.307,0.832,0.688,0.516,0.246,0.479,0.021,0,0.15,0,0.009,0.05,0.023,0.426,0.599,0.379,0.074,0.501,0.217,0.147,0.15,0.076,0.666,0.346,0.378,1,1,1
+8,9,1,1,0.399,1,1,1,1,1,1,1,1,1,1,1,0.661,1,0.399,0.127,1,1,0.027,1,1,1,1,1,1,1,1,1,0.337,1,0.027,0,1,1,0.402,1,1,1,1,1,1,1,1,1,1,1,0.287,1,0.402,0,0,0.15,0.064,1,1,1,1,1,1,1,1,1,1,1,1,1,0.876,0.828,0.928,0.881,0.952,0.816,0.728,0.528,0.628,0.82,0,0.081,0,0.077,0.043,0,0.005,0.09,0.058,0,0.049,0.125,0.084,0.452,0.144,0.068,0.054,0.001,0.007,0.052,0.049,0.125,0.084,0.452,0.144,0.068,0.054,0.001,0.007,0.052,0.049,0.125,0.084,0.452,0.144,0.068,0.054,0.001,0.007,0.052,0.049,0.125,0.084,0.452,0.144,0.068,0.054,0.001,0.007,0.052,1,1,1,1,1,1,1,1,1,1,1,1,1,0.816,0.934,0.927,0.819,0.986,0.688,0.93,0.369,0.844,0.266,0,0,0,0,0,0,0,0,0,0,0.982,0.24,0.911,1,0.975,0.015,0.176,0.613,0.491,0.772,0.982,0.24,0.911,1,0.975,0.015,0.176,0.613,0.491,0.772,0.982,0.24,0.911,1,0.975,0.015,0.176,0.613,0.491,0.772,0.982,0.24,0.911,1,0.975,0.015,0.176,0.613,0.491,0.772,1,1,1,1,1,1,1,1,1,1,1,1,1,0.387,0.552,0.359,0.323,0.325,0.764,0.319,0.845,0.288,0.531,0,0,0,0,0,0,0,0,0,0,0.36,0.766,0.672,0.664,0.243,0.465,0.008,0,0.137,0,0.36,0.766,0.672,0.664,0.243,0.465,0.008,0,0.137,0,0.36,0.766,0.672,0.664,0.243,0.465,0.008,0,0.137,0,0.36,0.766,0.672,0.664,0.243,0.465,0.008,0,0.137,0,0.023,0.09,0.042,0.488,0.64,0.457,0.135,0.809,0.499,0.16,0.149,0.09,0.693,0.279,0.275,1,1,1
+9,10,1,1,0.4,1,1,1,1,1,1,1,1,1,1,1,0.519,1,0.4,0.351,1,1,0.027,1,1,1,1,1,1,1,1,1,0.175,1,0.027,0.171,1,1,0.402,1,1,1,1,1,1,1,1,1,1,1,0.147,1,0.402,0,0.016,0.394,0.424,1,1,1,1,1,1,1,1,1,1,1,1,1,0.594,0.483,0.704,0.571,0.579,0.519,0.219,0.152,0.055,0.58,0.151,0.403,0.168,0.367,0.294,0.114,0.162,0.408,0.343,0.027,0.088,0.098,0.095,0.489,0.132,0.082,0.059,0.069,0.067,0.097,0.088,0.098,0.095,0.489,0.132,0.082,0.059,0.069,0.067,0.097,0.088,0.098,0.095,0.489,0.132,0.082,0.059,0.069,0.067,0.097,0.088,0.098,0.095,0.489,0.132,0.082,0.059,0.069,0.067,0.097,1,1,1,1,1,1,1,1,1,1,1,1,1,0.414,0.467,0.578,0.451,0.652,0.512,0.563,0.354,0.332,0.117,0.247,0.23,0.258,0.224,0.253,0.209,0.2,0.258,0.11,0.217,0.985,0.33,0.96,1,0.588,0.399,0.488,0.226,0.619,0.943,0.985,0.33,0.96,1,0.588,0.399,0.488,0.226,0.619,0.943,0.985,0.33,0.96,1,0.588,0.399,0.488,0.226,0.619,0.943,0.985,0.33,0.96,1,0.588,0.399,0.488,0.226,0.619,0.943,1,1,1,1,1,1,1,1,1,1,1,1,1,0.183,0.342,0.184,0.217,0.198,0.273,0.16,0.237,0.13,0.247,0,0,0,0,0,0,0,0,0,0,0.301,0.145,0.288,0.975,0.351,0.358,0.388,0.176,0.296,0.179,0.301,0.145,0.288,0.975,0.351,0.358,0.388,0.176,0.296,0.179,0.301,0.145,0.288,0.975,0.351,0.358,0.388,0.176,0.296,0.179,0.301,0.145,0.288,0.975,0.351,0.358,0.388,0.176,0.296,0.179,0.043,0.157,0.078,0.551,0.665,0.508,0.323,0.887,0.79,0.261,0.128,0.076,0.66,0.251,0.243,1,1,1
+10,11,1,1,0.4,1,1,1,1,1,1,1,1,1,1,1,0.541,1,0.4,0.515,1,1,0.027,1,1,1,1,1,1,1,1,1,0.202,1,0.027,0.43,1,1,0.401,1,1,1,1,1,1,1,1,1,1,1,0.129,1,0.401,0.072,0.24,0.63,0.683,1,1,1,1,1,1,1,1,1,1,1,1,1,0.662,0.526,0.752,0.604,0.669,0.53,0.314,0.176,0.097,0.598,0.44,0.574,0.452,0.542,0.515,0.463,0.465,0.568,0.533,0.429,0.116,0.046,0.158,0.298,0.083,0.183,0.069,0.167,0.116,0.132,0.116,0.046,0.158,0.298,0.083,0.183,0.069,0.167,0.116,0.132,0.116,0.046,0.158,0.298,0.083,0.183,0.069,0.167,0.116,0.132,0.116,0.046,0.158,0.298,0.083,0.183,0.069,0.167,0.116,0.132,1,1,1,1,1,1,1,1,1,1,1,1,1,0.514,0.564,0.658,0.596,0.753,0.65,0.679,0.559,0.427,0.092,0.524,0.52,0.531,0.516,0.529,0.507,0.499,0.532,0.458,0.477,0.999,0.733,0.989,1,0.809,1,0.864,0.266,0.637,0.966,0.999,0.733,0.989,1,0.809,1,0.864,0.266,0.637,0.966,0.999,0.733,0.989,1,0.809,1,0.864,0.266,0.637,0.966,0.999,0.733,0.989,1,0.809,1,0.864,0.266,0.637,0.966,1,1,1,1,1,1,1,1,1,1,1,1,1,0.179,0.315,0.177,0.217,0.186,0.262,0.161,0.159,0.142,0.171,0.193,0.189,0.199,0,0.184,0,0.096,0,0.135,0,0.275,0.131,0.273,0.994,0.424,0.358,0.216,0.191,0.097,0.169,0.275,0.131,0.273,0.994,0.424,0.358,0.216,0.191,0.097,0.169,0.275,0.131,0.273,0.994,0.424,0.358,0.216,0.191,0.097,0.169,0.275,0.131,0.273,0.994,0.424,0.358,0.216,0.191,0.097,0.169,0.079,0.229,0.14,0.632,0.676,0.554,0.638,0.812,0.824,0.308,0.1,0.049,0.46,0.265,0.228,1,1,1
+11,12,1,1,0.4,1,1,1,1,1,1,1,1,1,1,1,0.609,1,0.4,0.601,1,1,0.027,1,1,1,1,1,1,1,1,1,0.351,1,0.027,0.592,1,1,0.401,1,1,1,1,1,1,1,1,1,1,1,0.147,1,0.401,0.352,0.494,0.773,0.847,1,1,1,1,1,1,1,1,1,1,1,1,1,0.78,0.672,0.825,0.762,0.704,0.606,0.435,0.271,0.25,0.662,0.597,0.657,0.624,0.619,0.628,0.656,0.614,0.648,0.623,0.615,0.273,0.026,0.407,0.115,0.157,0.228,0.092,0.327,0.311,0.13,0.273,0.026,0.407,0.115,0.157,0.228,0.092,0.327,0.311,0.13,0.273,0.026,0.407,0.115,0.157,0.228,0.092,0.327,0.311,0.13,0.273,0.026,0.407,0.115,0.157,0.228,0.092,0.327,0.311,0.13,1,1,1,1,1,1,1,1,1,1,1,1,1,0.783,0.857,0.826,0.828,0.878,0.848,0.79,0.902,0.496,0.101,0.692,0.694,0.699,0.685,0.694,0.682,0.68,0.696,0.655,0.636,1,0.987,0.993,1,0.985,1,0.969,0.539,0.733,0.976,1,0.987,0.993,1,0.985,1,0.969,0.539,0.733,0.976,1,0.987,0.993,1,0.985,1,0.969,0.539,0.733,0.976,1,0.987,0.993,1,0.985,1,0.969,0.539,0.733,0.976,1,1,1,1,1,1,1,1,1,1,1,1,1,0.202,0.323,0.189,0.203,0.194,0.324,0.157,0.23,0.147,0.235,0.469,0.429,0.473,0.043,0.458,0.001,0.367,0,0.395,0,0.225,0.569,0.524,0.923,0.208,0.439,0.038,0.173,0.024,0.137,0.225,0.569,0.524,0.923,0.208,0.439,0.038,0.173,0.024,0.137,0.225,0.569,0.524,0.923,0.208,0.439,0.038,0.173,0.024,0.137,0.225,0.569,0.524,0.923,0.208,0.439,0.038,0.173,0.024,0.137,0.142,0.301,0.194,0.675,0.692,0.572,0.873,0.716,0.738,0.266,0.082,0.03,0.385,0.235,0.244,1,1,1
+12,13,1,1,0.401,1,1,1,1,1,1,1,1,1,1,1,0.63,1,0.401,0.622,1,1,0.027,1,1,1,1,1,1,1,1,1,0.322,1,0.027,0.684,1,1,0.401,1,1,1,1,1,1,1,1,1,1,1,0.129,1,0.401,0.519,0.661,0.826,0.936,1,1,1,1,1,1,1,1,1,1,1,1,1,0.785,0.714,0.807,0.726,0.7,0.596,0.489,0.355,0.406,0.664,0.697,0.695,0.717,0.635,0.674,0.764,0.677,0.672,0.661,0.723,0.53,0.173,0.553,0.21,0.39,0.421,0.09,0.437,0.353,0.149,0.53,0.173,0.553,0.21,0.39,0.421,0.09,0.437,0.353,0.149,0.53,0.173,0.553,0.21,0.39,0.421,0.09,0.437,0.353,0.149,0.53,0.173,0.553,0.21,0.39,0.421,0.09,0.437,0.353,0.149,1,1,1,1,1,1,1,1,1,1,1,1,1,0.771,0.815,0.838,0.768,0.888,0.838,0.762,0.897,0.487,0.069,0.79,0.782,0.793,0.779,0.789,0.786,0.783,0.789,0.769,0.723,1,1,0.992,1,0.995,1,1,0.962,0.928,0.975,1,1,0.992,1,0.995,1,1,0.962,0.928,0.975,1,1,0.992,1,0.995,1,1,0.962,0.928,0.975,1,1,0.992,1,0.995,1,1,0.962,0.928,0.975,1,1,1,1,1,1,1,1,1,1,1,1,1,0.268,0.346,0.203,0.189,0.184,0.318,0.138,0.194,0.129,0.365,0.626,0.599,0.614,0.249,0.601,0.215,0.554,0.215,0.548,0.248,0.354,0.63,0.579,0.902,0.204,0.464,0.027,0.108,0.026,0.08,0.354,0.63,0.579,0.902,0.204,0.464,0.027,0.108,0.026,0.08,0.354,0.63,0.579,0.902,0.204,0.464,0.027,0.108,0.026,0.08,0.354,0.63,0.579,0.902,0.204,0.464,0.027,0.108,0.026,0.08,0.225,0.384,0.256,0.707,0.695,0.6,0.841,0.647,0.66,0.19,0.08,0.025,0.364,0.207,0.176,1,1,1
+13,14,1,1,0.401,1,1,1,1,1,1,1,1,1,1,1,0.61,1,0.401,0.621,1,1,0.027,1,1,1,1,1,1,1,1,1,0.218,1,0.027,0.735,1,1,0.401,1,1,1,1,1,1,1,1,1,1,1,0.155,1,0.401,0.617,0.754,0.78,0.958,1,1,1,1,1,1,1,1,1,1,1,1,1,0.714,0.629,0.772,0.636,0.698,0.587,0.499,0.435,0.518,0.654,0.734,0.697,0.752,0.637,0.678,0.811,0.695,0.666,0.666,0.79,0.587,0.178,0.657,0.192,0.483,0.28,0.097,0.455,0.399,0.133,0.587,0.178,0.657,0.192,0.483,0.28,0.097,0.455,0.399,0.133,0.587,0.178,0.657,0.192,0.483,0.28,0.097,0.455,0.399,0.133,0.587,0.178,0.657,0.192,0.483,0.28,0.097,0.455,0.399,0.133,1,1,1,1,1,1,1,1,1,1,1,1,1,0.59,0.661,0.733,0.583,0.839,0.714,0.694,0.739,0.441,0.004,0.826,0.827,0.835,0.834,0.834,0.838,0.834,0.826,0.826,0.761,1,1,0.995,1,0.993,1,1,0.965,1,0.98,1,1,0.995,1,0.993,1,1,0.965,1,0.98,1,1,0.995,1,0.993,1,1,0.965,1,0.98,1,1,0.995,1,0.993,1,1,0.965,1,0.98,1,1,1,1,1,1,1,1,1,1,1,1,1,0.303,0.334,0.211,0.161,0.18,0.497,0.126,0.455,0.132,0.679,0.721,0.689,0.682,0.371,0.667,0.383,0.659,0.423,0.623,0.444,0.302,0.537,0.516,0.895,0.265,0.514,0.097,0.097,0.047,0.072,0.302,0.537,0.516,0.895,0.265,0.514,0.097,0.097,0.047,0.072,0.302,0.537,0.516,0.895,0.265,0.514,0.097,0.097,0.047,0.072,0.302,0.537,0.516,0.895,0.265,0.514,0.097,0.097,0.047,0.072,0.302,0.425,0.325,0.724,0.687,0.603,0.747,0.671,0.604,0.135,0.083,0.033,0.346,0.191,0.148,1,1,1
+14,15,1,1,0.402,1,1,1,1,1,1,1,1,1,1,1,0.626,1,0.402,0.581,1,1,0.027,1,1,1,1,1,1,1,1,1,0.178,1,0.027,0.739,1,1,0.4,1,1,1,1,1,1,1,1,1,1,1,0.172,1,0.4,0.674,0.793,0.64,0.917,1,1,1,1,1,1,1,1,1,1,1,1,1,0.728,0.659,0.771,0.624,0.704,0.575,0.497,0.464,0.42,0.693,0.731,0.667,0.745,0.62,0.661,0.808,0.686,0.645,0.636,0.806,0.665,0.15,0.724,0.172,0.529,0.402,0.18,0.535,0.564,0.071,0.665,0.15,0.724,0.172,0.529,0.402,0.18,0.535,0.564,0.071,0.665,0.15,0.724,0.172,0.529,0.402,0.18,0.535,0.564,0.071,0.665,0.15,0.724,0.172,0.529,0.402,0.18,0.535,0.564,0.071,1,1,1,1,1,1,1,1,1,1,1,1,1,0.549,0.623,0.733,0.473,0.853,0.536,0.632,0.407,0.395,0,0.831,0.839,0.838,0.841,0.828,0.844,0.828,0.816,0.837,0.751,1,1,0.996,1,0.994,1,1,0.966,1,0.98,1,1,0.996,1,0.994,1,1,0.966,1,0.98,1,1,0.996,1,0.994,1,1,0.966,1,0.98,1,1,0.996,1,0.994,1,1,0.966,1,0.98,1,1,1,1,1,1,1,1,1,1,1,1,1,0.269,0.285,0.19,0.161,0.149,0.478,0.106,0.398,0.113,0.681,0.768,0.694,0.725,0.427,0.7,0.478,0.714,0.447,0.662,0.5,0.322,0.236,0.396,0.766,0.176,0.53,0.113,0.168,0.092,0.089,0.322,0.236,0.396,0.766,0.176,0.53,0.113,0.168,0.092,0.089,0.322,0.236,0.396,0.766,0.176,0.53,0.113,0.168,0.092,0.089,0.322,0.236,0.396,0.766,0.176,0.53,0.113,0.168,0.092,0.089,0.387,0.445,0.343,0.74,0.684,0.598,0.667,0.553,0.655,0.136,0.083,0.033,0.249,0.182,0.119,1,1,1
+15,16,1,1,0.402,1,1,1,1,1,1,1,1,1,1,1,0.645,1,0.402,0.487,1,1,0.027,1,1,1,1,1,1,1,1,1,0.182,1,0.027,0.706,1,1,0.4,1,1,1,1,1,1,1,1,1,1,1,0.141,1,0.4,0.685,0.788,0.435,0.81,1,1,1,1,1,1,1,1,1,1,1,1,1,0.754,0.698,0.792,0.657,0.736,0.6,0.481,0.427,0.414,0.732,0.674,0.605,0.689,0.565,0.599,0.757,0.635,0.554,0.55,0.747,0.798,0.113,0.737,0.166,0.585,0.343,0.214,0.753,0.694,0.045,0.798,0.113,0.737,0.166,0.585,0.343,0.214,0.753,0.694,0.045,0.798,0.113,0.737,0.166,0.585,0.343,0.214,0.753,0.694,0.045,0.798,0.113,0.737,0.166,0.585,0.343,0.214,0.753,0.694,0.045,1,1,1,1,1,1,1,1,1,1,1,1,1,0.549,0.547,0.738,0.445,0.861,0.566,0.643,0.514,0.376,0,0.794,0.796,0.795,0.799,0.785,0.805,0.802,0.782,0.8,0.725,0.998,1,0.995,1,0.992,1,1,0.942,1,0.984,0.998,1,0.995,1,0.992,1,1,0.942,1,0.984,0.998,1,0.995,1,0.992,1,1,0.942,1,0.984,0.998,1,0.995,1,0.992,1,1,0.942,1,0.984,1,1,1,1,1,1,1,1,1,1,1,1,1,0.223,0.278,0.168,0.169,0.144,0.441,0.104,0.352,0.106,0.717,0.772,0.667,0.723,0.447,0.713,0.452,0.729,0.443,0.651,0.434,0.222,0.218,0.377,0.841,0.119,0.519,0.11,0.115,0.116,0.071,0.222,0.218,0.377,0.841,0.119,0.519,0.11,0.115,0.116,0.071,0.222,0.218,0.377,0.841,0.119,0.519,0.11,0.115,0.116,0.071,0.222,0.218,0.377,0.841,0.119,0.519,0.11,0.115,0.116,0.071,0.456,0.47,0.361,0.732,0.665,0.595,0.633,0.439,0.487,0.144,0.083,0.033,0.212,0.182,0.098,1,1,1
+16,17,1,1,0.403,1,1,1,1,1,1,1,1,1,1,1,0.641,1,0.403,0.328,1,1,0.027,1,1,1,1,1,1,1,1,1,0.187,1,0.027,0.618,1,1,0.4,1,1,1,1,1,1,1,1,1,1,1,0.123,1,0.4,0.661,0.7,0.229,0.624,1,1,1,1,1,1,1,1,1,1,1,1,1,0.761,0.692,0.794,0.659,0.729,0.601,0.468,0.374,0.366,0.742,0.543,0.463,0.565,0.415,0.455,0.642,0.52,0.407,0.399,0.646,0.821,0.167,0.74,0.287,0.64,0.327,0.211,0.719,0.744,0.054,0.821,0.167,0.74,0.287,0.64,0.327,0.211,0.719,0.744,0.054,0.821,0.167,0.74,0.287,0.64,0.327,0.211,0.719,0.744,0.054,0.821,0.167,0.74,0.287,0.64,0.327,0.211,0.719,0.744,0.054,1,1,1,1,1,1,1,1,1,1,1,1,1,0.589,0.581,0.746,0.462,0.82,0.533,0.625,0.47,0.421,0,0.698,0.698,0.7,0.706,0.697,0.715,0.715,0.691,0.72,0.648,0.976,1,0.994,1,0.994,1,1,0.968,1,0.984,0.976,1,0.994,1,0.994,1,1,0.968,1,0.984,0.976,1,0.994,1,0.994,1,1,0.968,1,0.984,0.976,1,0.994,1,0.994,1,1,0.968,1,0.984,1,1,1,1,1,1,1,1,1,1,1,1,1,0.202,0.239,0.158,0.157,0.139,0.378,0.097,0.215,0.083,0.668,0.732,0.595,0.678,0.421,0.667,0.432,0.697,0.441,0.591,0.44,0.058,0.184,0.365,0.735,0.101,0.519,0.169,0.202,0.163,0.1,0.058,0.184,0.365,0.735,0.101,0.519,0.169,0.202,0.163,0.1,0.058,0.184,0.365,0.735,0.101,0.519,0.169,0.202,0.163,0.1,0.058,0.184,0.365,0.735,0.101,0.519,0.169,0.202,0.163,0.1,0.473,0.517,0.379,0.722,0.638,0.566,0.643,0.481,0.404,0.142,0.088,0.033,0.186,0.182,0.095,1,1,1
+17,18,1,1,0.403,1,1,1,1,1,1,1,1,1,1,1,0.669,1,0.403,0.114,1,1,0.026,1,1,1,1,1,1,1,1,1,0.173,1,0.026,0.493,1,1,0.4,1,1,1,1,1,1,1,1,1,1,1,0.202,1,0.4,0.609,0.526,0.062,0.343,1,1,1,1,1,1,1,1,1,1,1,1,1,0.703,0.645,0.787,0.654,0.923,0.745,0.786,0.92,0.786,0.754,0.377,0.205,0.386,0.147,0.218,0.483,0.323,0.161,0.183,0.469,0.803,0.447,0.667,0.193,0.52,0.253,0.016,0.78,0.768,0.006,0.803,0.447,0.667,0.193,0.52,0.253,0.016,0.78,0.768,0.006,0.803,0.447,0.667,0.193,0.52,0.253,0.016,0.78,0.768,0.006,0.803,0.447,0.667,0.193,0.52,0.253,0.016,0.78,0.768,0.006,1,1,1,1,1,1,1,1,1,1,1,1,1,0.516,0.508,0.677,0.433,0.849,0.502,0.603,0.374,0.402,0,0.556,0.559,0.562,0.573,0.561,0.586,0.583,0.546,0.599,0.474,0.965,1,0.978,0.854,0.917,1,1,0.849,0.998,0.978,0.965,1,0.978,0.854,0.917,1,1,0.849,0.998,0.978,0.965,1,0.978,0.854,0.917,1,1,0.849,0.998,0.978,0.965,1,0.978,0.854,0.917,1,1,0.849,0.998,0.978,1,1,1,1,1,1,1,1,1,1,1,1,1,0.232,0.377,0.232,0.182,0.211,0.609,0.164,0.467,0.147,0.868,0.675,0.51,0.594,0.321,0.567,0.373,0.608,0.4,0.482,0.467,0.282,0.517,0.566,0.992,0.27,0.573,0.169,0,0.384,0,0.282,0.517,0.566,0.992,0.27,0.573,0.169,0,0.384,0,0.282,0.517,0.566,0.992,0.27,0.573,0.169,0,0.384,0,0.282,0.517,0.566,0.992,0.27,0.573,0.169,0,0.384,0,0.496,0.519,0.413,0.708,0.604,0.523,0.461,0.594,0.466,0.148,0.096,0.034,0.173,0.202,0.089,1,1,1
+18,19,1,1,0.404,1,1,1,1,1,1,1,1,1,1,1,0.671,1,0.404,0.034,1,1,0.026,1,1,1,1,1,1,1,1,1,0.178,1,0.026,0.264,1,1,0.399,1,1,1,1,1,1,1,1,1,1,1,0.22,1,0.399,0.471,0.246,0.002,0.013,1,1,1,1,1,1,1,1,1,1,1,1,1,0.673,0.637,0.755,0.641,0.847,0.748,0.813,0.926,0.87,0.74,0.106,0.011,0.076,0.001,0.001,0.124,0.033,0.005,0.007,0.112,0.877,0.648,0.809,0.356,0.615,0.474,0.015,0.753,0.795,0.003,0.877,0.648,0.809,0.356,0.615,0.474,0.015,0.753,0.795,0.003,0.877,0.648,0.809,0.356,0.615,0.474,0.015,0.753,0.795,0.003,0.877,0.648,0.809,0.356,0.615,0.474,0.015,0.753,0.795,0.003,1,1,1,1,1,1,1,1,1,1,1,1,1,0.633,0.57,0.744,0.505,0.834,0.536,0.568,0.405,0.363,0,0.297,0.291,0.299,0.308,0.298,0.326,0.33,0.28,0.344,0.232,0.922,1,0.977,0.849,0.978,1,1,0.915,0.985,0.911,0.922,1,0.977,0.849,0.978,1,1,0.915,0.985,0.911,0.922,1,0.977,0.849,0.978,1,1,0.915,0.985,0.911,0.922,1,0.977,0.849,0.978,1,1,0.915,0.985,0.911,1,1,1,1,1,1,1,1,1,1,1,1,1,0.291,0.323,0.257,0.182,0.227,0.535,0.171,0.38,0.137,0.869,0.515,0.297,0.408,0.178,0.369,0.347,0.44,0.314,0.294,0.295,0.405,0.651,0.686,0.993,0.318,0.568,0.073,0,0.282,0,0.405,0.651,0.686,0.993,0.318,0.568,0.073,0,0.282,0,0.405,0.651,0.686,0.993,0.318,0.568,0.073,0,0.282,0,0.405,0.651,0.686,0.993,0.318,0.568,0.073,0,0.282,0,0.532,0.563,0.392,0.677,0.579,0.481,0.431,0.621,0.573,0.155,0.097,0.036,0.173,0.184,0.109,1,1,1
+19,20,1,1,0.404,1,1,1,1,1,1,1,1,1,1,1,0.648,1,0.404,0,1,1,0.026,1,1,1,1,1,1,1,1,1,0.145,1,0.026,0,1,1,0.399,1,1,1,1,1,1,1,1,1,1,1,0.237,1,0.399,0.255,0.041,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0.717,0.598,0.801,0.668,0.885,0.777,0.835,0.915,0.919,0.713,0,0,0,0,0,0,0,0,0,0,0.935,0.636,0.896,0.64,0.768,0.481,0.022,0.895,0.87,0.002,0.935,0.636,0.896,0.64,0.768,0.481,0.022,0.895,0.87,0.002,0.935,0.636,0.896,0.64,0.768,0.481,0.022,0.895,0.87,0.002,0.935,0.636,0.896,0.64,0.768,0.481,0.022,0.895,0.87,0.002,1,1,1,1,1,1,1,1,1,1,1,1,1,0.642,0.514,0.753,0.469,0.813,0.494,0.566,0.294,0.445,0.003,0,0,0,0,0,0,0,0,0,0,0.999,1,0.995,1,0.994,1,1,0.961,0.998,0.954,0.999,1,0.995,1,0.994,1,1,0.961,0.998,0.954,0.999,1,0.995,1,0.994,1,1,0.961,0.998,0.954,0.999,1,0.995,1,0.994,1,1,0.961,0.998,0.954,1,1,1,1,1,1,1,1,1,1,1,1,1,0.241,0.308,0.298,0.198,0.256,0.446,0.19,0.315,0.144,0.73,0.254,0.031,0.165,0.05,0.126,0.138,0.144,0.13,0.077,0.083,0.503,0.718,0.723,0.993,0.367,0.582,0.075,0.001,0.209,0,0.503,0.718,0.723,0.993,0.367,0.582,0.075,0.001,0.209,0,0.503,0.718,0.723,0.993,0.367,0.582,0.075,0.001,0.209,0,0.503,0.718,0.723,0.993,0.367,0.582,0.075,0.001,0.209,0,0.565,0.595,0.489,0.65,0.542,0.485,0.532,0.683,0.618,0.173,0.083,0.025,0.191,0.175,0.079,1,1,1
+20,21,1,1,0.405,1,1,1,1,1,1,1,1,1,1,1,0.66,1,0.405,0,1,1,0.026,1,1,1,1,1,1,1,1,1,0.16,1,0.026,0,1,1,0.399,1,1,1,1,1,1,1,1,1,1,1,0.24,1,0.399,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0.768,0.665,0.817,0.692,0.892,0.792,0.884,0.94,0.941,0.725,0,0,0,0,0,0,0,0,0,0,0.975,0.649,0.922,0.767,0.884,0.413,0.045,0.948,0.943,0.005,0.975,0.649,0.922,0.767,0.884,0.413,0.045,0.948,0.943,0.005,0.975,0.649,0.922,0.767,0.884,0.413,0.045,0.948,0.943,0.005,0.975,0.649,0.922,0.767,0.884,0.413,0.045,0.948,0.943,0.005,1,1,1,1,1,1,1,1,1,1,1,1,1,0.764,0.746,0.86,0.643,0.874,0.618,0.741,0.341,0.619,0.046,0,0,0,0,0,0,0,0,0,0,1,1,0.995,1,0.995,1,1,0.971,1,0.978,1,1,0.995,1,0.995,1,1,0.971,1,0.978,1,1,0.995,1,0.995,1,1,0.971,1,0.978,1,1,0.995,1,0.995,1,1,0.971,1,0.978,1,1,1,1,1,1,1,1,1,1,1,1,1,0.246,0.322,0.407,0.315,0.375,0.403,0.305,0.318,0.224,0.649,0,0,0,0,0,0,0,0,0,0,0.531,0.783,0.713,0.993,0.355,0.51,0.023,0,0.064,0,0.531,0.783,0.713,0.993,0.355,0.51,0.023,0,0.064,0,0.531,0.783,0.713,0.993,0.355,0.51,0.023,0,0.064,0,0.531,0.783,0.713,0.993,0.355,0.51,0.023,0,0.064,0,0.585,0.54,0.498,0.637,0.509,0.452,0.64,0.678,0.716,0.157,0.08,0.02,0.189,0.186,0.076,1,1,1
+21,22,1,1,0.405,1,1,1,1,1,1,1,1,1,1,1,0.671,1,0.405,0,1,1,0.026,1,1,1,1,1,1,1,1,1,0.187,1,0.026,0,1,1,0.399,1,1,1,1,1,1,1,1,1,1,1,0.25,1,0.399,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0.797,0.689,0.841,0.702,0.959,0.802,0.927,0.94,0.951,0.714,0,0,0,0,0,0,0,0,0,0,0.987,0.909,0.961,0.909,0.956,0.468,0.072,0.978,0.962,0.006,0.987,0.909,0.961,0.909,0.956,0.468,0.072,0.978,0.962,0.006,0.987,0.909,0.961,0.909,0.956,0.468,0.072,0.978,0.962,0.006,0.987,0.909,0.961,0.909,0.956,0.468,0.072,0.978,0.962,0.006,1,1,1,1,1,1,1,1,1,1,1,1,1,0.816,0.702,0.864,0.736,0.889,0.783,0.839,0.646,0.738,0.189,0,0,0,0,0,0,0,0,0,0,1,1,0.995,1,0.995,1,1,0.973,1,0.98,1,1,0.995,1,0.995,1,1,0.973,1,0.98,1,1,0.995,1,0.995,1,1,0.973,1,0.98,1,1,0.995,1,0.995,1,1,0.973,1,0.98,1,1,1,1,1,1,1,1,1,1,1,1,1,0.226,0.332,0.44,0.373,0.429,0.46,0.361,0.35,0.281,0.575,0,0,0,0,0,0,0,0,0,0,0.56,0.841,0.719,0.99,0.357,0.471,0.027,0,0.034,0,0.56,0.841,0.719,0.99,0.357,0.471,0.027,0,0.034,0,0.56,0.841,0.719,0.99,0.357,0.471,0.027,0,0.034,0,0.56,0.841,0.719,0.99,0.357,0.471,0.027,0,0.034,0,0.658,0.457,0.436,0.613,0.468,0.423,0.65,0.622,0.681,0.103,0.088,0.024,0.148,0.215,0.087,1,1,1
+22,23,1,1,0.406,1,1,1,1,1,1,1,1,1,1,1,0.697,1,0.406,0,1,1,0.026,1,1,1,1,1,1,1,1,1,0.21,1,0.026,0,1,1,0.398,1,1,1,1,1,1,1,1,1,1,1,0.235,1,0.398,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0.846,0.751,0.858,0.711,0.968,0.8,0.929,0.938,0.955,0.687,0,0,0,0,0,0,0,0,0,0,0.987,0.999,0.969,0.944,0.954,0.661,0.111,0.983,0.964,0.005,0.987,0.999,0.969,0.944,0.954,0.661,0.111,0.983,0.964,0.005,0.987,0.999,0.969,0.944,0.954,0.661,0.111,0.983,0.964,0.005,0.987,0.999,0.969,0.944,0.954,0.661,0.111,0.983,0.964,0.005,1,1,1,1,1,1,1,1,1,1,1,1,1,0.819,0.734,0.857,0.708,0.938,0.826,0.905,0.816,0.845,0.324,0,0,0,0,0,0,0,0,0,0,1,1,0.996,1,0.996,1,1,0.977,1,0.982,1,1,0.996,1,0.996,1,1,0.977,1,0.982,1,1,0.996,1,0.996,1,1,0.977,1,0.982,1,1,0.996,1,0.996,1,1,0.977,1,0.982,1,1,1,1,1,1,1,1,1,1,1,1,1,0.172,0.39,0.463,0.42,0.455,0.44,0.395,0.328,0.31,0.364,0,0,0,0,0,0,0,0,0,0,0.573,0.838,0.762,0.947,0.367,0.572,0.073,0,0.11,0,0.573,0.838,0.762,0.947,0.367,0.572,0.073,0,0.11,0,0.573,0.838,0.762,0.947,0.367,0.572,0.073,0,0.11,0,0.573,0.838,0.762,0.947,0.367,0.572,0.073,0,0.11,0,0.617,0.369,0.373,0.571,0.422,0.39,0.719,0.528,0.631,0.082,0.098,0.021,0.161,0.262,0.115,1,1,1
+23,24,1,1,0.406,1,1,1,1,1,1,1,1,1,1,1,0.695,1,0.406,0,1,1,0.026,1,1,1,1,1,1,1,1,1,0.221,1,0.026,0,1,1,0.398,1,1,1,1,1,1,1,1,1,1,1,0.239,1,0.398,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0.842,0.766,0.855,0.694,0.972,0.793,0.92,0.941,0.952,0.675,0,0,0,0,0,0,0,0,0,0,0.986,0.999,0.941,0.937,0.954,0.661,0.202,0.982,0.963,0.011,0.986,0.999,0.941,0.937,0.954,0.661,0.202,0.982,0.963,0.011,0.986,0.999,0.941,0.937,0.954,0.661,0.202,0.982,0.963,0.011,0.986,0.999,0.941,0.937,0.954,0.661,0.202,0.982,0.963,0.011,1,1,1,1,1,1,1,1,1,1,1,1,1,0.837,0.767,0.854,0.705,0.948,0.826,0.918,0.869,0.83,0.157,0,0,0,0,0,0,0,0,0,0,1,1,0.996,1,0.996,1,1,0.977,1,0.982,1,1,0.996,1,0.996,1,1,0.977,1,0.982,1,1,0.996,1,0.996,1,1,0.977,1,0.982,1,1,0.996,1,0.996,1,1,0.977,1,0.982,1,1,1,1,1,1,1,1,1,1,1,1,1,0.202,0.448,0.463,0.416,0.444,0.483,0.4,0.393,0.344,0.428,0,0,0,0,0,0,0,0,0,0,0.574,0.845,0.806,0.935,0.387,0.641,0.033,0,0.088,0,0.574,0.845,0.806,0.935,0.387,0.641,0.033,0,0.088,0,0.574,0.845,0.806,0.935,0.387,0.641,0.033,0,0.088,0,0.574,0.845,0.806,0.935,0.387,0.641,0.033,0,0.088,0,0.524,0.266,0.292,0.532,0.373,0.349,0.658,0.424,0.517,0.093,0.107,0.017,0.187,0.313,0.169,1,1,1
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_vre_stor/Maximum_capacity_requirement.csv b/test/LoadResourceData/test_gen_vre_stor/Maximum_capacity_requirement.csv
new file mode 100644
index 0000000000..f92a4c0fa9
--- /dev/null
+++ b/test/LoadResourceData/test_gen_vre_stor/Maximum_capacity_requirement.csv
@@ -0,0 +1,4 @@
+MaxCapReqConstraint,Constraint_Description,Max_MW
+1,LDES_1,0
+2,LDES_2,0
+3,LDES_3,0
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_vre_stor/Minimum_capacity_requirement.csv b/test/LoadResourceData/test_gen_vre_stor/Minimum_capacity_requirement.csv
new file mode 100644
index 0000000000..858294b6fc
--- /dev/null
+++ b/test/LoadResourceData/test_gen_vre_stor/Minimum_capacity_requirement.csv
@@ -0,0 +1,4 @@
+MinCapReqConstraint,Constraint_Description,Min_MW
+1,ME_Wind,8000
+2,ME_OSW,5000
+3,MA_Solar,3200
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_vre_stor/Network.csv b/test/LoadResourceData/test_gen_vre_stor/Network.csv
new file mode 100644
index 0000000000..1a7000a3b6
--- /dev/null
+++ b/test/LoadResourceData/test_gen_vre_stor/Network.csv
@@ -0,0 +1,4 @@
+Network_zones,Network_Lines,Start_Zone,End_Zone,Line_Max_Flow_MW,Line_Min_Flow_MW,transmission_path_name,Line_Reinforcement_Cost_per_MWyr,Line_Reinforcement_Cost_per_MW,Line_Loss_Percentage,Line_Max_Reinforcement_MW,DerateCapRes_1,CapRes_Excl_1,DerateCapRes_2,CapRes_Excl_2,DerateCapRes_3,CapRes_Excl_3
+z1,1.0,1,2,820.0,820.0,EIC_to_TRE,45958.0,948772.0,0.0649,410.0,0.95,0.0,0.95,0.0,0.95,0.0
+z2,2.0,1,3,1830.0,1830.0,EIC_to_WECC,71600.0,1478140.0,0.1001,915.0,0.95,0.0,0.95,0.0,0.95,0.0
+z3,,,,,,,,,,,,,,,,
diff --git a/test/LoadResourceData/test_gen_vre_stor/Reserves.csv b/test/LoadResourceData/test_gen_vre_stor/Reserves.csv
new file mode 100644
index 0000000000..d310c45ffb
--- /dev/null
+++ b/test/LoadResourceData/test_gen_vre_stor/Reserves.csv
@@ -0,0 +1,2 @@
+Reg_Req_Percent_Demand,Reg_Req_Percent_VRE,Rsv_Req_Percent_Demand,Rsv_Req_Percent_VRE,Unmet_Rsv_Penalty_Dollar_per_MW,Dynamic_Contingency,Static_Contingency_MW
+0.01,0.0032,0.033,0.0795,1000,0,0
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_vre_stor/Resources/Flex_demand.csv b/test/LoadResourceData/test_gen_vre_stor/Resources/Flex_demand.csv
new file mode 100644
index 0000000000..8f187e97d2
--- /dev/null
+++ b/test/LoadResourceData/test_gen_vre_stor/Resources/Flex_demand.csv
@@ -0,0 +1,16 @@
+Resource,Zone,Existing_Cap_MWh,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Max_Flexible_Demand_Delay,Max_Flexible_Demand_Advance,Flexible_Demand_Energy_Eff,region,technology,cluster
+WECC_trans_light_duty_1,3,0,88930.5,0,0,0,0,0,5,0,1,WECC,trans_light_duty,1
+EIC_trans_light_duty_1,1,0,227552.1,0,0,0,0,0,5,0,1,EIC,trans_light_duty,1
+TRE_trans_light_duty_1,2,0,34387.8,0,0,0,0,0,5,0,1,TRE,trans_light_duty,1
+WECC_comm_water_heat_1,3,0,1130.3,0,0,0,0,0,2,2,1,WECC,comm_water_heat,1
+EIC_comm_water_heat_1,1,0,2922.1,0,0,0,0,0,2,2,1,EIC,comm_water_heat,1
+TRE_comm_water_heat_1,2,0,368.7,0,0,0,0,0,2,2,1,TRE,comm_water_heat,1
+WECC_res_water_heat_1,3,0,2578.7,0,0,0,0,0,2,2,1,WECC,res_water_heat,1
+EIC_res_water_heat_1,1,0,8238.2,0,0,0,0,0,2,2,1,EIC,res_water_heat,1
+TRE_res_water_heat_1,2,0,1049.5,0,0,0,0,0,2,2,1,TRE,res_water_heat,1
+WECC_comm_space_heat_cool_1,3,0,7483.3,0,0,0,0,0,1,1,1,WECC,comm_space_heat_cool,1
+EIC_comm_space_heat_cool_1,1,0,41624.8,0,0,0,0,0,1,1,1,EIC,comm_space_heat_cool,1
+TRE_comm_space_heat_cool_1,2,0,6978.6,0,0,0,0,0,1,1,1,TRE,comm_space_heat_cool,1
+WECC_res_space_heat_cool_1,3,0,12467.5,0,0,0,0,0,1,1,1,WECC,res_space_heat_cool,1
+EIC_res_space_heat_cool_1,1,0,47457,0,0,0,0,0,1,1,1,EIC,res_space_heat_cool,1
+TRE_res_space_heat_cool_1,2,0,7585.9,0,0,0,0,0,1,1,1,TRE,res_space_heat_cool,1
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_vre_stor/Resources/Hydro.csv b/test/LoadResourceData/test_gen_vre_stor/Resources/Hydro.csv
new file mode 100644
index 0000000000..c73b4b625d
--- /dev/null
+++ b/test/LoadResourceData/test_gen_vre_stor/Resources/Hydro.csv
@@ -0,0 +1,4 @@
+Resource Zone Existing_Cap_MWh Existing_Cap_MW New_Build Can_Retire Cap_Size Min_Cap_MW Max_Cap_MW Inv_Cost_per_MWyr Fixed_OM_Cost_per_MWyr Var_OM_Cost_per_MWh Heat_Rate_MMBTU_per_MWh Fuel Min_Power Self_Disch Eff_Up Eff_Down Hydro_Energy_to_Power_Ratio Ramp_Up_Percentage Ramp_Dn_Percentage Up_Time Down_Time region technology cluster
+EIC_conventional_hydroelectric_1 1 0 24200.8 0 0 32.35 0 0 0 47048 0 10.34 None 0.273 0 1 1 1 1 1 0 0 EIC Conventional Hydroelectric 1
+TRE_conventional_hydroelectric_1 2 0 477 0 0 25.1 0 0 0 47048 0 10.34 None 0 0 1 1 1 1 1 0 0 TRE Conventional Hydroelectric 1
+WECC_conventional_hydroelectric_1 3 0 46528 0 0 72.7 0 0 0 47048 0 10.34 None 0.214 0 1 1 1 1 1 0 0 WECC Conventional Hydroelectric 1
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_vre_stor/Resources/Must_run.csv b/test/LoadResourceData/test_gen_vre_stor/Resources/Must_run.csv
new file mode 100644
index 0000000000..300177484d
--- /dev/null
+++ b/test/LoadResourceData/test_gen_vre_stor/Resources/Must_run.csv
@@ -0,0 +1,10 @@
+Resource Zone Existing_Cap_MWh Existing_Cap_MW New_Build Can_Retire Cap_Size Min_Cap_MW Max_Cap_MW Inv_Cost_per_MWyr Fixed_OM_Cost_per_MWyr Var_OM_Cost_per_MWh Start_Cost_per_MW Heat_Rate_MMBTU_per_MWh Fuel Min_Power Self_Disch Eff_Up Eff_Down Ramp_Up_Percentage Ramp_Dn_Percentage Up_Time Down_Time region technology cluster
+EIC_biomass_1 1 0 1722.5 0 0 1.27 0 0 0 150850 7.32 172 17.03 biomass 0.308 0 1 1 1 1 0 0 EIC Biomass 1
+EIC_small_hydroelectric_1 1 0 1672.2 0 0 1.06 0 0 0 47048 0 0 10.34 None 0.273 0 1 1 1 1 0 0 EIC Small Hydroelectric 1
+TRE_biomass_1 2 0 44.5 0 0 1.48 0 0 0 150850 6.51 172 15.15 biomass 0.591 0 1 1 1 1 0 0 TRE Biomass 1
+TRE_small_hydroelectric_1 2 0 11.2 0 0 0.75 0 0 0 47048 0 0 10.34 None 0 0 1 1 1 1 0 0 TRE Small Hydroelectric 1
+WECC_biomass_1 3 0 551 0 0 2.01 0 0 0 150850 7.14 172 16.63 biomass 0.362 0 1 1 1 1 0 0 WECC Biomass 1
+WECC_small_hydroelectric_1 3 0 1064.3 0 0 1.62 0 0 0 47048 0 0 10.34 None 0.181 0 1 1 1 1 0 0 WECC Small Hydroelectric 1
+WECC_distributed_generation_1 3 0 250535 0 0 0 0 0 0 0 0 0 0 None 0 0 1 1 1 1 0 0 WECC distributed_generation 1
+EIC_distributed_generation_1 1 0 1770000 0 0 0 0 0 0 0 0 0 0 None 0 0 1 1 1 1 0 0 EIC distributed_generation 1
+TRE_distributed_generation_1 2 0 17006 0 0 0 0 0 0 0 0 0 0 None 0 0 1 1 1 1 0 0 TRE distributed_generation 1
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_vre_stor/Resources/Resource_capacity_reserve_margin.csv b/test/LoadResourceData/test_gen_vre_stor/Resources/Resource_capacity_reserve_margin.csv
new file mode 100644
index 0000000000..3a11636a20
--- /dev/null
+++ b/test/LoadResourceData/test_gen_vre_stor/Resources/Resource_capacity_reserve_margin.csv
@@ -0,0 +1,272 @@
+Resource,Derating_Factor_1,Derating_Factor_2,Derating_Factor_3
+EIC_landbasedwind_class1_moderate_0,0.95,0,0
+EIC_landbasedwind_class1_moderate_1,0.95,0,0
+EIC_landbasedwind_class1_moderate_2,0.95,0,0
+EIC_landbasedwind_class1_moderate_3,0.95,0,0
+EIC_landbasedwind_class1_moderate_4,0.95,0,0
+EIC_landbasedwind_class1_moderate_5,0.95,0,0
+EIC_landbasedwind_class1_moderate_6,0.95,0,0
+EIC_landbasedwind_class1_moderate_7,0.95,0,0
+EIC_landbasedwind_class1_moderate_8,0.95,0,0
+EIC_landbasedwind_class1_moderate_9,0.95,0,0
+EIC_storage_metalair_advanced_0,0.95,0,0
+EIC_utilitypv_class1_moderate_0,0.95,0,0
+EIC_utilitypv_class1_moderate_1,0.95,0,0
+EIC_utilitypv_class1_moderate_2,0.95,0,0
+EIC_utilitypv_class1_moderate_3,0.95,0,0
+EIC_utilitypv_class1_moderate_4,0.95,0,0
+EIC_utilitypv_class1_moderate_5,0.95,0,0
+EIC_utilitypv_class1_moderate_6,0.95,0,0
+EIC_utilitypv_class1_moderate_7,0.95,0,0
+EIC_utilitypv_class1_moderate_8,0.95,0,0
+EIC_utilitypv_class1_moderate_9,0.95,0,0
+TRE_landbasedwind_class1_moderate_0,0,0.95,0
+TRE_landbasedwind_class1_moderate_1,0,0.95,0
+TRE_landbasedwind_class1_moderate_2,0,0.95,0
+TRE_landbasedwind_class1_moderate_3,0,0.95,0
+TRE_landbasedwind_class1_moderate_4,0,0.95,0
+TRE_landbasedwind_class1_moderate_5,0,0.95,0
+TRE_landbasedwind_class1_moderate_6,0,0.95,0
+TRE_landbasedwind_class1_moderate_7,0,0.95,0
+TRE_landbasedwind_class1_moderate_8,0,0.95,0
+TRE_landbasedwind_class1_moderate_9,0,0.95,0
+TRE_storage_metalair_advanced_0,0,0.95,0
+TRE_utilitypv_class1_moderate_0,0,0.95,0
+TRE_utilitypv_class1_moderate_1,0,0.95,0
+TRE_utilitypv_class1_moderate_2,0,0.95,0
+TRE_utilitypv_class1_moderate_3,0,0.95,0
+TRE_utilitypv_class1_moderate_4,0,0.95,0
+TRE_utilitypv_class1_moderate_5,0,0.95,0
+TRE_utilitypv_class1_moderate_6,0,0.95,0
+TRE_utilitypv_class1_moderate_7,0,0.95,0
+TRE_utilitypv_class1_moderate_8,0,0.95,0
+TRE_utilitypv_class1_moderate_9,0,0.95,0
+WECC_landbasedwind_class1_moderate_0,0,0,0.95
+WECC_landbasedwind_class1_moderate_1,0,0,0.95
+WECC_landbasedwind_class1_moderate_2,0,0,0.95
+WECC_landbasedwind_class1_moderate_3,0,0,0.95
+WECC_landbasedwind_class1_moderate_4,0,0,0.95
+WECC_landbasedwind_class1_moderate_5,0,0,0.95
+WECC_landbasedwind_class1_moderate_6,0,0,0.95
+WECC_landbasedwind_class1_moderate_7,0,0,0.95
+WECC_landbasedwind_class1_moderate_8,0,0,0.95
+WECC_landbasedwind_class1_moderate_9,0,0,0.95
+WECC_storage_metalair_advanced_0,0,0,0.95
+WECC_utilitypv_class1_moderate_0,0,0,0.95
+WECC_utilitypv_class1_moderate_1,0,0,0.95
+WECC_utilitypv_class1_moderate_2,0,0,0.95
+WECC_utilitypv_class1_moderate_3,0,0,0.95
+WECC_utilitypv_class1_moderate_4,0,0,0.95
+WECC_utilitypv_class1_moderate_5,0,0,0.95
+WECC_utilitypv_class1_moderate_6,0,0,0.95
+WECC_utilitypv_class1_moderate_7,0,0,0.95
+WECC_utilitypv_class1_moderate_8,0,0,0.95
+WECC_utilitypv_class1_moderate_9,0,0,0.95
+EIC_batteries_1,0,0,0.95
+EIC_biomass_1,0.95,0,0
+EIC_conventional_hydroelectric_1,0,0.95,0
+EIC_conventional_steam_coal_1,0,0,0.95
+EIC_conventional_steam_coal_2,0.95,0,0
+EIC_hydroelectric_pumped_storage_1,0,0.95,0
+EIC_natural_gas_fired_combined_cycle_1,0,0,0.95
+EIC_natural_gas_fired_combined_cycle_2,0.95,0,0
+EIC_natural_gas_fired_combustion_turbine_1,0,0.95,0
+EIC_natural_gas_fired_combustion_turbine_2,0,0,0.95
+EIC_natural_gas_internal_combustion_engine_1,0.95,0,0
+EIC_natural_gas_steam_turbine_1,0,0.95,0
+EIC_nuclear_1,0,0,0.95
+EIC_offshore_wind_turbine_1,0.95,0,0
+EIC_onshore_wind_turbine_1,0,0.95,0
+EIC_petroleum_liquids_1,0.8,0,0
+EIC_small_hydroelectric_1,0,0.8,0
+EIC_solar_photovoltaic_1,0,0,0.8
+TRE_batteries_1,0.93,0,0
+TRE_biomass_1,0.8,0,0
+TRE_conventional_hydroelectric_1,0,0.93,0
+TRE_conventional_steam_coal_1,0,0.8,0
+TRE_conventional_steam_coal_2,0,0,0.93
+TRE_natural_gas_fired_combined_cycle_1,0,0,0.8
+TRE_natural_gas_fired_combined_cycle_2,0,0,0.8
+TRE_natural_gas_fired_combustion_turbine_1,0.8,0,0
+TRE_natural_gas_fired_combustion_turbine_2,0,0.8,0
+TRE_natural_gas_internal_combustion_engine_1,0.95,0,0
+TRE_natural_gas_steam_turbine_1,0.95,0,0
+TRE_nuclear_1,0,0.95,0
+TRE_onshore_wind_turbine_1,0,0,0.95
+TRE_petroleum_liquids_1,0,0,0.95
+TRE_small_hydroelectric_1,0.95,0,0
+TRE_solar_photovoltaic_1,0,0.95,0
+WECC_batteries_1,0,0,0.95
+WECC_biomass_1,0.93,0,0
+WECC_conventional_hydroelectric_1,0.93,0,0
+WECC_conventional_steam_coal_1,0.93,0,0
+WECC_conventional_steam_coal_2,0.93,0,0
+WECC_geothermal_1,0.93,0,0
+WECC_hydroelectric_pumped_storage_1,0.93,0,0
+WECC_natural_gas_fired_combined_cycle_1,0.93,0,0
+WECC_natural_gas_fired_combined_cycle_2,0.93,0,0
+WECC_natural_gas_fired_combustion_turbine_1,0.93,0,0
+WECC_natural_gas_fired_combustion_turbine_2,0.93,0,0
+WECC_natural_gas_internal_combustion_engine_1,0,0.93,0
+WECC_natural_gas_steam_turbine_1,0,0.93,0
+WECC_nuclear_1,0,0.93,0
+WECC_onshore_wind_turbine_1,0,0.93,0
+WECC_petroleum_liquids_1,0,0.93,0
+WECC_small_hydroelectric_1,0,0.93,0
+WECC_solar_photovoltaic_1,0,0.93,0
+WECC_distributed_generation_1,0,0.93,0
+EIC_distributed_generation_1,0,0.93,0
+TRE_distributed_generation_1,0,0.93,0
+EIC_naturalgas_ccavgcf_moderate_0,0,0,0.93
+EIC_naturalgas_ctavgcf_moderate_0,0,0,0.93
+EIC_battery_moderate_0,0,0,0.93
+EIC_naturalgas_ccccsavgcf_conservative_0,0,0,0.93
+EIC_advnuclear_atb_moderate_0,0,0,0.93
+EIC_offshorewind_class3_moderate_fixed_1_0,0,0,0.93
+EIC_offshorewind_class3_moderate_fixed_1_1,0,0,0.93
+EIC_offshorewind_class3_moderate_fixed_1_2,0,0,0.93
+EIC_offshorewind_class3_moderate_fixed_1_3,0,0,0.93
+EIC_offshorewind_class3_moderate_fixed_1_4,0,0,0.93
+EIC_offshorewind_class3_moderate_fixed_1_5,0.93,0,0
+EIC_offshorewind_class3_moderate_fixed_1_6,0.93,0,0
+EIC_offshorewind_class3_moderate_fixed_1_7,0.93,0,0
+EIC_offshorewind_class3_moderate_fixed_1_8,0.93,0,0
+EIC_offshorewind_class3_moderate_fixed_1_9,0,0.93,0
+EIC_offshorewind_class3_moderate_fixed_0_0,0,0.93,0
+EIC_offshorewind_class3_moderate_fixed_0_1,0,0.93,0
+EIC_offshorewind_class3_moderate_fixed_0_4,0,0.93,0
+EIC_offshorewind_class3_moderate_fixed_0_5,0,0,0.93
+EIC_offshorewind_class3_moderate_fixed_0_10,0,0,0.93
+EIC_offshorewind_class3_moderate_fixed_0_11,0,0,0.93
+EIC_offshorewind_class3_moderate_fixed_0_18,0,0,0.93
+EIC_offshorewind_class3_moderate_fixed_0_19,0.93,0,0
+EIC_offshorewind_class3_moderate_fixed_0_28,0,0.93,0
+EIC_offshorewind_class3_moderate_fixed_0_29,0,0,0.93
+EIC_offshorewind_class12_moderate_floating_1_0,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_1_1,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_1_6,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_1_7,0,0.8,0
+EIC_offshorewind_class12_moderate_floating_1_18,0,0.8,0
+EIC_offshorewind_class12_moderate_floating_1_19,0,0,0.93
+EIC_offshorewind_class12_moderate_floating_1_38,0,0,0.8
+EIC_offshorewind_class12_moderate_floating_1_39,0,0,0.8
+EIC_offshorewind_class12_moderate_floating_1_68,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_1_69,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_0_0,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_0_1,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_0_8,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_0_9,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_0_28,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_0_29,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_0_68,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_0_69,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_0_138,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_0_139,0.8,0,0
+TRE_naturalgas_ccavgcf_moderate_0,0.8,0,0
+TRE_naturalgas_ctavgcf_moderate_0,0.8,0,0
+TRE_battery_moderate_0,0.8,0,0
+TRE_naturalgas_ccccsavgcf_conservative_0,0.8,0,0
+TRE_advnuclear_atb_moderate_0,0.8,0,0
+TRE_offshorewind_class3_moderate_fixed_1_0,0.8,0,0
+TRE_offshorewind_class3_moderate_fixed_1_1,0.8,0,0
+TRE_offshorewind_class3_moderate_fixed_1_2,0.8,0,0
+TRE_offshorewind_class3_moderate_fixed_1_3,0.8,0,0
+TRE_offshorewind_class3_moderate_fixed_1_4,0.8,0,0
+TRE_offshorewind_class3_moderate_fixed_1_5,0.8,0,0
+TRE_offshorewind_class3_moderate_fixed_1_6,0.8,0,0
+TRE_offshorewind_class3_moderate_fixed_1_7,0.8,0,0
+TRE_offshorewind_class3_moderate_fixed_1_8,0.8,0,0
+TRE_offshorewind_class3_moderate_fixed_1_9,0.8,0,0
+TRE_offshorewind_class3_moderate_fixed_0_0,0.8,0,0
+TRE_offshorewind_class3_moderate_fixed_0_1,0.8,0,0
+TRE_offshorewind_class3_moderate_fixed_0_4,0.8,0,0
+TRE_offshorewind_class3_moderate_fixed_0_5,0.8,0,0
+TRE_offshorewind_class3_moderate_fixed_0_10,0.8,0,0
+TRE_offshorewind_class3_moderate_fixed_0_11,0.8,0,0
+TRE_offshorewind_class3_moderate_fixed_0_18,0.8,0,0
+TRE_offshorewind_class3_moderate_fixed_0_19,0.8,0,0
+TRE_offshorewind_class3_moderate_fixed_0_28,0.8,0,0
+TRE_offshorewind_class3_moderate_fixed_0_29,0.8,0,0
+TRE_offshorewind_class12_moderate_floating_1_0,0.8,0,0
+TRE_offshorewind_class12_moderate_floating_1_1,0.8,0,0
+TRE_offshorewind_class12_moderate_floating_1_6,0.8,0,0
+TRE_offshorewind_class12_moderate_floating_1_7,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_1_18,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_1_19,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_1_38,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_1_39,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_1_68,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_1_69,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_0_0,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_0_1,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_0_8,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_0_9,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_0_28,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_0_29,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_0_68,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_0_69,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_0_138,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_0_139,0,0.8,0
+WECC_naturalgas_ccavgcf_moderate_0,0,0.8,0
+WECC_naturalgas_ctavgcf_moderate_0,0,0.8,0
+WECC_battery_moderate_0,0,0.8,0
+WECC_naturalgas_ccccsavgcf_conservative_0,0,0.8,0
+WECC_advnuclear_atb_moderate_0,0,0.8,0
+WECC_offshorewind_class3_moderate_fixed_1_0,0,0.8,0
+WECC_offshorewind_class3_moderate_fixed_1_1,0,0.8,0
+WECC_offshorewind_class3_moderate_fixed_1_2,0,0.8,0
+WECC_offshorewind_class3_moderate_fixed_1_3,0,0.8,0
+WECC_offshorewind_class3_moderate_fixed_1_4,0,0.8,0
+WECC_offshorewind_class3_moderate_fixed_1_5,0,0.8,0
+WECC_offshorewind_class3_moderate_fixed_1_6,0,0.8,0
+WECC_offshorewind_class3_moderate_fixed_1_7,0,0.8,0
+WECC_offshorewind_class3_moderate_fixed_1_8,0,0.8,0
+WECC_offshorewind_class3_moderate_fixed_1_9,0,0.8,0
+WECC_offshorewind_class3_moderate_fixed_0_0,0,0.8,0
+WECC_offshorewind_class3_moderate_fixed_0_1,0,0.8,0
+WECC_offshorewind_class3_moderate_fixed_0_4,0,0.8,0
+WECC_offshorewind_class3_moderate_fixed_0_5,0,0.8,0
+WECC_offshorewind_class3_moderate_fixed_0_10,0,0.8,0
+WECC_offshorewind_class3_moderate_fixed_0_11,0,0.8,0
+WECC_offshorewind_class3_moderate_fixed_0_18,0,0.8,0
+WECC_offshorewind_class3_moderate_fixed_0_19,0,0.8,0
+WECC_offshorewind_class3_moderate_fixed_0_28,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_0_29,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_1_0,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_1_1,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_1_6,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_1_7,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_1_18,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_1_19,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_1_38,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_1_39,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_1_68,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_1_69,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_0_0,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_0_1,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_0_8,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_0_9,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_0_28,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_0_29,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_0_68,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_0_69,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_0_138,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_0_139,0,0,0.8
+WECC_trans_light_duty_1,0,0,0.8
+EIC_trans_light_duty_1,0,0,0.8
+TRE_trans_light_duty_1,0,0,0.8
+WECC_comm_water_heat_1,0,0,0.8
+EIC_comm_water_heat_1,0,0,0.8
+TRE_comm_water_heat_1,0,0,0.8
+WECC_res_water_heat_1,0,0,0.8
+EIC_res_water_heat_1,0,0,0.8
+TRE_res_water_heat_1,0,0,0.8
+WECC_comm_space_heat_cool_1,0,0,0.8
+EIC_comm_space_heat_cool_1,0,0,0.8
+TRE_comm_space_heat_cool_1,0,0,0.8
+WECC_res_space_heat_cool_1,0,0,0.8
+EIC_res_space_heat_cool_1,0,0,0.8
+TRE_res_space_heat_cool_1,0,0,0.8
+EIC_naturalgas_ctavgcf_moderate_0_zerocarbon,0,0,0.8
+TRE_naturalgas_ctavgcf_moderate_0_zerocarbon,0,0,0.8
+WECC_naturalgas_ctavgcf_moderate_0_zerocarbon,0,0,0.8
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_vre_stor/Resources/Resource_energy_share_requirement.csv b/test/LoadResourceData/test_gen_vre_stor/Resources/Resource_energy_share_requirement.csv
new file mode 100644
index 0000000000..0c1731c66e
--- /dev/null
+++ b/test/LoadResourceData/test_gen_vre_stor/Resources/Resource_energy_share_requirement.csv
@@ -0,0 +1,2 @@
+Resource,ESR_VREStor_1,ESR_VREStor_2
+EIC_landbasedwind_class1_moderate_0,1,1
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_vre_stor/Resources/Resource_maximum_capacity_requirement.csv b/test/LoadResourceData/test_gen_vre_stor/Resources/Resource_maximum_capacity_requirement.csv
new file mode 100644
index 0000000000..deedb55676
--- /dev/null
+++ b/test/LoadResourceData/test_gen_vre_stor/Resources/Resource_maximum_capacity_requirement.csv
@@ -0,0 +1,2 @@
+Resource,Max_Cap_1,Max_Cap_2,Max_Cap_3,Max_Cap_Stor_1,Max_Cap_Solar_1,Max_Cap_Wind_1,Max_Cap_Stor_2,Max_Cap_Solar_2,Max_Cap_Wind_2,Max_Cap_Stor_3,Max_Cap_Solar_3,Max_Cap_Wind_3
+EIC_landbasedwind_class1_moderate_0,0,0,0,1,1,1,1,1,1,1,1,1
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_vre_stor/Resources/Resource_minimum_capacity_requirement.csv b/test/LoadResourceData/test_gen_vre_stor/Resources/Resource_minimum_capacity_requirement.csv
new file mode 100644
index 0000000000..2e6c81d4fa
--- /dev/null
+++ b/test/LoadResourceData/test_gen_vre_stor/Resources/Resource_minimum_capacity_requirement.csv
@@ -0,0 +1,2 @@
+Resource,Min_Cap_1,Min_Cap_2,Min_Cap_3,Min_Cap_Stor_1,Min_Cap_Solar_1,Min_Cap_Wind_1,Min_Cap_Stor_2,Min_Cap_Solar_2,Min_Cap_Wind_2,Min_Cap_Stor_3,Min_Cap_Solar_3,Min_Cap_Wind_3
+EIC_landbasedwind_class1_moderate_0,0,0,0,1,1,1,1,1,1,1,1,1
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_vre_stor/Resources/Storage.csv b/test/LoadResourceData/test_gen_vre_stor/Resources/Storage.csv
new file mode 100644
index 0000000000..b1369bf4fe
--- /dev/null
+++ b/test/LoadResourceData/test_gen_vre_stor/Resources/Storage.csv
@@ -0,0 +1,9 @@
+Resource,Zone,Model,Existing_Cap_MWh,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Max_Cap_MW,Max_Cap_MWh,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWhyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,region,technology,cluster
+EIC_batteries_1,1,1,1424.4,712.2,0,0,16.96,0,0,0,6235,0,0,0.15,0.15,10.34,None,0.041,0,0.92,0.92,1,10,EIC,Batteries,1
+EIC_hydroelectric_pumped_storage_1,1,1,275638,17783.1,0,0,170.99,0,0,0,47048,0,0,0.15,0.15,10.34,None,0.524,0,0.866,0.866,1,20,EIC,Hydroelectric Pumped Storage,1
+TRE_batteries_1,2,1,721.4,360.7,0,0,45.09,0,0,0,6235,0,0,0.15,0.15,10.34,None,0.001,0,0.92,0.92,1,10,TRE,Batteries,1
+WECC_batteries_1,3,1,3611,1357.5,0,0,28.28,0,0,0,6235,0,0,0.15,0.15,10.34,None,0.02,0,0.92,0.92,1,10,WECC,Batteries,1
+WECC_hydroelectric_pumped_storage_1,3,1,70790,4567.1,0,0,101.49,0,0,0,47048,0,0,0.15,0.15,10.34,None,0.175,0,0.866,0.866,1,20,WECC,Hydroelectric Pumped Storage,1
+EIC_battery_moderate_0,1,1,0,0,1,1,1,-1,-1,19978,5955,11897,3546,0.15,0.15,0,None,0,0,0.92,0.92,1,10,EIC,Battery_*_Moderate,0
+TRE_battery_moderate_0,2,1,0,0,1,1,1,-1,-1,19389,5955,11546,3546,0.15,0.15,0,None,0,0,0.92,0.92,1,10,TRE,Battery_*_Moderate,0
+WECC_battery_moderate_0,3,1,0,0,1,1,1,-1,-1,20202,5955,12030,3546,0.15,0.15,0,None,0,0,0.92,0.92,1,10,WECC,Battery_*_Moderate,0
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_vre_stor/Resources/Thermal.csv b/test/LoadResourceData/test_gen_vre_stor/Resources/Thermal.csv
new file mode 100644
index 0000000000..72354a8148
--- /dev/null
+++ b/test/LoadResourceData/test_gen_vre_stor/Resources/Thermal.csv
@@ -0,0 +1,46 @@
+Resource,Zone,Model,Existing_Cap_MWh,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Min_Duration,Max_Duration,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,CO2_Capture_Rate,CO2_Capture_Cost_per_Metric_Ton,Ramp_Up_Percentage,Ramp_Dn_Percentage,Up_Time,Down_Time,region,technology,cluster
+EIC_conventional_steam_coal_1,1,1,0,12806.9,0,1,177.87,0,0,0,78258,1.88,124,16.5,13.34,east_north_central_coal,0.5,0,0,0.095,0.19,0,0,0,0,0.57,0.57,24,24,EIC,Conventional Steam Coal,1
+EIC_conventional_steam_coal_2,1,1,0,109345.4,0,1,584.74,0,0,0,64567,1.88,124,16.5,10.89,east_north_central_coal,0.5,0,0,0.095,0.19,0,0,0,0,0.57,0.57,24,24,EIC,Conventional Steam Coal,2
+EIC_natural_gas_fired_combined_cycle_1,1,1,0,27155.3,0,1,163.59,0,0,0,16322,4.53,92,2,9.24,east_north_central_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,0.64,0.64,6,6,EIC,Natural Gas Fired Combined Cycle,1
+EIC_natural_gas_fired_combined_cycle_2,1,1,0,169897.4,0,1,638.71,0,0,0,11042,3.58,92,2,7.34,east_north_central_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,0.64,0.64,6,6,EIC,Natural Gas Fired Combined Cycle,2
+EIC_natural_gas_fired_combustion_turbine_1,1,1,0,98926.5,0,1,100.13,0,0,0,10031,5.28,119,3.5,12.03,east_north_central_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,3.78,3.78,1,1,EIC,Natural Gas Fired Combustion Turbine,1
+EIC_natural_gas_fired_combustion_turbine_2,1,1,0,10412.9,0,1,31.27,0,0,0,13557,5.28,119,3.5,14.66,east_north_central_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,3.78,3.78,1,1,EIC,Natural Gas Fired Combustion Turbine,2
+EIC_natural_gas_internal_combustion_engine_1,1,1,0,2578.5,0,1,4.44,0,0,0,21000,5.29,38,0,10.29,east_north_central_naturalgas,0.18,0,0,0.106666667,0.213333333,0,0,0,0,3.78,3.78,1,1,EIC,Natural Gas Internal Combustion Engine,1
+EIC_natural_gas_steam_turbine_1,1,1,0,39625.2,0,1,203.21,0,0,0,35537,1.06,87,13.7,12.8,east_north_central_naturalgas,0.5,0,0,0.63,1.26,0,0,0,0,0.64,0.64,6,6,EIC,Natural Gas Steam Turbine,1
+EIC_nuclear_1,1,1,0,82406.6,0,1,1030.08,0,0,0,214812,2.84,248,0,10.45,east_north_central_uranium,0.5,0,0,0.041666667,0.083333333,0,0,0,0,0.25,0.25,24,24,EIC,Nuclear,1
+EIC_petroleum_liquids_1,1,1,0,23196.2,0,1,9.96,0,0,0,21000,7.97,38,0,15.5,east_north_central_distillate,0.18,0,0,0,0,0,0,0,0,3.78,3.78,1,1,EIC,Petroleum Liquids,1
+TRE_conventional_steam_coal_1,2,1,0,5063.6,0,1,723.37,0,0,0,60405,1.88,124,16.5,10.33,west_south_central_coal,0.5,0,0,0.095,0.19,0,0,0,0,0.57,0.57,24,24,TRE,Conventional Steam Coal,1
+TRE_conventional_steam_coal_2,2,1,0,3713,0,1,530.43,0,0,0,68432,1.88,124,16.5,12.13,west_south_central_coal,0.5,0,0,0.095,0.19,0,0,0,0,0.57,0.57,24,24,TRE,Conventional Steam Coal,2
+TRE_natural_gas_fired_combined_cycle_1,2,1,0,30139.1,0,1,579.6,0,0,0,10912,3.59,92,2,7.72,west_south_central_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,0.64,0.64,6,6,TRE,Natural Gas Fired Combined Cycle,1
+TRE_natural_gas_fired_combined_cycle_2,2,1,0,6317.6,0,1,315.88,0,0,0,15698,4.36,92,2,9.8,west_south_central_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,0.64,0.64,6,6,TRE,Natural Gas Fired Combined Cycle,2
+TRE_natural_gas_fired_combustion_turbine_1,2,1,0,2924,0,1,81.22,0,0,0,10001,5.28,119,3.5,14.08,west_south_central_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,3.78,3.78,1,1,TRE,Natural Gas Fired Combustion Turbine,1
+TRE_natural_gas_fired_combustion_turbine_2,2,1,0,2826.9,0,1,50.48,0,0,0,11926,5.28,119,3.5,11.11,west_south_central_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,3.78,3.78,1,1,TRE,Natural Gas Fired Combustion Turbine,2
+TRE_natural_gas_internal_combustion_engine_1,2,1,0,502.7,0,1,10.7,0,0,0,21000,4.72,38,0,9.18,west_south_central_naturalgas,0.18,0,0,0.106666667,0.213333333,0,0,0,0,3.78,3.78,1,1,TRE,Natural Gas Internal Combustion Engine,1
+TRE_natural_gas_steam_turbine_1,2,1,0,8249.5,0,1,235.7,0,0,0,34182,1.06,87,13.7,13.24,west_south_central_naturalgas,0.5,0,0,0.63,1.26,0,0,0,0,0.64,0.64,6,6,TRE,Natural Gas Steam Turbine,1
+TRE_nuclear_1,2,1,0,5120,0,1,1280,0,0,0,193275,2.84,248,0,10.45,west_south_central_uranium,0.5,0,0,0.041666667,0.083333333,0,0,0,0,0.25,0.25,24,24,TRE,Nuclear,1
+TRE_petroleum_liquids_1,2,1,0,23.7,0,1,1.48,0,0,0,21000,6.38,38,0,12.4,west_south_central_distillate,0.18,0,0,0,0,0,0,0,0,3.78,3.78,1,1,TRE,Petroleum Liquids,1
+WECC_conventional_steam_coal_1,3,1,0,11415.2,0,1,496.31,0,0,0,64165,1.88,124,16.5,10.63,mountain_coal,0.5,0,0,0.095,0.19,0,0,0,0,0.57,0.57,24,24,WECC,Conventional Steam Coal,1
+WECC_conventional_steam_coal_2,3,1,0,2074.5,0,1,129.66,0,0,0,77721,1.88,124,16.5,12.2,mountain_coal,0.5,0,0,0.095,0.19,0,0,0,0,0.57,0.57,24,24,WECC,Conventional Steam Coal,2
+WECC_natural_gas_fired_combined_cycle_1,3,1,0,37593.3,0,1,475.86,0,0,0,10399,3.6,92,2,7.78,mountain_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,0.64,0.64,6,6,WECC,Natural Gas Fired Combined Cycle,1
+WECC_natural_gas_fired_combined_cycle_2,3,1,0,12502.4,0,1,158.26,0,0,0,16492,4.55,92,2,8.51,mountain_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,0.64,0.64,6,6,WECC,Natural Gas Fired Combined Cycle,2
+WECC_natural_gas_fired_combustion_turbine_1,3,1,0,15252.7,0,1,71.61,0,0,0,10479,5.28,119,3.5,11.06,mountain_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,3.78,3.78,1,1,WECC,Natural Gas Fired Combustion Turbine,1
+WECC_natural_gas_fired_combustion_turbine_2,3,1,0,6281.6,0,1,27.92,0,0,0,13486,5.28,119,3.5,12.78,mountain_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,3.78,3.78,1,1,WECC,Natural Gas Fired Combustion Turbine,2
+WECC_natural_gas_internal_combustion_engine_1,3,1,0,1282.7,0,1,6.51,0,0,0,21000,4.88,38,0,9.49,mountain_naturalgas,0.18,0,0,0.106666667,0.213333333,0,0,0,0,3.78,3.78,1,1,WECC,Natural Gas Internal Combustion Engine,1
+WECC_natural_gas_steam_turbine_1,3,1,0,2669.5,0,1,95.34,0,0,0,51303,1.06,87,13.7,12.4,mountain_naturalgas,0.5,0,0,0.63,1.26,0,0,0,0,0.64,0.64,6,6,WECC,Natural Gas Steam Turbine,1
+WECC_nuclear_1,3,1,0,5175,0,1,1293.75,0,0,0,211822,2.84,248,0,10.45,mountain_uranium,0.5,0,0,0.041666667,0.083333333,0,0,0,0,0.25,0.25,24,24,WECC,Nuclear,1
+WECC_petroleum_liquids_1,3,1,0,636.2,0,1,4.24,0,0,0,21000,7.2,38,0,14,mountain_distillate,0.18,0,0,0,0,0,0,0,0,3.78,3.78,1,1,WECC,Petroleum Liquids,1
+EIC_naturalgas_ccavgcf_moderate_0,1,1,0,0,1,1,500,0,-1,56026,28000,2,106,2,6.36,east_north_central_naturalgas,0.3,0,0,0,0,0,0,0,0,0.64,0.64,6,6,EIC,NaturalGas_CCAvgCF_Moderate,0
+EIC_naturalgas_ctavgcf_moderate_0,1,1,0,0,1,1,100,0,-1,45192,21000,5,137,3.5,9.72,east_north_central_naturalgas,0.3,0,0,0,0,0,0,0,0,3.78,3.78,1,1,EIC,NaturalGas_CTAvgCF_Moderate,0
+EIC_naturalgas_ccccsavgcf_conservative_0,1,1,0,0,1,1,500,0,-1,120812,67000,6,106,0,7.16,east_north_central_naturalgas,0.6,0,0,0.106666667,0.213333333,0,0,0.9,27,0.64,0.64,6,6,EIC,NaturalGas_CCCCSAvgCF_Conservative,0
+EIC_advnuclear_atb_moderate_0,1,1,0,0,1,1,500,0,-1,45000,0,2.84,285,0,10.44,east_north_central_uranium,0.5,0,0,0,0,0,0,0,0,0.25,0.25,24,24,EIC,AdvNuclear_ATB_Moderate,0
+TRE_naturalgas_ccavgcf_moderate_0,2,1,0,0,1,1,500,0,-1,42007,28000,2,106,2,6.36,west_south_central_naturalgas,0.3,0,0,0,0,0,0,0,0,0.64,0.64,6,6,TRE,NaturalGas_CCAvgCF_Moderate,0
+TRE_naturalgas_ctavgcf_moderate_0,2,1,0,0,1,1,100,0,-1,35319,21000,5,137,3.5,9.72,west_south_central_naturalgas,0.3,0,0,0,0,0,0,0,0,3.78,3.78,1,1,TRE,NaturalGas_CTAvgCF_Moderate,0
+TRE_naturalgas_ccccsavgcf_conservative_0,2,1,0,0,1,1,500,0,-1,106685,67000,6,106,0,7.16,west_south_central_naturalgas,0.6,0,0,0.106666667,0.213333333,0,0,0.9,27,0.64,0.64,6,6,TRE,NaturalGas_CCCCSAvgCF_Conservative,0
+TRE_advnuclear_atb_moderate_0,2,1,0,0,1,1,500,0,-1,450000,0,2.84,285,0,10.44,west_south_central_uranium,0.5,0,0,0,0,0,0,0,0,0.25,0.25,24,24,TRE,AdvNuclear_ATB_Moderate,0
+WECC_naturalgas_ccavgcf_moderate_0,3,1,0,0,1,1,500,0,-1,59543,28000,2,106,2,6.36,mountain_naturalgas,0.3,0,0,0,0,0,0,0,0,0.64,0.64,6,6,WECC,NaturalGas_CCAvgCF_Moderate,0
+WECC_naturalgas_ctavgcf_moderate_0,3,1,0,0,1,1,100,0,-1,45587,21000,5,137,3.5,9.72,mountain_naturalgas,0.3,0,0,0,0,0,0,0,0,3.78,3.78,1,1,WECC,NaturalGas_CTAvgCF_Moderate,0
+WECC_naturalgas_ccccsavgcf_conservative_0,3,1,0,0,1,1,500,0,-1,119927,67000,6,106,0,7.16,mountain_naturalgas,0.6,0,0,0.106666667,0.213333333,0,0,0.9,27,0.64,0.64,6,6,WECC,NaturalGas_CCCCSAvgCF_Conservative,0
+WECC_advnuclear_atb_moderate_0,3,1,0,0,1,1,500,0,-1,450000,0,2.84,285,0,10.44,mountain_uranium,0.5,0,0,0,0,0,0,0,0,0.25,0.25,24,24,WECC,AdvNuclear_ATB_Moderate,0
+EIC_naturalgas_ctavgcf_moderate_0_zerocarbon,1,1,0,0,1,1,100,0,-1,61000,0,5,137,3.5,9.72,zerocarbon_fuel,0.3,0,0,0,0,0,0,0,0,3.78,3.78,1,1,EIC,NaturalGas_CTAvgCF_Moderate_zerocarbon,0
+TRE_naturalgas_ctavgcf_moderate_0_zerocarbon,2,1,0,0,1,1,100,0,-1,61000,0,5,137,3.5,9.72,zerocarbon_fuel,0.3,0,0,0,0,0,0,0,0,3.78,3.78,1,1,TRE,NaturalGas_CTAvgCF_Moderate_zerocarbon,0
+WECC_naturalgas_ctavgcf_moderate_0_zerocarbon,3,1,0,0,1,1,100,0,-1,61000,0,5,137,3.5,9.72,zerocarbon_fuel,0.3,0,0,0,0,0,0,0,0,3.78,3.78,1,1,WECC,NaturalGas_CTAvgCF_Moderate_zerocarbon,0
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_vre_stor/Resources/Vre.csv b/test/LoadResourceData/test_gen_vre_stor/Resources/Vre.csv
new file mode 100644
index 0000000000..53da51313f
--- /dev/null
+++ b/test/LoadResourceData/test_gen_vre_stor/Resources/Vre.csv
@@ -0,0 +1,129 @@
+Resource,Zone,Num_VRE_Bins,Existing_Cap_MWh,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Self_Disch,Eff_Up,Eff_Down,Ramp_Up_Percentage,Ramp_Dn_Percentage,region,technology,cluster
+EIC_offshore_wind_turbine_1,1,1,0,29.3,0,1,29.3,0,0,0,111496,0,10.34,None,0,1,1,1,1,EIC,Offshore Wind Turbine,1
+EIC_onshore_wind_turbine_1,1,1,0,47407.4,0,1,66.77,0,0,0,43000,0,10.34,None,0,1,1,1,1,EIC,Onshore Wind Turbine,1
+EIC_solar_photovoltaic_1,1,1,0,8533.9,0,1,5.95,0,0,0,22623,0,10.34,None,0,1,1,1,1,EIC,Solar Photovoltaic,1
+TRE_onshore_wind_turbine_1,2,1,0,21683.1,0,1,163.03,0,0,0,43000,0,10.34,None,0,1,1,1,1,TRE,Onshore Wind Turbine,1
+TRE_solar_photovoltaic_1,2,1,0,1821.5,0,1,65.05,0,0,0,22623,0,10.34,None,0,1,1,1,1,TRE,Solar Photovoltaic,1
+WECC_geothermal_1,3,1,0,1752.4,0,0,12,0,0,0,209101,0,10.34,None,0,1,1,1,1,WECC,Geothermal,1
+WECC_onshore_wind_turbine_1,3,1,0,20644.2,0,1,68.81,0,0,0,43000,0,10.34,None,0,1,1,1,1,WECC,Onshore Wind Turbine,1
+WECC_solar_photovoltaic_1,3,1,0,14659.8,0,1,14.87,0,0,0,22623,0,10.34,None,0,1,1,1,1,WECC,Solar Photovoltaic,1
+EIC_offshorewind_class3_moderate_fixed_1_0,1,1,0,0,1,1,1,0,65762.8,147250,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_1,0
+EIC_offshorewind_class3_moderate_fixed_1_1,1,1,0,0,1,1,1,0,14399.2,157328,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_1,1
+EIC_offshorewind_class3_moderate_fixed_1_2,1,1,0,0,1,1,1,0,34280.8,153961,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_1,2
+EIC_offshorewind_class3_moderate_fixed_1_3,1,1,0,0,1,1,1,0,101840.5,168852,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_1,3
+EIC_offshorewind_class3_moderate_fixed_1_4,1,1,0,0,1,1,1,0,118605,164784,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_1,4
+EIC_offshorewind_class3_moderate_fixed_1_5,1,1,0,0,1,1,1,0,18875.6,146792,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_1,5
+EIC_offshorewind_class3_moderate_fixed_1_6,1,1,0,0,1,1,1,0,79943.7,144977,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_1,6
+EIC_offshorewind_class3_moderate_fixed_1_7,1,1,0,0,1,1,1,0,23454.7,347411,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_1,7
+EIC_offshorewind_class3_moderate_fixed_1_8,1,1,0,0,1,1,1,0,59461.7,393568,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_1,8
+EIC_offshorewind_class3_moderate_fixed_1_9,1,1,0,0,1,1,1,0,73503.9,155384,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_1,9
+EIC_offshorewind_class3_moderate_fixed_0_0,1,1,0,0,1,1,1,0,65762.8,147250,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_0,0
+EIC_offshorewind_class3_moderate_fixed_0_1,1,1,0,0,1,1,1,0,14399.2,157328,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_0,1
+EIC_offshorewind_class3_moderate_fixed_0_4,1,1,0,0,1,1,1,0,34280.8,153961,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_0,4
+EIC_offshorewind_class3_moderate_fixed_0_5,1,1,0,0,1,1,1,0,101840.5,168852,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_0,5
+EIC_offshorewind_class3_moderate_fixed_0_10,1,1,0,0,1,1,1,0,118605,164784,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_0,10
+EIC_offshorewind_class3_moderate_fixed_0_11,1,1,0,0,1,1,1,0,18875.6,146792,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_0,11
+EIC_offshorewind_class3_moderate_fixed_0_18,1,1,0,0,1,1,1,0,79943.7,144977,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_0,18
+EIC_offshorewind_class3_moderate_fixed_0_19,1,1,0,0,1,1,1,0,23454.7,347411,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_0,19
+EIC_offshorewind_class3_moderate_fixed_0_28,1,1,0,0,1,1,1,0,59461.7,393568,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_0,28
+EIC_offshorewind_class3_moderate_fixed_0_29,1,1,0,0,1,1,1,0,73503.9,155384,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_0,29
+EIC_offshorewind_class12_moderate_floating_1_0,1,1,0,0,1,1,1,0,65762.8,204577,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_1,0
+EIC_offshorewind_class12_moderate_floating_1_1,1,1,0,0,1,1,1,0,14399.2,214655,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_1,1
+EIC_offshorewind_class12_moderate_floating_1_6,1,1,0,0,1,1,1,0,34280.8,211288,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_1,6
+EIC_offshorewind_class12_moderate_floating_1_7,1,1,0,0,1,1,1,0,101840.5,226179,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_1,7
+EIC_offshorewind_class12_moderate_floating_1_18,1,1,0,0,1,1,1,0,118605,222111,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_1,18
+EIC_offshorewind_class12_moderate_floating_1_19,1,1,0,0,1,1,1,0,18875.6,204119,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_1,19
+EIC_offshorewind_class12_moderate_floating_1_38,1,1,0,0,1,1,1,0,79943.7,202304,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_1,38
+EIC_offshorewind_class12_moderate_floating_1_39,1,1,0,0,1,1,1,0,23454.7,404738,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_1,39
+EIC_offshorewind_class12_moderate_floating_1_68,1,1,0,0,1,1,1,0,59461.7,450895,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_1,68
+EIC_offshorewind_class12_moderate_floating_1_69,1,1,0,0,1,1,1,0,73503.9,212711,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_1,69
+EIC_offshorewind_class12_moderate_floating_0_0,1,1,0,0,1,1,1,0,65762.8,204577,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_0,0
+EIC_offshorewind_class12_moderate_floating_0_1,1,1,0,0,1,1,1,0,14399.2,214655,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_0,1
+EIC_offshorewind_class12_moderate_floating_0_8,1,1,0,0,1,1,1,0,34280.8,211288,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_0,8
+EIC_offshorewind_class12_moderate_floating_0_9,1,1,0,0,1,1,1,0,101840.5,226179,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_0,9
+EIC_offshorewind_class12_moderate_floating_0_28,1,1,0,0,1,1,1,0,118605,222111,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_0,28
+EIC_offshorewind_class12_moderate_floating_0_29,1,1,0,0,1,1,1,0,18875.6,204119,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_0,29
+EIC_offshorewind_class12_moderate_floating_0_68,1,1,0,0,1,1,1,0,79943.7,202304,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_0,68
+EIC_offshorewind_class12_moderate_floating_0_69,1,1,0,0,1,1,1,0,23454.7,404738,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_0,69
+EIC_offshorewind_class12_moderate_floating_0_138,1,1,0,0,1,1,1,0,59461.7,450895,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_0,138
+EIC_offshorewind_class12_moderate_floating_0_139,1,1,0,0,1,1,1,0,73503.9,212711,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_0,139
+TRE_offshorewind_class3_moderate_fixed_1_0,2,1,0,0,1,1,1,0,13077.5,145004,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_1,0
+TRE_offshorewind_class3_moderate_fixed_1_1,2,1,0,0,1,1,1,0,9995,158104,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_1,1
+TRE_offshorewind_class3_moderate_fixed_1_2,2,1,0,0,1,1,1,0,22842.5,140443,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_1,2
+TRE_offshorewind_class3_moderate_fixed_1_3,2,1,0,0,1,1,1,0,895,157772,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_1,3
+TRE_offshorewind_class3_moderate_fixed_1_4,2,1,0,0,1,1,1,0,20865,142961,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_1,4
+TRE_offshorewind_class3_moderate_fixed_1_5,2,1,0,0,1,1,1,0,4480,166128,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_1,5
+TRE_offshorewind_class3_moderate_fixed_1_6,2,1,0,0,1,1,1,0,23652,166849,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_1,6
+TRE_offshorewind_class3_moderate_fixed_1_7,2,1,0,0,1,1,1,0,10070,157895,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_1,7
+TRE_offshorewind_class3_moderate_fixed_1_8,2,1,0,0,1,1,1,0,20680,167576,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_1,8
+TRE_offshorewind_class3_moderate_fixed_1_9,2,1,0,0,1,1,1,0,16746,156072,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_1,9
+TRE_offshorewind_class3_moderate_fixed_0_0,2,1,0,0,1,1,1,0,13077.5,145004,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_0,0
+TRE_offshorewind_class3_moderate_fixed_0_1,2,1,0,0,1,1,1,0,9995,158104,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_0,1
+TRE_offshorewind_class3_moderate_fixed_0_4,2,1,0,0,1,1,1,0,22842.5,140443,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_0,4
+TRE_offshorewind_class3_moderate_fixed_0_5,2,1,0,0,1,1,1,0,895,157772,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_0,5
+TRE_offshorewind_class3_moderate_fixed_0_10,2,1,0,0,1,1,1,0,20865,142961,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_0,10
+TRE_offshorewind_class3_moderate_fixed_0_11,2,1,0,0,1,1,1,0,4480,166128,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_0,11
+TRE_offshorewind_class3_moderate_fixed_0_18,2,1,0,0,1,1,1,0,23652,166849,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_0,18
+TRE_offshorewind_class3_moderate_fixed_0_19,2,1,0,0,1,1,1,0,10070,157895,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_0,19
+TRE_offshorewind_class3_moderate_fixed_0_28,2,1,0,0,1,1,1,0,20680,167576,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_0,28
+TRE_offshorewind_class3_moderate_fixed_0_29,2,1,0,0,1,1,1,0,16746,156072,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_0,29
+TRE_offshorewind_class12_moderate_floating_1_0,2,1,0,0,1,1,1,0,13077.5,200994,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_1,0
+TRE_offshorewind_class12_moderate_floating_1_1,2,1,0,0,1,1,1,0,9995,214094,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_1,1
+TRE_offshorewind_class12_moderate_floating_1_6,2,1,0,0,1,1,1,0,22842.5,196433,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_1,6
+TRE_offshorewind_class12_moderate_floating_1_7,2,1,0,0,1,1,1,0,895,213762,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_1,7
+TRE_offshorewind_class12_moderate_floating_1_18,2,1,0,0,1,1,1,0,20865,198951,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_1,18
+TRE_offshorewind_class12_moderate_floating_1_19,2,1,0,0,1,1,1,0,4480,222118,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_1,19
+TRE_offshorewind_class12_moderate_floating_1_38,2,1,0,0,1,1,1,0,23652,222839,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_1,38
+TRE_offshorewind_class12_moderate_floating_1_39,2,1,0,0,1,1,1,0,10070,213885,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_1,39
+TRE_offshorewind_class12_moderate_floating_1_68,2,1,0,0,1,1,1,0,20680,223566,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_1,68
+TRE_offshorewind_class12_moderate_floating_1_69,2,1,0,0,1,1,1,0,16746,212062,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_1,69
+TRE_offshorewind_class12_moderate_floating_0_0,2,1,0,0,1,1,1,0,13077.5,200994,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_0,0
+TRE_offshorewind_class12_moderate_floating_0_1,2,1,0,0,1,1,1,0,9995,214094,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_0,1
+TRE_offshorewind_class12_moderate_floating_0_8,2,1,0,0,1,1,1,0,22842.5,196433,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_0,8
+TRE_offshorewind_class12_moderate_floating_0_9,2,1,0,0,1,1,1,0,895,213762,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_0,9
+TRE_offshorewind_class12_moderate_floating_0_28,2,1,0,0,1,1,1,0,20865,198951,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_0,28
+TRE_offshorewind_class12_moderate_floating_0_29,2,1,0,0,1,1,1,0,4480,222118,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_0,29
+TRE_offshorewind_class12_moderate_floating_0_68,2,1,0,0,1,1,1,0,23652,222839,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_0,68
+TRE_offshorewind_class12_moderate_floating_0_69,2,1,0,0,1,1,1,0,10070,213885,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_0,69
+TRE_offshorewind_class12_moderate_floating_0_138,2,1,0,0,1,1,1,0,20680,223566,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_0,138
+TRE_offshorewind_class12_moderate_floating_0_139,2,1,0,0,1,1,1,0,16746,212062,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_0,139
+WECC_offshorewind_class3_moderate_fixed_1_0,3,1,0,0,1,1,1,0,26916.5,174794,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_1,0
+WECC_offshorewind_class3_moderate_fixed_1_1,3,1,0,0,1,1,1,0,29943.3,179346,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_1,1
+WECC_offshorewind_class3_moderate_fixed_1_2,3,1,0,0,1,1,1,0,39553.5,177553,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_1,2
+WECC_offshorewind_class3_moderate_fixed_1_3,3,1,0,0,1,1,1,0,18780,162737,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_1,3
+WECC_offshorewind_class3_moderate_fixed_1_4,3,1,0,0,1,1,1,0,19994,174072,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_1,4
+WECC_offshorewind_class3_moderate_fixed_1_5,3,1,0,0,1,1,1,0,36016,175097,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_1,5
+WECC_offshorewind_class3_moderate_fixed_1_6,3,1,0,0,1,1,1,0,53762,174641,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_1,6
+WECC_offshorewind_class3_moderate_fixed_1_7,3,1,0,0,1,1,1,0,1544,151442,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_1,7
+WECC_offshorewind_class3_moderate_fixed_1_8,3,1,0,0,1,1,1,0,44128,176829,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_1,8
+WECC_offshorewind_class3_moderate_fixed_1_9,3,1,0,0,1,1,1,0,9122,151351,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_1,9
+WECC_offshorewind_class3_moderate_fixed_0_0,3,1,0,0,1,1,1,0,26916.5,174794,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_0,0
+WECC_offshorewind_class3_moderate_fixed_0_1,3,1,0,0,1,1,1,0,29943.3,179346,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_0,1
+WECC_offshorewind_class3_moderate_fixed_0_4,3,1,0,0,1,1,1,0,39553.5,177553,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_0,4
+WECC_offshorewind_class3_moderate_fixed_0_5,3,1,0,0,1,1,1,0,18780,162737,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_0,5
+WECC_offshorewind_class3_moderate_fixed_0_10,3,1,0,0,1,1,1,0,19994,174072,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_0,10
+WECC_offshorewind_class3_moderate_fixed_0_11,3,1,0,0,1,1,1,0,36016,175097,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_0,11
+WECC_offshorewind_class3_moderate_fixed_0_18,3,1,0,0,1,1,1,0,53762,174641,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_0,18
+WECC_offshorewind_class3_moderate_fixed_0_19,3,1,0,0,1,1,1,0,1544,151442,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_0,19
+WECC_offshorewind_class3_moderate_fixed_0_28,3,1,0,0,1,1,1,0,44128,176829,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_0,28
+WECC_offshorewind_class3_moderate_fixed_0_29,3,1,0,0,1,1,1,0,9122,151351,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_0,29
+WECC_offshorewind_class12_moderate_floating_1_0,3,1,0,0,1,1,1,0,26916.5,232121,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_1,0
+WECC_offshorewind_class12_moderate_floating_1_1,3,1,0,0,1,1,1,0,29943.3,236673,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_1,1
+WECC_offshorewind_class12_moderate_floating_1_6,3,1,0,0,1,1,1,0,39553.5,234880,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_1,6
+WECC_offshorewind_class12_moderate_floating_1_7,3,1,0,0,1,1,1,0,18780,220064,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_1,7
+WECC_offshorewind_class12_moderate_floating_1_18,3,1,0,0,1,1,1,0,19994,231399,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_1,18
+WECC_offshorewind_class12_moderate_floating_1_19,3,1,0,0,1,1,1,0,36016,232424,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_1,19
+WECC_offshorewind_class12_moderate_floating_1_38,3,1,0,0,1,1,1,0,53762,231968,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_1,38
+WECC_offshorewind_class12_moderate_floating_1_39,3,1,0,0,1,1,1,0,1544,208769,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_1,39
+WECC_offshorewind_class12_moderate_floating_1_68,3,1,0,0,1,1,1,0,44128,234156,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_1,68
+WECC_offshorewind_class12_moderate_floating_1_69,3,1,0,0,1,1,1,0,9122,208678,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_1,69
+WECC_offshorewind_class12_moderate_floating_0_0,3,1,0,0,1,1,1,0,26916.5,232121,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_0,0
+WECC_offshorewind_class12_moderate_floating_0_1,3,1,0,0,1,1,1,0,29943.3,236673,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_0,1
+WECC_offshorewind_class12_moderate_floating_0_8,3,1,0,0,1,1,1,0,39553.5,234880,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_0,8
+WECC_offshorewind_class12_moderate_floating_0_9,3,1,0,0,1,1,1,0,18780,220064,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_0,9
+WECC_offshorewind_class12_moderate_floating_0_28,3,1,0,0,1,1,1,0,19994,231399,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_0,28
+WECC_offshorewind_class12_moderate_floating_0_29,3,1,0,0,1,1,1,0,36016,232424,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_0,29
+WECC_offshorewind_class12_moderate_floating_0_68,3,1,0,0,1,1,1,0,53762,231968,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_0,68
+WECC_offshorewind_class12_moderate_floating_0_69,3,1,0,0,1,1,1,0,1544,208769,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_0,69
+WECC_offshorewind_class12_moderate_floating_0_138,3,1,0,0,1,1,1,0,44128,234156,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_0,138
+WECC_offshorewind_class12_moderate_floating_0_139,3,1,0,0,1,1,1,0,9122,208678,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_0,139
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_vre_stor/Resources/Vre_stor.csv b/test/LoadResourceData/test_gen_vre_stor/Resources/Vre_stor.csv
new file mode 100644
index 0000000000..e6991dff9a
--- /dev/null
+++ b/test/LoadResourceData/test_gen_vre_stor/Resources/Vre_stor.csv
@@ -0,0 +1,64 @@
+Resource,Zone,SOLAR,WIND,STOR_DC_DISCHARGE,STOR_DC_CHARGE,STOR_AC_DISCHARGE,STOR_AC_CHARGE,LDS_VRE_STOR,Existing_Cap_MW,Existing_Cap_MWh,Existing_Cap_Inverter_MW,Existing_Cap_Solar_MW,Existing_Cap_Wind_MW,Existing_Cap_Discharge_DC_MW,Existing_Cap_Charge_DC_MW,Existing_Cap_Discharge_AC_MW,Existing_Cap_Charge_AC_MW,New_Build,Can_Retire,Min_Cap_MW,Min_Cap_MWh,Min_Cap_Inverter_MW,Min_Cap_Solar_MW,Min_Cap_Wind_MW,Min_Cap_Discharge_DC_MW,Min_Cap_Charge_DC_MW,Min_Cap_Discharge_AC_MW,Min_Cap_Charge_AC_MW,Max_Cap_MW,Max_Cap_MWh,Max_Cap_Inverter_MW,Max_Cap_Solar_MW,Max_Cap_Wind_MW,Max_Cap_Discharge_DC_MW,Max_Cap_Charge_DC_MW,Max_Cap_Discharge_AC_MW,Max_Cap_Charge_AC_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWhyr,Var_OM_Cost_per_MWh,Inv_Cost_Inverter_per_MWyr,Inv_Cost_Solar_per_MWyr,Inv_Cost_Wind_per_MWyr,Inv_Cost_Discharge_DC_per_MWyr,Inv_Cost_Charge_DC_per_MWyr,Inv_Cost_Discharge_AC_per_MWyr,Inv_Cost_Charge_AC_per_MWyr,Fixed_OM_Inverter_Cost_per_MWyr,Fixed_OM_Solar_Cost_per_MWyr,Fixed_OM_Wind_Cost_per_MWyr,Fixed_OM_Cost_Discharge_DC_per_MWyr,Fixed_OM_Cost_Charge_DC_per_MWyr,Fixed_OM_Cost_Discharge_AC_per_MWyr,Fixed_OM_Cost_Charge_AC_per_MWyr,Var_OM_Cost_per_MWh_Solar,Var_OM_Cost_per_MWh_Wind,Var_OM_Cost_per_MWh_Discharge_DC,Var_OM_Cost_per_MWh_Charge_DC,Var_OM_Cost_per_MWh_Discharge_AC,Var_OM_Cost_per_MWh_Charge_AC,EtaInverter,Inverter_Ratio_Wind,Inverter_Ratio_Solar,Power_to_Energy_DC,Power_to_Energy_AC,Self_Disch,Eff_Up_DC,Eff_Down_DC,Eff_Up_AC,Eff_Down_AC,region,Resource_Type,technology,cluster
+EIC_landbasedwind_class1_moderate_0,1,0,1,2,2,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,117315.5,-1,-1,-1,-1,14198,0,0,0,0.15,7522,0,56816,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_wind,LandbasedWind_Class1_Moderate_,0
+EIC_landbasedwind_class1_moderate_1,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,139803.7,-1,-1,-1,-1,17082,0,0,0,0.15,7522,0,56817,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_wind,LandbasedWind_Class1_Moderate_,1
+EIC_landbasedwind_class1_moderate_2,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,114313.7,-1,-1,-1,-1,17267,0,0,0,0.15,7522,0,56816,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_wind,LandbasedWind_Class1_Moderate_,2
+EIC_landbasedwind_class1_moderate_3,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,81237.6,-1,-1,-1,-1,25483,0,0,0,0.15,7522,0,56816,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_wind,LandbasedWind_Class1_Moderate_,3
+EIC_landbasedwind_class1_moderate_4,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,81092.2,-1,-1,-1,-1,16488,0,0,0,0.15,7522,0,56816,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_wind,LandbasedWind_Class1_Moderate_,4
+EIC_landbasedwind_class1_moderate_5,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,54453.3,-1,-1,-1,-1,25720,0,0,0,0.15,7522,0,56816,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_wind,LandbasedWind_Class1_Moderate_,5
+EIC_landbasedwind_class1_moderate_6,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,82417.2,-1,-1,-1,-1,21224,0,0,0,0.15,7522,0,56816,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_wind,LandbasedWind_Class1_Moderate_,6
+EIC_landbasedwind_class1_moderate_7,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,26531.1,-1,-1,-1,-1,32633,0,0,0,0.15,7522,0,56816,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_wind,LandbasedWind_Class1_Moderate_,7
+EIC_landbasedwind_class1_moderate_8,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,58187.4,-1,-1,-1,-1,28526,0,0,0,0.15,7522,0,56817,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_wind,LandbasedWind_Class1_Moderate_,8
+EIC_landbasedwind_class1_moderate_9,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,194921.8,-1,-1,-1,-1,244462,0,0,0,0.15,7522,0,56816,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_wind,LandbasedWind_Class1_Moderate_,9
+EIC_storage_metalair_advanced_0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,-1,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0.15,7522,0,0,0,0,0,0,1875,0,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,standalone_storage,Storage_MetalAir_Advanced,0
+EIC_utilitypv_class1_moderate_0,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,1351663.04,-1,-1,-1,-1,-1,8863,0,0,0,0.15,7522,22706,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_pv,UtilityPV_Class1_Moderate_,0
+EIC_utilitypv_class1_moderate_1,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,787394.14,-1,-1,-1,-1,-1,4464,0,0,0,0.15,7522,22706,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_pv,UtilityPV_Class1_Moderate_,1
+EIC_utilitypv_class1_moderate_2,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,1683583.59,-1,-1,-1,-1,-1,14630,0,0,0,0.15,7522,22706,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_pv,UtilityPV_Class1_Moderate_,2
+EIC_utilitypv_class1_moderate_3,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,1148387.24,-1,-1,-1,-1,-1,10126,0,0,0,0.15,7522,22706,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_pv,UtilityPV_Class1_Moderate_,3
+EIC_utilitypv_class1_moderate_4,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,2254699.98,-1,-1,-1,-1,-1,16248,0,0,0,0.15,7522,22706,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_pv,UtilityPV_Class1_Moderate_,4
+EIC_utilitypv_class1_moderate_5,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,879389.55,-1,-1,-1,-1,-1,22825,0,0,0,0.15,7522,22706,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_pv,UtilityPV_Class1_Moderate_,5
+EIC_utilitypv_class1_moderate_6,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,1998829.95,-1,-1,-1,-1,-1,24566,0,0,0,0.15,7522,22706,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_pv,UtilityPV_Class1_Moderate_,6
+EIC_utilitypv_class1_moderate_7,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,1123362.89,-1,-1,-1,-1,-1,21181,0,0,0,0.15,7522,22706,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_pv,UtilityPV_Class1_Moderate_,7
+EIC_utilitypv_class1_moderate_8,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,2501477.94,-1,-1,-1,-1,-1,32414,0,0,0,0.15,7522,22706,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_pv,UtilityPV_Class1_Moderate_,8
+EIC_utilitypv_class1_moderate_9,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,326479.4,-1,-1,-1,-1,-1,148669,0,0,0,0.15,7522,22706,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_pv,UtilityPV_Class1_Moderate_,9
+TRE_landbasedwind_class1_moderate_0,2,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,20796.6,-1,-1,-1,-1,14393,0,0,0,0.15,7303,0,41880,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_wind,LandbasedWind_Class1_Moderate_,0
+TRE_landbasedwind_class1_moderate_1,2,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,27529.5,-1,-1,-1,-1,20298,0,0,0,0.15,7303,0,41880,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_wind,LandbasedWind_Class1_Moderate_,1
+TRE_landbasedwind_class1_moderate_2,2,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,22035.5,-1,-1,-1,-1,14755,0,0,0,0.15,7303,0,41881,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_wind,LandbasedWind_Class1_Moderate_,2
+TRE_landbasedwind_class1_moderate_3,2,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,22639.4,-1,-1,-1,-1,23630,0,0,0,0.15,7303,0,41881,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_wind,LandbasedWind_Class1_Moderate_,3
+TRE_landbasedwind_class1_moderate_4,2,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,21021.7,-1,-1,-1,-1,12498,0,0,0,0.15,7303,0,41881,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_wind,LandbasedWind_Class1_Moderate_,4
+TRE_landbasedwind_class1_moderate_5,2,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,21153.5,-1,-1,-1,-1,23788,0,0,0,0.15,7303,0,41880,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_wind,LandbasedWind_Class1_Moderate_,5
+TRE_landbasedwind_class1_moderate_6,2,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,32345.3,-1,-1,-1,-1,15633,0,0,0,0.15,7303,0,41881,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_wind,LandbasedWind_Class1_Moderate_,6
+TRE_landbasedwind_class1_moderate_7,2,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,12398.9,-1,-1,-1,-1,29021,0,0,0,0.15,7303,0,41880,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_wind,LandbasedWind_Class1_Moderate_,7
+TRE_landbasedwind_class1_moderate_8,2,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,34789.4,-1,-1,-1,-1,40897,0,0,0,0.15,7303,0,41880,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_wind,LandbasedWind_Class1_Moderate_,8
+TRE_landbasedwind_class1_moderate_9,2,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,2448.4,-1,-1,-1,-1,146712,0,0,0,0.15,7303,0,41881,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_wind,LandbasedWind_Class1_Moderate_,9
+TRE_storage_metalair_advanced_0,2,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,-1,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0.15,7303,0,0,0,0,0,0,1875,0,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,standalone_storage,Storage_MetalAir_Advanced,0
+TRE_utilitypv_class1_moderate_0,2,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,249716.61,-1,-1,-1,-1,-1,6412,0,0,0,0.15,7303,21612,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_pv,UtilityPV_Class1_Moderate_,0
+TRE_utilitypv_class1_moderate_1,2,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,150550.53,-1,-1,-1,-1,-1,8461,0,0,0,0.15,7303,21612,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_pv,UtilityPV_Class1_Moderate_,1
+TRE_utilitypv_class1_moderate_2,2,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,340227.68,-1,-1,-1,-1,-1,10479,0,0,0,0.15,7303,21612,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_pv,UtilityPV_Class1_Moderate_,2
+TRE_utilitypv_class1_moderate_3,2,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,232869.52,-1,-1,-1,-1,-1,14103,0,0,0,0.15,7303,21612,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_pv,UtilityPV_Class1_Moderate_,3
+TRE_utilitypv_class1_moderate_4,2,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,409644.17,-1,-1,-1,-1,-1,14224,0,0,0,0.15,7303,21612,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_pv,UtilityPV_Class1_Moderate_,4
+TRE_utilitypv_class1_moderate_5,2,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,224977.87,-1,-1,-1,-1,-1,18539,0,0,0,0.15,7303,21612,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_pv,UtilityPV_Class1_Moderate_,5
+TRE_utilitypv_class1_moderate_6,2,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,393113.89,-1,-1,-1,-1,-1,22325,0,0,0,0.15,7303,21612,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_pv,UtilityPV_Class1_Moderate_,6
+TRE_utilitypv_class1_moderate_7,2,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,248585.87,-1,-1,-1,-1,-1,17464,0,0,0,0.15,7303,21612,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_pv,UtilityPV_Class1_Moderate_,7
+TRE_utilitypv_class1_moderate_8,2,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,124347.08,-1,-1,-1,-1,-1,74721,0,0,0,0.15,7303,21612,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_pv,UtilityPV_Class1_Moderate_,8
+TRE_utilitypv_class1_moderate_9,2,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,477756.89,-1,-1,-1,-1,-1,29582,0,0,0,0.15,7303,21612,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_pv,UtilityPV_Class1_Moderate_,9
+WECC_landbasedwind_class1_moderate_0,3,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,109860.7,-1,-1,-1,-1,20294,0,0,0,0.15,7609,0,74338,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_wind,LandbasedWind_Class1_Moderate_,0
+WECC_landbasedwind_class1_moderate_1,3,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,47257.4,-1,-1,-1,-1,19872,0,0,0,0.15,7609,0,74338,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_wind,LandbasedWind_Class1_Moderate_,1
+WECC_landbasedwind_class1_moderate_2,3,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,88662.6,-1,-1,-1,-1,27185,0,0,0,0.15,7609,0,74337,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_wind,LandbasedWind_Class1_Moderate_,2
+WECC_landbasedwind_class1_moderate_3,3,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,40824.7,-1,-1,-1,-1,19137,0,0,0,0.15,7609,0,74338,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_wind,LandbasedWind_Class1_Moderate_,3
+WECC_landbasedwind_class1_moderate_4,3,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,109163.8,-1,-1,-1,-1,26039,0,0,0,0.15,7609,0,74337,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_wind,LandbasedWind_Class1_Moderate_,4
+WECC_landbasedwind_class1_moderate_5,3,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,25095.7,-1,-1,-1,-1,133609,0,0,0,0.15,7609,0,74337,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_wind,LandbasedWind_Class1_Moderate_,5
+WECC_landbasedwind_class1_moderate_6,3,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,100227,-1,-1,-1,-1,29900,0,0,0,0.15,7609,0,74337,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_wind,LandbasedWind_Class1_Moderate_,6
+WECC_landbasedwind_class1_moderate_7,3,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,34790.4,-1,-1,-1,-1,160193,0,0,0,0.15,7609,0,74337,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_wind,LandbasedWind_Class1_Moderate_,7
+WECC_landbasedwind_class1_moderate_8,3,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,64367.5,-1,-1,-1,-1,38235,0,0,0,0.15,7609,0,74338,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_wind,LandbasedWind_Class1_Moderate_,8
+WECC_landbasedwind_class1_moderate_9,3,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,77014.4,-1,-1,-1,-1,274991,0,0,0,0.15,7609,0,74338,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_wind,LandbasedWind_Class1_Moderate_,9
+WECC_storage_metalair_advanced_0,3,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,-1,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0.15,7609,0,0,0,0,0,0,1875,0,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,standalone_storage,Storage_MetalAir_Advanced,0
+WECC_utilitypv_class1_moderate_0,3,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,775652.15,-1,-1,-1,-1,-1,10320,0,0,0,0.15,7609,23643,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_pv,UtilityPV_Class1_Moderate_,0
+WECC_utilitypv_class1_moderate_1,3,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,207870.65,-1,-1,-1,-1,-1,6016,0,0,0,0.15,7609,23643,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_pv,UtilityPV_Class1_Moderate_,1
+WECC_utilitypv_class1_moderate_2,3,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,1143504.83,-1,-1,-1,-1,-1,19411,0,0,0,0.15,7609,23643,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_pv,UtilityPV_Class1_Moderate_,2
+WECC_utilitypv_class1_moderate_3,3,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,35742.72,-1,-1,-1,-1,-1,3992,0,0,0,0.15,7609,23643,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_pv,UtilityPV_Class1_Moderate_,3
+WECC_utilitypv_class1_moderate_4,3,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,1185544.36,-1,-1,-1,-1,-1,25714,0,0,0,0.15,7609,23643,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_pv,UtilityPV_Class1_Moderate_,4
+WECC_utilitypv_class1_moderate_5,3,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,31049.98,-1,-1,-1,-1,-1,8052,0,0,0,0.15,7609,23643,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_pv,UtilityPV_Class1_Moderate_,5
+WECC_utilitypv_class1_moderate_6,3,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,1023622.34,-1,-1,-1,-1,-1,33457,0,0,0,0.15,7609,23643,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_pv,UtilityPV_Class1_Moderate_,6
+WECC_utilitypv_class1_moderate_7,3,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,82238,-1,-1,-1,-1,-1,16842,0,0,0,0.15,7609,23643,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_pv,UtilityPV_Class1_Moderate_,7
+WECC_utilitypv_class1_moderate_8,3,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,1134234.27,-1,-1,-1,-1,-1,105939,0,0,0,0.15,7609,23643,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_pv,UtilityPV_Class1_Moderate_,8
+WECC_utilitypv_class1_moderate_9,3,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,94348.41,-1,-1,-1,-1,-1,28290,0,0,0,0.15,7609,23643,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_pv,UtilityPV_Class1_Moderate_,9
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_vre_stor/Settings/genx_settings.yml b/test/LoadResourceData/test_gen_vre_stor/Settings/genx_settings.yml
new file mode 100644
index 0000000000..c210cd63a1
--- /dev/null
+++ b/test/LoadResourceData/test_gen_vre_stor/Settings/genx_settings.yml
@@ -0,0 +1,12 @@
+NetworkExpansion: 1
+ParameterScale: 1
+EnergyShareRequirement: 1
+Trans_Loss_Segments: 1
+CapacityReserveMargin: 1
+Reserves: 1
+StorageLosses: 1
+OverwriteResults: 1
+UCommit: 2
+MinCapReq: 1
+CO2Cap: 1
+WriteShadowPrices: 1
diff --git a/test/LoadResourceData/test_gen_vre_stor/Settings/highs_settings.yml b/test/LoadResourceData/test_gen_vre_stor/Settings/highs_settings.yml
new file mode 100644
index 0000000000..e244a0b4cf
--- /dev/null
+++ b/test/LoadResourceData/test_gen_vre_stor/Settings/highs_settings.yml
@@ -0,0 +1,13 @@
+# HiGHS Solver Parameters
+# Common solver settings
+Feasib_Tol: 1.0e-05 # Primal feasibility tolerance # [type: double, advanced: false, range: [1e-10, inf], default: 1e-07]
+Optimal_Tol: 1.0e-05 # Dual feasibility tolerance # [type: double, advanced: false, range: [1e-10, inf], default: 1e-07]
+TimeLimit: 1.0e23 # Time limit # [type: double, advanced: false, range: [0, inf], default: inf]
+Pre_Solve: choose # Presolve option: "off", "choose" or "on" # [type: string, advanced: false, default: "choose"]
+Method: choose #HiGHS-specific solver settings # Solver option: "simplex", "choose" or "ipm" # [type: string, advanced: false, default: "choose"]
+
+#highs-specific solver settings
+
+# run the crossover routine for ipx
+# [type: string, advanced: "on", range: {"off", "on"}, default: "off"]
+run_crossover: "on"
diff --git a/test/LoadResourceData/test_gen_vre_stor/Settings/time_domain_reduction_settings.yml b/test/LoadResourceData/test_gen_vre_stor/Settings/time_domain_reduction_settings.yml
new file mode 100644
index 0000000000..77a15db91e
--- /dev/null
+++ b/test/LoadResourceData/test_gen_vre_stor/Settings/time_domain_reduction_settings.yml
@@ -0,0 +1,59 @@
+IterativelyAddPeriods: 1
+ExtremePeriods:
+ Wind:
+ System:
+ Absolute:
+ Min: 0
+ Max: 0
+ Integral:
+ Min: 1
+ Max: 0
+ Zone:
+ Absolute:
+ Min: 0
+ Max: 0
+ Integral:
+ Min: 0
+ Max: 0
+ Demand:
+ System:
+ Absolute:
+ Min: 0
+ Max: 1
+ Integral:
+ Min: 0
+ Max: 0
+ Zone:
+ Absolute:
+ Min: 0
+ Max: 0
+ Integral:
+ Min: 0
+ Max: 0
+ PV:
+ System:
+ Absolute:
+ Min: 0
+ Max: 0
+ Integral:
+ Min: 1
+ Max: 0
+ Zone:
+ Absolute:
+ Min: 0
+ Max: 0
+ Integral:
+ Min: 0
+ Max: 0
+UseExtremePeriods: 1
+MinPeriods: 5
+MaxPeriods: 5
+DemandWeight: 1
+ClusterFuelPrices: 0
+nReps: 100
+Threshold: 0.05
+TimestepsPerRepPeriod: 24
+IterateMethod: "cluster"
+ScalingMethod: "S"
+ClusterMethod: "kmeans"
+WeightTotal: 8760
diff --git a/Example_Systems/VREStor_Example/Vre_and_stor_data.csv b/test/LoadResourceData/test_gen_vre_stor/Vre_and_stor_data.csv
similarity index 53%
rename from Example_Systems/VREStor_Example/Vre_and_stor_data.csv
rename to test/LoadResourceData/test_gen_vre_stor/Vre_and_stor_data.csv
index e47236a878..c5cdd1f632 100644
--- a/Example_Systems/VREStor_Example/Vre_and_stor_data.csv
+++ b/test/LoadResourceData/test_gen_vre_stor/Vre_and_stor_data.csv
@@ -1,64 +1,64 @@
-region,Resource,technology,cluster,R_ID,Zone,LDS_VRE_STOR,CapResVreStor_1,MinCapTag_1,MinCapTag_2,MinCapTag_3,MaxCapTag_1,MaxCapTag_2,MaxCapTag_3,CapResVreStor_2,CapResVreStor_3,Resource_Type,Inv_Cost_Solar_per_MWyr,Inv_Cost_Inverter_per_MWyr,Inv_Cost_Wind_per_MWyr,Fixed_OM_Solar_Cost_per_MWyr,Fixed_OM_Inverter_Cost_per_MWyr,Fixed_OM_Wind_Cost_per_MWyr,SOLAR,WIND,STOR_DC_DISCHARGE,STOR_DC_CHARGE,MinCapTagStor_1,MinCapTagSolar_1,MinCapTagWind_1,MinCapTagStor_2,MinCapTagSolar_2,MinCapTagWind_2,MinCapTagStor_3,MinCapTagSolar_3,MinCapTagWind_3,MaxCapTagStor_1,MaxCapTagSolar_1,MaxCapTagWind_1,MaxCapTagStor_2,MaxCapTagSolar_2,MaxCapTagWind_2,MaxCapTagStor_3,MaxCapTagSolar_3,MaxCapTagWind_3,STOR_AC_DISCHARGE,STOR_AC_CHARGE,Existing_Cap_Inverter_MW,Existing_Cap_Solar_MW,Existing_Cap_Wind_MW,Existing_Cap_Charge_DC_MW,Existing_Cap_Charge_AC_MW,Existing_Cap_Discharge_DC_MW,Existing_Cap_Discharge_AC_MW,Min_Cap_Inverter_MW,Min_Cap_Charge_AC_MW,Min_Cap_Discharge_AC_MW,Min_Cap_Charge_DC_MW,Min_Cap_Discharge_DC_MW,Min_Cap_Solar_MW,Min_Cap_Wind_MW,Inv_Cost_Discharge_DC_per_MWyr,Inv_Cost_Charge_DC_per_MWyr,Inv_Cost_Discharge_AC_per_MWyr,Inv_Cost_Charge_AC_per_MWyr,Fixed_OM_Cost_Discharge_DC_per_MWyr,Fixed_OM_Cost_Charge_DC_per_MWyr,Fixed_OM_Cost_Discharge_AC_per_MWyr,Fixed_OM_Cost_Charge_AC_per_MWyr,Var_OM_Cost_per_MWh_Solar,Var_OM_Cost_per_MWh_Wind,Var_OM_Cost_per_MWh_Charge_AC,Var_OM_Cost_per_MWh_Discharge_AC,Max_Cap_Inverter_MW,Max_Cap_Charge_AC_MW,Max_Cap_Discharge_AC_MW,Max_Cap_Charge_DC_MW,Max_Cap_Discharge_DC_MW,Max_Cap_Solar_MW,Max_Cap_Wind_MW,Inverter_Ratio_Wind,Inverter_Ratio_Solar,Var_OM_Cost_per_MWh_Charge_DC,Var_OM_Cost_per_MWh_Discharge_DC,Eff_Up_DC,Eff_Down_DC,Eff_Up_AC,Eff_Down_AC,EtaInverter,Power_to_Energy_DC,Power_to_Energy_AC
-EIC,EIC_storage_metalair_advanced_0,Storage_MetalAir_Advanced,0,61,1,1,0.95,0,0,0,0,0,0,0,0,standalone_storage,0,7522,0,0,1875,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_landbasedwind_class1_moderate_0,LandbasedWind_Class1_Moderate_,0,62,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_wind,0,7522,56816,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,117315.5,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_landbasedwind_class1_moderate_1,LandbasedWind_Class1_Moderate_,1,63,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_wind,0,7522,56817,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,139803.7,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_landbasedwind_class1_moderate_2,LandbasedWind_Class1_Moderate_,2,64,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_wind,0,7522,56816,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,114313.7,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_landbasedwind_class1_moderate_3,LandbasedWind_Class1_Moderate_,3,65,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_wind,0,7522,56816,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,81237.6,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_landbasedwind_class1_moderate_4,LandbasedWind_Class1_Moderate_,4,66,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_wind,0,7522,56816,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,81092.2,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_landbasedwind_class1_moderate_5,LandbasedWind_Class1_Moderate_,5,67,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_wind,0,7522,56816,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,54453.3,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_landbasedwind_class1_moderate_6,LandbasedWind_Class1_Moderate_,6,68,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_wind,0,7522,56816,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,82417.2,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_landbasedwind_class1_moderate_7,LandbasedWind_Class1_Moderate_,7,69,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_wind,0,7522,56816,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,26531.1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_landbasedwind_class1_moderate_8,LandbasedWind_Class1_Moderate_,8,70,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_wind,0,7522,56817,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,58187.4,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_landbasedwind_class1_moderate_9,LandbasedWind_Class1_Moderate_,9,71,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_wind,0,7522,56816,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,194921.8,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_utilitypv_class1_moderate_0,UtilityPV_Class1_Moderate_,0,72,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_pv,22706,7522,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,1351663.04,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_utilitypv_class1_moderate_1,UtilityPV_Class1_Moderate_,1,73,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_pv,22706,7522,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,787394.14,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_utilitypv_class1_moderate_2,UtilityPV_Class1_Moderate_,2,74,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_pv,22706,7522,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,1683583.59,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_utilitypv_class1_moderate_3,UtilityPV_Class1_Moderate_,3,75,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_pv,22706,7522,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,1148387.24,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_utilitypv_class1_moderate_4,UtilityPV_Class1_Moderate_,4,76,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_pv,22706,7522,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,2254699.98,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_utilitypv_class1_moderate_5,UtilityPV_Class1_Moderate_,5,77,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_pv,22706,7522,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,879389.55,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_utilitypv_class1_moderate_6,UtilityPV_Class1_Moderate_,6,78,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_pv,22706,7522,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,1998829.95,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_utilitypv_class1_moderate_7,UtilityPV_Class1_Moderate_,7,79,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_pv,22706,7522,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,1123362.89,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_utilitypv_class1_moderate_8,UtilityPV_Class1_Moderate_,8,80,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_pv,22706,7522,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,2501477.94,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_utilitypv_class1_moderate_9,UtilityPV_Class1_Moderate_,9,81,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_pv,22706,7522,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,326479.4,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_storage_metalair_advanced_0,Storage_MetalAir_Advanced,0,127,2,1,0,0,0,0,0,0,0,0.95,0,standalone_storage,0,7303,0,0,1875,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_landbasedwind_class1_moderate_0,LandbasedWind_Class1_Moderate_,0,128,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_wind,0,7303,41880,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,20796.6,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_landbasedwind_class1_moderate_1,LandbasedWind_Class1_Moderate_,1,129,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_wind,0,7303,41880,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,27529.5,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_landbasedwind_class1_moderate_2,LandbasedWind_Class1_Moderate_,2,130,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_wind,0,7303,41881,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,22035.5,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_landbasedwind_class1_moderate_3,LandbasedWind_Class1_Moderate_,3,131,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_wind,0,7303,41881,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,22639.4,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_landbasedwind_class1_moderate_4,LandbasedWind_Class1_Moderate_,4,132,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_wind,0,7303,41881,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,21021.7,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_landbasedwind_class1_moderate_5,LandbasedWind_Class1_Moderate_,5,133,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_wind,0,7303,41880,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,21153.5,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_landbasedwind_class1_moderate_6,LandbasedWind_Class1_Moderate_,6,134,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_wind,0,7303,41881,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,32345.3,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_landbasedwind_class1_moderate_7,LandbasedWind_Class1_Moderate_,7,135,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_wind,0,7303,41880,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,12398.9,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_landbasedwind_class1_moderate_8,LandbasedWind_Class1_Moderate_,8,136,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_wind,0,7303,41880,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,34789.4,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_landbasedwind_class1_moderate_9,LandbasedWind_Class1_Moderate_,9,137,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_wind,0,7303,41881,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,2448.4,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_utilitypv_class1_moderate_0,UtilityPV_Class1_Moderate_,0,138,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_pv,21612,7303,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,249716.61,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_utilitypv_class1_moderate_1,UtilityPV_Class1_Moderate_,1,139,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_pv,21612,7303,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,150550.53,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_utilitypv_class1_moderate_2,UtilityPV_Class1_Moderate_,2,140,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_pv,21612,7303,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,340227.68,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_utilitypv_class1_moderate_3,UtilityPV_Class1_Moderate_,3,141,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_pv,21612,7303,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,232869.52,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_utilitypv_class1_moderate_4,UtilityPV_Class1_Moderate_,4,142,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_pv,21612,7303,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,409644.17,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_utilitypv_class1_moderate_5,UtilityPV_Class1_Moderate_,5,143,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_pv,21612,7303,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,224977.87,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_utilitypv_class1_moderate_6,UtilityPV_Class1_Moderate_,6,144,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_pv,21612,7303,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,393113.89,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_utilitypv_class1_moderate_7,UtilityPV_Class1_Moderate_,7,145,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_pv,21612,7303,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,248585.87,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_utilitypv_class1_moderate_8,UtilityPV_Class1_Moderate_,8,146,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_pv,21612,7303,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,124347.08,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_utilitypv_class1_moderate_9,UtilityPV_Class1_Moderate_,9,147,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_pv,21612,7303,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,477756.89,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_storage_metalair_advanced_0,Storage_MetalAir_Advanced,0,193,3,1,0,0,0,0,0,0,0,0,0.95,standalone_storage,0,7609,0,0,1875,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_landbasedwind_class1_moderate_0,LandbasedWind_Class1_Moderate_,0,194,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_wind,0,7609,74338,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,109860.7,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_landbasedwind_class1_moderate_1,LandbasedWind_Class1_Moderate_,1,195,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_wind,0,7609,74338,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,47257.4,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_landbasedwind_class1_moderate_2,LandbasedWind_Class1_Moderate_,2,196,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_wind,0,7609,74337,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,88662.6,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_landbasedwind_class1_moderate_3,LandbasedWind_Class1_Moderate_,3,197,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_wind,0,7609,74338,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,40824.7,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_landbasedwind_class1_moderate_4,LandbasedWind_Class1_Moderate_,4,198,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_wind,0,7609,74337,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,109163.8,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_landbasedwind_class1_moderate_5,LandbasedWind_Class1_Moderate_,5,199,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_wind,0,7609,74337,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,25095.7,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_landbasedwind_class1_moderate_6,LandbasedWind_Class1_Moderate_,6,200,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_wind,0,7609,74337,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,100227,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_landbasedwind_class1_moderate_7,LandbasedWind_Class1_Moderate_,7,201,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_wind,0,7609,74337,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,34790.4,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_landbasedwind_class1_moderate_8,LandbasedWind_Class1_Moderate_,8,202,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_wind,0,7609,74338,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,64367.5,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_landbasedwind_class1_moderate_9,LandbasedWind_Class1_Moderate_,9,203,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_wind,0,7609,74338,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,77014.4,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_utilitypv_class1_moderate_0,UtilityPV_Class1_Moderate_,0,204,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_pv,23643,7609,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,775652.15,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_utilitypv_class1_moderate_1,UtilityPV_Class1_Moderate_,1,205,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_pv,23643,7609,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,207870.65,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_utilitypv_class1_moderate_2,UtilityPV_Class1_Moderate_,2,206,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_pv,23643,7609,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,1143504.83,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_utilitypv_class1_moderate_3,UtilityPV_Class1_Moderate_,3,207,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_pv,23643,7609,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,35742.72,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_utilitypv_class1_moderate_4,UtilityPV_Class1_Moderate_,4,208,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_pv,23643,7609,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,1185544.36,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_utilitypv_class1_moderate_5,UtilityPV_Class1_Moderate_,5,209,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_pv,23643,7609,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,31049.98,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_utilitypv_class1_moderate_6,UtilityPV_Class1_Moderate_,6,210,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_pv,23643,7609,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,1023622.34,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_utilitypv_class1_moderate_7,UtilityPV_Class1_Moderate_,7,211,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_pv,23643,7609,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,82238,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_utilitypv_class1_moderate_8,UtilityPV_Class1_Moderate_,8,212,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_pv,23643,7609,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,1134234.27,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_utilitypv_class1_moderate_9,UtilityPV_Class1_Moderate_,9,213,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_pv,23643,7609,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,94348.41,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
\ No newline at end of file
+region,Resource,technology,cluster,R_ID,Zone,LDS_VRE_STOR,CapResVreStor_1,MinCapTag_1,MinCapTag_2,MinCapTag_3,MaxCapTag_1,MaxCapTag_2,MaxCapTag_3,CapResVreStor_2,CapResVreStor_3,Resource_Type,Inv_Cost_Solar_per_MWyr,Inv_Cost_Inverter_per_MWyr,Inv_Cost_Wind_per_MWyr,Fixed_OM_Solar_Cost_per_MWyr,Fixed_OM_Inverter_Cost_per_MWyr,Fixed_OM_Wind_Cost_per_MWyr,SOLAR,WIND,STOR_DC_DISCHARGE,STOR_DC_CHARGE,MinCapTagStor_1,MinCapTagSolar_1,MinCapTagWind_1,MinCapTagStor_2,MinCapTagSolar_2,MinCapTagWind_2,MinCapTagStor_3,MinCapTagSolar_3,MinCapTagWind_3,MaxCapTagStor_1,MaxCapTagSolar_1,MaxCapTagWind_1,MaxCapTagStor_2,MaxCapTagSolar_2,MaxCapTagWind_2,MaxCapTagStor_3,MaxCapTagSolar_3,MaxCapTagWind_3,STOR_AC_DISCHARGE,STOR_AC_CHARGE,Existing_Cap_Inverter_MW,Existing_Cap_Solar_MW,Existing_Cap_Wind_MW,Existing_Cap_Charge_DC_MW,Existing_Cap_Charge_AC_MW,Existing_Cap_Discharge_DC_MW,Existing_Cap_Discharge_AC_MW,Min_Cap_Inverter_MW,Min_Cap_Charge_AC_MW,Min_Cap_Discharge_AC_MW,Min_Cap_Charge_DC_MW,Min_Cap_Discharge_DC_MW,Min_Cap_Solar_MW,Min_Cap_Wind_MW,Inv_Cost_Discharge_DC_per_MWyr,Inv_Cost_Charge_DC_per_MWyr,Inv_Cost_Discharge_AC_per_MWyr,Inv_Cost_Charge_AC_per_MWyr,Fixed_OM_Cost_Discharge_DC_per_MWyr,Fixed_OM_Cost_Charge_DC_per_MWyr,Fixed_OM_Cost_Discharge_AC_per_MWyr,Fixed_OM_Cost_Charge_AC_per_MWyr,Var_OM_Cost_per_MWh_Solar,Var_OM_Cost_per_MWh_Wind,Var_OM_Cost_per_MWh_Charge_AC,Var_OM_Cost_per_MWh_Discharge_AC,Max_Cap_Inverter_MW,Max_Cap_Charge_AC_MW,Max_Cap_Discharge_AC_MW,Max_Cap_Charge_DC_MW,Max_Cap_Discharge_DC_MW,Max_Cap_Solar_MW,Max_Cap_Wind_MW,Inverter_Ratio_Wind,Inverter_Ratio_Solar,Var_OM_Cost_per_MWh_Charge_DC,Var_OM_Cost_per_MWh_Discharge_DC,Eff_Up_DC,Eff_Down_DC,Eff_Up_AC,Eff_Down_AC,EtaInverter,Power_to_Energy_DC,Power_to_Energy_AC,ESR_VRESTOR_1,ESR_VRESTOR_2
+EIC,EIC_landbasedwind_class1_moderate_0,LandbasedWind_Class1_Moderate_,0,209,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_wind,0,7522,56816,0,1875,36613,0,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,117315.5,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,1,1
+EIC,EIC_landbasedwind_class1_moderate_1,LandbasedWind_Class1_Moderate_,1,210,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_wind,0,7522,56817,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,139803.7,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+EIC,EIC_landbasedwind_class1_moderate_2,LandbasedWind_Class1_Moderate_,2,211,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_wind,0,7522,56816,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,114313.7,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+EIC,EIC_landbasedwind_class1_moderate_3,LandbasedWind_Class1_Moderate_,3,212,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_wind,0,7522,56816,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,81237.6,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+EIC,EIC_landbasedwind_class1_moderate_4,LandbasedWind_Class1_Moderate_,4,213,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_wind,0,7522,56816,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,81092.2,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+EIC,EIC_landbasedwind_class1_moderate_5,LandbasedWind_Class1_Moderate_,5,214,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_wind,0,7522,56816,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,54453.3,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+EIC,EIC_landbasedwind_class1_moderate_6,LandbasedWind_Class1_Moderate_,6,215,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_wind,0,7522,56816,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,82417.2,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+EIC,EIC_landbasedwind_class1_moderate_7,LandbasedWind_Class1_Moderate_,7,216,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_wind,0,7522,56816,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,26531.1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+EIC,EIC_landbasedwind_class1_moderate_8,LandbasedWind_Class1_Moderate_,8,217,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_wind,0,7522,56817,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,58187.4,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+EIC,EIC_landbasedwind_class1_moderate_9,LandbasedWind_Class1_Moderate_,9,218,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_wind,0,7522,56816,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,194921.8,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+EIC,EIC_storage_metalair_advanced_0,Storage_MetalAir_Advanced,0,219,1,1,0.95,0,0,0,0,0,0,0,0,standalone_storage,0,7522,0,0,1875,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+EIC,EIC_utilitypv_class1_moderate_0,UtilityPV_Class1_Moderate_,0,220,1,1,0.95,1,1,0,0,0,0,0,0,hybrid_pv,22706,7522,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,1351663.04,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+EIC,EIC_utilitypv_class1_moderate_1,UtilityPV_Class1_Moderate_,1,221,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_pv,22706,7522,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,787394.14,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+EIC,EIC_utilitypv_class1_moderate_2,UtilityPV_Class1_Moderate_,2,222,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_pv,22706,7522,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,1683583.59,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+EIC,EIC_utilitypv_class1_moderate_3,UtilityPV_Class1_Moderate_,3,223,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_pv,22706,7522,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,1148387.24,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+EIC,EIC_utilitypv_class1_moderate_4,UtilityPV_Class1_Moderate_,4,224,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_pv,22706,7522,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,2254699.98,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+EIC,EIC_utilitypv_class1_moderate_5,UtilityPV_Class1_Moderate_,5,225,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_pv,22706,7522,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,879389.55,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+EIC,EIC_utilitypv_class1_moderate_6,UtilityPV_Class1_Moderate_,6,226,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_pv,22706,7522,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,1998829.95,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+EIC,EIC_utilitypv_class1_moderate_7,UtilityPV_Class1_Moderate_,7,227,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_pv,22706,7522,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,1123362.89,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+EIC,EIC_utilitypv_class1_moderate_8,UtilityPV_Class1_Moderate_,8,228,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_pv,22706,7522,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,2501477.94,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+EIC,EIC_utilitypv_class1_moderate_9,UtilityPV_Class1_Moderate_,9,229,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_pv,22706,7522,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,326479.4,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+TRE,TRE_landbasedwind_class1_moderate_0,LandbasedWind_Class1_Moderate_,0,230,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_wind,0,7303,41880,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,20796.6,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+TRE,TRE_landbasedwind_class1_moderate_1,LandbasedWind_Class1_Moderate_,1,231,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_wind,0,7303,41880,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,27529.5,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+TRE,TRE_landbasedwind_class1_moderate_2,LandbasedWind_Class1_Moderate_,2,232,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_wind,0,7303,41881,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,22035.5,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+TRE,TRE_landbasedwind_class1_moderate_3,LandbasedWind_Class1_Moderate_,3,233,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_wind,0,7303,41881,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,22639.4,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+TRE,TRE_landbasedwind_class1_moderate_4,LandbasedWind_Class1_Moderate_,4,234,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_wind,0,7303,41881,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,21021.7,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+TRE,TRE_landbasedwind_class1_moderate_5,LandbasedWind_Class1_Moderate_,5,235,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_wind,0,7303,41880,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,21153.5,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+TRE,TRE_landbasedwind_class1_moderate_6,LandbasedWind_Class1_Moderate_,6,236,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_wind,0,7303,41881,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,32345.3,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+TRE,TRE_landbasedwind_class1_moderate_7,LandbasedWind_Class1_Moderate_,7,237,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_wind,0,7303,41880,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,12398.9,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+TRE,TRE_landbasedwind_class1_moderate_8,LandbasedWind_Class1_Moderate_,8,238,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_wind,0,7303,41880,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,34789.4,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+TRE,TRE_landbasedwind_class1_moderate_9,LandbasedWind_Class1_Moderate_,9,239,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_wind,0,7303,41881,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,2448.4,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+TRE,TRE_storage_metalair_advanced_0,Storage_MetalAir_Advanced,0,240,2,1,0,0,0,0,0,0,0,0.95,0,standalone_storage,0,7303,0,0,1875,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+TRE,TRE_utilitypv_class1_moderate_0,UtilityPV_Class1_Moderate_,0,241,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_pv,21612,7303,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,249716.61,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+TRE,TRE_utilitypv_class1_moderate_1,UtilityPV_Class1_Moderate_,1,242,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_pv,21612,7303,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,150550.53,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+TRE,TRE_utilitypv_class1_moderate_2,UtilityPV_Class1_Moderate_,2,243,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_pv,21612,7303,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,340227.68,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+TRE,TRE_utilitypv_class1_moderate_3,UtilityPV_Class1_Moderate_,3,244,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_pv,21612,7303,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,232869.52,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+TRE,TRE_utilitypv_class1_moderate_4,UtilityPV_Class1_Moderate_,4,245,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_pv,21612,7303,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,409644.17,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+TRE,TRE_utilitypv_class1_moderate_5,UtilityPV_Class1_Moderate_,5,246,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_pv,21612,7303,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,224977.87,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+TRE,TRE_utilitypv_class1_moderate_6,UtilityPV_Class1_Moderate_,6,247,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_pv,21612,7303,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,393113.89,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+TRE,TRE_utilitypv_class1_moderate_7,UtilityPV_Class1_Moderate_,7,248,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_pv,21612,7303,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,248585.87,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+TRE,TRE_utilitypv_class1_moderate_8,UtilityPV_Class1_Moderate_,8,249,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_pv,21612,7303,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,124347.08,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+TRE,TRE_utilitypv_class1_moderate_9,UtilityPV_Class1_Moderate_,9,250,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_pv,21612,7303,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,477756.89,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+WECC,WECC_landbasedwind_class1_moderate_0,LandbasedWind_Class1_Moderate_,0,251,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_wind,0,7609,74338,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,109860.7,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+WECC,WECC_landbasedwind_class1_moderate_1,LandbasedWind_Class1_Moderate_,1,252,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_wind,0,7609,74338,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,47257.4,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+WECC,WECC_landbasedwind_class1_moderate_2,LandbasedWind_Class1_Moderate_,2,253,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_wind,0,7609,74337,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,88662.6,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+WECC,WECC_landbasedwind_class1_moderate_3,LandbasedWind_Class1_Moderate_,3,254,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_wind,0,7609,74338,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,40824.7,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+WECC,WECC_landbasedwind_class1_moderate_4,LandbasedWind_Class1_Moderate_,4,255,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_wind,0,7609,74337,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,109163.8,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+WECC,WECC_landbasedwind_class1_moderate_5,LandbasedWind_Class1_Moderate_,5,256,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_wind,0,7609,74337,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,25095.7,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+WECC,WECC_landbasedwind_class1_moderate_6,LandbasedWind_Class1_Moderate_,6,257,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_wind,0,7609,74337,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,100227,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+WECC,WECC_landbasedwind_class1_moderate_7,LandbasedWind_Class1_Moderate_,7,258,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_wind,0,7609,74337,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,34790.4,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+WECC,WECC_landbasedwind_class1_moderate_8,LandbasedWind_Class1_Moderate_,8,259,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_wind,0,7609,74338,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,64367.5,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+WECC,WECC_landbasedwind_class1_moderate_9,LandbasedWind_Class1_Moderate_,9,260,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_wind,0,7609,74338,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,77014.4,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+WECC,WECC_storage_metalair_advanced_0,Storage_MetalAir_Advanced,0,261,3,1,0,0,0,0,0,0,0,0,0.95,standalone_storage,0,7609,0,0,1875,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+WECC,WECC_utilitypv_class1_moderate_0,UtilityPV_Class1_Moderate_,0,262,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_pv,23643,7609,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,775652.15,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+WECC,WECC_utilitypv_class1_moderate_1,UtilityPV_Class1_Moderate_,1,263,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_pv,23643,7609,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,207870.65,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+WECC,WECC_utilitypv_class1_moderate_2,UtilityPV_Class1_Moderate_,2,264,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_pv,23643,7609,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,1143504.83,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+WECC,WECC_utilitypv_class1_moderate_3,UtilityPV_Class1_Moderate_,3,265,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_pv,23643,7609,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,35742.72,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+WECC,WECC_utilitypv_class1_moderate_4,UtilityPV_Class1_Moderate_,4,266,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_pv,23643,7609,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,1185544.36,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+WECC,WECC_utilitypv_class1_moderate_5,UtilityPV_Class1_Moderate_,5,267,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_pv,23643,7609,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,31049.98,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+WECC,WECC_utilitypv_class1_moderate_6,UtilityPV_Class1_Moderate_,6,268,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_pv,23643,7609,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,1023622.34,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+WECC,WECC_utilitypv_class1_moderate_7,UtilityPV_Class1_Moderate_,7,269,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_pv,23643,7609,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,82238,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+WECC,WECC_utilitypv_class1_moderate_8,UtilityPV_Class1_Moderate_,8,270,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_pv,23643,7609,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,1134234.27,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
+WECC,WECC_utilitypv_class1_moderate_9,UtilityPV_Class1_Moderate_,9,271,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_pv,23643,7609,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,94348.41,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005,0,0
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_vre_stor/Vre_and_stor_solar_variability.csv b/test/LoadResourceData/test_gen_vre_stor/Vre_and_stor_solar_variability.csv
new file mode 100644
index 0000000000..c9f50a8c25
--- /dev/null
+++ b/test/LoadResourceData/test_gen_vre_stor/Vre_and_stor_solar_variability.csv
@@ -0,0 +1,25 @@
+Time_Index,EIC_utilitypv_class1_moderate_0,EIC_utilitypv_class1_moderate_1,EIC_utilitypv_class1_moderate_2,EIC_utilitypv_class1_moderate_3,EIC_utilitypv_class1_moderate_4,EIC_utilitypv_class1_moderate_5,EIC_utilitypv_class1_moderate_6,EIC_utilitypv_class1_moderate_7,EIC_utilitypv_class1_moderate_8,EIC_utilitypv_class1_moderate_9,TRE_utilitypv_class1_moderate_0,TRE_utilitypv_class1_moderate_1,TRE_utilitypv_class1_moderate_2,TRE_utilitypv_class1_moderate_3,TRE_utilitypv_class1_moderate_4,TRE_utilitypv_class1_moderate_5,TRE_utilitypv_class1_moderate_6,TRE_utilitypv_class1_moderate_7,TRE_utilitypv_class1_moderate_8,TRE_utilitypv_class1_moderate_9,WECC_utilitypv_class1_moderate_0,WECC_utilitypv_class1_moderate_1,WECC_utilitypv_class1_moderate_2,WECC_utilitypv_class1_moderate_3,WECC_utilitypv_class1_moderate_4,WECC_utilitypv_class1_moderate_5,WECC_utilitypv_class1_moderate_6,WECC_utilitypv_class1_moderate_7,WECC_utilitypv_class1_moderate_8,WECC_utilitypv_class1_moderate_9
+1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+9,0,0.081,0,0.077,0.043,0,0.005,0.09,0.058,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+10,0.151,0.403,0.168,0.367,0.294,0.114,0.162,0.408,0.343,0.027,0.247,0.23,0.258,0.224,0.253,0.209,0.2,0.258,0.11,0.217,0,0,0,0,0,0,0,0,0,0
+11,0.44,0.574,0.452,0.542,0.515,0.463,0.465,0.568,0.533,0.429,0.524,0.52,0.531,0.516,0.529,0.507,0.499,0.532,0.458,0.477,0.193,0.189,0.199,0,0.184,0,0.096,0,0.135,0
+12,0.597,0.657,0.624,0.619,0.628,0.656,0.614,0.648,0.623,0.615,0.692,0.694,0.699,0.685,0.694,0.682,0.68,0.696,0.655,0.636,0.469,0.429,0.473,0.043,0.458,0.001,0.367,0,0.395,0
+13,0.697,0.695,0.717,0.635,0.674,0.764,0.677,0.672,0.661,0.723,0.79,0.782,0.793,0.779,0.789,0.786,0.783,0.789,0.769,0.723,0.626,0.599,0.614,0.249,0.601,0.215,0.554,0.215,0.548,0.248
+14,0.734,0.697,0.752,0.637,0.678,0.811,0.695,0.666,0.666,0.79,0.826,0.827,0.835,0.834,0.834,0.838,0.834,0.826,0.826,0.761,0.721,0.689,0.682,0.371,0.667,0.383,0.659,0.423,0.623,0.444
+15,0.731,0.667,0.745,0.62,0.661,0.808,0.686,0.645,0.636,0.806,0.831,0.839,0.838,0.841,0.828,0.844,0.828,0.816,0.837,0.751,0.768,0.694,0.725,0.427,0.7,0.478,0.714,0.447,0.662,0.5
+16,0.674,0.605,0.689,0.565,0.599,0.757,0.635,0.554,0.55,0.747,0.794,0.796,0.795,0.799,0.785,0.805,0.802,0.782,0.8,0.725,0.772,0.667,0.723,0.447,0.713,0.452,0.729,0.443,0.651,0.434
+17,0.543,0.463,0.565,0.415,0.455,0.642,0.52,0.407,0.399,0.646,0.698,0.698,0.7,0.706,0.697,0.715,0.715,0.691,0.72,0.648,0.732,0.595,0.678,0.421,0.667,0.432,0.697,0.441,0.591,0.44
+18,0.377,0.205,0.386,0.147,0.218,0.483,0.323,0.161,0.183,0.469,0.556,0.559,0.562,0.573,0.561,0.586,0.583,0.546,0.599,0.474,0.675,0.51,0.594,0.321,0.567,0.373,0.608,0.4,0.482,0.467
+19,0.106,0.011,0.076,0.001,0.001,0.124,0.033,0.005,0.007,0.112,0.297,0.291,0.299,0.308,0.298,0.326,0.33,0.28,0.344,0.232,0.515,0.297,0.408,0.178,0.369,0.347,0.44,0.314,0.294,0.295
+20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.254,0.031,0.165,0.05,0.126,0.138,0.144,0.13,0.077,0.083
+21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_vre_stor/Vre_and_stor_wind_variability.csv b/test/LoadResourceData/test_gen_vre_stor/Vre_and_stor_wind_variability.csv
new file mode 100644
index 0000000000..45c3aebb76
--- /dev/null
+++ b/test/LoadResourceData/test_gen_vre_stor/Vre_and_stor_wind_variability.csv
@@ -0,0 +1,25 @@
+Time_Index,EIC_landbasedwind_class1_moderate_0,EIC_landbasedwind_class1_moderate_1,EIC_landbasedwind_class1_moderate_2,EIC_landbasedwind_class1_moderate_3,EIC_landbasedwind_class1_moderate_4,EIC_landbasedwind_class1_moderate_5,EIC_landbasedwind_class1_moderate_6,EIC_landbasedwind_class1_moderate_7,EIC_landbasedwind_class1_moderate_8,EIC_landbasedwind_class1_moderate_9,TRE_landbasedwind_class1_moderate_0,TRE_landbasedwind_class1_moderate_1,TRE_landbasedwind_class1_moderate_2,TRE_landbasedwind_class1_moderate_3,TRE_landbasedwind_class1_moderate_4,TRE_landbasedwind_class1_moderate_5,TRE_landbasedwind_class1_moderate_6,TRE_landbasedwind_class1_moderate_7,TRE_landbasedwind_class1_moderate_8,TRE_landbasedwind_class1_moderate_9,WECC_landbasedwind_class1_moderate_0,WECC_landbasedwind_class1_moderate_1,WECC_landbasedwind_class1_moderate_2,WECC_landbasedwind_class1_moderate_3,WECC_landbasedwind_class1_moderate_4,WECC_landbasedwind_class1_moderate_5,WECC_landbasedwind_class1_moderate_6,WECC_landbasedwind_class1_moderate_7,WECC_landbasedwind_class1_moderate_8,WECC_landbasedwind_class1_moderate_9
+1,0.966,0.978,0.936,0.939,0.867,0.752,0.666,0.527,0.548,0.98,0.84,0.705,0.752,0.794,0.614,0.749,0.485,0.799,0.637,1,0.814,0.752,0.532,0.49,0.407,0.945,0.371,0.889,0.325,0.969
+2,0.972,0.978,0.945,0.947,0.877,0.72,0.648,0.442,0.546,0.993,0.848,0.671,0.783,0.787,0.686,0.718,0.497,0.75,0.624,1,0.749,0.739,0.509,0.452,0.377,0.948,0.333,0.89,0.298,0.967
+3,0.967,0.978,0.951,0.946,0.899,0.694,0.644,0.435,0.533,0.985,0.872,0.858,0.805,0.826,0.641,0.622,0.469,0.513,0.646,1,0.594,0.705,0.459,0.373,0.366,0.929,0.341,0.855,0.327,0.962
+4,0.969,0.967,0.95,0.878,0.889,0.68,0.668,0.424,0.528,0.983,0.856,0.972,0.771,0.866,0.554,0.652,0.51,0.463,0.717,1,0.514,0.708,0.437,0.353,0.35,0.865,0.351,0.746,0.343,0.924
+5,0.953,0.949,0.95,0.834,0.898,0.688,0.681,0.389,0.456,0.974,0.8,0.929,0.71,0.806,0.619,0.66,0.702,0.634,0.861,0.996,0.436,0.614,0.418,0.367,0.351,0.751,0.342,0.644,0.323,0.735
+6,0.953,0.946,0.956,0.852,0.911,0.735,0.691,0.401,0.514,0.961,0.749,0.895,0.737,0.697,0.763,0.512,0.88,0.307,0.951,0.954,0.424,0.585,0.375,0.353,0.338,0.783,0.328,0.726,0.303,0.695
+7,0.95,0.949,0.954,0.842,0.915,0.766,0.69,0.415,0.581,0.936,0.758,0.896,0.802,0.68,0.851,0.476,0.889,0.219,0.92,0.788,0.391,0.56,0.357,0.349,0.345,0.791,0.335,0.822,0.29,0.689
+8,0.917,0.885,0.937,0.85,0.93,0.785,0.683,0.467,0.529,0.839,0.789,0.911,0.847,0.709,0.962,0.523,0.899,0.252,0.838,0.434,0.338,0.493,0.321,0.299,0.304,0.643,0.286,0.682,0.247,0.485
+9,0.876,0.828,0.928,0.881,0.952,0.816,0.728,0.528,0.628,0.82,0.816,0.934,0.927,0.819,0.986,0.688,0.93,0.369,0.844,0.266,0.387,0.552,0.359,0.323,0.325,0.764,0.319,0.845,0.288,0.531
+10,0.594,0.483,0.704,0.571,0.579,0.519,0.219,0.152,0.055,0.58,0.414,0.467,0.578,0.451,0.652,0.512,0.563,0.354,0.332,0.117,0.183,0.342,0.184,0.217,0.198,0.273,0.16,0.237,0.13,0.247
+11,0.662,0.526,0.752,0.604,0.669,0.53,0.314,0.176,0.097,0.598,0.514,0.564,0.658,0.596,0.753,0.65,0.679,0.559,0.427,0.092,0.179,0.315,0.177,0.217,0.186,0.262,0.161,0.159,0.142,0.171
+12,0.78,0.672,0.825,0.762,0.704,0.606,0.435,0.271,0.25,0.662,0.783,0.857,0.826,0.828,0.878,0.848,0.79,0.902,0.496,0.101,0.202,0.323,0.189,0.203,0.194,0.324,0.157,0.23,0.147,0.235
+13,0.785,0.714,0.807,0.726,0.7,0.596,0.489,0.355,0.406,0.664,0.771,0.815,0.838,0.768,0.888,0.838,0.762,0.897,0.487,0.069,0.268,0.346,0.203,0.189,0.184,0.318,0.138,0.194,0.129,0.365
+14,0.714,0.629,0.772,0.636,0.698,0.587,0.499,0.435,0.518,0.654,0.59,0.661,0.733,0.583,0.839,0.714,0.694,0.739,0.441,0.004,0.303,0.334,0.211,0.161,0.18,0.497,0.126,0.455,0.132,0.679
+15,0.728,0.659,0.771,0.624,0.704,0.575,0.497,0.464,0.42,0.693,0.549,0.623,0.733,0.473,0.853,0.536,0.632,0.407,0.395,0,0.269,0.285,0.19,0.161,0.149,0.478,0.106,0.398,0.113,0.681
+16,0.754,0.698,0.792,0.657,0.736,0.6,0.481,0.427,0.414,0.732,0.549,0.547,0.738,0.445,0.861,0.566,0.643,0.514,0.376,0,0.223,0.278,0.168,0.169,0.144,0.441,0.104,0.352,0.106,0.717
+17,0.761,0.692,0.794,0.659,0.729,0.601,0.468,0.374,0.366,0.742,0.589,0.581,0.746,0.462,0.82,0.533,0.625,0.47,0.421,0,0.202,0.239,0.158,0.157,0.139,0.378,0.097,0.215,0.083,0.668
+18,0.703,0.645,0.787,0.654,0.923,0.745,0.786,0.92,0.786,0.754,0.516,0.508,0.677,0.433,0.849,0.502,0.603,0.374,0.402,0,0.232,0.377,0.232,0.182,0.211,0.609,0.164,0.467,0.147,0.868
+19,0.673,0.637,0.755,0.641,0.847,0.748,0.813,0.926,0.87,0.74,0.633,0.57,0.744,0.505,0.834,0.536,0.568,0.405,0.363,0,0.291,0.323,0.257,0.182,0.227,0.535,0.171,0.38,0.137,0.869
+20,0.717,0.598,0.801,0.668,0.885,0.777,0.835,0.915,0.919,0.713,0.642,0.514,0.753,0.469,0.813,0.494,0.566,0.294,0.445,0.003,0.241,0.308,0.298,0.198,0.256,0.446,0.19,0.315,0.144,0.73
+21,0.768,0.665,0.817,0.692,0.892,0.792,0.884,0.94,0.941,0.725,0.764,0.746,0.86,0.643,0.874,0.618,0.741,0.341,0.619,0.046,0.246,0.322,0.407,0.315,0.375,0.403,0.305,0.318,0.224,0.649
+22,0.797,0.689,0.841,0.702,0.959,0.802,0.927,0.94,0.951,0.714,0.816,0.702,0.864,0.736,0.889,0.783,0.839,0.646,0.738,0.189,0.226,0.332,0.44,0.373,0.429,0.46,0.361,0.35,0.281,0.575
+23,0.846,0.751,0.858,0.711,0.968,0.8,0.929,0.938,0.955,0.687,0.819,0.734,0.857,0.708,0.938,0.826,0.905,0.816,0.845,0.324,0.172,0.39,0.463,0.42,0.455,0.44,0.395,0.328,0.31,0.364
+24,0.842,0.766,0.855,0.694,0.972,0.793,0.92,0.941,0.952,0.675,0.837,0.767,0.854,0.705,0.948,0.826,0.918,0.869,0.83,0.157,0.202,0.448,0.463,0.416,0.444,0.483,0.4,0.393,0.344,0.428
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_vre_stor/generators_data.csv b/test/LoadResourceData/test_gen_vre_stor/generators_data.csv
new file mode 100644
index 0000000000..2155311075
--- /dev/null
+++ b/test/LoadResourceData/test_gen_vre_stor/generators_data.csv
@@ -0,0 +1,272 @@
+region,Resource,technology,cluster,R_ID,Zone,Num_VRE_Bins,THERM,VRE,MUST_RUN,STOR,FLEX,HYDRO,LDS,CapRes_1,Min_Share,Max_Share,Existing_Cap_MWh,Existing_Cap_MW,Existing_Charge_Cap_MW,num_units,unmodified_existing_cap_mw,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Min_Cap_MWh,Max_Charge_Cap_MW,Min_Charge_Cap_MW,Min_Share_percent,Max_Share_percent,capex_mw,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,capex_mwh,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWhyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_Charge_per_MWyr,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,heat_rate_mmbtu_mwh_iqr,heat_rate_mmbtu_mwh_std,Fuel,Min_Power,Self_Disch,Eff_Up,Eff_Down,Hydro_Energy_to_Power_Ratio,Min_Duration,Max_Duration,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,Max_Flexible_Demand_Delay,Max_Flexible_Demand_Advance,Flexible_Demand_Energy_Eff,CO2_Capture_Rate,CO2_Capture_Cost_per_Metric_Ton,Ramp_Up_Percentage,Ramp_Dn_Percentage,Up_Time,Down_Time,spur_miles,spur_inv_mwyr,spur_capex,offshore_spur_miles,offshore_spur_capex,tx_miles,tx_capex,interconnect_annuity,regional_cost_multiplier,cap_recovery_years,wacc_real,ids,MISO_CleanPower,NY_CleanPower,PJM_CleanPower,SERC_CleanPower,variable_CF,RETRO,Num_RETRO_Sources,Retro1_Source,Retro1_Efficiency,Retro1_Inv_Cost_per_MWyr,Retro2_Source,Retro2_Efficiency,Retro2_Inv_Cost_per_MWyr,MinCapTag_1,MinCapTag_2,MinCapTag_3,MaxCapTag_1,MaxCapTag_2,MaxCapTag_3,CapRes_2,CapRes_3,VRE_STOR
+EIC,EIC_conventional_hydroelectric_1,Conventional Hydroelectric,1,1,1,0,0,0,0,0,0,1,0,0.8,0,0,0,24200.8,0,748,24200.792,0,0,32.35,0,0,0,0,0,0,0,0,0,0,47048,0,0,0,0,0,0,0,0,0,10.34,0,0,None,0.273,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.344661608,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+TRE,TRE_conventional_hydroelectric_1,Conventional Hydroelectric,1,2,2,0,0,0,0,0,0,1,0,0,0,0,0,477,0,19,476.995,0,0,25.1,0,0,0,0,0,0,0,0,0,0,47048,0,0,0,0,0,0,0,0,0,10.34,0,0,None,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.094297837,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+WECC,WECC_conventional_hydroelectric_1,Conventional Hydroelectric,1,3,3,0,0,0,0,0,0,1,0,0,0,0,0,46528,0,640,46528,0,0,72.7,0,0,0,0,0,0,0,0,0,0,47048,0,0,0,0,0,0,0,0,0,10.34,0,0,None,0.214,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.438570496,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+EIC,EIC_conventional_steam_coal_1,Conventional Steam Coal,1,4,1,0,1,0,0,0,0,0,0,0.93,0,0,0,12806.9,0,72,12806.928,0,1,177.87,0,0,0,0,0,0,0,0,0,0,78258,0,0,0,1.88,0,0,0,124,16.5,13.34,2.921,4.478,east_north_central_coal,0.5,0,1,1,0,0,0,0.095,0.19,0,0,0,0,0,0,0,0.57,0.57,24,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_conventional_steam_coal_2,Conventional Steam Coal,2,5,1,0,1,0,0,0,0,0,0,0.93,0,0,0,109345.4,0,187,109345.445,0,1,584.74,0,0,0,0,0,0,0,0,0,0,64567,0,0,0,1.88,0,0,0,124,16.5,10.89,1.402,1.167,east_north_central_coal,0.5,0,1,1,0,0,0,0.095,0.19,0,0,0,0,0,0,0,0.57,0.57,24,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_natural_gas_fired_combined_cycle_1,Natural Gas Fired Combined Cycle,1,6,1,0,1,0,0,0,0,0,0,0.93,0,0,0,27155.3,0,166,27155.276,0,1,163.59,0,0,0,0,0,0,0,0,0,0,16322,0,0,0,4.53,0,0,0,92,2,9.24,2.047,2.71,east_north_central_naturalgas,0.3,0,1,1,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_natural_gas_fired_combined_cycle_2,Natural Gas Fired Combined Cycle,2,7,1,0,1,0,0,0,0,0,0,0.93,0,0,0,169897.4,0,266,169897.392,0,1,638.71,0,0,0,0,0,0,0,0,0,0,11042,0,0,0,3.58,0,0,0,92,2,7.34,0.657,0.613,east_north_central_naturalgas,0.3,0,1,1,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_natural_gas_fired_combustion_turbine_1,Natural Gas Fired Combustion Turbine,1,8,1,0,1,0,0,0,0,0,0,0.93,0,0,0,98926.5,0,988,98926.464,0,1,100.13,0,0,0,0,0,0,0,0,0,0,10031,0,0,0,5.28,0,0,0,119,3.5,12.03,2.186,2.031,east_north_central_naturalgas,0.3,0,1,1,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_natural_gas_fired_combustion_turbine_2,Natural Gas Fired Combustion Turbine,2,9,1,0,1,0,0,0,0,0,0,0.93,0,0,0,10412.9,0,333,10412.91,0,1,31.27,0,0,0,0,0,0,0,0,0,0,13557,0,0,0,5.28,0,0,0,119,3.5,14.66,4.035,4.747,east_north_central_naturalgas,0.3,0,1,1,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_natural_gas_internal_combustion_engine_1,Natural Gas Internal Combustion Engine,1,10,1,0,1,0,0,0,0,0,0,0.93,0,0,0,2578.5,0,581,2578.478,0,1,4.44,0,0,0,0,0,0,0,0,0,0,21000,0,0,0,5.29,0,0,0,38,0,10.29,1.183,3.689,east_north_central_naturalgas,0.18,0,1,1,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_natural_gas_steam_turbine_1,Natural Gas Steam Turbine,1,11,1,0,1,0,0,0,0,0,0,0.93,0,0,0,39625.2,0,195,39625.17,0,1,203.21,0,0,0,0,0,0,0,0,0,0,35537,0,0,0,1.06,0,0,0,87,13.7,12.8,2.36,4.946,east_north_central_naturalgas,0.5,0,1,1,0,0,0,0.63,1.26,0,0,0,0,0,0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_nuclear_1,Nuclear,1,12,1,0,1,0,0,0,0,0,0,0.93,0,0,0,82406.6,0,80,82406.56,0,1,1030.08,0,0,0,0,0,0,0,0,0,0,214812,0,0,0,2.84,0,0,0,248,0,10.45,0,0.006,east_north_central_uranium,0.5,0,1,1,0,0,0,0.041666667,0.083333333,0,0,0,0,0,0,0,0.25,0.25,24,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_petroleum_liquids_1,Petroleum Liquids,1,13,1,0,1,0,0,0,0,0,0,0.93,0,0,0,23196.2,0,2328,23196.192,0,1,9.96,0,0,0,0,0,0,0,0,0,0,21000,0,0,0,7.97,0,0,0,38,0,15.5,3.607,4.446,east_north_central_distillate,0.18,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+TRE,TRE_conventional_steam_coal_1,Conventional Steam Coal,1,14,2,0,1,0,0,0,0,0,0,0,0,0,0,5063.6,0,7,5063.597,0,1,723.37,0,0,0,0,0,0,0,0,0,0,60405,0,0,0,1.88,0,0,0,124,16.5,10.33,0.655,0.422,west_south_central_coal,0.5,0,1,1,0,0,0,0.095,0.19,0,0,0,0,0,0,0,0.57,0.57,24,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0,0
+TRE,TRE_conventional_steam_coal_2,Conventional Steam Coal,2,15,2,0,1,0,0,0,0,0,0,0,0,0,0,3713,0,7,3713.003,0,1,530.43,0,0,0,0,0,0,0,0,0,0,68432,0,0,0,1.88,0,0,0,124,16.5,12.13,1.016,0.74,west_south_central_coal,0.5,0,1,1,0,0,0,0.095,0.19,0,0,0,0,0,0,0,0.57,0.57,24,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0,0
+TRE,TRE_natural_gas_fired_combined_cycle_1,Natural Gas Fired Combined Cycle,1,16,2,0,1,0,0,0,0,0,0,0,0,0,0,30139.1,0,52,30139.096,0,1,579.6,0,0,0,0,0,0,0,0,0,0,10912,0,0,0,3.59,0,0,0,92,2,7.72,0.514,0.965,west_south_central_naturalgas,0.3,0,1,1,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0,0
+TRE,TRE_natural_gas_fired_combined_cycle_2,Natural Gas Fired Combined Cycle,2,17,2,0,1,0,0,0,0,0,0,0,0,0,0,6317.6,0,20,6317.6,0,1,315.88,0,0,0,0,0,0,0,0,0,0,15698,0,0,0,4.36,0,0,0,92,2,9.8,2.241,2.318,west_south_central_naturalgas,0.3,0,1,1,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0,0
+TRE,TRE_natural_gas_fired_combustion_turbine_1,Natural Gas Fired Combustion Turbine,1,18,2,0,1,0,0,0,0,0,0,0,0,0,0,2924,0,36,2923.992,0,1,81.22,0,0,0,0,0,0,0,0,0,0,10001,0,0,0,5.28,0,0,0,119,3.5,14.08,0.577,1.146,west_south_central_naturalgas,0.3,0,1,1,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0,0
+TRE,TRE_natural_gas_fired_combustion_turbine_2,Natural Gas Fired Combustion Turbine,2,19,2,0,1,0,0,0,0,0,0,0,0,0,0,2826.9,0,56,2826.88,0,1,50.48,0,0,0,0,0,0,0,0,0,0,11926,0,0,0,5.28,0,0,0,119,3.5,11.11,1.398,1.008,west_south_central_naturalgas,0.3,0,1,1,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0,0
+TRE,TRE_natural_gas_internal_combustion_engine_1,Natural Gas Internal Combustion Engine,1,20,2,0,1,0,0,0,0,0,0,0,0,0,0,502.7,0,47,502.712,0,1,10.7,0,0,0,0,0,0,0,0,0,0,21000,0,0,0,4.72,0,0,0,38,0,9.18,0.648,0.328,west_south_central_naturalgas,0.18,0,1,1,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0,0
+TRE,TRE_natural_gas_steam_turbine_1,Natural Gas Steam Turbine,1,21,2,0,1,0,0,0,0,0,0,0,0,0,0,8249.5,0,35,8249.5,0,1,235.7,0,0,0,0,0,0,0,0,0,0,34182,0,0,0,1.06,0,0,0,87,13.7,13.24,2.888,3.381,west_south_central_naturalgas,0.5,0,1,1,0,0,0,0.63,1.26,0,0,0,0,0,0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0,0
+TRE,TRE_nuclear_1,Nuclear,1,22,2,0,1,0,0,0,0,0,0,0,0,0,0,5120,0,4,5120,0,1,1280,0,0,0,0,0,0,0,0,0,0,193275,0,0,0,2.84,0,0,0,248,0,10.45,0,0,west_south_central_uranium,0.5,0,1,1,0,0,0,0.041666667,0.083333333,0,0,0,0,0,0,0,0.25,0.25,24,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0,0
+TRE,TRE_petroleum_liquids_1,Petroleum Liquids,1,23,2,0,1,0,0,0,0,0,0,0,0,0,0,23.7,0,16,23.696,0,1,1.48,0,0,0,0,0,0,0,0,0,0,21000,0,0,0,6.38,0,0,0,38,0,12.4,0,4.068,west_south_central_distillate,0.18,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0,0
+WECC,WECC_conventional_steam_coal_1,Conventional Steam Coal,1,24,3,0,1,0,0,0,0,0,0,0,0,0,0,11415.2,0,23,11415.199,0,1,496.31,0,0,0,0,0,0,0,0,0,0,64165,0,0,0,1.88,0,0,0,124,16.5,10.63,0.447,0.29,mountain_coal,0.5,0,1,1,0,0,0,0.095,0.19,0,0,0,0,0,0,0,0.57,0.57,24,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0
+WECC,WECC_conventional_steam_coal_2,Conventional Steam Coal,2,25,3,0,1,0,0,0,0,0,0,0,0,0,0,2074.5,0,16,2074.496,0,1,129.66,0,0,0,0,0,0,0,0,0,0,77721,0,0,0,1.88,0,0,0,124,16.5,12.2,1.109,0.961,mountain_coal,0.5,0,1,1,0,0,0,0.095,0.19,0,0,0,0,0,0,0,0.57,0.57,24,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0
+WECC,WECC_natural_gas_fired_combined_cycle_1,Natural Gas Fired Combined Cycle,1,26,3,0,1,0,0,0,0,0,0,0,0,0,0,37593.3,0,79,37593.335,0,1,475.86,0,0,0,0,0,0,0,0,0,0,10399,0,0,0,3.6,0,0,0,92,2,7.78,0.722,1.232,mountain_naturalgas,0.3,0,1,1,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0
+WECC,WECC_natural_gas_fired_combined_cycle_2,Natural Gas Fired Combined Cycle,2,27,3,0,1,0,0,0,0,0,0,0,0,0,0,12502.4,0,79,12502.382,0,1,158.26,0,0,0,0,0,0,0,0,0,0,16492,0,0,0,4.55,0,0,0,92,2,8.51,2.587,2.585,mountain_naturalgas,0.3,0,1,1,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0
+WECC,WECC_natural_gas_fired_combustion_turbine_1,Natural Gas Fired Combustion Turbine,1,28,3,0,1,0,0,0,0,0,0,0,0,0,0,15252.7,0,213,15252.717,0,1,71.61,0,0,0,0,0,0,0,0,0,0,10479,0,0,0,5.28,0,0,0,119,3.5,11.06,1.753,1.288,mountain_naturalgas,0.3,0,1,1,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0
+WECC,WECC_natural_gas_fired_combustion_turbine_2,Natural Gas Fired Combustion Turbine,2,29,3,0,1,0,0,0,0,0,0,0,0,0,0,6281.6,0,225,6281.55,0,1,27.92,0,0,0,0,0,0,0,0,0,0,13486,0,0,0,5.28,0,0,0,119,3.5,12.78,4.552,3.282,mountain_naturalgas,0.3,0,1,1,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0
+WECC,WECC_natural_gas_internal_combustion_engine_1,Natural Gas Internal Combustion Engine,1,30,3,0,1,0,0,0,0,0,0,0,0,0,0,1282.7,0,197,1282.667,0,1,6.51,0,0,0,0,0,0,0,0,0,0,21000,0,0,0,4.88,0,0,0,38,0,9.49,1.759,1.665,mountain_naturalgas,0.18,0,1,1,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0
+WECC,WECC_natural_gas_steam_turbine_1,Natural Gas Steam Turbine,1,31,3,0,1,0,0,0,0,0,0,0,0,0,0,2669.5,0,28,2669.492,0,1,95.34,0,0,0,0,0,0,0,0,0,0,51303,0,0,0,1.06,0,0,0,87,13.7,12.4,4.616,3.843,mountain_naturalgas,0.5,0,1,1,0,0,0,0.63,1.26,0,0,0,0,0,0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0
+WECC,WECC_nuclear_1,Nuclear,1,32,3,0,1,0,0,0,0,0,0,0,0,0,0,5175,0,4,5175,0,1,1293.75,0,0,0,0,0,0,0,0,0,0,211822,0,0,0,2.84,0,0,0,248,0,10.45,0,0,mountain_uranium,0.5,0,1,1,0,0,0,0.041666667,0.083333333,0,0,0,0,0,0,0,0.25,0.25,24,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0
+WECC,WECC_petroleum_liquids_1,Petroleum Liquids,1,33,3,0,1,0,0,0,0,0,0,0,0,0,0,636.2,0,150,636.15,0,1,4.24,0,0,0,0,0,0,0,0,0,0,21000,0,0,0,7.2,0,0,0,38,0,14,2.319,4.938,mountain_distillate,0.18,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0
+EIC,EIC_naturalgas_ccavgcf_moderate_0,NaturalGas_CCAvgCF_Moderate,0,34,1,0,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,500,0,-1,-1,0,0,0,0,0,880383.916,56026,28000,0,0,0,2,0,0,0,106,2,6.36,0,0,east_north_central_naturalgas,0.3,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0,1.186,30,0.033,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_naturalgas_ctavgcf_moderate_0,NaturalGas_CTAvgCF_Moderate,0,35,1,0,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,100,0,-1,-1,0,0,0,0,0,746250.365,45192,21000,0,0,0,5,0,0,0,137,3.5,9.72,0,0,east_north_central_naturalgas,0.3,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0,1.128,30,0.033,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_naturalgas_ccccsavgcf_conservative_0,NaturalGas_CCCCSAvgCF_Conservative,0,36,1,0,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,500,0,-1,-1,0,0,0,0,0,2120000,120812,67000,0,0,0,6,0,0,0,106,0,7.16,0,0,east_north_central_naturalgas,0.6,0,1,1,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.9,27,0.64,0.64,6,6,0,0,0,0,0,0,0,0,1.062,30,0.033,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_advnuclear_atb_moderate_0,AdvNuclear_ATB_Moderate,0,37,1,0,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,500,0,-1,-1,0,0,0,0,0,6590000,45000,0,0,0,0,2.84,0,0,0,285,0,10.44,0,0,east_north_central_uranium,0.5,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0.25,0.25,24,24,0,0,0,0,0,0,0,0,1.133,40,0.033,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+TRE,TRE_naturalgas_ccavgcf_moderate_0,NaturalGas_CCAvgCF_Moderate,0,38,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,500,0,-1,-1,0,0,0,0,0,880383.916,42007,28000,0,0,0,2,0,0,0,106,2,6.36,0,0,west_south_central_naturalgas,0.3,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0,0.889,30,0.033,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0,0
+TRE,TRE_naturalgas_ctavgcf_moderate_0,NaturalGas_CTAvgCF_Moderate,0,39,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,100,0,-1,-1,0,0,0,0,0,746250.365,35319,21000,0,0,0,5,0,0,0,137,3.5,9.72,0,0,west_south_central_naturalgas,0.3,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0,0.882,30,0.033,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0,0
+TRE,TRE_naturalgas_ccccsavgcf_conservative_0,NaturalGas_CCCCSAvgCF_Conservative,0,40,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,500,0,-1,-1,0,0,0,0,0,2120000,106685,67000,0,0,0,6,0,0,0,106,0,7.16,0,0,west_south_central_naturalgas,0.6,0,1,1,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.9,27,0.64,0.64,6,6,0,0,0,0,0,0,0,0,0.938,30,0.033,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0,0
+TRE,TRE_advnuclear_atb_moderate_0,AdvNuclear_ATB_Moderate,0,41,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,500,0,-1,-1,0,0,0,0,0,6590000,450000,0,0,0,0,2.84,0,0,0,285,0,10.44,0,0,west_south_central_uranium,0.5,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0.25,0.25,24,24,0,0,0,0,0,0,0,0,0.944,40,0.033,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0,0
+WECC,WECC_naturalgas_ccavgcf_moderate_0,NaturalGas_CCAvgCF_Moderate,0,42,3,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,500,0,-1,-1,0,0,0,0,0,880383.916,59543,28000,0,0,0,2,0,0,0,106,2,6.36,0,0,mountain_naturalgas,0.3,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0,1.26,30,0.033,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0
+WECC,WECC_naturalgas_ctavgcf_moderate_0,NaturalGas_CTAvgCF_Moderate,0,43,3,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,100,0,-1,-1,0,0,0,0,0,746250.365,45587,21000,0,0,0,5,0,0,0,137,3.5,9.72,0,0,mountain_naturalgas,0.3,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0,1.138,30,0.033,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0
+WECC,WECC_naturalgas_ccccsavgcf_conservative_0,NaturalGas_CCCCSAvgCF_Conservative,0,44,3,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,500,0,-1,-1,0,0,0,0,0,2120000,119927,67000,0,0,0,6,0,0,0,106,0,7.16,0,0,mountain_naturalgas,0.6,0,1,1,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.9,27,0.64,0.64,6,6,0,0,0,0,0,0,0,0,1.054,30,0.033,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0
+WECC,WECC_advnuclear_atb_moderate_0,AdvNuclear_ATB_Moderate,0,45,3,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,500,0,-1,-1,0,0,0,0,0,6590000,450000,0,0,0,0,2.84,0,0,0,285,0,10.44,0,0,mountain_uranium,0.5,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0.25,0.25,24,24,0,0,0,0,0,0,0,0,1.19,40,0.033,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0
+EIC,EIC_naturalgas_ctavgcf_moderate_0_zerocarbon,NaturalGas_CTAvgCF_Moderate_zerocarbon,0,46,1,0,1,0,0,0,0,0,0,0.93,0,0,0,0,0,0,0,1,1,100,0,-1,-1,0,0,0,0,0,746250.365,61000,0,0,0,0,5,0,0,0,137,3.5,9.72,0,0,zerocarbon_fuel,0.3,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0,1.128,30,0.033,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+TRE,TRE_naturalgas_ctavgcf_moderate_0_zerocarbon,NaturalGas_CTAvgCF_Moderate_zerocarbon,0,47,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,100,0,-1,-1,0,0,0,0,0,746250.365,61000,0,0,0,0,5,0,0,0,137,3.5,9.72,0,0,zerocarbon_fuel,0.3,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0,0.882,30,0.033,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0,0
+WECC,WECC_naturalgas_ctavgcf_moderate_0_zerocarbon,NaturalGas_CTAvgCF_Moderate_zerocarbon,0,48,3,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,100,0,-1,-1,0,0,0,0,0,746250.365,61000,0,0,0,0,5,0,0,0,137,3.5,9.72,0,0,zerocarbon_fuel,0.3,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0,1.138,30,0.033,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0
+EIC,EIC_offshore_wind_turbine_1,Offshore Wind Turbine,1,49,1,1,0,1,0,0,0,0,0,0.8,0,0,0,29.3,0,1,29.3,0,1,29.3,0,0,0,0,0,0,0,0,0,0,111496,0,0,0,0,0,0,0,0,0,10.34,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_onshore_wind_turbine_1,Onshore Wind Turbine,1,50,1,1,0,1,0,0,0,0,0,0.8,0,0,0,47407.4,0,710,47407.41,0,1,66.77,0,0,0,0,0,0,0,0,0,0,43000,0,0,0,0,0,0,0,0,0,10.34,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.296887743,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_solar_photovoltaic_1,Solar Photovoltaic,1,51,1,1,0,1,0,0,0,0,0,0.8,0,0,0,8533.9,0,1435,8533.945,0,1,5.95,0,0,0,0,0,0,0,0,0,0,22623,0,0,0,0,0,0,0,0,0,10.34,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.199617603,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+TRE,TRE_onshore_wind_turbine_1,Onshore Wind Turbine,1,52,2,1,0,1,0,0,0,0,0,0,0,0,0,21683.1,0,133,21683.123,0,1,163.03,0,0,0,0,0,0,0,0,0,0,43000,0,0,0,0,0,0,0,0,0,10.34,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.32023413,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_solar_photovoltaic_1,Solar Photovoltaic,1,53,2,1,0,1,0,0,0,0,0,0,0,0,0,1821.5,0,28,1821.512,0,1,65.05,0,0,0,0,0,0,0,0,0,0,22623,0,0,0,0,0,0,0,0,0,10.34,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.223940321,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+WECC,WECC_geothermal_1,Geothermal,1,54,3,1,0,1,0,0,0,0,0,0,0,0,0,1752.4,0,146,2752.246,0,0,12,0,0,0,0,0,0,0,0,0,0,209101,0,0,0,0,0,0,0,0,0,10.34,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0
+WECC,WECC_onshore_wind_turbine_1,Onshore Wind Turbine,1,55,3,1,0,1,0,0,0,0,0,0,0,0,0,20644.2,0,300,20644.2,0,1,68.81,0,0,0,0,0,0,0,0,0,0,43000,0,0,0,0,0,0,0,0,0,10.34,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.303506275,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_solar_photovoltaic_1,Solar Photovoltaic,1,56,3,1,0,1,0,0,0,0,0,0,0,0,0,14659.8,0,986,14659.848,0,1,14.87,0,0,0,0,0,0,0,0,0,0,22623,0,0,0,0,0,0,0,0,0,10.34,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.252030487,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+EIC,EIC_offshorewind_class3_moderate_fixed_1_0,OffShoreWind_Class3_Moderate_fixed_1,0,57,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,65762.8,-1,0,0,0,0,0,1730000,147250,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51161.657,1,30,0.036,0,0,0,0,0,0.453892708,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class3_moderate_fixed_1_1,OffShoreWind_Class3_Moderate_fixed_1,1,58,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,14399.2,-1,0,0,0,0,0,1730000,157328,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,61239.476,1,30,0.036,0,0,0,0,0,0.495629996,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class3_moderate_fixed_1_2,OffShoreWind_Class3_Moderate_fixed_1,2,59,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,34280.8,-1,0,0,0,0,0,1730000,153961,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,57872.369,1,30,0.036,0,0,0,0,0,0.451629132,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class3_moderate_fixed_1_3,OffShoreWind_Class3_Moderate_fixed_1,3,60,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,101840.5,-1,0,0,0,0,0,1730000,168852,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72763.911,1,30,0.036,0,0,0,0,0,0.495775014,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class3_moderate_fixed_1_4,OffShoreWind_Class3_Moderate_fixed_1,4,61,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,118605,-1,0,0,0,0,0,1730000,164784,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,68695.909,1,30,0.036,0,0,0,0,0,0.466509044,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class3_moderate_fixed_1_5,OffShoreWind_Class3_Moderate_fixed_1,5,62,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,18875.6,-1,0,0,0,0,0,1730000,146792,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50703.558,1,30,0.036,0,0,0,0,0,0.354788363,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class3_moderate_fixed_1_6,OffShoreWind_Class3_Moderate_fixed_1,6,63,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,79943.7,-1,0,0,0,0,0,1730000,144977,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48888.699,1,30,0.036,0,0,0,0,0,0.291283697,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class3_moderate_fixed_1_7,OffShoreWind_Class3_Moderate_fixed_1,7,64,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,23454.7,-1,0,0,0,0,0,1730000,347411,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,251322.456,1,30,0.036,0,0,0,0,0,0.440021217,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class3_moderate_fixed_1_8,OffShoreWind_Class3_Moderate_fixed_1,8,65,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,59461.7,-1,0,0,0,0,0,1730000,393568,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,297479.514,1,30,0.036,0,0,0,0,0,0.434866041,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class3_moderate_fixed_1_9,OffShoreWind_Class3_Moderate_fixed_1,9,66,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,73503.9,-1,0,0,0,0,0,1730000,155384,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59295.695,1,30,0.036,0,0,0,0,0,0.288762152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class3_moderate_fixed_0_0,OffShoreWind_Class3_Moderate_fixed_0,0,67,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,65762.8,-1,0,0,0,0,0,1730000,147250,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51161.657,1,30,0.036,0,0,0,0,0,0.453892708,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class3_moderate_fixed_0_1,OffShoreWind_Class3_Moderate_fixed_0,1,68,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,14399.2,-1,0,0,0,0,0,1730000,157328,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,61239.476,1,30,0.036,0,0,0,0,0,0.495629996,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class3_moderate_fixed_0_4,OffShoreWind_Class3_Moderate_fixed_0,4,69,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,34280.8,-1,0,0,0,0,0,1730000,153961,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,57872.369,1,30,0.036,0,0,0,0,0,0.451629132,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class3_moderate_fixed_0_5,OffShoreWind_Class3_Moderate_fixed_0,5,70,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,101840.5,-1,0,0,0,0,0,1730000,168852,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72763.911,1,30,0.036,0,0,0,0,0,0.495775014,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class3_moderate_fixed_0_10,OffShoreWind_Class3_Moderate_fixed_0,10,71,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,118605,-1,0,0,0,0,0,1730000,164784,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,68695.909,1,30,0.036,0,0,0,0,0,0.466509044,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class3_moderate_fixed_0_11,OffShoreWind_Class3_Moderate_fixed_0,11,72,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,18875.6,-1,0,0,0,0,0,1730000,146792,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50703.558,1,30,0.036,0,0,0,0,0,0.354788363,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class3_moderate_fixed_0_18,OffShoreWind_Class3_Moderate_fixed_0,18,73,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,79943.7,-1,0,0,0,0,0,1730000,144977,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48888.699,1,30,0.036,0,0,0,0,0,0.291283697,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class3_moderate_fixed_0_19,OffShoreWind_Class3_Moderate_fixed_0,19,74,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,23454.7,-1,0,0,0,0,0,1730000,347411,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,251322.456,1,30,0.036,0,0,0,0,0,0.440021217,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class3_moderate_fixed_0_28,OffShoreWind_Class3_Moderate_fixed_0,28,75,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,59461.7,-1,0,0,0,0,0,1730000,393568,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,297479.514,1,30,0.036,0,0,0,0,0,0.434866041,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class3_moderate_fixed_0_29,OffShoreWind_Class3_Moderate_fixed_0,29,76,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,73503.9,-1,0,0,0,0,0,1730000,155384,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59295.695,1,30,0.036,0,0,0,0,0,0.288762152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class12_moderate_floating_1_0,OffShoreWind_Class12_Moderate_floating_1,0,77,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,65762.8,-1,0,0,0,0,0,2770000,204577,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,51161.657,1,30,0.036,0,0,0,0,0,0.453892708,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class12_moderate_floating_1_1,OffShoreWind_Class12_Moderate_floating_1,1,78,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,14399.2,-1,0,0,0,0,0,2770000,214655,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,61239.476,1,30,0.036,0,0,0,0,0,0.495629996,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class12_moderate_floating_1_6,OffShoreWind_Class12_Moderate_floating_1,6,79,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,34280.8,-1,0,0,0,0,0,2770000,211288,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,57872.369,1,30,0.036,0,0,0,0,0,0.451629132,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class12_moderate_floating_1_7,OffShoreWind_Class12_Moderate_floating_1,7,80,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,101840.5,-1,0,0,0,0,0,2770000,226179,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,72763.911,1,30,0.036,0,0,0,0,0,0.495775014,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class12_moderate_floating_1_18,OffShoreWind_Class12_Moderate_floating_1,18,81,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,118605,-1,0,0,0,0,0,2770000,222111,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,68695.909,1,30,0.036,0,0,0,0,0,0.466509044,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class12_moderate_floating_1_19,OffShoreWind_Class12_Moderate_floating_1,19,82,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,18875.6,-1,0,0,0,0,0,2770000,204119,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,50703.558,1,30,0.036,0,0,0,0,0,0.354788363,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class12_moderate_floating_1_38,OffShoreWind_Class12_Moderate_floating_1,38,83,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,79943.7,-1,0,0,0,0,0,2770000,202304,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,48888.699,1,30,0.036,0,0,0,0,0,0.291283697,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class12_moderate_floating_1_39,OffShoreWind_Class12_Moderate_floating_1,39,84,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,23454.7,-1,0,0,0,0,0,2770000,404738,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,251322.456,1,30,0.036,0,0,0,0,0,0.440021217,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class12_moderate_floating_1_68,OffShoreWind_Class12_Moderate_floating_1,68,85,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,59461.7,-1,0,0,0,0,0,2770000,450895,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,297479.514,1,30,0.036,0,0,0,0,0,0.434866041,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class12_moderate_floating_1_69,OffShoreWind_Class12_Moderate_floating_1,69,86,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,73503.9,-1,0,0,0,0,0,2770000,212711,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,59295.695,1,30,0.036,0,0,0,0,0,0.288762152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class12_moderate_floating_0_0,OffShoreWind_Class12_Moderate_floating_0,0,87,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,65762.8,-1,0,0,0,0,0,2770000,204577,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,51161.657,1,30,0.036,0,0,0,0,0,0.453892708,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class12_moderate_floating_0_1,OffShoreWind_Class12_Moderate_floating_0,1,88,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,14399.2,-1,0,0,0,0,0,2770000,214655,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,61239.476,1,30,0.036,0,0,0,0,0,0.495629996,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class12_moderate_floating_0_8,OffShoreWind_Class12_Moderate_floating_0,8,89,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,34280.8,-1,0,0,0,0,0,2770000,211288,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,57872.369,1,30,0.036,0,0,0,0,0,0.451629132,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class12_moderate_floating_0_9,OffShoreWind_Class12_Moderate_floating_0,9,90,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,101840.5,-1,0,0,0,0,0,2770000,226179,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,72763.911,1,30,0.036,0,0,0,0,0,0.495775014,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class12_moderate_floating_0_28,OffShoreWind_Class12_Moderate_floating_0,28,91,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,118605,-1,0,0,0,0,0,2770000,222111,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,68695.909,1,30,0.036,0,0,0,0,0,0.466509044,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class12_moderate_floating_0_29,OffShoreWind_Class12_Moderate_floating_0,29,92,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,18875.6,-1,0,0,0,0,0,2770000,204119,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,50703.558,1,30,0.036,0,0,0,0,0,0.354788363,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class12_moderate_floating_0_68,OffShoreWind_Class12_Moderate_floating_0,68,93,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,79943.7,-1,0,0,0,0,0,2770000,202304,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,48888.699,1,30,0.036,0,0,0,0,0,0.291283697,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class12_moderate_floating_0_69,OffShoreWind_Class12_Moderate_floating_0,69,94,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,23454.7,-1,0,0,0,0,0,2770000,404738,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,251322.456,1,30,0.036,0,0,0,0,0,0.440021217,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class12_moderate_floating_0_138,OffShoreWind_Class12_Moderate_floating_0,138,95,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,59461.7,-1,0,0,0,0,0,2770000,450895,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,297479.514,1,30,0.036,0,0,0,0,0,0.434866041,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_offshorewind_class12_moderate_floating_0_139,OffShoreWind_Class12_Moderate_floating_0,139,96,1,1,0,1,0,0,0,0,0,0.8,0,0,0,0,0,0,0,1,1,1,0,73503.9,-1,0,0,0,0,0,2770000,212711,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,59295.695,1,30,0.036,0,0,0,0,0,0.288762152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+TRE,TRE_offshorewind_class3_moderate_fixed_1_0,OffShoreWind_Class3_Moderate_fixed_1,0,97,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,13077.5,-1,0,0,0,0,0,1730000,145004,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51156.858,0.977,30,0.036,0,0,0,0,0,0.371246308,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class3_moderate_fixed_1_1,OffShoreWind_Class3_Moderate_fixed_1,1,98,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,9995,-1,0,0,0,0,0,1730000,158104,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64256.422,0.977,30,0.036,0,0,0,0,0,0.415583521,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class3_moderate_fixed_1_2,OffShoreWind_Class3_Moderate_fixed_1,2,99,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,22842.5,-1,0,0,0,0,0,1730000,140443,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46595.365,0.977,30,0.036,0,0,0,0,0,0.357092798,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class3_moderate_fixed_1_3,OffShoreWind_Class3_Moderate_fixed_1,3,100,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,895,-1,0,0,0,0,0,1730000,157772,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63924.883,0.977,30,0.036,0,0,0,0,0,0.377708793,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class3_moderate_fixed_1_4,OffShoreWind_Class3_Moderate_fixed_1,4,101,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,20865,-1,0,0,0,0,0,1730000,142961,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49113.588,0.977,30,0.036,0,0,0,0,0,0.351203203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class3_moderate_fixed_1_5,OffShoreWind_Class3_Moderate_fixed_1,5,102,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,4480,-1,0,0,0,0,0,1730000,166128,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72280.844,0.977,30,0.036,0,0,0,0,0,0.416367918,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class3_moderate_fixed_1_6,OffShoreWind_Class3_Moderate_fixed_1,6,103,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,23652,-1,0,0,0,0,0,1730000,166849,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,73001.164,0.977,30,0.036,0,0,0,0,0,0.405127913,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class3_moderate_fixed_1_7,OffShoreWind_Class3_Moderate_fixed_1,7,104,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,10070,-1,0,0,0,0,0,1730000,157895,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64047.233,0.977,30,0.036,0,0,0,0,0,0.345421404,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class3_moderate_fixed_1_8,OffShoreWind_Class3_Moderate_fixed_1,8,105,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,20680,-1,0,0,0,0,0,1730000,167576,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,73728.515,0.977,30,0.036,0,0,0,0,0,0.392506152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class3_moderate_fixed_1_9,OffShoreWind_Class3_Moderate_fixed_1,9,106,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,16746,-1,0,0,0,0,0,1730000,156072,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,62224.897,0.977,30,0.036,0,0,0,0,0,0.369584978,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class3_moderate_fixed_0_0,OffShoreWind_Class3_Moderate_fixed_0,0,107,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,13077.5,-1,0,0,0,0,0,1730000,145004,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51156.858,0.977,30,0.036,0,0,0,0,0,0.371246308,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class3_moderate_fixed_0_1,OffShoreWind_Class3_Moderate_fixed_0,1,108,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,9995,-1,0,0,0,0,0,1730000,158104,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64256.422,0.977,30,0.036,0,0,0,0,0,0.415583521,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class3_moderate_fixed_0_4,OffShoreWind_Class3_Moderate_fixed_0,4,109,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,22842.5,-1,0,0,0,0,0,1730000,140443,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46595.365,0.977,30,0.036,0,0,0,0,0,0.357092798,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class3_moderate_fixed_0_5,OffShoreWind_Class3_Moderate_fixed_0,5,110,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,895,-1,0,0,0,0,0,1730000,157772,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63924.883,0.977,30,0.036,0,0,0,0,0,0.377708793,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class3_moderate_fixed_0_10,OffShoreWind_Class3_Moderate_fixed_0,10,111,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,20865,-1,0,0,0,0,0,1730000,142961,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49113.588,0.977,30,0.036,0,0,0,0,0,0.351203203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class3_moderate_fixed_0_11,OffShoreWind_Class3_Moderate_fixed_0,11,112,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,4480,-1,0,0,0,0,0,1730000,166128,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72280.844,0.977,30,0.036,0,0,0,0,0,0.416367918,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class3_moderate_fixed_0_18,OffShoreWind_Class3_Moderate_fixed_0,18,113,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,23652,-1,0,0,0,0,0,1730000,166849,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,73001.164,0.977,30,0.036,0,0,0,0,0,0.405127913,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class3_moderate_fixed_0_19,OffShoreWind_Class3_Moderate_fixed_0,19,114,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,10070,-1,0,0,0,0,0,1730000,157895,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64047.233,0.977,30,0.036,0,0,0,0,0,0.345421404,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class3_moderate_fixed_0_28,OffShoreWind_Class3_Moderate_fixed_0,28,115,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,20680,-1,0,0,0,0,0,1730000,167576,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,73728.515,0.977,30,0.036,0,0,0,0,0,0.392506152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class3_moderate_fixed_0_29,OffShoreWind_Class3_Moderate_fixed_0,29,116,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,16746,-1,0,0,0,0,0,1730000,156072,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,62224.897,0.977,30,0.036,0,0,0,0,0,0.369584978,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class12_moderate_floating_1_0,OffShoreWind_Class12_Moderate_floating_1,0,117,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,13077.5,-1,0,0,0,0,0,2770000,200994,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,51156.858,0.977,30,0.036,0,0,0,0,0,0.371246308,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class12_moderate_floating_1_1,OffShoreWind_Class12_Moderate_floating_1,1,118,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,9995,-1,0,0,0,0,0,2770000,214094,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,64256.422,0.977,30,0.036,0,0,0,0,0,0.415583521,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class12_moderate_floating_1_6,OffShoreWind_Class12_Moderate_floating_1,6,119,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,22842.5,-1,0,0,0,0,0,2770000,196433,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,46595.365,0.977,30,0.036,0,0,0,0,0,0.357092798,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class12_moderate_floating_1_7,OffShoreWind_Class12_Moderate_floating_1,7,120,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,895,-1,0,0,0,0,0,2770000,213762,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,63924.883,0.977,30,0.036,0,0,0,0,0,0.377708793,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class12_moderate_floating_1_18,OffShoreWind_Class12_Moderate_floating_1,18,121,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,20865,-1,0,0,0,0,0,2770000,198951,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,49113.588,0.977,30,0.036,0,0,0,0,0,0.351203203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class12_moderate_floating_1_19,OffShoreWind_Class12_Moderate_floating_1,19,122,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,4480,-1,0,0,0,0,0,2770000,222118,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,72280.844,0.977,30,0.036,0,0,0,0,0,0.416367918,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class12_moderate_floating_1_38,OffShoreWind_Class12_Moderate_floating_1,38,123,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,23652,-1,0,0,0,0,0,2770000,222839,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,73001.164,0.977,30,0.036,0,0,0,0,0,0.405127913,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class12_moderate_floating_1_39,OffShoreWind_Class12_Moderate_floating_1,39,124,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,10070,-1,0,0,0,0,0,2770000,213885,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,64047.233,0.977,30,0.036,0,0,0,0,0,0.345421404,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class12_moderate_floating_1_68,OffShoreWind_Class12_Moderate_floating_1,68,125,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,20680,-1,0,0,0,0,0,2770000,223566,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,73728.515,0.977,30,0.036,0,0,0,0,0,0.392506152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class12_moderate_floating_1_69,OffShoreWind_Class12_Moderate_floating_1,69,126,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,16746,-1,0,0,0,0,0,2770000,212062,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,62224.897,0.977,30,0.036,0,0,0,0,0,0.369584978,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class12_moderate_floating_0_0,OffShoreWind_Class12_Moderate_floating_0,0,127,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,13077.5,-1,0,0,0,0,0,2770000,200994,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,51156.858,0.977,30,0.036,0,0,0,0,0,0.371246308,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class12_moderate_floating_0_1,OffShoreWind_Class12_Moderate_floating_0,1,128,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,9995,-1,0,0,0,0,0,2770000,214094,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,64256.422,0.977,30,0.036,0,0,0,0,0,0.415583521,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class12_moderate_floating_0_8,OffShoreWind_Class12_Moderate_floating_0,8,129,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,22842.5,-1,0,0,0,0,0,2770000,196433,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,46595.365,0.977,30,0.036,0,0,0,0,0,0.357092798,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class12_moderate_floating_0_9,OffShoreWind_Class12_Moderate_floating_0,9,130,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,895,-1,0,0,0,0,0,2770000,213762,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,63924.883,0.977,30,0.036,0,0,0,0,0,0.377708793,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class12_moderate_floating_0_28,OffShoreWind_Class12_Moderate_floating_0,28,131,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,20865,-1,0,0,0,0,0,2770000,198951,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,49113.588,0.977,30,0.036,0,0,0,0,0,0.351203203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class12_moderate_floating_0_29,OffShoreWind_Class12_Moderate_floating_0,29,132,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,4480,-1,0,0,0,0,0,2770000,222118,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,72280.844,0.977,30,0.036,0,0,0,0,0,0.416367918,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class12_moderate_floating_0_68,OffShoreWind_Class12_Moderate_floating_0,68,133,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,23652,-1,0,0,0,0,0,2770000,222839,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,73001.164,0.977,30,0.036,0,0,0,0,0,0.405127913,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class12_moderate_floating_0_69,OffShoreWind_Class12_Moderate_floating_0,69,134,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,10070,-1,0,0,0,0,0,2770000,213885,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,64047.233,0.977,30,0.036,0,0,0,0,0,0.345421404,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class12_moderate_floating_0_138,OffShoreWind_Class12_Moderate_floating_0,138,135,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,20680,-1,0,0,0,0,0,2770000,223566,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,73728.515,0.977,30,0.036,0,0,0,0,0,0.392506152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+TRE,TRE_offshorewind_class12_moderate_floating_0_139,OffShoreWind_Class12_Moderate_floating_0,139,136,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,16746,-1,0,0,0,0,0,2770000,212062,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,62224.897,0.977,30,0.036,0,0,0,0,0,0.369584978,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+WECC,WECC_offshorewind_class3_moderate_fixed_1_0,OffShoreWind_Class3_Moderate_fixed_1,0,137,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,26916.5,-1,0,0,0,0,0,1730000,174794,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,78705.752,1,30,0.036,0,0,0,0,0,0.485625327,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class3_moderate_fixed_1_1,OffShoreWind_Class3_Moderate_fixed_1,1,138,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,29943.3,-1,0,0,0,0,0,1730000,179346,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83257.787,1,30,0.036,0,0,0,0,0,0.543219388,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class3_moderate_fixed_1_2,OffShoreWind_Class3_Moderate_fixed_1,2,139,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,39553.5,-1,0,0,0,0,0,1730000,177553,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,81464.449,1,30,0.036,0,0,0,0,0,0.499437243,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class3_moderate_fixed_1_3,OffShoreWind_Class3_Moderate_fixed_1,3,140,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,18780,-1,0,0,0,0,0,1730000,162737,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66648.117,1,30,0.036,0,0,0,0,0,0.412348032,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class3_moderate_fixed_1_4,OffShoreWind_Class3_Moderate_fixed_1,4,141,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,19994,-1,0,0,0,0,0,1730000,174072,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,77983.329,1,30,0.036,0,0,0,0,0,0.458608687,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class3_moderate_fixed_1_5,OffShoreWind_Class3_Moderate_fixed_1,5,142,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,36016,-1,0,0,0,0,0,1730000,175097,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,79008.616,1,30,0.036,0,0,0,0,0,0.473246485,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class3_moderate_fixed_1_6,OffShoreWind_Class3_Moderate_fixed_1,6,143,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,53762,-1,0,0,0,0,0,1730000,174641,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,78552.631,1,30,0.036,0,0,0,0,0,0.42923066,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class3_moderate_fixed_1_7,OffShoreWind_Class3_Moderate_fixed_1,7,144,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1544,-1,0,0,0,0,0,1730000,151442,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55353.297,1,30,0.036,0,0,0,0,0,0.336571634,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class3_moderate_fixed_1_8,OffShoreWind_Class3_Moderate_fixed_1,8,145,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,44128,-1,0,0,0,0,0,1730000,176829,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80740.015,1,30,0.036,0,0,0,0,0,0.404276967,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class3_moderate_fixed_1_9,OffShoreWind_Class3_Moderate_fixed_1,9,146,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,9122,-1,0,0,0,0,0,1730000,151351,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55262.315,1,30,0.036,0,0,0,0,0,0.298123151,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class3_moderate_fixed_0_0,OffShoreWind_Class3_Moderate_fixed_0,0,147,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,26916.5,-1,0,0,0,0,0,1730000,174794,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,78705.752,1,30,0.036,0,0,0,0,0,0.485625327,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class3_moderate_fixed_0_1,OffShoreWind_Class3_Moderate_fixed_0,1,148,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,29943.3,-1,0,0,0,0,0,1730000,179346,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83257.787,1,30,0.036,0,0,0,0,0,0.543219388,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class3_moderate_fixed_0_4,OffShoreWind_Class3_Moderate_fixed_0,4,149,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,39553.5,-1,0,0,0,0,0,1730000,177553,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,81464.449,1,30,0.036,0,0,0,0,0,0.499437243,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class3_moderate_fixed_0_5,OffShoreWind_Class3_Moderate_fixed_0,5,150,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,18780,-1,0,0,0,0,0,1730000,162737,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66648.117,1,30,0.036,0,0,0,0,0,0.412348032,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class3_moderate_fixed_0_10,OffShoreWind_Class3_Moderate_fixed_0,10,151,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,19994,-1,0,0,0,0,0,1730000,174072,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,77983.329,1,30,0.036,0,0,0,0,0,0.458608687,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class3_moderate_fixed_0_11,OffShoreWind_Class3_Moderate_fixed_0,11,152,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,36016,-1,0,0,0,0,0,1730000,175097,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,79008.616,1,30,0.036,0,0,0,0,0,0.473246485,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class3_moderate_fixed_0_18,OffShoreWind_Class3_Moderate_fixed_0,18,153,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,53762,-1,0,0,0,0,0,1730000,174641,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,78552.631,1,30,0.036,0,0,0,0,0,0.42923066,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class3_moderate_fixed_0_19,OffShoreWind_Class3_Moderate_fixed_0,19,154,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1544,-1,0,0,0,0,0,1730000,151442,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55353.297,1,30,0.036,0,0,0,0,0,0.336571634,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class3_moderate_fixed_0_28,OffShoreWind_Class3_Moderate_fixed_0,28,155,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,44128,-1,0,0,0,0,0,1730000,176829,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80740.015,1,30,0.036,0,0,0,0,0,0.404276967,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class3_moderate_fixed_0_29,OffShoreWind_Class3_Moderate_fixed_0,29,156,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,9122,-1,0,0,0,0,0,1730000,151351,78449,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55262.315,1,30,0.036,0,0,0,0,0,0.298123151,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class12_moderate_floating_1_0,OffShoreWind_Class12_Moderate_floating_1,0,157,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,26916.5,-1,0,0,0,0,0,2770000,232121,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,78705.752,1,30,0.036,0,0,0,0,0,0.485625327,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class12_moderate_floating_1_1,OffShoreWind_Class12_Moderate_floating_1,1,158,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,29943.3,-1,0,0,0,0,0,2770000,236673,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,83257.787,1,30,0.036,0,0,0,0,0,0.543219388,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class12_moderate_floating_1_6,OffShoreWind_Class12_Moderate_floating_1,6,159,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,39553.5,-1,0,0,0,0,0,2770000,234880,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,81464.449,1,30,0.036,0,0,0,0,0,0.499437243,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class12_moderate_floating_1_7,OffShoreWind_Class12_Moderate_floating_1,7,160,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,18780,-1,0,0,0,0,0,2770000,220064,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,66648.117,1,30,0.036,0,0,0,0,0,0.412348032,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class12_moderate_floating_1_18,OffShoreWind_Class12_Moderate_floating_1,18,161,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,19994,-1,0,0,0,0,0,2770000,231399,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,77983.329,1,30,0.036,0,0,0,0,0,0.458608687,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class12_moderate_floating_1_19,OffShoreWind_Class12_Moderate_floating_1,19,162,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,36016,-1,0,0,0,0,0,2770000,232424,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,79008.616,1,30,0.036,0,0,0,0,0,0.473246485,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class12_moderate_floating_1_38,OffShoreWind_Class12_Moderate_floating_1,38,163,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,53762,-1,0,0,0,0,0,2770000,231968,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,78552.631,1,30,0.036,0,0,0,0,0,0.42923066,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class12_moderate_floating_1_39,OffShoreWind_Class12_Moderate_floating_1,39,164,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1544,-1,0,0,0,0,0,2770000,208769,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,55353.297,1,30,0.036,0,0,0,0,0,0.336571634,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class12_moderate_floating_1_68,OffShoreWind_Class12_Moderate_floating_1,68,165,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,44128,-1,0,0,0,0,0,2770000,234156,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,80740.015,1,30,0.036,0,0,0,0,0,0.404276967,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class12_moderate_floating_1_69,OffShoreWind_Class12_Moderate_floating_1,69,166,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,9122,-1,0,0,0,0,0,2770000,208678,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,55262.315,1,30,0.036,0,0,0,0,0,0.298123151,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class12_moderate_floating_0_0,OffShoreWind_Class12_Moderate_floating_0,0,167,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,26916.5,-1,0,0,0,0,0,2770000,232121,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,78705.752,1,30,0.036,0,0,0,0,0,0.485625327,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class12_moderate_floating_0_1,OffShoreWind_Class12_Moderate_floating_0,1,168,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,29943.3,-1,0,0,0,0,0,2770000,236673,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,83257.787,1,30,0.036,0,0,0,0,0,0.543219388,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class12_moderate_floating_0_8,OffShoreWind_Class12_Moderate_floating_0,8,169,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,39553.5,-1,0,0,0,0,0,2770000,234880,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,81464.449,1,30,0.036,0,0,0,0,0,0.499437243,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class12_moderate_floating_0_9,OffShoreWind_Class12_Moderate_floating_0,9,170,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,18780,-1,0,0,0,0,0,2770000,220064,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,66648.117,1,30,0.036,0,0,0,0,0,0.412348032,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class12_moderate_floating_0_28,OffShoreWind_Class12_Moderate_floating_0,28,171,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,19994,-1,0,0,0,0,0,2770000,231399,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,77983.329,1,30,0.036,0,0,0,0,0,0.458608687,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class12_moderate_floating_0_29,OffShoreWind_Class12_Moderate_floating_0,29,172,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,36016,-1,0,0,0,0,0,2770000,232424,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,79008.616,1,30,0.036,0,0,0,0,0,0.473246485,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class12_moderate_floating_0_68,OffShoreWind_Class12_Moderate_floating_0,68,173,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,53762,-1,0,0,0,0,0,2770000,231968,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,78552.631,1,30,0.036,0,0,0,0,0,0.42923066,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class12_moderate_floating_0_69,OffShoreWind_Class12_Moderate_floating_0,69,174,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1544,-1,0,0,0,0,0,2770000,208769,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,55353.297,1,30,0.036,0,0,0,0,0,0.336571634,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class12_moderate_floating_0_138,OffShoreWind_Class12_Moderate_floating_0,138,175,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,44128,-1,0,0,0,0,0,2770000,234156,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,80740.015,1,30,0.036,0,0,0,0,0,0.404276967,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_offshorewind_class12_moderate_floating_0_139,OffShoreWind_Class12_Moderate_floating_0,139,176,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,9122,-1,0,0,0,0,0,2770000,208678,68827,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,55262.315,1,30,0.036,0,0,0,0,0,0.298123151,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+EIC,EIC_batteries_1,Batteries,1,177,1,0,0,0,0,1,0,0,0,0.95,0,0,1424.4,712.2,0,42,712.194,0,0,16.96,0,0,0,0,0,0,0,0,0,0,6235,0,0,0,0.15,0.15,0,0,0,0,10.34,0,0,None,0.041,0,0.92,0.92,0,1,10,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_hydroelectric_pumped_storage_1,Hydroelectric Pumped Storage,1,178,1,0,0,0,0,1,0,0,0,0.95,0,0,275638,17783.1,0,104,17783.064,0,0,170.99,0,0,0,0,0,0,0,0,0,0,47048,0,0,0,0.15,0.15,0,0,0,0,10.34,0,0,None,0.524,0,0.866,0.866,0,1,20,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+TRE,TRE_batteries_1,Batteries,1,179,2,0,0,0,0,1,0,0,0,0,0,0,721.4,360.7,0,8,360.704,0,0,45.09,0,0,0,0,0,0,0,0,0,0,6235,0,0,0,0.15,0.15,0,0,0,0,10.34,0,0,None,0.001,0,0.92,0.92,0,1,10,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95,0,0
+WECC,WECC_batteries_1,Batteries,1,180,3,0,0,0,0,1,0,0,0,0,0,0,3611,1357.5,0,48,1357.488,0,0,28.28,0,0,0,0,0,0,0,0,0,0,6235,0,0,0,0.15,0.15,0,0,0,0,10.34,0,0,None,0.02,0,0.92,0.92,0,1,10,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95,0
+WECC,WECC_hydroelectric_pumped_storage_1,Hydroelectric Pumped Storage,1,181,3,0,0,0,0,1,0,0,0,0,0,0,70790,4567.1,0,45,4567.095,0,0,101.49,0,0,0,0,0,0,0,0,0,0,47048,0,0,0,0.15,0.15,0,0,0,0,10.34,0,0,None,0.175,0,0.866,0.866,0,1,20,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95,0
+EIC,EIC_battery_moderate_0,Battery_*_Moderate,0,182,1,0,0,0,0,1,0,0,0,0.95,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,238220.323,19978,5955,141861.827,11897,3546,0.15,0.15,0,0,0,0,0,0,0,None,0,0,0.92,0.92,0,1,10,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1.03,15,0.026,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+TRE,TRE_battery_moderate_0,Battery_*_Moderate,0,183,2,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,238220.323,19389,5955,141861.827,11546,3546,0.15,0.15,0,0,0,0,0,0,0,None,0,0,0.92,0.92,0,1,10,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,15,0.026,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95,0,0
+WECC,WECC_battery_moderate_0,Battery_*_Moderate,0,184,3,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,238220.323,20202,5955,141861.827,12030,3546,0.15,0.15,0,0,0,0,0,0,0,None,0,0,0.92,0.92,0,1,10,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1.042,15,0.026,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95,0
+WECC,WECC_trans_light_duty_1,trans_light_duty,1,185,3,0,0,0,0,0,1,0,0,0,0,0,0,88930.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,5,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.304267582,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95,0
+EIC,EIC_trans_light_duty_1,trans_light_duty,1,186,1,0,0,0,0,0,1,0,0,0.95,0,0,0,227552.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,5,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.29105489,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+TRE,TRE_trans_light_duty_1,trans_light_duty,1,187,2,0,0,0,0,0,1,0,0,0,0,0,0,34387.8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,5,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.253653324,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95,0,0
+WECC,WECC_comm_water_heat_1,comm_water_heat,1,188,3,0,0,0,0,0,1,0,0,0,0,0,0,1130.3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,2,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.575245441,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95,0
+EIC,EIC_comm_water_heat_1,comm_water_heat,1,189,1,0,0,0,0,0,1,0,0,0.95,0,0,0,2922.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,2,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.545242595,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+TRE,TRE_comm_water_heat_1,comm_water_heat,1,190,2,0,0,0,0,0,1,0,0,0,0,0,0,368.7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,2,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.48278806,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95,0,0
+WECC,WECC_res_water_heat_1,res_water_heat,1,191,3,0,0,0,0,0,1,0,0,0,0,0,0,2578.7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,2,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.341639384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95,0
+EIC,EIC_res_water_heat_1,res_water_heat,1,192,1,0,0,0,0,0,1,0,0,0.95,0,0,0,8238.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,2,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.358667559,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+TRE,TRE_res_water_heat_1,res_water_heat,1,193,2,0,0,0,0,0,1,0,0,0,0,0,0,1049.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,2,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.350966509,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95,0,0
+WECC,WECC_comm_space_heat_cool_1,comm_space_heat_cool,1,194,3,0,0,0,0,0,1,0,0,0,0,0,0,7483.3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.172929324,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95,0
+EIC,EIC_comm_space_heat_cool_1,comm_space_heat_cool,1,195,1,0,0,0,0,0,1,0,0,0.95,0,0,0,41624.8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.155632777,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+TRE,TRE_comm_space_heat_cool_1,comm_space_heat_cool,1,196,2,0,0,0,0,0,1,0,0,0,0,0,0,6978.6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.09675803,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95,0,0
+WECC,WECC_res_space_heat_cool_1,res_space_heat_cool,1,197,3,0,0,0,0,0,1,0,0,0,0,0,0,12467.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.244983674,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95,0
+EIC,EIC_res_space_heat_cool_1,res_space_heat_cool,1,198,1,0,0,0,0,0,1,0,0,0.95,0,0,0,47457,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.208288887,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+TRE,TRE_res_space_heat_cool_1,res_space_heat_cool,1,199,2,0,0,0,0,0,1,0,0,0,0,0,0,7585.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.190117881,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95,0,0
+EIC,EIC_biomass_1,Biomass,1,200,1,0,0,0,1,0,0,0,0,0.93,0,0,0,1722.5,0,1351,6256.481,0,0,1.27,0,0,0,0,0,0,0,0,0,0,150850,0,0,0,7.32,0,0,0,172,0,17.03,1.056,3.066,biomass,0.308,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+EIC,EIC_small_hydroelectric_1,Small Hydroelectric,1,201,1,0,0,0,1,0,0,0,0,0.8,0,0,0,1672.2,0,1579,3633.279,0,0,1.06,0,0,0,0,0,0,0,0,0,0,47048,0,0,0,0,0,0,0,0,0,10.34,0,0,None,0.273,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.344661608,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+TRE,TRE_biomass_1,Biomass,1,202,2,0,0,0,1,0,0,0,0,0,0,0,0,44.5,0,30,162.9,0,0,1.48,0,0,0,0,0,0,0,0,0,0,150850,0,0,0,6.51,0,0,0,172,0,15.15,0.636,1.888,biomass,0.591,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0,0
+TRE,TRE_small_hydroelectric_1,Small Hydroelectric,1,203,2,0,0,0,1,0,0,0,0,0,0,0,0,11.2,0,15,54.795,0,0,0.75,0,0,0,0,0,0,0,0,0,0,47048,0,0,0,0,0,0,0,0,0,10.34,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.094297837,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+WECC,WECC_biomass_1,Biomass,1,204,3,0,0,0,1,0,0,0,0,0,0,0,0,551,0,274,1535.496,0,0,2.01,0,0,0,0,0,0,0,0,0,0,150850,0,0,0,7.14,0,0,0,172,0,16.63,2.779,3.894,biomass,0.362,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0
+WECC,WECC_small_hydroelectric_1,Small Hydroelectric,1,205,3,0,0,0,1,0,0,0,0,0,0,0,0,1064.3,0,659,2966.818,0,0,1.62,0,0,0,0,0,0,0,0,0,0,47048,0,0,0,0,0,0,0,0,0,10.34,0,0,None,0.181,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.438570496,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+WECC,WECC_distributed_generation_1,distributed_generation,1,206,3,0,0,0,1,0,0,0,0,0,0,0,0,250535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.24602032,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0
+EIC,EIC_distributed_generation_1,distributed_generation,1,207,1,0,0,0,1,0,0,0,0,0.8,0,0,0,1770000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.22735468,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+TRE,TRE_distributed_generation_1,distributed_generation,1,208,2,0,0,0,1,0,0,0,0,0,0,0,0,17006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,None,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.214929566,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0
+EIC,EIC_landbasedwind_class1_moderate_0,LandbasedWind_Class1_Moderate_,0,209,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,879445.731,14198,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14197.521,1.266,30,0.03,0,0,0,0,0,0.46646145,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+EIC,EIC_landbasedwind_class1_moderate_1,LandbasedWind_Class1_Moderate_,1,210,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,879445.731,17082,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17082.104,1.266,30,0.03,0,0,0,0,0,0.506161809,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+EIC,EIC_landbasedwind_class1_moderate_2,LandbasedWind_Class1_Moderate_,2,211,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,879445.731,17267,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17266.619,1.266,30,0.03,0,0,0,0,0,0.428973228,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+EIC,EIC_landbasedwind_class1_moderate_3,LandbasedWind_Class1_Moderate_,3,212,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,879445.731,25483,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25482.635,1.266,30,0.03,0,0,0,0,0,0.470765114,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+EIC,EIC_landbasedwind_class1_moderate_4,LandbasedWind_Class1_Moderate_,4,213,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,879445.731,16488,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16487.938,1.266,30,0.03,0,0,0,0,0,0.369812936,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+EIC,EIC_landbasedwind_class1_moderate_5,LandbasedWind_Class1_Moderate_,5,214,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,879445.731,25720,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25719.606,1.266,30,0.03,0,0,0,0,0,0.434300929,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+EIC,EIC_landbasedwind_class1_moderate_6,LandbasedWind_Class1_Moderate_,6,215,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,879445.731,21224,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21223.571,1.266,30,0.03,0,0,0,0,0,0.325287282,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+EIC,EIC_landbasedwind_class1_moderate_7,LandbasedWind_Class1_Moderate_,7,216,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,879445.731,32633,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32632.921,1.266,30,0.03,0,0,0,0,0,0.405135185,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+EIC,EIC_landbasedwind_class1_moderate_8,LandbasedWind_Class1_Moderate_,8,217,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,879445.731,28526,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28526.156,1.266,30,0.03,0,0,0,0,0,0.301312625,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+EIC,EIC_landbasedwind_class1_moderate_9,LandbasedWind_Class1_Moderate_,9,218,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,879445.731,244462,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,244461.674,1.266,30,0.03,0,0,0,0,0,0.479932398,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+EIC,EIC_storage_metalair_advanced_0,Storage_MetalAir_Advanced,0,219,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,-1,-1,-1,0,-1,-1,0,0,0,0,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.03,25,0.026,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+EIC,EIC_utilitypv_class1_moderate_0,UtilityPV_Class1_Moderate_,0,220,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,630556.245,8863,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8863.386,1.017,30,0.026,0,0,0,0,0,0.26517567,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+EIC,EIC_utilitypv_class1_moderate_1,UtilityPV_Class1_Moderate_,1,221,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,630556.245,4464,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4464.156,1.017,30,0.026,0,0,0,0,0,0.246608377,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+EIC,EIC_utilitypv_class1_moderate_2,UtilityPV_Class1_Moderate_,2,222,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,630556.245,14630,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14629.711,1.017,30,0.026,0,0,0,0,0,0.262942463,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+EIC,EIC_utilitypv_class1_moderate_3,UtilityPV_Class1_Moderate_,3,223,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,630556.245,10126,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10125.593,1.017,30,0.026,0,0,0,0,0,0.247017696,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+EIC,EIC_utilitypv_class1_moderate_4,UtilityPV_Class1_Moderate_,4,224,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,630556.245,16248,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16248.012,1.017,30,0.026,0,0,0,0,0,0.250704974,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+EIC,EIC_utilitypv_class1_moderate_5,UtilityPV_Class1_Moderate_,5,225,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,630556.245,22825,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,22825.004,1.017,30,0.026,0,0,0,0,0,0.268118054,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+EIC,EIC_utilitypv_class1_moderate_6,UtilityPV_Class1_Moderate_,6,226,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,630556.245,24566,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24565.988,1.017,30,0.026,0,0,0,0,0,0.258166939,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+EIC,EIC_utilitypv_class1_moderate_7,UtilityPV_Class1_Moderate_,7,227,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,630556.245,21181,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21180.786,1.017,30,0.026,0,0,0,0,0,0.245459273,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+EIC,EIC_utilitypv_class1_moderate_8,UtilityPV_Class1_Moderate_,8,228,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,630556.245,32414,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32414.229,1.017,30,0.026,0,0,0,0,0,0.247877195,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+EIC,EIC_utilitypv_class1_moderate_9,UtilityPV_Class1_Moderate_,9,229,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,630556.245,148669,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,148668.665,1.017,30,0.026,0,0,0,0,0,0.270195067,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+TRE,TRE_landbasedwind_class1_moderate_0,LandbasedWind_Class1_Moderate_,0,230,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,879445.731,14393,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14392.776,0.933,30,0.03,0,0,0,0,0,0.468758494,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+TRE,TRE_landbasedwind_class1_moderate_1,LandbasedWind_Class1_Moderate_,1,231,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,879445.731,20298,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20297.809,0.933,30,0.03,0,0,0,0,0,0.50884968,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+TRE,TRE_landbasedwind_class1_moderate_2,LandbasedWind_Class1_Moderate_,2,232,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,879445.731,14755,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14755.103,0.933,30,0.03,0,0,0,0,0,0.428581536,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+TRE,TRE_landbasedwind_class1_moderate_3,LandbasedWind_Class1_Moderate_,3,233,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,879445.731,23630,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23630.35,0.933,30,0.03,0,0,0,0,0,0.463753909,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+TRE,TRE_landbasedwind_class1_moderate_4,LandbasedWind_Class1_Moderate_,4,234,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,879445.731,12498,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12498.46,0.933,30,0.03,0,0,0,0,0,0.393514663,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+TRE,TRE_landbasedwind_class1_moderate_5,LandbasedWind_Class1_Moderate_,5,235,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,879445.731,23788,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23787.558,0.933,30,0.03,0,0,0,0,0,0.431482643,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+TRE,TRE_landbasedwind_class1_moderate_6,LandbasedWind_Class1_Moderate_,6,236,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,879445.731,15633,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15633.08,0.933,30,0.03,0,0,0,0,0,0.37748757,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+TRE,TRE_landbasedwind_class1_moderate_7,LandbasedWind_Class1_Moderate_,7,237,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,879445.731,29021,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,29020.777,0.933,30,0.03,0,0,0,0,0,0.418603808,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+TRE,TRE_landbasedwind_class1_moderate_8,LandbasedWind_Class1_Moderate_,8,238,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,879445.731,40897,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40896.604,0.933,30,0.03,0,0,0,0,0,0.350026488,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+TRE,TRE_landbasedwind_class1_moderate_9,LandbasedWind_Class1_Moderate_,9,239,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,879445.731,146712,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,146712.274,0.933,30,0.03,0,0,0,0,0,0.489716798,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+TRE,TRE_storage_metalair_advanced_0,Storage_MetalAir_Advanced,0,240,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,-1,-1,-1,0,-1,-1,0,0,0,0,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,25,0.026,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+TRE,TRE_utilitypv_class1_moderate_0,UtilityPV_Class1_Moderate_,0,241,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,630556.245,6412,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6412.182,0.968,30,0.026,0,0,0,0,0,0.254278213,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+TRE,TRE_utilitypv_class1_moderate_1,UtilityPV_Class1_Moderate_,1,242,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,630556.245,8461,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8460.982,0.968,30,0.026,0,0,0,0,0,0.262568802,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+TRE,TRE_utilitypv_class1_moderate_2,UtilityPV_Class1_Moderate_,2,243,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,630556.245,10479,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10478.698,0.968,30,0.026,0,0,0,0,0,0.252687842,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+TRE,TRE_utilitypv_class1_moderate_3,UtilityPV_Class1_Moderate_,3,244,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,630556.245,14103,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14103.154,0.968,30,0.026,0,0,0,0,0,0.264333636,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+TRE,TRE_utilitypv_class1_moderate_4,UtilityPV_Class1_Moderate_,4,245,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,630556.245,14224,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14224.435,0.968,30,0.026,0,0,0,0,0,0.253560722,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+TRE,TRE_utilitypv_class1_moderate_5,UtilityPV_Class1_Moderate_,5,246,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,630556.245,18539,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18539.404,0.968,30,0.026,0,0,0,0,0,0.26726374,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+TRE,TRE_utilitypv_class1_moderate_6,UtilityPV_Class1_Moderate_,6,247,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,630556.245,22325,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,22324.625,0.968,30,0.026,0,0,0,0,0,0.265551984,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+TRE,TRE_utilitypv_class1_moderate_7,UtilityPV_Class1_Moderate_,7,248,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,630556.245,17464,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17463.888,0.968,30,0.026,0,0,0,0,0,0.251154423,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+TRE,TRE_utilitypv_class1_moderate_8,UtilityPV_Class1_Moderate_,8,249,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,630556.245,74721,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,74721.211,0.968,30,0.026,0,0,0,0,0,0.276522815,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+TRE,TRE_utilitypv_class1_moderate_9,UtilityPV_Class1_Moderate_,9,250,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,630556.245,29582,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,29582.346,0.968,30,0.026,0,0,0,0,0,0.252619147,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+WECC,WECC_landbasedwind_class1_moderate_0,LandbasedWind_Class1_Moderate_,0,251,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,879445.731,20294,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20294.121,1.657,30,0.03,0,0,0,0,0,0.42223382,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+WECC,WECC_landbasedwind_class1_moderate_1,LandbasedWind_Class1_Moderate_,1,252,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,879445.731,19872,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19872.298,1.657,30,0.03,0,0,0,0,0,0.511292398,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+WECC,WECC_landbasedwind_class1_moderate_2,LandbasedWind_Class1_Moderate_,2,253,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,879445.731,27185,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27184.562,1.657,30,0.03,0,0,0,0,0,0.365831107,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+WECC,WECC_landbasedwind_class1_moderate_3,LandbasedWind_Class1_Moderate_,3,254,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,879445.731,19137,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19137.494,1.657,30,0.03,0,0,0,0,0,0.310294747,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+WECC,WECC_landbasedwind_class1_moderate_4,LandbasedWind_Class1_Moderate_,4,255,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,879445.731,26039,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26038.936,1.657,30,0.03,0,0,0,0,0,0.289241701,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+WECC,WECC_landbasedwind_class1_moderate_5,LandbasedWind_Class1_Moderate_,5,256,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,879445.731,133609,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,133608.575,1.657,30,0.03,0,0,0,0,0,0.465454966,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+WECC,WECC_landbasedwind_class1_moderate_6,LandbasedWind_Class1_Moderate_,6,257,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,879445.731,29900,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,29899.759,1.657,30,0.03,0,0,0,0,0,0.244902343,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+WECC,WECC_landbasedwind_class1_moderate_7,LandbasedWind_Class1_Moderate_,7,258,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,879445.731,160193,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160192.842,1.657,30,0.03,0,0,0,0,0,0.443443388,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+WECC,WECC_landbasedwind_class1_moderate_8,LandbasedWind_Class1_Moderate_,8,259,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,879445.731,38235,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38235.186,1.657,30,0.03,0,0,0,0,0,0.225780696,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+WECC,WECC_landbasedwind_class1_moderate_9,LandbasedWind_Class1_Moderate_,9,260,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,879445.731,274991,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,274991.331,1.657,30,0.03,0,0,0,0,0,0.472337902,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+WECC,WECC_storage_metalair_advanced_0,Storage_MetalAir_Advanced,0,261,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,-1,-1,-1,0,-1,-1,0,0,0,0,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.042,25,0.026,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+WECC,WECC_utilitypv_class1_moderate_0,UtilityPV_Class1_Moderate_,0,262,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,630556.245,10320,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10320.26,1.059,30,0.026,0,0,0,0,0,0.29553619,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+WECC,WECC_utilitypv_class1_moderate_1,UtilityPV_Class1_Moderate_,1,263,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,630556.245,6016,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6015.782,1.059,30,0.026,0,0,0,0,0,0.271998376,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+WECC,WECC_utilitypv_class1_moderate_2,UtilityPV_Class1_Moderate_,2,264,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,630556.245,19411,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19411.252,1.059,30,0.026,0,0,0,0,0,0.290274531,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+WECC,WECC_utilitypv_class1_moderate_3,UtilityPV_Class1_Moderate_,3,265,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,630556.245,3992,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3991.741,1.059,30,0.026,0,0,0,0,0,0.23989968,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+WECC,WECC_utilitypv_class1_moderate_4,UtilityPV_Class1_Moderate_,4,266,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,630556.245,25714,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25713.501,1.059,30,0.026,0,0,0,0,0,0.286481887,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+WECC,WECC_utilitypv_class1_moderate_5,UtilityPV_Class1_Moderate_,5,267,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,630556.245,8052,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8051.656,1.059,30,0.026,0,0,0,0,0,0.229081407,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+WECC,WECC_utilitypv_class1_moderate_6,UtilityPV_Class1_Moderate_,6,268,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,630556.245,33457,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33456.861,1.059,30,0.026,0,0,0,0,0,0.283349633,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+WECC,WECC_utilitypv_class1_moderate_7,UtilityPV_Class1_Moderate_,7,269,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,630556.245,16842,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16841.98,1.059,30,0.026,0,0,0,0,0,0.233366475,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+WECC,WECC_utilitypv_class1_moderate_8,UtilityPV_Class1_Moderate_,8,270,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,630556.245,105939,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,105939.452,1.059,30,0.026,0,0,0,0,0,0.278691798,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+WECC,WECC_utilitypv_class1_moderate_9,UtilityPV_Class1_Moderate_,9,271,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,-1,-1,0,0,0,0,0,630556.245,28290,0,0,0,0,0.15,0,0,0,0,0,0,0,0,None,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28289.909,1.059,30,0.026,0,0,0,0,0,0.222730413,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
\ No newline at end of file
diff --git a/test/LoadResourceData/test_gen_vre_stor/inputs_after_loadgen.jld2 b/test/LoadResourceData/test_gen_vre_stor/inputs_after_loadgen.jld2
new file mode 100644
index 0000000000..22ad28e801
Binary files /dev/null and b/test/LoadResourceData/test_gen_vre_stor/inputs_after_loadgen.jld2 differ
diff --git a/test/LoadResourceData/test_gen_vre_stor/inputs_before_loadgen.jld2 b/test/LoadResourceData/test_gen_vre_stor/inputs_before_loadgen.jld2
new file mode 100644
index 0000000000..56f8db5d59
Binary files /dev/null and b/test/LoadResourceData/test_gen_vre_stor/inputs_before_loadgen.jld2 differ
diff --git a/test/MultiStage/Can_Retire/Inputs_p1/Capacity_reserve_margin.csv b/test/MultiStage/Can_Retire/Inputs_p1/Capacity_reserve_margin.csv
deleted file mode 100644
index 1cda938c80..0000000000
--- a/test/MultiStage/Can_Retire/Inputs_p1/Capacity_reserve_margin.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-,Network_zones,CapRes_1
-NE,z1,0.156
diff --git a/test/MultiStage/Can_Retire/Inputs_p1/Energy_share_requirement.csv b/test/MultiStage/Can_Retire/Inputs_p1/Energy_share_requirement.csv
deleted file mode 100644
index 50c97b4b39..0000000000
--- a/test/MultiStage/Can_Retire/Inputs_p1/Energy_share_requirement.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-,Network_zones,ESR_1,ESR_2
-NE,z1,0.259,0.348
diff --git a/test/MultiStage/Can_Retire/Inputs_p1/Generators_data.csv b/test/MultiStage/Can_Retire/Inputs_p1/Generators_data.csv
deleted file mode 100644
index 7a759104c9..0000000000
--- a/test/MultiStage/Can_Retire/Inputs_p1/Generators_data.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,MinCapTag_1,MinCapTag_2,MinCapTag_3,MGA,Resource_Type,CapRes_1,ESR_1,ESR_2,region,cluster,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
-natural_gas_combined_cycle,1,1,0,0,0,0,0,0,1,0,10000,0,0,-1,-1,-1,0,0,0,65400,0,0,10287,0,0,3.55,0,7.43,NG,250,91,2,6,6,0.64,0.64,0,0.468,0,1,1,0,0,0,0,1,0.25,0.5,0,0,2,0,0,0,1,natural_gas_fired_combined_cycle,0.93,0,0,NE,1,0.039,20,20,0,0,0,0
-solar_pv,1,0,0,0,0,0,1,1,1,1,500,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.13,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,7,1,0,0,1,solar_photovoltaic,0.8,1,1,NE,1,0.017,20,20,0,0,0,0
-onshore_wind,1,0,0,0,0,0,1,1,1,1,1000,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,6,0,1,0,1,onshore_wind_turbine,0.8,1,1,NE,1,0.024,20,20,0,0,0,0
-battery,1,0,0,1,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,5622,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,12,0,0,1,0,battery_mid,0.95,0,0,NE,0,0.027,20,20,0,0,0,0
diff --git a/test/MultiStage/Can_Retire/Inputs_p1/Minimum_capacity_requirement.csv b/test/MultiStage/Can_Retire/Inputs_p1/Minimum_capacity_requirement.csv
deleted file mode 100644
index 8593a5abcc..0000000000
--- a/test/MultiStage/Can_Retire/Inputs_p1/Minimum_capacity_requirement.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-MinCapReqConstraint,ConstraintDescription,Min_MW
-1,PV,5000
-2,Wind,10000
-3,Batteries,6000
diff --git a/test/MultiStage/Can_Retire/Inputs_p1/Resources/Resource_multistage_data.csv b/test/MultiStage/Can_Retire/Inputs_p1/Resources/Resource_multistage_data.csv
new file mode 100644
index 0000000000..b85258c53d
--- /dev/null
+++ b/test/MultiStage/Can_Retire/Inputs_p1/Resources/Resource_multistage_data.csv
@@ -0,0 +1,5 @@
+Resource,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW
+natural_gas_combined_cycle,0.039,20,20,0,0,0
+solar_pv,0.017,20,20,0,0,0
+onshore_wind,0.024,20,20,0,0,0
+battery,0.027,20,20,0,0,0
\ No newline at end of file
diff --git a/test/MultiStage/Can_Retire/Inputs_p1/Resources/Storage.csv b/test/MultiStage/Can_Retire/Inputs_p1/Resources/Storage.csv
new file mode 100644
index 0000000000..906f5d13c3
--- /dev/null
+++ b/test/MultiStage/Can_Retire/Inputs_p1/Resources/Storage.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Max_Cap_MW,Max_Cap_MWh,Min_Cap_MW,Min_Cap_MWh,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Self_disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Resource_Type,region,cluster
+battery,1,1,1,1,0,0,-1,-1,0,0,19584,22494,4895,5622,5622,0.15,0.15,0,0.92,0.92,1,10,battery_mid,NE,0
\ No newline at end of file
diff --git a/test/MultiStage/Can_Retire/Inputs_p1/Resources/Thermal.csv b/test/MultiStage/Can_Retire/Inputs_p1/Resources/Thermal.csv
new file mode 100644
index 0000000000..1a668fecbb
--- /dev/null
+++ b/test/MultiStage/Can_Retire/Inputs_p1/Resources/Thermal.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster
+natural_gas_combined_cycle,1,1,1,0,10000,-1,0,65400,10287,3.55,7.43,NG,250,91,2,6,6,0.64,0.64,0.468,0.25,0.5,0,0,1,natural_gas_fired_combined_cycle,NE,1
\ No newline at end of file
diff --git a/test/MultiStage/Can_Retire/Inputs_p1/Resources/Vre.csv b/test/MultiStage/Can_Retire/Inputs_p1/Resources/Vre.csv
new file mode 100644
index 0000000000..b6f20427d5
--- /dev/null
+++ b/test/MultiStage/Can_Retire/Inputs_p1/Resources/Vre.csv
@@ -0,0 +1,3 @@
+Resource,Zone,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,MGA,Resource_Type,region,cluster
+solar_pv,1,1,1,1,500,-1,0,85300,18760,0,9.13,1,solar_photovoltaic,NE,1
+onshore_wind,1,1,1,1,1000,-1,0,97200,43205,0.1,9.12,1,onshore_wind_turbine,NE,1
\ No newline at end of file
diff --git a/test/MultiStage/Can_Retire/Inputs_p2/Capacity_reserve_margin.csv b/test/MultiStage/Can_Retire/Inputs_p2/Capacity_reserve_margin.csv
deleted file mode 100644
index 1cda938c80..0000000000
--- a/test/MultiStage/Can_Retire/Inputs_p2/Capacity_reserve_margin.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-,Network_zones,CapRes_1
-NE,z1,0.156
diff --git a/test/MultiStage/Can_Retire/Inputs_p2/Energy_share_requirement.csv b/test/MultiStage/Can_Retire/Inputs_p2/Energy_share_requirement.csv
deleted file mode 100644
index 50c97b4b39..0000000000
--- a/test/MultiStage/Can_Retire/Inputs_p2/Energy_share_requirement.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-,Network_zones,ESR_1,ESR_2
-NE,z1,0.259,0.348
diff --git a/test/MultiStage/Can_Retire/Inputs_p2/Generators_data.csv b/test/MultiStage/Can_Retire/Inputs_p2/Generators_data.csv
deleted file mode 100644
index 574127a24d..0000000000
--- a/test/MultiStage/Can_Retire/Inputs_p2/Generators_data.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,MinCapTag_1,MinCapTag_2,MinCapTag_3,MGA,Resource_Type,CapRes_1,ESR_1,ESR_2,region,cluster,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
-natural_gas_combined_cycle,1,1,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,65400,0,0,10287,0,0,3.55,0,7.43,NG,250,91,2,6,6,0.64,0.64,0,0.468,0,1,1,0,0,0,0,1,0.25,0.5,0,0,2,0,0,0,1,natural_gas_fired_combined_cycle,0.93,0,0,NE,1,0.039,20,20,0,0,0,0
-solar_pv,1,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.13,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,7,1,0,0,1,solar_photovoltaic,0.8,1,1,NE,1,0.017,20,20,0,0,0,0
-onshore_wind,1,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,6,0,1,0,1,onshore_wind_turbine,0.8,1,1,NE,1,0.024,20,20,0,0,0,0
-battery,1,0,0,1,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,5622,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,12,0,0,1,0,battery_mid,0.95,0,0,NE,0,0.027,20,20,0,0,0,0
diff --git a/test/MultiStage/Can_Retire/Inputs_p2/Minimum_capacity_requirement.csv b/test/MultiStage/Can_Retire/Inputs_p2/Minimum_capacity_requirement.csv
deleted file mode 100644
index 8593a5abcc..0000000000
--- a/test/MultiStage/Can_Retire/Inputs_p2/Minimum_capacity_requirement.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-MinCapReqConstraint,ConstraintDescription,Min_MW
-1,PV,5000
-2,Wind,10000
-3,Batteries,6000
diff --git a/test/MultiStage/Can_Retire/Inputs_p2/Resources/Resource_multistage_data.csv b/test/MultiStage/Can_Retire/Inputs_p2/Resources/Resource_multistage_data.csv
new file mode 100644
index 0000000000..b85258c53d
--- /dev/null
+++ b/test/MultiStage/Can_Retire/Inputs_p2/Resources/Resource_multistage_data.csv
@@ -0,0 +1,5 @@
+Resource,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW
+natural_gas_combined_cycle,0.039,20,20,0,0,0
+solar_pv,0.017,20,20,0,0,0
+onshore_wind,0.024,20,20,0,0,0
+battery,0.027,20,20,0,0,0
\ No newline at end of file
diff --git a/test/MultiStage/Can_Retire/Inputs_p2/Resources/Storage.csv b/test/MultiStage/Can_Retire/Inputs_p2/Resources/Storage.csv
new file mode 100644
index 0000000000..906f5d13c3
--- /dev/null
+++ b/test/MultiStage/Can_Retire/Inputs_p2/Resources/Storage.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Max_Cap_MW,Max_Cap_MWh,Min_Cap_MW,Min_Cap_MWh,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Self_disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Resource_Type,region,cluster
+battery,1,1,1,1,0,0,-1,-1,0,0,19584,22494,4895,5622,5622,0.15,0.15,0,0.92,0.92,1,10,battery_mid,NE,0
\ No newline at end of file
diff --git a/test/MultiStage/Can_Retire/Inputs_p2/Resources/Thermal.csv b/test/MultiStage/Can_Retire/Inputs_p2/Resources/Thermal.csv
new file mode 100644
index 0000000000..1a668fecbb
--- /dev/null
+++ b/test/MultiStage/Can_Retire/Inputs_p2/Resources/Thermal.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster
+natural_gas_combined_cycle,1,1,1,0,10000,-1,0,65400,10287,3.55,7.43,NG,250,91,2,6,6,0.64,0.64,0.468,0.25,0.5,0,0,1,natural_gas_fired_combined_cycle,NE,1
\ No newline at end of file
diff --git a/test/MultiStage/Can_Retire/Inputs_p2/Resources/Vre.csv b/test/MultiStage/Can_Retire/Inputs_p2/Resources/Vre.csv
new file mode 100644
index 0000000000..b6f20427d5
--- /dev/null
+++ b/test/MultiStage/Can_Retire/Inputs_p2/Resources/Vre.csv
@@ -0,0 +1,3 @@
+Resource,Zone,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,MGA,Resource_Type,region,cluster
+solar_pv,1,1,1,1,500,-1,0,85300,18760,0,9.13,1,solar_photovoltaic,NE,1
+onshore_wind,1,1,1,1,1000,-1,0,97200,43205,0.1,9.12,1,onshore_wind_turbine,NE,1
\ No newline at end of file
diff --git a/test/MultiStage/Can_Retire/Inputs_p3/Capacity_reserve_margin.csv b/test/MultiStage/Can_Retire/Inputs_p3/Capacity_reserve_margin.csv
deleted file mode 100644
index 1cda938c80..0000000000
--- a/test/MultiStage/Can_Retire/Inputs_p3/Capacity_reserve_margin.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-,Network_zones,CapRes_1
-NE,z1,0.156
diff --git a/test/MultiStage/Can_Retire/Inputs_p3/Energy_share_requirement.csv b/test/MultiStage/Can_Retire/Inputs_p3/Energy_share_requirement.csv
deleted file mode 100644
index 50c97b4b39..0000000000
--- a/test/MultiStage/Can_Retire/Inputs_p3/Energy_share_requirement.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-,Network_zones,ESR_1,ESR_2
-NE,z1,0.259,0.348
diff --git a/test/MultiStage/Can_Retire/Inputs_p3/Generators_data.csv b/test/MultiStage/Can_Retire/Inputs_p3/Generators_data.csv
deleted file mode 100644
index 574127a24d..0000000000
--- a/test/MultiStage/Can_Retire/Inputs_p3/Generators_data.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,MinCapTag_1,MinCapTag_2,MinCapTag_3,MGA,Resource_Type,CapRes_1,ESR_1,ESR_2,region,cluster,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
-natural_gas_combined_cycle,1,1,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,65400,0,0,10287,0,0,3.55,0,7.43,NG,250,91,2,6,6,0.64,0.64,0,0.468,0,1,1,0,0,0,0,1,0.25,0.5,0,0,2,0,0,0,1,natural_gas_fired_combined_cycle,0.93,0,0,NE,1,0.039,20,20,0,0,0,0
-solar_pv,1,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.13,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,7,1,0,0,1,solar_photovoltaic,0.8,1,1,NE,1,0.017,20,20,0,0,0,0
-onshore_wind,1,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,6,0,1,0,1,onshore_wind_turbine,0.8,1,1,NE,1,0.024,20,20,0,0,0,0
-battery,1,0,0,1,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,5622,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,12,0,0,1,0,battery_mid,0.95,0,0,NE,0,0.027,20,20,0,0,0,0
diff --git a/test/MultiStage/Can_Retire/Inputs_p3/Minimum_capacity_requirement.csv b/test/MultiStage/Can_Retire/Inputs_p3/Minimum_capacity_requirement.csv
deleted file mode 100644
index 8593a5abcc..0000000000
--- a/test/MultiStage/Can_Retire/Inputs_p3/Minimum_capacity_requirement.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-MinCapReqConstraint,ConstraintDescription,Min_MW
-1,PV,5000
-2,Wind,10000
-3,Batteries,6000
diff --git a/test/MultiStage/Can_Retire/Inputs_p3/Resources/Resource_multistage_data.csv b/test/MultiStage/Can_Retire/Inputs_p3/Resources/Resource_multistage_data.csv
new file mode 100644
index 0000000000..b85258c53d
--- /dev/null
+++ b/test/MultiStage/Can_Retire/Inputs_p3/Resources/Resource_multistage_data.csv
@@ -0,0 +1,5 @@
+Resource,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW
+natural_gas_combined_cycle,0.039,20,20,0,0,0
+solar_pv,0.017,20,20,0,0,0
+onshore_wind,0.024,20,20,0,0,0
+battery,0.027,20,20,0,0,0
\ No newline at end of file
diff --git a/test/MultiStage/Can_Retire/Inputs_p3/Resources/Storage.csv b/test/MultiStage/Can_Retire/Inputs_p3/Resources/Storage.csv
new file mode 100644
index 0000000000..906f5d13c3
--- /dev/null
+++ b/test/MultiStage/Can_Retire/Inputs_p3/Resources/Storage.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Max_Cap_MW,Max_Cap_MWh,Min_Cap_MW,Min_Cap_MWh,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Self_disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Resource_Type,region,cluster
+battery,1,1,1,1,0,0,-1,-1,0,0,19584,22494,4895,5622,5622,0.15,0.15,0,0.92,0.92,1,10,battery_mid,NE,0
\ No newline at end of file
diff --git a/test/MultiStage/Can_Retire/Inputs_p3/Resources/Thermal.csv b/test/MultiStage/Can_Retire/Inputs_p3/Resources/Thermal.csv
new file mode 100644
index 0000000000..1a668fecbb
--- /dev/null
+++ b/test/MultiStage/Can_Retire/Inputs_p3/Resources/Thermal.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster
+natural_gas_combined_cycle,1,1,1,0,10000,-1,0,65400,10287,3.55,7.43,NG,250,91,2,6,6,0.64,0.64,0.468,0.25,0.5,0,0,1,natural_gas_fired_combined_cycle,NE,1
\ No newline at end of file
diff --git a/test/MultiStage/Can_Retire/Inputs_p3/Resources/Vre.csv b/test/MultiStage/Can_Retire/Inputs_p3/Resources/Vre.csv
new file mode 100644
index 0000000000..b6f20427d5
--- /dev/null
+++ b/test/MultiStage/Can_Retire/Inputs_p3/Resources/Vre.csv
@@ -0,0 +1,3 @@
+Resource,Zone,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,MGA,Resource_Type,region,cluster
+solar_pv,1,1,1,1,500,-1,0,85300,18760,0,9.13,1,solar_photovoltaic,NE,1
+onshore_wind,1,1,1,1,1000,-1,0,97200,43205,0.1,9.12,1,onshore_wind_turbine,NE,1
\ No newline at end of file
diff --git a/test/MultiStage/Inputs_p1/Capacity_reserve_margin.csv b/test/MultiStage/Inputs_p1/Capacity_reserve_margin.csv
deleted file mode 100644
index 1cda938c80..0000000000
--- a/test/MultiStage/Inputs_p1/Capacity_reserve_margin.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-,Network_zones,CapRes_1
-NE,z1,0.156
diff --git a/test/MultiStage/Inputs_p1/Energy_share_requirement.csv b/test/MultiStage/Inputs_p1/Energy_share_requirement.csv
deleted file mode 100644
index 50c97b4b39..0000000000
--- a/test/MultiStage/Inputs_p1/Energy_share_requirement.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-,Network_zones,ESR_1,ESR_2
-NE,z1,0.259,0.348
diff --git a/test/MultiStage/Inputs_p1/Generators_data.csv b/test/MultiStage/Inputs_p1/Generators_data.csv
deleted file mode 100644
index 8100822625..0000000000
--- a/test/MultiStage/Inputs_p1/Generators_data.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,MinCapTag_1,MinCapTag_2,MinCapTag_3,MGA,Resource_Type,CapRes_1,ESR_1,ESR_2,region,cluster,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
-natural_gas_combined_cycle,1,1,0,0,0,0,0,0,1,1,10000,0,0,-1,-1,-1,0,0,0,65400,0,0,10287,0,0,3.55,0,7.43,NG,250,91,2,6,6,0.64,0.64,0,0.468,0,1,1,0,0,0,0,1,0.25,0.5,0,0,2,0,0,0,1,natural_gas_fired_combined_cycle,0.93,0,0,NE,1,0.039,20,20,0,0,0,0
-solar_pv,1,0,0,0,0,0,1,1,1,1,500,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.13,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,7,1,0,0,1,solar_photovoltaic,0.8,1,1,NE,1,0.017,20,20,0,0,0,0
-onshore_wind,1,0,0,0,0,0,1,1,1,1,1000,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,6,0,1,0,1,onshore_wind_turbine,0.8,1,1,NE,1,0.024,20,20,0,0,0,0
-battery,1,0,0,1,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,5622,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,12,0,0,1,0,battery_mid,0.95,0,0,NE,0,0.027,20,20,0,0,0,0
diff --git a/test/MultiStage/Inputs_p1/Minimum_capacity_requirement.csv b/test/MultiStage/Inputs_p1/Minimum_capacity_requirement.csv
deleted file mode 100644
index 8593a5abcc..0000000000
--- a/test/MultiStage/Inputs_p1/Minimum_capacity_requirement.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-MinCapReqConstraint,ConstraintDescription,Min_MW
-1,PV,5000
-2,Wind,10000
-3,Batteries,6000
diff --git a/test/MultiStage/Inputs_p1/Resources/Resource_multistage_data.csv b/test/MultiStage/Inputs_p1/Resources/Resource_multistage_data.csv
new file mode 100644
index 0000000000..b85258c53d
--- /dev/null
+++ b/test/MultiStage/Inputs_p1/Resources/Resource_multistage_data.csv
@@ -0,0 +1,5 @@
+Resource,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW
+natural_gas_combined_cycle,0.039,20,20,0,0,0
+solar_pv,0.017,20,20,0,0,0
+onshore_wind,0.024,20,20,0,0,0
+battery,0.027,20,20,0,0,0
\ No newline at end of file
diff --git a/test/MultiStage/Inputs_p1/Resources/Storage.csv b/test/MultiStage/Inputs_p1/Resources/Storage.csv
new file mode 100644
index 0000000000..906f5d13c3
--- /dev/null
+++ b/test/MultiStage/Inputs_p1/Resources/Storage.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Max_Cap_MW,Max_Cap_MWh,Min_Cap_MW,Min_Cap_MWh,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Self_disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Resource_Type,region,cluster
+battery,1,1,1,1,0,0,-1,-1,0,0,19584,22494,4895,5622,5622,0.15,0.15,0,0.92,0.92,1,10,battery_mid,NE,0
\ No newline at end of file
diff --git a/test/MultiStage/Inputs_p1/Resources/Thermal.csv b/test/MultiStage/Inputs_p1/Resources/Thermal.csv
new file mode 100644
index 0000000000..a06b672285
--- /dev/null
+++ b/test/MultiStage/Inputs_p1/Resources/Thermal.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster
+natural_gas_combined_cycle,1,1,1,1,10000,-1,0,65400,10287,3.55,7.43,NG,250,91,2,6,6,0.64,0.64,0.468,0.25,0.5,0,0,1,natural_gas_fired_combined_cycle,NE,1
\ No newline at end of file
diff --git a/test/MultiStage/Inputs_p1/Resources/Vre.csv b/test/MultiStage/Inputs_p1/Resources/Vre.csv
new file mode 100644
index 0000000000..b6f20427d5
--- /dev/null
+++ b/test/MultiStage/Inputs_p1/Resources/Vre.csv
@@ -0,0 +1,3 @@
+Resource,Zone,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,MGA,Resource_Type,region,cluster
+solar_pv,1,1,1,1,500,-1,0,85300,18760,0,9.13,1,solar_photovoltaic,NE,1
+onshore_wind,1,1,1,1,1000,-1,0,97200,43205,0.1,9.12,1,onshore_wind_turbine,NE,1
\ No newline at end of file
diff --git a/test/MultiStage/Inputs_p2/Capacity_reserve_margin.csv b/test/MultiStage/Inputs_p2/Capacity_reserve_margin.csv
deleted file mode 100644
index 1cda938c80..0000000000
--- a/test/MultiStage/Inputs_p2/Capacity_reserve_margin.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-,Network_zones,CapRes_1
-NE,z1,0.156
diff --git a/test/MultiStage/Inputs_p2/Energy_share_requirement.csv b/test/MultiStage/Inputs_p2/Energy_share_requirement.csv
deleted file mode 100644
index 50c97b4b39..0000000000
--- a/test/MultiStage/Inputs_p2/Energy_share_requirement.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-,Network_zones,ESR_1,ESR_2
-NE,z1,0.259,0.348
diff --git a/test/MultiStage/Inputs_p2/Generators_data.csv b/test/MultiStage/Inputs_p2/Generators_data.csv
deleted file mode 100644
index 37d6c4d751..0000000000
--- a/test/MultiStage/Inputs_p2/Generators_data.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,MinCapTag_1,MinCapTag_2,MinCapTag_3,MGA,Resource_Type,CapRes_1,ESR_1,ESR_2,region,cluster,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
-natural_gas_combined_cycle,1,1,0,0,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,65400,0,0,10287,0,0,3.55,0,7.43,NG,250,91,2,6,6,0.64,0.64,0,0.468,0,1,1,0,0,0,0,1,0.25,0.5,0,0,2,0,0,0,1,natural_gas_fired_combined_cycle,0.93,0,0,NE,1,0.039,20,20,0,0,0,0
-solar_pv,1,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.13,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,7,1,0,0,1,solar_photovoltaic,0.8,1,1,NE,1,0.017,20,20,0,0,0,0
-onshore_wind,1,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,6,0,1,0,1,onshore_wind_turbine,0.8,1,1,NE,1,0.024,20,20,0,0,0,0
-battery,1,0,0,1,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,5622,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,12,0,0,1,0,battery_mid,0.95,0,0,NE,0,0.027,20,20,0,0,0,0
diff --git a/test/MultiStage/Inputs_p2/Minimum_capacity_requirement.csv b/test/MultiStage/Inputs_p2/Minimum_capacity_requirement.csv
deleted file mode 100644
index 8593a5abcc..0000000000
--- a/test/MultiStage/Inputs_p2/Minimum_capacity_requirement.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-MinCapReqConstraint,ConstraintDescription,Min_MW
-1,PV,5000
-2,Wind,10000
-3,Batteries,6000
diff --git a/test/MultiStage/Inputs_p2/Resources/Resource_multistage_data.csv b/test/MultiStage/Inputs_p2/Resources/Resource_multistage_data.csv
new file mode 100644
index 0000000000..b85258c53d
--- /dev/null
+++ b/test/MultiStage/Inputs_p2/Resources/Resource_multistage_data.csv
@@ -0,0 +1,5 @@
+Resource,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW
+natural_gas_combined_cycle,0.039,20,20,0,0,0
+solar_pv,0.017,20,20,0,0,0
+onshore_wind,0.024,20,20,0,0,0
+battery,0.027,20,20,0,0,0
\ No newline at end of file
diff --git a/test/MultiStage/Inputs_p2/Resources/Storage.csv b/test/MultiStage/Inputs_p2/Resources/Storage.csv
new file mode 100644
index 0000000000..906f5d13c3
--- /dev/null
+++ b/test/MultiStage/Inputs_p2/Resources/Storage.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Max_Cap_MW,Max_Cap_MWh,Min_Cap_MW,Min_Cap_MWh,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Self_disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Resource_Type,region,cluster
+battery,1,1,1,1,0,0,-1,-1,0,0,19584,22494,4895,5622,5622,0.15,0.15,0,0.92,0.92,1,10,battery_mid,NE,0
\ No newline at end of file
diff --git a/test/MultiStage/Inputs_p2/Resources/Thermal.csv b/test/MultiStage/Inputs_p2/Resources/Thermal.csv
new file mode 100644
index 0000000000..a06b672285
--- /dev/null
+++ b/test/MultiStage/Inputs_p2/Resources/Thermal.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster
+natural_gas_combined_cycle,1,1,1,1,10000,-1,0,65400,10287,3.55,7.43,NG,250,91,2,6,6,0.64,0.64,0.468,0.25,0.5,0,0,1,natural_gas_fired_combined_cycle,NE,1
\ No newline at end of file
diff --git a/test/MultiStage/Inputs_p2/Resources/Vre.csv b/test/MultiStage/Inputs_p2/Resources/Vre.csv
new file mode 100644
index 0000000000..b6f20427d5
--- /dev/null
+++ b/test/MultiStage/Inputs_p2/Resources/Vre.csv
@@ -0,0 +1,3 @@
+Resource,Zone,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,MGA,Resource_Type,region,cluster
+solar_pv,1,1,1,1,500,-1,0,85300,18760,0,9.13,1,solar_photovoltaic,NE,1
+onshore_wind,1,1,1,1,1000,-1,0,97200,43205,0.1,9.12,1,onshore_wind_turbine,NE,1
\ No newline at end of file
diff --git a/test/MultiStage/Inputs_p3/Capacity_reserve_margin.csv b/test/MultiStage/Inputs_p3/Capacity_reserve_margin.csv
deleted file mode 100644
index 1cda938c80..0000000000
--- a/test/MultiStage/Inputs_p3/Capacity_reserve_margin.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-,Network_zones,CapRes_1
-NE,z1,0.156
diff --git a/test/MultiStage/Inputs_p3/Energy_share_requirement.csv b/test/MultiStage/Inputs_p3/Energy_share_requirement.csv
deleted file mode 100644
index 50c97b4b39..0000000000
--- a/test/MultiStage/Inputs_p3/Energy_share_requirement.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-,Network_zones,ESR_1,ESR_2
-NE,z1,0.259,0.348
diff --git a/test/MultiStage/Inputs_p3/Generators_data.csv b/test/MultiStage/Inputs_p3/Generators_data.csv
deleted file mode 100644
index 37d6c4d751..0000000000
--- a/test/MultiStage/Inputs_p3/Generators_data.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,MinCapTag_1,MinCapTag_2,MinCapTag_3,MGA,Resource_Type,CapRes_1,ESR_1,ESR_2,region,cluster,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
-natural_gas_combined_cycle,1,1,0,0,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,65400,0,0,10287,0,0,3.55,0,7.43,NG,250,91,2,6,6,0.64,0.64,0,0.468,0,1,1,0,0,0,0,1,0.25,0.5,0,0,2,0,0,0,1,natural_gas_fired_combined_cycle,0.93,0,0,NE,1,0.039,20,20,0,0,0,0
-solar_pv,1,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.13,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,7,1,0,0,1,solar_photovoltaic,0.8,1,1,NE,1,0.017,20,20,0,0,0,0
-onshore_wind,1,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,6,0,1,0,1,onshore_wind_turbine,0.8,1,1,NE,1,0.024,20,20,0,0,0,0
-battery,1,0,0,1,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,5622,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,12,0,0,1,0,battery_mid,0.95,0,0,NE,0,0.027,20,20,0,0,0,0
diff --git a/test/MultiStage/Inputs_p3/Minimum_capacity_requirement.csv b/test/MultiStage/Inputs_p3/Minimum_capacity_requirement.csv
deleted file mode 100644
index 8593a5abcc..0000000000
--- a/test/MultiStage/Inputs_p3/Minimum_capacity_requirement.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-MinCapReqConstraint,ConstraintDescription,Min_MW
-1,PV,5000
-2,Wind,10000
-3,Batteries,6000
diff --git a/test/MultiStage/Inputs_p3/Resources/Resource_multistage_data.csv b/test/MultiStage/Inputs_p3/Resources/Resource_multistage_data.csv
new file mode 100644
index 0000000000..b85258c53d
--- /dev/null
+++ b/test/MultiStage/Inputs_p3/Resources/Resource_multistage_data.csv
@@ -0,0 +1,5 @@
+Resource,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW
+natural_gas_combined_cycle,0.039,20,20,0,0,0
+solar_pv,0.017,20,20,0,0,0
+onshore_wind,0.024,20,20,0,0,0
+battery,0.027,20,20,0,0,0
\ No newline at end of file
diff --git a/test/MultiStage/Inputs_p3/Resources/Storage.csv b/test/MultiStage/Inputs_p3/Resources/Storage.csv
new file mode 100644
index 0000000000..906f5d13c3
--- /dev/null
+++ b/test/MultiStage/Inputs_p3/Resources/Storage.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Max_Cap_MW,Max_Cap_MWh,Min_Cap_MW,Min_Cap_MWh,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Self_disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Resource_Type,region,cluster
+battery,1,1,1,1,0,0,-1,-1,0,0,19584,22494,4895,5622,5622,0.15,0.15,0,0.92,0.92,1,10,battery_mid,NE,0
\ No newline at end of file
diff --git a/test/MultiStage/Inputs_p3/Resources/Thermal.csv b/test/MultiStage/Inputs_p3/Resources/Thermal.csv
new file mode 100644
index 0000000000..a06b672285
--- /dev/null
+++ b/test/MultiStage/Inputs_p3/Resources/Thermal.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster
+natural_gas_combined_cycle,1,1,1,1,10000,-1,0,65400,10287,3.55,7.43,NG,250,91,2,6,6,0.64,0.64,0.468,0.25,0.5,0,0,1,natural_gas_fired_combined_cycle,NE,1
\ No newline at end of file
diff --git a/test/MultiStage/Inputs_p3/Resources/Vre.csv b/test/MultiStage/Inputs_p3/Resources/Vre.csv
new file mode 100644
index 0000000000..b6f20427d5
--- /dev/null
+++ b/test/MultiStage/Inputs_p3/Resources/Vre.csv
@@ -0,0 +1,3 @@
+Resource,Zone,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,MGA,Resource_Type,region,cluster
+solar_pv,1,1,1,1,500,-1,0,85300,18760,0,9.13,1,solar_photovoltaic,NE,1
+onshore_wind,1,1,1,1,1000,-1,0,97200,43205,0.1,9.12,1,onshore_wind_turbine,NE,1
\ No newline at end of file
diff --git a/test/MultiStage/New_Build/Inputs_p1/Capacity_reserve_margin.csv b/test/MultiStage/New_Build/Inputs_p1/Capacity_reserve_margin.csv
deleted file mode 100644
index 1cda938c80..0000000000
--- a/test/MultiStage/New_Build/Inputs_p1/Capacity_reserve_margin.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-,Network_zones,CapRes_1
-NE,z1,0.156
diff --git a/test/MultiStage/New_Build/Inputs_p1/Energy_share_requirement.csv b/test/MultiStage/New_Build/Inputs_p1/Energy_share_requirement.csv
deleted file mode 100644
index 50c97b4b39..0000000000
--- a/test/MultiStage/New_Build/Inputs_p1/Energy_share_requirement.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-,Network_zones,ESR_1,ESR_2
-NE,z1,0.259,0.348
diff --git a/test/MultiStage/New_Build/Inputs_p1/Generators_data.csv b/test/MultiStage/New_Build/Inputs_p1/Generators_data.csv
deleted file mode 100644
index f891203315..0000000000
--- a/test/MultiStage/New_Build/Inputs_p1/Generators_data.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,MinCapTag_1,MinCapTag_2,MinCapTag_3,MGA,Resource_Type,CapRes_1,ESR_1,ESR_2,region,cluster,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
-natural_gas_combined_cycle,1,1,0,0,0,0,0,0,0,1,10000,0,0,-1,-1,-1,0,0,0,65400,0,0,10287,0,0,3.55,0,7.43,NG,250,91,2,6,6,0.64,0.64,0,0.468,0,1,1,0,0,0,0,1,0.25,0.5,0,0,2,0,0,0,1,natural_gas_fired_combined_cycle,0.93,0,0,NE,1,0.039,20,20,0,0,0,0
-solar_pv,1,0,0,0,0,0,1,1,1,1,500,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.13,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,7,1,0,0,1,solar_photovoltaic,0.8,1,1,NE,1,0.017,20,20,0,0,0,0
-onshore_wind,1,0,0,0,0,0,1,1,1,1,1000,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,6,0,1,0,1,onshore_wind_turbine,0.8,1,1,NE,1,0.024,20,20,0,0,0,0
-battery,1,0,0,1,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,5622,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,12,0,0,1,0,battery_mid,0.95,0,0,NE,0,0.027,20,20,0,0,0,0
diff --git a/test/MultiStage/New_Build/Inputs_p1/Minimum_capacity_requirement.csv b/test/MultiStage/New_Build/Inputs_p1/Minimum_capacity_requirement.csv
deleted file mode 100644
index 8593a5abcc..0000000000
--- a/test/MultiStage/New_Build/Inputs_p1/Minimum_capacity_requirement.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-MinCapReqConstraint,ConstraintDescription,Min_MW
-1,PV,5000
-2,Wind,10000
-3,Batteries,6000
diff --git a/test/MultiStage/New_Build/Inputs_p1/Resources/Resource_multistage_data.csv b/test/MultiStage/New_Build/Inputs_p1/Resources/Resource_multistage_data.csv
new file mode 100644
index 0000000000..b85258c53d
--- /dev/null
+++ b/test/MultiStage/New_Build/Inputs_p1/Resources/Resource_multistage_data.csv
@@ -0,0 +1,5 @@
+Resource,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW
+natural_gas_combined_cycle,0.039,20,20,0,0,0
+solar_pv,0.017,20,20,0,0,0
+onshore_wind,0.024,20,20,0,0,0
+battery,0.027,20,20,0,0,0
\ No newline at end of file
diff --git a/test/MultiStage/New_Build/Inputs_p1/Resources/Storage.csv b/test/MultiStage/New_Build/Inputs_p1/Resources/Storage.csv
new file mode 100644
index 0000000000..906f5d13c3
--- /dev/null
+++ b/test/MultiStage/New_Build/Inputs_p1/Resources/Storage.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Max_Cap_MW,Max_Cap_MWh,Min_Cap_MW,Min_Cap_MWh,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Self_disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Resource_Type,region,cluster
+battery,1,1,1,1,0,0,-1,-1,0,0,19584,22494,4895,5622,5622,0.15,0.15,0,0.92,0.92,1,10,battery_mid,NE,0
\ No newline at end of file
diff --git a/test/MultiStage/New_Build/Inputs_p1/Resources/Thermal.csv b/test/MultiStage/New_Build/Inputs_p1/Resources/Thermal.csv
new file mode 100644
index 0000000000..865619f951
--- /dev/null
+++ b/test/MultiStage/New_Build/Inputs_p1/Resources/Thermal.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster
+natural_gas_combined_cycle,1,1,0,1,10000,-1,0,65400,10287,3.55,7.43,NG,250,91,2,6,6,0.64,0.64,0.468,0.25,0.5,0,0,1,natural_gas_fired_combined_cycle,NE,1
\ No newline at end of file
diff --git a/test/MultiStage/New_Build/Inputs_p1/Resources/Vre.csv b/test/MultiStage/New_Build/Inputs_p1/Resources/Vre.csv
new file mode 100644
index 0000000000..b6f20427d5
--- /dev/null
+++ b/test/MultiStage/New_Build/Inputs_p1/Resources/Vre.csv
@@ -0,0 +1,3 @@
+Resource,Zone,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,MGA,Resource_Type,region,cluster
+solar_pv,1,1,1,1,500,-1,0,85300,18760,0,9.13,1,solar_photovoltaic,NE,1
+onshore_wind,1,1,1,1,1000,-1,0,97200,43205,0.1,9.12,1,onshore_wind_turbine,NE,1
\ No newline at end of file
diff --git a/test/MultiStage/New_Build/Inputs_p2/Capacity_reserve_margin.csv b/test/MultiStage/New_Build/Inputs_p2/Capacity_reserve_margin.csv
deleted file mode 100644
index 1cda938c80..0000000000
--- a/test/MultiStage/New_Build/Inputs_p2/Capacity_reserve_margin.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-,Network_zones,CapRes_1
-NE,z1,0.156
diff --git a/test/MultiStage/New_Build/Inputs_p2/Energy_share_requirement.csv b/test/MultiStage/New_Build/Inputs_p2/Energy_share_requirement.csv
deleted file mode 100644
index 50c97b4b39..0000000000
--- a/test/MultiStage/New_Build/Inputs_p2/Energy_share_requirement.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-,Network_zones,ESR_1,ESR_2
-NE,z1,0.259,0.348
diff --git a/test/MultiStage/New_Build/Inputs_p2/Generators_data.csv b/test/MultiStage/New_Build/Inputs_p2/Generators_data.csv
deleted file mode 100644
index d8e0ca4e9b..0000000000
--- a/test/MultiStage/New_Build/Inputs_p2/Generators_data.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,MinCapTag_1,MinCapTag_2,MinCapTag_3,MGA,Resource_Type,CapRes_1,ESR_1,ESR_2,region,cluster,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
-natural_gas_combined_cycle,1,1,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,0,0,0,65400,0,0,10287,0,0,3.55,0,7.43,NG,250,91,2,6,6,0.64,0.64,0,0.468,0,1,1,0,0,0,0,1,0.25,0.5,0,0,2,0,0,0,1,natural_gas_fired_combined_cycle,0.93,0,0,NE,1,0.039,20,20,0,0,0,0
-solar_pv,1,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.13,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,7,1,0,0,1,solar_photovoltaic,0.8,1,1,NE,1,0.017,20,20,0,0,0,0
-onshore_wind,1,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,6,0,1,0,1,onshore_wind_turbine,0.8,1,1,NE,1,0.024,20,20,0,0,0,0
-battery,1,0,0,1,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,5622,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,12,0,0,1,0,battery_mid,0.95,0,0,NE,0,0.027,20,20,0,0,0,0
diff --git a/test/MultiStage/New_Build/Inputs_p2/Minimum_capacity_requirement.csv b/test/MultiStage/New_Build/Inputs_p2/Minimum_capacity_requirement.csv
deleted file mode 100644
index 8593a5abcc..0000000000
--- a/test/MultiStage/New_Build/Inputs_p2/Minimum_capacity_requirement.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-MinCapReqConstraint,ConstraintDescription,Min_MW
-1,PV,5000
-2,Wind,10000
-3,Batteries,6000
diff --git a/test/MultiStage/New_Build/Inputs_p2/Resources/Resource_multistage_data.csv b/test/MultiStage/New_Build/Inputs_p2/Resources/Resource_multistage_data.csv
new file mode 100644
index 0000000000..b85258c53d
--- /dev/null
+++ b/test/MultiStage/New_Build/Inputs_p2/Resources/Resource_multistage_data.csv
@@ -0,0 +1,5 @@
+Resource,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW
+natural_gas_combined_cycle,0.039,20,20,0,0,0
+solar_pv,0.017,20,20,0,0,0
+onshore_wind,0.024,20,20,0,0,0
+battery,0.027,20,20,0,0,0
\ No newline at end of file
diff --git a/test/MultiStage/New_Build/Inputs_p2/Resources/Storage.csv b/test/MultiStage/New_Build/Inputs_p2/Resources/Storage.csv
new file mode 100644
index 0000000000..906f5d13c3
--- /dev/null
+++ b/test/MultiStage/New_Build/Inputs_p2/Resources/Storage.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Max_Cap_MW,Max_Cap_MWh,Min_Cap_MW,Min_Cap_MWh,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Self_disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Resource_Type,region,cluster
+battery,1,1,1,1,0,0,-1,-1,0,0,19584,22494,4895,5622,5622,0.15,0.15,0,0.92,0.92,1,10,battery_mid,NE,0
\ No newline at end of file
diff --git a/test/MultiStage/New_Build/Inputs_p2/Resources/Thermal.csv b/test/MultiStage/New_Build/Inputs_p2/Resources/Thermal.csv
new file mode 100644
index 0000000000..865619f951
--- /dev/null
+++ b/test/MultiStage/New_Build/Inputs_p2/Resources/Thermal.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster
+natural_gas_combined_cycle,1,1,0,1,10000,-1,0,65400,10287,3.55,7.43,NG,250,91,2,6,6,0.64,0.64,0.468,0.25,0.5,0,0,1,natural_gas_fired_combined_cycle,NE,1
\ No newline at end of file
diff --git a/test/MultiStage/New_Build/Inputs_p2/Resources/Vre.csv b/test/MultiStage/New_Build/Inputs_p2/Resources/Vre.csv
new file mode 100644
index 0000000000..b6f20427d5
--- /dev/null
+++ b/test/MultiStage/New_Build/Inputs_p2/Resources/Vre.csv
@@ -0,0 +1,3 @@
+Resource,Zone,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,MGA,Resource_Type,region,cluster
+solar_pv,1,1,1,1,500,-1,0,85300,18760,0,9.13,1,solar_photovoltaic,NE,1
+onshore_wind,1,1,1,1,1000,-1,0,97200,43205,0.1,9.12,1,onshore_wind_turbine,NE,1
\ No newline at end of file
diff --git a/test/MultiStage/New_Build/Inputs_p3/Capacity_reserve_margin.csv b/test/MultiStage/New_Build/Inputs_p3/Capacity_reserve_margin.csv
deleted file mode 100644
index 1cda938c80..0000000000
--- a/test/MultiStage/New_Build/Inputs_p3/Capacity_reserve_margin.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-,Network_zones,CapRes_1
-NE,z1,0.156
diff --git a/test/MultiStage/New_Build/Inputs_p3/Energy_share_requirement.csv b/test/MultiStage/New_Build/Inputs_p3/Energy_share_requirement.csv
deleted file mode 100644
index 50c97b4b39..0000000000
--- a/test/MultiStage/New_Build/Inputs_p3/Energy_share_requirement.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-,Network_zones,ESR_1,ESR_2
-NE,z1,0.259,0.348
diff --git a/test/MultiStage/New_Build/Inputs_p3/Generators_data.csv b/test/MultiStage/New_Build/Inputs_p3/Generators_data.csv
deleted file mode 100644
index d8e0ca4e9b..0000000000
--- a/test/MultiStage/New_Build/Inputs_p3/Generators_data.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag,MinCapTag_1,MinCapTag_2,MinCapTag_3,MGA,Resource_Type,CapRes_1,ESR_1,ESR_2,region,cluster,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW,LDS
-natural_gas_combined_cycle,1,1,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,0,0,0,65400,0,0,10287,0,0,3.55,0,7.43,NG,250,91,2,6,6,0.64,0.64,0,0.468,0,1,1,0,0,0,0,1,0.25,0.5,0,0,2,0,0,0,1,natural_gas_fired_combined_cycle,0.93,0,0,NE,1,0.039,20,20,0,0,0,0
-solar_pv,1,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.13,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,7,1,0,0,1,solar_photovoltaic,0.8,1,1,NE,1,0.017,20,20,0,0,0,0
-onshore_wind,1,0,0,0,0,0,1,1,1,1,0,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,6,0,1,0,1,onshore_wind_turbine,0.8,1,1,NE,1,0.024,20,20,0,0,0,0
-battery,1,0,0,1,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,5622,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,12,0,0,1,0,battery_mid,0.95,0,0,NE,0,0.027,20,20,0,0,0,0
diff --git a/test/MultiStage/New_Build/Inputs_p3/Minimum_capacity_requirement.csv b/test/MultiStage/New_Build/Inputs_p3/Minimum_capacity_requirement.csv
deleted file mode 100644
index 8593a5abcc..0000000000
--- a/test/MultiStage/New_Build/Inputs_p3/Minimum_capacity_requirement.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-MinCapReqConstraint,ConstraintDescription,Min_MW
-1,PV,5000
-2,Wind,10000
-3,Batteries,6000
diff --git a/test/MultiStage/New_Build/Inputs_p3/Resources/Resource_multistage_data.csv b/test/MultiStage/New_Build/Inputs_p3/Resources/Resource_multistage_data.csv
new file mode 100644
index 0000000000..b85258c53d
--- /dev/null
+++ b/test/MultiStage/New_Build/Inputs_p3/Resources/Resource_multistage_data.csv
@@ -0,0 +1,5 @@
+Resource,WACC,Capital_Recovery_Period,Lifetime,Min_Retired_Cap_MW,Min_Retired_Energy_Cap_MW,Min_Retired_Charge_Cap_MW
+natural_gas_combined_cycle,0.039,20,20,0,0,0
+solar_pv,0.017,20,20,0,0,0
+onshore_wind,0.024,20,20,0,0,0
+battery,0.027,20,20,0,0,0
\ No newline at end of file
diff --git a/test/MultiStage/New_Build/Inputs_p3/Resources/Storage.csv b/test/MultiStage/New_Build/Inputs_p3/Resources/Storage.csv
new file mode 100644
index 0000000000..906f5d13c3
--- /dev/null
+++ b/test/MultiStage/New_Build/Inputs_p3/Resources/Storage.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Max_Cap_MW,Max_Cap_MWh,Min_Cap_MW,Min_Cap_MWh,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Self_disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Resource_Type,region,cluster
+battery,1,1,1,1,0,0,-1,-1,0,0,19584,22494,4895,5622,5622,0.15,0.15,0,0.92,0.92,1,10,battery_mid,NE,0
\ No newline at end of file
diff --git a/test/MultiStage/New_Build/Inputs_p3/Resources/Thermal.csv b/test/MultiStage/New_Build/Inputs_p3/Resources/Thermal.csv
new file mode 100644
index 0000000000..865619f951
--- /dev/null
+++ b/test/MultiStage/New_Build/Inputs_p3/Resources/Thermal.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster
+natural_gas_combined_cycle,1,1,0,1,10000,-1,0,65400,10287,3.55,7.43,NG,250,91,2,6,6,0.64,0.64,0.468,0.25,0.5,0,0,1,natural_gas_fired_combined_cycle,NE,1
\ No newline at end of file
diff --git a/test/MultiStage/New_Build/Inputs_p3/Resources/Vre.csv b/test/MultiStage/New_Build/Inputs_p3/Resources/Vre.csv
new file mode 100644
index 0000000000..b6f20427d5
--- /dev/null
+++ b/test/MultiStage/New_Build/Inputs_p3/Resources/Vre.csv
@@ -0,0 +1,3 @@
+Resource,Zone,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,MGA,Resource_Type,region,cluster
+solar_pv,1,1,1,1,500,-1,0,85300,18760,0,9.13,1,solar_photovoltaic,NE,1
+onshore_wind,1,1,1,1,1000,-1,0,97200,43205,0.1,9.12,1,onshore_wind_turbine,NE,1
\ No newline at end of file
diff --git a/test/PiecewiseFuel_CO2/Generators_data.csv b/test/PiecewiseFuel_CO2/Generators_data.csv
deleted file mode 100644
index a60a81192d..0000000000
--- a/test/PiecewiseFuel_CO2/Generators_data.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,LDS,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Eff_Up,Eff_Down,Resource_Type,region,cluster,PWFU_Fuel_Usage_Zero_Load_MMBTU_per_h,PWFU_Heat_Rate_MMBTU_per_MWh_1,PWFU_Heat_Rate_MMBTU_per_MWh_2,PWFU_Load_Point_MW_1,PWFU_Load_Point_MW_2,CO2_Capture_Fraction,CO2_Capture_Fraction_Startup,CCS_Disposal_Cost_per_Metric_Ton,Biomass
-onshore_wind,1,0,0,0,0,0,1,0,1,0,1,15000,0,0,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,None,100,0,0,0,0,1,1,0,1,1,onshore_wind_turbine,NE,1,0,0,0,0,0,0,0,0,0
-natural_gas_combined_cycle_ccs,1,1,0,0,0,0,0,0,0,0,1,15000,0,0,-1,-1,-1,0,0,0,0,0,0,0,5,0,0,NG,250,91,2,6,6,0.64,0.64,0.468,1,1,natural_gas_fired_combined_cycle_ccs,NE,1,400,6,7.2,160,250,0.9,0.6,20,0
-biomass_ccs,1,1,0,0,0,0,0,0,0,0,1,300,0,0,-1,-1,-1,0,0,0,0,0,0,0,10,0,10,Biomass,300,91,2,6,6,0.64,0.64,0.468,1,1,biomass_ccs,NE,1,0,0,0,0,0,0.9,0.6,20,1
diff --git a/test/PiecewiseFuel_CO2/Resources/Thermal.csv b/test/PiecewiseFuel_CO2/Resources/Thermal.csv
new file mode 100644
index 0000000000..d0605e105e
--- /dev/null
+++ b/test/PiecewiseFuel_CO2/Resources/Thermal.csv
@@ -0,0 +1,3 @@
+Resource,Zone,Model,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Resource_Type,region,cluster,PWFU_Fuel_Usage_Zero_Load_MMBTU_per_h,PWFU_Heat_Rate_MMBTU_per_MWh_1,PWFU_Heat_Rate_MMBTU_per_MWh_2,PWFU_Load_Point_MW_1,PWFU_Load_Point_MW_2,CO2_Capture_Fraction,CO2_Capture_Fraction_Startup,CCS_Disposal_Cost_per_Metric_Ton,Biomass
+natural_gas_combined_cycle_ccs,1,1,1,15000,-1,0,0,0,5,0,NG,250,91,2,6,6,0.64,0.64,0.468,natural_gas_fired_combined_cycle_ccs,NE,1,400,6,7.2,160,250,0.9,0.6,20,0
+biomass_ccs,1,1,1,300,-1,0,0,0,10,10,Biomass,300,91,2,6,6,0.64,0.64,0.468,biomass_ccs,NE,1,0,0,0,0,0,0.9,0.6,20,1
\ No newline at end of file
diff --git a/test/PiecewiseFuel_CO2/Resources/Vre.csv b/test/PiecewiseFuel_CO2/Resources/Vre.csv
new file mode 100644
index 0000000000..5abc06a8cb
--- /dev/null
+++ b/test/PiecewiseFuel_CO2/Resources/Vre.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Cap_Size,Resource_Type,region,cluster
+onshore_wind,1,1,0,1,15000,-1,0,0,0,0,100,onshore_wind_turbine,NE,1
\ No newline at end of file
diff --git a/test/TDR/Generators_data.csv b/test/TDR/Generators_data.csv
deleted file mode 100644
index 5ba2a9f42a..0000000000
--- a/test/TDR/Generators_data.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,LDS,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MaxCapTag_1,MaxCapTag_2,MaxCapTag_3,MinCapTag_1,MinCapTag_2,MinCapTag_3,MGA,Resource_Type,CapRes_1,ESR_1,ESR_2,region,cluster
-natural_gas_combined_cycle,1,1,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,65400,0,0,10287,0,0,3.55,0,7.43,NG,250,91,2,6,6,0.64,0.64,0,0.468,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,0,0,0,1,natural_gas_fired_combined_cycle,0.93,0,0,NE,1
-solar_pv,1,0,0,0,0,0,1,0,1,1,0,0,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.13,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,solar_photovoltaic,0.8,1,1,NE,1
-onshore_wind,1,0,0,0,0,0,1,0,1,1,0,0,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,1,onshore_wind_turbine,0.8,1,1,NE,1
-battery,1,0,0,1,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,0,0,1,0,0,1,0,battery_mid,0.95,0,0,NE,0
diff --git a/test/TDR/Resources/Resource_capacity_reserve_margin.csv b/test/TDR/Resources/Resource_capacity_reserve_margin.csv
new file mode 100644
index 0000000000..d2b3c6dc02
--- /dev/null
+++ b/test/TDR/Resources/Resource_capacity_reserve_margin.csv
@@ -0,0 +1,5 @@
+Resource,Derating_Factor
+natural_gas_combined_cycle,0.93
+solar_pv,0.8
+onshore_wind,0.8
+battery,0.95
\ No newline at end of file
diff --git a/test/TDR/Resources/Resource_energy_share_requirement.csv b/test/TDR/Resources/Resource_energy_share_requirement.csv
new file mode 100644
index 0000000000..53efc7c74f
--- /dev/null
+++ b/test/TDR/Resources/Resource_energy_share_requirement.csv
@@ -0,0 +1,3 @@
+Resource ESR_1 ESR_2
+solar_pv 1 1
+onshore_wind 1 1
\ No newline at end of file
diff --git a/test/TDR/Resources/Resource_maximum_capacity_requirement.csv b/test/TDR/Resources/Resource_maximum_capacity_requirement.csv
new file mode 100644
index 0000000000..2bb3c43bad
--- /dev/null
+++ b/test/TDR/Resources/Resource_maximum_capacity_requirement.csv
@@ -0,0 +1,4 @@
+Resource Max_Cap_1 Max_Cap_2 Max_Cap_3
+solar_pv 1 0 0
+onshore_wind 0 1 0
+battery 0 0 1
\ No newline at end of file
diff --git a/test/TDR/Resources/Resource_minimum_capacity_requirement.csv b/test/TDR/Resources/Resource_minimum_capacity_requirement.csv
new file mode 100644
index 0000000000..c0b5a04042
--- /dev/null
+++ b/test/TDR/Resources/Resource_minimum_capacity_requirement.csv
@@ -0,0 +1,4 @@
+Resource Min_Cap_1 Min_Cap_2 Min_Cap_3
+solar_pv 1 0 0
+onshore_wind 0 1 0
+battery 0 0 1
\ No newline at end of file
diff --git a/test/TDR/Resources/Storage.csv b/test/TDR/Resources/Storage.csv
new file mode 100644
index 0000000000..51ec3b2559
--- /dev/null
+++ b/test/TDR/Resources/Storage.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Max_Cap_MW,Max_Cap_MWh,Min_Cap_MW,Min_Cap_MWh,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Resource_Type,region,cluster
+battery,1,1,1,0,0,0,-1,-1,0,0,19584,22494,4895,5622,0.15,0.15,0,0,1,1,0,0,0.92,0.92,1,10,battery_mid,NE,0
\ No newline at end of file
diff --git a/test/TDR/Resources/Thermal.csv b/test/TDR/Resources/Thermal.csv
new file mode 100644
index 0000000000..a7ccd1dbd8
--- /dev/null
+++ b/test/TDR/Resources/Thermal.csv
@@ -0,0 +1,2 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster
+natural_gas_combined_cycle,1,1,1,0,0,-1,0,65400,10287,3.55,7.43,NG,250,91,2,6,6,0.64,0.64,0.468,0.25,0.5,0,0,1,natural_gas_fired_combined_cycle,NE,1
\ No newline at end of file
diff --git a/test/TDR/Resources/Vre.csv b/test/TDR/Resources/Vre.csv
new file mode 100644
index 0000000000..6d075c4dfe
--- /dev/null
+++ b/test/TDR/Resources/Vre.csv
@@ -0,0 +1,3 @@
+Resource,Zone,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,MGA,Resource_Type,region,cluster
+solar_pv,1,1,1,0,0,-1,0,85300,18760,0,9.13,1,solar_photovoltaic,NE,1
+onshore_wind,1,1,1,0,0,-1,0,97200,43205,0.1,9.12,1,onshore_wind_turbine,NE,1
\ No newline at end of file
diff --git a/test/TDR/TDR_Results_test/Demand_data.csv b/test/TDR/TDR_Results_test/Demand_data.csv
deleted file mode 100644
index 06ba2d68e0..0000000000
--- a/test/TDR/TDR_Results_test/Demand_data.csv
+++ /dev/null
@@ -1,1849 +0,0 @@
-Voll,Demand_Segment,Cost_of_Demand_Curtailment_per_MW,Max_Demand_Curtailment,Rep_Periods,Timesteps_per_Rep_Period,Sub_Weights,Time_Index,Demand_MW_z1
-50000,1,1,1,11,168,505.3846153846154,1,12458.0
-,,,,,,1684.6153846153848,2,12050.0
-,,,,,,842.3076923076924,3,11852.0
-,,,,,,2695.3846153846157,4,11767.0
-,,,,,,1684.6153846153848,5,11845.0
-,,,,,,168.46153846153848,6,12167.0
-,,,,,,168.46153846153848,7,12740.0
-,,,,,,168.46153846153848,8,13365.0
-,,,,,,168.46153846153848,9,14193.0
-,,,,,,168.46153846153848,10,14704.0
-,,,,,,505.3846153846154,11,14906.0
-,,,,,,,12,14902.0
-,,,,,,,13,14813.0
-,,,,,,,14,14701.0
-,,,,,,,15,14657.0
-,,,,,,,16,14683.0
-,,,,,,,17,15368.0
-,,,,,,,18,16390.0
-,,,,,,,19,16396.0
-,,,,,,,20,16097.0
-,,,,,,,21,15507.0
-,,,,,,,22,14535.0
-,,,,,,,23,13448.0
-,,,,,,,24,12346.0
-,,,,,,,25,11555.0
-,,,,,,,26,11150.0
-,,,,,,,27,10988.0
-,,,,,,,28,10997.0
-,,,,,,,29,11337.0
-,,,,,,,30,12375.0
-,,,,,,,31,14267.0
-,,,,,,,32,15329.0
-,,,,,,,33,15560.0
-,,,,,,,34,15688.0
-,,,,,,,35,15811.0
-,,,,,,,36,15787.0
-,,,,,,,37,15635.0
-,,,,,,,38,15529.0
-,,,,,,,39,15361.0
-,,,,,,,40,15368.0
-,,,,,,,41,16068.0
-,,,,,,,42,17090.0
-,,,,,,,43,16948.0
-,,,,,,,44,16411.0
-,,,,,,,45,15636.0
-,,,,,,,46,14499.0
-,,,,,,,47,13072.0
-,,,,,,,48,11781.0
-,,,,,,,49,10958.0
-,,,,,,,50,10438.0
-,,,,,,,51,10183.0
-,,,,,,,52,10118.0
-,,,,,,,53,10407.0
-,,,,,,,54,11367.0
-,,,,,,,55,13276.0
-,,,,,,,56,14330.0
-,,,,,,,57,14437.0
-,,,,,,,58,14377.0
-,,,,,,,59,14394.0
-,,,,,,,60,14334.0
-,,,,,,,61,14169.0
-,,,,,,,62,14062.0
-,,,,,,,63,13910.0
-,,,,,,,64,13922.0
-,,,,,,,65,14619.0
-,,,,,,,66,15901.0
-,,,,,,,67,15914.0
-,,,,,,,68,15535.0
-,,,,,,,69,14920.0
-,,,,,,,70,13900.0
-,,,,,,,71,12627.0
-,,,,,,,72,11435.0
-,,,,,,,73,10669.0
-,,,,,,,74,10283.0
-,,,,,,,75,10111.0
-,,,,,,,76,10120.0
-,,,,,,,77,10445.0
-,,,,,,,78,11498.0
-,,,,,,,79,13494.0
-,,,,,,,80,14608.0
-,,,,,,,81,14699.0
-,,,,,,,82,14783.0
-,,,,,,,83,14849.0
-,,,,,,,84,14811.0
-,,,,,,,85,14663.0
-,,,,,,,86,14583.0
-,,,,,,,87,14416.0
-,,,,,,,88,14393.0
-,,,,,,,89,15041.0
-,,,,,,,90,16457.0
-,,,,,,,91,16552.0
-,,,,,,,92,16175.0
-,,,,,,,93,15582.0
-,,,,,,,94,14519.0
-,,,,,,,95,13142.0
-,,,,,,,96,11922.0
-,,,,,,,97,11127.0
-,,,,,,,98,10720.0
-,,,,,,,99,10528.0
-,,,,,,,100,10520.0
-,,,,,,,101,10852.0
-,,,,,,,102,11863.0
-,,,,,,,103,13845.0
-,,,,,,,104,14905.0
-,,,,,,,105,14976.0
-,,,,,,,106,14931.0
-,,,,,,,107,14893.0
-,,,,,,,108,14795.0
-,,,,,,,109,14677.0
-,,,,,,,110,14665.0
-,,,,,,,111,14624.0
-,,,,,,,112,14737.0
-,,,,,,,113,15454.0
-,,,,,,,114,16580.0
-,,,,,,,115,16536.0
-,,,,,,,116,16155.0
-,,,,,,,117,15515.0
-,,,,,,,118,14490.0
-,,,,,,,119,13144.0
-,,,,,,,120,11939.0
-,,,,,,,121,11122.0
-,,,,,,,122,10655.0
-,,,,,,,123,10441.0
-,,,,,,,124,10365.0
-,,,,,,,125,10639.0
-,,,,,,,126,11577.0
-,,,,,,,127,13349.0
-,,,,,,,128,14550.0
-,,,,,,,129,14922.0
-,,,,,,,130,15165.0
-,,,,,,,131,15328.0
-,,,,,,,132,15380.0
-,,,,,,,133,15275.0
-,,,,,,,134,15154.0
-,,,,,,,135,14953.0
-,,,,,,,136,14885.0
-,,,,,,,137,15340.0
-,,,,,,,138,16003.0
-,,,,,,,139,15767.0
-,,,,,,,140,15236.0
-,,,,,,,141,14663.0
-,,,,,,,142,13889.0
-,,,,,,,143,12855.0
-,,,,,,,144,11809.0
-,,,,,,,145,10967.0
-,,,,,,,146,10460.0
-,,,,,,,147,10200.0
-,,,,,,,148,10104.0
-,,,,,,,149,10196.0
-,,,,,,,150,10623.0
-,,,,,,,151,11360.0
-,,,,,,,152,12147.0
-,,,,,,,153,12981.0
-,,,,,,,154,13515.0
-,,,,,,,155,13751.0
-,,,,,,,156,13619.0
-,,,,,,,157,13362.0
-,,,,,,,158,13013.0
-,,,,,,,159,12800.0
-,,,,,,,160,12804.0
-,,,,,,,161,13416.0
-,,,,,,,162,14704.0
-,,,,,,,163,14811.0
-,,,,,,,164,14378.0
-,,,,,,,165,13939.0
-,,,,,,,166,13268.0
-,,,,,,,167,12413.0
-,,,,,,,168,11501.0
-,,,,,,,169,10649.0
-,,,,,,,170,10252.0
-,,,,,,,171,10037.0
-,,,,,,,172,9970.0
-,,,,,,,173,10053.0
-,,,,,,,174,10370.0
-,,,,,,,175,10819.0
-,,,,,,,176,11392.0
-,,,,,,,177,12141.0
-,,,,,,,178,12655.0
-,,,,,,,179,12846.0
-,,,,,,,180,12873.0
-,,,,,,,181,12731.0
-,,,,,,,182,12486.0
-,,,,,,,183,12264.0
-,,,,,,,184,12244.0
-,,,,,,,185,12680.0
-,,,,,,,186,13898.0
-,,,,,,,187,14638.0
-,,,,,,,188,14327.0
-,,,,,,,189,13872.0
-,,,,,,,190,13154.0
-,,,,,,,191,12257.0
-,,,,,,,192,11381.0
-,,,,,,,193,10794.0
-,,,,,,,194,10450.0
-,,,,,,,195,10252.0
-,,,,,,,196,10285.0
-,,,,,,,197,10562.0
-,,,,,,,198,11320.0
-,,,,,,,199,12433.0
-,,,,,,,200,13291.0
-,,,,,,,201,13975.0
-,,,,,,,202,14403.0
-,,,,,,,203,14593.0
-,,,,,,,204,14543.0
-,,,,,,,205,14308.0
-,,,,,,,206,14052.0
-,,,,,,,207,13847.0
-,,,,,,,208,13787.0
-,,,,,,,209,14205.0
-,,,,,,,210,15445.0
-,,,,,,,211,16093.0
-,,,,,,,212,15698.0
-,,,,,,,213,15093.0
-,,,,,,,214,14165.0
-,,,,,,,215,12979.0
-,,,,,,,216,11904.0
-,,,,,,,217,11216.0
-,,,,,,,218,10863.0
-,,,,,,,219,10728.0
-,,,,,,,220,10785.0
-,,,,,,,221,11135.0
-,,,,,,,222,12145.0
-,,,,,,,223,13723.0
-,,,,,,,224,14633.0
-,,,,,,,225,14917.0
-,,,,,,,226,14902.0
-,,,,,,,227,14866.0
-,,,,,,,228,14718.0
-,,,,,,,229,14490.0
-,,,,,,,230,14376.0
-,,,,,,,231,14274.0
-,,,,,,,232,14279.0
-,,,,,,,233,14699.0
-,,,,,,,234,15815.0
-,,,,,,,235,16235.0
-,,,,,,,236,15779.0
-,,,,,,,237,15073.0
-,,,,,,,238,14056.0
-,,,,,,,239,12751.0
-,,,,,,,240,11593.0
-,,,,,,,241,10805.0
-,,,,,,,242,10357.0
-,,,,,,,243,10162.0
-,,,,,,,244,10131.0
-,,,,,,,245,10426.0
-,,,,,,,246,11363.0
-,,,,,,,247,12864.0
-,,,,,,,248,13839.0
-,,,,,,,249,14149.0
-,,,,,,,250,14179.0
-,,,,,,,251,14225.0
-,,,,,,,252,14149.0
-,,,,,,,253,13945.0
-,,,,,,,254,13805.0
-,,,,,,,255,13593.0
-,,,,,,,256,13464.0
-,,,,,,,257,13731.0
-,,,,,,,258,14761.0
-,,,,,,,259,15384.0
-,,,,,,,260,15018.0
-,,,,,,,261,14435.0
-,,,,,,,262,13519.0
-,,,,,,,263,12282.0
-,,,,,,,264,11157.0
-,,,,,,,265,10384.0
-,,,,,,,266,9952.0
-,,,,,,,267,9723.0
-,,,,,,,268,9697.0
-,,,,,,,269,9954.0
-,,,,,,,270,10880.0
-,,,,,,,271,12433.0
-,,,,,,,272,13438.0
-,,,,,,,273,13878.0
-,,,,,,,274,14112.0
-,,,,,,,275,14192.0
-,,,,,,,276,14183.0
-,,,,,,,277,14044.0
-,,,,,,,278,13894.0
-,,,,,,,279,13724.0
-,,,,,,,280,13566.0
-,,,,,,,281,13751.0
-,,,,,,,282,14724.0
-,,,,,,,283,15408.0
-,,,,,,,284,15101.0
-,,,,,,,285,14528.0
-,,,,,,,286,13633.0
-,,,,,,,287,12430.0
-,,,,,,,288,11343.0
-,,,,,,,289,10602.0
-,,,,,,,290,10176.0
-,,,,,,,291,9980.0
-,,,,,,,292,9992.0
-,,,,,,,293,10281.0
-,,,,,,,294,11177.0
-,,,,,,,295,12671.0
-,,,,,,,296,13796.0
-,,,,,,,297,14485.0
-,,,,,,,298,14847.0
-,,,,,,,299,15091.0
-,,,,,,,300,15170.0
-,,,,,,,301,15077.0
-,,,,,,,302,15022.0
-,,,,,,,303,14915.0
-,,,,,,,304,14850.0
-,,,,,,,305,15128.0
-,,,,,,,306,15743.0
-,,,,,,,307,15778.0
-,,,,,,,308,15279.0
-,,,,,,,309,14631.0
-,,,,,,,310,13778.0
-,,,,,,,311,12697.0
-,,,,,,,312,11628.0
-,,,,,,,313,10837.0
-,,,,,,,314,10362.0
-,,,,,,,315,10109.0
-,,,,,,,316,10016.0
-,,,,,,,317,10140.0
-,,,,,,,318,10536.0
-,,,,,,,319,11130.0
-,,,,,,,320,11824.0
-,,,,,,,321,12660.0
-,,,,,,,322,13306.0
-,,,,,,,323,13625.0
-,,,,,,,324,13632.0
-,,,,,,,325,13487.0
-,,,,,,,326,13249.0
-,,,,,,,327,13074.0
-,,,,,,,328,13046.0
-,,,,,,,329,13396.0
-,,,,,,,330,14357.0
-,,,,,,,331,15014.0
-,,,,,,,332,14683.0
-,,,,,,,333,14213.0
-,,,,,,,334,13583.0
-,,,,,,,335,12687.0
-,,,,,,,336,11827.0
-,,,,,,,337,9355.0
-,,,,,,,338,9042.0
-,,,,,,,339,8926.0
-,,,,,,,340,8932.0
-,,,,,,,341,9258.0
-,,,,,,,342,10292.0
-,,,,,,,343,11981.0
-,,,,,,,344,13117.0
-,,,,,,,345,13520.0
-,,,,,,,346,13689.0
-,,,,,,,347,13843.0
-,,,,,,,348,13844.0
-,,,,,,,349,13732.0
-,,,,,,,350,13629.0
-,,,,,,,351,13408.0
-,,,,,,,352,13255.0
-,,,,,,,353,13257.0
-,,,,,,,354,13412.0
-,,,,,,,355,13544.0
-,,,,,,,356,14116.0
-,,,,,,,357,14140.0
-,,,,,,,358,13160.0
-,,,,,,,359,11819.0
-,,,,,,,360,10573.0
-,,,,,,,361,9824.0
-,,,,,,,362,9447.0
-,,,,,,,363,9275.0
-,,,,,,,364,9261.0
-,,,,,,,365,9580.0
-,,,,,,,366,10575.0
-,,,,,,,367,12217.0
-,,,,,,,368,13246.0
-,,,,,,,369,13452.0
-,,,,,,,370,13538.0
-,,,,,,,371,13627.0
-,,,,,,,372,13594.0
-,,,,,,,373,13513.0
-,,,,,,,374,13479.0
-,,,,,,,375,13297.0
-,,,,,,,376,13141.0
-,,,,,,,377,13163.0
-,,,,,,,378,13268.0
-,,,,,,,379,13359.0
-,,,,,,,380,13951.0
-,,,,,,,381,14004.0
-,,,,,,,382,13046.0
-,,,,,,,383,11702.0
-,,,,,,,384,10489.0
-,,,,,,,385,9741.0
-,,,,,,,386,9354.0
-,,,,,,,387,9182.0
-,,,,,,,388,9182.0
-,,,,,,,389,9488.0
-,,,,,,,390,10483.0
-,,,,,,,391,12145.0
-,,,,,,,392,13257.0
-,,,,,,,393,13536.0
-,,,,,,,394,13583.0
-,,,,,,,395,13647.0
-,,,,,,,396,13611.0
-,,,,,,,397,13475.0
-,,,,,,,398,13413.0
-,,,,,,,399,13255.0
-,,,,,,,400,13117.0
-,,,,,,,401,13150.0
-,,,,,,,402,13291.0
-,,,,,,,403,13426.0
-,,,,,,,404,14026.0
-,,,,,,,405,14025.0
-,,,,,,,406,13093.0
-,,,,,,,407,11784.0
-,,,,,,,408,10587.0
-,,,,,,,409,9808.0
-,,,,,,,410,9399.0
-,,,,,,,411,9212.0
-,,,,,,,412,9207.0
-,,,,,,,413,9493.0
-,,,,,,,414,10499.0
-,,,,,,,415,12136.0
-,,,,,,,416,13192.0
-,,,,,,,417,13461.0
-,,,,,,,418,13540.0
-,,,,,,,419,13586.0
-,,,,,,,420,13597.0
-,,,,,,,421,13544.0
-,,,,,,,422,13530.0
-,,,,,,,423,13367.0
-,,,,,,,424,13242.0
-,,,,,,,425,13282.0
-,,,,,,,426,13438.0
-,,,,,,,427,13479.0
-,,,,,,,428,13967.0
-,,,,,,,429,14039.0
-,,,,,,,430,13185.0
-,,,,,,,431,11917.0
-,,,,,,,432,10703.0
-,,,,,,,433,9941.0
-,,,,,,,434,9561.0
-,,,,,,,435,9378.0
-,,,,,,,436,9379.0
-,,,,,,,437,9671.0
-,,,,,,,438,10637.0
-,,,,,,,439,12210.0
-,,,,,,,440,13232.0
-,,,,,,,441,13433.0
-,,,,,,,442,13504.0
-,,,,,,,443,13567.0
-,,,,,,,444,13479.0
-,,,,,,,445,13325.0
-,,,,,,,446,13237.0
-,,,,,,,447,13034.0
-,,,,,,,448,12799.0
-,,,,,,,449,12697.0
-,,,,,,,450,12626.0
-,,,,,,,451,12520.0
-,,,,,,,452,12946.0
-,,,,,,,453,13195.0
-,,,,,,,454,12509.0
-,,,,,,,455,11485.0
-,,,,,,,456,10380.0
-,,,,,,,457,9605.0
-,,,,,,,458,9153.0
-,,,,,,,459,8896.0
-,,,,,,,460,8842.0
-,,,,,,,461,8941.0
-,,,,,,,462,9325.0
-,,,,,,,463,9817.0
-,,,,,,,464,10702.0
-,,,,,,,465,11487.0
-,,,,,,,466,11969.0
-,,,,,,,467,12159.0
-,,,,,,,468,12109.0
-,,,,,,,469,11931.0
-,,,,,,,470,11711.0
-,,,,,,,471,11519.0
-,,,,,,,472,11451.0
-,,,,,,,473,11497.0
-,,,,,,,474,11641.0
-,,,,,,,475,11711.0
-,,,,,,,476,12162.0
-,,,,,,,477,12371.0
-,,,,,,,478,11763.0
-,,,,,,,479,10854.0
-,,,,,,,480,9941.0
-,,,,,,,481,9213.0
-,,,,,,,482,8755.0
-,,,,,,,483,8487.0
-,,,,,,,484,8382.0
-,,,,,,,485,8402.0
-,,,,,,,486,8598.0
-,,,,,,,487,8876.0
-,,,,,,,488,9539.0
-,,,,,,,489,10451.0
-,,,,,,,490,11148.0
-,,,,,,,491,11515.0
-,,,,,,,492,11721.0
-,,,,,,,493,11765.0
-,,,,,,,494,11678.0
-,,,,,,,495,11606.0
-,,,,,,,496,11630.0
-,,,,,,,497,11818.0
-,,,,,,,498,12094.0
-,,,,,,,499,12201.0
-,,,,,,,500,12644.0
-,,,,,,,501,12843.0
-,,,,,,,502,12110.0
-,,,,,,,503,11088.0
-,,,,,,,504,10111.0
-,,,,,,,505,10235.0
-,,,,,,,506,9697.0
-,,,,,,,507,9430.0
-,,,,,,,508,9349.0
-,,,,,,,509,9557.0
-,,,,,,,510,10243.0
-,,,,,,,511,11870.0
-,,,,,,,512,13336.0
-,,,,,,,513,14125.0
-,,,,,,,514,14677.0
-,,,,,,,515,15106.0
-,,,,,,,516,15370.0
-,,,,,,,517,15515.0
-,,,,,,,518,15656.0
-,,,,,,,519,15658.0
-,,,,,,,520,15667.0
-,,,,,,,521,15684.0
-,,,,,,,522,15547.0
-,,,,,,,523,15119.0
-,,,,,,,524,14771.0
-,,,,,,,525,14842.0
-,,,,,,,526,14288.0
-,,,,,,,527,12797.0
-,,,,,,,528,11363.0
-,,,,,,,529,10434.0
-,,,,,,,530,9866.0
-,,,,,,,531,9599.0
-,,,,,,,532,9493.0
-,,,,,,,533,9726.0
-,,,,,,,534,10380.0
-,,,,,,,535,12020.0
-,,,,,,,536,13464.0
-,,,,,,,537,14228.0
-,,,,,,,538,14705.0
-,,,,,,,539,15110.0
-,,,,,,,540,15328.0
-,,,,,,,541,15427.0
-,,,,,,,542,15608.0
-,,,,,,,543,15570.0
-,,,,,,,544,15487.0
-,,,,,,,545,15454.0
-,,,,,,,546,15310.0
-,,,,,,,547,15002.0
-,,,,,,,548,14807.0
-,,,,,,,549,14898.0
-,,,,,,,550,14245.0
-,,,,,,,551,12839.0
-,,,,,,,552,11498.0
-,,,,,,,553,10605.0
-,,,,,,,554,10097.0
-,,,,,,,555,9823.0
-,,,,,,,556,9735.0
-,,,,,,,557,9928.0
-,,,,,,,558,10692.0
-,,,,,,,559,12262.0
-,,,,,,,560,13731.0
-,,,,,,,561,14423.0
-,,,,,,,562,14818.0
-,,,,,,,563,15123.0
-,,,,,,,564,15260.0
-,,,,,,,565,15240.0
-,,,,,,,566,15271.0
-,,,,,,,567,15156.0
-,,,,,,,568,15041.0
-,,,,,,,569,15071.0
-,,,,,,,570,15060.0
-,,,,,,,571,14831.0
-,,,,,,,572,14603.0
-,,,,,,,573,14632.0
-,,,,,,,574,14183.0
-,,,,,,,575,12825.0
-,,,,,,,576,11458.0
-,,,,,,,577,10511.0
-,,,,,,,578,9958.0
-,,,,,,,579,9615.0
-,,,,,,,580,9509.0
-,,,,,,,581,9689.0
-,,,,,,,582,10367.0
-,,,,,,,583,11921.0
-,,,,,,,584,13358.0
-,,,,,,,585,14104.0
-,,,,,,,586,14535.0
-,,,,,,,587,14885.0
-,,,,,,,588,15036.0
-,,,,,,,589,15089.0
-,,,,,,,590,15207.0
-,,,,,,,591,15245.0
-,,,,,,,592,15260.0
-,,,,,,,593,15282.0
-,,,,,,,594,15167.0
-,,,,,,,595,14812.0
-,,,,,,,596,14475.0
-,,,,,,,597,14512.0
-,,,,,,,598,14208.0
-,,,,,,,599,12823.0
-,,,,,,,600,11406.0
-,,,,,,,601,10407.0
-,,,,,,,602,9782.0
-,,,,,,,603,9451.0
-,,,,,,,604,9331.0
-,,,,,,,605,9487.0
-,,,,,,,606,10030.0
-,,,,,,,607,11540.0
-,,,,,,,608,13001.0
-,,,,,,,609,13889.0
-,,,,,,,610,14470.0
-,,,,,,,611,14907.0
-,,,,,,,612,15116.0
-,,,,,,,613,15179.0
-,,,,,,,614,15303.0
-,,,,,,,615,15303.0
-,,,,,,,616,15266.0
-,,,,,,,617,15230.0
-,,,,,,,618,15009.0
-,,,,,,,619,14543.0
-,,,,,,,620,14102.0
-,,,,,,,621,14025.0
-,,,,,,,622,13765.0
-,,,,,,,623,12591.0
-,,,,,,,624,11295.0
-,,,,,,,625,10281.0
-,,,,,,,626,9671.0
-,,,,,,,627,9328.0
-,,,,,,,628,9138.0
-,,,,,,,629,9093.0
-,,,,,,,630,9104.0
-,,,,,,,631,9733.0
-,,,,,,,632,10825.0
-,,,,,,,633,11994.0
-,,,,,,,634,12789.0
-,,,,,,,635,13216.0
-,,,,,,,636,13370.0
-,,,,,,,637,13368.0
-,,,,,,,638,13247.0
-,,,,,,,639,13137.0
-,,,,,,,640,13109.0
-,,,,,,,641,13150.0
-,,,,,,,642,13182.0
-,,,,,,,643,13020.0
-,,,,,,,644,12776.0
-,,,,,,,645,12870.0
-,,,,,,,646,12730.0
-,,,,,,,647,11825.0
-,,,,,,,648,10722.0
-,,,,,,,649,9857.0
-,,,,,,,650,9314.0
-,,,,,,,651,8990.0
-,,,,,,,652,8799.0
-,,,,,,,653,8760.0
-,,,,,,,654,8690.0
-,,,,,,,655,9024.0
-,,,,,,,656,9836.0
-,,,,,,,657,10869.0
-,,,,,,,658,11659.0
-,,,,,,,659,12142.0
-,,,,,,,660,12419.0
-,,,,,,,661,12536.0
-,,,,,,,662,12472.0
-,,,,,,,663,12433.0
-,,,,,,,664,12472.0
-,,,,,,,665,12619.0
-,,,,,,,666,12772.0
-,,,,,,,667,12740.0
-,,,,,,,668,12639.0
-,,,,,,,669,12894.0
-,,,,,,,670,12734.0
-,,,,,,,671,11634.0
-,,,,,,,672,10455.0
-,,,,,,,673,12933.0
-,,,,,,,674,12055.0
-,,,,,,,675,11500.0
-,,,,,,,676,11189.0
-,,,,,,,677,11220.0
-,,,,,,,678,11625.0
-,,,,,,,679,12941.0
-,,,,,,,680,14528.0
-,,,,,,,681,15631.0
-,,,,,,,682,16509.0
-,,,,,,,683,17208.0
-,,,,,,,684,17677.0
-,,,,,,,685,18014.0
-,,,,,,,686,18377.0
-,,,,,,,687,18592.0
-,,,,,,,688,18724.0
-,,,,,,,689,18844.0
-,,,,,,,690,18774.0
-,,,,,,,691,18258.0
-,,,,,,,692,17558.0
-,,,,,,,693,17179.0
-,,,,,,,694,16567.0
-,,,,,,,695,14944.0
-,,,,,,,696,13291.0
-,,,,,,,697,12088.0
-,,,,,,,698,11332.0
-,,,,,,,699,10850.0
-,,,,,,,700,10627.0
-,,,,,,,701,10693.0
-,,,,,,,702,11095.0
-,,,,,,,703,12417.0
-,,,,,,,704,13994.0
-,,,,,,,705,15112.0
-,,,,,,,706,15980.0
-,,,,,,,707,16735.0
-,,,,,,,708,17238.0
-,,,,,,,709,17598.0
-,,,,,,,710,18027.0
-,,,,,,,711,18362.0
-,,,,,,,712,18608.0
-,,,,,,,713,18769.0
-,,,,,,,714,18682.0
-,,,,,,,715,18223.0
-,,,,,,,716,17555.0
-,,,,,,,717,17270.0
-,,,,,,,718,16791.0
-,,,,,,,719,15216.0
-,,,,,,,720,13614.0
-,,,,,,,721,12433.0
-,,,,,,,722,11685.0
-,,,,,,,723,11231.0
-,,,,,,,724,11022.0
-,,,,,,,725,11110.0
-,,,,,,,726,11577.0
-,,,,,,,727,12908.0
-,,,,,,,728,14532.0
-,,,,,,,729,15762.0
-,,,,,,,730,16731.0
-,,,,,,,731,17590.0
-,,,,,,,732,18283.0
-,,,,,,,733,18753.0
-,,,,,,,734,19139.0
-,,,,,,,735,19340.0
-,,,,,,,736,19481.0
-,,,,,,,737,19649.0
-,,,,,,,738,19605.0
-,,,,,,,739,19123.0
-,,,,,,,740,18397.0
-,,,,,,,741,18042.0
-,,,,,,,742,17532.0
-,,,,,,,743,15923.0
-,,,,,,,744,14231.0
-,,,,,,,745,12998.0
-,,,,,,,746,12194.0
-,,,,,,,747,11656.0
-,,,,,,,748,11376.0
-,,,,,,,749,11435.0
-,,,,,,,750,11903.0
-,,,,,,,751,13313.0
-,,,,,,,752,14984.0
-,,,,,,,753,16284.0
-,,,,,,,754,17371.0
-,,,,,,,755,18441.0
-,,,,,,,756,19279.0
-,,,,,,,757,19726.0
-,,,,,,,758,20213.0
-,,,,,,,759,20545.0
-,,,,,,,760,20756.0
-,,,,,,,761,20906.0
-,,,,,,,762,20735.0
-,,,,,,,763,20152.0
-,,,,,,,764,19267.0
-,,,,,,,765,18845.0
-,,,,,,,766,18183.0
-,,,,,,,767,16490.0
-,,,,,,,768,14749.0
-,,,,,,,769,13404.0
-,,,,,,,770,12543.0
-,,,,,,,771,12016.0
-,,,,,,,772,11726.0
-,,,,,,,773,11784.0
-,,,,,,,774,12260.0
-,,,,,,,775,13580.0
-,,,,,,,776,15318.0
-,,,,,,,777,16724.0
-,,,,,,,778,17948.0
-,,,,,,,779,19040.0
-,,,,,,,780,19903.0
-,,,,,,,781,20533.0
-,,,,,,,782,21043.0
-,,,,,,,783,21224.0
-,,,,,,,784,21192.0
-,,,,,,,785,21053.0
-,,,,,,,786,20582.0
-,,,,,,,787,19738.0
-,,,,,,,788,18919.0
-,,,,,,,789,18609.0
-,,,,,,,790,18020.0
-,,,,,,,791,16521.0
-,,,,,,,792,14943.0
-,,,,,,,793,13710.0
-,,,,,,,794,12929.0
-,,,,,,,795,12414.0
-,,,,,,,796,12109.0
-,,,,,,,797,12021.0
-,,,,,,,798,12166.0
-,,,,,,,799,12668.0
-,,,,,,,800,13662.0
-,,,,,,,801,15004.0
-,,,,,,,802,16206.0
-,,,,,,,803,17101.0
-,,,,,,,804,17831.0
-,,,,,,,805,18393.0
-,,,,,,,806,18856.0
-,,,,,,,807,19304.0
-,,,,,,,808,19659.0
-,,,,,,,809,19896.0
-,,,,,,,810,19920.0
-,,,,,,,811,19539.0
-,,,,,,,812,18848.0
-,,,,,,,813,18530.0
-,,,,,,,814,18079.0
-,,,,,,,815,16721.0
-,,,,,,,816,15202.0
-,,,,,,,817,13940.0
-,,,,,,,818,13049.0
-,,,,,,,819,12439.0
-,,,,,,,820,12038.0
-,,,,,,,821,11812.0
-,,,,,,,822,11637.0
-,,,,,,,823,11968.0
-,,,,,,,824,13083.0
-,,,,,,,825,14623.0
-,,,,,,,826,16125.0
-,,,,,,,827,17454.0
-,,,,,,,828,18526.0
-,,,,,,,829,19139.0
-,,,,,,,830,19257.0
-,,,,,,,831,19268.0
-,,,,,,,832,19296.0
-,,,,,,,833,19332.0
-,,,,,,,834,19322.0
-,,,,,,,835,19009.0
-,,,,,,,836,18736.0
-,,,,,,,837,18799.0
-,,,,,,,838,18119.0
-,,,,,,,839,16702.0
-,,,,,,,840,15231.0
-,,,,,,,841,14170.0
-,,,,,,,842,13491.0
-,,,,,,,843,13056.0
-,,,,,,,844,12827.0
-,,,,,,,845,12915.0
-,,,,,,,846,13504.0
-,,,,,,,847,14917.0
-,,,,,,,848,16790.0
-,,,,,,,849,18245.0
-,,,,,,,850,19414.0
-,,,,,,,851,20442.0
-,,,,,,,852,21270.0
-,,,,,,,853,21907.0
-,,,,,,,854,22457.0
-,,,,,,,855,22574.0
-,,,,,,,856,22619.0
-,,,,,,,857,22576.0
-,,,,,,,858,22409.0
-,,,,,,,859,21887.0
-,,,,,,,860,21200.0
-,,,,,,,861,20931.0
-,,,,,,,862,20099.0
-,,,,,,,863,18179.0
-,,,,,,,864,16280.0
-,,,,,,,865,14935.0
-,,,,,,,866,14062.0
-,,,,,,,867,13498.0
-,,,,,,,868,13146.0
-,,,,,,,869,13178.0
-,,,,,,,870,13712.0
-,,,,,,,871,15192.0
-,,,,,,,872,17114.0
-,,,,,,,873,18656.0
-,,,,,,,874,20020.0
-,,,,,,,875,21201.0
-,,,,,,,876,22009.0
-,,,,,,,877,22567.0
-,,,,,,,878,23070.0
-,,,,,,,879,23388.0
-,,,,,,,880,23629.0
-,,,,,,,881,23770.0
-,,,,,,,882,23575.0
-,,,,,,,883,23034.0
-,,,,,,,884,22325.0
-,,,,,,,885,21921.0
-,,,,,,,886,21122.0
-,,,,,,,887,19311.0
-,,,,,,,888,17514.0
-,,,,,,,889,16250.0
-,,,,,,,890,15465.0
-,,,,,,,891,14968.0
-,,,,,,,892,14669.0
-,,,,,,,893,14653.0
-,,,,,,,894,15166.0
-,,,,,,,895,16509.0
-,,,,,,,896,18482.0
-,,,,,,,897,19867.0
-,,,,,,,898,20982.0
-,,,,,,,899,22131.0
-,,,,,,,900,23007.0
-,,,,,,,901,23558.0
-,,,,,,,902,23575.0
-,,,,,,,903,23022.0
-,,,,,,,904,21947.0
-,,,,,,,905,21132.0
-,,,,,,,906,20783.0
-,,,,,,,907,20254.0
-,,,,,,,908,19748.0
-,,,,,,,909,19598.0
-,,,,,,,910,18960.0
-,,,,,,,911,17351.0
-,,,,,,,912,15670.0
-,,,,,,,913,14379.0
-,,,,,,,914,13452.0
-,,,,,,,915,12861.0
-,,,,,,,916,12500.0
-,,,,,,,917,12479.0
-,,,,,,,918,12920.0
-,,,,,,,919,13992.0
-,,,,,,,920,15296.0
-,,,,,,,921,16055.0
-,,,,,,,922,16582.0
-,,,,,,,923,17096.0
-,,,,,,,924,17452.0
-,,,,,,,925,17668.0
-,,,,,,,926,17979.0
-,,,,,,,927,18090.0
-,,,,,,,928,18229.0
-,,,,,,,929,18373.0
-,,,,,,,930,18322.0
-,,,,,,,931,17795.0
-,,,,,,,932,17159.0
-,,,,,,,933,17055.0
-,,,,,,,934,16463.0
-,,,,,,,935,15028.0
-,,,,,,,936,13517.0
-,,,,,,,937,12384.0
-,,,,,,,938,11725.0
-,,,,,,,939,11307.0
-,,,,,,,940,11118.0
-,,,,,,,941,11231.0
-,,,,,,,942,11798.0
-,,,,,,,943,12933.0
-,,,,,,,944,14273.0
-,,,,,,,945,15155.0
-,,,,,,,946,15614.0
-,,,,,,,947,15917.0
-,,,,,,,948,15969.0
-,,,,,,,949,15892.0
-,,,,,,,950,15875.0
-,,,,,,,951,15719.0
-,,,,,,,952,15491.0
-,,,,,,,953,15368.0
-,,,,,,,954,15206.0
-,,,,,,,955,14837.0
-,,,,,,,956,14531.0
-,,,,,,,957,14655.0
-,,,,,,,958,14290.0
-,,,,,,,959,13182.0
-,,,,,,,960,11938.0
-,,,,,,,961,10962.0
-,,,,,,,962,10327.0
-,,,,,,,963,9939.0
-,,,,,,,964,9725.0
-,,,,,,,965,9693.0
-,,,,,,,966,9766.0
-,,,,,,,967,10261.0
-,,,,,,,968,11289.0
-,,,,,,,969,12518.0
-,,,,,,,970,13453.0
-,,,,,,,971,14046.0
-,,,,,,,972,14391.0
-,,,,,,,973,14566.0
-,,,,,,,974,14653.0
-,,,,,,,975,14734.0
-,,,,,,,976,14856.0
-,,,,,,,977,15047.0
-,,,,,,,978,15139.0
-,,,,,,,979,14949.0
-,,,,,,,980,14486.0
-,,,,,,,981,14436.0
-,,,,,,,982,14121.0
-,,,,,,,983,13100.0
-,,,,,,,984,11970.0
-,,,,,,,985,11008.0
-,,,,,,,986,10390.0
-,,,,,,,987,10000.0
-,,,,,,,988,9758.0
-,,,,,,,989,9662.0
-,,,,,,,990,9567.0
-,,,,,,,991,9859.0
-,,,,,,,992,10742.0
-,,,,,,,993,11949.0
-,,,,,,,994,13044.0
-,,,,,,,995,13944.0
-,,,,,,,996,14673.0
-,,,,,,,997,15190.0
-,,,,,,,998,15488.0
-,,,,,,,999,15763.0
-,,,,,,,1000,16042.0
-,,,,,,,1001,16412.0
-,,,,,,,1002,16643.0
-,,,,,,,1003,16465.0
-,,,,,,,1004,16024.0
-,,,,,,,1005,16034.0
-,,,,,,,1006,15632.0
-,,,,,,,1007,14413.0
-,,,,,,,1008,13088.0
-,,,,,,,1009,10731.0
-,,,,,,,1010,10166.0
-,,,,,,,1011,9819.0
-,,,,,,,1012,9646.0
-,,,,,,,1013,9661.0
-,,,,,,,1014,9937.0
-,,,,,,,1015,10250.0
-,,,,,,,1016,10889.0
-,,,,,,,1017,11920.0
-,,,,,,,1018,12926.0
-,,,,,,,1019,13640.0
-,,,,,,,1020,14101.0
-,,,,,,,1021,14353.0
-,,,,,,,1022,14510.0
-,,,,,,,1023,14613.0
-,,,,,,,1024,14711.0
-,,,,,,,1025,14894.0
-,,,,,,,1026,15024.0
-,,,,,,,1027,14896.0
-,,,,,,,1028,15208.0
-,,,,,,,1029,15143.0
-,,,,,,,1030,14069.0
-,,,,,,,1031,12683.0
-,,,,,,,1032,11471.0
-,,,,,,,1033,10681.0
-,,,,,,,1034,10219.0
-,,,,,,,1035,10004.0
-,,,,,,,1036,9966.0
-,,,,,,,1037,10219.0
-,,,,,,,1038,11210.0
-,,,,,,,1039,13004.0
-,,,,,,,1040,14307.0
-,,,,,,,1041,15018.0
-,,,,,,,1042,15593.0
-,,,,,,,1043,16061.0
-,,,,,,,1044,16299.0
-,,,,,,,1045,16397.0
-,,,,,,,1046,16509.0
-,,,,,,,1047,16482.0
-,,,,,,,1048,16547.0
-,,,,,,,1049,16694.0
-,,,,,,,1050,16882.0
-,,,,,,,1051,16935.0
-,,,,,,,1052,17238.0
-,,,,,,,1053,16992.0
-,,,,,,,1054,15974.0
-,,,,,,,1055,14540.0
-,,,,,,,1056,13246.0
-,,,,,,,1057,12368.0
-,,,,,,,1058,11870.0
-,,,,,,,1059,11630.0
-,,,,,,,1060,11577.0
-,,,,,,,1061,11871.0
-,,,,,,,1062,12917.0
-,,,,,,,1063,14850.0
-,,,,,,,1064,16240.0
-,,,,,,,1065,17004.0
-,,,,,,,1066,17605.0
-,,,,,,,1067,17908.0
-,,,,,,,1068,17992.0
-,,,,,,,1069,17973.0
-,,,,,,,1070,18106.0
-,,,,,,,1071,18242.0
-,,,,,,,1072,18306.0
-,,,,,,,1073,18467.0
-,,,,,,,1074,18443.0
-,,,,,,,1075,18113.0
-,,,,,,,1076,18189.0
-,,,,,,,1077,17832.0
-,,,,,,,1078,16550.0
-,,,,,,,1079,14838.0
-,,,,,,,1080,13299.0
-,,,,,,,1081,12160.0
-,,,,,,,1082,11456.0
-,,,,,,,1083,11053.0
-,,,,,,,1084,10880.0
-,,,,,,,1085,11046.0
-,,,,,,,1086,11929.0
-,,,,,,,1087,13533.0
-,,,,,,,1088,14730.0
-,,,,,,,1089,15429.0
-,,,,,,,1090,16013.0
-,,,,,,,1091,16560.0
-,,,,,,,1092,16885.0
-,,,,,,,1093,17039.0
-,,,,,,,1094,17406.0
-,,,,,,,1095,17690.0
-,,,,,,,1096,17830.0
-,,,,,,,1097,17842.0
-,,,,,,,1098,17612.0
-,,,,,,,1099,17275.0
-,,,,,,,1100,17603.0
-,,,,,,,1101,17362.0
-,,,,,,,1102,16195.0
-,,,,,,,1103,14599.0
-,,,,,,,1104,13140.0
-,,,,,,,1105,12129.0
-,,,,,,,1106,11505.0
-,,,,,,,1107,11128.0
-,,,,,,,1108,10945.0
-,,,,,,,1109,11137.0
-,,,,,,,1110,12046.0
-,,,,,,,1111,13676.0
-,,,,,,,1112,14929.0
-,,,,,,,1113,15803.0
-,,,,,,,1114,16631.0
-,,,,,,,1115,17439.0
-,,,,,,,1116,18197.0
-,,,,,,,1117,18727.0
-,,,,,,,1118,19201.0
-,,,,,,,1119,19540.0
-,,,,,,,1120,19691.0
-,,,,,,,1121,19686.0
-,,,,,,,1122,19260.0
-,,,,,,,1123,18613.0
-,,,,,,,1124,18621.0
-,,,,,,,1125,18226.0
-,,,,,,,1126,17126.0
-,,,,,,,1127,15670.0
-,,,,,,,1128,14192.0
-,,,,,,,1129,13074.0
-,,,,,,,1130,12328.0
-,,,,,,,1131,11880.0
-,,,,,,,1132,11632.0
-,,,,,,,1133,11590.0
-,,,,,,,1134,11929.0
-,,,,,,,1135,12447.0
-,,,,,,,1136,13324.0
-,,,,,,,1137,14614.0
-,,,,,,,1138,15692.0
-,,,,,,,1139,16483.0
-,,,,,,,1140,16916.0
-,,,,,,,1141,17137.0
-,,,,,,,1142,17179.0
-,,,,,,,1143,17144.0
-,,,,,,,1144,17095.0
-,,,,,,,1145,17084.0
-,,,,,,,1146,17073.0
-,,,,,,,1147,17098.0
-,,,,,,,1148,17195.0
-,,,,,,,1149,16680.0
-,,,,,,,1150,15684.0
-,,,,,,,1151,14271.0
-,,,,,,,1152,12813.0
-,,,,,,,1153,11737.0
-,,,,,,,1154,11014.0
-,,,,,,,1155,10498.0
-,,,,,,,1156,10197.0
-,,,,,,,1157,10063.0
-,,,,,,,1158,10161.0
-,,,,,,,1159,10406.0
-,,,,,,,1160,10910.0
-,,,,,,,1161,11797.0
-,,,,,,,1162,12574.0
-,,,,,,,1163,13054.0
-,,,,,,,1164,13369.0
-,,,,,,,1165,13611.0
-,,,,,,,1166,13627.0
-,,,,,,,1167,13704.0
-,,,,,,,1168,13835.0
-,,,,,,,1169,14089.0
-,,,,,,,1170,14296.0
-,,,,,,,1171,14244.0
-,,,,,,,1172,14611.0
-,,,,,,,1173,14347.0
-,,,,,,,1174,13316.0
-,,,,,,,1175,12047.0
-,,,,,,,1176,10896.0
-,,,,,,,1177,10531.0
-,,,,,,,1178,10216.0
-,,,,,,,1179,10112.0
-,,,,,,,1180,10175.0
-,,,,,,,1181,10560.0
-,,,,,,,1182,11666.0
-,,,,,,,1183,13575.0
-,,,,,,,1184,14544.0
-,,,,,,,1185,14698.0
-,,,,,,,1186,14632.0
-,,,,,,,1187,14562.0
-,,,,,,,1188,14419.0
-,,,,,,,1189,14190.0
-,,,,,,,1190,14064.0
-,,,,,,,1191,13915.0
-,,,,,,,1192,14020.0
-,,,,,,,1193,15079.0
-,,,,,,,1194,16177.0
-,,,,,,,1195,16111.0
-,,,,,,,1196,15743.0
-,,,,,,,1197,15154.0
-,,,,,,,1198,14118.0
-,,,,,,,1199,12836.0
-,,,,,,,1200,11636.0
-,,,,,,,1201,10867.0
-,,,,,,,1202,10471.0
-,,,,,,,1203,10336.0
-,,,,,,,1204,10367.0
-,,,,,,,1205,10721.0
-,,,,,,,1206,11836.0
-,,,,,,,1207,13652.0
-,,,,,,,1208,14514.0
-,,,,,,,1209,14623.0
-,,,,,,,1210,14532.0
-,,,,,,,1211,14421.0
-,,,,,,,1212,14265.0
-,,,,,,,1213,14096.0
-,,,,,,,1214,13990.0
-,,,,,,,1215,13852.0
-,,,,,,,1216,13962.0
-,,,,,,,1217,15056.0
-,,,,,,,1218,15986.0
-,,,,,,,1219,15909.0
-,,,,,,,1220,15534.0
-,,,,,,,1221,14946.0
-,,,,,,,1222,14020.0
-,,,,,,,1223,12721.0
-,,,,,,,1224,11509.0
-,,,,,,,1225,10694.0
-,,,,,,,1226,10258.0
-,,,,,,,1227,10047.0
-,,,,,,,1228,10023.0
-,,,,,,,1229,10328.0
-,,,,,,,1230,11303.0
-,,,,,,,1231,12952.0
-,,,,,,,1232,13956.0
-,,,,,,,1233,14309.0
-,,,,,,,1234,14449.0
-,,,,,,,1235,14465.0
-,,,,,,,1236,14362.0
-,,,,,,,1237,14132.0
-,,,,,,,1238,14026.0
-,,,,,,,1239,13887.0
-,,,,,,,1240,13844.0
-,,,,,,,1241,14775.0
-,,,,,,,1242,15701.0
-,,,,,,,1243,15491.0
-,,,,,,,1244,15050.0
-,,,,,,,1245,14452.0
-,,,,,,,1246,13591.0
-,,,,,,,1247,12471.0
-,,,,,,,1248,11312.0
-,,,,,,,1249,10436.0
-,,,,,,,1250,9930.0
-,,,,,,,1251,9643.0
-,,,,,,,1252,9543.0
-,,,,,,,1253,9643.0
-,,,,,,,1254,10103.0
-,,,,,,,1255,10790.0
-,,,,,,,1256,11629.0
-,,,,,,,1257,12563.0
-,,,,,,,1258,13176.0
-,,,,,,,1259,13441.0
-,,,,,,,1260,13438.0
-,,,,,,,1261,12975.0
-,,,,,,,1262,12225.0
-,,,,,,,1263,11559.0
-,,,,,,,1264,11220.0
-,,,,,,,1265,11647.0
-,,,,,,,1266,12147.0
-,,,,,,,1267,12155.0
-,,,,,,,1268,12131.0
-,,,,,,,1269,12074.0
-,,,,,,,1270,11746.0
-,,,,,,,1271,11237.0
-,,,,,,,1272,10536.0
-,,,,,,,1273,9909.0
-,,,,,,,1274,9569.0
-,,,,,,,1275,9442.0
-,,,,,,,1276,9426.0
-,,,,,,,1277,9650.0
-,,,,,,,1278,10219.0
-,,,,,,,1279,10965.0
-,,,,,,,1280,11598.0
-,,,,,,,1281,12216.0
-,,,,,,,1282,12585.0
-,,,,,,,1283,12702.0
-,,,,,,,1284,12643.0
-,,,,,,,1285,12456.0
-,,,,,,,1286,12250.0
-,,,,,,,1287,12139.0
-,,,,,,,1288,12269.0
-,,,,,,,1289,13394.0
-,,,,,,,1290,14242.0
-,,,,,,,1291,14013.0
-,,,,,,,1292,13575.0
-,,,,,,,1293,13071.0
-,,,,,,,1294,12398.0
-,,,,,,,1295,11509.0
-,,,,,,,1296,10525.0
-,,,,,,,1297,9772.0
-,,,,,,,1298,9305.0
-,,,,,,,1299,9067.0
-,,,,,,,1300,8972.0
-,,,,,,,1301,9060.0
-,,,,,,,1302,9432.0
-,,,,,,,1303,10097.0
-,,,,,,,1304,10854.0
-,,,,,,,1305,11836.0
-,,,,,,,1306,12507.0
-,,,,,,,1307,12739.0
-,,,,,,,1308,12777.0
-,,,,,,,1309,12716.0
-,,,,,,,1310,12565.0
-,,,,,,,1311,12519.0
-,,,,,,,1312,12740.0
-,,,,,,,1313,13897.0
-,,,,,,,1314,14774.0
-,,,,,,,1315,14655.0
-,,,,,,,1316,14309.0
-,,,,,,,1317,13913.0
-,,,,,,,1318,13308.0
-,,,,,,,1319,12447.0
-,,,,,,,1320,11523.0
-,,,,,,,1321,10777.0
-,,,,,,,1322,10318.0
-,,,,,,,1323,10086.0
-,,,,,,,1324,10005.0
-,,,,,,,1325,10097.0
-,,,,,,,1326,10393.0
-,,,,,,,1327,10860.0
-,,,,,,,1328,11435.0
-,,,,,,,1329,12355.0
-,,,,,,,1330,13038.0
-,,,,,,,1331,13448.0
-,,,,,,,1332,13653.0
-,,,,,,,1333,13670.0
-,,,,,,,1334,13530.0
-,,,,,,,1335,13520.0
-,,,,,,,1336,13790.0
-,,,,,,,1337,15029.0
-,,,,,,,1338,15968.0
-,,,,,,,1339,15846.0
-,,,,,,,1340,15422.0
-,,,,,,,1341,14900.0
-,,,,,,,1342,13793.0
-,,,,,,,1343,12593.0
-,,,,,,,1344,11513.0
-,,,,,,,1345,10794.0
-,,,,,,,1346,10419.0
-,,,,,,,1347,10263.0
-,,,,,,,1348,10270.0
-,,,,,,,1349,10649.0
-,,,,,,,1350,11731.0
-,,,,,,,1351,13637.0
-,,,,,,,1352,14600.0
-,,,,,,,1353,14683.0
-,,,,,,,1354,14708.0
-,,,,,,,1355,14688.0
-,,,,,,,1356,14603.0
-,,,,,,,1357,14485.0
-,,,,,,,1358,14379.0
-,,,,,,,1359,14232.0
-,,,,,,,1360,14385.0
-,,,,,,,1361,15570.0
-,,,,,,,1362,16741.0
-,,,,,,,1363,16720.0
-,,,,,,,1364,16363.0
-,,,,,,,1365,15719.0
-,,,,,,,1366,14657.0
-,,,,,,,1367,13262.0
-,,,,,,,1368,12008.0
-,,,,,,,1369,11232.0
-,,,,,,,1370,10825.0
-,,,,,,,1371,10632.0
-,,,,,,,1372,10622.0
-,,,,,,,1373,10948.0
-,,,,,,,1374,11984.0
-,,,,,,,1375,13879.0
-,,,,,,,1376,14890.0
-,,,,,,,1377,15134.0
-,,,,,,,1378,15241.0
-,,,,,,,1379,15360.0
-,,,,,,,1380,15407.0
-,,,,,,,1381,15385.0
-,,,,,,,1382,15372.0
-,,,,,,,1383,15285.0
-,,,,,,,1384,15482.0
-,,,,,,,1385,16544.0
-,,,,,,,1386,17247.0
-,,,,,,,1387,17114.0
-,,,,,,,1388,16657.0
-,,,,,,,1389,15936.0
-,,,,,,,1390,14783.0
-,,,,,,,1391,13342.0
-,,,,,,,1392,12052.0
-,,,,,,,1393,11212.0
-,,,,,,,1394,10765.0
-,,,,,,,1395,10582.0
-,,,,,,,1396,10580.0
-,,,,,,,1397,10913.0
-,,,,,,,1398,11967.0
-,,,,,,,1399,13892.0
-,,,,,,,1400,14909.0
-,,,,,,,1401,15021.0
-,,,,,,,1402,15047.0
-,,,,,,,1403,15090.0
-,,,,,,,1404,14972.0
-,,,,,,,1405,14789.0
-,,,,,,,1406,14745.0
-,,,,,,,1407,14707.0
-,,,,,,,1408,14923.0
-,,,,,,,1409,16090.0
-,,,,,,,1410,17024.0
-,,,,,,,1411,16929.0
-,,,,,,,1412,16555.0
-,,,,,,,1413,15960.0
-,,,,,,,1414,14943.0
-,,,,,,,1415,13555.0
-,,,,,,,1416,12286.0
-,,,,,,,1417,11467.0
-,,,,,,,1418,11058.0
-,,,,,,,1419,10887.0
-,,,,,,,1420,10887.0
-,,,,,,,1421,11199.0
-,,,,,,,1422,12282.0
-,,,,,,,1423,14219.0
-,,,,,,,1424,15127.0
-,,,,,,,1425,15125.0
-,,,,,,,1426,15018.0
-,,,,,,,1427,14964.0
-,,,,,,,1428,14852.0
-,,,,,,,1429,14629.0
-,,,,,,,1430,14554.0
-,,,,,,,1431,14425.0
-,,,,,,,1432,14595.0
-,,,,,,,1433,15719.0
-,,,,,,,1434,16734.0
-,,,,,,,1435,16799.0
-,,,,,,,1436,16469.0
-,,,,,,,1437,15825.0
-,,,,,,,1438,14781.0
-,,,,,,,1439,13370.0
-,,,,,,,1440,12072.0
-,,,,,,,1441,11235.0
-,,,,,,,1442,10810.0
-,,,,,,,1443,10602.0
-,,,,,,,1444,10616.0
-,,,,,,,1445,10957.0
-,,,,,,,1446,12045.0
-,,,,,,,1447,13944.0
-,,,,,,,1448,14911.0
-,,,,,,,1449,15150.0
-,,,,,,,1450,15217.0
-,,,,,,,1451,15164.0
-,,,,,,,1452,15046.0
-,,,,,,,1453,14900.0
-,,,,,,,1454,14858.0
-,,,,,,,1455,14810.0
-,,,,,,,1456,15038.0
-,,,,,,,1457,16197.0
-,,,,,,,1458,16809.0
-,,,,,,,1459,16546.0
-,,,,,,,1460,16123.0
-,,,,,,,1461,15589.0
-,,,,,,,1462,14777.0
-,,,,,,,1463,13634.0
-,,,,,,,1464,12447.0
-,,,,,,,1465,11548.0
-,,,,,,,1466,11024.0
-,,,,,,,1467,10774.0
-,,,,,,,1468,10690.0
-,,,,,,,1469,10789.0
-,,,,,,,1470,11193.0
-,,,,,,,1471,12012.0
-,,,,,,,1472,12926.0
-,,,,,,,1473,13927.0
-,,,,,,,1474,14585.0
-,,,,,,,1475,14890.0
-,,,,,,,1476,14924.0
-,,,,,,,1477,14859.0
-,,,,,,,1478,14716.0
-,,,,,,,1479,14618.0
-,,,,,,,1480,14799.0
-,,,,,,,1481,15789.0
-,,,,,,,1482,16218.0
-,,,,,,,1483,15952.0
-,,,,,,,1484,15432.0
-,,,,,,,1485,14901.0
-,,,,,,,1486,14169.0
-,,,,,,,1487,13158.0
-,,,,,,,1488,12047.0
-,,,,,,,1489,11184.0
-,,,,,,,1490,10643.0
-,,,,,,,1491,10321.0
-,,,,,,,1492,10174.0
-,,,,,,,1493,10187.0
-,,,,,,,1494,10433.0
-,,,,,,,1495,10959.0
-,,,,,,,1496,11635.0
-,,,,,,,1497,12549.0
-,,,,,,,1498,13218.0
-,,,,,,,1499,13520.0
-,,,,,,,1500,13618.0
-,,,,,,,1501,13627.0
-,,,,,,,1502,13477.0
-,,,,,,,1503,13343.0
-,,,,,,,1504,13536.0
-,,,,,,,1505,14864.0
-,,,,,,,1506,15679.0
-,,,,,,,1507,15500.0
-,,,,,,,1508,15063.0
-,,,,,,,1509,14410.0
-,,,,,,,1510,13363.0
-,,,,,,,1511,12071.0
-,,,,,,,1512,10880.0
-,,,,,,,1513,11332.0
-,,,,,,,1514,10773.0
-,,,,,,,1515,10565.0
-,,,,,,,1516,10539.0
-,,,,,,,1517,10889.0
-,,,,,,,1518,11913.0
-,,,,,,,1519,13775.0
-,,,,,,,1520,15063.0
-,,,,,,,1521,15454.0
-,,,,,,,1522,15606.0
-,,,,,,,1523,15761.0
-,,,,,,,1524,15785.0
-,,,,,,,1525,15686.0
-,,,,,,,1526,15624.0
-,,,,,,,1527,15514.0
-,,,,,,,1528,15723.0
-,,,,,,,1529,16900.0
-,,,,,,,1530,17573.0
-,,,,,,,1531,17399.0
-,,,,,,,1532,16961.0
-,,,,,,,1533,16292.0
-,,,,,,,1534,15159.0
-,,,,,,,1535,13623.0
-,,,,,,,1536,12159.0
-,,,,,,,1537,11157.0
-,,,,,,,1538,10663.0
-,,,,,,,1539,10390.0
-,,,,,,,1540,10337.0
-,,,,,,,1541,10602.0
-,,,,,,,1542,11598.0
-,,,,,,,1543,13454.0
-,,,,,,,1544,14644.0
-,,,,,,,1545,14837.0
-,,,,,,,1546,14905.0
-,,,,,,,1547,14994.0
-,,,,,,,1548,14967.0
-,,,,,,,1549,14809.0
-,,,,,,,1550,14740.0
-,,,,,,,1551,14628.0
-,,,,,,,1552,14807.0
-,,,,,,,1553,15955.0
-,,,,,,,1554,16800.0
-,,,,,,,1555,16691.0
-,,,,,,,1556,16309.0
-,,,,,,,1557,15693.0
-,,,,,,,1558,14657.0
-,,,,,,,1559,13209.0
-,,,,,,,1560,11784.0
-,,,,,,,1561,10765.0
-,,,,,,,1562,10258.0
-,,,,,,,1563,10047.0
-,,,,,,,1564,10045.0
-,,,,,,,1565,10387.0
-,,,,,,,1566,11432.0
-,,,,,,,1567,13360.0
-,,,,,,,1568,14487.0
-,,,,,,,1569,14648.0
-,,,,,,,1570,14674.0
-,,,,,,,1571,14681.0
-,,,,,,,1572,14607.0
-,,,,,,,1573,14474.0
-,,,,,,,1574,14490.0
-,,,,,,,1575,14477.0
-,,,,,,,1576,14676.0
-,,,,,,,1577,15942.0
-,,,,,,,1578,16956.0
-,,,,,,,1579,16901.0
-,,,,,,,1580,16554.0
-,,,,,,,1581,16012.0
-,,,,,,,1582,15033.0
-,,,,,,,1583,13585.0
-,,,,,,,1584,12125.0
-,,,,,,,1585,11161.0
-,,,,,,,1586,10630.0
-,,,,,,,1587,10406.0
-,,,,,,,1588,10407.0
-,,,,,,,1589,10756.0
-,,,,,,,1590,11852.0
-,,,,,,,1591,13811.0
-,,,,,,,1592,14821.0
-,,,,,,,1593,14963.0
-,,,,,,,1594,14911.0
-,,,,,,,1595,14823.0
-,,,,,,,1596,14669.0
-,,,,,,,1597,14452.0
-,,,,,,,1598,14423.0
-,,,,,,,1599,14473.0
-,,,,,,,1600,14794.0
-,,,,,,,1601,16028.0
-,,,,,,,1602,16906.0
-,,,,,,,1603,16806.0
-,,,,,,,1604,16485.0
-,,,,,,,1605,16019.0
-,,,,,,,1606,15060.0
-,,,,,,,1607,13617.0
-,,,,,,,1608,12208.0
-,,,,,,,1609,11211.0
-,,,,,,,1610,10645.0
-,,,,,,,1611,10372.0
-,,,,,,,1612,10369.0
-,,,,,,,1613,10626.0
-,,,,,,,1614,11569.0
-,,,,,,,1615,13324.0
-,,,,,,,1616,14603.0
-,,,,,,,1617,15030.0
-,,,,,,,1618,15240.0
-,,,,,,,1619,15320.0
-,,,,,,,1620,15260.0
-,,,,,,,1621,14981.0
-,,,,,,,1622,14767.0
-,,,,,,,1623,14475.0
-,,,,,,,1624,14400.0
-,,,,,,,1625,15441.0
-,,,,,,,1626,16204.0
-,,,,,,,1627,15949.0
-,,,,,,,1628,15503.0
-,,,,,,,1629,14972.0
-,,,,,,,1630,14225.0
-,,,,,,,1631,13129.0
-,,,,,,,1632,11864.0
-,,,,,,,1633,10933.0
-,,,,,,,1634,10376.0
-,,,,,,,1635,10069.0
-,,,,,,,1636,9983.0
-,,,,,,,1637,10079.0
-,,,,,,,1638,10432.0
-,,,,,,,1639,11209.0
-,,,,,,,1640,12094.0
-,,,,,,,1641,13100.0
-,,,,,,,1642,13761.0
-,,,,,,,1643,13977.0
-,,,,,,,1644,14028.0
-,,,,,,,1645,13932.0
-,,,,,,,1646,13823.0
-,,,,,,,1647,13805.0
-,,,,,,,1648,14041.0
-,,,,,,,1649,15272.0
-,,,,,,,1650,16250.0
-,,,,,,,1651,16202.0
-,,,,,,,1652,15860.0
-,,,,,,,1653,15449.0
-,,,,,,,1654,14849.0
-,,,,,,,1655,13865.0
-,,,,,,,1656,12697.0
-,,,,,,,1657,11735.0
-,,,,,,,1658,11122.0
-,,,,,,,1659,10797.0
-,,,,,,,1660,10645.0
-,,,,,,,1661,10672.0
-,,,,,,,1662,10962.0
-,,,,,,,1663,11551.0
-,,,,,,,1664,12188.0
-,,,,,,,1665,13020.0
-,,,,,,,1666,13565.0
-,,,,,,,1667,13748.0
-,,,,,,,1668,13867.0
-,,,,,,,1669,13911.0
-,,,,,,,1670,13818.0
-,,,,,,,1671,13710.0
-,,,,,,,1672,13796.0
-,,,,,,,1673,15038.0
-,,,,,,,1674,16088.0
-,,,,,,,1675,16076.0
-,,,,,,,1676,15782.0
-,,,,,,,1677,15392.0
-,,,,,,,1678,14663.0
-,,,,,,,1679,13620.0
-,,,,,,,1680,12388.0
-,,,,,,,1681,11403.0
-,,,,,,,1682,10834.0
-,,,,,,,1683,10540.0
-,,,,,,,1684,10486.0
-,,,,,,,1685,10719.0
-,,,,,,,1686,11346.0
-,,,,,,,1687,12323.0
-,,,,,,,1688,13191.0
-,,,,,,,1689,13959.0
-,,,,,,,1690,14387.0
-,,,,,,,1691,14532.0
-,,,,,,,1692,14463.0
-,,,,,,,1693,14229.0
-,,,,,,,1694,14042.0
-,,,,,,,1695,14006.0
-,,,,,,,1696,14145.0
-,,,,,,,1697,15247.0
-,,,,,,,1698,15848.0
-,,,,,,,1699,15225.0
-,,,,,,,1700,14604.0
-,,,,,,,1701,14205.0
-,,,,,,,1702,13828.0
-,,,,,,,1703,13208.0
-,,,,,,,1704,12325.0
-,,,,,,,1705,11417.0
-,,,,,,,1706,10762.0
-,,,,,,,1707,10387.0
-,,,,,,,1708,10281.0
-,,,,,,,1709,10354.0
-,,,,,,,1710,10687.0
-,,,,,,,1711,11316.0
-,,,,,,,1712,12125.0
-,,,,,,,1713,13049.0
-,,,,,,,1714,13704.0
-,,,,,,,1715,13962.0
-,,,,,,,1716,14068.0
-,,,,,,,1717,13953.0
-,,,,,,,1718,13602.0
-,,,,,,,1719,13194.0
-,,,,,,,1720,13063.0
-,,,,,,,1721,13808.0
-,,,,,,,1722,14431.0
-,,,,,,,1723,14419.0
-,,,,,,,1724,14350.0
-,,,,,,,1725,14213.0
-,,,,,,,1726,13768.0
-,,,,,,,1727,12909.0
-,,,,,,,1728,11942.0
-,,,,,,,1729,11225.0
-,,,,,,,1730,10837.0
-,,,,,,,1731,10663.0
-,,,,,,,1732,10715.0
-,,,,,,,1733,11024.0
-,,,,,,,1734,11820.0
-,,,,,,,1735,13116.0
-,,,,,,,1736,14111.0
-,,,,,,,1737,14778.0
-,,,,,,,1738,15197.0
-,,,,,,,1739,15412.0
-,,,,,,,1740,15483.0
-,,,,,,,1741,15420.0
-,,,,,,,1742,15382.0
-,,,,,,,1743,15340.0
-,,,,,,,1744,15570.0
-,,,,,,,1745,16703.0
-,,,,,,,1746,17384.0
-,,,,,,,1747,17205.0
-,,,,,,,1748,16744.0
-,,,,,,,1749,16126.0
-,,,,,,,1750,15142.0
-,,,,,,,1751,13870.0
-,,,,,,,1752,12589.0
-,,,,,,,1753,11659.0
-,,,,,,,1754,11147.0
-,,,,,,,1755,10880.0
-,,,,,,,1756,10715.0
-,,,,,,,1757,10988.0
-,,,,,,,1758,11702.0
-,,,,,,,1759,12804.0
-,,,,,,,1760,13845.0
-,,,,,,,1761,14514.0
-,,,,,,,1762,15122.0
-,,,,,,,1763,15509.0
-,,,,,,,1764,15681.0
-,,,,,,,1765,15622.0
-,,,,,,,1766,15524.0
-,,,,,,,1767,15375.0
-,,,,,,,1768,15483.0
-,,,,,,,1769,16441.0
-,,,,,,,1770,17255.0
-,,,,,,,1771,17030.0
-,,,,,,,1772,16528.0
-,,,,,,,1773,15876.0
-,,,,,,,1774,14902.0
-,,,,,,,1775,13631.0
-,,,,,,,1776,12419.0
-,,,,,,,1777,11556.0
-,,,,,,,1778,11106.0
-,,,,,,,1779,10886.0
-,,,,,,,1780,10863.0
-,,,,,,,1781,11132.0
-,,,,,,,1782,11908.0
-,,,,,,,1783,13150.0
-,,,,,,,1784,14081.0
-,,,,,,,1785,14713.0
-,,,,,,,1786,15071.0
-,,,,,,,1787,15186.0
-,,,,,,,1788,15091.0
-,,,,,,,1789,14872.0
-,,,,,,,1790,14687.0
-,,,,,,,1791,14531.0
-,,,,,,,1792,14572.0
-,,,,,,,1793,15679.0
-,,,,,,,1794,16774.0
-,,,,,,,1795,16608.0
-,,,,,,,1796,16156.0
-,,,,,,,1797,15626.0
-,,,,,,,1798,14814.0
-,,,,,,,1799,13742.0
-,,,,,,,1800,12576.0
-,,,,,,,1801,11718.0
-,,,,,,,1802,11205.0
-,,,,,,,1803,10953.0
-,,,,,,,1804,10828.0
-,,,,,,,1805,10893.0
-,,,,,,,1806,11258.0
-,,,,,,,1807,11908.0
-,,,,,,,1808,12635.0
-,,,,,,,1809,13524.0
-,,,,,,,1810,14226.0
-,,,,,,,1811,14583.0
-,,,,,,,1812,14644.0
-,,,,,,,1813,14648.0
-,,,,,,,1814,14613.0
-,,,,,,,1815,14631.0
-,,,,,,,1816,14915.0
-,,,,,,,1817,16007.0
-,,,,,,,1818,16736.0
-,,,,,,,1819,16594.0
-,,,,,,,1820,16084.0
-,,,,,,,1821,15459.0
-,,,,,,,1822,14650.0
-,,,,,,,1823,13591.0
-,,,,,,,1824,12494.0
-,,,,,,,1825,11630.0
-,,,,,,,1826,11074.0
-,,,,,,,1827,10809.0
-,,,,,,,1828,10693.0
-,,,,,,,1829,10760.0
-,,,,,,,1830,11067.0
-,,,,,,,1831,11581.0
-,,,,,,,1832,12108.0
-,,,,,,,1833,12902.0
-,,,,,,,1834,13586.0
-,,,,,,,1835,14044.0
-,,,,,,,1836,14336.0
-,,,,,,,1837,14448.0
-,,,,,,,1838,14340.0
-,,,,,,,1839,14221.0
-,,,,,,,1840,14341.0
-,,,,,,,1841,15635.0
-,,,,,,,1842,16803.0
-,,,,,,,1843,16745.0
-,,,,,,,1844,16333.0
-,,,,,,,1845,15872.0
-,,,,,,,1846,15076.0
-,,,,,,,1847,14028.0
-,,,,,,,1848,12925.0
diff --git a/test/TDR/TDR_Results_test/Fuels_data.csv b/test/TDR/TDR_Results_test/Fuels_data.csv
deleted file mode 100644
index 745e0546e3..0000000000
--- a/test/TDR/TDR_Results_test/Fuels_data.csv
+++ /dev/null
@@ -1,1850 +0,0 @@
-Time_Index,NG,None
-0,0.05306,0.0
-1,5.28,0.0
-2,5.28,0.0
-3,5.28,0.0
-4,5.28,0.0
-5,5.28,0.0
-6,5.28,0.0
-7,5.28,0.0
-8,5.28,0.0
-9,5.28,0.0
-10,5.28,0.0
-11,5.28,0.0
-12,5.28,0.0
-13,5.28,0.0
-14,5.28,0.0
-15,5.28,0.0
-16,5.28,0.0
-17,5.28,0.0
-18,5.28,0.0
-19,5.28,0.0
-20,5.28,0.0
-21,5.28,0.0
-22,5.28,0.0
-23,5.28,0.0
-24,5.28,0.0
-25,5.28,0.0
-26,5.28,0.0
-27,5.28,0.0
-28,5.28,0.0
-29,5.28,0.0
-30,5.28,0.0
-31,5.28,0.0
-32,5.28,0.0
-33,5.28,0.0
-34,5.28,0.0
-35,5.28,0.0
-36,5.28,0.0
-37,5.28,0.0
-38,5.28,0.0
-39,5.28,0.0
-40,5.28,0.0
-41,5.28,0.0
-42,5.28,0.0
-43,5.28,0.0
-44,5.28,0.0
-45,5.28,0.0
-46,5.28,0.0
-47,5.28,0.0
-48,5.28,0.0
-49,5.28,0.0
-50,5.28,0.0
-51,5.28,0.0
-52,5.28,0.0
-53,5.28,0.0
-54,5.28,0.0
-55,5.28,0.0
-56,5.28,0.0
-57,5.28,0.0
-58,5.28,0.0
-59,5.28,0.0
-60,5.28,0.0
-61,5.28,0.0
-62,5.28,0.0
-63,5.28,0.0
-64,5.28,0.0
-65,5.28,0.0
-66,5.28,0.0
-67,5.28,0.0
-68,5.28,0.0
-69,5.28,0.0
-70,5.28,0.0
-71,5.28,0.0
-72,5.28,0.0
-73,5.28,0.0
-74,5.28,0.0
-75,5.28,0.0
-76,5.28,0.0
-77,5.28,0.0
-78,5.28,0.0
-79,5.28,0.0
-80,5.28,0.0
-81,5.28,0.0
-82,5.28,0.0
-83,5.28,0.0
-84,5.28,0.0
-85,5.28,0.0
-86,5.28,0.0
-87,5.28,0.0
-88,5.28,0.0
-89,5.28,0.0
-90,5.28,0.0
-91,5.28,0.0
-92,5.28,0.0
-93,5.28,0.0
-94,5.28,0.0
-95,5.28,0.0
-96,5.28,0.0
-97,5.28,0.0
-98,5.28,0.0
-99,5.28,0.0
-100,5.28,0.0
-101,5.28,0.0
-102,5.28,0.0
-103,5.28,0.0
-104,5.28,0.0
-105,5.28,0.0
-106,5.28,0.0
-107,5.28,0.0
-108,5.28,0.0
-109,5.28,0.0
-110,5.28,0.0
-111,5.28,0.0
-112,5.28,0.0
-113,5.28,0.0
-114,5.28,0.0
-115,5.28,0.0
-116,5.28,0.0
-117,5.28,0.0
-118,5.28,0.0
-119,5.28,0.0
-120,5.28,0.0
-121,5.28,0.0
-122,5.28,0.0
-123,5.28,0.0
-124,5.28,0.0
-125,5.28,0.0
-126,5.28,0.0
-127,5.28,0.0
-128,5.28,0.0
-129,5.28,0.0
-130,5.28,0.0
-131,5.28,0.0
-132,5.28,0.0
-133,5.28,0.0
-134,5.28,0.0
-135,5.28,0.0
-136,5.28,0.0
-137,5.28,0.0
-138,5.28,0.0
-139,5.28,0.0
-140,5.28,0.0
-141,5.28,0.0
-142,5.28,0.0
-143,5.28,0.0
-144,5.28,0.0
-145,5.28,0.0
-146,5.28,0.0
-147,5.28,0.0
-148,5.28,0.0
-149,5.28,0.0
-150,5.28,0.0
-151,5.28,0.0
-152,5.28,0.0
-153,5.28,0.0
-154,5.28,0.0
-155,5.28,0.0
-156,5.28,0.0
-157,5.28,0.0
-158,5.28,0.0
-159,5.28,0.0
-160,5.28,0.0
-161,5.28,0.0
-162,5.28,0.0
-163,5.28,0.0
-164,5.28,0.0
-165,5.28,0.0
-166,5.28,0.0
-167,5.28,0.0
-168,5.28,0.0
-169,3.98,0.0
-170,3.98,0.0
-171,3.98,0.0
-172,3.98,0.0
-173,3.98,0.0
-174,3.98,0.0
-175,3.98,0.0
-176,3.98,0.0
-177,3.98,0.0
-178,3.98,0.0
-179,3.98,0.0
-180,3.98,0.0
-181,3.98,0.0
-182,3.98,0.0
-183,3.98,0.0
-184,3.98,0.0
-185,3.98,0.0
-186,3.98,0.0
-187,3.98,0.0
-188,3.98,0.0
-189,3.98,0.0
-190,3.98,0.0
-191,3.98,0.0
-192,3.98,0.0
-193,3.98,0.0
-194,3.98,0.0
-195,3.98,0.0
-196,3.98,0.0
-197,3.98,0.0
-198,3.98,0.0
-199,3.98,0.0
-200,3.98,0.0
-201,3.98,0.0
-202,3.98,0.0
-203,3.98,0.0
-204,3.98,0.0
-205,3.98,0.0
-206,3.98,0.0
-207,3.98,0.0
-208,3.98,0.0
-209,3.98,0.0
-210,3.98,0.0
-211,3.98,0.0
-212,3.98,0.0
-213,3.98,0.0
-214,3.98,0.0
-215,3.98,0.0
-216,3.98,0.0
-217,3.98,0.0
-218,3.98,0.0
-219,3.98,0.0
-220,3.98,0.0
-221,3.98,0.0
-222,3.98,0.0
-223,3.98,0.0
-224,3.98,0.0
-225,3.98,0.0
-226,3.98,0.0
-227,3.98,0.0
-228,3.98,0.0
-229,3.98,0.0
-230,3.98,0.0
-231,3.98,0.0
-232,3.98,0.0
-233,3.98,0.0
-234,3.98,0.0
-235,3.98,0.0
-236,3.98,0.0
-237,3.98,0.0
-238,3.98,0.0
-239,3.98,0.0
-240,3.98,0.0
-241,3.98,0.0
-242,3.98,0.0
-243,3.98,0.0
-244,3.98,0.0
-245,3.98,0.0
-246,3.98,0.0
-247,3.98,0.0
-248,3.98,0.0
-249,3.98,0.0
-250,3.98,0.0
-251,3.98,0.0
-252,3.98,0.0
-253,3.98,0.0
-254,3.98,0.0
-255,3.98,0.0
-256,3.98,0.0
-257,3.98,0.0
-258,3.98,0.0
-259,3.98,0.0
-260,3.98,0.0
-261,3.98,0.0
-262,3.98,0.0
-263,3.98,0.0
-264,3.98,0.0
-265,3.98,0.0
-266,3.98,0.0
-267,3.98,0.0
-268,3.98,0.0
-269,3.98,0.0
-270,3.98,0.0
-271,3.98,0.0
-272,3.98,0.0
-273,3.98,0.0
-274,3.98,0.0
-275,3.98,0.0
-276,3.98,0.0
-277,3.98,0.0
-278,3.98,0.0
-279,3.98,0.0
-280,3.98,0.0
-281,3.98,0.0
-282,3.98,0.0
-283,3.98,0.0
-284,3.98,0.0
-285,3.98,0.0
-286,3.98,0.0
-287,3.98,0.0
-288,3.98,0.0
-289,3.98,0.0
-290,3.98,0.0
-291,3.98,0.0
-292,3.98,0.0
-293,3.98,0.0
-294,3.98,0.0
-295,3.98,0.0
-296,3.98,0.0
-297,3.98,0.0
-298,3.98,0.0
-299,3.98,0.0
-300,3.98,0.0
-301,3.98,0.0
-302,3.98,0.0
-303,3.98,0.0
-304,3.98,0.0
-305,3.98,0.0
-306,3.98,0.0
-307,3.98,0.0
-308,3.98,0.0
-309,3.98,0.0
-310,3.98,0.0
-311,3.98,0.0
-312,3.98,0.0
-313,3.98,0.0
-314,3.98,0.0
-315,3.98,0.0
-316,3.98,0.0
-317,3.98,0.0
-318,3.98,0.0
-319,3.98,0.0
-320,3.98,0.0
-321,3.98,0.0
-322,3.98,0.0
-323,3.98,0.0
-324,3.98,0.0
-325,3.98,0.0
-326,3.98,0.0
-327,3.98,0.0
-328,3.98,0.0
-329,3.98,0.0
-330,3.98,0.0
-331,3.98,0.0
-332,3.98,0.0
-333,3.98,0.0
-334,3.98,0.0
-335,3.98,0.0
-336,3.98,0.0
-337,3.18,0.0
-338,3.18,0.0
-339,3.18,0.0
-340,3.18,0.0
-341,3.18,0.0
-342,3.18,0.0
-343,3.18,0.0
-344,3.18,0.0
-345,3.18,0.0
-346,3.18,0.0
-347,3.18,0.0
-348,3.18,0.0
-349,3.18,0.0
-350,3.18,0.0
-351,3.18,0.0
-352,3.18,0.0
-353,3.18,0.0
-354,3.18,0.0
-355,3.18,0.0
-356,3.18,0.0
-357,3.18,0.0
-358,3.18,0.0
-359,3.18,0.0
-360,3.18,0.0
-361,3.18,0.0
-362,3.18,0.0
-363,3.18,0.0
-364,3.18,0.0
-365,3.18,0.0
-366,3.18,0.0
-367,3.18,0.0
-368,3.18,0.0
-369,3.18,0.0
-370,3.18,0.0
-371,3.18,0.0
-372,3.18,0.0
-373,3.18,0.0
-374,3.18,0.0
-375,3.18,0.0
-376,3.18,0.0
-377,3.18,0.0
-378,3.18,0.0
-379,3.18,0.0
-380,3.18,0.0
-381,3.18,0.0
-382,3.18,0.0
-383,3.18,0.0
-384,3.18,0.0
-385,3.18,0.0
-386,3.18,0.0
-387,3.18,0.0
-388,3.18,0.0
-389,3.18,0.0
-390,3.18,0.0
-391,3.18,0.0
-392,3.18,0.0
-393,3.18,0.0
-394,3.18,0.0
-395,3.18,0.0
-396,3.18,0.0
-397,3.18,0.0
-398,3.18,0.0
-399,3.18,0.0
-400,3.18,0.0
-401,3.18,0.0
-402,3.18,0.0
-403,3.18,0.0
-404,3.18,0.0
-405,3.18,0.0
-406,3.18,0.0
-407,3.18,0.0
-408,3.18,0.0
-409,3.18,0.0
-410,3.18,0.0
-411,3.18,0.0
-412,3.18,0.0
-413,3.18,0.0
-414,3.18,0.0
-415,3.18,0.0
-416,3.18,0.0
-417,3.18,0.0
-418,3.18,0.0
-419,3.18,0.0
-420,3.18,0.0
-421,3.18,0.0
-422,3.18,0.0
-423,3.18,0.0
-424,3.18,0.0
-425,3.18,0.0
-426,3.18,0.0
-427,3.18,0.0
-428,3.18,0.0
-429,3.18,0.0
-430,3.18,0.0
-431,3.18,0.0
-432,3.18,0.0
-433,3.18,0.0
-434,3.18,0.0
-435,3.18,0.0
-436,3.18,0.0
-437,3.18,0.0
-438,3.18,0.0
-439,3.18,0.0
-440,3.18,0.0
-441,3.18,0.0
-442,3.18,0.0
-443,3.18,0.0
-444,3.18,0.0
-445,3.18,0.0
-446,3.18,0.0
-447,3.18,0.0
-448,3.18,0.0
-449,3.18,0.0
-450,3.18,0.0
-451,3.18,0.0
-452,3.18,0.0
-453,3.18,0.0
-454,3.18,0.0
-455,3.18,0.0
-456,3.18,0.0
-457,3.18,0.0
-458,3.18,0.0
-459,3.18,0.0
-460,3.18,0.0
-461,3.18,0.0
-462,3.18,0.0
-463,3.18,0.0
-464,3.18,0.0
-465,3.18,0.0
-466,3.18,0.0
-467,3.18,0.0
-468,3.18,0.0
-469,3.18,0.0
-470,3.18,0.0
-471,3.18,0.0
-472,3.18,0.0
-473,3.18,0.0
-474,3.18,0.0
-475,3.18,0.0
-476,3.18,0.0
-477,3.18,0.0
-478,3.18,0.0
-479,3.18,0.0
-480,3.18,0.0
-481,3.18,0.0
-482,3.18,0.0
-483,3.18,0.0
-484,3.18,0.0
-485,3.18,0.0
-486,3.18,0.0
-487,3.18,0.0
-488,3.18,0.0
-489,3.18,0.0
-490,3.18,0.0
-491,3.18,0.0
-492,3.18,0.0
-493,3.18,0.0
-494,3.18,0.0
-495,3.18,0.0
-496,3.18,0.0
-497,3.18,0.0
-498,3.18,0.0
-499,3.18,0.0
-500,3.18,0.0
-501,3.18,0.0
-502,3.18,0.0
-503,3.18,0.0
-504,3.18,0.0
-505,2.23,0.0
-506,2.23,0.0
-507,2.23,0.0
-508,2.23,0.0
-509,2.23,0.0
-510,2.23,0.0
-511,2.23,0.0
-512,2.23,0.0
-513,2.23,0.0
-514,2.23,0.0
-515,2.23,0.0
-516,2.23,0.0
-517,2.23,0.0
-518,2.23,0.0
-519,2.23,0.0
-520,2.23,0.0
-521,2.23,0.0
-522,2.23,0.0
-523,2.23,0.0
-524,2.23,0.0
-525,2.23,0.0
-526,2.23,0.0
-527,2.23,0.0
-528,2.23,0.0
-529,2.23,0.0
-530,2.23,0.0
-531,2.23,0.0
-532,2.23,0.0
-533,2.23,0.0
-534,2.23,0.0
-535,2.23,0.0
-536,2.23,0.0
-537,2.23,0.0
-538,2.23,0.0
-539,2.23,0.0
-540,2.23,0.0
-541,2.23,0.0
-542,2.23,0.0
-543,2.23,0.0
-544,2.23,0.0
-545,2.23,0.0
-546,2.23,0.0
-547,2.23,0.0
-548,2.23,0.0
-549,2.23,0.0
-550,2.23,0.0
-551,2.23,0.0
-552,2.23,0.0
-553,2.23,0.0
-554,2.23,0.0
-555,2.23,0.0
-556,2.23,0.0
-557,2.23,0.0
-558,2.23,0.0
-559,2.23,0.0
-560,2.23,0.0
-561,2.23,0.0
-562,2.23,0.0
-563,2.23,0.0
-564,2.23,0.0
-565,2.23,0.0
-566,2.23,0.0
-567,2.23,0.0
-568,2.23,0.0
-569,2.23,0.0
-570,2.23,0.0
-571,2.23,0.0
-572,2.23,0.0
-573,2.23,0.0
-574,2.23,0.0
-575,2.23,0.0
-576,2.23,0.0
-577,2.23,0.0
-578,2.23,0.0
-579,2.23,0.0
-580,2.23,0.0
-581,2.23,0.0
-582,2.23,0.0
-583,2.23,0.0
-584,2.23,0.0
-585,2.23,0.0
-586,2.23,0.0
-587,2.23,0.0
-588,2.23,0.0
-589,2.23,0.0
-590,2.23,0.0
-591,2.23,0.0
-592,2.23,0.0
-593,2.23,0.0
-594,2.23,0.0
-595,2.23,0.0
-596,2.23,0.0
-597,2.23,0.0
-598,2.23,0.0
-599,2.23,0.0
-600,2.23,0.0
-601,2.23,0.0
-602,2.23,0.0
-603,2.23,0.0
-604,2.23,0.0
-605,2.23,0.0
-606,2.23,0.0
-607,2.23,0.0
-608,2.23,0.0
-609,2.23,0.0
-610,2.23,0.0
-611,2.23,0.0
-612,2.23,0.0
-613,2.23,0.0
-614,2.23,0.0
-615,2.23,0.0
-616,2.23,0.0
-617,2.23,0.0
-618,2.23,0.0
-619,2.23,0.0
-620,2.23,0.0
-621,2.23,0.0
-622,2.23,0.0
-623,2.23,0.0
-624,2.23,0.0
-625,2.23,0.0
-626,2.23,0.0
-627,2.23,0.0
-628,2.23,0.0
-629,2.23,0.0
-630,2.23,0.0
-631,2.23,0.0
-632,2.23,0.0
-633,2.23,0.0
-634,2.23,0.0
-635,2.23,0.0
-636,2.23,0.0
-637,2.23,0.0
-638,2.23,0.0
-639,2.23,0.0
-640,2.23,0.0
-641,2.23,0.0
-642,2.23,0.0
-643,2.23,0.0
-644,2.23,0.0
-645,2.23,0.0
-646,2.23,0.0
-647,2.23,0.0
-648,2.23,0.0
-649,2.23,0.0
-650,2.23,0.0
-651,2.23,0.0
-652,2.23,0.0
-653,2.23,0.0
-654,2.23,0.0
-655,2.23,0.0
-656,2.23,0.0
-657,2.23,0.0
-658,2.23,0.0
-659,2.23,0.0
-660,2.23,0.0
-661,2.23,0.0
-662,2.23,0.0
-663,2.23,0.0
-664,2.23,0.0
-665,2.23,0.0
-666,2.23,0.0
-667,2.23,0.0
-668,2.23,0.0
-669,2.23,0.0
-670,2.23,0.0
-671,2.23,0.0
-672,2.23,0.0
-673,2.34,0.0
-674,2.34,0.0
-675,2.34,0.0
-676,2.34,0.0
-677,2.34,0.0
-678,2.34,0.0
-679,2.34,0.0
-680,2.34,0.0
-681,2.34,0.0
-682,2.34,0.0
-683,2.34,0.0
-684,2.34,0.0
-685,2.34,0.0
-686,2.34,0.0
-687,2.34,0.0
-688,2.34,0.0
-689,2.34,0.0
-690,2.34,0.0
-691,2.34,0.0
-692,2.34,0.0
-693,2.34,0.0
-694,2.34,0.0
-695,2.34,0.0
-696,2.34,0.0
-697,2.34,0.0
-698,2.34,0.0
-699,2.34,0.0
-700,2.34,0.0
-701,2.34,0.0
-702,2.34,0.0
-703,2.34,0.0
-704,2.34,0.0
-705,2.34,0.0
-706,2.34,0.0
-707,2.34,0.0
-708,2.34,0.0
-709,2.34,0.0
-710,2.34,0.0
-711,2.34,0.0
-712,2.34,0.0
-713,2.34,0.0
-714,2.34,0.0
-715,2.34,0.0
-716,2.34,0.0
-717,2.34,0.0
-718,2.34,0.0
-719,2.34,0.0
-720,2.34,0.0
-721,2.34,0.0
-722,2.34,0.0
-723,2.34,0.0
-724,2.34,0.0
-725,2.34,0.0
-726,2.34,0.0
-727,2.34,0.0
-728,2.34,0.0
-729,2.34,0.0
-730,2.34,0.0
-731,2.34,0.0
-732,2.34,0.0
-733,2.34,0.0
-734,2.34,0.0
-735,2.34,0.0
-736,2.34,0.0
-737,2.34,0.0
-738,2.34,0.0
-739,2.34,0.0
-740,2.34,0.0
-741,2.34,0.0
-742,2.34,0.0
-743,2.34,0.0
-744,2.34,0.0
-745,2.34,0.0
-746,2.34,0.0
-747,2.34,0.0
-748,2.34,0.0
-749,2.34,0.0
-750,2.34,0.0
-751,2.34,0.0
-752,2.34,0.0
-753,2.34,0.0
-754,2.34,0.0
-755,2.34,0.0
-756,2.34,0.0
-757,2.34,0.0
-758,2.34,0.0
-759,2.34,0.0
-760,2.34,0.0
-761,2.34,0.0
-762,2.34,0.0
-763,2.34,0.0
-764,2.34,0.0
-765,2.34,0.0
-766,2.34,0.0
-767,2.34,0.0
-768,2.34,0.0
-769,2.34,0.0
-770,2.34,0.0
-771,2.34,0.0
-772,2.34,0.0
-773,2.34,0.0
-774,2.34,0.0
-775,2.34,0.0
-776,2.34,0.0
-777,2.34,0.0
-778,2.34,0.0
-779,2.34,0.0
-780,2.34,0.0
-781,2.34,0.0
-782,2.34,0.0
-783,2.34,0.0
-784,2.34,0.0
-785,2.34,0.0
-786,2.34,0.0
-787,2.34,0.0
-788,2.34,0.0
-789,2.34,0.0
-790,2.34,0.0
-791,2.34,0.0
-792,2.34,0.0
-793,2.34,0.0
-794,2.34,0.0
-795,2.34,0.0
-796,2.34,0.0
-797,2.34,0.0
-798,2.34,0.0
-799,2.34,0.0
-800,2.34,0.0
-801,2.34,0.0
-802,2.34,0.0
-803,2.34,0.0
-804,2.34,0.0
-805,2.34,0.0
-806,2.34,0.0
-807,2.34,0.0
-808,2.34,0.0
-809,2.34,0.0
-810,2.34,0.0
-811,2.34,0.0
-812,2.34,0.0
-813,2.34,0.0
-814,2.34,0.0
-815,2.34,0.0
-816,2.34,0.0
-817,2.34,0.0
-818,2.34,0.0
-819,2.34,0.0
-820,2.34,0.0
-821,2.34,0.0
-822,2.34,0.0
-823,2.34,0.0
-824,2.34,0.0
-825,2.34,0.0
-826,2.34,0.0
-827,2.34,0.0
-828,2.34,0.0
-829,2.34,0.0
-830,2.34,0.0
-831,2.34,0.0
-832,2.34,0.0
-833,2.34,0.0
-834,2.34,0.0
-835,2.34,0.0
-836,2.34,0.0
-837,2.34,0.0
-838,2.34,0.0
-839,2.34,0.0
-840,2.34,0.0
-841,2.34,0.0
-842,2.34,0.0
-843,2.34,0.0
-844,2.34,0.0
-845,2.34,0.0
-846,2.34,0.0
-847,2.34,0.0
-848,2.34,0.0
-849,2.34,0.0
-850,2.34,0.0
-851,2.34,0.0
-852,2.34,0.0
-853,2.34,0.0
-854,2.34,0.0
-855,2.34,0.0
-856,2.34,0.0
-857,2.34,0.0
-858,2.34,0.0
-859,2.34,0.0
-860,2.34,0.0
-861,2.34,0.0
-862,2.34,0.0
-863,2.34,0.0
-864,2.34,0.0
-865,2.34,0.0
-866,2.34,0.0
-867,2.34,0.0
-868,2.34,0.0
-869,2.34,0.0
-870,2.34,0.0
-871,2.34,0.0
-872,2.34,0.0
-873,2.34,0.0
-874,2.34,0.0
-875,2.34,0.0
-876,2.34,0.0
-877,2.34,0.0
-878,2.34,0.0
-879,2.34,0.0
-880,2.34,0.0
-881,2.34,0.0
-882,2.34,0.0
-883,2.34,0.0
-884,2.34,0.0
-885,2.34,0.0
-886,2.34,0.0
-887,2.34,0.0
-888,2.34,0.0
-889,2.34,0.0
-890,2.34,0.0
-891,2.34,0.0
-892,2.34,0.0
-893,2.34,0.0
-894,2.34,0.0
-895,2.34,0.0
-896,2.34,0.0
-897,2.34,0.0
-898,2.34,0.0
-899,2.34,0.0
-900,2.34,0.0
-901,2.34,0.0
-902,2.34,0.0
-903,2.34,0.0
-904,2.34,0.0
-905,2.34,0.0
-906,2.34,0.0
-907,2.34,0.0
-908,2.34,0.0
-909,2.34,0.0
-910,2.34,0.0
-911,2.34,0.0
-912,2.34,0.0
-913,2.34,0.0
-914,2.34,0.0
-915,2.34,0.0
-916,2.34,0.0
-917,2.34,0.0
-918,2.34,0.0
-919,2.34,0.0
-920,2.34,0.0
-921,2.34,0.0
-922,2.34,0.0
-923,2.34,0.0
-924,2.34,0.0
-925,2.34,0.0
-926,2.34,0.0
-927,2.34,0.0
-928,2.34,0.0
-929,2.34,0.0
-930,2.34,0.0
-931,2.34,0.0
-932,2.34,0.0
-933,2.34,0.0
-934,2.34,0.0
-935,2.34,0.0
-936,2.34,0.0
-937,2.34,0.0
-938,2.34,0.0
-939,2.34,0.0
-940,2.34,0.0
-941,2.34,0.0
-942,2.34,0.0
-943,2.34,0.0
-944,2.34,0.0
-945,2.34,0.0
-946,2.34,0.0
-947,2.34,0.0
-948,2.34,0.0
-949,2.34,0.0
-950,2.34,0.0
-951,2.34,0.0
-952,2.34,0.0
-953,2.34,0.0
-954,2.34,0.0
-955,2.34,0.0
-956,2.34,0.0
-957,2.34,0.0
-958,2.34,0.0
-959,2.34,0.0
-960,2.34,0.0
-961,2.34,0.0
-962,2.34,0.0
-963,2.34,0.0
-964,2.34,0.0
-965,2.34,0.0
-966,2.34,0.0
-967,2.34,0.0
-968,2.34,0.0
-969,2.34,0.0
-970,2.34,0.0
-971,2.34,0.0
-972,2.34,0.0
-973,2.34,0.0
-974,2.34,0.0
-975,2.34,0.0
-976,2.34,0.0
-977,2.34,0.0
-978,2.34,0.0
-979,2.34,0.0
-980,2.34,0.0
-981,2.34,0.0
-982,2.34,0.0
-983,2.34,0.0
-984,2.34,0.0
-985,2.34,0.0
-986,2.34,0.0
-987,2.34,0.0
-988,2.34,0.0
-989,2.34,0.0
-990,2.34,0.0
-991,2.34,0.0
-992,2.34,0.0
-993,2.34,0.0
-994,2.34,0.0
-995,2.34,0.0
-996,2.34,0.0
-997,2.34,0.0
-998,2.34,0.0
-999,2.34,0.0
-1000,2.34,0.0
-1001,2.34,0.0
-1002,2.34,0.0
-1003,2.34,0.0
-1004,2.34,0.0
-1005,2.34,0.0
-1006,2.34,0.0
-1007,2.34,0.0
-1008,2.34,0.0
-1009,2.11,0.0
-1010,2.11,0.0
-1011,2.11,0.0
-1012,2.11,0.0
-1013,2.11,0.0
-1014,2.11,0.0
-1015,2.11,0.0
-1016,2.11,0.0
-1017,2.11,0.0
-1018,2.11,0.0
-1019,2.11,0.0
-1020,2.11,0.0
-1021,2.11,0.0
-1022,2.11,0.0
-1023,2.11,0.0
-1024,2.11,0.0
-1025,2.11,0.0
-1026,2.11,0.0
-1027,2.11,0.0
-1028,2.11,0.0
-1029,2.11,0.0
-1030,2.11,0.0
-1031,2.11,0.0
-1032,2.11,0.0
-1033,2.11,0.0
-1034,2.11,0.0
-1035,2.11,0.0
-1036,2.11,0.0
-1037,2.11,0.0
-1038,2.11,0.0
-1039,2.11,0.0
-1040,2.11,0.0
-1041,2.11,0.0
-1042,2.11,0.0
-1043,2.11,0.0
-1044,2.11,0.0
-1045,2.11,0.0
-1046,2.11,0.0
-1047,2.11,0.0
-1048,2.11,0.0
-1049,2.11,0.0
-1050,2.11,0.0
-1051,2.11,0.0
-1052,2.11,0.0
-1053,2.11,0.0
-1054,2.11,0.0
-1055,2.11,0.0
-1056,2.11,0.0
-1057,2.11,0.0
-1058,2.11,0.0
-1059,2.11,0.0
-1060,2.11,0.0
-1061,2.11,0.0
-1062,2.11,0.0
-1063,2.11,0.0
-1064,2.11,0.0
-1065,2.11,0.0
-1066,2.11,0.0
-1067,2.11,0.0
-1068,2.11,0.0
-1069,2.11,0.0
-1070,2.11,0.0
-1071,2.11,0.0
-1072,2.11,0.0
-1073,2.11,0.0
-1074,2.11,0.0
-1075,2.11,0.0
-1076,2.11,0.0
-1077,2.11,0.0
-1078,2.11,0.0
-1079,2.11,0.0
-1080,2.11,0.0
-1081,2.11,0.0
-1082,2.11,0.0
-1083,2.11,0.0
-1084,2.11,0.0
-1085,2.11,0.0
-1086,2.11,0.0
-1087,2.11,0.0
-1088,2.11,0.0
-1089,2.11,0.0
-1090,2.11,0.0
-1091,2.11,0.0
-1092,2.11,0.0
-1093,2.11,0.0
-1094,2.11,0.0
-1095,2.11,0.0
-1096,2.11,0.0
-1097,2.11,0.0
-1098,2.11,0.0
-1099,2.11,0.0
-1100,2.11,0.0
-1101,2.11,0.0
-1102,2.11,0.0
-1103,2.11,0.0
-1104,2.11,0.0
-1105,2.11,0.0
-1106,2.11,0.0
-1107,2.11,0.0
-1108,2.11,0.0
-1109,2.11,0.0
-1110,2.11,0.0
-1111,2.11,0.0
-1112,2.11,0.0
-1113,2.11,0.0
-1114,2.11,0.0
-1115,2.11,0.0
-1116,2.11,0.0
-1117,2.11,0.0
-1118,2.11,0.0
-1119,2.11,0.0
-1120,2.11,0.0
-1121,2.11,0.0
-1122,2.11,0.0
-1123,2.11,0.0
-1124,2.11,0.0
-1125,2.11,0.0
-1126,2.11,0.0
-1127,2.11,0.0
-1128,2.11,0.0
-1129,2.11,0.0
-1130,2.11,0.0
-1131,2.11,0.0
-1132,2.11,0.0
-1133,2.11,0.0
-1134,2.11,0.0
-1135,2.11,0.0
-1136,2.11,0.0
-1137,2.11,0.0
-1138,2.11,0.0
-1139,2.11,0.0
-1140,2.11,0.0
-1141,2.11,0.0
-1142,2.11,0.0
-1143,2.11,0.0
-1144,2.11,0.0
-1145,2.11,0.0
-1146,2.11,0.0
-1147,2.11,0.0
-1148,2.11,0.0
-1149,2.11,0.0
-1150,2.11,0.0
-1151,2.11,0.0
-1152,2.11,0.0
-1153,2.11,0.0
-1154,2.11,0.0
-1155,2.11,0.0
-1156,2.11,0.0
-1157,2.11,0.0
-1158,2.11,0.0
-1159,2.11,0.0
-1160,2.11,0.0
-1161,2.11,0.0
-1162,2.11,0.0
-1163,2.11,0.0
-1164,2.11,0.0
-1165,2.11,0.0
-1166,2.11,0.0
-1167,2.11,0.0
-1168,2.11,0.0
-1169,2.11,0.0
-1170,2.11,0.0
-1171,2.11,0.0
-1172,2.11,0.0
-1173,2.11,0.0
-1174,2.11,0.0
-1175,2.11,0.0
-1176,2.11,0.0
-1177,2.74,0.0
-1178,2.74,0.0
-1179,2.74,0.0
-1180,2.74,0.0
-1181,2.74,0.0
-1182,2.74,0.0
-1183,2.74,0.0
-1184,2.74,0.0
-1185,2.74,0.0
-1186,2.74,0.0
-1187,2.74,0.0
-1188,2.74,0.0
-1189,2.74,0.0
-1190,2.74,0.0
-1191,2.74,0.0
-1192,2.74,0.0
-1193,2.74,0.0
-1194,2.74,0.0
-1195,2.74,0.0
-1196,2.74,0.0
-1197,2.74,0.0
-1198,2.74,0.0
-1199,2.74,0.0
-1200,2.74,0.0
-1201,2.74,0.0
-1202,2.74,0.0
-1203,2.74,0.0
-1204,2.74,0.0
-1205,2.74,0.0
-1206,2.74,0.0
-1207,2.74,0.0
-1208,2.74,0.0
-1209,2.74,0.0
-1210,2.74,0.0
-1211,2.74,0.0
-1212,2.74,0.0
-1213,2.74,0.0
-1214,2.74,0.0
-1215,2.74,0.0
-1216,2.74,0.0
-1217,2.74,0.0
-1218,2.74,0.0
-1219,2.74,0.0
-1220,2.74,0.0
-1221,2.74,0.0
-1222,2.74,0.0
-1223,2.74,0.0
-1224,2.74,0.0
-1225,2.74,0.0
-1226,2.74,0.0
-1227,2.74,0.0
-1228,2.74,0.0
-1229,2.74,0.0
-1230,2.74,0.0
-1231,2.74,0.0
-1232,2.74,0.0
-1233,2.74,0.0
-1234,2.74,0.0
-1235,2.74,0.0
-1236,2.74,0.0
-1237,2.74,0.0
-1238,2.74,0.0
-1239,2.74,0.0
-1240,2.74,0.0
-1241,2.74,0.0
-1242,2.74,0.0
-1243,2.74,0.0
-1244,2.74,0.0
-1245,2.74,0.0
-1246,2.74,0.0
-1247,2.74,0.0
-1248,2.74,0.0
-1249,2.74,0.0
-1250,2.74,0.0
-1251,2.74,0.0
-1252,2.74,0.0
-1253,2.74,0.0
-1254,2.74,0.0
-1255,2.74,0.0
-1256,2.74,0.0
-1257,2.74,0.0
-1258,2.74,0.0
-1259,2.74,0.0
-1260,2.74,0.0
-1261,2.74,0.0
-1262,2.74,0.0
-1263,2.74,0.0
-1264,2.74,0.0
-1265,2.74,0.0
-1266,2.74,0.0
-1267,2.74,0.0
-1268,2.74,0.0
-1269,2.74,0.0
-1270,2.74,0.0
-1271,2.74,0.0
-1272,2.74,0.0
-1273,2.74,0.0
-1274,2.74,0.0
-1275,2.74,0.0
-1276,2.74,0.0
-1277,2.74,0.0
-1278,2.74,0.0
-1279,2.74,0.0
-1280,2.74,0.0
-1281,2.74,0.0
-1282,2.74,0.0
-1283,2.74,0.0
-1284,2.74,0.0
-1285,2.74,0.0
-1286,2.74,0.0
-1287,2.74,0.0
-1288,2.74,0.0
-1289,2.74,0.0
-1290,2.74,0.0
-1291,2.74,0.0
-1292,2.74,0.0
-1293,2.74,0.0
-1294,2.74,0.0
-1295,2.74,0.0
-1296,2.74,0.0
-1297,2.74,0.0
-1298,2.74,0.0
-1299,2.74,0.0
-1300,2.74,0.0
-1301,2.74,0.0
-1302,2.74,0.0
-1303,2.74,0.0
-1304,2.74,0.0
-1305,2.74,0.0
-1306,2.74,0.0
-1307,2.74,0.0
-1308,2.74,0.0
-1309,2.74,0.0
-1310,2.74,0.0
-1311,2.74,0.0
-1312,2.74,0.0
-1313,2.74,0.0
-1314,2.74,0.0
-1315,2.74,0.0
-1316,2.74,0.0
-1317,2.74,0.0
-1318,2.74,0.0
-1319,2.74,0.0
-1320,2.74,0.0
-1321,2.74,0.0
-1322,2.74,0.0
-1323,2.74,0.0
-1324,2.74,0.0
-1325,2.74,0.0
-1326,2.74,0.0
-1327,2.74,0.0
-1328,2.74,0.0
-1329,2.74,0.0
-1330,2.74,0.0
-1331,2.74,0.0
-1332,2.74,0.0
-1333,2.74,0.0
-1334,2.74,0.0
-1335,2.74,0.0
-1336,2.74,0.0
-1337,2.74,0.0
-1338,2.74,0.0
-1339,2.74,0.0
-1340,2.74,0.0
-1341,2.74,0.0
-1342,2.74,0.0
-1343,2.74,0.0
-1344,2.74,0.0
-1345,2.74,0.0
-1346,2.74,0.0
-1347,2.74,0.0
-1348,2.74,0.0
-1349,2.74,0.0
-1350,2.74,0.0
-1351,2.74,0.0
-1352,2.74,0.0
-1353,2.74,0.0
-1354,2.74,0.0
-1355,2.74,0.0
-1356,2.74,0.0
-1357,2.74,0.0
-1358,2.74,0.0
-1359,2.74,0.0
-1360,2.74,0.0
-1361,2.74,0.0
-1362,2.74,0.0
-1363,2.74,0.0
-1364,2.74,0.0
-1365,2.74,0.0
-1366,2.74,0.0
-1367,2.74,0.0
-1368,2.74,0.0
-1369,2.74,0.0
-1370,2.74,0.0
-1371,2.74,0.0
-1372,2.74,0.0
-1373,2.74,0.0
-1374,2.74,0.0
-1375,2.74,0.0
-1376,2.74,0.0
-1377,2.74,0.0
-1378,2.74,0.0
-1379,2.74,0.0
-1380,2.74,0.0
-1381,2.74,0.0
-1382,2.74,0.0
-1383,2.74,0.0
-1384,2.74,0.0
-1385,2.74,0.0
-1386,2.74,0.0
-1387,2.74,0.0
-1388,2.74,0.0
-1389,2.74,0.0
-1390,2.74,0.0
-1391,2.74,0.0
-1392,2.74,0.0
-1393,2.74,0.0
-1394,2.74,0.0
-1395,2.74,0.0
-1396,2.74,0.0
-1397,2.74,0.0
-1398,2.74,0.0
-1399,2.74,0.0
-1400,2.74,0.0
-1401,2.74,0.0
-1402,2.74,0.0
-1403,2.74,0.0
-1404,2.74,0.0
-1405,2.74,0.0
-1406,2.74,0.0
-1407,2.74,0.0
-1408,2.74,0.0
-1409,2.74,0.0
-1410,2.74,0.0
-1411,2.74,0.0
-1412,2.74,0.0
-1413,2.74,0.0
-1414,2.74,0.0
-1415,2.74,0.0
-1416,2.74,0.0
-1417,2.74,0.0
-1418,2.74,0.0
-1419,2.74,0.0
-1420,2.74,0.0
-1421,2.74,0.0
-1422,2.74,0.0
-1423,2.74,0.0
-1424,2.74,0.0
-1425,2.74,0.0
-1426,2.74,0.0
-1427,2.74,0.0
-1428,2.74,0.0
-1429,2.74,0.0
-1430,2.74,0.0
-1431,2.74,0.0
-1432,2.74,0.0
-1433,2.74,0.0
-1434,2.74,0.0
-1435,2.74,0.0
-1436,2.74,0.0
-1437,2.74,0.0
-1438,2.74,0.0
-1439,2.74,0.0
-1440,2.74,0.0
-1441,2.74,0.0
-1442,2.74,0.0
-1443,2.74,0.0
-1444,2.74,0.0
-1445,2.74,0.0
-1446,2.74,0.0
-1447,2.74,0.0
-1448,2.74,0.0
-1449,2.74,0.0
-1450,2.74,0.0
-1451,2.74,0.0
-1452,2.74,0.0
-1453,2.74,0.0
-1454,2.74,0.0
-1455,2.74,0.0
-1456,2.74,0.0
-1457,2.74,0.0
-1458,2.74,0.0
-1459,2.74,0.0
-1460,2.74,0.0
-1461,2.74,0.0
-1462,2.74,0.0
-1463,2.74,0.0
-1464,2.74,0.0
-1465,2.74,0.0
-1466,2.74,0.0
-1467,2.74,0.0
-1468,2.74,0.0
-1469,2.74,0.0
-1470,2.74,0.0
-1471,2.74,0.0
-1472,2.74,0.0
-1473,2.74,0.0
-1474,2.74,0.0
-1475,2.74,0.0
-1476,2.74,0.0
-1477,2.74,0.0
-1478,2.74,0.0
-1479,2.74,0.0
-1480,2.74,0.0
-1481,2.74,0.0
-1482,2.74,0.0
-1483,2.74,0.0
-1484,2.74,0.0
-1485,2.74,0.0
-1486,2.74,0.0
-1487,2.74,0.0
-1488,2.74,0.0
-1489,4.28,0.0
-1490,4.28,0.0
-1491,4.28,0.0
-1492,4.28,0.0
-1493,4.28,0.0
-1494,4.28,0.0
-1495,4.28,0.0
-1496,4.28,0.0
-1497,4.28,0.0
-1498,4.28,0.0
-1499,4.28,0.0
-1500,4.28,0.0
-1501,4.28,0.0
-1502,4.28,0.0
-1503,4.28,0.0
-1504,4.28,0.0
-1505,4.28,0.0
-1506,4.28,0.0
-1507,4.28,0.0
-1508,4.28,0.0
-1509,4.28,0.0
-1510,4.28,0.0
-1511,4.28,0.0
-1512,4.28,0.0
-1513,4.28,0.0
-1514,4.28,0.0
-1515,4.28,0.0
-1516,4.28,0.0
-1517,4.28,0.0
-1518,4.28,0.0
-1519,4.28,0.0
-1520,4.28,0.0
-1521,4.28,0.0
-1522,4.28,0.0
-1523,4.28,0.0
-1524,4.28,0.0
-1525,4.28,0.0
-1526,4.28,0.0
-1527,4.28,0.0
-1528,4.28,0.0
-1529,4.28,0.0
-1530,4.28,0.0
-1531,4.28,0.0
-1532,4.28,0.0
-1533,4.28,0.0
-1534,4.28,0.0
-1535,4.28,0.0
-1536,4.28,0.0
-1537,4.28,0.0
-1538,4.28,0.0
-1539,4.28,0.0
-1540,4.28,0.0
-1541,4.28,0.0
-1542,4.28,0.0
-1543,4.28,0.0
-1544,4.28,0.0
-1545,4.28,0.0
-1546,4.28,0.0
-1547,4.28,0.0
-1548,4.28,0.0
-1549,4.28,0.0
-1550,4.28,0.0
-1551,4.28,0.0
-1552,4.28,0.0
-1553,4.28,0.0
-1554,4.28,0.0
-1555,4.28,0.0
-1556,4.28,0.0
-1557,4.28,0.0
-1558,4.28,0.0
-1559,4.28,0.0
-1560,4.28,0.0
-1561,4.28,0.0
-1562,4.28,0.0
-1563,4.28,0.0
-1564,4.28,0.0
-1565,4.28,0.0
-1566,4.28,0.0
-1567,4.28,0.0
-1568,4.28,0.0
-1569,4.28,0.0
-1570,4.28,0.0
-1571,4.28,0.0
-1572,4.28,0.0
-1573,4.28,0.0
-1574,4.28,0.0
-1575,4.28,0.0
-1576,4.28,0.0
-1577,4.28,0.0
-1578,4.28,0.0
-1579,4.28,0.0
-1580,4.28,0.0
-1581,4.28,0.0
-1582,4.28,0.0
-1583,4.28,0.0
-1584,4.28,0.0
-1585,4.28,0.0
-1586,4.28,0.0
-1587,4.28,0.0
-1588,4.28,0.0
-1589,4.28,0.0
-1590,4.28,0.0
-1591,4.28,0.0
-1592,4.28,0.0
-1593,4.28,0.0
-1594,4.28,0.0
-1595,4.28,0.0
-1596,4.28,0.0
-1597,4.28,0.0
-1598,4.28,0.0
-1599,4.28,0.0
-1600,4.28,0.0
-1601,4.28,0.0
-1602,4.28,0.0
-1603,4.28,0.0
-1604,4.28,0.0
-1605,4.28,0.0
-1606,4.28,0.0
-1607,4.28,0.0
-1608,4.28,0.0
-1609,4.28,0.0
-1610,4.28,0.0
-1611,4.28,0.0
-1612,4.28,0.0
-1613,4.28,0.0
-1614,4.28,0.0
-1615,4.28,0.0
-1616,4.28,0.0
-1617,4.28,0.0
-1618,4.28,0.0
-1619,4.28,0.0
-1620,4.28,0.0
-1621,4.28,0.0
-1622,4.28,0.0
-1623,4.28,0.0
-1624,4.28,0.0
-1625,4.28,0.0
-1626,4.28,0.0
-1627,4.28,0.0
-1628,4.28,0.0
-1629,4.28,0.0
-1630,4.28,0.0
-1631,4.28,0.0
-1632,4.28,0.0
-1633,4.28,0.0
-1634,4.28,0.0
-1635,4.28,0.0
-1636,4.28,0.0
-1637,4.28,0.0
-1638,4.28,0.0
-1639,4.28,0.0
-1640,4.28,0.0
-1641,4.28,0.0
-1642,4.28,0.0
-1643,4.28,0.0
-1644,4.28,0.0
-1645,4.28,0.0
-1646,4.28,0.0
-1647,4.28,0.0
-1648,4.28,0.0
-1649,4.28,0.0
-1650,4.28,0.0
-1651,4.28,0.0
-1652,4.28,0.0
-1653,4.28,0.0
-1654,4.28,0.0
-1655,4.28,0.0
-1656,4.28,0.0
-1657,4.28,0.0
-1658,4.28,0.0
-1659,4.28,0.0
-1660,4.28,0.0
-1661,4.28,0.0
-1662,4.28,0.0
-1663,4.28,0.0
-1664,4.28,0.0
-1665,4.28,0.0
-1666,4.28,0.0
-1667,4.28,0.0
-1668,4.28,0.0
-1669,4.28,0.0
-1670,4.28,0.0
-1671,4.28,0.0
-1672,4.28,0.0
-1673,4.28,0.0
-1674,4.28,0.0
-1675,4.28,0.0
-1676,4.28,0.0
-1677,4.28,0.0
-1678,4.28,0.0
-1679,4.28,0.0
-1680,4.28,0.0
-1681,4.28,0.0
-1682,4.28,0.0
-1683,4.28,0.0
-1684,4.28,0.0
-1685,4.28,0.0
-1686,4.28,0.0
-1687,4.28,0.0
-1688,4.28,0.0
-1689,4.28,0.0
-1690,4.28,0.0
-1691,4.28,0.0
-1692,4.28,0.0
-1693,4.28,0.0
-1694,4.28,0.0
-1695,4.28,0.0
-1696,4.28,0.0
-1697,4.28,0.0
-1698,4.28,0.0
-1699,4.28,0.0
-1700,4.28,0.0
-1701,4.28,0.0
-1702,4.28,0.0
-1703,4.28,0.0
-1704,4.28,0.0
-1705,4.28,0.0
-1706,4.28,0.0
-1707,4.28,0.0
-1708,4.28,0.0
-1709,4.28,0.0
-1710,4.28,0.0
-1711,4.28,0.0
-1712,4.28,0.0
-1713,4.28,0.0
-1714,4.28,0.0
-1715,4.28,0.0
-1716,4.28,0.0
-1717,4.28,0.0
-1718,4.28,0.0
-1719,4.28,0.0
-1720,4.28,0.0
-1721,4.28,0.0
-1722,4.28,0.0
-1723,4.28,0.0
-1724,4.28,0.0
-1725,4.28,0.0
-1726,4.28,0.0
-1727,4.28,0.0
-1728,4.28,0.0
-1729,4.28,0.0
-1730,4.28,0.0
-1731,4.28,0.0
-1732,4.28,0.0
-1733,4.28,0.0
-1734,4.28,0.0
-1735,4.28,0.0
-1736,4.28,0.0
-1737,4.28,0.0
-1738,4.28,0.0
-1739,4.28,0.0
-1740,4.28,0.0
-1741,4.28,0.0
-1742,4.28,0.0
-1743,4.28,0.0
-1744,4.28,0.0
-1745,4.28,0.0
-1746,4.28,0.0
-1747,4.28,0.0
-1748,4.28,0.0
-1749,4.28,0.0
-1750,4.28,0.0
-1751,4.28,0.0
-1752,4.28,0.0
-1753,4.28,0.0
-1754,4.28,0.0
-1755,4.28,0.0
-1756,4.28,0.0
-1757,4.28,0.0
-1758,4.28,0.0
-1759,4.28,0.0
-1760,4.28,0.0
-1761,4.28,0.0
-1762,4.28,0.0
-1763,4.28,0.0
-1764,4.28,0.0
-1765,4.28,0.0
-1766,4.28,0.0
-1767,4.28,0.0
-1768,4.28,0.0
-1769,4.28,0.0
-1770,4.28,0.0
-1771,4.28,0.0
-1772,4.28,0.0
-1773,4.28,0.0
-1774,4.28,0.0
-1775,4.28,0.0
-1776,4.28,0.0
-1777,4.28,0.0
-1778,4.28,0.0
-1779,4.28,0.0
-1780,4.28,0.0
-1781,4.28,0.0
-1782,4.28,0.0
-1783,4.28,0.0
-1784,4.28,0.0
-1785,4.28,0.0
-1786,4.28,0.0
-1787,4.28,0.0
-1788,4.28,0.0
-1789,4.28,0.0
-1790,4.28,0.0
-1791,4.28,0.0
-1792,4.28,0.0
-1793,4.28,0.0
-1794,4.28,0.0
-1795,4.28,0.0
-1796,4.28,0.0
-1797,4.28,0.0
-1798,4.28,0.0
-1799,4.28,0.0
-1800,4.28,0.0
-1801,4.28,0.0
-1802,4.28,0.0
-1803,4.28,0.0
-1804,4.28,0.0
-1805,4.28,0.0
-1806,4.28,0.0
-1807,4.28,0.0
-1808,4.28,0.0
-1809,4.28,0.0
-1810,4.28,0.0
-1811,4.28,0.0
-1812,4.28,0.0
-1813,4.28,0.0
-1814,4.28,0.0
-1815,4.28,0.0
-1816,4.28,0.0
-1817,4.28,0.0
-1818,4.28,0.0
-1819,4.28,0.0
-1820,4.28,0.0
-1821,4.28,0.0
-1822,4.28,0.0
-1823,4.28,0.0
-1824,4.28,0.0
-1825,4.28,0.0
-1826,4.28,0.0
-1827,4.28,0.0
-1828,4.28,0.0
-1829,4.28,0.0
-1830,4.28,0.0
-1831,4.28,0.0
-1832,4.28,0.0
-1833,4.28,0.0
-1834,4.28,0.0
-1835,4.28,0.0
-1836,4.28,0.0
-1837,4.28,0.0
-1838,4.28,0.0
-1839,4.28,0.0
-1840,4.28,0.0
-1841,4.28,0.0
-1842,4.28,0.0
-1843,4.28,0.0
-1844,4.28,0.0
-1845,4.28,0.0
-1846,4.28,0.0
-1847,4.28,0.0
-1848,4.28,0.0
diff --git a/test/TDR/TDR_Results_test/Generators_variability.csv b/test/TDR/TDR_Results_test/Generators_variability.csv
deleted file mode 100644
index 94ee6e8d09..0000000000
--- a/test/TDR/TDR_Results_test/Generators_variability.csv
+++ /dev/null
@@ -1,1849 +0,0 @@
-Time_Index,natural_gas_combined_cycle,solar_pv,onshore_wind,battery
-1,1.0,0.0,0.365903705,1.0
-2,1.0,0.0,0.277681828,1.0
-3,1.0,0.0,0.32916826,1.0
-4,1.0,0.0,0.321262717,1.0
-5,1.0,0.0,0.337861657,1.0
-6,1.0,0.0,0.361339748,1.0
-7,1.0,0.0,0.24738346,1.0
-8,1.0,0.0,0.199261397,1.0
-9,1.0,0.2175,0.22259143,1.0
-10,1.0,0.4081,0.153767169,1.0
-11,1.0,0.5613,0.029289583,1.0
-12,1.0,0.5322,0.026865166,1.0
-13,1.0,0.5679,0.011329597,1.0
-14,1.0,0.5247,0.007760911,1.0
-15,1.0,0.4229,0.005982129,1.0
-16,1.0,0.3114,0.082186021,1.0
-17,1.0,0.109,0.192014858,1.0
-18,1.0,0.0,0.455805838,1.0
-19,1.0,0.0,0.796956778,1.0
-20,1.0,0.0,0.79460448,1.0
-21,1.0,0.0,0.831539571,1.0
-22,1.0,0.0,0.816609323,1.0
-23,1.0,0.0,0.846572816,1.0
-24,1.0,0.0,0.787300646,1.0
-25,1.0,0.0,0.786783397,1.0
-26,1.0,0.0,0.909167528,1.0
-27,1.0,0.0,0.904221952,1.0
-28,1.0,0.0,0.879251361,1.0
-29,1.0,0.0,0.952225089,1.0
-30,1.0,0.0,0.944473207,1.0
-31,1.0,0.0,0.827358544,1.0
-32,1.0,0.0,0.686761975,1.0
-33,1.0,0.109,0.654094696,1.0
-34,1.0,0.3235,0.638795078,1.0
-35,1.0,0.3563,0.473784417,1.0
-36,1.0,0.3784,0.330973744,1.0
-37,1.0,0.3346,0.293582767,1.0
-38,1.0,0.2609,0.452776879,1.0
-39,1.0,0.2381,0.418485582,1.0
-40,1.0,0.1307,0.359295726,1.0
-41,1.0,0.0266,0.269514143,1.0
-42,1.0,0.0,0.403690845,1.0
-43,1.0,0.0,0.486878037,1.0
-44,1.0,0.0,0.494424254,1.0
-45,1.0,0.0,0.771431684,1.0
-46,1.0,0.0,0.803367972,1.0
-47,1.0,0.0,0.89033103,1.0
-48,1.0,0.0,0.556316495,1.0
-49,1.0,0.0,0.37368238,1.0
-50,1.0,0.0,0.40189454,1.0
-51,1.0,0.0,0.57215327,1.0
-52,1.0,0.0,0.733329177,1.0
-53,1.0,0.0,0.786333203,1.0
-54,1.0,0.0,0.893327117,1.0
-55,1.0,0.0,0.735907257,1.0
-56,1.0,0.0,0.85306251,1.0
-57,1.0,0.1008,0.562280893,1.0
-58,1.0,0.3571,0.406291425,1.0
-59,1.0,0.5425,0.471803486,1.0
-60,1.0,0.6327,0.583303273,1.0
-61,1.0,0.6563,0.680952013,1.0
-62,1.0,0.6462,0.734794915,1.0
-63,1.0,0.5642,0.728750825,1.0
-64,1.0,0.3954,0.663971961,1.0
-65,1.0,0.1551,0.909887969,1.0
-66,1.0,0.0,0.95015353,1.0
-67,1.0,0.0,0.902165771,1.0
-68,1.0,0.0,0.679347456,1.0
-69,1.0,0.0,0.554835379,1.0
-70,1.0,0.0,0.968334317,1.0
-71,1.0,0.0,0.926447988,1.0
-72,1.0,0.0,0.89683497,1.0
-73,1.0,0.0,0.990337968,1.0
-74,1.0,0.0,0.930023193,1.0
-75,1.0,0.0,0.893941104,1.0
-76,1.0,0.0,0.972342491,1.0
-77,1.0,0.0,0.973231435,1.0
-78,1.0,0.0,0.935377836,1.0
-79,1.0,0.0,0.945303977,1.0
-80,1.0,0.0,0.828633845,1.0
-81,1.0,0.2189,0.878159523,1.0
-82,1.0,0.4091,0.752456844,1.0
-83,1.0,0.5094,0.971757054,1.0
-84,1.0,0.5486,0.952906728,1.0
-85,1.0,0.5372,0.948550284,1.0
-86,1.0,0.4018,0.958720803,1.0
-87,1.0,0.4305,0.935380042,1.0
-88,1.0,0.3475,0.835846305,1.0
-89,1.0,0.1858,0.608840287,1.0
-90,1.0,0.0,0.465058327,1.0
-91,1.0,0.0,0.451301157,1.0
-92,1.0,0.0,0.569331527,1.0
-93,1.0,0.0,0.281456649,1.0
-94,1.0,0.0,0.542486012,1.0
-95,1.0,0.0,0.040279318,1.0
-96,1.0,0.0,0.446532726,1.0
-97,1.0,0.0,0.409109652,1.0
-98,1.0,0.0,0.541228652,1.0
-99,1.0,0.0,0.348527253,1.0
-100,1.0,0.0,0.281483263,1.0
-101,1.0,0.0,0.275095552,1.0
-102,1.0,0.0,0.243707165,1.0
-103,1.0,0.0,0.22453095,1.0
-104,1.0,0.0,0.214264646,1.0
-105,1.0,0.1243,0.22138156,1.0
-106,1.0,0.3369,0.143669099,1.0
-107,1.0,0.5427,0.028309852,1.0
-108,1.0,0.5165,0.016492093,1.0
-109,1.0,0.4801,0.003949803,1.0
-110,1.0,0.4327,0.0,1.0
-111,1.0,0.3182,0.000562099,1.0
-112,1.0,0.1995,0.024408365,1.0
-113,1.0,0.0683,0.1005207,1.0
-114,1.0,0.0,0.470599443,1.0
-115,1.0,0.0,0.694797695,1.0
-116,1.0,0.0,0.337198138,1.0
-117,1.0,0.0,0.337203711,1.0
-118,1.0,0.0,0.11668992,1.0
-119,1.0,0.0,0.184982553,1.0
-120,1.0,0.0,0.162534699,1.0
-121,1.0,0.0,0.523972332,1.0
-122,1.0,0.0,0.657110274,1.0
-123,1.0,0.0,0.757477045,1.0
-124,1.0,0.0,0.644009769,1.0
-125,1.0,0.0,0.467615873,1.0
-126,1.0,0.0,0.553678334,1.0
-127,1.0,0.0,0.77921623,1.0
-128,1.0,0.0,0.725531518,1.0
-129,1.0,0.0,0.786552846,1.0
-130,1.0,0.003,0.589495063,1.0
-131,1.0,0.0852,0.436854541,1.0
-132,1.0,0.1324,0.533977807,1.0
-133,1.0,0.1041,0.54939425,1.0
-134,1.0,0.1276,0.297182679,1.0
-135,1.0,0.1108,0.108885378,1.0
-136,1.0,0.0825,0.097908288,1.0
-137,1.0,0.0043,0.092191279,1.0
-138,1.0,0.0,0.112537816,1.0
-139,1.0,0.0,0.366680771,1.0
-140,1.0,0.0,0.794670165,1.0
-141,1.0,0.0,0.931621909,1.0
-142,1.0,0.0,1.0,1.0
-143,1.0,0.0,1.0,1.0
-144,1.0,0.0,1.0,1.0
-145,1.0,0.0,1.0,1.0
-146,1.0,0.0,1.0,1.0
-147,1.0,0.0,1.0,1.0
-148,1.0,0.0,0.999961376,1.0
-149,1.0,0.0,0.994962633,1.0
-150,1.0,0.0,0.985313892,1.0
-151,1.0,0.0,0.699854255,1.0
-152,1.0,0.0,0.739927649,1.0
-153,1.0,0.2499,0.57710892,1.0
-154,1.0,0.4155,0.135876462,1.0
-155,1.0,0.5324,0.037213072,1.0
-156,1.0,0.4953,0.014904963,1.0
-157,1.0,0.5597,0.001591918,1.0
-158,1.0,0.6671,0.029781383,1.0
-159,1.0,0.6148,0.173540488,1.0
-160,1.0,0.4365,0.545302749,1.0
-161,1.0,0.195,0.808674514,1.0
-162,1.0,0.0,0.881779969,1.0
-163,1.0,0.0,0.948357105,1.0
-164,1.0,0.0,0.92076385,1.0
-165,1.0,0.0,0.927159309,1.0
-166,1.0,0.0,0.978732347,1.0
-167,1.0,0.0,0.996869922,1.0
-168,1.0,0.0,0.991770387,1.0
-169,1.0,0.0,0.839961231,1.0
-170,1.0,0.0,0.853366971,1.0
-171,1.0,0.0,0.80891031,1.0
-172,1.0,0.0,0.778500557,1.0
-173,1.0,0.0,0.773078859,1.0
-174,1.0,0.0,0.712092757,1.0
-175,1.0,0.0,0.628687322,1.0
-176,1.0,0.0784,0.660557628,1.0
-177,1.0,0.3412,0.561071396,1.0
-178,1.0,0.5422,0.18366693,1.0
-179,1.0,0.6945,0.200725734,1.0
-180,1.0,0.7433,0.271895647,1.0
-181,1.0,0.7488,0.382985741,1.0
-182,1.0,0.7431,0.574463189,1.0
-183,1.0,0.6884,0.400294423,1.0
-184,1.0,0.5364,0.310641944,1.0
-185,1.0,0.3355,0.266270131,1.0
-186,1.0,0.076,0.29693529,1.0
-187,1.0,0.0,0.334462613,1.0
-188,1.0,0.0,0.245827347,1.0
-189,1.0,0.0,0.244881824,1.0
-190,1.0,0.0,0.454426348,1.0
-191,1.0,0.0,0.332374543,1.0
-192,1.0,0.0,0.656532109,1.0
-193,1.0,0.0,0.75910145,1.0
-194,1.0,0.0,0.647365987,1.0
-195,1.0,0.0,0.69612956,1.0
-196,1.0,0.0,0.775853753,1.0
-197,1.0,0.0,0.723050296,1.0
-198,1.0,0.0,0.592756689,1.0
-199,1.0,0.0,0.642210364,1.0
-200,1.0,0.0526,0.42505002,1.0
-201,1.0,0.2708,0.291758955,1.0
-202,1.0,0.4689,0.736761153,1.0
-203,1.0,0.7172,0.921575248,1.0
-204,1.0,0.6904,0.95283252,1.0
-205,1.0,0.7406,0.984723032,1.0
-206,1.0,0.7488,0.996679187,1.0
-207,1.0,0.7112,0.990746498,1.0
-208,1.0,0.557,0.979539394,1.0
-209,1.0,0.354,0.989734411,1.0
-210,1.0,0.088,0.984326899,1.0
-211,1.0,0.0,0.891766608,1.0
-212,1.0,0.0,0.649405837,1.0
-213,1.0,0.0,0.54935199,1.0
-214,1.0,0.0,0.571955085,1.0
-215,1.0,0.0,0.66852653,1.0
-216,1.0,0.0,0.571296394,1.0
-217,1.0,0.0,0.39722836,1.0
-218,1.0,0.0,0.393954664,1.0
-219,1.0,0.0,0.588399291,1.0
-220,1.0,0.0,0.509705186,1.0
-221,1.0,0.0,0.472692788,1.0
-222,1.0,0.0,0.271803975,1.0
-223,1.0,0.0,0.043978728,1.0
-224,1.0,0.0473,0.000749043,1.0
-225,1.0,0.297,0.018879127,1.0
-226,1.0,0.5162,0.0,1.0
-227,1.0,0.6557,0.000226641,1.0
-228,1.0,0.6814,0.103299454,1.0
-229,1.0,0.6802,0.354058415,1.0
-230,1.0,0.6721,0.60634613,1.0
-231,1.0,0.5062,0.852447271,1.0
-232,1.0,0.379,0.905672431,1.0
-233,1.0,0.2003,0.991931081,1.0
-234,1.0,0.015,0.994612098,1.0
-235,1.0,0.0,0.973924041,1.0
-236,1.0,0.0,0.788848221,1.0
-237,1.0,0.0,0.694281936,1.0
-238,1.0,0.0,0.685954809,1.0
-239,1.0,0.0,0.699969053,1.0
-240,1.0,0.0,0.423425704,1.0
-241,1.0,0.0,0.535325825,1.0
-242,1.0,0.0,0.578798234,1.0
-243,1.0,0.0,0.627994299,1.0
-244,1.0,0.0,0.559649229,1.0
-245,1.0,0.0,0.395297229,1.0
-246,1.0,0.0,0.576434731,1.0
-247,1.0,0.0,0.450819612,1.0
-248,1.0,0.0178,0.164915755,1.0
-249,1.0,0.2828,0.242930636,1.0
-250,1.0,0.4612,0.27634415,1.0
-251,1.0,0.59,0.510981739,1.0
-252,1.0,0.4844,0.575888515,1.0
-253,1.0,0.5318,0.580213249,1.0
-254,1.0,0.6033,0.864859819,1.0
-255,1.0,0.5808,0.92755276,1.0
-256,1.0,0.4795,0.878933907,1.0
-257,1.0,0.2821,0.693290472,1.0
-258,1.0,0.0584,0.775451422,1.0
-259,1.0,0.0,0.948246717,1.0
-260,1.0,0.0,0.96165514,1.0
-261,1.0,0.0,0.949990213,1.0
-262,1.0,0.0,0.90703547,1.0
-263,1.0,0.0,0.994976997,1.0
-264,1.0,0.0,0.991120875,1.0
-265,1.0,0.0,0.998250365,1.0
-266,1.0,0.0,0.993273795,1.0
-267,1.0,0.0,0.910136104,1.0
-268,1.0,0.0,0.777924895,1.0
-269,1.0,0.0,0.562161922,1.0
-270,1.0,0.0,0.635603309,1.0
-271,1.0,0.0,0.537465096,1.0
-272,1.0,0.0098,0.450718582,1.0
-273,1.0,0.2113,0.233703926,1.0
-274,1.0,0.343,0.179489017,1.0
-275,1.0,0.4909,0.392742991,1.0
-276,1.0,0.5888,0.687447906,1.0
-277,1.0,0.5443,0.933152497,1.0
-278,1.0,0.6127,0.980558813,1.0
-279,1.0,0.627,1.0,1.0
-280,1.0,0.5153,1.0,1.0
-281,1.0,0.3325,1.0,1.0
-282,1.0,0.0824,0.996576548,1.0
-283,1.0,0.0,0.898912787,1.0
-284,1.0,0.0,0.586391091,1.0
-285,1.0,0.0,0.705985069,1.0
-286,1.0,0.0,0.622455716,1.0
-287,1.0,0.0,0.624929547,1.0
-288,1.0,0.0,0.27310586,1.0
-289,1.0,0.0,0.189114019,1.0
-290,1.0,0.0,0.064746879,1.0
-291,1.0,0.0,0.008768931,1.0
-292,1.0,0.0,0.003340998,1.0
-293,1.0,0.0,0.018536907,1.0
-294,1.0,0.0,0.020415204,1.0
-295,1.0,0.0,0.07081867,1.0
-296,1.0,0.0002,0.068651795,1.0
-297,1.0,0.0507,0.041139752,1.0
-298,1.0,0.1645,0.035472937,1.0
-299,1.0,0.2004,0.045996897,1.0
-300,1.0,0.2721,0.205906346,1.0
-301,1.0,0.3008,0.185148805,1.0
-302,1.0,0.5094,0.424985647,1.0
-303,1.0,0.3392,0.418894947,1.0
-304,1.0,0.3026,0.263806671,1.0
-305,1.0,0.1432,0.487054676,1.0
-306,1.0,0.0,0.436164558,1.0
-307,1.0,0.0,0.634646177,1.0
-308,1.0,0.0,0.573302269,1.0
-309,1.0,0.0,0.273384631,1.0
-310,1.0,0.0,0.120008692,1.0
-311,1.0,0.0,0.244933501,1.0
-312,1.0,0.0,0.11947909,1.0
-313,1.0,0.0,0.576475978,1.0
-314,1.0,0.0,0.890917897,1.0
-315,1.0,0.0,0.913034558,1.0
-316,1.0,0.0,0.947283506,1.0
-317,1.0,0.0,0.978364825,1.0
-318,1.0,0.0,0.992415309,1.0
-319,1.0,0.0,0.993729472,1.0
-320,1.0,0.0882,0.95590055,1.0
-321,1.0,0.3218,0.986124396,1.0
-322,1.0,0.4539,1.0,1.0
-323,1.0,0.5352,1.0,1.0
-324,1.0,0.5652,1.0,1.0
-325,1.0,0.584,1.0,1.0
-326,1.0,0.5703,1.0,1.0
-327,1.0,0.5633,1.0,1.0
-328,1.0,0.4633,1.0,1.0
-329,1.0,0.2981,1.0,1.0
-330,1.0,0.077,1.0,1.0
-331,1.0,0.0,1.0,1.0
-332,1.0,0.0,1.0,1.0
-333,1.0,0.0,1.0,1.0
-334,1.0,0.0,1.0,1.0
-335,1.0,0.0,0.97363764,1.0
-336,1.0,0.0,1.0,1.0
-337,1.0,0.0,0.976378679,1.0
-338,1.0,0.0,0.984107256,1.0
-339,1.0,0.0,0.99087131,1.0
-340,1.0,0.0,0.994603217,1.0
-341,1.0,0.0,0.998851299,1.0
-342,1.0,0.0,0.971774817,1.0
-343,1.0,0.0445,0.976561904,1.0
-344,1.0,0.2149,0.987968087,1.0
-345,1.0,0.3872,0.9882195,1.0
-346,1.0,0.5191,0.998106122,1.0
-347,1.0,0.6164,0.999568939,1.0
-348,1.0,0.6094,1.0,1.0
-349,1.0,0.6213,1.0,1.0
-350,1.0,0.5855,1.0,1.0
-351,1.0,0.5484,1.0,1.0
-352,1.0,0.4324,0.999595284,1.0
-353,1.0,0.2942,0.99711287,1.0
-354,1.0,0.1239,0.978482008,1.0
-355,1.0,0.0042,0.962880611,1.0
-356,1.0,0.0,0.863191187,1.0
-357,1.0,0.0,0.776013196,1.0
-358,1.0,0.0,0.648169994,1.0
-359,1.0,0.0,0.797179341,1.0
-360,1.0,0.0,0.852513611,1.0
-361,1.0,0.0,0.849295974,1.0
-362,1.0,0.0,0.894008577,1.0
-363,1.0,0.0,0.865724504,1.0
-364,1.0,0.0,0.631549954,1.0
-365,1.0,0.0,0.685942769,1.0
-366,1.0,0.0,0.626031876,1.0
-367,1.0,0.0596,0.655419469,1.0
-368,1.0,0.2421,0.373634547,1.0
-369,1.0,0.4408,0.767348826,1.0
-370,1.0,0.5842,0.818964839,1.0
-371,1.0,0.6896,0.899868667,1.0
-372,1.0,0.6858,0.827887177,1.0
-373,1.0,0.6341,0.77583307,1.0
-374,1.0,0.5742,0.822852373,1.0
-375,1.0,0.5271,0.75891304,1.0
-376,1.0,0.4501,0.675263107,1.0
-377,1.0,0.3211,0.593019366,1.0
-378,1.0,0.1502,0.617896497,1.0
-379,1.0,0.0118,0.502039552,1.0
-380,1.0,0.0,0.508851111,1.0
-381,1.0,0.0,0.873926282,1.0
-382,1.0,0.0,0.942997217,1.0
-383,1.0,0.0,0.805597007,1.0
-384,1.0,0.0,0.685475111,1.0
-385,1.0,0.0,0.700337529,1.0
-386,1.0,0.0,0.798646748,1.0
-387,1.0,0.0,0.78850621,1.0
-388,1.0,0.0,0.574973226,1.0
-389,1.0,0.0,0.569176912,1.0
-390,1.0,0.0,0.650138378,1.0
-391,1.0,0.0674,0.499311596,1.0
-392,1.0,0.2425,0.159487605,1.0
-393,1.0,0.4158,0.053038668,1.0
-394,1.0,0.5463,0.038856283,1.0
-395,1.0,0.6386,0.031829014,1.0
-396,1.0,0.6422,0.051378038,1.0
-397,1.0,0.619,0.065047957,1.0
-398,1.0,0.535,0.083698675,1.0
-399,1.0,0.4947,0.117394306,1.0
-400,1.0,0.436,0.211323068,1.0
-401,1.0,0.31,0.504378438,1.0
-402,1.0,0.141,0.598919272,1.0
-403,1.0,0.0057,0.576928318,1.0
-404,1.0,0.0,0.245412409,1.0
-405,1.0,0.0,0.399470031,1.0
-406,1.0,0.0,0.354025811,1.0
-407,1.0,0.0,0.363210678,1.0
-408,1.0,0.0,0.323179245,1.0
-409,1.0,0.0,0.398632646,1.0
-410,1.0,0.0,0.341559738,1.0
-411,1.0,0.0,0.321574986,1.0
-412,1.0,0.0,0.396199942,1.0
-413,1.0,0.0,0.636986494,1.0
-414,1.0,0.0,0.890024364,1.0
-415,1.0,0.0646,0.637552381,1.0
-416,1.0,0.24,0.286298871,1.0
-417,1.0,0.4124,0.223013029,1.0
-418,1.0,0.5387,0.514375925,1.0
-419,1.0,0.5942,0.528874278,1.0
-420,1.0,0.5769,0.548655272,1.0
-421,1.0,0.5447,0.557774305,1.0
-422,1.0,0.5418,0.457361192,1.0
-423,1.0,0.534,0.583439648,1.0
-424,1.0,0.4351,0.72592026,1.0
-425,1.0,0.2974,0.435780674,1.0
-426,1.0,0.1269,0.461076498,1.0
-427,1.0,0.0095,0.124610268,1.0
-428,1.0,0.0,0.126709461,1.0
-429,1.0,0.0,0.135599941,1.0
-430,1.0,0.0,0.214279756,1.0
-431,1.0,0.0,0.129719689,1.0
-432,1.0,0.0,0.270967752,1.0
-433,1.0,0.0,0.416386485,1.0
-434,1.0,0.0,0.457104445,1.0
-435,1.0,0.0,0.574437618,1.0
-436,1.0,0.0,0.623902559,1.0
-437,1.0,0.0,0.674880862,1.0
-438,1.0,0.0,0.696119487,1.0
-439,1.0,0.0702,0.701763928,1.0
-440,1.0,0.2614,0.396576822,1.0
-441,1.0,0.4627,0.037886046,1.0
-442,1.0,0.6166,0.073010258,1.0
-443,1.0,0.7112,0.249430791,1.0
-444,1.0,0.716,0.370512515,1.0
-445,1.0,0.7297,0.230703786,1.0
-446,1.0,0.7274,0.22520043,1.0
-447,1.0,0.6825,0.488252103,1.0
-448,1.0,0.5492,0.434143692,1.0
-449,1.0,0.3739,0.530265331,1.0
-450,1.0,0.1552,0.697079122,1.0
-451,1.0,0.0324,0.852920771,1.0
-452,1.0,0.0,0.663789809,1.0
-453,1.0,0.0,0.686731339,1.0
-454,1.0,0.0,0.744635105,1.0
-455,1.0,0.0,0.782060266,1.0
-456,1.0,0.0,0.904454112,1.0
-457,1.0,0.0,0.83344537,1.0
-458,1.0,0.0,0.872471452,1.0
-459,1.0,0.0,0.892910719,1.0
-460,1.0,0.0,0.9560256,1.0
-461,1.0,0.0,0.992454171,1.0
-462,1.0,0.0,0.941938698,1.0
-463,1.0,0.0727,0.783872187,1.0
-464,1.0,0.2557,0.317019999,1.0
-465,1.0,0.4497,0.108912453,1.0
-466,1.0,0.5925,0.061030116,1.0
-467,1.0,0.704,0.091753475,1.0
-468,1.0,0.7225,0.165525734,1.0
-469,1.0,0.701,0.100399628,1.0
-470,1.0,0.6769,0.1118991,1.0
-471,1.0,0.5474,0.337886423,1.0
-472,1.0,0.3879,0.737042546,1.0
-473,1.0,0.2913,0.518634439,1.0
-474,1.0,0.1353,0.477877468,1.0
-475,1.0,0.0179,0.68678236,1.0
-476,1.0,0.0,0.666041672,1.0
-477,1.0,0.0,0.656133652,1.0
-478,1.0,0.0,0.731970549,1.0
-479,1.0,0.0,0.650233984,1.0
-480,1.0,0.0,0.48109597,1.0
-481,1.0,0.0,0.520463943,1.0
-482,1.0,0.0,0.641899228,1.0
-483,1.0,0.0,0.732715607,1.0
-484,1.0,0.0,0.773417711,1.0
-485,1.0,0.0,0.808750629,1.0
-486,1.0,0.0,0.668992579,1.0
-487,1.0,0.0607,0.371637166,1.0
-488,1.0,0.2295,0.274499536,1.0
-489,1.0,0.3989,0.098948047,1.0
-490,1.0,0.5445,0.245330244,1.0
-491,1.0,0.6313,0.243990541,1.0
-492,1.0,0.5756,0.377955258,1.0
-493,1.0,0.4796,0.712418675,1.0
-494,1.0,0.4497,0.855256557,1.0
-495,1.0,0.3945,0.79084897,1.0
-496,1.0,0.3274,0.812969089,1.0
-497,1.0,0.224,0.640697956,1.0
-498,1.0,0.1102,0.474223077,1.0
-499,1.0,0.0001,0.422053099,1.0
-500,1.0,0.0,0.618463397,1.0
-501,1.0,0.0,0.438436031,1.0
-502,1.0,0.0,0.626105309,1.0
-503,1.0,0.0,0.752179384,1.0
-504,1.0,0.0,0.696528912,1.0
-505,1.0,0.0,0.395611078,1.0
-506,1.0,0.0,0.423413754,1.0
-507,1.0,0.0,0.243006587,1.0
-508,1.0,0.0,0.258309305,1.0
-509,1.0,0.0,0.311122924,1.0
-510,1.0,0.0862,0.223746479,1.0
-511,1.0,0.1147,0.149251714,1.0
-512,1.0,0.2431,0.058339182,1.0
-513,1.0,0.3828,0.112041719,1.0
-514,1.0,0.492,0.263480425,1.0
-515,1.0,0.5487,0.406454057,1.0
-516,1.0,0.5534,0.449652612,1.0
-517,1.0,0.558,0.635676682,1.0
-518,1.0,0.5522,0.749368668,1.0
-519,1.0,0.5321,0.83713603,1.0
-520,1.0,0.4367,0.77069056,1.0
-521,1.0,0.315,0.746376812,1.0
-522,1.0,0.1671,0.584556997,1.0
-523,1.0,0.0824,0.591010988,1.0
-524,1.0,0.0091,0.472454995,1.0
-525,1.0,0.0,0.403234482,1.0
-526,1.0,0.0,0.620517254,1.0
-527,1.0,0.0,0.687395751,1.0
-528,1.0,0.0,0.694238126,1.0
-529,1.0,0.0,0.719078302,1.0
-530,1.0,0.0,0.695590973,1.0
-531,1.0,0.0,0.582375467,1.0
-532,1.0,0.0,0.328068644,1.0
-533,1.0,0.0,0.219203621,1.0
-534,1.0,0.0587,0.160372466,1.0
-535,1.0,0.1202,0.163433105,1.0
-536,1.0,0.2267,0.288469315,1.0
-537,1.0,0.3121,0.210290685,1.0
-538,1.0,0.3871,0.301395118,1.0
-539,1.0,0.4377,0.413270384,1.0
-540,1.0,0.4715,0.551126063,1.0
-541,1.0,0.481,0.591716051,1.0
-542,1.0,0.4752,0.654024005,1.0
-543,1.0,0.4683,0.513331532,1.0
-544,1.0,0.3812,0.424813777,1.0
-545,1.0,0.2652,0.308118045,1.0
-546,1.0,0.1535,0.313441902,1.0
-547,1.0,0.0289,0.724045098,1.0
-548,1.0,0.0,0.51439184,1.0
-549,1.0,0.0,0.469148576,1.0
-550,1.0,0.0,0.436568946,1.0
-551,1.0,0.0,0.202889666,1.0
-552,1.0,0.0,0.215684026,1.0
-553,1.0,0.0,0.316270888,1.0
-554,1.0,0.0,0.310780317,1.0
-555,1.0,0.0,0.299282789,1.0
-556,1.0,0.0,0.432175815,1.0
-557,1.0,0.0,0.194348484,1.0
-558,1.0,0.0,0.209139466,1.0
-559,1.0,0.0152,0.228728533,1.0
-560,1.0,0.0911,0.312427849,1.0
-561,1.0,0.1895,0.217083111,1.0
-562,1.0,0.2332,0.153272688,1.0
-563,1.0,0.2898,0.085418865,1.0
-564,1.0,0.3538,0.055565592,1.0
-565,1.0,0.3662,0.005079592,1.0
-566,1.0,0.3455,0.013821051,1.0
-567,1.0,0.2894,0.028382257,1.0
-568,1.0,0.2522,0.013966933,1.0
-569,1.0,0.177,0.010335479,1.0
-570,1.0,0.1159,0.082700029,1.0
-571,1.0,0.0529,0.264066011,1.0
-572,1.0,0.048,0.384414434,1.0
-573,1.0,0.0,0.545492649,1.0
-574,1.0,0.0,0.51424253,1.0
-575,1.0,0.0,0.736316085,1.0
-576,1.0,0.0,0.6506024,1.0
-577,1.0,0.0,0.556405127,1.0
-578,1.0,0.0,0.462369353,1.0
-579,1.0,0.0,0.590124667,1.0
-580,1.0,0.0,0.575042486,1.0
-581,1.0,0.0,0.691458404,1.0
-582,1.0,0.1017,0.615193188,1.0
-583,1.0,0.103,0.351349473,1.0
-584,1.0,0.2403,0.224414408,1.0
-585,1.0,0.3815,0.338782132,1.0
-586,1.0,0.4815,0.345988899,1.0
-587,1.0,0.5593,0.291045278,1.0
-588,1.0,0.6001,0.162717462,1.0
-589,1.0,0.6257,0.131063849,1.0
-590,1.0,0.6342,0.095035844,1.0
-591,1.0,0.5798,0.040348653,1.0
-592,1.0,0.4757,0.057491764,1.0
-593,1.0,0.3352,0.053749915,1.0
-594,1.0,0.1595,0.070691973,1.0
-595,1.0,0.0851,0.123805001,1.0
-596,1.0,0.1883,0.308470607,1.0
-597,1.0,0.0,0.423288703,1.0
-598,1.0,0.0,0.260216504,1.0
-599,1.0,0.0,0.204875395,1.0
-600,1.0,0.0,0.297252923,1.0
-601,1.0,0.0,0.248301715,1.0
-602,1.0,0.0,0.112112507,1.0
-603,1.0,0.0,0.057916366,1.0
-604,1.0,0.0,0.135247335,1.0
-605,1.0,0.0,0.249359459,1.0
-606,1.0,0.187,0.426526546,1.0
-607,1.0,0.093,0.314102888,1.0
-608,1.0,0.2452,0.128488302,1.0
-609,1.0,0.4187,0.080791995,1.0
-610,1.0,0.5509,0.110714242,1.0
-611,1.0,0.6487,0.115921974,1.0
-612,1.0,0.6968,0.158042431,1.0
-613,1.0,0.693,0.18366994,1.0
-614,1.0,0.6863,0.220246598,1.0
-615,1.0,0.6064,0.221653923,1.0
-616,1.0,0.4918,0.183514729,1.0
-617,1.0,0.343,0.259554565,1.0
-618,1.0,0.1604,0.260095179,1.0
-619,1.0,0.087,0.304119915,1.0
-620,1.0,0.2318,0.510694981,1.0
-621,1.0,0.0,0.482686579,1.0
-622,1.0,0.0,0.699062824,1.0
-623,1.0,0.0,0.673384309,1.0
-624,1.0,0.0,0.432914585,1.0
-625,1.0,0.0,0.323145747,1.0
-626,1.0,0.0,0.319088399,1.0
-627,1.0,0.0,0.260254115,1.0
-628,1.0,0.0,0.181786716,1.0
-629,1.0,0.0,0.144087076,1.0
-630,1.0,0.1887,0.191920087,1.0
-631,1.0,0.0929,0.166908354,1.0
-632,1.0,0.2427,0.037063673,1.0
-633,1.0,0.4116,0.079695985,1.0
-634,1.0,0.5369,0.087955154,1.0
-635,1.0,0.6279,0.102017671,1.0
-636,1.0,0.6575,0.115555152,1.0
-637,1.0,0.6482,0.187957913,1.0
-638,1.0,0.6391,0.364956856,1.0
-639,1.0,0.5776,0.37996769,1.0
-640,1.0,0.4757,0.59902066,1.0
-641,1.0,0.3383,0.630329251,1.0
-642,1.0,0.1684,0.65753907,1.0
-643,1.0,0.0868,0.771859109,1.0
-644,1.0,0.0487,0.490005106,1.0
-645,1.0,0.0,0.365391672,1.0
-646,1.0,0.0,0.340303034,1.0
-647,1.0,0.0,0.094722599,1.0
-648,1.0,0.0,0.015825296,1.0
-649,1.0,0.0,0.002421153,1.0
-650,1.0,0.0,0.000794847,1.0
-651,1.0,0.0,0.000428479,1.0
-652,1.0,0.0,0.01052763,1.0
-653,1.0,0.0,0.016187765,1.0
-654,1.0,0.1238,0.011523427,1.0
-655,1.0,0.1126,0.006976931,1.0
-656,1.0,0.2482,0.00335009,1.0
-657,1.0,0.4064,0.028564842,1.0
-658,1.0,0.5351,0.051422022,1.0
-659,1.0,0.6317,0.043019362,1.0
-660,1.0,0.6694,0.027543584,1.0
-661,1.0,0.6718,0.090025589,1.0
-662,1.0,0.6624,0.076414011,1.0
-663,1.0,0.5849,0.14478156,1.0
-664,1.0,0.4741,0.309692383,1.0
-665,1.0,0.3354,0.401429474,1.0
-666,1.0,0.1691,0.437628329,1.0
-667,1.0,0.0894,0.69906354,1.0
-668,1.0,0.1753,0.482573152,1.0
-669,1.0,0.0,0.583878756,1.0
-670,1.0,0.0,0.58348006,1.0
-671,1.0,0.0,0.304607511,1.0
-672,1.0,0.0,0.203610167,1.0
-673,1.0,0.0,0.649910092,1.0
-674,1.0,0.0,0.449806392,1.0
-675,1.0,0.0,0.403682619,1.0
-676,1.0,0.0,0.713473082,1.0
-677,1.0,0.0,0.758000851,1.0
-678,1.0,0.1589,0.70315212,1.0
-679,1.0,0.0943,0.321126133,1.0
-680,1.0,0.2225,0.077181838,1.0
-681,1.0,0.3699,0.004887635,1.0
-682,1.0,0.5086,0.108316578,1.0
-683,1.0,0.5908,0.270827264,1.0
-684,1.0,0.6336,0.323221415,1.0
-685,1.0,0.6495,0.238416597,1.0
-686,1.0,0.6516,0.232966736,1.0
-687,1.0,0.5842,0.21313791,1.0
-688,1.0,0.4786,0.198754862,1.0
-689,1.0,0.3446,0.29604885,1.0
-690,1.0,0.1706,0.264021724,1.0
-691,1.0,0.0752,0.33450228,1.0
-692,1.0,0.1152,0.301816016,1.0
-693,1.0,0.0,0.284016728,1.0
-694,1.0,0.0,0.640754879,1.0
-695,1.0,0.0,0.490187824,1.0
-696,1.0,0.0,0.355789304,1.0
-697,1.0,0.0,0.340449482,1.0
-698,1.0,0.0,0.333329797,1.0
-699,1.0,0.0,0.369770527,1.0
-700,1.0,0.0,0.36360234,1.0
-701,1.0,0.0,0.31896776,1.0
-702,1.0,0.1589,0.303836137,1.0
-703,1.0,0.089,0.160167903,1.0
-704,1.0,0.2251,0.079632118,1.0
-705,1.0,0.3939,0.012164543,1.0
-706,1.0,0.5244,0.003566262,1.0
-707,1.0,0.6196,0.016549267,1.0
-708,1.0,0.6585,0.043549895,1.0
-709,1.0,0.659,0.087439194,1.0
-710,1.0,0.6504,0.119526654,1.0
-711,1.0,0.5857,0.140196681,1.0
-712,1.0,0.4782,0.188395977,1.0
-713,1.0,0.3406,0.205389231,1.0
-714,1.0,0.1721,0.2156872,1.0
-715,1.0,0.0742,0.242334917,1.0
-716,1.0,0.0396,0.282566041,1.0
-717,1.0,0.0,0.342386037,1.0
-718,1.0,0.0,0.382936895,1.0
-719,1.0,0.0,0.143793866,1.0
-720,1.0,0.0,0.109929651,1.0
-721,1.0,0.0,0.051163875,1.0
-722,1.0,0.0,0.054687485,1.0
-723,1.0,0.0,0.105050832,1.0
-724,1.0,0.0,0.182591677,1.0
-725,1.0,0.0,0.179021642,1.0
-726,1.0,0.0857,0.148925558,1.0
-727,1.0,0.0985,0.148362264,1.0
-728,1.0,0.2236,0.01434649,1.0
-729,1.0,0.3682,0.006403404,1.0
-730,1.0,0.461,0.000551855,1.0
-731,1.0,0.5657,0.002222841,1.0
-732,1.0,0.6113,0.014765747,1.0
-733,1.0,0.6112,0.025982326,1.0
-734,1.0,0.7148,0.051011458,1.0
-735,1.0,0.5522,0.095408663,1.0
-736,1.0,0.4604,0.085321628,1.0
-737,1.0,0.3336,0.07350786,1.0
-738,1.0,0.1691,0.132214531,1.0
-739,1.0,0.0764,0.137849957,1.0
-740,1.0,0.0422,0.184404567,1.0
-741,1.0,0.0,0.356327027,1.0
-742,1.0,0.0,0.603103399,1.0
-743,1.0,0.0,0.27046901,1.0
-744,1.0,0.0,0.506826282,1.0
-745,1.0,0.0,0.575612068,1.0
-746,1.0,0.0,0.548263431,1.0
-747,1.0,0.0,0.647408605,1.0
-748,1.0,0.0,0.654589415,1.0
-749,1.0,0.0,0.497003525,1.0
-750,1.0,0.1104,0.445106089,1.0
-751,1.0,0.0878,0.229878709,1.0
-752,1.0,0.2191,0.060949557,1.0
-753,1.0,0.3857,0.011994306,1.0
-754,1.0,0.5104,0.00880008,1.0
-755,1.0,0.6019,0.002130054,1.0
-756,1.0,0.6436,0.015359428,1.0
-757,1.0,0.6155,0.068614677,1.0
-758,1.0,0.7403,0.056704305,1.0
-759,1.0,0.5629,0.067317396,1.0
-760,1.0,0.4731,0.097863823,1.0
-761,1.0,0.3398,0.109962121,1.0
-762,1.0,0.1685,0.160627872,1.0
-763,1.0,0.073,0.166034579,1.0
-764,1.0,0.0515,0.201618627,1.0
-765,1.0,0.0,0.370844096,1.0
-766,1.0,0.0,0.469563782,1.0
-767,1.0,0.0,0.348116159,1.0
-768,1.0,0.0,0.448170602,1.0
-769,1.0,0.0,0.575467587,1.0
-770,1.0,0.0,0.719165981,1.0
-771,1.0,0.0,0.716450989,1.0
-772,1.0,0.0,0.552055776,1.0
-773,1.0,0.0,0.570802212,1.0
-774,1.0,0.1349,0.446002901,1.0
-775,1.0,0.087,0.263706267,1.0
-776,1.0,0.2179,0.027369423,1.0
-777,1.0,0.3662,0.011556719,1.0
-778,1.0,0.453,0.00554294,1.0
-779,1.0,0.5139,0.007458947,1.0
-780,1.0,0.5027,0.007238535,1.0
-781,1.0,0.486,0.024647465,1.0
-782,1.0,0.5046,0.079487853,1.0
-783,1.0,0.4792,0.175486401,1.0
-784,1.0,0.4084,0.276802629,1.0
-785,1.0,0.2899,0.371062219,1.0
-786,1.0,0.1532,0.394833893,1.0
-787,1.0,0.0512,0.3422243,1.0
-788,1.0,0.0079,0.21255663,1.0
-789,1.0,0.0,0.471006572,1.0
-790,1.0,0.0,0.670012355,1.0
-791,1.0,0.0,0.528434157,1.0
-792,1.0,0.0,0.271737635,1.0
-793,1.0,0.0,0.157962248,1.0
-794,1.0,0.0,0.307011753,1.0
-795,1.0,0.0,0.498054177,1.0
-796,1.0,0.0,0.58826077,1.0
-797,1.0,0.0,0.604618669,1.0
-798,1.0,0.0009,0.732898831,1.0
-799,1.0,0.0476,0.799993157,1.0
-800,1.0,0.1894,0.313152343,1.0
-801,1.0,0.3091,0.391952872,1.0
-802,1.0,0.3908,0.167126656,1.0
-803,1.0,0.4513,0.157932818,1.0
-804,1.0,0.4954,0.086081825,1.0
-805,1.0,0.5444,0.061497808,1.0
-806,1.0,0.5906,0.080503285,1.0
-807,1.0,0.5663,0.12262772,1.0
-808,1.0,0.463,0.05908297,1.0
-809,1.0,0.3344,0.060615432,1.0
-810,1.0,0.1675,0.10179241,1.0
-811,1.0,0.0696,0.106257804,1.0
-812,1.0,0.0264,0.158995539,1.0
-813,1.0,0.0,0.193694279,1.0
-814,1.0,0.0,0.336901158,1.0
-815,1.0,0.0,0.417851448,1.0
-816,1.0,0.0,0.382728875,1.0
-817,1.0,0.0,0.311964035,1.0
-818,1.0,0.0,0.372542143,1.0
-819,1.0,0.0,0.345125735,1.0
-820,1.0,0.0,0.174158067,1.0
-821,1.0,0.0,0.133626163,1.0
-822,1.0,0.1152,0.175986752,1.0
-823,1.0,0.0873,0.270207316,1.0
-824,1.0,0.2188,0.067989402,1.0
-825,1.0,0.361,0.002678263,1.0
-826,1.0,0.4632,0.002921102,1.0
-827,1.0,0.5972,0.005768502,1.0
-828,1.0,0.464,0.025790602,1.0
-829,1.0,0.4484,0.083233826,1.0
-830,1.0,0.4266,0.146679327,1.0
-831,1.0,0.4012,0.264722854,1.0
-832,1.0,0.3295,0.271960229,1.0
-833,1.0,0.2302,0.200801462,1.0
-834,1.0,0.1164,0.183507621,1.0
-835,1.0,0.0125,0.10289672,1.0
-836,1.0,0.0,0.330625206,1.0
-837,1.0,0.0,0.304564148,1.0
-838,1.0,0.0,0.149596244,1.0
-839,1.0,0.0,0.086167753,1.0
-840,1.0,0.0,0.040918395,1.0
-841,1.0,0.0,0.066019118,1.0
-842,1.0,0.0,0.198731586,1.0
-843,1.0,0.0,0.22228682,1.0
-844,1.0,0.0,0.269020945,1.0
-845,1.0,0.0,0.338626444,1.0
-846,1.0,0.0316,0.329733253,1.0
-847,1.0,0.0805,0.142758727,1.0
-848,1.0,0.2149,0.309967369,1.0
-849,1.0,0.3659,0.22771126,1.0
-850,1.0,0.4898,0.105750352,1.0
-851,1.0,0.5831,0.306384861,1.0
-852,1.0,0.6085,0.308015108,1.0
-853,1.0,0.5999,0.555920124,1.0
-854,1.0,0.5772,0.40271455,1.0
-855,1.0,0.5188,0.4744156,1.0
-856,1.0,0.4201,0.448099613,1.0
-857,1.0,0.3017,0.324053347,1.0
-858,1.0,0.1691,0.638685226,1.0
-859,1.0,0.0705,0.331537277,1.0
-860,1.0,0.0,0.301580161,1.0
-861,1.0,0.0,0.179259643,1.0
-862,1.0,0.0,0.331651002,1.0
-863,1.0,0.0,0.218752727,1.0
-864,1.0,0.0,0.247766033,1.0
-865,1.0,0.0,0.280310601,1.0
-866,1.0,0.0,0.603805244,1.0
-867,1.0,0.0,0.741859972,1.0
-868,1.0,0.0,0.44207269,1.0
-869,1.0,0.0,0.534612,1.0
-870,1.0,0.0259,0.587511122,1.0
-871,1.0,0.096,0.48241505,1.0
-872,1.0,0.2133,0.226682097,1.0
-873,1.0,0.3624,0.376575917,1.0
-874,1.0,0.4795,0.272142261,1.0
-875,1.0,0.5633,0.132447034,1.0
-876,1.0,0.5708,0.091180928,1.0
-877,1.0,0.534,0.420845181,1.0
-878,1.0,0.5641,0.543866694,1.0
-879,1.0,0.5537,0.943579316,1.0
-880,1.0,0.457,0.83001256,1.0
-881,1.0,0.3439,0.698711514,1.0
-882,1.0,0.1642,0.536995411,1.0
-883,1.0,0.0638,0.770702124,1.0
-884,1.0,0.0,0.569594324,1.0
-885,1.0,0.0,0.668922722,1.0
-886,1.0,0.0,0.759383678,1.0
-887,1.0,0.0,0.672967851,1.0
-888,1.0,0.0,0.861851215,1.0
-889,1.0,0.0,0.904103041,1.0
-890,1.0,0.0,0.948453426,1.0
-891,1.0,0.0,0.924273491,1.0
-892,1.0,0.0,0.598329663,1.0
-893,1.0,0.0,0.679739118,1.0
-894,1.0,0.0054,0.726229846,1.0
-895,1.0,0.0826,0.374634266,1.0
-896,1.0,0.2036,0.286880225,1.0
-897,1.0,0.3215,0.330193251,1.0
-898,1.0,0.4199,0.128418282,1.0
-899,1.0,0.5034,0.290965378,1.0
-900,1.0,0.5322,0.178795844,1.0
-901,1.0,0.5403,0.330005288,1.0
-902,1.0,0.4716,0.362643749,1.0
-903,1.0,0.3179,0.640228391,1.0
-904,1.0,0.1481,0.531164765,1.0
-905,1.0,0.1209,0.329949379,1.0
-906,1.0,0.1182,0.386095732,1.0
-907,1.0,0.0209,0.423034161,1.0
-908,1.0,0.0,0.450478375,1.0
-909,1.0,0.0,0.57635653,1.0
-910,1.0,0.0,0.720451176,1.0
-911,1.0,0.0,0.523391306,1.0
-912,1.0,0.0,0.655831814,1.0
-913,1.0,0.0,0.588717222,1.0
-914,1.0,0.0,0.227098763,1.0
-915,1.0,0.0,0.17481938,1.0
-916,1.0,0.0,0.272776425,1.0
-917,1.0,0.0,0.168066531,1.0
-918,1.0,0.0124,0.131873012,1.0
-919,1.0,0.0858,0.11483182,1.0
-920,1.0,0.1993,0.039083671,1.0
-921,1.0,0.3012,0.015605348,1.0
-922,1.0,0.4181,0.005083221,1.0
-923,1.0,0.5171,0.026523871,1.0
-924,1.0,0.5313,0.037933312,1.0
-925,1.0,0.5773,0.07878951,1.0
-926,1.0,0.5196,0.151713207,1.0
-927,1.0,0.4946,0.159514621,1.0
-928,1.0,0.4443,0.166231588,1.0
-929,1.0,0.3279,0.237598807,1.0
-930,1.0,0.1745,0.299556315,1.0
-931,1.0,0.071,0.470466763,1.0
-932,1.0,0.0002,0.258484989,1.0
-933,1.0,0.0,0.510530412,1.0
-934,1.0,0.0,0.002039773,1.0
-935,1.0,0.0,0.227039397,1.0
-936,1.0,0.0,0.21608673,1.0
-937,1.0,0.0,0.400255084,1.0
-938,1.0,0.0,0.521532774,1.0
-939,1.0,0.0,0.458882213,1.0
-940,1.0,0.0,0.451008141,1.0
-941,1.0,0.0,0.491534829,1.0
-942,1.0,0.0042,0.467617095,1.0
-943,1.0,0.0398,0.100013167,1.0
-944,1.0,0.1349,0.025949452,1.0
-945,1.0,0.246,0.009271344,1.0
-946,1.0,0.3214,0.00585303,1.0
-947,1.0,0.3781,0.008102837,1.0
-948,1.0,0.4205,0.011761335,1.0
-949,1.0,0.4431,0.016859254,1.0
-950,1.0,0.4225,0.014383033,1.0
-951,1.0,0.4012,0.013123969,1.0
-952,1.0,0.3611,0.024976533,1.0
-953,1.0,0.2682,0.04874368,1.0
-954,1.0,0.1522,0.067713812,1.0
-955,1.0,0.0493,0.00194676,1.0
-956,1.0,0.0035,0.243894607,1.0
-957,1.0,0.0,0.43423447,1.0
-958,1.0,0.0,0.269676387,1.0
-959,1.0,0.0,0.308281243,1.0
-960,1.0,0.0,0.154390037,1.0
-961,1.0,0.0,0.017501773,1.0
-962,1.0,0.0,0.015170611,1.0
-963,1.0,0.0,0.023492908,1.0
-964,1.0,0.0,0.051520996,1.0
-965,1.0,0.0,0.223330855,1.0
-966,1.0,0.0958,0.241920054,1.0
-967,1.0,0.085,0.171876311,1.0
-968,1.0,0.2209,0.001826935,1.0
-969,1.0,0.3936,0.013653222,1.0
-970,1.0,0.5269,0.025165366,1.0
-971,1.0,0.6269,0.030590979,1.0
-972,1.0,0.6626,0.034232326,1.0
-973,1.0,0.6526,0.04123871,1.0
-974,1.0,0.6325,0.053907212,1.0
-975,1.0,0.5865,0.053079225,1.0
-976,1.0,0.4871,0.074169755,1.0
-977,1.0,0.35,0.094135061,1.0
-978,1.0,0.1748,0.228436068,1.0
-979,1.0,0.0721,0.482882708,1.0
-980,1.0,0.0038,0.473664314,1.0
-981,1.0,0.0,0.850350022,1.0
-982,1.0,0.0,0.730587542,1.0
-983,1.0,0.0,0.574664116,1.0
-984,1.0,0.0,0.486055911,1.0
-985,1.0,0.0,0.493424475,1.0
-986,1.0,0.0,0.554639995,1.0
-987,1.0,0.0,0.022347625,1.0
-988,1.0,0.0,0.018881368,1.0
-989,1.0,0.0,0.01442062,1.0
-990,1.0,0.1493,0.019700399,1.0
-991,1.0,0.0807,0.016209207,1.0
-992,1.0,0.2201,0.100405432,1.0
-993,1.0,0.3898,0.012201681,1.0
-994,1.0,0.5143,0.00949485,1.0
-995,1.0,0.6101,0.002262434,1.0
-996,1.0,0.6395,0.014513246,1.0
-997,1.0,0.6368,0.067400068,1.0
-998,1.0,0.6288,0.1390104,1.0
-999,1.0,0.5833,0.269864947,1.0
-1000,1.0,0.478,0.310260683,1.0
-1001,1.0,0.345,0.486755341,1.0
-1002,1.0,0.1708,0.549155653,1.0
-1003,1.0,0.0667,0.631044269,1.0
-1004,1.0,0.0,0.414786339,1.0
-1005,1.0,0.0,0.727302015,1.0
-1006,1.0,0.0,0.83818835,1.0
-1007,1.0,0.0,0.794625223,1.0
-1008,1.0,0.0,0.820741951,1.0
-1009,1.0,0.0,0.112770528,1.0
-1010,1.0,0.0,0.127563566,1.0
-1011,1.0,0.0,0.127742693,1.0
-1012,1.0,0.0,0.115741193,1.0
-1013,1.0,0.0,0.12100856,1.0
-1014,1.0,0.0,0.142601222,1.0
-1015,1.0,0.0324,0.037960991,1.0
-1016,1.0,0.2119,0.010562889,1.0
-1017,1.0,0.3819,0.000402101,1.0
-1018,1.0,0.5294,4.3e-5,1.0
-1019,1.0,0.644,0.013847327,1.0
-1020,1.0,0.6617,0.030313909,1.0
-1021,1.0,0.6666,0.059845984,1.0
-1022,1.0,0.6568,0.042466756,1.0
-1023,1.0,0.6067,0.073799953,1.0
-1024,1.0,0.4722,0.201722533,1.0
-1025,1.0,0.3154,0.280255526,1.0
-1026,1.0,0.1193,0.18547684,1.0
-1027,1.0,0.0,0.313706756,1.0
-1028,1.0,0.0,0.54752171,1.0
-1029,1.0,0.0,0.501457274,1.0
-1030,1.0,0.0,0.604767323,1.0
-1031,1.0,0.0,0.34087944,1.0
-1032,1.0,0.0,0.376720399,1.0
-1033,1.0,0.0,0.246397004,1.0
-1034,1.0,0.0,0.265516013,1.0
-1035,1.0,0.0,0.18792209,1.0
-1036,1.0,0.0,0.089813769,1.0
-1037,1.0,0.0,0.083990909,1.0
-1038,1.0,0.0,0.093219496,1.0
-1039,1.0,0.0016,0.084193863,1.0
-1040,1.0,0.1026,0.157426342,1.0
-1041,1.0,0.2383,0.130923212,1.0
-1042,1.0,0.2923,0.070415758,1.0
-1043,1.0,0.4348,0.07147561,1.0
-1044,1.0,0.3321,0.050418347,1.0
-1045,1.0,0.3457,0.098826654,1.0
-1046,1.0,0.3389,0.104112111,1.0
-1047,1.0,0.3172,0.116064861,1.0
-1048,1.0,0.2741,0.111808516,1.0
-1049,1.0,0.1741,0.087612838,1.0
-1050,1.0,0.0341,0.089089029,1.0
-1051,1.0,0.0,0.043190643,1.0
-1052,1.0,0.0,0.107340373,1.0
-1053,1.0,0.0,0.092785001,1.0
-1054,1.0,0.0,0.269629419,1.0
-1055,1.0,0.0,0.191558853,1.0
-1056,1.0,0.0,0.379741073,1.0
-1057,1.0,0.0,0.341198504,1.0
-1058,1.0,0.0,0.581279874,1.0
-1059,1.0,0.0,0.764591932,1.0
-1060,1.0,0.0,0.839496732,1.0
-1061,1.0,0.0,0.812366962,1.0
-1062,1.0,0.0,0.784965754,1.0
-1063,1.0,0.0,0.827160358,1.0
-1064,1.0,0.0732,0.64048624,1.0
-1065,1.0,0.1679,0.603782058,1.0
-1066,1.0,0.2066,0.562990785,1.0
-1067,1.0,0.2384,0.521394193,1.0
-1068,1.0,0.2465,0.483358741,1.0
-1069,1.0,0.3014,0.449821472,1.0
-1070,1.0,0.3405,0.420411766,1.0
-1071,1.0,0.3923,0.387461692,1.0
-1072,1.0,0.3101,0.173068702,1.0
-1073,1.0,0.1691,0.364450216,1.0
-1074,1.0,0.0711,0.260875046,1.0
-1075,1.0,0.0,0.076787934,1.0
-1076,1.0,0.0,0.058381964,1.0
-1077,1.0,0.0,0.163365379,1.0
-1078,1.0,0.0,0.141090617,1.0
-1079,1.0,0.0,0.099957868,1.0
-1080,1.0,0.0,0.108803034,1.0
-1081,1.0,0.0,0.068033814,1.0
-1082,1.0,0.0,0.043917805,1.0
-1083,1.0,0.0,0.033741403,1.0
-1084,1.0,0.0,0.023660947,1.0
-1085,1.0,0.0,0.009655043,1.0
-1086,1.0,0.0,0.001499964,1.0
-1087,1.0,0.0291,0.001125871,1.0
-1088,1.0,0.1833,0.000267134,1.0
-1089,1.0,0.3117,0.0,1.0
-1090,1.0,0.4065,0.0,1.0
-1091,1.0,0.4223,0.011412846,1.0
-1092,1.0,0.4042,0.018905625,1.0
-1093,1.0,0.4151,0.001206116,1.0
-1094,1.0,0.5723,0.026956849,1.0
-1095,1.0,0.42,0.036920428,1.0
-1096,1.0,0.3031,0.091289252,1.0
-1097,1.0,0.208,0.115092494,1.0
-1098,1.0,0.0589,0.108542867,1.0
-1099,1.0,0.0,0.195198834,1.0
-1100,1.0,0.0,0.572508037,1.0
-1101,1.0,0.0,0.410472155,1.0
-1102,1.0,0.0,0.237406924,1.0
-1103,1.0,0.0,0.281553328,1.0
-1104,1.0,0.0,0.24057211,1.0
-1105,1.0,0.0,0.222158968,1.0
-1106,1.0,0.0,0.243658856,1.0
-1107,1.0,0.0,0.14111793,1.0
-1108,1.0,0.0,0.12229757,1.0
-1109,1.0,0.0,0.181746125,1.0
-1110,1.0,0.0,0.254358828,1.0
-1111,1.0,0.0156,0.316375136,1.0
-1112,1.0,0.1777,0.185396001,1.0
-1113,1.0,0.3414,0.07632909,1.0
-1114,1.0,0.4545,0.051767118,1.0
-1115,1.0,0.5332,0.005782535,1.0
-1116,1.0,0.5542,0.028102718,1.0
-1117,1.0,0.5877,0.069365047,1.0
-1118,1.0,0.5931,0.055321064,1.0
-1119,1.0,0.5437,0.065342978,1.0
-1120,1.0,0.4321,0.070762597,1.0
-1121,1.0,0.2742,0.128823817,1.0
-1122,1.0,0.0898,0.059045829,1.0
-1123,1.0,0.0,0.070818335,1.0
-1124,1.0,0.0,0.065280117,1.0
-1125,1.0,0.0,0.089254081,1.0
-1126,1.0,0.0,0.148083776,1.0
-1127,1.0,0.0,0.470425606,1.0
-1128,1.0,0.0,0.330623746,1.0
-1129,1.0,0.0,0.452344567,1.0
-1130,1.0,0.0,0.538184106,1.0
-1131,1.0,0.0,0.722652555,1.0
-1132,1.0,0.0,0.809025586,1.0
-1133,1.0,0.0,0.664622486,1.0
-1134,1.0,0.0,0.407773674,1.0
-1135,1.0,0.0115,0.670234025,1.0
-1136,1.0,0.1767,0.63829422,1.0
-1137,1.0,0.3089,0.842155039,1.0
-1138,1.0,0.4449,0.878442109,1.0
-1139,1.0,0.5362,0.976355612,1.0
-1140,1.0,0.57,0.998525858,1.0
-1141,1.0,0.5135,0.999802828,1.0
-1142,1.0,0.2195,1.0,1.0
-1143,1.0,0.4304,1.0,1.0
-1144,1.0,0.3597,0.989986897,1.0
-1145,1.0,0.2144,0.976295829,1.0
-1146,1.0,0.0314,0.973495245,1.0
-1147,1.0,0.0,0.904022574,1.0
-1148,1.0,0.0,0.956218958,1.0
-1149,1.0,0.0,0.802491665,1.0
-1150,1.0,0.0,0.31516546,1.0
-1151,1.0,0.0,0.236873701,1.0
-1152,1.0,0.0,0.683410227,1.0
-1153,1.0,0.0,0.749663472,1.0
-1154,1.0,0.0,0.628035545,1.0
-1155,1.0,0.0,0.487325996,1.0
-1156,1.0,0.0,0.506313443,1.0
-1157,1.0,0.0,0.470409006,1.0
-1158,1.0,0.0,0.37792325,1.0
-1159,1.0,0.001,0.260802656,1.0
-1160,1.0,0.1336,0.21656242,1.0
-1161,1.0,0.2726,0.17032364,1.0
-1162,1.0,0.3365,0.153588682,1.0
-1163,1.0,0.3469,0.014716309,1.0
-1164,1.0,0.4095,0.02120837,1.0
-1165,1.0,0.4632,0.066586219,1.0
-1166,1.0,0.5323,0.119966805,1.0
-1167,1.0,0.518,0.157693401,1.0
-1168,1.0,0.4231,0.216235384,1.0
-1169,1.0,0.2899,0.19203116,1.0
-1170,1.0,0.1016,0.207052559,1.0
-1171,1.0,0.0,0.281388611,1.0
-1172,1.0,0.0,0.1548765,1.0
-1173,1.0,0.0,0.350902289,1.0
-1174,1.0,0.0,0.708661795,1.0
-1175,1.0,0.0,0.709602237,1.0
-1176,1.0,0.0,0.88698107,1.0
-1177,1.0,0.0,0.003015187,1.0
-1178,1.0,0.0,0.003321626,1.0
-1179,1.0,0.0,0.003486473,1.0
-1180,1.0,0.0,0.00411325,1.0
-1181,1.0,0.0,0.004167903,1.0
-1182,1.0,0.0,0.004408014,1.0
-1183,1.0,0.0,0.007003278,1.0
-1184,1.0,0.0538,0.005834897,1.0
-1185,1.0,0.2996,0.012191184,1.0
-1186,1.0,0.4629,0.02500857,1.0
-1187,1.0,0.5623,0.020196708,1.0
-1188,1.0,0.578,0.020667559,1.0
-1189,1.0,0.5428,0.023598494,1.0
-1190,1.0,0.5193,0.015980111,1.0
-1191,1.0,0.4362,0.017338948,1.0
-1192,1.0,0.2678,0.016976627,1.0
-1193,1.0,0.0319,0.018242447,1.0
-1194,1.0,0.0,0.009299411,1.0
-1195,1.0,0.0,0.006091939,1.0
-1196,1.0,0.0,0.004028497,1.0
-1197,1.0,0.0,0.004534149,1.0
-1198,1.0,0.0,0.004092111,1.0
-1199,1.0,0.0,0.003151032,1.0
-1200,1.0,0.0,0.002878197,1.0
-1201,1.0,0.0,0.002713328,1.0
-1202,1.0,0.0,0.003523973,1.0
-1203,1.0,0.0,0.003113097,1.0
-1204,1.0,0.0,0.003456233,1.0
-1205,1.0,0.0,0.006297142,1.0
-1206,1.0,0.0,0.008122765,1.0
-1207,1.0,0.0,0.00642192,1.0
-1208,1.0,0.0403,0.005181233,1.0
-1209,1.0,0.2888,0.004154712,1.0
-1210,1.0,0.4702,0.006109656,1.0
-1211,1.0,0.5589,0.012955664,1.0
-1212,1.0,0.5611,0.042543426,1.0
-1213,1.0,0.5702,0.019647809,1.0
-1214,1.0,0.546,0.019093696,1.0
-1215,1.0,0.407,0.011164882,1.0
-1216,1.0,0.2344,0.009279388,1.0
-1217,1.0,0.0007,0.00392705,1.0
-1218,1.0,0.0,0.001434172,1.0
-1219,1.0,0.0,0.001893229,1.0
-1220,1.0,0.0,0.001570631,1.0
-1221,1.0,0.0,0.002302695,1.0
-1222,1.0,0.0,0.002692709,1.0
-1223,1.0,0.0,0.002782656,1.0
-1224,1.0,0.0,0.00265222,1.0
-1225,1.0,0.0,0.001587099,1.0
-1226,1.0,0.0,0.001715459,1.0
-1227,1.0,0.0,0.001472831,1.0
-1228,1.0,0.0,0.002056728,1.0
-1229,1.0,0.0,0.00142603,1.0
-1230,1.0,0.0,0.001842535,1.0
-1231,1.0,0.0,0.001907444,1.0
-1232,1.0,0.0005,0.002635133,1.0
-1233,1.0,0.2107,0.004790055,1.0
-1234,1.0,0.3555,0.018065531,1.0
-1235,1.0,0.4531,0.059975713,1.0
-1236,1.0,0.5151,0.083389074,1.0
-1237,1.0,0.49,0.056559034,1.0
-1238,1.0,0.5189,0.049590863,1.0
-1239,1.0,0.4458,0.022708759,1.0
-1240,1.0,0.2889,0.034571238,1.0
-1241,1.0,0.0118,0.020854954,1.0
-1242,1.0,0.0,0.007011184,1.0
-1243,1.0,0.0,0.004946731,1.0
-1244,1.0,0.0,0.003276868,1.0
-1245,1.0,0.0,0.005771072,1.0
-1246,1.0,0.0,0.005463725,1.0
-1247,1.0,0.0,0.005351789,1.0
-1248,1.0,0.0,0.003780636,1.0
-1249,1.0,0.0,0.003064808,1.0
-1250,1.0,0.0,0.002145509,1.0
-1251,1.0,0.0,0.002114863,1.0
-1252,1.0,0.0,0.001894212,1.0
-1253,1.0,0.0,0.001888793,1.0
-1254,1.0,0.0,0.002078126,1.0
-1255,1.0,0.0,0.004130088,1.0
-1256,1.0,0.0117,0.003914897,1.0
-1257,1.0,0.3135,0.003168091,1.0
-1258,1.0,0.4909,0.007118006,1.0
-1259,1.0,0.6116,0.012329093,1.0
-1260,1.0,0.643,0.010677946,1.0
-1261,1.0,0.6438,0.006985814,1.0
-1262,1.0,0.6127,0.003587814,1.0
-1263,1.0,0.4871,0.004285143,1.0
-1264,1.0,0.3058,0.001623887,1.0
-1265,1.0,0.0269,0.001953514,1.0
-1266,1.0,0.0,0.000310317,1.0
-1267,1.0,0.0,0.000149553,1.0
-1268,1.0,0.0,0.00156573,1.0
-1269,1.0,0.0,0.00236242,1.0
-1270,1.0,0.0,0.007938925,1.0
-1271,1.0,0.0,0.007568194,1.0
-1272,1.0,0.0,0.008595512,1.0
-1273,1.0,0.0,0.005553732,1.0
-1274,1.0,0.0,0.005053663,1.0
-1275,1.0,0.0,0.005790976,1.0
-1276,1.0,0.0,0.007715367,1.0
-1277,1.0,0.0,0.017328031,1.0
-1278,1.0,0.0,0.021727908,1.0
-1279,1.0,0.0,0.006312496,1.0
-1280,1.0,0.0135,0.00865133,1.0
-1281,1.0,0.3063,0.010891729,1.0
-1282,1.0,0.4727,0.012422239,1.0
-1283,1.0,0.5797,0.002513248,1.0
-1284,1.0,0.6075,0.010850104,1.0
-1285,1.0,0.6239,0.105656229,1.0
-1286,1.0,0.6046,0.206225634,1.0
-1287,1.0,0.4789,0.159292325,1.0
-1288,1.0,0.2928,0.221916378,1.0
-1289,1.0,0.0223,0.126183137,1.0
-1290,1.0,0.0,0.054287173,1.0
-1291,1.0,0.0,0.047492217,1.0
-1292,1.0,0.0,0.09676522,1.0
-1293,1.0,0.0,0.148444414,1.0
-1294,1.0,0.0,0.082408324,1.0
-1295,1.0,0.0,0.031284321,1.0
-1296,1.0,0.0,0.010165136,1.0
-1297,1.0,0.0,0.02754518,1.0
-1298,1.0,0.0,0.039423846,1.0
-1299,1.0,0.0,0.046080269,1.0
-1300,1.0,0.0,0.226370618,1.0
-1301,1.0,0.0,0.367667019,1.0
-1302,1.0,0.0,0.399259657,1.0
-1303,1.0,0.0,0.614345253,1.0
-1304,1.0,0.0,0.545873702,1.0
-1305,1.0,0.2275,0.644002199,1.0
-1306,1.0,0.4015,0.932708621,1.0
-1307,1.0,0.5501,0.967628002,1.0
-1308,1.0,0.6021,0.991971612,1.0
-1309,1.0,0.5869,0.999761581,1.0
-1310,1.0,0.5295,0.999996126,1.0
-1311,1.0,0.4425,0.977380276,1.0
-1312,1.0,0.2859,0.842993736,1.0
-1313,1.0,0.0002,0.955685079,1.0
-1314,1.0,0.0,0.95418328,1.0
-1315,1.0,0.0,0.920605302,1.0
-1316,1.0,0.0,0.766462803,1.0
-1317,1.0,0.0,0.906170487,1.0
-1318,1.0,0.0,0.717492342,1.0
-1319,1.0,0.0,0.637619197,1.0
-1320,1.0,0.0,0.694431484,1.0
-1321,1.0,0.0,0.782593727,1.0
-1322,1.0,0.0,0.868891656,1.0
-1323,1.0,0.0,0.745193899,1.0
-1324,1.0,0.0,0.792139053,1.0
-1325,1.0,0.0,0.759770453,1.0
-1326,1.0,0.0,0.80442971,1.0
-1327,1.0,0.0,0.652884722,1.0
-1328,1.0,0.0,0.476676702,1.0
-1329,1.0,0.2782,0.559049964,1.0
-1330,1.0,0.4514,0.891362727,1.0
-1331,1.0,0.4131,0.962246537,1.0
-1332,1.0,0.3239,0.954686582,1.0
-1333,1.0,0.4152,0.98331517,1.0
-1334,1.0,0.474,0.990443707,1.0
-1335,1.0,0.3742,0.949555159,1.0
-1336,1.0,0.1973,0.852229536,1.0
-1337,1.0,0.0,0.591035664,1.0
-1338,1.0,0.0,0.311103284,1.0
-1339,1.0,0.0,0.132533103,1.0
-1340,1.0,0.0,0.148641288,1.0
-1341,1.0,0.0,0.123985529,1.0
-1342,1.0,0.0,0.063541204,1.0
-1343,1.0,0.0,0.105818994,1.0
-1344,1.0,0.0,0.101820879,1.0
-1345,1.0,0.0,0.067692161,1.0
-1346,1.0,0.0,0.051151462,1.0
-1347,1.0,0.0,0.039891448,1.0
-1348,1.0,0.0,0.052784219,1.0
-1349,1.0,0.0,0.045754455,1.0
-1350,1.0,0.0,0.055088699,1.0
-1351,1.0,0.0,0.041030407,1.0
-1352,1.0,0.0,0.072356634,1.0
-1353,1.0,0.2772,0.070205957,1.0
-1354,1.0,0.4703,0.269536674,1.0
-1355,1.0,0.5945,0.318837047,1.0
-1356,1.0,0.6074,0.598548889,1.0
-1357,1.0,0.6058,0.949451566,1.0
-1358,1.0,0.573,0.956299305,1.0
-1359,1.0,0.4695,0.800921977,1.0
-1360,1.0,0.2946,0.565316677,1.0
-1361,1.0,0.0015,0.262164563,1.0
-1362,1.0,0.0,0.051925015,1.0
-1363,1.0,0.0,0.02580508,1.0
-1364,1.0,0.0,0.002814861,1.0
-1365,1.0,0.0,0.002815134,1.0
-1366,1.0,0.0,0.002380206,1.0
-1367,1.0,0.0,0.000933269,1.0
-1368,1.0,0.0,0.000350337,1.0
-1369,1.0,0.0,0.000154842,1.0
-1370,1.0,0.0,5.75e-5,1.0
-1371,1.0,0.0,7.18e-5,1.0
-1372,1.0,0.0,3.65e-5,1.0
-1373,1.0,0.0,3.0e-5,1.0
-1374,1.0,0.0,0.0,1.0
-1375,1.0,0.0,0.000772537,1.0
-1376,1.0,0.0,0.000930232,1.0
-1377,1.0,0.1029,0.000778525,1.0
-1378,1.0,0.2427,0.000131503,1.0
-1379,1.0,0.3353,0.005792293,1.0
-1380,1.0,0.3693,0.00257458,1.0
-1381,1.0,0.321,1.01e-5,1.0
-1382,1.0,0.2798,0.000134685,1.0
-1383,1.0,0.2887,0.000516413,1.0
-1384,1.0,0.1717,0.001232307,1.0
-1385,1.0,0.0,0.002655152,1.0
-1386,1.0,0.0,0.003173271,1.0
-1387,1.0,0.0,0.003878384,1.0
-1388,1.0,0.0,0.005781263,1.0
-1389,1.0,0.0,0.006259252,1.0
-1390,1.0,0.0,0.008088858,1.0
-1391,1.0,0.0,0.008165604,1.0
-1392,1.0,0.0,0.007110484,1.0
-1393,1.0,0.0,0.010341755,1.0
-1394,1.0,0.0,0.017352095,1.0
-1395,1.0,0.0,0.014267083,1.0
-1396,1.0,0.0,0.025345866,1.0
-1397,1.0,0.0,0.020062098,1.0
-1398,1.0,0.0,0.021361887,1.0
-1399,1.0,0.0,0.021811772,1.0
-1400,1.0,0.0,0.014325362,1.0
-1401,1.0,0.1982,0.015371396,1.0
-1402,1.0,0.3702,0.030313112,1.0
-1403,1.0,0.4604,0.035362862,1.0
-1404,1.0,0.5011,0.042722434,1.0
-1405,1.0,0.5173,0.040847346,1.0
-1406,1.0,0.5058,0.05511716,1.0
-1407,1.0,0.3876,0.132114276,1.0
-1408,1.0,0.1969,0.088099703,1.0
-1409,1.0,0.0,0.010155346,1.0
-1410,1.0,0.0,0.006772437,1.0
-1411,1.0,0.0,0.012552555,1.0
-1412,1.0,0.0,0.004603527,1.0
-1413,1.0,0.0,0.013114163,1.0
-1414,1.0,0.0,0.012415253,1.0
-1415,1.0,0.0,0.004863528,1.0
-1416,1.0,0.0,0.033390347,1.0
-1417,1.0,0.0,0.066503689,1.0
-1418,1.0,0.0,0.072049811,1.0
-1419,1.0,0.0,0.163911462,1.0
-1420,1.0,0.0,0.24464646,1.0
-1421,1.0,0.0,0.147138357,1.0
-1422,1.0,0.0,0.082618125,1.0
-1423,1.0,0.0,0.162055463,1.0
-1424,1.0,0.0,0.022330137,1.0
-1425,1.0,0.2668,0.012179459,1.0
-1426,1.0,0.4708,0.043081041,1.0
-1427,1.0,0.5885,0.164181739,1.0
-1428,1.0,0.5494,0.64546752,1.0
-1429,1.0,0.5991,0.517372191,1.0
-1430,1.0,0.5673,0.606333733,1.0
-1431,1.0,0.483,0.819485366,1.0
-1432,1.0,0.3013,0.764980793,1.0
-1433,1.0,0.0001,0.509450972,1.0
-1434,1.0,0.0,0.343583882,1.0
-1435,1.0,0.0,0.234340429,1.0
-1436,1.0,0.0,0.349542052,1.0
-1437,1.0,0.0,0.545352876,1.0
-1438,1.0,0.0,0.33305043,1.0
-1439,1.0,0.0,0.2963866,1.0
-1440,1.0,0.0,0.163866162,1.0
-1441,1.0,0.0,0.161449268,1.0
-1442,1.0,0.0,0.156570747,1.0
-1443,1.0,0.0,0.186094135,1.0
-1444,1.0,0.0,0.126597002,1.0
-1445,1.0,0.0,0.118293867,1.0
-1446,1.0,0.0,0.119840138,1.0
-1447,1.0,0.0,0.114646934,1.0
-1448,1.0,0.0,0.112317093,1.0
-1449,1.0,0.1993,0.061715327,1.0
-1450,1.0,0.38,0.291378587,1.0
-1451,1.0,0.4883,0.174561754,1.0
-1452,1.0,0.5493,0.115443371,1.0
-1453,1.0,0.5521,0.087088332,1.0
-1454,1.0,0.5214,0.031298004,1.0
-1455,1.0,0.4105,0.053981099,1.0
-1456,1.0,0.2423,0.010938625,1.0
-1457,1.0,0.0,0.010312587,1.0
-1458,1.0,0.0,0.006492569,1.0
-1459,1.0,0.0,0.004183383,1.0
-1460,1.0,0.0,0.004213412,1.0
-1461,1.0,0.0,0.012388219,1.0
-1462,1.0,0.0,0.009391747,1.0
-1463,1.0,0.0,0.006458785,1.0
-1464,1.0,0.0,0.007347133,1.0
-1465,1.0,0.0,0.012042541,1.0
-1466,1.0,0.0,0.026133567,1.0
-1467,1.0,0.0,0.025451697,1.0
-1468,1.0,0.0,0.019929396,1.0
-1469,1.0,0.0,0.020905757,1.0
-1470,1.0,0.0,0.022048984,1.0
-1471,1.0,0.0,0.039332137,1.0
-1472,1.0,0.0,0.028185239,1.0
-1473,1.0,0.2168,0.009182803,1.0
-1474,1.0,0.3862,0.01188824,1.0
-1475,1.0,0.4511,0.011834171,1.0
-1476,1.0,0.4476,0.014699826,1.0
-1477,1.0,0.4533,0.008735722,1.0
-1478,1.0,0.437,0.009943328,1.0
-1479,1.0,0.4112,0.009525585,1.0
-1480,1.0,0.275,0.007624389,1.0
-1481,1.0,0.0,0.009073834,1.0
-1482,1.0,0.0,0.010131359,1.0
-1483,1.0,0.0,0.006854909,1.0
-1484,1.0,0.0,0.00542303,1.0
-1485,1.0,0.0,0.004304309,1.0
-1486,1.0,0.0,0.012992928,1.0
-1487,1.0,0.0,0.005159878,1.0
-1488,1.0,0.0,0.004437782,1.0
-1489,1.0,0.0,0.001912998,1.0
-1490,1.0,0.0,0.001433845,1.0
-1491,1.0,0.0,0.001553217,1.0
-1492,1.0,0.0,0.001317133,1.0
-1493,1.0,0.0,0.001974872,1.0
-1494,1.0,0.0,0.002760581,1.0
-1495,1.0,0.0,0.002127317,1.0
-1496,1.0,0.0,0.004472089,1.0
-1497,1.0,0.1184,0.002267267,1.0
-1498,1.0,0.2778,0.006444992,1.0
-1499,1.0,0.3585,0.005165976,1.0
-1500,1.0,0.3238,0.003947391,1.0
-1501,1.0,0.3411,0.007526078,1.0
-1502,1.0,0.3405,0.063299768,1.0
-1503,1.0,0.286,0.088127345,1.0
-1504,1.0,0.1028,0.142708987,1.0
-1505,1.0,0.0,0.079206005,1.0
-1506,1.0,0.0,0.047868177,1.0
-1507,1.0,0.0,0.13347429,1.0
-1508,1.0,0.0,0.267536581,1.0
-1509,1.0,0.0,0.362614065,1.0
-1510,1.0,0.0,0.240288094,1.0
-1511,1.0,0.0,0.39795348,1.0
-1512,1.0,0.0,0.252520144,1.0
-1513,1.0,0.0,0.652175546,1.0
-1514,1.0,0.0,0.607576847,1.0
-1515,1.0,0.0,0.509022951,1.0
-1516,1.0,0.0,0.513932645,1.0
-1517,1.0,0.0,0.587290168,1.0
-1518,1.0,0.0,0.670699835,1.0
-1519,1.0,0.0,0.633506298,1.0
-1520,1.0,0.0,0.678018808,1.0
-1521,1.0,0.0047,0.600679874,1.0
-1522,1.0,0.0927,0.707873523,1.0
-1523,1.0,0.4885,0.167826876,1.0
-1524,1.0,0.2045,0.432274759,1.0
-1525,1.0,0.2195,0.26243493,1.0
-1526,1.0,0.2344,0.250340939,1.0
-1527,1.0,0.1627,0.300726056,1.0
-1528,1.0,0.0863,0.23537235,1.0
-1529,1.0,0.0,0.359010726,1.0
-1530,1.0,0.0,0.473020971,1.0
-1531,1.0,0.0,0.536124468,1.0
-1532,1.0,0.0,0.467102528,1.0
-1533,1.0,0.0,0.434245884,1.0
-1534,1.0,0.0,0.602748215,1.0
-1535,1.0,0.0,0.737487614,1.0
-1536,1.0,0.0,0.627746999,1.0
-1537,1.0,0.0,0.704994321,1.0
-1538,1.0,0.0,0.742482722,1.0
-1539,1.0,0.0,0.798445582,1.0
-1540,1.0,0.0,0.771998465,1.0
-1541,1.0,0.0,0.844092667,1.0
-1542,1.0,0.0,0.877855182,1.0
-1543,1.0,0.0,0.907921374,1.0
-1544,1.0,0.0,0.75530833,1.0
-1545,1.0,0.0207,0.679733753,1.0
-1546,1.0,0.0515,0.795437038,1.0
-1547,1.0,0.1372,0.542975843,1.0
-1548,1.0,0.234,0.459600329,1.0
-1549,1.0,0.3238,0.379464597,1.0
-1550,1.0,0.3697,0.278531075,1.0
-1551,1.0,0.2723,0.211159497,1.0
-1552,1.0,0.1336,0.166851491,1.0
-1553,1.0,0.0,0.089108914,1.0
-1554,1.0,0.0,0.028005775,1.0
-1555,1.0,0.0,0.107364222,1.0
-1556,1.0,0.0,0.004984548,1.0
-1557,1.0,0.0,0.28209883,1.0
-1558,1.0,0.0,0.339636445,1.0
-1559,1.0,0.0,0.584960341,1.0
-1560,1.0,0.0,0.67977488,1.0
-1561,1.0,0.0,0.892891347,1.0
-1562,1.0,0.0,0.97081393,1.0
-1563,1.0,0.0,0.985804617,1.0
-1564,1.0,0.0,0.99586159,1.0
-1565,1.0,0.0,0.993462682,1.0
-1566,1.0,0.0,0.977853596,1.0
-1567,1.0,0.0,0.947636127,1.0
-1568,1.0,0.0,0.995143771,1.0
-1569,1.0,0.131,0.999810219,1.0
-1570,1.0,0.3268,0.995991707,1.0
-1571,1.0,0.4726,0.960734606,1.0
-1572,1.0,0.4975,1.0,1.0
-1573,1.0,0.466,1.0,1.0
-1574,1.0,0.4577,1.0,1.0
-1575,1.0,0.3858,1.0,1.0
-1576,1.0,0.2499,0.995491505,1.0
-1577,1.0,0.0011,0.985206902,1.0
-1578,1.0,0.0,0.970989048,1.0
-1579,1.0,0.0,0.96781987,1.0
-1580,1.0,0.0,0.5111323,1.0
-1581,1.0,0.0,0.896936178,1.0
-1582,1.0,0.0,0.814998865,1.0
-1583,1.0,0.0,0.872318089,1.0
-1584,1.0,0.0,0.462953538,1.0
-1585,1.0,0.0,0.527146637,1.0
-1586,1.0,0.0,0.757764935,1.0
-1587,1.0,0.0,0.567083001,1.0
-1588,1.0,0.0,0.548021317,1.0
-1589,1.0,0.0,0.472049862,1.0
-1590,1.0,0.0,0.432149023,1.0
-1591,1.0,0.0,0.243152782,1.0
-1592,1.0,0.0,0.279185683,1.0
-1593,1.0,0.2102,0.002006878,1.0
-1594,1.0,0.4132,0.0038099,1.0
-1595,1.0,0.5376,0.019770127,1.0
-1596,1.0,0.5974,0.004754419,1.0
-1597,1.0,0.5731,0.013493313,1.0
-1598,1.0,0.4995,0.003548235,1.0
-1599,1.0,0.3932,0.004805032,1.0
-1600,1.0,0.1858,0.21858412,1.0
-1601,1.0,0.0,0.087920852,1.0
-1602,1.0,0.0,0.270809382,1.0
-1603,1.0,0.0,0.328021318,1.0
-1604,1.0,0.0,0.692504168,1.0
-1605,1.0,0.0,0.416040748,1.0
-1606,1.0,0.0,0.208247662,1.0
-1607,1.0,0.0,0.405552566,1.0
-1608,1.0,0.0,0.55149585,1.0
-1609,1.0,0.0,0.558046341,1.0
-1610,1.0,0.0,0.663423538,1.0
-1611,1.0,0.0,0.744266987,1.0
-1612,1.0,0.0,0.872998118,1.0
-1613,1.0,0.0,0.977706313,1.0
-1614,1.0,0.0,0.994201779,1.0
-1615,1.0,0.0,0.997894764,1.0
-1616,1.0,0.0,1.0,1.0
-1617,1.0,0.0,1.0,1.0
-1618,1.0,0.0446,1.0,1.0
-1619,1.0,0.0583,1.0,1.0
-1620,1.0,0.0588,1.0,1.0
-1621,1.0,0.0315,1.0,1.0
-1622,1.0,0.0289,1.0,1.0
-1623,1.0,0.1648,1.0,1.0
-1624,1.0,0.285,0.976665854,1.0
-1625,1.0,0.0,1.0,1.0
-1626,1.0,0.0,0.996358752,1.0
-1627,1.0,0.0,0.963430047,1.0
-1628,1.0,0.0,0.893380642,1.0
-1629,1.0,0.0,0.924019694,1.0
-1630,1.0,0.0,0.382968366,1.0
-1631,1.0,0.0,0.344013304,1.0
-1632,1.0,0.0,0.529973805,1.0
-1633,1.0,0.0,0.455246657,1.0
-1634,1.0,0.0,0.412410676,1.0
-1635,1.0,0.0,0.341100961,1.0
-1636,1.0,0.0,0.594462633,1.0
-1637,1.0,0.0,0.899995565,1.0
-1638,1.0,0.0,0.887834966,1.0
-1639,1.0,0.0,0.213612288,1.0
-1640,1.0,0.0,0.156393617,1.0
-1641,1.0,0.0978,0.390376329,1.0
-1642,1.0,0.2792,0.860764444,1.0
-1643,1.0,0.4105,0.912554204,1.0
-1644,1.0,0.4492,0.993557692,1.0
-1645,1.0,0.4963,0.985165238,1.0
-1646,1.0,0.4878,0.994559348,1.0
-1647,1.0,0.4023,1.0,1.0
-1648,1.0,0.2639,1.0,1.0
-1649,1.0,0.0209,0.994617045,1.0
-1650,1.0,0.0,0.916058838,1.0
-1651,1.0,0.0,0.918590069,1.0
-1652,1.0,0.0,0.935126007,1.0
-1653,1.0,0.0,0.916931629,1.0
-1654,1.0,0.0,0.999771714,1.0
-1655,1.0,0.0,0.981743038,1.0
-1656,1.0,0.0,0.994345307,1.0
-1657,1.0,0.0,0.99299264,1.0
-1658,1.0,0.0,0.960542262,1.0
-1659,1.0,0.0,0.968004882,1.0
-1660,1.0,0.0,0.903079748,1.0
-1661,1.0,0.0,0.896434546,1.0
-1662,1.0,0.0,0.924351215,1.0
-1663,1.0,0.0,0.905198514,1.0
-1664,1.0,0.0,0.719136536,1.0
-1665,1.0,0.2274,0.810100973,1.0
-1666,1.0,0.4451,0.662436008,1.0
-1667,1.0,0.5487,0.573093116,1.0
-1668,1.0,0.5288,0.784212112,1.0
-1669,1.0,0.4508,0.656253994,1.0
-1670,1.0,0.4375,0.738131881,1.0
-1671,1.0,0.3749,0.716275752,1.0
-1672,1.0,0.2477,0.674070239,1.0
-1673,1.0,0.0342,0.498294711,1.0
-1674,1.0,0.0,0.479894966,1.0
-1675,1.0,0.0,0.75137943,1.0
-1676,1.0,0.0,0.673275113,1.0
-1677,1.0,0.0,0.800401747,1.0
-1678,1.0,0.0,0.697642565,1.0
-1679,1.0,0.0,0.887853026,1.0
-1680,1.0,0.0,0.98726517,1.0
-1681,1.0,0.0,0.933068633,1.0
-1682,1.0,0.0,0.913775325,1.0
-1683,1.0,0.0,0.867750287,1.0
-1684,1.0,0.0,0.773065388,1.0
-1685,1.0,0.0,0.791524827,1.0
-1686,1.0,0.0,0.685515881,1.0
-1687,1.0,0.0,0.574532151,1.0
-1688,1.0,0.0,0.290537715,1.0
-1689,1.0,0.2255,0.513049841,1.0
-1690,1.0,0.4422,0.628034174,1.0
-1691,1.0,0.5408,0.443078995,1.0
-1692,1.0,0.6649,0.628461123,1.0
-1693,1.0,0.6653,0.43793416,1.0
-1694,1.0,0.6232,0.330032676,1.0
-1695,1.0,0.4789,0.278229505,1.0
-1696,1.0,0.2156,0.0839184,1.0
-1697,1.0,0.0405,0.097977802,1.0
-1698,1.0,0.0,0.108629577,1.0
-1699,1.0,0.0,0.01796505,1.0
-1700,1.0,0.0,8.95e-6,1.0
-1701,1.0,0.0,0.004983742,1.0
-1702,1.0,0.0,0.004679676,1.0
-1703,1.0,0.0,0.00089812,1.0
-1704,1.0,0.0,0.019763779,1.0
-1705,1.0,0.0,0.040372539,1.0
-1706,1.0,0.0,0.068529047,1.0
-1707,1.0,0.0,0.096565038,1.0
-1708,1.0,0.0,0.087070949,1.0
-1709,1.0,0.0,0.112988412,1.0
-1710,1.0,0.0,0.174585059,1.0
-1711,1.0,0.0,0.059163339,1.0
-1712,1.0,0.0,0.034709863,1.0
-1713,1.0,0.0422,0.040657014,1.0
-1714,1.0,0.2161,0.118718781,1.0
-1715,1.0,0.3402,0.117426954,1.0
-1716,1.0,0.3622,0.223987982,1.0
-1717,1.0,0.3953,0.229410782,1.0
-1718,1.0,0.3981,0.231419921,1.0
-1719,1.0,0.3761,0.329364926,1.0
-1720,1.0,0.2498,0.598424852,1.0
-1721,1.0,0.0551,0.525669992,1.0
-1722,1.0,0.0,0.74677527,1.0
-1723,1.0,0.0,0.783808351,1.0
-1724,1.0,0.0,0.622446358,1.0
-1725,1.0,0.0,0.665902376,1.0
-1726,1.0,0.0,0.68424511,1.0
-1727,1.0,0.0,0.712479115,1.0
-1728,1.0,0.0,0.784516871,1.0
-1729,1.0,0.0,0.785761833,1.0
-1730,1.0,0.0,0.838210762,1.0
-1731,1.0,0.0,0.816936553,1.0
-1732,1.0,0.0,0.776449621,1.0
-1733,1.0,0.0,0.886461854,1.0
-1734,1.0,0.0,0.882781208,1.0
-1735,1.0,0.0,0.817645133,1.0
-1736,1.0,0.0,0.660434842,1.0
-1737,1.0,0.2042,0.551166475,1.0
-1738,1.0,0.4346,0.266779184,1.0
-1739,1.0,0.5342,0.014935655,1.0
-1740,1.0,0.4958,0.031855512,1.0
-1741,1.0,0.4244,0.044422343,1.0
-1742,1.0,0.2468,0.056455288,1.0
-1743,1.0,0.2304,0.041009031,1.0
-1744,1.0,0.0783,0.076662645,1.0
-1745,1.0,0.0,0.35796079,1.0
-1746,1.0,0.0,0.450772017,1.0
-1747,1.0,0.0,0.769484699,1.0
-1748,1.0,0.0,0.246133193,1.0
-1749,1.0,0.0,0.32558167,1.0
-1750,1.0,0.0,0.999961019,1.0
-1751,1.0,0.0,1.0,1.0
-1752,1.0,0.0,0.98455596,1.0
-1753,1.0,0.0,0.986163378,1.0
-1754,1.0,0.0,0.999144912,1.0
-1755,1.0,0.0,0.999429822,1.0
-1756,1.0,0.0,1.0,1.0
-1757,1.0,0.0,0.999661803,1.0
-1758,1.0,0.0,0.997719586,1.0
-1759,1.0,0.0,1.0,1.0
-1760,1.0,0.0,0.992131114,1.0
-1761,1.0,0.0002,0.999827743,1.0
-1762,1.0,0.0078,0.996942699,1.0
-1763,1.0,0.1472,0.997011364,1.0
-1764,1.0,0.2069,0.964366078,1.0
-1765,1.0,0.1823,0.965957105,1.0
-1766,1.0,0.1913,0.972322106,1.0
-1767,1.0,0.1432,0.997769892,1.0
-1768,1.0,0.0465,0.99833703,1.0
-1769,1.0,0.0,0.999770164,1.0
-1770,1.0,0.0,0.998433113,1.0
-1771,1.0,0.0,1.0,1.0
-1772,1.0,0.0,0.996894121,1.0
-1773,1.0,0.0,1.0,1.0
-1774,1.0,0.0,0.972249985,1.0
-1775,1.0,0.0,0.970375419,1.0
-1776,1.0,0.0,0.987811804,1.0
-1777,1.0,0.0,0.997130394,1.0
-1778,1.0,0.0,1.0,1.0
-1779,1.0,0.0,1.0,1.0
-1780,1.0,0.0,1.0,1.0
-1781,1.0,0.0,1.0,1.0
-1782,1.0,0.0,0.99516511,1.0
-1783,1.0,0.0,0.989335299,1.0
-1784,1.0,0.0,0.949101985,1.0
-1785,1.0,0.2081,0.987260342,1.0
-1786,1.0,0.4198,0.948640347,1.0
-1787,1.0,0.5566,0.994442105,1.0
-1788,1.0,0.6148,0.994989157,1.0
-1789,1.0,0.6451,0.998354673,1.0
-1790,1.0,0.6373,0.991148889,1.0
-1791,1.0,0.5305,0.954131722,1.0
-1792,1.0,0.3574,0.713351727,1.0
-1793,1.0,0.1069,0.755524755,1.0
-1794,1.0,0.0,0.880335093,1.0
-1795,1.0,0.0,0.973976433,1.0
-1796,1.0,0.0,0.847446501,1.0
-1797,1.0,0.0,0.480728656,1.0
-1798,1.0,0.0,0.509726882,1.0
-1799,1.0,0.0,0.740689456,1.0
-1800,1.0,0.0,0.735777378,1.0
-1801,1.0,0.0,0.494804651,1.0
-1802,1.0,0.0,0.668742657,1.0
-1803,1.0,0.0,0.717184782,1.0
-1804,1.0,0.0,0.650246382,1.0
-1805,1.0,0.0,0.627563059,1.0
-1806,1.0,0.0,0.58719337,1.0
-1807,1.0,0.0,0.554129124,1.0
-1808,1.0,0.0,0.170794412,1.0
-1809,1.0,0.0379,0.182356328,1.0
-1810,1.0,0.2093,0.091585658,1.0
-1811,1.0,0.3024,0.112977557,1.0
-1812,1.0,0.3479,0.115030818,1.0
-1813,1.0,0.3523,0.034837451,1.0
-1814,1.0,0.3162,0.042846963,1.0
-1815,1.0,0.2668,0.162252128,1.0
-1816,1.0,0.1084,0.308934361,1.0
-1817,1.0,0.0,0.417691261,1.0
-1818,1.0,0.0,0.647434711,1.0
-1819,1.0,0.0,0.636773109,1.0
-1820,1.0,0.0,0.524506032,1.0
-1821,1.0,0.0,0.613817453,1.0
-1822,1.0,0.0,0.655841112,1.0
-1823,1.0,0.0,0.816947818,1.0
-1824,1.0,0.0,0.898588419,1.0
-1825,1.0,0.0,0.978152633,1.0
-1826,1.0,0.0,0.980445623,1.0
-1827,1.0,0.0,0.931260109,1.0
-1828,1.0,0.0,0.920195222,1.0
-1829,1.0,0.0,0.997677803,1.0
-1830,1.0,0.0,1.0,1.0
-1831,1.0,0.0,1.0,1.0
-1832,1.0,0.0,0.841109216,1.0
-1833,1.0,0.1722,1.0,1.0
-1834,1.0,0.3829,0.999709368,1.0
-1835,1.0,0.5272,1.0,1.0
-1836,1.0,0.5885,1.0,1.0
-1837,1.0,0.569,1.0,1.0
-1838,1.0,0.5622,1.0,1.0
-1839,1.0,0.4957,1.0,1.0
-1840,1.0,0.3612,1.0,1.0
-1841,1.0,0.1212,1.0,1.0
-1842,1.0,0.0,1.0,1.0
-1843,1.0,0.0,1.0,1.0
-1844,1.0,0.0,1.0,1.0
-1845,1.0,0.0,1.0,1.0
-1846,1.0,0.0,1.0,1.0
-1847,1.0,0.0,1.0,1.0
-1848,1.0,0.0,1.0,1.0
diff --git a/test/TDR/TDR_Results_test/Period_map.csv b/test/TDR/TDR_Results_test/Period_map.csv
deleted file mode 100644
index d91b0eafb9..0000000000
--- a/test/TDR/TDR_Results_test/Period_map.csv
+++ /dev/null
@@ -1,53 +0,0 @@
-Period_Index,Rep_Period,Rep_Period_Index
-1,4,1
-2,52,11
-3,4,1
-4,4,1
-5,8,2
-6,8,2
-7,8,2
-8,8,2
-9,52,11
-10,8,2
-11,8,2
-12,8,2
-13,8,2
-14,15,3
-15,15,3
-16,15,3
-17,15,3
-18,24,4
-19,24,4
-20,24,4
-21,24,4
-22,24,4
-23,24,4
-24,24,4
-25,28,5
-26,28,5
-27,28,5
-28,28,5
-29,29,6
-30,28,5
-31,28,5
-32,28,5
-33,28,5
-34,28,5
-35,28,5
-36,36,7
-37,24,4
-38,24,4
-39,24,4
-40,24,4
-41,24,4
-42,24,4
-43,24,4
-44,15,3
-45,24,4
-46,24,4
-47,47,8
-48,48,9
-49,8,2
-50,8,2
-51,51,10
-52,52,11
diff --git a/test/ThreeZones/Capacity_reserve_margin.csv b/test/ThreeZones/Capacity_reserve_margin.csv
deleted file mode 100644
index 55077ad095..0000000000
--- a/test/ThreeZones/Capacity_reserve_margin.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-,Network_zones,CapRes_1
-MA,z1,0.156
-CT,z2,0.156
-ME,z3,0.156
diff --git a/test/ThreeZones/Energy_share_requirement.csv b/test/ThreeZones/Energy_share_requirement.csv
deleted file mode 100644
index 3d49badae7..0000000000
--- a/test/ThreeZones/Energy_share_requirement.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-,Network_zones,ESR_1,ESR_2
-MA,z1,0.259,0.348
-CT,z2,0.44,0.44
-ME,z3,0.776,0.776
diff --git a/test/ThreeZones/Generators_data.csv b/test/ThreeZones/Generators_data.csv
deleted file mode 100644
index f878193357..0000000000
--- a/test/ThreeZones/Generators_data.csv
+++ /dev/null
@@ -1,11 +0,0 @@
-Resource,Zone,THERM,MUST_RUN,STOR,FLEX,HYDRO,VRE,LDS,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Existing_Charge_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Max_Charge_Cap_MW,Min_Cap_MW,Min_Cap_MWh,Min_Charge_Cap_MW,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Fixed_OM_Cost_Charge_per_MWyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Hydro_Energy_to_Power_Ratio,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,Max_Flexible_Demand_Advance,Max_Flexible_Demand_Delay,Flexible_Demand_Energy_Eff,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MinCapTag_1,MinCapTag_2,MinCapTag_3,MGA,Resource_Type,CapRes_1,ESR_1,ESR_2,region,cluster
-MA_natural_gas_combined_cycle,1,1,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,65400,0,0,10287,0,0,3.55,0,7.43,MA_NG,250,91,2,6,6,0.64,0.64,0,0.468,0,1,1,0,0,0,0,1,0.25,0.5,0,0,0,0,0,1,natural_gas_fired_combined_cycle,0.93,0,0,MA,1
-MA_solar_pv,1,0,0,0,0,0,1,0,1,1,0,0,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.13,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,1,0,0,1,solar_photovoltaic,0.8,1,1,MA,1
-CT_natural_gas_combined_cycle,2,1,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,65400,0,0,9698,0,0,3.57,0,7.12,CT_NG,250,91,2,6,6,0.64,0.64,0,0.338,0,1,1,0,0,0,0,1,0.133332722,0.266665444,0,0,0,0,0,1,natural_gas_fired_combined_cycle,0.93,0,0,CT,1
-CT_onshore_wind,2,0,0,0,0,0,1,0,1,1,0,0,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,1,onshore_wind_turbine,0.8,1,1,CT,1
-CT_solar_pv,2,0,0,0,0,0,1,0,1,1,0,0,0,0,-1,-1,-1,0,0,0,85300,0,0,18760,0,0,0,0,9.16,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,1,solar_photovoltaic,0.8,1,1,CT,1
-ME_natural_gas_combined_cycle,3,1,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,65400,0,0,16291,0,0,4.5,0,12.62,ME_NG,250,91,2,6,6,0.64,0.64,0,0.474,0,1,1,0,0,0,0,1,0.033333333,0.066666667,0,0,0,0,0,1,natural_gas_fired_combined_cycle,0.93,0,0,ME,1
-ME_onshore_wind,3,0,0,0,0,0,1,0,1,1,0,0,0,0,-1,-1,-1,0,0,0,97200,0,0,43205,0,0,0.1,0,9.12,None,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,1,onshore_wind_turbine,0.8,1,1,ME,1
-MA_battery,1,0,0,1,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,0,0,1,0,battery_mid,0.95,0,0,MA,0
-CT_battery,2,0,0,1,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,0,0,1,0,battery_mid,0.95,0,0,CT,0
-ME_battery,3,0,0,1,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,19584,22494,0,4895,5622,0,0.15,0.15,0,None,0,0,0,0,0,1,1,0,0,0,0.92,0.92,1,10,0,0,1,0,0,0,0,0,0,1,0,battery_mid,0.95,0,0,ME,0
diff --git a/test/ThreeZones/Resources/Resource_minimum_capacity_requirement.csv b/test/ThreeZones/Resources/Resource_minimum_capacity_requirement.csv
new file mode 100644
index 0000000000..7e54bb2d91
--- /dev/null
+++ b/test/ThreeZones/Resources/Resource_minimum_capacity_requirement.csv
@@ -0,0 +1,11 @@
+Resource Min_Cap_1 Min_Cap_2 Min_Cap_3
+MA_natural_gas_combined_cycle 0 0 0
+MA_solar_pv 1 0 0
+CT_natural_gas_combined_cycle 0 0 0
+CT_onshore_wind 0 1 0
+CT_solar_pv 0 0 0
+ME_natural_gas_combined_cycle 0 0 0
+ME_onshore_wind 0 0 0
+MA_battery 0 0 1
+CT_battery 0 0 1
+ME_battery 0 0 1
\ No newline at end of file
diff --git a/test/ThreeZones/Resources/Storage.csv b/test/ThreeZones/Resources/Storage.csv
new file mode 100644
index 0000000000..bc0d999ec5
--- /dev/null
+++ b/test/ThreeZones/Resources/Storage.csv
@@ -0,0 +1,4 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Existing_Cap_MWh,Max_Cap_MW,Max_Cap_MWh,Min_Cap_MW,Min_Cap_MWh,Inv_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWyr,Fixed_OM_Cost_per_MWhyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,MinCapTag_1,MinCapTag_2,MinCapTag_3,Resource_Type,ESR_1,ESR_2,region,cluster
+MA_battery,1,1,1,0,0,0,-1,-1,0,0,19584,22494,4895,5622,0.15,0.15,0,0,0.92,0.92,1,10,0,0,1,battery_mid,0,0,MA,0
+CT_battery,2,1,1,0,0,0,-1,-1,0,0,19584,22494,4895,5622,0.15,0.15,0,0,0.92,0.92,1,10,0,0,1,battery_mid,0,0,CT,0
+ME_battery,3,1,1,0,0,0,-1,-1,0,0,19584,22494,4895,5622,0.15,0.15,0,0,0.92,0.92,1,10,0,0,1,battery_mid,0,0,ME,0
\ No newline at end of file
diff --git a/test/ThreeZones/Resources/Thermal.csv b/test/ThreeZones/Resources/Thermal.csv
new file mode 100644
index 0000000000..bc137adbf2
--- /dev/null
+++ b/test/ThreeZones/Resources/Thermal.csv
@@ -0,0 +1,4 @@
+Resource,Zone,Model,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Cap_Size,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Up_Time,Down_Time,Ramp_Up_Percentage,Ramp_Dn_Percentage,Min_Power,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,MGA,Resource_Type,region,cluster
+MA_natural_gas_combined_cycle,1,1,1,0,0,-1,0,65400,10287,3.55,7.43,MA_NG,250,91,2,6,6,0.64,0.64,0.468,0.25,0.5,0,0,1,natural_gas_fired_combined_cycle,MA,1
+CT_natural_gas_combined_cycle,2,1,1,0,0,-1,0,65400,9698,3.57,7.12,CT_NG,250,91,2,6,6,0.64,0.64,0.338,0.133332722,0.266665444,0,0,1,natural_gas_fired_combined_cycle,CT,1
+ME_natural_gas_combined_cycle,3,1,1,0,0,-1,0,65400,16291,4.5,12.62,ME_NG,250,91,2,6,6,0.64,0.64,0.474,0.033333333,0.066666667,0,0,1,natural_gas_fired_combined_cycle,ME,1
\ No newline at end of file
diff --git a/test/ThreeZones/Resources/Vre.csv b/test/ThreeZones/Resources/Vre.csv
new file mode 100644
index 0000000000..f696b5d16d
--- /dev/null
+++ b/test/ThreeZones/Resources/Vre.csv
@@ -0,0 +1,5 @@
+Resource,Zone,Num_VRE_Bins,New_Build,Can_Retire,Existing_Cap_MW,Max_Cap_MW,Min_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,MGA,Resource_Type,region,cluster
+MA_solar_pv,1,1,1,0,0,-1,0,85300,18760,0,9.13,1,solar_photovoltaic,MA,1
+CT_onshore_wind,2,1,1,0,0,-1,0,97200,43205,0.1,9.12,1,onshore_wind_turbine,CT,1
+CT_solar_pv,2,1,1,0,0,-1,0,85300,18760,0,9.16,1,solar_photovoltaic,CT,1
+ME_onshore_wind,3,1,1,0,0,-1,0,97200,43205,0.1,9.12,1,onshore_wind_turbine,ME,1
\ No newline at end of file
diff --git a/test/VREStor/Generators_data.csv b/test/VREStor/Generators_data.csv
deleted file mode 100644
index be63750d27..0000000000
--- a/test/VREStor/Generators_data.csv
+++ /dev/null
@@ -1,272 +0,0 @@
-region,Resource,technology,cluster,R_ID,Zone,Num_VRE_Bins,THERM,VRE,MUST_RUN,STOR,FLEX,HYDRO,LDS,CapRes_1,Min_Share,Max_Share,Existing_Cap_MWh,Existing_Cap_MW,Existing_Charge_Cap_MW,num_units,unmodified_existing_cap_mw,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Max_Cap_MWh,Min_Cap_MWh,Max_Charge_Cap_MW,Min_Charge_Cap_MW,Min_Share_percent,Max_Share_percent,capex_mw,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,capex_mwh,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWhyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Inv_Cost_Charge_per_MWyr,Fixed_OM_Cost_Charge_per_MWyr,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,heat_rate_mmbtu_mwh_iqr,heat_rate_mmbtu_mwh_std,Fuel,Min_Power,Self_Disch,Eff_Up,Eff_Down,Hydro_Energy_to_Power_Ratio,Min_Duration,Max_Duration,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,Max_Flexible_Demand_Delay,Max_Flexible_Demand_Advance,Flexible_Demand_Energy_Eff,CO2_Capture_Rate,CO2_Capture_Cost_per_Metric_Ton,Ramp_Up_Percentage,Ramp_Dn_Percentage,Up_Time,Down_Time,spur_miles,spur_inv_mwyr,spur_capex,offshore_spur_miles,offshore_spur_capex,tx_miles,tx_capex,interconnect_annuity,regional_cost_multiplier,cap_recovery_years,wacc_real,ids,MISO_CleanPower,NY_CleanPower,PJM_CleanPower,SERC_CleanPower,variable_CF,RETRO,Num_RETRO_Sources,Retro1_Source,Retro1_Efficiency,Retro1_Inv_Cost_per_MWyr,Retro2_Source,Retro2_Efficiency,Retro2_Inv_Cost_per_MWyr,MinCapTag_1,MinCapTag_2,MinCapTag_3,MaxCapTag_1,MaxCapTag_2,MaxCapTag_3,CapRes_2,CapRes_3,VRE_STOR
-EIC,EIC_batteries_1,Batteries,1,1,1,0,0,0,0,1,0,0,0,0.95,0,0,1424.4,712.2,0,42,712.194,0,0,16.96,0,0.0,0,0,0,0,0,0,0.0,0.0,6235,0.0,0,0,0.15,0.15,0,0,0,0.0,10.34,0.0,0.0,None,0.041,0,0.92,0.92,0,1,10,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_biomass_1,Biomass,1,2,1,0,0,0,1,0,0,0,0,0.93,0,0,0.0,1722.5,0,1351,6256.481,0,0,1.27,0,0.0,0,0,0,0,0,0,0.0,0.0,150850,0.0,0,0,7.32,0.0,0,0,172,0.0,17.03,1.056,3.066,biomass,0.308,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_conventional_hydroelectric_1,Conventional Hydroelectric,1,3,1,0,0,0,0,0,0,1,0,0.8,0,0,0.0,24200.8,0,748,24200.792,0,0,32.35,0,0.0,0,0,0,0,0,0,0.0,0.0,47048,0.0,0,0,0.0,0.0,0,0,0,0.0,10.34,0.0,0.0,None,0.273,0,1.0,1.0,1,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.344661608,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_conventional_steam_coal_1,Conventional Steam Coal,1,4,1,0,1,0,0,0,0,0,0,0.93,0,0,0.0,12806.9,0,72,12806.928,0,1,177.87,0,0.0,0,0,0,0,0,0,0.0,0.0,78258,0.0,0,0,1.88,0.0,0,0,124,16.5,13.34,2.921,4.478,east_north_central_coal,0.5,0,1.0,1.0,0,0,0,0.095,0.19,0,0,0,0,0,0.0,0,0.57,0.57,24,24,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_conventional_steam_coal_2,Conventional Steam Coal,2,5,1,0,1,0,0,0,0,0,0,0.93,0,0,0.0,109345.4,0,187,109345.445,0,1,584.74,0,0.0,0,0,0,0,0,0,0.0,0.0,64567,0.0,0,0,1.88,0.0,0,0,124,16.5,10.89,1.402,1.167,east_north_central_coal,0.5,0,1.0,1.0,0,0,0,0.095,0.19,0,0,0,0,0,0.0,0,0.57,0.57,24,24,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_hydroelectric_pumped_storage_1,Hydroelectric Pumped Storage,1,6,1,0,0,0,0,1,0,0,0,0.95,0,0,275638.0,17783.1,0,104,17783.064,0,0,170.99,0,0.0,0,0,0,0,0,0,0.0,0.0,47048,0.0,0,0,0.15,0.15,0,0,0,0.0,10.34,0.0,0.0,None,0.524,0,0.866,0.866,0,1,20,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_natural_gas_fired_combined_cycle_1,Natural Gas Fired Combined Cycle,1,7,1,0,1,0,0,0,0,0,0,0.93,0,0,0.0,27155.3,0,166,27155.276,0,1,163.59,0,0.0,0,0,0,0,0,0,0.0,0.0,16322,0.0,0,0,4.53,0.0,0,0,92,2.0,9.24,2.047,2.71,east_north_central_naturalgas,0.3,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_natural_gas_fired_combined_cycle_2,Natural Gas Fired Combined Cycle,2,8,1,0,1,0,0,0,0,0,0,0.93,0,0,0.0,169897.4,0,266,169897.392,0,1,638.71,0,0.0,0,0,0,0,0,0,0.0,0.0,11042,0.0,0,0,3.58,0.0,0,0,92,2.0,7.34,0.657,0.613,east_north_central_naturalgas,0.3,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_natural_gas_fired_combustion_turbine_1,Natural Gas Fired Combustion Turbine,1,9,1,0,1,0,0,0,0,0,0,0.93,0,0,0.0,98926.5,0,988,98926.464,0,1,100.13,0,0.0,0,0,0,0,0,0,0.0,0.0,10031,0.0,0,0,5.28,0.0,0,0,119,3.5,12.03,2.186,2.031,east_north_central_naturalgas,0.3,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_natural_gas_fired_combustion_turbine_2,Natural Gas Fired Combustion Turbine,2,10,1,0,1,0,0,0,0,0,0,0.93,0,0,0.0,10412.9,0,333,10412.91,0,1,31.27,0,0.0,0,0,0,0,0,0,0.0,0.0,13557,0.0,0,0,5.28,0.0,0,0,119,3.5,14.66,4.035,4.747,east_north_central_naturalgas,0.3,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_natural_gas_internal_combustion_engine_1,Natural Gas Internal Combustion Engine,1,11,1,0,1,0,0,0,0,0,0,0.93,0,0,0.0,2578.5,0,581,2578.478,0,1,4.44,0,0.0,0,0,0,0,0,0,0.0,0.0,21000,0.0,0,0,5.29,0.0,0,0,38,0.0,10.29,1.183,3.689,east_north_central_naturalgas,0.18,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_natural_gas_steam_turbine_1,Natural Gas Steam Turbine,1,12,1,0,1,0,0,0,0,0,0,0.93,0,0,0.0,39625.2,0,195,39625.17,0,1,203.21,0,0.0,0,0,0,0,0,0,0.0,0.0,35537,0.0,0,0,1.06,0.0,0,0,87,13.7,12.8,2.36,4.946,east_north_central_naturalgas,0.5,0,1.0,1.0,0,0,0,0.63,1.26,0,0,0,0,0,0.0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_nuclear_1,Nuclear,1,13,1,0,1,0,0,0,0,0,0,0.93,0,0,0.0,82406.6,0,80,82406.56,0,1,1030.08,0,0.0,0,0,0,0,0,0,0.0,0.0,214812,0.0,0,0,2.84,0.0,0,0,248,0.0,10.45,0.0,0.006,east_north_central_uranium,0.5,0,1.0,1.0,0,0,0,0.041666667,0.083333333,0,0,0,0,0,0.0,0,0.25,0.25,24,24,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshore_wind_turbine_1,Offshore Wind Turbine,1,14,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,29.3,0,1,29.3,0,1,29.3,0,0.0,0,0,0,0,0,0,0.0,0.0,111496,0.0,0,0,0.0,0.0,0,0,0,0.0,10.34,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_onshore_wind_turbine_1,Onshore Wind Turbine,1,15,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,47407.4,0,710,47407.41,0,1,66.77,0,0.0,0,0,0,0,0,0,0.0,0.0,43000,0.0,0,0,0.0,0.0,0,0,0,0.0,10.34,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.296887743,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_petroleum_liquids_1,Petroleum Liquids,1,16,1,0,1,0,0,0,0,0,0,0.93,0,0,0.0,23196.2,0,2328,23196.192,0,1,9.96,0,0.0,0,0,0,0,0,0,0.0,0.0,21000,0.0,0,0,7.97,0.0,0,0,38,0.0,15.5,3.607,4.446,east_north_central_distillate,0.18,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_small_hydroelectric_1,Small Hydroelectric,1,17,1,0,0,0,1,0,0,0,0,0.8,0,0,0.0,1672.2,0,1579,3633.279,0,0,1.06,0,0.0,0,0,0,0,0,0,0.0,0.0,47048,0.0,0,0,0.0,0.0,0,0,0,0.0,10.34,0.0,0.0,None,0.273,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.344661608,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_solar_photovoltaic_1,Solar Photovoltaic,1,18,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,8533.9,0,1435,8533.945,0,1,5.95,0,0.0,0,0,0,0,0,0,0.0,0.0,22623,0.0,0,0,0.0,0.0,0,0,0,0.0,10.34,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.199617603,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-TRE,TRE_batteries_1,Batteries,1,19,2,0,0,0,0,1,0,0,0,0.0,0,0,721.4,360.7,0,8,360.704,0,0,45.09,0,0.0,0,0,0,0,0,0,0.0,0.0,6235,0.0,0,0,0.15,0.15,0,0,0,0.0,10.34,0.0,0.0,None,0.001,0,0.92,0.92,0,1,10,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95,0.0,0
-TRE,TRE_biomass_1,Biomass,1,20,2,0,0,0,1,0,0,0,0,0.0,0,0,0.0,44.5,0,30,162.9,0,0,1.48,0,0.0,0,0,0,0,0,0,0.0,0.0,150850,0.0,0,0,6.51,0.0,0,0,172,0.0,15.15,0.636,1.888,biomass,0.591,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0.0,0
-TRE,TRE_conventional_hydroelectric_1,Conventional Hydroelectric,1,21,2,0,0,0,0,0,0,1,0,0.0,0,0,0.0,477.0,0,19,476.995,0,0,25.1,0,0.0,0,0,0,0,0,0,0.0,0.0,47048,0.0,0,0,0.0,0.0,0,0,0,0.0,10.34,0.0,0.0,None,0.0,0,1.0,1.0,1,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.094297837,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_conventional_steam_coal_1,Conventional Steam Coal,1,22,2,0,1,0,0,0,0,0,0,0.0,0,0,0.0,5063.6,0,7,5063.597,0,1,723.37,0,0.0,0,0,0,0,0,0,0.0,0.0,60405,0.0,0,0,1.88,0.0,0,0,124,16.5,10.33,0.655,0.422,west_south_central_coal,0.5,0,1.0,1.0,0,0,0,0.095,0.19,0,0,0,0,0,0.0,0,0.57,0.57,24,24,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0.0,0
-TRE,TRE_conventional_steam_coal_2,Conventional Steam Coal,2,23,2,0,1,0,0,0,0,0,0,0.0,0,0,0.0,3713.0,0,7,3713.003,0,1,530.43,0,0.0,0,0,0,0,0,0,0.0,0.0,68432,0.0,0,0,1.88,0.0,0,0,124,16.5,12.13,1.016,0.74,west_south_central_coal,0.5,0,1.0,1.0,0,0,0,0.095,0.19,0,0,0,0,0,0.0,0,0.57,0.57,24,24,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0.0,0
-TRE,TRE_natural_gas_fired_combined_cycle_1,Natural Gas Fired Combined Cycle,1,24,2,0,1,0,0,0,0,0,0,0.0,0,0,0.0,30139.1,0,52,30139.096,0,1,579.6,0,0.0,0,0,0,0,0,0,0.0,0.0,10912,0.0,0,0,3.59,0.0,0,0,92,2.0,7.72,0.514,0.965,west_south_central_naturalgas,0.3,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0.0,0
-TRE,TRE_natural_gas_fired_combined_cycle_2,Natural Gas Fired Combined Cycle,2,25,2,0,1,0,0,0,0,0,0,0.0,0,0,0.0,6317.6,0,20,6317.6,0,1,315.88,0,0.0,0,0,0,0,0,0,0.0,0.0,15698,0.0,0,0,4.36,0.0,0,0,92,2.0,9.8,2.241,2.318,west_south_central_naturalgas,0.3,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0.0,0
-TRE,TRE_natural_gas_fired_combustion_turbine_1,Natural Gas Fired Combustion Turbine,1,26,2,0,1,0,0,0,0,0,0,0.0,0,0,0.0,2924.0,0,36,2923.992,0,1,81.22,0,0.0,0,0,0,0,0,0,0.0,0.0,10001,0.0,0,0,5.28,0.0,0,0,119,3.5,14.08,0.577,1.146,west_south_central_naturalgas,0.3,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0.0,0
-TRE,TRE_natural_gas_fired_combustion_turbine_2,Natural Gas Fired Combustion Turbine,2,27,2,0,1,0,0,0,0,0,0,0.0,0,0,0.0,2826.9,0,56,2826.88,0,1,50.48,0,0.0,0,0,0,0,0,0,0.0,0.0,11926,0.0,0,0,5.28,0.0,0,0,119,3.5,11.11,1.398,1.008,west_south_central_naturalgas,0.3,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0.0,0
-TRE,TRE_natural_gas_internal_combustion_engine_1,Natural Gas Internal Combustion Engine,1,28,2,0,1,0,0,0,0,0,0,0.0,0,0,0.0,502.7,0,47,502.712,0,1,10.7,0,0.0,0,0,0,0,0,0,0.0,0.0,21000,0.0,0,0,4.72,0.0,0,0,38,0.0,9.18,0.648,0.328,west_south_central_naturalgas,0.18,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0.0,0
-TRE,TRE_natural_gas_steam_turbine_1,Natural Gas Steam Turbine,1,29,2,0,1,0,0,0,0,0,0,0.0,0,0,0.0,8249.5,0,35,8249.5,0,1,235.7,0,0.0,0,0,0,0,0,0,0.0,0.0,34182,0.0,0,0,1.06,0.0,0,0,87,13.7,13.24,2.888,3.381,west_south_central_naturalgas,0.5,0,1.0,1.0,0,0,0,0.63,1.26,0,0,0,0,0,0.0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0.0,0
-TRE,TRE_nuclear_1,Nuclear,1,30,2,0,1,0,0,0,0,0,0,0.0,0,0,0.0,5120.0,0,4,5120.0,0,1,1280.0,0,0.0,0,0,0,0,0,0,0.0,0.0,193275,0.0,0,0,2.84,0.0,0,0,248,0.0,10.45,0.0,0.0,west_south_central_uranium,0.5,0,1.0,1.0,0,0,0,0.041666667,0.083333333,0,0,0,0,0,0.0,0,0.25,0.25,24,24,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0.0,0
-TRE,TRE_onshore_wind_turbine_1,Onshore Wind Turbine,1,31,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,21683.1,0,133,21683.123,0,1,163.03,0,0.0,0,0,0,0,0,0,0.0,0.0,43000,0.0,0,0,0.0,0.0,0,0,0,0.0,10.34,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.32023413,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_petroleum_liquids_1,Petroleum Liquids,1,32,2,0,1,0,0,0,0,0,0,0.0,0,0,0.0,23.7,0,16,23.696,0,1,1.48,0,0.0,0,0,0,0,0,0,0.0,0.0,21000,0.0,0,0,6.38,0.0,0,0,38,0.0,12.4,0.0,4.068,west_south_central_distillate,0.18,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0.0,0
-TRE,TRE_small_hydroelectric_1,Small Hydroelectric,1,33,2,0,0,0,1,0,0,0,0,0.0,0,0,0.0,11.2,0,15,54.795,0,0,0.75,0,0.0,0,0,0,0,0,0,0.0,0.0,47048,0.0,0,0,0.0,0.0,0,0,0,0.0,10.34,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.094297837,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_solar_photovoltaic_1,Solar Photovoltaic,1,34,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,1821.5,0,28,1821.512,0,1,65.05,0,0.0,0,0,0,0,0,0,0.0,0.0,22623,0.0,0,0,0.0,0.0,0,0,0,0.0,10.34,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.223940321,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-WECC,WECC_batteries_1,Batteries,1,35,3,0,0,0,0,1,0,0,0,0.0,0,0,3611.0,1357.5,0,48,1357.488,0,0,28.28,0,0.0,0,0,0,0,0,0,0.0,0.0,6235,0.0,0,0,0.15,0.15,0,0,0,0.0,10.34,0.0,0.0,None,0.02,0,0.92,0.92,0,1,10,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.95,0
-WECC,WECC_biomass_1,Biomass,1,36,3,0,0,0,1,0,0,0,0,0.0,0,0,0.0,551.0,0,274,1535.496,0,0,2.01,0,0.0,0,0,0,0,0,0,0.0,0.0,150850,0.0,0,0,7.14,0.0,0,0,172,0.0,16.63,2.779,3.894,biomass,0.362,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
-WECC,WECC_conventional_hydroelectric_1,Conventional Hydroelectric,1,37,3,0,0,0,0,0,0,1,0,0.0,0,0,0.0,46528.0,0,640,46528.0,0,0,72.7,0,0.0,0,0,0,0,0,0,0.0,0.0,47048,0.0,0,0,0.0,0.0,0,0,0,0.0,10.34,0.0,0.0,None,0.214,0,1.0,1.0,1,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.438570496,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_conventional_steam_coal_1,Conventional Steam Coal,1,38,3,0,1,0,0,0,0,0,0,0.0,0,0,0.0,11415.2,0,23,11415.199,0,1,496.31,0,0.0,0,0,0,0,0,0,0.0,0.0,64165,0.0,0,0,1.88,0.0,0,0,124,16.5,10.63,0.447,0.29,mountain_coal,0.5,0,1.0,1.0,0,0,0,0.095,0.19,0,0,0,0,0,0.0,0,0.57,0.57,24,24,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
-WECC,WECC_conventional_steam_coal_2,Conventional Steam Coal,2,39,3,0,1,0,0,0,0,0,0,0.0,0,0,0.0,2074.5,0,16,2074.496,0,1,129.66,0,0.0,0,0,0,0,0,0,0.0,0.0,77721,0.0,0,0,1.88,0.0,0,0,124,16.5,12.2,1.109,0.961,mountain_coal,0.5,0,1.0,1.0,0,0,0,0.095,0.19,0,0,0,0,0,0.0,0,0.57,0.57,24,24,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
-WECC,WECC_geothermal_1,Geothermal,1,40,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,1752.4,0,146,2752.246,0,0,12.0,0,0.0,0,0,0,0,0,0,0.0,0.0,209101,0.0,0,0,0.0,0.0,0,0,0,0.0,10.34,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
-WECC,WECC_hydroelectric_pumped_storage_1,Hydroelectric Pumped Storage,1,41,3,0,0,0,0,1,0,0,0,0.0,0,0,70790.0,4567.1,0,45,4567.095,0,0,101.49,0,0.0,0,0,0,0,0,0,0.0,0.0,47048,0.0,0,0,0.15,0.15,0,0,0,0.0,10.34,0.0,0.0,None,0.175,0,0.866,0.866,0,1,20,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.95,0
-WECC,WECC_natural_gas_fired_combined_cycle_1,Natural Gas Fired Combined Cycle,1,42,3,0,1,0,0,0,0,0,0,0.0,0,0,0.0,37593.3,0,79,37593.335,0,1,475.86,0,0.0,0,0,0,0,0,0,0.0,0.0,10399,0.0,0,0,3.6,0.0,0,0,92,2.0,7.78,0.722,1.232,mountain_naturalgas,0.3,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
-WECC,WECC_natural_gas_fired_combined_cycle_2,Natural Gas Fired Combined Cycle,2,43,3,0,1,0,0,0,0,0,0,0.0,0,0,0.0,12502.4,0,79,12502.382,0,1,158.26,0,0.0,0,0,0,0,0,0,0.0,0.0,16492,0.0,0,0,4.55,0.0,0,0,92,2.0,8.51,2.587,2.585,mountain_naturalgas,0.3,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
-WECC,WECC_natural_gas_fired_combustion_turbine_1,Natural Gas Fired Combustion Turbine,1,44,3,0,1,0,0,0,0,0,0,0.0,0,0,0.0,15252.7,0,213,15252.717,0,1,71.61,0,0.0,0,0,0,0,0,0,0.0,0.0,10479,0.0,0,0,5.28,0.0,0,0,119,3.5,11.06,1.753,1.288,mountain_naturalgas,0.3,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
-WECC,WECC_natural_gas_fired_combustion_turbine_2,Natural Gas Fired Combustion Turbine,2,45,3,0,1,0,0,0,0,0,0,0.0,0,0,0.0,6281.6,0,225,6281.55,0,1,27.92,0,0.0,0,0,0,0,0,0,0.0,0.0,13486,0.0,0,0,5.28,0.0,0,0,119,3.5,12.78,4.552,3.282,mountain_naturalgas,0.3,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
-WECC,WECC_natural_gas_internal_combustion_engine_1,Natural Gas Internal Combustion Engine,1,46,3,0,1,0,0,0,0,0,0,0.0,0,0,0.0,1282.7,0,197,1282.667,0,1,6.51,0,0.0,0,0,0,0,0,0,0.0,0.0,21000,0.0,0,0,4.88,0.0,0,0,38,0.0,9.49,1.759,1.665,mountain_naturalgas,0.18,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
-WECC,WECC_natural_gas_steam_turbine_1,Natural Gas Steam Turbine,1,47,3,0,1,0,0,0,0,0,0,0.0,0,0,0.0,2669.5,0,28,2669.492,0,1,95.34,0,0.0,0,0,0,0,0,0,0.0,0.0,51303,0.0,0,0,1.06,0.0,0,0,87,13.7,12.4,4.616,3.843,mountain_naturalgas,0.5,0,1.0,1.0,0,0,0,0.63,1.26,0,0,0,0,0,0.0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
-WECC,WECC_nuclear_1,Nuclear,1,48,3,0,1,0,0,0,0,0,0,0.0,0,0,0.0,5175.0,0,4,5175.0,0,1,1293.75,0,0.0,0,0,0,0,0,0,0.0,0.0,211822,0.0,0,0,2.84,0.0,0,0,248,0.0,10.45,0.0,0.0,mountain_uranium,0.5,0,1.0,1.0,0,0,0,0.041666667,0.083333333,0,0,0,0,0,0.0,0,0.25,0.25,24,24,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
-WECC,WECC_onshore_wind_turbine_1,Onshore Wind Turbine,1,49,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,20644.2,0,300,20644.2,0,1,68.81,0,0.0,0,0,0,0,0,0,0.0,0.0,43000,0.0,0,0,0.0,0.0,0,0,0,0.0,10.34,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.303506275,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_petroleum_liquids_1,Petroleum Liquids,1,50,3,0,1,0,0,0,0,0,0,0.0,0,0,0.0,636.2,0,150,636.15,0,1,4.24,0,0.0,0,0,0,0,0,0,0.0,0.0,21000,0.0,0,0,7.2,0.0,0,0,38,0.0,14.0,2.319,4.938,mountain_distillate,0.18,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
-WECC,WECC_small_hydroelectric_1,Small Hydroelectric,1,51,3,0,0,0,1,0,0,0,0,0.0,0,0,0.0,1064.3,0,659,2966.818,0,0,1.62,0,0.0,0,0,0,0,0,0,0.0,0.0,47048,0.0,0,0,0.0,0.0,0,0,0,0.0,10.34,0.0,0.0,None,0.181,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.438570496,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_solar_photovoltaic_1,Solar Photovoltaic,1,52,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,14659.8,0,986,14659.848,0,1,14.87,0,0.0,0,0,0,0,0,0,0.0,0.0,22623,0.0,0,0,0.0,0.0,0,0,0,0.0,10.34,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.252030487,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_distributed_generation_1,distributed_generation,1,53,3,0,0,0,1,0,0,0,0,0.0,0,0,0.0,250535.0,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.24602032,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-EIC,EIC_distributed_generation_1,distributed_generation,1,54,1,0,0,0,1,0,0,0,0,0.8,0,0,0.0,1770000.0,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.22735468,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-TRE,TRE_distributed_generation_1,distributed_generation,1,55,2,0,0,0,1,0,0,0,0,0.0,0,0,0.0,17006.0,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.214929566,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-EIC,EIC_naturalgas_ccavgcf_moderate_0,NaturalGas_CCAvgCF_Moderate,0,56,1,0,1,0,0,0,0,0,0,0.93,0,0,0.0,0.0,0,0,0.0,1,1,500.0,0,-1.0,-1,0,0,0,0,0,880383.916,56026.0,28000,0.0,0,0,2.0,0.0,0,0,106,2.0,6.36,0.0,0.0,east_north_central_naturalgas,0.3,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0.0,1.186,30,0.033,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_naturalgas_ctavgcf_moderate_0,NaturalGas_CTAvgCF_Moderate,0,57,1,0,1,0,0,0,0,0,0,0.93,0,0,0.0,0.0,0,0,0.0,1,1,100.0,0,-1.0,-1,0,0,0,0,0,746250.365,45192.0,21000,0.0,0,0,5.0,0.0,0,0,137,3.5,9.72,0.0,0.0,east_north_central_naturalgas,0.3,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,1.128,30,0.033,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_battery_moderate_0,Battery_*_Moderate,0,58,1,0,0,0,0,1,0,0,0,0.95,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,238220.323,19978.0,5955,141861.827,11897,3546,0.15,0.15,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.92,0.92,0,1,10,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,1.03,15,0.026,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_naturalgas_ccccsavgcf_conservative_0,NaturalGas_CCCCSAvgCF_Conservative,0,59,1,0,1,0,0,0,0,0,0,0.93,0,0,0.0,0.0,0,0,0.0,1,1,500.0,0,-1.0,-1,0,0,0,0,0,2120000.0,120812.0,67000,0.0,0,0,6.0,0.0,0,0,106,0.0,7.16,0.0,0.0,east_north_central_naturalgas,0.6,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.9,27,0.64,0.64,6,6,0,0,0,0,0,0,0,0.0,1.062,30,0.033,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_advnuclear_atb_moderate_0,AdvNuclear_ATB_Moderate,0,60,1,0,1,0,0,0,0,0,0,0.93,0,0,0.0,0.0,0,0,0.0,1,1,500.0,0,-1.0,-1,0,0,0,0,0,6590000.0,45000.0,0,0.0,0,0,2.84,0.0,0,0,285,0.0,10.44,0.0,0.0,east_north_central_uranium,0.5,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.25,0.25,24,24,0,0,0,0,0,0,0,0.0,1.133,40,0.033,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_storage_metalair_advanced_0,Storage_MetalAir_Advanced,0,61,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,-1,-1.0,-1,0,-1,-1,0,0,0.0,0.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,1.03,25,0.026,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_landbasedwind_class1_moderate_0,LandbasedWind_Class1_Moderate_,0,62,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,14198.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,14197.521,1.266,30,0.03,0,0,0,0,0,0.46646145,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_landbasedwind_class1_moderate_1,LandbasedWind_Class1_Moderate_,1,63,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,17082.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,17082.104,1.266,30,0.03,0,0,0,0,0,0.506161809,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_landbasedwind_class1_moderate_2,LandbasedWind_Class1_Moderate_,2,64,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,17267.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,17266.619,1.266,30,0.03,0,0,0,0,0,0.428973228,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_landbasedwind_class1_moderate_3,LandbasedWind_Class1_Moderate_,3,65,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,25483.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,25482.635,1.266,30,0.03,0,0,0,0,0,0.470765114,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_landbasedwind_class1_moderate_4,LandbasedWind_Class1_Moderate_,4,66,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,16488.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,16487.938,1.266,30,0.03,0,0,0,0,0,0.369812936,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_landbasedwind_class1_moderate_5,LandbasedWind_Class1_Moderate_,5,67,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,25720.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,25719.606,1.266,30,0.03,0,0,0,0,0,0.434300929,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_landbasedwind_class1_moderate_6,LandbasedWind_Class1_Moderate_,6,68,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,21224.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,21223.571,1.266,30,0.03,0,0,0,0,0,0.325287282,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_landbasedwind_class1_moderate_7,LandbasedWind_Class1_Moderate_,7,69,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,32633.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,32632.921,1.266,30,0.03,0,0,0,0,0,0.405135185,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_landbasedwind_class1_moderate_8,LandbasedWind_Class1_Moderate_,8,70,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,28526.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,28526.156,1.266,30,0.03,0,0,0,0,0,0.301312625,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_landbasedwind_class1_moderate_9,LandbasedWind_Class1_Moderate_,9,71,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,244462.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,244461.674,1.266,30,0.03,0,0,0,0,0,0.479932398,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_utilitypv_class1_moderate_0,UtilityPV_Class1_Moderate_,0,72,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,8863.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,8863.386,1.017,30,0.026,0,0,0,0,0,0.26517567,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_utilitypv_class1_moderate_1,UtilityPV_Class1_Moderate_,1,73,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,4464.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,4464.156,1.017,30,0.026,0,0,0,0,0,0.246608377,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_utilitypv_class1_moderate_2,UtilityPV_Class1_Moderate_,2,74,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,14630.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,14629.711,1.017,30,0.026,0,0,0,0,0,0.262942463,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_utilitypv_class1_moderate_3,UtilityPV_Class1_Moderate_,3,75,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,10126.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,10125.593,1.017,30,0.026,0,0,0,0,0,0.247017696,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_utilitypv_class1_moderate_4,UtilityPV_Class1_Moderate_,4,76,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,16248.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,16248.012,1.017,30,0.026,0,0,0,0,0,0.250704974,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_utilitypv_class1_moderate_5,UtilityPV_Class1_Moderate_,5,77,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,22825.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,22825.004,1.017,30,0.026,0,0,0,0,0,0.268118054,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_utilitypv_class1_moderate_6,UtilityPV_Class1_Moderate_,6,78,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,24566.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,24565.988,1.017,30,0.026,0,0,0,0,0,0.258166939,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_utilitypv_class1_moderate_7,UtilityPV_Class1_Moderate_,7,79,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,21181.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,21180.786,1.017,30,0.026,0,0,0,0,0,0.245459273,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_utilitypv_class1_moderate_8,UtilityPV_Class1_Moderate_,8,80,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,32414.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,32414.229,1.017,30,0.026,0,0,0,0,0,0.247877195,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_utilitypv_class1_moderate_9,UtilityPV_Class1_Moderate_,9,81,1,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,148669.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,148668.665,1.017,30,0.026,0,0,0,0,0,0.270195067,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-EIC,EIC_offshorewind_class3_moderate_fixed_1_0,OffShoreWind_Class3_Moderate_fixed_1,0,82,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,65762.8,-1,0,0,0,0,0,1730000.0,147250.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,51161.657,1.0,30,0.036,0,0,0,0,0,0.453892708,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_1_1,OffShoreWind_Class3_Moderate_fixed_1,1,83,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,14399.2,-1,0,0,0,0,0,1730000.0,157328.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,61239.476,1.0,30,0.036,0,0,0,0,0,0.495629996,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_1_2,OffShoreWind_Class3_Moderate_fixed_1,2,84,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,34280.8,-1,0,0,0,0,0,1730000.0,153961.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,57872.369,1.0,30,0.036,0,0,0,0,0,0.451629132,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_1_3,OffShoreWind_Class3_Moderate_fixed_1,3,85,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,101840.5,-1,0,0,0,0,0,1730000.0,168852.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,72763.911,1.0,30,0.036,0,0,0,0,0,0.495775014,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_1_4,OffShoreWind_Class3_Moderate_fixed_1,4,86,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,118605.0,-1,0,0,0,0,0,1730000.0,164784.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,68695.909,1.0,30,0.036,0,0,0,0,0,0.466509044,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_1_5,OffShoreWind_Class3_Moderate_fixed_1,5,87,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,18875.6,-1,0,0,0,0,0,1730000.0,146792.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,50703.558,1.0,30,0.036,0,0,0,0,0,0.354788363,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_1_6,OffShoreWind_Class3_Moderate_fixed_1,6,88,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,79943.7,-1,0,0,0,0,0,1730000.0,144977.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,48888.699,1.0,30,0.036,0,0,0,0,0,0.291283697,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_1_7,OffShoreWind_Class3_Moderate_fixed_1,7,89,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,23454.7,-1,0,0,0,0,0,1730000.0,347411.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,251322.456,1.0,30,0.036,0,0,0,0,0,0.440021217,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_1_8,OffShoreWind_Class3_Moderate_fixed_1,8,90,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,59461.7,-1,0,0,0,0,0,1730000.0,393568.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,297479.514,1.0,30,0.036,0,0,0,0,0,0.434866041,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_1_9,OffShoreWind_Class3_Moderate_fixed_1,9,91,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,73503.9,-1,0,0,0,0,0,1730000.0,155384.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,59295.695,1.0,30,0.036,0,0,0,0,0,0.288762152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_0_0,OffShoreWind_Class3_Moderate_fixed_0,0,92,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,65762.8,-1,0,0,0,0,0,1730000.0,147250.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,51161.657,1.0,30,0.036,0,0,0,0,0,0.453892708,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_0_1,OffShoreWind_Class3_Moderate_fixed_0,1,93,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,14399.2,-1,0,0,0,0,0,1730000.0,157328.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,61239.476,1.0,30,0.036,0,0,0,0,0,0.495629996,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_0_4,OffShoreWind_Class3_Moderate_fixed_0,4,94,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,34280.8,-1,0,0,0,0,0,1730000.0,153961.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,57872.369,1.0,30,0.036,0,0,0,0,0,0.451629132,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_0_5,OffShoreWind_Class3_Moderate_fixed_0,5,95,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,101840.5,-1,0,0,0,0,0,1730000.0,168852.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,72763.911,1.0,30,0.036,0,0,0,0,0,0.495775014,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_0_10,OffShoreWind_Class3_Moderate_fixed_0,10,96,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,118605.0,-1,0,0,0,0,0,1730000.0,164784.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,68695.909,1.0,30,0.036,0,0,0,0,0,0.466509044,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_0_11,OffShoreWind_Class3_Moderate_fixed_0,11,97,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,18875.6,-1,0,0,0,0,0,1730000.0,146792.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,50703.558,1.0,30,0.036,0,0,0,0,0,0.354788363,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_0_18,OffShoreWind_Class3_Moderate_fixed_0,18,98,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,79943.7,-1,0,0,0,0,0,1730000.0,144977.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,48888.699,1.0,30,0.036,0,0,0,0,0,0.291283697,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_0_19,OffShoreWind_Class3_Moderate_fixed_0,19,99,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,23454.7,-1,0,0,0,0,0,1730000.0,347411.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,251322.456,1.0,30,0.036,0,0,0,0,0,0.440021217,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_0_28,OffShoreWind_Class3_Moderate_fixed_0,28,100,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,59461.7,-1,0,0,0,0,0,1730000.0,393568.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,297479.514,1.0,30,0.036,0,0,0,0,0,0.434866041,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class3_moderate_fixed_0_29,OffShoreWind_Class3_Moderate_fixed_0,29,101,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,73503.9,-1,0,0,0,0,0,1730000.0,155384.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,59295.695,1.0,30,0.036,0,0,0,0,0,0.288762152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_1_0,OffShoreWind_Class12_Moderate_floating_1,0,102,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,65762.8,-1,0,0,0,0,0,2770000.0,204577.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,51161.657,1.0,30,0.036,0,0,0,0,0,0.453892708,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_1_1,OffShoreWind_Class12_Moderate_floating_1,1,103,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,14399.2,-1,0,0,0,0,0,2770000.0,214655.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,61239.476,1.0,30,0.036,0,0,0,0,0,0.495629996,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_1_6,OffShoreWind_Class12_Moderate_floating_1,6,104,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,34280.8,-1,0,0,0,0,0,2770000.0,211288.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,57872.369,1.0,30,0.036,0,0,0,0,0,0.451629132,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_1_7,OffShoreWind_Class12_Moderate_floating_1,7,105,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,101840.5,-1,0,0,0,0,0,2770000.0,226179.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,72763.911,1.0,30,0.036,0,0,0,0,0,0.495775014,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_1_18,OffShoreWind_Class12_Moderate_floating_1,18,106,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,118605.0,-1,0,0,0,0,0,2770000.0,222111.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,68695.909,1.0,30,0.036,0,0,0,0,0,0.466509044,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_1_19,OffShoreWind_Class12_Moderate_floating_1,19,107,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,18875.6,-1,0,0,0,0,0,2770000.0,204119.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,50703.558,1.0,30,0.036,0,0,0,0,0,0.354788363,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_1_38,OffShoreWind_Class12_Moderate_floating_1,38,108,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,79943.7,-1,0,0,0,0,0,2770000.0,202304.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,48888.699,1.0,30,0.036,0,0,0,0,0,0.291283697,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_1_39,OffShoreWind_Class12_Moderate_floating_1,39,109,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,23454.7,-1,0,0,0,0,0,2770000.0,404738.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,251322.456,1.0,30,0.036,0,0,0,0,0,0.440021217,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_1_68,OffShoreWind_Class12_Moderate_floating_1,68,110,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,59461.7,-1,0,0,0,0,0,2770000.0,450895.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,297479.514,1.0,30,0.036,0,0,0,0,0,0.434866041,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_1_69,OffShoreWind_Class12_Moderate_floating_1,69,111,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,73503.9,-1,0,0,0,0,0,2770000.0,212711.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,59295.695,1.0,30,0.036,0,0,0,0,0,0.288762152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_0_0,OffShoreWind_Class12_Moderate_floating_0,0,112,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,65762.8,-1,0,0,0,0,0,2770000.0,204577.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,51161.657,1.0,30,0.036,0,0,0,0,0,0.453892708,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_0_1,OffShoreWind_Class12_Moderate_floating_0,1,113,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,14399.2,-1,0,0,0,0,0,2770000.0,214655.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,61239.476,1.0,30,0.036,0,0,0,0,0,0.495629996,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_0_8,OffShoreWind_Class12_Moderate_floating_0,8,114,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,34280.8,-1,0,0,0,0,0,2770000.0,211288.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,57872.369,1.0,30,0.036,0,0,0,0,0,0.451629132,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_0_9,OffShoreWind_Class12_Moderate_floating_0,9,115,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,101840.5,-1,0,0,0,0,0,2770000.0,226179.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,72763.911,1.0,30,0.036,0,0,0,0,0,0.495775014,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_0_28,OffShoreWind_Class12_Moderate_floating_0,28,116,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,118605.0,-1,0,0,0,0,0,2770000.0,222111.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,68695.909,1.0,30,0.036,0,0,0,0,0,0.466509044,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_0_29,OffShoreWind_Class12_Moderate_floating_0,29,117,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,18875.6,-1,0,0,0,0,0,2770000.0,204119.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,50703.558,1.0,30,0.036,0,0,0,0,0,0.354788363,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_0_68,OffShoreWind_Class12_Moderate_floating_0,68,118,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,79943.7,-1,0,0,0,0,0,2770000.0,202304.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,48888.699,1.0,30,0.036,0,0,0,0,0,0.291283697,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_0_69,OffShoreWind_Class12_Moderate_floating_0,69,119,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,23454.7,-1,0,0,0,0,0,2770000.0,404738.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,251322.456,1.0,30,0.036,0,0,0,0,0,0.440021217,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_0_138,OffShoreWind_Class12_Moderate_floating_0,138,120,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,59461.7,-1,0,0,0,0,0,2770000.0,450895.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,297479.514,1.0,30,0.036,0,0,0,0,0,0.434866041,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-EIC,EIC_offshorewind_class12_moderate_floating_0_139,OffShoreWind_Class12_Moderate_floating_0,139,121,1,1,0,1,0,0,0,0,0,0.8,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,73503.9,-1,0,0,0,0,0,2770000.0,212711.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,59295.695,1.0,30,0.036,0,0,0,0,0,0.288762152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-TRE,TRE_naturalgas_ccavgcf_moderate_0,NaturalGas_CCAvgCF_Moderate,0,122,2,0,1,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,500.0,0,-1.0,-1,0,0,0,0,0,880383.916,42007.0,28000,0.0,0,0,2.0,0.0,0,0,106,2.0,6.36,0.0,0.0,west_south_central_naturalgas,0.3,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0.0,0.889,30,0.033,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0.0,0
-TRE,TRE_naturalgas_ctavgcf_moderate_0,NaturalGas_CTAvgCF_Moderate,0,123,2,0,1,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,100.0,0,-1.0,-1,0,0,0,0,0,746250.365,35319.0,21000,0.0,0,0,5.0,0.0,0,0,137,3.5,9.72,0.0,0.0,west_south_central_naturalgas,0.3,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,0.882,30,0.033,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0.0,0
-TRE,TRE_battery_moderate_0,Battery_*_Moderate,0,124,2,0,0,0,0,1,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,238220.323,19389.0,5955,141861.827,11546,3546,0.15,0.15,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.92,0.92,0,1,10,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,1.0,15,0.026,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95,0.0,0
-TRE,TRE_naturalgas_ccccsavgcf_conservative_0,NaturalGas_CCCCSAvgCF_Conservative,0,125,2,0,1,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,500.0,0,-1.0,-1,0,0,0,0,0,2120000.0,106685.0,67000,0.0,0,0,6.0,0.0,0,0,106,0.0,7.16,0.0,0.0,west_south_central_naturalgas,0.6,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.9,27,0.64,0.64,6,6,0,0,0,0,0,0,0,0.0,0.938,30,0.033,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0.0,0
-TRE,TRE_advnuclear_atb_moderate_0,AdvNuclear_ATB_Moderate,0,126,2,0,1,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,500.0,0,-1.0,-1,0,0,0,0,0,6590000.0,450000.0,0,0.0,0,0,2.84,0.0,0,0,285,0.0,10.44,0.0,0.0,west_south_central_uranium,0.5,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.25,0.25,24,24,0,0,0,0,0,0,0,0.0,0.944,40,0.033,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0.0,0
-TRE,TRE_storage_metalair_advanced_0,Storage_MetalAir_Advanced,0,127,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,-1,-1.0,-1,0,-1,-1,0,0,0.0,0.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,1.0,25,0.026,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_landbasedwind_class1_moderate_0,LandbasedWind_Class1_Moderate_,0,128,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,14393.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,14392.776,0.933,30,0.03,0,0,0,0,0,0.468758494,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_landbasedwind_class1_moderate_1,LandbasedWind_Class1_Moderate_,1,129,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,20298.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,20297.809,0.933,30,0.03,0,0,0,0,0,0.50884968,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_landbasedwind_class1_moderate_2,LandbasedWind_Class1_Moderate_,2,130,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,14755.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,14755.103,0.933,30,0.03,0,0,0,0,0,0.428581536,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_landbasedwind_class1_moderate_3,LandbasedWind_Class1_Moderate_,3,131,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,23630.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,23630.35,0.933,30,0.03,0,0,0,0,0,0.463753909,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_landbasedwind_class1_moderate_4,LandbasedWind_Class1_Moderate_,4,132,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,12498.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,12498.46,0.933,30,0.03,0,0,0,0,0,0.393514663,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_landbasedwind_class1_moderate_5,LandbasedWind_Class1_Moderate_,5,133,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,23788.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,23787.558,0.933,30,0.03,0,0,0,0,0,0.431482643,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_landbasedwind_class1_moderate_6,LandbasedWind_Class1_Moderate_,6,134,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,15633.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,15633.08,0.933,30,0.03,0,0,0,0,0,0.37748757,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_landbasedwind_class1_moderate_7,LandbasedWind_Class1_Moderate_,7,135,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,29021.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,29020.777,0.933,30,0.03,0,0,0,0,0,0.418603808,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_landbasedwind_class1_moderate_8,LandbasedWind_Class1_Moderate_,8,136,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,40897.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,40896.604,0.933,30,0.03,0,0,0,0,0,0.350026488,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_landbasedwind_class1_moderate_9,LandbasedWind_Class1_Moderate_,9,137,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,146712.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,146712.274,0.933,30,0.03,0,0,0,0,0,0.489716798,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_utilitypv_class1_moderate_0,UtilityPV_Class1_Moderate_,0,138,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,6412.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,6412.182,0.968,30,0.026,0,0,0,0,0,0.254278213,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_utilitypv_class1_moderate_1,UtilityPV_Class1_Moderate_,1,139,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,8461.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,8460.982,0.968,30,0.026,0,0,0,0,0,0.262568802,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_utilitypv_class1_moderate_2,UtilityPV_Class1_Moderate_,2,140,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,10479.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,10478.698,0.968,30,0.026,0,0,0,0,0,0.252687842,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_utilitypv_class1_moderate_3,UtilityPV_Class1_Moderate_,3,141,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,14103.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,14103.154,0.968,30,0.026,0,0,0,0,0,0.264333636,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_utilitypv_class1_moderate_4,UtilityPV_Class1_Moderate_,4,142,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,14224.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,14224.435,0.968,30,0.026,0,0,0,0,0,0.253560722,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_utilitypv_class1_moderate_5,UtilityPV_Class1_Moderate_,5,143,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,18539.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,18539.404,0.968,30,0.026,0,0,0,0,0,0.26726374,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_utilitypv_class1_moderate_6,UtilityPV_Class1_Moderate_,6,144,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,22325.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,22324.625,0.968,30,0.026,0,0,0,0,0,0.265551984,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_utilitypv_class1_moderate_7,UtilityPV_Class1_Moderate_,7,145,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,17464.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,17463.888,0.968,30,0.026,0,0,0,0,0,0.251154423,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_utilitypv_class1_moderate_8,UtilityPV_Class1_Moderate_,8,146,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,74721.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,74721.211,0.968,30,0.026,0,0,0,0,0,0.276522815,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_utilitypv_class1_moderate_9,UtilityPV_Class1_Moderate_,9,147,2,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,29582.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,29582.346,0.968,30,0.026,0,0,0,0,0,0.252619147,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-TRE,TRE_offshorewind_class3_moderate_fixed_1_0,OffShoreWind_Class3_Moderate_fixed_1,0,148,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,13077.5,-1,0,0,0,0,0,1730000.0,145004.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,51156.858,0.977,30,0.036,0,0,0,0,0,0.371246308,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_1_1,OffShoreWind_Class3_Moderate_fixed_1,1,149,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,9995.0,-1,0,0,0,0,0,1730000.0,158104.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,64256.422,0.977,30,0.036,0,0,0,0,0,0.415583521,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_1_2,OffShoreWind_Class3_Moderate_fixed_1,2,150,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,22842.5,-1,0,0,0,0,0,1730000.0,140443.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,46595.365,0.977,30,0.036,0,0,0,0,0,0.357092798,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_1_3,OffShoreWind_Class3_Moderate_fixed_1,3,151,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,895.0,-1,0,0,0,0,0,1730000.0,157772.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,63924.883,0.977,30,0.036,0,0,0,0,0,0.377708793,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_1_4,OffShoreWind_Class3_Moderate_fixed_1,4,152,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,20865.0,-1,0,0,0,0,0,1730000.0,142961.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,49113.588,0.977,30,0.036,0,0,0,0,0,0.351203203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_1_5,OffShoreWind_Class3_Moderate_fixed_1,5,153,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,4480.0,-1,0,0,0,0,0,1730000.0,166128.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,72280.844,0.977,30,0.036,0,0,0,0,0,0.416367918,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_1_6,OffShoreWind_Class3_Moderate_fixed_1,6,154,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,23652.0,-1,0,0,0,0,0,1730000.0,166849.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,73001.164,0.977,30,0.036,0,0,0,0,0,0.405127913,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_1_7,OffShoreWind_Class3_Moderate_fixed_1,7,155,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,10070.0,-1,0,0,0,0,0,1730000.0,157895.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,64047.233,0.977,30,0.036,0,0,0,0,0,0.345421404,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_1_8,OffShoreWind_Class3_Moderate_fixed_1,8,156,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,20680.0,-1,0,0,0,0,0,1730000.0,167576.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,73728.515,0.977,30,0.036,0,0,0,0,0,0.392506152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_1_9,OffShoreWind_Class3_Moderate_fixed_1,9,157,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,16746.0,-1,0,0,0,0,0,1730000.0,156072.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,62224.897,0.977,30,0.036,0,0,0,0,0,0.369584978,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_0_0,OffShoreWind_Class3_Moderate_fixed_0,0,158,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,13077.5,-1,0,0,0,0,0,1730000.0,145004.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,51156.858,0.977,30,0.036,0,0,0,0,0,0.371246308,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_0_1,OffShoreWind_Class3_Moderate_fixed_0,1,159,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,9995.0,-1,0,0,0,0,0,1730000.0,158104.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,64256.422,0.977,30,0.036,0,0,0,0,0,0.415583521,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_0_4,OffShoreWind_Class3_Moderate_fixed_0,4,160,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,22842.5,-1,0,0,0,0,0,1730000.0,140443.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,46595.365,0.977,30,0.036,0,0,0,0,0,0.357092798,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_0_5,OffShoreWind_Class3_Moderate_fixed_0,5,161,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,895.0,-1,0,0,0,0,0,1730000.0,157772.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,63924.883,0.977,30,0.036,0,0,0,0,0,0.377708793,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_0_10,OffShoreWind_Class3_Moderate_fixed_0,10,162,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,20865.0,-1,0,0,0,0,0,1730000.0,142961.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,49113.588,0.977,30,0.036,0,0,0,0,0,0.351203203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_0_11,OffShoreWind_Class3_Moderate_fixed_0,11,163,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,4480.0,-1,0,0,0,0,0,1730000.0,166128.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,72280.844,0.977,30,0.036,0,0,0,0,0,0.416367918,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_0_18,OffShoreWind_Class3_Moderate_fixed_0,18,164,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,23652.0,-1,0,0,0,0,0,1730000.0,166849.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,73001.164,0.977,30,0.036,0,0,0,0,0,0.405127913,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_0_19,OffShoreWind_Class3_Moderate_fixed_0,19,165,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,10070.0,-1,0,0,0,0,0,1730000.0,157895.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,64047.233,0.977,30,0.036,0,0,0,0,0,0.345421404,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_0_28,OffShoreWind_Class3_Moderate_fixed_0,28,166,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,20680.0,-1,0,0,0,0,0,1730000.0,167576.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,73728.515,0.977,30,0.036,0,0,0,0,0,0.392506152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class3_moderate_fixed_0_29,OffShoreWind_Class3_Moderate_fixed_0,29,167,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,16746.0,-1,0,0,0,0,0,1730000.0,156072.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,62224.897,0.977,30,0.036,0,0,0,0,0,0.369584978,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_1_0,OffShoreWind_Class12_Moderate_floating_1,0,168,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,13077.5,-1,0,0,0,0,0,2770000.0,200994.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,51156.858,0.977,30,0.036,0,0,0,0,0,0.371246308,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_1_1,OffShoreWind_Class12_Moderate_floating_1,1,169,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,9995.0,-1,0,0,0,0,0,2770000.0,214094.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,64256.422,0.977,30,0.036,0,0,0,0,0,0.415583521,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_1_6,OffShoreWind_Class12_Moderate_floating_1,6,170,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,22842.5,-1,0,0,0,0,0,2770000.0,196433.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,46595.365,0.977,30,0.036,0,0,0,0,0,0.357092798,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_1_7,OffShoreWind_Class12_Moderate_floating_1,7,171,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,895.0,-1,0,0,0,0,0,2770000.0,213762.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,63924.883,0.977,30,0.036,0,0,0,0,0,0.377708793,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_1_18,OffShoreWind_Class12_Moderate_floating_1,18,172,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,20865.0,-1,0,0,0,0,0,2770000.0,198951.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,49113.588,0.977,30,0.036,0,0,0,0,0,0.351203203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_1_19,OffShoreWind_Class12_Moderate_floating_1,19,173,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,4480.0,-1,0,0,0,0,0,2770000.0,222118.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,72280.844,0.977,30,0.036,0,0,0,0,0,0.416367918,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_1_38,OffShoreWind_Class12_Moderate_floating_1,38,174,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,23652.0,-1,0,0,0,0,0,2770000.0,222839.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,73001.164,0.977,30,0.036,0,0,0,0,0,0.405127913,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_1_39,OffShoreWind_Class12_Moderate_floating_1,39,175,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,10070.0,-1,0,0,0,0,0,2770000.0,213885.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,64047.233,0.977,30,0.036,0,0,0,0,0,0.345421404,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_1_68,OffShoreWind_Class12_Moderate_floating_1,68,176,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,20680.0,-1,0,0,0,0,0,2770000.0,223566.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,73728.515,0.977,30,0.036,0,0,0,0,0,0.392506152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_1_69,OffShoreWind_Class12_Moderate_floating_1,69,177,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,16746.0,-1,0,0,0,0,0,2770000.0,212062.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,62224.897,0.977,30,0.036,0,0,0,0,0,0.369584978,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_0_0,OffShoreWind_Class12_Moderate_floating_0,0,178,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,13077.5,-1,0,0,0,0,0,2770000.0,200994.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,51156.858,0.977,30,0.036,0,0,0,0,0,0.371246308,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_0_1,OffShoreWind_Class12_Moderate_floating_0,1,179,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,9995.0,-1,0,0,0,0,0,2770000.0,214094.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,64256.422,0.977,30,0.036,0,0,0,0,0,0.415583521,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_0_8,OffShoreWind_Class12_Moderate_floating_0,8,180,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,22842.5,-1,0,0,0,0,0,2770000.0,196433.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,46595.365,0.977,30,0.036,0,0,0,0,0,0.357092798,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_0_9,OffShoreWind_Class12_Moderate_floating_0,9,181,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,895.0,-1,0,0,0,0,0,2770000.0,213762.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,63924.883,0.977,30,0.036,0,0,0,0,0,0.377708793,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_0_28,OffShoreWind_Class12_Moderate_floating_0,28,182,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,20865.0,-1,0,0,0,0,0,2770000.0,198951.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,49113.588,0.977,30,0.036,0,0,0,0,0,0.351203203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_0_29,OffShoreWind_Class12_Moderate_floating_0,29,183,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,4480.0,-1,0,0,0,0,0,2770000.0,222118.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,72280.844,0.977,30,0.036,0,0,0,0,0,0.416367918,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_0_68,OffShoreWind_Class12_Moderate_floating_0,68,184,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,23652.0,-1,0,0,0,0,0,2770000.0,222839.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,73001.164,0.977,30,0.036,0,0,0,0,0,0.405127913,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_0_69,OffShoreWind_Class12_Moderate_floating_0,69,185,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,10070.0,-1,0,0,0,0,0,2770000.0,213885.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,64047.233,0.977,30,0.036,0,0,0,0,0,0.345421404,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_0_138,OffShoreWind_Class12_Moderate_floating_0,138,186,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,20680.0,-1,0,0,0,0,0,2770000.0,223566.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,73728.515,0.977,30,0.036,0,0,0,0,0,0.392506152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-TRE,TRE_offshorewind_class12_moderate_floating_0_139,OffShoreWind_Class12_Moderate_floating_0,139,187,2,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,16746.0,-1,0,0,0,0,0,2770000.0,212062.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,62224.897,0.977,30,0.036,0,0,0,0,0,0.369584978,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0.0,0
-WECC,WECC_naturalgas_ccavgcf_moderate_0,NaturalGas_CCAvgCF_Moderate,0,188,3,0,1,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,500.0,0,-1.0,-1,0,0,0,0,0,880383.916,59543.0,28000,0.0,0,0,2.0,0.0,0,0,106,2.0,6.36,0.0,0.0,mountain_naturalgas,0.3,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.64,0.64,6,6,0,0,0,0,0,0,0,0.0,1.26,30,0.033,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
-WECC,WECC_naturalgas_ctavgcf_moderate_0,NaturalGas_CTAvgCF_Moderate,0,189,3,0,1,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,100.0,0,-1.0,-1,0,0,0,0,0,746250.365,45587.0,21000,0.0,0,0,5.0,0.0,0,0,137,3.5,9.72,0.0,0.0,mountain_naturalgas,0.3,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,1.138,30,0.033,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
-WECC,WECC_battery_moderate_0,Battery_*_Moderate,0,190,3,0,0,0,0,1,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,238220.323,20202.0,5955,141861.827,12030,3546,0.15,0.15,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.92,0.92,0,1,10,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,0.0,1.042,15,0.026,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.95,0
-WECC,WECC_naturalgas_ccccsavgcf_conservative_0,NaturalGas_CCCCSAvgCF_Conservative,0,191,3,0,1,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,500.0,0,-1.0,-1,0,0,0,0,0,2120000.0,119927.0,67000,0.0,0,0,6.0,0.0,0,0,106,0.0,7.16,0.0,0.0,mountain_naturalgas,0.6,0,1.0,1.0,0,0,0,0.106666667,0.213333333,0,0,0,0,0,0.9,27,0.64,0.64,6,6,0,0,0,0,0,0,0,0.0,1.054,30,0.033,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
-WECC,WECC_advnuclear_atb_moderate_0,AdvNuclear_ATB_Moderate,0,192,3,0,1,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,500.0,0,-1.0,-1,0,0,0,0,0,6590000.0,450000.0,0,0.0,0,0,2.84,0.0,0,0,285,0.0,10.44,0.0,0.0,mountain_uranium,0.5,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.25,0.25,24,24,0,0,0,0,0,0,0,0.0,1.19,40,0.033,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
-WECC,WECC_storage_metalair_advanced_0,Storage_MetalAir_Advanced,0,193,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,-1,-1.0,-1,0,-1,-1,0,0,0.0,0.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,1.042,25,0.026,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_landbasedwind_class1_moderate_0,LandbasedWind_Class1_Moderate_,0,194,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,20294.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,20294.121,1.657,30,0.03,0,0,0,0,0,0.42223382,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_landbasedwind_class1_moderate_1,LandbasedWind_Class1_Moderate_,1,195,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,19872.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,19872.298,1.657,30,0.03,0,0,0,0,0,0.511292398,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_landbasedwind_class1_moderate_2,LandbasedWind_Class1_Moderate_,2,196,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,27185.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,27184.562,1.657,30,0.03,0,0,0,0,0,0.365831107,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_landbasedwind_class1_moderate_3,LandbasedWind_Class1_Moderate_,3,197,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,19137.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,19137.494,1.657,30,0.03,0,0,0,0,0,0.310294747,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_landbasedwind_class1_moderate_4,LandbasedWind_Class1_Moderate_,4,198,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,26039.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,26038.936,1.657,30,0.03,0,0,0,0,0,0.289241701,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_landbasedwind_class1_moderate_5,LandbasedWind_Class1_Moderate_,5,199,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,133609.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,133608.575,1.657,30,0.03,0,0,0,0,0,0.465454966,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_landbasedwind_class1_moderate_6,LandbasedWind_Class1_Moderate_,6,200,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,29900.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,29899.759,1.657,30,0.03,0,0,0,0,0,0.244902343,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_landbasedwind_class1_moderate_7,LandbasedWind_Class1_Moderate_,7,201,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,160193.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,160192.842,1.657,30,0.03,0,0,0,0,0,0.443443388,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_landbasedwind_class1_moderate_8,LandbasedWind_Class1_Moderate_,8,202,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,38235.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,38235.186,1.657,30,0.03,0,0,0,0,0,0.225780696,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_landbasedwind_class1_moderate_9,LandbasedWind_Class1_Moderate_,9,203,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,879445.731,274991.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,274991.331,1.657,30,0.03,0,0,0,0,0,0.472337902,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_utilitypv_class1_moderate_0,UtilityPV_Class1_Moderate_,0,204,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,10320.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,10320.26,1.059,30,0.026,0,0,0,0,0,0.29553619,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_utilitypv_class1_moderate_1,UtilityPV_Class1_Moderate_,1,205,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,6016.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,6015.782,1.059,30,0.026,0,0,0,0,0,0.271998376,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_utilitypv_class1_moderate_2,UtilityPV_Class1_Moderate_,2,206,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,19411.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,19411.252,1.059,30,0.026,0,0,0,0,0,0.290274531,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_utilitypv_class1_moderate_3,UtilityPV_Class1_Moderate_,3,207,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,3992.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,3991.741,1.059,30,0.026,0,0,0,0,0,0.23989968,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_utilitypv_class1_moderate_4,UtilityPV_Class1_Moderate_,4,208,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,25714.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,25713.501,1.059,30,0.026,0,0,0,0,0,0.286481887,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_utilitypv_class1_moderate_5,UtilityPV_Class1_Moderate_,5,209,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,8052.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,8051.656,1.059,30,0.026,0,0,0,0,0,0.229081407,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_utilitypv_class1_moderate_6,UtilityPV_Class1_Moderate_,6,210,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,33457.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,33456.861,1.059,30,0.026,0,0,0,0,0,0.283349633,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_utilitypv_class1_moderate_7,UtilityPV_Class1_Moderate_,7,211,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,16842.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,16841.98,1.059,30,0.026,0,0,0,0,0,0.233366475,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_utilitypv_class1_moderate_8,UtilityPV_Class1_Moderate_,8,212,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,105939.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,105939.452,1.059,30,0.026,0,0,0,0,0,0.278691798,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_utilitypv_class1_moderate_9,UtilityPV_Class1_Moderate_,9,213,3,0,0,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,-1.0,-1,0,0,0,0,0,630556.245,28290.0,0,0.0,0,0,0.15,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,28289.909,1.059,30,0.026,0,0,0,0,0,0.222730413,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,1
-WECC,WECC_offshorewind_class3_moderate_fixed_1_0,OffShoreWind_Class3_Moderate_fixed_1,0,214,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,26916.5,-1,0,0,0,0,0,1730000.0,174794.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,78705.752,1.0,30,0.036,0,0,0,0,0,0.485625327,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_1_1,OffShoreWind_Class3_Moderate_fixed_1,1,215,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,29943.3,-1,0,0,0,0,0,1730000.0,179346.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,83257.787,1.0,30,0.036,0,0,0,0,0,0.543219388,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_1_2,OffShoreWind_Class3_Moderate_fixed_1,2,216,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,39553.5,-1,0,0,0,0,0,1730000.0,177553.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,81464.449,1.0,30,0.036,0,0,0,0,0,0.499437243,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_1_3,OffShoreWind_Class3_Moderate_fixed_1,3,217,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,18780.0,-1,0,0,0,0,0,1730000.0,162737.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,66648.117,1.0,30,0.036,0,0,0,0,0,0.412348032,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_1_4,OffShoreWind_Class3_Moderate_fixed_1,4,218,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,19994.0,-1,0,0,0,0,0,1730000.0,174072.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,77983.329,1.0,30,0.036,0,0,0,0,0,0.458608687,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_1_5,OffShoreWind_Class3_Moderate_fixed_1,5,219,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,36016.0,-1,0,0,0,0,0,1730000.0,175097.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,79008.616,1.0,30,0.036,0,0,0,0,0,0.473246485,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_1_6,OffShoreWind_Class3_Moderate_fixed_1,6,220,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,53762.0,-1,0,0,0,0,0,1730000.0,174641.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,78552.631,1.0,30,0.036,0,0,0,0,0,0.42923066,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_1_7,OffShoreWind_Class3_Moderate_fixed_1,7,221,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,1544.0,-1,0,0,0,0,0,1730000.0,151442.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,55353.297,1.0,30,0.036,0,0,0,0,0,0.336571634,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_1_8,OffShoreWind_Class3_Moderate_fixed_1,8,222,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,44128.0,-1,0,0,0,0,0,1730000.0,176829.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,80740.015,1.0,30,0.036,0,0,0,0,0,0.404276967,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_1_9,OffShoreWind_Class3_Moderate_fixed_1,9,223,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,9122.0,-1,0,0,0,0,0,1730000.0,151351.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,55262.315,1.0,30,0.036,0,0,0,0,0,0.298123151,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_0_0,OffShoreWind_Class3_Moderate_fixed_0,0,224,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,26916.5,-1,0,0,0,0,0,1730000.0,174794.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,78705.752,1.0,30,0.036,0,0,0,0,0,0.485625327,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_0_1,OffShoreWind_Class3_Moderate_fixed_0,1,225,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,29943.3,-1,0,0,0,0,0,1730000.0,179346.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,83257.787,1.0,30,0.036,0,0,0,0,0,0.543219388,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_0_4,OffShoreWind_Class3_Moderate_fixed_0,4,226,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,39553.5,-1,0,0,0,0,0,1730000.0,177553.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,81464.449,1.0,30,0.036,0,0,0,0,0,0.499437243,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_0_5,OffShoreWind_Class3_Moderate_fixed_0,5,227,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,18780.0,-1,0,0,0,0,0,1730000.0,162737.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,66648.117,1.0,30,0.036,0,0,0,0,0,0.412348032,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_0_10,OffShoreWind_Class3_Moderate_fixed_0,10,228,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,19994.0,-1,0,0,0,0,0,1730000.0,174072.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,77983.329,1.0,30,0.036,0,0,0,0,0,0.458608687,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_0_11,OffShoreWind_Class3_Moderate_fixed_0,11,229,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,36016.0,-1,0,0,0,0,0,1730000.0,175097.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,79008.616,1.0,30,0.036,0,0,0,0,0,0.473246485,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_0_18,OffShoreWind_Class3_Moderate_fixed_0,18,230,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,53762.0,-1,0,0,0,0,0,1730000.0,174641.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,78552.631,1.0,30,0.036,0,0,0,0,0,0.42923066,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_0_19,OffShoreWind_Class3_Moderate_fixed_0,19,231,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,1544.0,-1,0,0,0,0,0,1730000.0,151442.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,55353.297,1.0,30,0.036,0,0,0,0,0,0.336571634,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_0_28,OffShoreWind_Class3_Moderate_fixed_0,28,232,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,44128.0,-1,0,0,0,0,0,1730000.0,176829.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,80740.015,1.0,30,0.036,0,0,0,0,0,0.404276967,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class3_moderate_fixed_0_29,OffShoreWind_Class3_Moderate_fixed_0,29,233,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,9122.0,-1,0,0,0,0,0,1730000.0,151351.0,78449,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,55262.315,1.0,30,0.036,0,0,0,0,0,0.298123151,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_1_0,OffShoreWind_Class12_Moderate_floating_1,0,234,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,26916.5,-1,0,0,0,0,0,2770000.0,232121.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,78705.752,1.0,30,0.036,0,0,0,0,0,0.485625327,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_1_1,OffShoreWind_Class12_Moderate_floating_1,1,235,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,29943.3,-1,0,0,0,0,0,2770000.0,236673.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,83257.787,1.0,30,0.036,0,0,0,0,0,0.543219388,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_1_6,OffShoreWind_Class12_Moderate_floating_1,6,236,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,39553.5,-1,0,0,0,0,0,2770000.0,234880.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,81464.449,1.0,30,0.036,0,0,0,0,0,0.499437243,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_1_7,OffShoreWind_Class12_Moderate_floating_1,7,237,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,18780.0,-1,0,0,0,0,0,2770000.0,220064.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,66648.117,1.0,30,0.036,0,0,0,0,0,0.412348032,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_1_18,OffShoreWind_Class12_Moderate_floating_1,18,238,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,19994.0,-1,0,0,0,0,0,2770000.0,231399.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,77983.329,1.0,30,0.036,0,0,0,0,0,0.458608687,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_1_19,OffShoreWind_Class12_Moderate_floating_1,19,239,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,36016.0,-1,0,0,0,0,0,2770000.0,232424.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,79008.616,1.0,30,0.036,0,0,0,0,0,0.473246485,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_1_38,OffShoreWind_Class12_Moderate_floating_1,38,240,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,53762.0,-1,0,0,0,0,0,2770000.0,231968.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,78552.631,1.0,30,0.036,0,0,0,0,0,0.42923066,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_1_39,OffShoreWind_Class12_Moderate_floating_1,39,241,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,1544.0,-1,0,0,0,0,0,2770000.0,208769.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,55353.297,1.0,30,0.036,0,0,0,0,0,0.336571634,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_1_68,OffShoreWind_Class12_Moderate_floating_1,68,242,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,44128.0,-1,0,0,0,0,0,2770000.0,234156.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,80740.015,1.0,30,0.036,0,0,0,0,0,0.404276967,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_1_69,OffShoreWind_Class12_Moderate_floating_1,69,243,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,9122.0,-1,0,0,0,0,0,2770000.0,208678.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,55262.315,1.0,30,0.036,0,0,0,0,0,0.298123151,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_0_0,OffShoreWind_Class12_Moderate_floating_0,0,244,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,26916.5,-1,0,0,0,0,0,2770000.0,232121.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,78705.752,1.0,30,0.036,0,0,0,0,0,0.485625327,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_0_1,OffShoreWind_Class12_Moderate_floating_0,1,245,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,29943.3,-1,0,0,0,0,0,2770000.0,236673.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,83257.787,1.0,30,0.036,0,0,0,0,0,0.543219388,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_0_8,OffShoreWind_Class12_Moderate_floating_0,8,246,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,39553.5,-1,0,0,0,0,0,2770000.0,234880.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,81464.449,1.0,30,0.036,0,0,0,0,0,0.499437243,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_0_9,OffShoreWind_Class12_Moderate_floating_0,9,247,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,18780.0,-1,0,0,0,0,0,2770000.0,220064.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,66648.117,1.0,30,0.036,0,0,0,0,0,0.412348032,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_0_28,OffShoreWind_Class12_Moderate_floating_0,28,248,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,19994.0,-1,0,0,0,0,0,2770000.0,231399.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,77983.329,1.0,30,0.036,0,0,0,0,0,0.458608687,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_0_29,OffShoreWind_Class12_Moderate_floating_0,29,249,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,36016.0,-1,0,0,0,0,0,2770000.0,232424.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,79008.616,1.0,30,0.036,0,0,0,0,0,0.473246485,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_0_68,OffShoreWind_Class12_Moderate_floating_0,68,250,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,53762.0,-1,0,0,0,0,0,2770000.0,231968.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,78552.631,1.0,30,0.036,0,0,0,0,0,0.42923066,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_0_69,OffShoreWind_Class12_Moderate_floating_0,69,251,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,1544.0,-1,0,0,0,0,0,2770000.0,208769.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,55353.297,1.0,30,0.036,0,0,0,0,0,0.336571634,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_0_138,OffShoreWind_Class12_Moderate_floating_0,138,252,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,44128.0,-1,0,0,0,0,0,2770000.0,234156.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,80740.015,1.0,30,0.036,0,0,0,0,0,0.404276967,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_offshorewind_class12_moderate_floating_0_139,OffShoreWind_Class12_Moderate_floating_0,139,253,3,1,0,1,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,1.0,0,9122.0,-1,0,0,0,0,0,2770000.0,208678.0,68827,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,1.0,1.0,0,0,0,0,0,0,0,0,0,55262.315,1.0,30,0.036,0,0,0,0,0,0.298123151,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.8,0
-WECC,WECC_trans_light_duty_1,trans_light_duty,1,254,3,0,0,0,0,0,1,0,0,0.0,0,0,0.0,88930.5,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,5,0,1,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.304267582,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.95,0
-EIC,EIC_trans_light_duty_1,trans_light_duty,1,255,1,0,0,0,0,0,1,0,0,0.95,0,0,0.0,227552.1,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,5,0,1,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.29105489,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-TRE,TRE_trans_light_duty_1,trans_light_duty,1,256,2,0,0,0,0,0,1,0,0,0.0,0,0,0.0,34387.8,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,5,0,1,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.253653324,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95,0.0,0
-WECC,WECC_comm_water_heat_1,comm_water_heat,1,257,3,0,0,0,0,0,1,0,0,0.0,0,0,0.0,1130.3,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,2,2,1,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.575245441,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.95,0
-EIC,EIC_comm_water_heat_1,comm_water_heat,1,258,1,0,0,0,0,0,1,0,0,0.95,0,0,0.0,2922.1,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,2,2,1,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.545242595,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-TRE,TRE_comm_water_heat_1,comm_water_heat,1,259,2,0,0,0,0,0,1,0,0,0.0,0,0,0.0,368.7,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,2,2,1,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.48278806,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95,0.0,0
-WECC,WECC_res_water_heat_1,res_water_heat,1,260,3,0,0,0,0,0,1,0,0,0.0,0,0,0.0,2578.7,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,2,2,1,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.341639384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.95,0
-EIC,EIC_res_water_heat_1,res_water_heat,1,261,1,0,0,0,0,0,1,0,0,0.95,0,0,0.0,8238.2,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,2,2,1,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.358667559,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-TRE,TRE_res_water_heat_1,res_water_heat,1,262,2,0,0,0,0,0,1,0,0,0.0,0,0,0.0,1049.5,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,2,2,1,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.350966509,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95,0.0,0
-WECC,WECC_comm_space_heat_cool_1,comm_space_heat_cool,1,263,3,0,0,0,0,0,1,0,0,0.0,0,0,0.0,7483.3,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,1,1,1,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.172929324,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.95,0
-EIC,EIC_comm_space_heat_cool_1,comm_space_heat_cool,1,264,1,0,0,0,0,0,1,0,0,0.95,0,0,0.0,41624.8,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,1,1,1,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.155632777,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-TRE,TRE_comm_space_heat_cool_1,comm_space_heat_cool,1,265,2,0,0,0,0,0,1,0,0,0.0,0,0,0.0,6978.6,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,1,1,1,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.09675803,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95,0.0,0
-WECC,WECC_res_space_heat_cool_1,res_space_heat_cool,1,266,3,0,0,0,0,0,1,0,0,0.0,0,0,0.0,12467.5,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,1,1,1,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.244983674,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.95,0
-EIC,EIC_res_space_heat_cool_1,res_space_heat_cool,1,267,1,0,0,0,0,0,1,0,0,0.95,0,0,0.0,47457.0,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,1,1,1,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.208288887,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-TRE,TRE_res_space_heat_cool_1,res_space_heat_cool,1,268,2,0,0,0,0,0,1,0,0,0.0,0,0,0.0,7585.9,0,0,0.0,0,0,0.0,0,0.0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0.0,0.0,0,0,0,0.0,0.0,0.0,0.0,None,0.0,0,0.0,0.0,0,0,0,0.0,0.0,0,0,1,1,1,0.0,0,0.0,0.0,0,0,0,0,0,0,0,0,0,0.0,0.0,0,0.0,0,0,0,0,0,0.190117881,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95,0.0,0
-EIC,EIC_naturalgas_ctavgcf_moderate_0_zerocarbon,NaturalGas_CTAvgCF_Moderate_zerocarbon,0,269,1,0,1,0,0,0,0,0,0,0.93,0,0,0.0,0.0,0,0,0.0,1,1,100.0,0,-1.0,-1,0,0,0,0,0,746250.365,61000.0,0,0.0,0,0,5.0,0.0,0,0,137,3.5,9.72,0.0,0.0,zerocarbon_fuel,0.3,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,1.128,30,0.033,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.0,0
-TRE,TRE_naturalgas_ctavgcf_moderate_0_zerocarbon,NaturalGas_CTAvgCF_Moderate_zerocarbon,0,270,2,0,1,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,100.0,0,-1.0,-1,0,0,0,0,0,746250.365,61000.0,0,0.0,0,0,5.0,0.0,0,0,137,3.5,9.72,0.0,0.0,zerocarbon_fuel,0.3,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,0.882,30,0.033,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.93,0.0,0
-WECC,WECC_naturalgas_ctavgcf_moderate_0_zerocarbon,NaturalGas_CTAvgCF_Moderate_zerocarbon,0,271,3,0,1,0,0,0,0,0,0,0.0,0,0,0.0,0.0,0,0,0.0,1,1,100.0,0,-1.0,-1,0,0,0,0,0,746250.365,61000.0,0,0.0,0,0,5.0,0.0,0,0,137,3.5,9.72,0.0,0.0,zerocarbon_fuel,0.3,0,1.0,1.0,0,0,0,0.0,0.0,0,0,0,0,0,0.0,0,3.78,3.78,1,1,0,0,0,0,0,0,0,0.0,1.138,30,0.033,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0.93,0
diff --git a/test/VREStor/Resources/Flex_demand.csv b/test/VREStor/Resources/Flex_demand.csv
new file mode 100644
index 0000000000..8f187e97d2
--- /dev/null
+++ b/test/VREStor/Resources/Flex_demand.csv
@@ -0,0 +1,16 @@
+Resource,Zone,Existing_Cap_MWh,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Max_Flexible_Demand_Delay,Max_Flexible_Demand_Advance,Flexible_Demand_Energy_Eff,region,technology,cluster
+WECC_trans_light_duty_1,3,0,88930.5,0,0,0,0,0,5,0,1,WECC,trans_light_duty,1
+EIC_trans_light_duty_1,1,0,227552.1,0,0,0,0,0,5,0,1,EIC,trans_light_duty,1
+TRE_trans_light_duty_1,2,0,34387.8,0,0,0,0,0,5,0,1,TRE,trans_light_duty,1
+WECC_comm_water_heat_1,3,0,1130.3,0,0,0,0,0,2,2,1,WECC,comm_water_heat,1
+EIC_comm_water_heat_1,1,0,2922.1,0,0,0,0,0,2,2,1,EIC,comm_water_heat,1
+TRE_comm_water_heat_1,2,0,368.7,0,0,0,0,0,2,2,1,TRE,comm_water_heat,1
+WECC_res_water_heat_1,3,0,2578.7,0,0,0,0,0,2,2,1,WECC,res_water_heat,1
+EIC_res_water_heat_1,1,0,8238.2,0,0,0,0,0,2,2,1,EIC,res_water_heat,1
+TRE_res_water_heat_1,2,0,1049.5,0,0,0,0,0,2,2,1,TRE,res_water_heat,1
+WECC_comm_space_heat_cool_1,3,0,7483.3,0,0,0,0,0,1,1,1,WECC,comm_space_heat_cool,1
+EIC_comm_space_heat_cool_1,1,0,41624.8,0,0,0,0,0,1,1,1,EIC,comm_space_heat_cool,1
+TRE_comm_space_heat_cool_1,2,0,6978.6,0,0,0,0,0,1,1,1,TRE,comm_space_heat_cool,1
+WECC_res_space_heat_cool_1,3,0,12467.5,0,0,0,0,0,1,1,1,WECC,res_space_heat_cool,1
+EIC_res_space_heat_cool_1,1,0,47457,0,0,0,0,0,1,1,1,EIC,res_space_heat_cool,1
+TRE_res_space_heat_cool_1,2,0,7585.9,0,0,0,0,0,1,1,1,TRE,res_space_heat_cool,1
\ No newline at end of file
diff --git a/test/VREStor/Resources/Hydro.csv b/test/VREStor/Resources/Hydro.csv
new file mode 100644
index 0000000000..c73b4b625d
--- /dev/null
+++ b/test/VREStor/Resources/Hydro.csv
@@ -0,0 +1,4 @@
+Resource Zone Existing_Cap_MWh Existing_Cap_MW New_Build Can_Retire Cap_Size Min_Cap_MW Max_Cap_MW Inv_Cost_per_MWyr Fixed_OM_Cost_per_MWyr Var_OM_Cost_per_MWh Heat_Rate_MMBTU_per_MWh Fuel Min_Power Self_Disch Eff_Up Eff_Down Hydro_Energy_to_Power_Ratio Ramp_Up_Percentage Ramp_Dn_Percentage Up_Time Down_Time region technology cluster
+EIC_conventional_hydroelectric_1 1 0 24200.8 0 0 32.35 0 0 0 47048 0 10.34 None 0.273 0 1 1 1 1 1 0 0 EIC Conventional Hydroelectric 1
+TRE_conventional_hydroelectric_1 2 0 477 0 0 25.1 0 0 0 47048 0 10.34 None 0 0 1 1 1 1 1 0 0 TRE Conventional Hydroelectric 1
+WECC_conventional_hydroelectric_1 3 0 46528 0 0 72.7 0 0 0 47048 0 10.34 None 0.214 0 1 1 1 1 1 0 0 WECC Conventional Hydroelectric 1
\ No newline at end of file
diff --git a/test/VREStor/Resources/Must_run.csv b/test/VREStor/Resources/Must_run.csv
new file mode 100644
index 0000000000..300177484d
--- /dev/null
+++ b/test/VREStor/Resources/Must_run.csv
@@ -0,0 +1,10 @@
+Resource Zone Existing_Cap_MWh Existing_Cap_MW New_Build Can_Retire Cap_Size Min_Cap_MW Max_Cap_MW Inv_Cost_per_MWyr Fixed_OM_Cost_per_MWyr Var_OM_Cost_per_MWh Start_Cost_per_MW Heat_Rate_MMBTU_per_MWh Fuel Min_Power Self_Disch Eff_Up Eff_Down Ramp_Up_Percentage Ramp_Dn_Percentage Up_Time Down_Time region technology cluster
+EIC_biomass_1 1 0 1722.5 0 0 1.27 0 0 0 150850 7.32 172 17.03 biomass 0.308 0 1 1 1 1 0 0 EIC Biomass 1
+EIC_small_hydroelectric_1 1 0 1672.2 0 0 1.06 0 0 0 47048 0 0 10.34 None 0.273 0 1 1 1 1 0 0 EIC Small Hydroelectric 1
+TRE_biomass_1 2 0 44.5 0 0 1.48 0 0 0 150850 6.51 172 15.15 biomass 0.591 0 1 1 1 1 0 0 TRE Biomass 1
+TRE_small_hydroelectric_1 2 0 11.2 0 0 0.75 0 0 0 47048 0 0 10.34 None 0 0 1 1 1 1 0 0 TRE Small Hydroelectric 1
+WECC_biomass_1 3 0 551 0 0 2.01 0 0 0 150850 7.14 172 16.63 biomass 0.362 0 1 1 1 1 0 0 WECC Biomass 1
+WECC_small_hydroelectric_1 3 0 1064.3 0 0 1.62 0 0 0 47048 0 0 10.34 None 0.181 0 1 1 1 1 0 0 WECC Small Hydroelectric 1
+WECC_distributed_generation_1 3 0 250535 0 0 0 0 0 0 0 0 0 0 None 0 0 1 1 1 1 0 0 WECC distributed_generation 1
+EIC_distributed_generation_1 1 0 1770000 0 0 0 0 0 0 0 0 0 0 None 0 0 1 1 1 1 0 0 EIC distributed_generation 1
+TRE_distributed_generation_1 2 0 17006 0 0 0 0 0 0 0 0 0 0 None 0 0 1 1 1 1 0 0 TRE distributed_generation 1
\ No newline at end of file
diff --git a/test/VREStor/Resources/Resource_capacity_reserve_margin.csv b/test/VREStor/Resources/Resource_capacity_reserve_margin.csv
new file mode 100644
index 0000000000..7d65450b31
--- /dev/null
+++ b/test/VREStor/Resources/Resource_capacity_reserve_margin.csv
@@ -0,0 +1,272 @@
+Resource,Derating_Factor_1,Derating_Factor_2,Derating_Factor_3
+EIC_advnuclear_atb_moderate_0,0.93,0,0
+EIC_batteries_1,0.95,0,0
+EIC_battery_moderate_0,0.95,0,0
+EIC_biomass_1,0.93,0,0
+EIC_comm_space_heat_cool_1,0.95,0,0
+EIC_comm_water_heat_1,0.95,0,0
+EIC_conventional_hydroelectric_1,0.8,0,0
+EIC_conventional_steam_coal_1,0.93,0,0
+EIC_conventional_steam_coal_2,0.93,0,0
+EIC_distributed_generation_1,0.8,0,0
+EIC_hydroelectric_pumped_storage_1,0.95,0,0
+EIC_natural_gas_fired_combined_cycle_1,0.93,0,0
+EIC_natural_gas_fired_combined_cycle_2,0.93,0,0
+EIC_natural_gas_fired_combustion_turbine_1,0.93,0,0
+EIC_natural_gas_fired_combustion_turbine_2,0.93,0,0
+EIC_natural_gas_internal_combustion_engine_1,0.93,0,0
+EIC_natural_gas_steam_turbine_1,0.93,0,0
+EIC_naturalgas_ccavgcf_moderate_0,0.93,0,0
+EIC_naturalgas_ccccsavgcf_conservative_0,0.93,0,0
+EIC_naturalgas_ctavgcf_moderate_0,0.93,0,0
+EIC_naturalgas_ctavgcf_moderate_0_zerocarbon,0.93,0,0
+EIC_nuclear_1,0.93,0,0
+EIC_offshore_wind_turbine_1,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_0_0,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_0_1,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_0_138,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_0_139,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_0_28,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_0_29,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_0_68,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_0_69,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_0_8,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_0_9,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_1_0,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_1_1,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_1_18,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_1_19,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_1_38,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_1_39,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_1_6,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_1_68,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_1_69,0.8,0,0
+EIC_offshorewind_class12_moderate_floating_1_7,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_0_0,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_0_1,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_0_10,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_0_11,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_0_18,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_0_19,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_0_28,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_0_29,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_0_4,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_0_5,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_1_0,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_1_1,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_1_2,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_1_3,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_1_4,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_1_5,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_1_6,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_1_7,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_1_8,0.8,0,0
+EIC_offshorewind_class3_moderate_fixed_1_9,0.8,0,0
+EIC_onshore_wind_turbine_1,0.8,0,0
+EIC_petroleum_liquids_1,0.93,0,0
+EIC_res_space_heat_cool_1,0.95,0,0
+EIC_res_water_heat_1,0.95,0,0
+EIC_small_hydroelectric_1,0.8,0,0
+EIC_solar_photovoltaic_1,0.8,0,0
+EIC_trans_light_duty_1,0.95,0,0
+TRE_advnuclear_atb_moderate_0,0,0.93,0
+TRE_batteries_1,0,0.95,0
+TRE_battery_moderate_0,0,0.95,0
+TRE_biomass_1,0,0.93,0
+TRE_comm_space_heat_cool_1,0,0.95,0
+TRE_comm_water_heat_1,0,0.95,0
+TRE_conventional_hydroelectric_1,0,0.8,0
+TRE_conventional_steam_coal_1,0,0.93,0
+TRE_conventional_steam_coal_2,0,0.93,0
+TRE_distributed_generation_1,0,0.8,0
+TRE_natural_gas_fired_combined_cycle_1,0,0.93,0
+TRE_natural_gas_fired_combined_cycle_2,0,0.93,0
+TRE_natural_gas_fired_combustion_turbine_1,0,0.93,0
+TRE_natural_gas_fired_combustion_turbine_2,0,0.93,0
+TRE_natural_gas_internal_combustion_engine_1,0,0.93,0
+TRE_natural_gas_steam_turbine_1,0,0.93,0
+TRE_naturalgas_ccavgcf_moderate_0,0,0.93,0
+TRE_naturalgas_ccccsavgcf_conservative_0,0,0.93,0
+TRE_naturalgas_ctavgcf_moderate_0,0,0.93,0
+TRE_naturalgas_ctavgcf_moderate_0_zerocarbon,0,0.93,0
+TRE_nuclear_1,0,0.93,0
+TRE_offshorewind_class12_moderate_floating_0_0,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_0_1,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_0_138,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_0_139,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_0_28,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_0_29,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_0_68,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_0_69,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_0_8,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_0_9,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_1_0,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_1_1,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_1_18,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_1_19,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_1_38,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_1_39,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_1_6,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_1_68,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_1_69,0,0.8,0
+TRE_offshorewind_class12_moderate_floating_1_7,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_0_0,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_0_1,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_0_10,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_0_11,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_0_18,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_0_19,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_0_28,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_0_29,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_0_4,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_0_5,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_1_0,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_1_1,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_1_2,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_1_3,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_1_4,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_1_5,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_1_6,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_1_7,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_1_8,0,0.8,0
+TRE_offshorewind_class3_moderate_fixed_1_9,0,0.8,0
+TRE_onshore_wind_turbine_1,0,0.8,0
+TRE_petroleum_liquids_1,0,0.93,0
+TRE_res_space_heat_cool_1,0,0.95,0
+TRE_res_water_heat_1,0,0.95,0
+TRE_small_hydroelectric_1,0,0.8,0
+TRE_solar_photovoltaic_1,0,0.8,0
+TRE_trans_light_duty_1,0,0.95,0
+WECC_advnuclear_atb_moderate_0,0,0,0.93
+WECC_batteries_1,0,0,0.95
+WECC_battery_moderate_0,0,0,0.95
+WECC_biomass_1,0,0,0.93
+WECC_comm_space_heat_cool_1,0,0,0.95
+WECC_comm_water_heat_1,0,0,0.95
+WECC_conventional_hydroelectric_1,0,0,0.8
+WECC_conventional_steam_coal_1,0,0,0.93
+WECC_conventional_steam_coal_2,0,0,0.93
+WECC_distributed_generation_1,0,0,0.8
+WECC_geothermal_1,0,0,0.93
+WECC_hydroelectric_pumped_storage_1,0,0,0.95
+WECC_natural_gas_fired_combined_cycle_1,0,0,0.93
+WECC_natural_gas_fired_combined_cycle_2,0,0,0.93
+WECC_natural_gas_fired_combustion_turbine_1,0,0,0.93
+WECC_natural_gas_fired_combustion_turbine_2,0,0,0.93
+WECC_natural_gas_internal_combustion_engine_1,0,0,0.93
+WECC_natural_gas_steam_turbine_1,0,0,0.93
+WECC_naturalgas_ccavgcf_moderate_0,0,0,0.93
+WECC_naturalgas_ccccsavgcf_conservative_0,0,0,0.93
+WECC_naturalgas_ctavgcf_moderate_0,0,0,0.93
+WECC_naturalgas_ctavgcf_moderate_0_zerocarbon,0,0,0.93
+WECC_nuclear_1,0,0,0.93
+WECC_offshorewind_class12_moderate_floating_0_0,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_0_1,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_0_138,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_0_139,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_0_28,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_0_29,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_0_68,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_0_69,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_0_8,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_0_9,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_1_0,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_1_1,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_1_18,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_1_19,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_1_38,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_1_39,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_1_6,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_1_68,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_1_69,0,0,0.8
+WECC_offshorewind_class12_moderate_floating_1_7,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_0_0,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_0_1,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_0_10,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_0_11,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_0_18,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_0_19,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_0_28,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_0_29,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_0_4,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_0_5,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_1_0,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_1_1,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_1_2,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_1_3,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_1_4,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_1_5,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_1_6,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_1_7,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_1_8,0,0,0.8
+WECC_offshorewind_class3_moderate_fixed_1_9,0,0,0.8
+WECC_onshore_wind_turbine_1,0,0,0.8
+WECC_petroleum_liquids_1,0,0,0.93
+WECC_res_space_heat_cool_1,0,0,0.95
+WECC_res_water_heat_1,0,0,0.95
+WECC_small_hydroelectric_1,0,0,0.8
+WECC_solar_photovoltaic_1,0,0,0.8
+WECC_trans_light_duty_1,0,0,0.95
+EIC_landbasedwind_class1_moderate_0,0.95,0,0
+EIC_landbasedwind_class1_moderate_1,0.95,0,0
+EIC_landbasedwind_class1_moderate_2,0.95,0,0
+EIC_landbasedwind_class1_moderate_3,0.95,0,0
+EIC_landbasedwind_class1_moderate_4,0.95,0,0
+EIC_landbasedwind_class1_moderate_5,0.95,0,0
+EIC_landbasedwind_class1_moderate_6,0.95,0,0
+EIC_landbasedwind_class1_moderate_7,0.95,0,0
+EIC_landbasedwind_class1_moderate_8,0.95,0,0
+EIC_landbasedwind_class1_moderate_9,0.95,0,0
+EIC_storage_metalair_advanced_0,0.95,0,0
+EIC_utilitypv_class1_moderate_0,0.95,0,0
+EIC_utilitypv_class1_moderate_1,0.95,0,0
+EIC_utilitypv_class1_moderate_2,0.95,0,0
+EIC_utilitypv_class1_moderate_3,0.95,0,0
+EIC_utilitypv_class1_moderate_4,0.95,0,0
+EIC_utilitypv_class1_moderate_5,0.95,0,0
+EIC_utilitypv_class1_moderate_6,0.95,0,0
+EIC_utilitypv_class1_moderate_7,0.95,0,0
+EIC_utilitypv_class1_moderate_8,0.95,0,0
+EIC_utilitypv_class1_moderate_9,0.95,0,0
+TRE_landbasedwind_class1_moderate_0,0,0.95,0
+TRE_landbasedwind_class1_moderate_1,0,0.95,0
+TRE_landbasedwind_class1_moderate_2,0,0.95,0
+TRE_landbasedwind_class1_moderate_3,0,0.95,0
+TRE_landbasedwind_class1_moderate_4,0,0.95,0
+TRE_landbasedwind_class1_moderate_5,0,0.95,0
+TRE_landbasedwind_class1_moderate_6,0,0.95,0
+TRE_landbasedwind_class1_moderate_7,0,0.95,0
+TRE_landbasedwind_class1_moderate_8,0,0.95,0
+TRE_landbasedwind_class1_moderate_9,0,0.95,0
+TRE_storage_metalair_advanced_0,0,0.95,0
+TRE_utilitypv_class1_moderate_0,0,0.95,0
+TRE_utilitypv_class1_moderate_1,0,0.95,0
+TRE_utilitypv_class1_moderate_2,0,0.95,0
+TRE_utilitypv_class1_moderate_3,0,0.95,0
+TRE_utilitypv_class1_moderate_4,0,0.95,0
+TRE_utilitypv_class1_moderate_5,0,0.95,0
+TRE_utilitypv_class1_moderate_6,0,0.95,0
+TRE_utilitypv_class1_moderate_7,0,0.95,0
+TRE_utilitypv_class1_moderate_8,0,0.95,0
+TRE_utilitypv_class1_moderate_9,0,0.95,0
+WECC_landbasedwind_class1_moderate_0,0,0,0.95
+WECC_landbasedwind_class1_moderate_1,0,0,0.95
+WECC_landbasedwind_class1_moderate_2,0,0,0.95
+WECC_landbasedwind_class1_moderate_3,0,0,0.95
+WECC_landbasedwind_class1_moderate_4,0,0,0.95
+WECC_landbasedwind_class1_moderate_5,0,0,0.95
+WECC_landbasedwind_class1_moderate_6,0,0,0.95
+WECC_landbasedwind_class1_moderate_7,0,0,0.95
+WECC_landbasedwind_class1_moderate_8,0,0,0.95
+WECC_landbasedwind_class1_moderate_9,0,0,0.95
+WECC_storage_metalair_advanced_0,0,0,0.95
+WECC_utilitypv_class1_moderate_0,0,0,0.95
+WECC_utilitypv_class1_moderate_1,0,0,0.95
+WECC_utilitypv_class1_moderate_2,0,0,0.95
+WECC_utilitypv_class1_moderate_3,0,0,0.95
+WECC_utilitypv_class1_moderate_4,0,0,0.95
+WECC_utilitypv_class1_moderate_5,0,0,0.95
+WECC_utilitypv_class1_moderate_6,0,0,0.95
+WECC_utilitypv_class1_moderate_7,0,0,0.95
+WECC_utilitypv_class1_moderate_8,0,0,0.95
+WECC_utilitypv_class1_moderate_9,0,0,0.95
\ No newline at end of file
diff --git a/test/VREStor/Resources/Resource_maximum_capacity_requirement.csv b/test/VREStor/Resources/Resource_maximum_capacity_requirement.csv
new file mode 100644
index 0000000000..365b05d024
--- /dev/null
+++ b/test/VREStor/Resources/Resource_maximum_capacity_requirement.csv
@@ -0,0 +1,2 @@
+Resource,Max_Cap_1,Max_Cap_2,Max_Cap_3,Max_Cap_Stor_1,Max_Cap_Solar_1,Max_Cap_Wind_1,Max_Cap_Stor_2,Max_Cap_Solar_2,Max_Cap_Wind_2,Max_Cap_Stor_3,Max_Cap_Solar_3,Max_Cap_Wind_3
+EIC_landbasedwind_class1_moderate_0,0,0,0,0,0,0,0,0,0,0,0,0
\ No newline at end of file
diff --git a/test/VREStor/Resources/Resource_minimum_capacity_requirement.csv b/test/VREStor/Resources/Resource_minimum_capacity_requirement.csv
new file mode 100644
index 0000000000..b0e5718026
--- /dev/null
+++ b/test/VREStor/Resources/Resource_minimum_capacity_requirement.csv
@@ -0,0 +1,272 @@
+Resource,Min_Cap_1,Min_Cap_2,Min_Cap_3
+EIC_storage_metalair_advanced_0,0,0,0
+EIC_landbasedwind_class1_moderate_0,0,0,0
+EIC_landbasedwind_class1_moderate_1,0,0,0
+EIC_landbasedwind_class1_moderate_2,0,0,0
+EIC_landbasedwind_class1_moderate_3,0,0,0
+EIC_landbasedwind_class1_moderate_4,0,0,0
+EIC_landbasedwind_class1_moderate_5,0,0,0
+EIC_landbasedwind_class1_moderate_6,0,0,0
+EIC_landbasedwind_class1_moderate_7,0,0,0
+EIC_landbasedwind_class1_moderate_8,0,0,0
+EIC_landbasedwind_class1_moderate_9,0,0,0
+EIC_utilitypv_class1_moderate_0,0,0,0
+EIC_utilitypv_class1_moderate_1,0,0,0
+EIC_utilitypv_class1_moderate_2,0,0,0
+EIC_utilitypv_class1_moderate_3,0,0,0
+EIC_utilitypv_class1_moderate_4,0,0,0
+EIC_utilitypv_class1_moderate_5,0,0,0
+EIC_utilitypv_class1_moderate_6,0,0,0
+EIC_utilitypv_class1_moderate_7,0,0,0
+EIC_utilitypv_class1_moderate_8,0,0,0
+EIC_utilitypv_class1_moderate_9,0,0,0
+TRE_storage_metalair_advanced_0,0,0,0
+TRE_landbasedwind_class1_moderate_0,0,0,0
+TRE_landbasedwind_class1_moderate_1,0,0,0
+TRE_landbasedwind_class1_moderate_2,0,0,0
+TRE_landbasedwind_class1_moderate_3,0,0,0
+TRE_landbasedwind_class1_moderate_4,0,0,0
+TRE_landbasedwind_class1_moderate_5,0,0,0
+TRE_landbasedwind_class1_moderate_6,0,0,0
+TRE_landbasedwind_class1_moderate_7,0,0,0
+TRE_landbasedwind_class1_moderate_8,0,0,0
+TRE_landbasedwind_class1_moderate_9,0,0,0
+TRE_utilitypv_class1_moderate_0,0,0,0
+TRE_utilitypv_class1_moderate_1,0,0,0
+TRE_utilitypv_class1_moderate_2,0,0,0
+TRE_utilitypv_class1_moderate_3,0,0,0
+TRE_utilitypv_class1_moderate_4,0,0,0
+TRE_utilitypv_class1_moderate_5,0,0,0
+TRE_utilitypv_class1_moderate_6,0,0,0
+TRE_utilitypv_class1_moderate_7,0,0,0
+TRE_utilitypv_class1_moderate_8,0,0,0
+TRE_utilitypv_class1_moderate_9,0,0,0
+WECC_storage_metalair_advanced_0,0,0,0
+WECC_landbasedwind_class1_moderate_0,0,0,0
+WECC_landbasedwind_class1_moderate_1,0,0,0
+WECC_landbasedwind_class1_moderate_2,0,0,0
+WECC_landbasedwind_class1_moderate_3,0,0,0
+WECC_landbasedwind_class1_moderate_4,0,0,0
+WECC_landbasedwind_class1_moderate_5,0,0,0
+WECC_landbasedwind_class1_moderate_6,0,0,0
+WECC_landbasedwind_class1_moderate_7,0,0,0
+WECC_landbasedwind_class1_moderate_8,0,0,0
+WECC_landbasedwind_class1_moderate_9,0,0,0
+WECC_utilitypv_class1_moderate_0,0,0,0
+WECC_utilitypv_class1_moderate_1,0,0,0
+WECC_utilitypv_class1_moderate_2,0,0,0
+WECC_utilitypv_class1_moderate_3,0,0,0
+WECC_utilitypv_class1_moderate_4,0,0,0
+WECC_utilitypv_class1_moderate_5,0,0,0
+WECC_utilitypv_class1_moderate_6,0,0,0
+WECC_utilitypv_class1_moderate_7,0,0,0
+WECC_utilitypv_class1_moderate_8,0,0,0
+WECC_utilitypv_class1_moderate_9,0,0,0
+WECC_trans_light_duty_1,0,0,0
+EIC_trans_light_duty_1,0,0,0
+TRE_trans_light_duty_1,0,0,0
+WECC_comm_water_heat_1,0,0,0
+EIC_comm_water_heat_1,0,0,0
+TRE_comm_water_heat_1,0,0,0
+WECC_res_water_heat_1,0,0,0
+EIC_res_water_heat_1,0,0,0
+TRE_res_water_heat_1,0,0,0
+WECC_comm_space_heat_cool_1,0,0,0
+EIC_comm_space_heat_cool_1,0,0,0
+TRE_comm_space_heat_cool_1,0,0,0
+WECC_res_space_heat_cool_1,0,0,0
+EIC_res_space_heat_cool_1,0,0,0
+TRE_res_space_heat_cool_1,0,0,0
+EIC_conventional_hydroelectric_1,0,0,0
+TRE_conventional_hydroelectric_1,0,0,0
+WECC_conventional_hydroelectric_1,0,0,0
+EIC_biomass_1,0,0,0
+EIC_small_hydroelectric_1,0,0,0
+TRE_biomass_1,0,0,0
+TRE_small_hydroelectric_1,0,0,0
+WECC_biomass_1,0,0,0
+WECC_small_hydroelectric_1,0,0,0
+WECC_distributed_generation_1,0,0,0
+EIC_distributed_generation_1,0,0,0
+TRE_distributed_generation_1,0,0,0
+EIC_batteries_1,0,0,0
+EIC_hydroelectric_pumped_storage_1,0,0,0
+TRE_batteries_1,0,0,0
+WECC_batteries_1,0,0,0
+WECC_hydroelectric_pumped_storage_1,0,0,0
+EIC_battery_moderate_0,0,0,0
+TRE_battery_moderate_0,0,0,0
+WECC_battery_moderate_0,0,0,0
+EIC_conventional_steam_coal_1,0,0,0
+EIC_conventional_steam_coal_2,0,0,0
+EIC_natural_gas_fired_combined_cycle_1,0,0,0
+EIC_natural_gas_fired_combined_cycle_2,0,0,0
+EIC_natural_gas_fired_combustion_turbine_1,0,0,0
+EIC_natural_gas_fired_combustion_turbine_2,0,0,0
+EIC_natural_gas_internal_combustion_engine_1,0,0,0
+EIC_natural_gas_steam_turbine_1,0,0,0
+EIC_nuclear_1,0,0,0
+EIC_petroleum_liquids_1,0,0,0
+TRE_conventional_steam_coal_1,0,0,0
+TRE_conventional_steam_coal_2,0,0,0
+TRE_natural_gas_fired_combined_cycle_1,0,0,0
+TRE_natural_gas_fired_combined_cycle_2,0,0,0
+TRE_natural_gas_fired_combustion_turbine_1,0,0,0
+TRE_natural_gas_fired_combustion_turbine_2,0,0,0
+TRE_natural_gas_internal_combustion_engine_1,0,0,0
+TRE_natural_gas_steam_turbine_1,0,0,0
+TRE_nuclear_1,0,0,0
+TRE_petroleum_liquids_1,0,0,0
+WECC_conventional_steam_coal_1,0,0,0
+WECC_conventional_steam_coal_2,0,0,0
+WECC_natural_gas_fired_combined_cycle_1,0,0,0
+WECC_natural_gas_fired_combined_cycle_2,0,0,0
+WECC_natural_gas_fired_combustion_turbine_1,0,0,0
+WECC_natural_gas_fired_combustion_turbine_2,0,0,0
+WECC_natural_gas_internal_combustion_engine_1,0,0,0
+WECC_natural_gas_steam_turbine_1,0,0,0
+WECC_nuclear_1,0,0,0
+WECC_petroleum_liquids_1,0,0,0
+EIC_naturalgas_ccavgcf_moderate_0,0,0,0
+EIC_naturalgas_ctavgcf_moderate_0,0,0,0
+EIC_naturalgas_ccccsavgcf_conservative_0,0,0,0
+EIC_advnuclear_atb_moderate_0,0,0,0
+TRE_naturalgas_ccavgcf_moderate_0,0,0,0
+TRE_naturalgas_ctavgcf_moderate_0,0,0,0
+TRE_naturalgas_ccccsavgcf_conservative_0,0,0,0
+TRE_advnuclear_atb_moderate_0,0,0,0
+WECC_naturalgas_ccavgcf_moderate_0,0,0,0
+WECC_naturalgas_ctavgcf_moderate_0,0,0,0
+WECC_naturalgas_ccccsavgcf_conservative_0,0,0,0
+WECC_advnuclear_atb_moderate_0,0,0,0
+EIC_naturalgas_ctavgcf_moderate_0_zerocarbon,0,0,0
+TRE_naturalgas_ctavgcf_moderate_0_zerocarbon,0,0,0
+WECC_naturalgas_ctavgcf_moderate_0_zerocarbon,0,0,0
+EIC_offshore_wind_turbine_1,0,0,0
+EIC_onshore_wind_turbine_1,0,0,0
+EIC_solar_photovoltaic_1,0,0,0
+TRE_onshore_wind_turbine_1,0,0,0
+TRE_solar_photovoltaic_1,0,0,0
+WECC_geothermal_1,0,0,0
+WECC_onshore_wind_turbine_1,0,0,0
+WECC_solar_photovoltaic_1,0,0,0
+EIC_offshorewind_class3_moderate_fixed_1_0,0,0,0
+EIC_offshorewind_class3_moderate_fixed_1_1,0,0,0
+EIC_offshorewind_class3_moderate_fixed_1_2,0,0,0
+EIC_offshorewind_class3_moderate_fixed_1_3,0,0,0
+EIC_offshorewind_class3_moderate_fixed_1_4,0,0,0
+EIC_offshorewind_class3_moderate_fixed_1_5,0,0,0
+EIC_offshorewind_class3_moderate_fixed_1_6,0,0,0
+EIC_offshorewind_class3_moderate_fixed_1_7,0,0,0
+EIC_offshorewind_class3_moderate_fixed_1_8,0,0,0
+EIC_offshorewind_class3_moderate_fixed_1_9,0,0,0
+EIC_offshorewind_class3_moderate_fixed_0_0,0,0,0
+EIC_offshorewind_class3_moderate_fixed_0_1,0,0,0
+EIC_offshorewind_class3_moderate_fixed_0_4,0,0,0
+EIC_offshorewind_class3_moderate_fixed_0_5,0,0,0
+EIC_offshorewind_class3_moderate_fixed_0_10,0,0,0
+EIC_offshorewind_class3_moderate_fixed_0_11,0,0,0
+EIC_offshorewind_class3_moderate_fixed_0_18,0,0,0
+EIC_offshorewind_class3_moderate_fixed_0_19,0,0,0
+EIC_offshorewind_class3_moderate_fixed_0_28,0,0,0
+EIC_offshorewind_class3_moderate_fixed_0_29,0,0,0
+EIC_offshorewind_class12_moderate_floating_1_0,0,0,0
+EIC_offshorewind_class12_moderate_floating_1_1,0,0,0
+EIC_offshorewind_class12_moderate_floating_1_6,0,0,0
+EIC_offshorewind_class12_moderate_floating_1_7,0,0,0
+EIC_offshorewind_class12_moderate_floating_1_18,0,0,0
+EIC_offshorewind_class12_moderate_floating_1_19,0,0,0
+EIC_offshorewind_class12_moderate_floating_1_38,0,0,0
+EIC_offshorewind_class12_moderate_floating_1_39,0,0,0
+EIC_offshorewind_class12_moderate_floating_1_68,0,0,0
+EIC_offshorewind_class12_moderate_floating_1_69,0,0,0
+EIC_offshorewind_class12_moderate_floating_0_0,0,0,0
+EIC_offshorewind_class12_moderate_floating_0_1,0,0,0
+EIC_offshorewind_class12_moderate_floating_0_8,0,0,0
+EIC_offshorewind_class12_moderate_floating_0_9,0,0,0
+EIC_offshorewind_class12_moderate_floating_0_28,0,0,0
+EIC_offshorewind_class12_moderate_floating_0_29,0,0,0
+EIC_offshorewind_class12_moderate_floating_0_68,0,0,0
+EIC_offshorewind_class12_moderate_floating_0_69,0,0,0
+EIC_offshorewind_class12_moderate_floating_0_138,0,0,0
+EIC_offshorewind_class12_moderate_floating_0_139,0,0,0
+TRE_offshorewind_class3_moderate_fixed_1_0,0,0,0
+TRE_offshorewind_class3_moderate_fixed_1_1,0,0,0
+TRE_offshorewind_class3_moderate_fixed_1_2,0,0,0
+TRE_offshorewind_class3_moderate_fixed_1_3,0,0,0
+TRE_offshorewind_class3_moderate_fixed_1_4,0,0,0
+TRE_offshorewind_class3_moderate_fixed_1_5,0,0,0
+TRE_offshorewind_class3_moderate_fixed_1_6,0,0,0
+TRE_offshorewind_class3_moderate_fixed_1_7,0,0,0
+TRE_offshorewind_class3_moderate_fixed_1_8,0,0,0
+TRE_offshorewind_class3_moderate_fixed_1_9,0,0,0
+TRE_offshorewind_class3_moderate_fixed_0_0,0,0,0
+TRE_offshorewind_class3_moderate_fixed_0_1,0,0,0
+TRE_offshorewind_class3_moderate_fixed_0_4,0,0,0
+TRE_offshorewind_class3_moderate_fixed_0_5,0,0,0
+TRE_offshorewind_class3_moderate_fixed_0_10,0,0,0
+TRE_offshorewind_class3_moderate_fixed_0_11,0,0,0
+TRE_offshorewind_class3_moderate_fixed_0_18,0,0,0
+TRE_offshorewind_class3_moderate_fixed_0_19,0,0,0
+TRE_offshorewind_class3_moderate_fixed_0_28,0,0,0
+TRE_offshorewind_class3_moderate_fixed_0_29,0,0,0
+TRE_offshorewind_class12_moderate_floating_1_0,0,0,0
+TRE_offshorewind_class12_moderate_floating_1_1,0,0,0
+TRE_offshorewind_class12_moderate_floating_1_6,0,0,0
+TRE_offshorewind_class12_moderate_floating_1_7,0,0,0
+TRE_offshorewind_class12_moderate_floating_1_18,0,0,0
+TRE_offshorewind_class12_moderate_floating_1_19,0,0,0
+TRE_offshorewind_class12_moderate_floating_1_38,0,0,0
+TRE_offshorewind_class12_moderate_floating_1_39,0,0,0
+TRE_offshorewind_class12_moderate_floating_1_68,0,0,0
+TRE_offshorewind_class12_moderate_floating_1_69,0,0,0
+TRE_offshorewind_class12_moderate_floating_0_0,0,0,0
+TRE_offshorewind_class12_moderate_floating_0_1,0,0,0
+TRE_offshorewind_class12_moderate_floating_0_8,0,0,0
+TRE_offshorewind_class12_moderate_floating_0_9,0,0,0
+TRE_offshorewind_class12_moderate_floating_0_28,0,0,0
+TRE_offshorewind_class12_moderate_floating_0_29,0,0,0
+TRE_offshorewind_class12_moderate_floating_0_68,0,0,0
+TRE_offshorewind_class12_moderate_floating_0_69,0,0,0
+TRE_offshorewind_class12_moderate_floating_0_138,0,0,0
+TRE_offshorewind_class12_moderate_floating_0_139,0,0,0
+WECC_offshorewind_class3_moderate_fixed_1_0,0,0,0
+WECC_offshorewind_class3_moderate_fixed_1_1,0,0,0
+WECC_offshorewind_class3_moderate_fixed_1_2,0,0,0
+WECC_offshorewind_class3_moderate_fixed_1_3,0,0,0
+WECC_offshorewind_class3_moderate_fixed_1_4,0,0,0
+WECC_offshorewind_class3_moderate_fixed_1_5,0,0,0
+WECC_offshorewind_class3_moderate_fixed_1_6,0,0,0
+WECC_offshorewind_class3_moderate_fixed_1_7,0,0,0
+WECC_offshorewind_class3_moderate_fixed_1_8,0,0,0
+WECC_offshorewind_class3_moderate_fixed_1_9,0,0,0
+WECC_offshorewind_class3_moderate_fixed_0_0,0,0,0
+WECC_offshorewind_class3_moderate_fixed_0_1,0,0,0
+WECC_offshorewind_class3_moderate_fixed_0_4,0,0,0
+WECC_offshorewind_class3_moderate_fixed_0_5,0,0,0
+WECC_offshorewind_class3_moderate_fixed_0_10,0,0,0
+WECC_offshorewind_class3_moderate_fixed_0_11,0,0,0
+WECC_offshorewind_class3_moderate_fixed_0_18,0,0,0
+WECC_offshorewind_class3_moderate_fixed_0_19,0,0,0
+WECC_offshorewind_class3_moderate_fixed_0_28,0,0,0
+WECC_offshorewind_class3_moderate_fixed_0_29,0,0,0
+WECC_offshorewind_class12_moderate_floating_1_0,0,0,0
+WECC_offshorewind_class12_moderate_floating_1_1,0,0,0
+WECC_offshorewind_class12_moderate_floating_1_6,0,0,0
+WECC_offshorewind_class12_moderate_floating_1_7,0,0,0
+WECC_offshorewind_class12_moderate_floating_1_18,0,0,0
+WECC_offshorewind_class12_moderate_floating_1_19,0,0,0
+WECC_offshorewind_class12_moderate_floating_1_38,0,0,0
+WECC_offshorewind_class12_moderate_floating_1_39,0,0,0
+WECC_offshorewind_class12_moderate_floating_1_68,0,0,0
+WECC_offshorewind_class12_moderate_floating_1_69,0,0,0
+WECC_offshorewind_class12_moderate_floating_0_0,0,0,0
+WECC_offshorewind_class12_moderate_floating_0_1,0,0,0
+WECC_offshorewind_class12_moderate_floating_0_8,0,0,0
+WECC_offshorewind_class12_moderate_floating_0_9,0,0,0
+WECC_offshorewind_class12_moderate_floating_0_28,0,0,0
+WECC_offshorewind_class12_moderate_floating_0_29,0,0,0
+WECC_offshorewind_class12_moderate_floating_0_68,0,0,0
+WECC_offshorewind_class12_moderate_floating_0_69,0,0,0
+WECC_offshorewind_class12_moderate_floating_0_138,0,0,0
+WECC_offshorewind_class12_moderate_floating_0_139,0,0,0
\ No newline at end of file
diff --git a/test/VREStor/Resources/Storage.csv b/test/VREStor/Resources/Storage.csv
new file mode 100644
index 0000000000..b1369bf4fe
--- /dev/null
+++ b/test/VREStor/Resources/Storage.csv
@@ -0,0 +1,9 @@
+Resource,Zone,Model,Existing_Cap_MWh,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Max_Cap_MW,Max_Cap_MWh,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWhyr,Var_OM_Cost_per_MWh,Var_OM_Cost_per_MWh_In,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Self_Disch,Eff_Up,Eff_Down,Min_Duration,Max_Duration,region,technology,cluster
+EIC_batteries_1,1,1,1424.4,712.2,0,0,16.96,0,0,0,6235,0,0,0.15,0.15,10.34,None,0.041,0,0.92,0.92,1,10,EIC,Batteries,1
+EIC_hydroelectric_pumped_storage_1,1,1,275638,17783.1,0,0,170.99,0,0,0,47048,0,0,0.15,0.15,10.34,None,0.524,0,0.866,0.866,1,20,EIC,Hydroelectric Pumped Storage,1
+TRE_batteries_1,2,1,721.4,360.7,0,0,45.09,0,0,0,6235,0,0,0.15,0.15,10.34,None,0.001,0,0.92,0.92,1,10,TRE,Batteries,1
+WECC_batteries_1,3,1,3611,1357.5,0,0,28.28,0,0,0,6235,0,0,0.15,0.15,10.34,None,0.02,0,0.92,0.92,1,10,WECC,Batteries,1
+WECC_hydroelectric_pumped_storage_1,3,1,70790,4567.1,0,0,101.49,0,0,0,47048,0,0,0.15,0.15,10.34,None,0.175,0,0.866,0.866,1,20,WECC,Hydroelectric Pumped Storage,1
+EIC_battery_moderate_0,1,1,0,0,1,1,1,-1,-1,19978,5955,11897,3546,0.15,0.15,0,None,0,0,0.92,0.92,1,10,EIC,Battery_*_Moderate,0
+TRE_battery_moderate_0,2,1,0,0,1,1,1,-1,-1,19389,5955,11546,3546,0.15,0.15,0,None,0,0,0.92,0.92,1,10,TRE,Battery_*_Moderate,0
+WECC_battery_moderate_0,3,1,0,0,1,1,1,-1,-1,20202,5955,12030,3546,0.15,0.15,0,None,0,0,0.92,0.92,1,10,WECC,Battery_*_Moderate,0
\ No newline at end of file
diff --git a/test/VREStor/Resources/Thermal.csv b/test/VREStor/Resources/Thermal.csv
new file mode 100644
index 0000000000..72354a8148
--- /dev/null
+++ b/test/VREStor/Resources/Thermal.csv
@@ -0,0 +1,46 @@
+Resource,Zone,Model,Existing_Cap_MWh,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Start_Cost_per_MW,Start_Fuel_MMBTU_per_MW,Heat_Rate_MMBTU_per_MWh,Fuel,Min_Power,Min_Duration,Max_Duration,Reg_Max,Rsv_Max,Reg_Cost,Rsv_Cost,CO2_Capture_Rate,CO2_Capture_Cost_per_Metric_Ton,Ramp_Up_Percentage,Ramp_Dn_Percentage,Up_Time,Down_Time,region,technology,cluster
+EIC_conventional_steam_coal_1,1,1,0,12806.9,0,1,177.87,0,0,0,78258,1.88,124,16.5,13.34,east_north_central_coal,0.5,0,0,0.095,0.19,0,0,0,0,0.57,0.57,24,24,EIC,Conventional Steam Coal,1
+EIC_conventional_steam_coal_2,1,1,0,109345.4,0,1,584.74,0,0,0,64567,1.88,124,16.5,10.89,east_north_central_coal,0.5,0,0,0.095,0.19,0,0,0,0,0.57,0.57,24,24,EIC,Conventional Steam Coal,2
+EIC_natural_gas_fired_combined_cycle_1,1,1,0,27155.3,0,1,163.59,0,0,0,16322,4.53,92,2,9.24,east_north_central_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,0.64,0.64,6,6,EIC,Natural Gas Fired Combined Cycle,1
+EIC_natural_gas_fired_combined_cycle_2,1,1,0,169897.4,0,1,638.71,0,0,0,11042,3.58,92,2,7.34,east_north_central_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,0.64,0.64,6,6,EIC,Natural Gas Fired Combined Cycle,2
+EIC_natural_gas_fired_combustion_turbine_1,1,1,0,98926.5,0,1,100.13,0,0,0,10031,5.28,119,3.5,12.03,east_north_central_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,3.78,3.78,1,1,EIC,Natural Gas Fired Combustion Turbine,1
+EIC_natural_gas_fired_combustion_turbine_2,1,1,0,10412.9,0,1,31.27,0,0,0,13557,5.28,119,3.5,14.66,east_north_central_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,3.78,3.78,1,1,EIC,Natural Gas Fired Combustion Turbine,2
+EIC_natural_gas_internal_combustion_engine_1,1,1,0,2578.5,0,1,4.44,0,0,0,21000,5.29,38,0,10.29,east_north_central_naturalgas,0.18,0,0,0.106666667,0.213333333,0,0,0,0,3.78,3.78,1,1,EIC,Natural Gas Internal Combustion Engine,1
+EIC_natural_gas_steam_turbine_1,1,1,0,39625.2,0,1,203.21,0,0,0,35537,1.06,87,13.7,12.8,east_north_central_naturalgas,0.5,0,0,0.63,1.26,0,0,0,0,0.64,0.64,6,6,EIC,Natural Gas Steam Turbine,1
+EIC_nuclear_1,1,1,0,82406.6,0,1,1030.08,0,0,0,214812,2.84,248,0,10.45,east_north_central_uranium,0.5,0,0,0.041666667,0.083333333,0,0,0,0,0.25,0.25,24,24,EIC,Nuclear,1
+EIC_petroleum_liquids_1,1,1,0,23196.2,0,1,9.96,0,0,0,21000,7.97,38,0,15.5,east_north_central_distillate,0.18,0,0,0,0,0,0,0,0,3.78,3.78,1,1,EIC,Petroleum Liquids,1
+TRE_conventional_steam_coal_1,2,1,0,5063.6,0,1,723.37,0,0,0,60405,1.88,124,16.5,10.33,west_south_central_coal,0.5,0,0,0.095,0.19,0,0,0,0,0.57,0.57,24,24,TRE,Conventional Steam Coal,1
+TRE_conventional_steam_coal_2,2,1,0,3713,0,1,530.43,0,0,0,68432,1.88,124,16.5,12.13,west_south_central_coal,0.5,0,0,0.095,0.19,0,0,0,0,0.57,0.57,24,24,TRE,Conventional Steam Coal,2
+TRE_natural_gas_fired_combined_cycle_1,2,1,0,30139.1,0,1,579.6,0,0,0,10912,3.59,92,2,7.72,west_south_central_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,0.64,0.64,6,6,TRE,Natural Gas Fired Combined Cycle,1
+TRE_natural_gas_fired_combined_cycle_2,2,1,0,6317.6,0,1,315.88,0,0,0,15698,4.36,92,2,9.8,west_south_central_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,0.64,0.64,6,6,TRE,Natural Gas Fired Combined Cycle,2
+TRE_natural_gas_fired_combustion_turbine_1,2,1,0,2924,0,1,81.22,0,0,0,10001,5.28,119,3.5,14.08,west_south_central_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,3.78,3.78,1,1,TRE,Natural Gas Fired Combustion Turbine,1
+TRE_natural_gas_fired_combustion_turbine_2,2,1,0,2826.9,0,1,50.48,0,0,0,11926,5.28,119,3.5,11.11,west_south_central_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,3.78,3.78,1,1,TRE,Natural Gas Fired Combustion Turbine,2
+TRE_natural_gas_internal_combustion_engine_1,2,1,0,502.7,0,1,10.7,0,0,0,21000,4.72,38,0,9.18,west_south_central_naturalgas,0.18,0,0,0.106666667,0.213333333,0,0,0,0,3.78,3.78,1,1,TRE,Natural Gas Internal Combustion Engine,1
+TRE_natural_gas_steam_turbine_1,2,1,0,8249.5,0,1,235.7,0,0,0,34182,1.06,87,13.7,13.24,west_south_central_naturalgas,0.5,0,0,0.63,1.26,0,0,0,0,0.64,0.64,6,6,TRE,Natural Gas Steam Turbine,1
+TRE_nuclear_1,2,1,0,5120,0,1,1280,0,0,0,193275,2.84,248,0,10.45,west_south_central_uranium,0.5,0,0,0.041666667,0.083333333,0,0,0,0,0.25,0.25,24,24,TRE,Nuclear,1
+TRE_petroleum_liquids_1,2,1,0,23.7,0,1,1.48,0,0,0,21000,6.38,38,0,12.4,west_south_central_distillate,0.18,0,0,0,0,0,0,0,0,3.78,3.78,1,1,TRE,Petroleum Liquids,1
+WECC_conventional_steam_coal_1,3,1,0,11415.2,0,1,496.31,0,0,0,64165,1.88,124,16.5,10.63,mountain_coal,0.5,0,0,0.095,0.19,0,0,0,0,0.57,0.57,24,24,WECC,Conventional Steam Coal,1
+WECC_conventional_steam_coal_2,3,1,0,2074.5,0,1,129.66,0,0,0,77721,1.88,124,16.5,12.2,mountain_coal,0.5,0,0,0.095,0.19,0,0,0,0,0.57,0.57,24,24,WECC,Conventional Steam Coal,2
+WECC_natural_gas_fired_combined_cycle_1,3,1,0,37593.3,0,1,475.86,0,0,0,10399,3.6,92,2,7.78,mountain_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,0.64,0.64,6,6,WECC,Natural Gas Fired Combined Cycle,1
+WECC_natural_gas_fired_combined_cycle_2,3,1,0,12502.4,0,1,158.26,0,0,0,16492,4.55,92,2,8.51,mountain_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,0.64,0.64,6,6,WECC,Natural Gas Fired Combined Cycle,2
+WECC_natural_gas_fired_combustion_turbine_1,3,1,0,15252.7,0,1,71.61,0,0,0,10479,5.28,119,3.5,11.06,mountain_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,3.78,3.78,1,1,WECC,Natural Gas Fired Combustion Turbine,1
+WECC_natural_gas_fired_combustion_turbine_2,3,1,0,6281.6,0,1,27.92,0,0,0,13486,5.28,119,3.5,12.78,mountain_naturalgas,0.3,0,0,0.106666667,0.213333333,0,0,0,0,3.78,3.78,1,1,WECC,Natural Gas Fired Combustion Turbine,2
+WECC_natural_gas_internal_combustion_engine_1,3,1,0,1282.7,0,1,6.51,0,0,0,21000,4.88,38,0,9.49,mountain_naturalgas,0.18,0,0,0.106666667,0.213333333,0,0,0,0,3.78,3.78,1,1,WECC,Natural Gas Internal Combustion Engine,1
+WECC_natural_gas_steam_turbine_1,3,1,0,2669.5,0,1,95.34,0,0,0,51303,1.06,87,13.7,12.4,mountain_naturalgas,0.5,0,0,0.63,1.26,0,0,0,0,0.64,0.64,6,6,WECC,Natural Gas Steam Turbine,1
+WECC_nuclear_1,3,1,0,5175,0,1,1293.75,0,0,0,211822,2.84,248,0,10.45,mountain_uranium,0.5,0,0,0.041666667,0.083333333,0,0,0,0,0.25,0.25,24,24,WECC,Nuclear,1
+WECC_petroleum_liquids_1,3,1,0,636.2,0,1,4.24,0,0,0,21000,7.2,38,0,14,mountain_distillate,0.18,0,0,0,0,0,0,0,0,3.78,3.78,1,1,WECC,Petroleum Liquids,1
+EIC_naturalgas_ccavgcf_moderate_0,1,1,0,0,1,1,500,0,-1,56026,28000,2,106,2,6.36,east_north_central_naturalgas,0.3,0,0,0,0,0,0,0,0,0.64,0.64,6,6,EIC,NaturalGas_CCAvgCF_Moderate,0
+EIC_naturalgas_ctavgcf_moderate_0,1,1,0,0,1,1,100,0,-1,45192,21000,5,137,3.5,9.72,east_north_central_naturalgas,0.3,0,0,0,0,0,0,0,0,3.78,3.78,1,1,EIC,NaturalGas_CTAvgCF_Moderate,0
+EIC_naturalgas_ccccsavgcf_conservative_0,1,1,0,0,1,1,500,0,-1,120812,67000,6,106,0,7.16,east_north_central_naturalgas,0.6,0,0,0.106666667,0.213333333,0,0,0.9,27,0.64,0.64,6,6,EIC,NaturalGas_CCCCSAvgCF_Conservative,0
+EIC_advnuclear_atb_moderate_0,1,1,0,0,1,1,500,0,-1,45000,0,2.84,285,0,10.44,east_north_central_uranium,0.5,0,0,0,0,0,0,0,0,0.25,0.25,24,24,EIC,AdvNuclear_ATB_Moderate,0
+TRE_naturalgas_ccavgcf_moderate_0,2,1,0,0,1,1,500,0,-1,42007,28000,2,106,2,6.36,west_south_central_naturalgas,0.3,0,0,0,0,0,0,0,0,0.64,0.64,6,6,TRE,NaturalGas_CCAvgCF_Moderate,0
+TRE_naturalgas_ctavgcf_moderate_0,2,1,0,0,1,1,100,0,-1,35319,21000,5,137,3.5,9.72,west_south_central_naturalgas,0.3,0,0,0,0,0,0,0,0,3.78,3.78,1,1,TRE,NaturalGas_CTAvgCF_Moderate,0
+TRE_naturalgas_ccccsavgcf_conservative_0,2,1,0,0,1,1,500,0,-1,106685,67000,6,106,0,7.16,west_south_central_naturalgas,0.6,0,0,0.106666667,0.213333333,0,0,0.9,27,0.64,0.64,6,6,TRE,NaturalGas_CCCCSAvgCF_Conservative,0
+TRE_advnuclear_atb_moderate_0,2,1,0,0,1,1,500,0,-1,450000,0,2.84,285,0,10.44,west_south_central_uranium,0.5,0,0,0,0,0,0,0,0,0.25,0.25,24,24,TRE,AdvNuclear_ATB_Moderate,0
+WECC_naturalgas_ccavgcf_moderate_0,3,1,0,0,1,1,500,0,-1,59543,28000,2,106,2,6.36,mountain_naturalgas,0.3,0,0,0,0,0,0,0,0,0.64,0.64,6,6,WECC,NaturalGas_CCAvgCF_Moderate,0
+WECC_naturalgas_ctavgcf_moderate_0,3,1,0,0,1,1,100,0,-1,45587,21000,5,137,3.5,9.72,mountain_naturalgas,0.3,0,0,0,0,0,0,0,0,3.78,3.78,1,1,WECC,NaturalGas_CTAvgCF_Moderate,0
+WECC_naturalgas_ccccsavgcf_conservative_0,3,1,0,0,1,1,500,0,-1,119927,67000,6,106,0,7.16,mountain_naturalgas,0.6,0,0,0.106666667,0.213333333,0,0,0.9,27,0.64,0.64,6,6,WECC,NaturalGas_CCCCSAvgCF_Conservative,0
+WECC_advnuclear_atb_moderate_0,3,1,0,0,1,1,500,0,-1,450000,0,2.84,285,0,10.44,mountain_uranium,0.5,0,0,0,0,0,0,0,0,0.25,0.25,24,24,WECC,AdvNuclear_ATB_Moderate,0
+EIC_naturalgas_ctavgcf_moderate_0_zerocarbon,1,1,0,0,1,1,100,0,-1,61000,0,5,137,3.5,9.72,zerocarbon_fuel,0.3,0,0,0,0,0,0,0,0,3.78,3.78,1,1,EIC,NaturalGas_CTAvgCF_Moderate_zerocarbon,0
+TRE_naturalgas_ctavgcf_moderate_0_zerocarbon,2,1,0,0,1,1,100,0,-1,61000,0,5,137,3.5,9.72,zerocarbon_fuel,0.3,0,0,0,0,0,0,0,0,3.78,3.78,1,1,TRE,NaturalGas_CTAvgCF_Moderate_zerocarbon,0
+WECC_naturalgas_ctavgcf_moderate_0_zerocarbon,3,1,0,0,1,1,100,0,-1,61000,0,5,137,3.5,9.72,zerocarbon_fuel,0.3,0,0,0,0,0,0,0,0,3.78,3.78,1,1,WECC,NaturalGas_CTAvgCF_Moderate_zerocarbon,0
\ No newline at end of file
diff --git a/test/VREStor/Resources/Vre.csv b/test/VREStor/Resources/Vre.csv
new file mode 100644
index 0000000000..53da51313f
--- /dev/null
+++ b/test/VREStor/Resources/Vre.csv
@@ -0,0 +1,129 @@
+Resource,Zone,Num_VRE_Bins,Existing_Cap_MWh,Existing_Cap_MW,New_Build,Can_Retire,Cap_Size,Min_Cap_MW,Max_Cap_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Var_OM_Cost_per_MWh,Heat_Rate_MMBTU_per_MWh,Fuel,Self_Disch,Eff_Up,Eff_Down,Ramp_Up_Percentage,Ramp_Dn_Percentage,region,technology,cluster
+EIC_offshore_wind_turbine_1,1,1,0,29.3,0,1,29.3,0,0,0,111496,0,10.34,None,0,1,1,1,1,EIC,Offshore Wind Turbine,1
+EIC_onshore_wind_turbine_1,1,1,0,47407.4,0,1,66.77,0,0,0,43000,0,10.34,None,0,1,1,1,1,EIC,Onshore Wind Turbine,1
+EIC_solar_photovoltaic_1,1,1,0,8533.9,0,1,5.95,0,0,0,22623,0,10.34,None,0,1,1,1,1,EIC,Solar Photovoltaic,1
+TRE_onshore_wind_turbine_1,2,1,0,21683.1,0,1,163.03,0,0,0,43000,0,10.34,None,0,1,1,1,1,TRE,Onshore Wind Turbine,1
+TRE_solar_photovoltaic_1,2,1,0,1821.5,0,1,65.05,0,0,0,22623,0,10.34,None,0,1,1,1,1,TRE,Solar Photovoltaic,1
+WECC_geothermal_1,3,1,0,1752.4,0,0,12,0,0,0,209101,0,10.34,None,0,1,1,1,1,WECC,Geothermal,1
+WECC_onshore_wind_turbine_1,3,1,0,20644.2,0,1,68.81,0,0,0,43000,0,10.34,None,0,1,1,1,1,WECC,Onshore Wind Turbine,1
+WECC_solar_photovoltaic_1,3,1,0,14659.8,0,1,14.87,0,0,0,22623,0,10.34,None,0,1,1,1,1,WECC,Solar Photovoltaic,1
+EIC_offshorewind_class3_moderate_fixed_1_0,1,1,0,0,1,1,1,0,65762.8,147250,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_1,0
+EIC_offshorewind_class3_moderate_fixed_1_1,1,1,0,0,1,1,1,0,14399.2,157328,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_1,1
+EIC_offshorewind_class3_moderate_fixed_1_2,1,1,0,0,1,1,1,0,34280.8,153961,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_1,2
+EIC_offshorewind_class3_moderate_fixed_1_3,1,1,0,0,1,1,1,0,101840.5,168852,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_1,3
+EIC_offshorewind_class3_moderate_fixed_1_4,1,1,0,0,1,1,1,0,118605,164784,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_1,4
+EIC_offshorewind_class3_moderate_fixed_1_5,1,1,0,0,1,1,1,0,18875.6,146792,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_1,5
+EIC_offshorewind_class3_moderate_fixed_1_6,1,1,0,0,1,1,1,0,79943.7,144977,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_1,6
+EIC_offshorewind_class3_moderate_fixed_1_7,1,1,0,0,1,1,1,0,23454.7,347411,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_1,7
+EIC_offshorewind_class3_moderate_fixed_1_8,1,1,0,0,1,1,1,0,59461.7,393568,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_1,8
+EIC_offshorewind_class3_moderate_fixed_1_9,1,1,0,0,1,1,1,0,73503.9,155384,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_1,9
+EIC_offshorewind_class3_moderate_fixed_0_0,1,1,0,0,1,1,1,0,65762.8,147250,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_0,0
+EIC_offshorewind_class3_moderate_fixed_0_1,1,1,0,0,1,1,1,0,14399.2,157328,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_0,1
+EIC_offshorewind_class3_moderate_fixed_0_4,1,1,0,0,1,1,1,0,34280.8,153961,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_0,4
+EIC_offshorewind_class3_moderate_fixed_0_5,1,1,0,0,1,1,1,0,101840.5,168852,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_0,5
+EIC_offshorewind_class3_moderate_fixed_0_10,1,1,0,0,1,1,1,0,118605,164784,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_0,10
+EIC_offshorewind_class3_moderate_fixed_0_11,1,1,0,0,1,1,1,0,18875.6,146792,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_0,11
+EIC_offshorewind_class3_moderate_fixed_0_18,1,1,0,0,1,1,1,0,79943.7,144977,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_0,18
+EIC_offshorewind_class3_moderate_fixed_0_19,1,1,0,0,1,1,1,0,23454.7,347411,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_0,19
+EIC_offshorewind_class3_moderate_fixed_0_28,1,1,0,0,1,1,1,0,59461.7,393568,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_0,28
+EIC_offshorewind_class3_moderate_fixed_0_29,1,1,0,0,1,1,1,0,73503.9,155384,78449,0,0,None,0,0,0,0,0,EIC,OffShoreWind_Class3_Moderate_fixed_0,29
+EIC_offshorewind_class12_moderate_floating_1_0,1,1,0,0,1,1,1,0,65762.8,204577,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_1,0
+EIC_offshorewind_class12_moderate_floating_1_1,1,1,0,0,1,1,1,0,14399.2,214655,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_1,1
+EIC_offshorewind_class12_moderate_floating_1_6,1,1,0,0,1,1,1,0,34280.8,211288,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_1,6
+EIC_offshorewind_class12_moderate_floating_1_7,1,1,0,0,1,1,1,0,101840.5,226179,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_1,7
+EIC_offshorewind_class12_moderate_floating_1_18,1,1,0,0,1,1,1,0,118605,222111,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_1,18
+EIC_offshorewind_class12_moderate_floating_1_19,1,1,0,0,1,1,1,0,18875.6,204119,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_1,19
+EIC_offshorewind_class12_moderate_floating_1_38,1,1,0,0,1,1,1,0,79943.7,202304,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_1,38
+EIC_offshorewind_class12_moderate_floating_1_39,1,1,0,0,1,1,1,0,23454.7,404738,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_1,39
+EIC_offshorewind_class12_moderate_floating_1_68,1,1,0,0,1,1,1,0,59461.7,450895,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_1,68
+EIC_offshorewind_class12_moderate_floating_1_69,1,1,0,0,1,1,1,0,73503.9,212711,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_1,69
+EIC_offshorewind_class12_moderate_floating_0_0,1,1,0,0,1,1,1,0,65762.8,204577,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_0,0
+EIC_offshorewind_class12_moderate_floating_0_1,1,1,0,0,1,1,1,0,14399.2,214655,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_0,1
+EIC_offshorewind_class12_moderate_floating_0_8,1,1,0,0,1,1,1,0,34280.8,211288,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_0,8
+EIC_offshorewind_class12_moderate_floating_0_9,1,1,0,0,1,1,1,0,101840.5,226179,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_0,9
+EIC_offshorewind_class12_moderate_floating_0_28,1,1,0,0,1,1,1,0,118605,222111,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_0,28
+EIC_offshorewind_class12_moderate_floating_0_29,1,1,0,0,1,1,1,0,18875.6,204119,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_0,29
+EIC_offshorewind_class12_moderate_floating_0_68,1,1,0,0,1,1,1,0,79943.7,202304,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_0,68
+EIC_offshorewind_class12_moderate_floating_0_69,1,1,0,0,1,1,1,0,23454.7,404738,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_0,69
+EIC_offshorewind_class12_moderate_floating_0_138,1,1,0,0,1,1,1,0,59461.7,450895,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_0,138
+EIC_offshorewind_class12_moderate_floating_0_139,1,1,0,0,1,1,1,0,73503.9,212711,68827,0,0,None,0,1,1,1,1,EIC,OffShoreWind_Class12_Moderate_floating_0,139
+TRE_offshorewind_class3_moderate_fixed_1_0,2,1,0,0,1,1,1,0,13077.5,145004,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_1,0
+TRE_offshorewind_class3_moderate_fixed_1_1,2,1,0,0,1,1,1,0,9995,158104,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_1,1
+TRE_offshorewind_class3_moderate_fixed_1_2,2,1,0,0,1,1,1,0,22842.5,140443,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_1,2
+TRE_offshorewind_class3_moderate_fixed_1_3,2,1,0,0,1,1,1,0,895,157772,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_1,3
+TRE_offshorewind_class3_moderate_fixed_1_4,2,1,0,0,1,1,1,0,20865,142961,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_1,4
+TRE_offshorewind_class3_moderate_fixed_1_5,2,1,0,0,1,1,1,0,4480,166128,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_1,5
+TRE_offshorewind_class3_moderate_fixed_1_6,2,1,0,0,1,1,1,0,23652,166849,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_1,6
+TRE_offshorewind_class3_moderate_fixed_1_7,2,1,0,0,1,1,1,0,10070,157895,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_1,7
+TRE_offshorewind_class3_moderate_fixed_1_8,2,1,0,0,1,1,1,0,20680,167576,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_1,8
+TRE_offshorewind_class3_moderate_fixed_1_9,2,1,0,0,1,1,1,0,16746,156072,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_1,9
+TRE_offshorewind_class3_moderate_fixed_0_0,2,1,0,0,1,1,1,0,13077.5,145004,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_0,0
+TRE_offshorewind_class3_moderate_fixed_0_1,2,1,0,0,1,1,1,0,9995,158104,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_0,1
+TRE_offshorewind_class3_moderate_fixed_0_4,2,1,0,0,1,1,1,0,22842.5,140443,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_0,4
+TRE_offshorewind_class3_moderate_fixed_0_5,2,1,0,0,1,1,1,0,895,157772,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_0,5
+TRE_offshorewind_class3_moderate_fixed_0_10,2,1,0,0,1,1,1,0,20865,142961,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_0,10
+TRE_offshorewind_class3_moderate_fixed_0_11,2,1,0,0,1,1,1,0,4480,166128,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_0,11
+TRE_offshorewind_class3_moderate_fixed_0_18,2,1,0,0,1,1,1,0,23652,166849,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_0,18
+TRE_offshorewind_class3_moderate_fixed_0_19,2,1,0,0,1,1,1,0,10070,157895,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_0,19
+TRE_offshorewind_class3_moderate_fixed_0_28,2,1,0,0,1,1,1,0,20680,167576,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_0,28
+TRE_offshorewind_class3_moderate_fixed_0_29,2,1,0,0,1,1,1,0,16746,156072,78449,0,0,None,0,0,0,0,0,TRE,OffShoreWind_Class3_Moderate_fixed_0,29
+TRE_offshorewind_class12_moderate_floating_1_0,2,1,0,0,1,1,1,0,13077.5,200994,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_1,0
+TRE_offshorewind_class12_moderate_floating_1_1,2,1,0,0,1,1,1,0,9995,214094,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_1,1
+TRE_offshorewind_class12_moderate_floating_1_6,2,1,0,0,1,1,1,0,22842.5,196433,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_1,6
+TRE_offshorewind_class12_moderate_floating_1_7,2,1,0,0,1,1,1,0,895,213762,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_1,7
+TRE_offshorewind_class12_moderate_floating_1_18,2,1,0,0,1,1,1,0,20865,198951,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_1,18
+TRE_offshorewind_class12_moderate_floating_1_19,2,1,0,0,1,1,1,0,4480,222118,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_1,19
+TRE_offshorewind_class12_moderate_floating_1_38,2,1,0,0,1,1,1,0,23652,222839,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_1,38
+TRE_offshorewind_class12_moderate_floating_1_39,2,1,0,0,1,1,1,0,10070,213885,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_1,39
+TRE_offshorewind_class12_moderate_floating_1_68,2,1,0,0,1,1,1,0,20680,223566,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_1,68
+TRE_offshorewind_class12_moderate_floating_1_69,2,1,0,0,1,1,1,0,16746,212062,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_1,69
+TRE_offshorewind_class12_moderate_floating_0_0,2,1,0,0,1,1,1,0,13077.5,200994,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_0,0
+TRE_offshorewind_class12_moderate_floating_0_1,2,1,0,0,1,1,1,0,9995,214094,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_0,1
+TRE_offshorewind_class12_moderate_floating_0_8,2,1,0,0,1,1,1,0,22842.5,196433,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_0,8
+TRE_offshorewind_class12_moderate_floating_0_9,2,1,0,0,1,1,1,0,895,213762,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_0,9
+TRE_offshorewind_class12_moderate_floating_0_28,2,1,0,0,1,1,1,0,20865,198951,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_0,28
+TRE_offshorewind_class12_moderate_floating_0_29,2,1,0,0,1,1,1,0,4480,222118,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_0,29
+TRE_offshorewind_class12_moderate_floating_0_68,2,1,0,0,1,1,1,0,23652,222839,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_0,68
+TRE_offshorewind_class12_moderate_floating_0_69,2,1,0,0,1,1,1,0,10070,213885,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_0,69
+TRE_offshorewind_class12_moderate_floating_0_138,2,1,0,0,1,1,1,0,20680,223566,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_0,138
+TRE_offshorewind_class12_moderate_floating_0_139,2,1,0,0,1,1,1,0,16746,212062,68827,0,0,None,0,1,1,1,1,TRE,OffShoreWind_Class12_Moderate_floating_0,139
+WECC_offshorewind_class3_moderate_fixed_1_0,3,1,0,0,1,1,1,0,26916.5,174794,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_1,0
+WECC_offshorewind_class3_moderate_fixed_1_1,3,1,0,0,1,1,1,0,29943.3,179346,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_1,1
+WECC_offshorewind_class3_moderate_fixed_1_2,3,1,0,0,1,1,1,0,39553.5,177553,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_1,2
+WECC_offshorewind_class3_moderate_fixed_1_3,3,1,0,0,1,1,1,0,18780,162737,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_1,3
+WECC_offshorewind_class3_moderate_fixed_1_4,3,1,0,0,1,1,1,0,19994,174072,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_1,4
+WECC_offshorewind_class3_moderate_fixed_1_5,3,1,0,0,1,1,1,0,36016,175097,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_1,5
+WECC_offshorewind_class3_moderate_fixed_1_6,3,1,0,0,1,1,1,0,53762,174641,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_1,6
+WECC_offshorewind_class3_moderate_fixed_1_7,3,1,0,0,1,1,1,0,1544,151442,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_1,7
+WECC_offshorewind_class3_moderate_fixed_1_8,3,1,0,0,1,1,1,0,44128,176829,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_1,8
+WECC_offshorewind_class3_moderate_fixed_1_9,3,1,0,0,1,1,1,0,9122,151351,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_1,9
+WECC_offshorewind_class3_moderate_fixed_0_0,3,1,0,0,1,1,1,0,26916.5,174794,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_0,0
+WECC_offshorewind_class3_moderate_fixed_0_1,3,1,0,0,1,1,1,0,29943.3,179346,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_0,1
+WECC_offshorewind_class3_moderate_fixed_0_4,3,1,0,0,1,1,1,0,39553.5,177553,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_0,4
+WECC_offshorewind_class3_moderate_fixed_0_5,3,1,0,0,1,1,1,0,18780,162737,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_0,5
+WECC_offshorewind_class3_moderate_fixed_0_10,3,1,0,0,1,1,1,0,19994,174072,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_0,10
+WECC_offshorewind_class3_moderate_fixed_0_11,3,1,0,0,1,1,1,0,36016,175097,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_0,11
+WECC_offshorewind_class3_moderate_fixed_0_18,3,1,0,0,1,1,1,0,53762,174641,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_0,18
+WECC_offshorewind_class3_moderate_fixed_0_19,3,1,0,0,1,1,1,0,1544,151442,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_0,19
+WECC_offshorewind_class3_moderate_fixed_0_28,3,1,0,0,1,1,1,0,44128,176829,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_0,28
+WECC_offshorewind_class3_moderate_fixed_0_29,3,1,0,0,1,1,1,0,9122,151351,78449,0,0,None,0,0,0,0,0,WECC,OffShoreWind_Class3_Moderate_fixed_0,29
+WECC_offshorewind_class12_moderate_floating_1_0,3,1,0,0,1,1,1,0,26916.5,232121,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_1,0
+WECC_offshorewind_class12_moderate_floating_1_1,3,1,0,0,1,1,1,0,29943.3,236673,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_1,1
+WECC_offshorewind_class12_moderate_floating_1_6,3,1,0,0,1,1,1,0,39553.5,234880,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_1,6
+WECC_offshorewind_class12_moderate_floating_1_7,3,1,0,0,1,1,1,0,18780,220064,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_1,7
+WECC_offshorewind_class12_moderate_floating_1_18,3,1,0,0,1,1,1,0,19994,231399,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_1,18
+WECC_offshorewind_class12_moderate_floating_1_19,3,1,0,0,1,1,1,0,36016,232424,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_1,19
+WECC_offshorewind_class12_moderate_floating_1_38,3,1,0,0,1,1,1,0,53762,231968,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_1,38
+WECC_offshorewind_class12_moderate_floating_1_39,3,1,0,0,1,1,1,0,1544,208769,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_1,39
+WECC_offshorewind_class12_moderate_floating_1_68,3,1,0,0,1,1,1,0,44128,234156,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_1,68
+WECC_offshorewind_class12_moderate_floating_1_69,3,1,0,0,1,1,1,0,9122,208678,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_1,69
+WECC_offshorewind_class12_moderate_floating_0_0,3,1,0,0,1,1,1,0,26916.5,232121,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_0,0
+WECC_offshorewind_class12_moderate_floating_0_1,3,1,0,0,1,1,1,0,29943.3,236673,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_0,1
+WECC_offshorewind_class12_moderate_floating_0_8,3,1,0,0,1,1,1,0,39553.5,234880,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_0,8
+WECC_offshorewind_class12_moderate_floating_0_9,3,1,0,0,1,1,1,0,18780,220064,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_0,9
+WECC_offshorewind_class12_moderate_floating_0_28,3,1,0,0,1,1,1,0,19994,231399,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_0,28
+WECC_offshorewind_class12_moderate_floating_0_29,3,1,0,0,1,1,1,0,36016,232424,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_0,29
+WECC_offshorewind_class12_moderate_floating_0_68,3,1,0,0,1,1,1,0,53762,231968,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_0,68
+WECC_offshorewind_class12_moderate_floating_0_69,3,1,0,0,1,1,1,0,1544,208769,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_0,69
+WECC_offshorewind_class12_moderate_floating_0_138,3,1,0,0,1,1,1,0,44128,234156,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_0,138
+WECC_offshorewind_class12_moderate_floating_0_139,3,1,0,0,1,1,1,0,9122,208678,68827,0,0,None,0,1,1,1,1,WECC,OffShoreWind_Class12_Moderate_floating_0,139
\ No newline at end of file
diff --git a/test/VREStor/Resources/Vre_stor.csv b/test/VREStor/Resources/Vre_stor.csv
new file mode 100644
index 0000000000..2f8755c54f
--- /dev/null
+++ b/test/VREStor/Resources/Vre_stor.csv
@@ -0,0 +1,64 @@
+Resource,Zone,SOLAR,WIND,STOR_DC_DISCHARGE,STOR_DC_CHARGE,STOR_AC_DISCHARGE,STOR_AC_CHARGE,LDS_VRE_STOR,Existing_Cap_MW,Existing_Cap_MWh,Existing_Cap_Inverter_MW,Existing_Cap_Solar_MW,Existing_Cap_Wind_MW,Existing_Cap_Discharge_DC_MW,Existing_Cap_Charge_DC_MW,Existing_Cap_Discharge_AC_MW,Existing_Cap_Charge_AC_MW,New_Build,Can_Retire,Min_Cap_MW,Min_Cap_MWh,Min_Cap_Inverter_MW,Min_Cap_Solar_MW,Min_Cap_Wind_MW,Min_Cap_Discharge_DC_MW,Min_Cap_Charge_DC_MW,Min_Cap_Discharge_AC_MW,Min_Cap_Charge_AC_MW,Max_Cap_MW,Max_Cap_MWh,Max_Cap_Inverter_MW,Max_Cap_Solar_MW,Max_Cap_Wind_MW,Max_Cap_Discharge_DC_MW,Max_Cap_Charge_DC_MW,Max_Cap_Discharge_AC_MW,Max_Cap_Charge_AC_MW,Inv_Cost_per_MWyr,Fixed_OM_Cost_per_MWyr,Inv_Cost_per_MWhyr,Fixed_OM_Cost_per_MWhyr,Var_OM_Cost_per_MWh,Inv_Cost_Inverter_per_MWyr,Inv_Cost_Solar_per_MWyr,Inv_Cost_Wind_per_MWyr,Inv_Cost_Discharge_DC_per_MWyr,Inv_Cost_Charge_DC_per_MWyr,Inv_Cost_Discharge_AC_per_MWyr,Inv_Cost_Charge_AC_per_MWyr,Fixed_OM_Inverter_Cost_per_MWyr,Fixed_OM_Solar_Cost_per_MWyr,Fixed_OM_Wind_Cost_per_MWyr,Fixed_OM_Cost_Discharge_DC_per_MWyr,Fixed_OM_Cost_Charge_DC_per_MWyr,Fixed_OM_Cost_Discharge_AC_per_MWyr,Fixed_OM_Cost_Charge_AC_per_MWyr,Var_OM_Cost_per_MWh_Solar,Var_OM_Cost_per_MWh_Wind,Var_OM_Cost_per_MWh_Discharge_DC,Var_OM_Cost_per_MWh_Charge_DC,Var_OM_Cost_per_MWh_Discharge_AC,Var_OM_Cost_per_MWh_Charge_AC,EtaInverter,Inverter_Ratio_Wind,Inverter_Ratio_Solar,Power_to_Energy_DC,Power_to_Energy_AC,Self_Disch,Eff_Up_DC,Eff_Down_DC,Eff_Up_AC,Eff_Down_AC,region,Resource_Type,technology,cluster
+EIC_landbasedwind_class1_moderate_0,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,117315.5,-1,-1,-1,-1,14198,0,0,0,0.15,7522,0,56816,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_wind,LandbasedWind_Class1_Moderate_,0
+EIC_landbasedwind_class1_moderate_1,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,139803.7,-1,-1,-1,-1,17082,0,0,0,0.15,7522,0,56817,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_wind,LandbasedWind_Class1_Moderate_,1
+EIC_landbasedwind_class1_moderate_2,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,114313.7,-1,-1,-1,-1,17267,0,0,0,0.15,7522,0,56816,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_wind,LandbasedWind_Class1_Moderate_,2
+EIC_landbasedwind_class1_moderate_3,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,81237.6,-1,-1,-1,-1,25483,0,0,0,0.15,7522,0,56816,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_wind,LandbasedWind_Class1_Moderate_,3
+EIC_landbasedwind_class1_moderate_4,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,81092.2,-1,-1,-1,-1,16488,0,0,0,0.15,7522,0,56816,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_wind,LandbasedWind_Class1_Moderate_,4
+EIC_landbasedwind_class1_moderate_5,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,54453.3,-1,-1,-1,-1,25720,0,0,0,0.15,7522,0,56816,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_wind,LandbasedWind_Class1_Moderate_,5
+EIC_landbasedwind_class1_moderate_6,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,82417.2,-1,-1,-1,-1,21224,0,0,0,0.15,7522,0,56816,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_wind,LandbasedWind_Class1_Moderate_,6
+EIC_landbasedwind_class1_moderate_7,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,26531.1,-1,-1,-1,-1,32633,0,0,0,0.15,7522,0,56816,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_wind,LandbasedWind_Class1_Moderate_,7
+EIC_landbasedwind_class1_moderate_8,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,58187.4,-1,-1,-1,-1,28526,0,0,0,0.15,7522,0,56817,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_wind,LandbasedWind_Class1_Moderate_,8
+EIC_landbasedwind_class1_moderate_9,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,194921.8,-1,-1,-1,-1,244462,0,0,0,0.15,7522,0,56816,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_wind,LandbasedWind_Class1_Moderate_,9
+EIC_storage_metalair_advanced_0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,-1,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0.15,7522,0,0,0,0,0,0,1875,0,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,standalone_storage,Storage_MetalAir_Advanced,0
+EIC_utilitypv_class1_moderate_0,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,1351663.04,-1,-1,-1,-1,-1,8863,0,0,0,0.15,7522,22706,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_pv,UtilityPV_Class1_Moderate_,0
+EIC_utilitypv_class1_moderate_1,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,787394.14,-1,-1,-1,-1,-1,4464,0,0,0,0.15,7522,22706,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_pv,UtilityPV_Class1_Moderate_,1
+EIC_utilitypv_class1_moderate_2,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,1683583.59,-1,-1,-1,-1,-1,14630,0,0,0,0.15,7522,22706,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_pv,UtilityPV_Class1_Moderate_,2
+EIC_utilitypv_class1_moderate_3,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,1148387.24,-1,-1,-1,-1,-1,10126,0,0,0,0.15,7522,22706,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_pv,UtilityPV_Class1_Moderate_,3
+EIC_utilitypv_class1_moderate_4,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,2254699.98,-1,-1,-1,-1,-1,16248,0,0,0,0.15,7522,22706,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_pv,UtilityPV_Class1_Moderate_,4
+EIC_utilitypv_class1_moderate_5,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,879389.55,-1,-1,-1,-1,-1,22825,0,0,0,0.15,7522,22706,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_pv,UtilityPV_Class1_Moderate_,5
+EIC_utilitypv_class1_moderate_6,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,1998829.95,-1,-1,-1,-1,-1,24566,0,0,0,0.15,7522,22706,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_pv,UtilityPV_Class1_Moderate_,6
+EIC_utilitypv_class1_moderate_7,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,1123362.89,-1,-1,-1,-1,-1,21181,0,0,0,0.15,7522,22706,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_pv,UtilityPV_Class1_Moderate_,7
+EIC_utilitypv_class1_moderate_8,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,2501477.94,-1,-1,-1,-1,-1,32414,0,0,0,0.15,7522,22706,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_pv,UtilityPV_Class1_Moderate_,8
+EIC_utilitypv_class1_moderate_9,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,326479.4,-1,-1,-1,-1,-1,148669,0,0,0,0.15,7522,22706,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,EIC,hybrid_pv,UtilityPV_Class1_Moderate_,9
+TRE_landbasedwind_class1_moderate_0,2,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,20796.6,-1,-1,-1,-1,14393,0,0,0,0.15,7303,0,41880,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_wind,LandbasedWind_Class1_Moderate_,0
+TRE_landbasedwind_class1_moderate_1,2,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,27529.5,-1,-1,-1,-1,20298,0,0,0,0.15,7303,0,41880,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_wind,LandbasedWind_Class1_Moderate_,1
+TRE_landbasedwind_class1_moderate_2,2,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,22035.5,-1,-1,-1,-1,14755,0,0,0,0.15,7303,0,41881,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_wind,LandbasedWind_Class1_Moderate_,2
+TRE_landbasedwind_class1_moderate_3,2,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,22639.4,-1,-1,-1,-1,23630,0,0,0,0.15,7303,0,41881,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_wind,LandbasedWind_Class1_Moderate_,3
+TRE_landbasedwind_class1_moderate_4,2,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,21021.7,-1,-1,-1,-1,12498,0,0,0,0.15,7303,0,41881,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_wind,LandbasedWind_Class1_Moderate_,4
+TRE_landbasedwind_class1_moderate_5,2,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,21153.5,-1,-1,-1,-1,23788,0,0,0,0.15,7303,0,41880,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_wind,LandbasedWind_Class1_Moderate_,5
+TRE_landbasedwind_class1_moderate_6,2,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,32345.3,-1,-1,-1,-1,15633,0,0,0,0.15,7303,0,41881,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_wind,LandbasedWind_Class1_Moderate_,6
+TRE_landbasedwind_class1_moderate_7,2,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,12398.9,-1,-1,-1,-1,29021,0,0,0,0.15,7303,0,41880,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_wind,LandbasedWind_Class1_Moderate_,7
+TRE_landbasedwind_class1_moderate_8,2,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,34789.4,-1,-1,-1,-1,40897,0,0,0,0.15,7303,0,41880,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_wind,LandbasedWind_Class1_Moderate_,8
+TRE_landbasedwind_class1_moderate_9,2,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,2448.4,-1,-1,-1,-1,146712,0,0,0,0.15,7303,0,41881,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_wind,LandbasedWind_Class1_Moderate_,9
+TRE_storage_metalair_advanced_0,2,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,-1,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0.15,7303,0,0,0,0,0,0,1875,0,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,standalone_storage,Storage_MetalAir_Advanced,0
+TRE_utilitypv_class1_moderate_0,2,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,249716.61,-1,-1,-1,-1,-1,6412,0,0,0,0.15,7303,21612,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_pv,UtilityPV_Class1_Moderate_,0
+TRE_utilitypv_class1_moderate_1,2,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,150550.53,-1,-1,-1,-1,-1,8461,0,0,0,0.15,7303,21612,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_pv,UtilityPV_Class1_Moderate_,1
+TRE_utilitypv_class1_moderate_2,2,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,340227.68,-1,-1,-1,-1,-1,10479,0,0,0,0.15,7303,21612,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_pv,UtilityPV_Class1_Moderate_,2
+TRE_utilitypv_class1_moderate_3,2,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,232869.52,-1,-1,-1,-1,-1,14103,0,0,0,0.15,7303,21612,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_pv,UtilityPV_Class1_Moderate_,3
+TRE_utilitypv_class1_moderate_4,2,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,409644.17,-1,-1,-1,-1,-1,14224,0,0,0,0.15,7303,21612,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_pv,UtilityPV_Class1_Moderate_,4
+TRE_utilitypv_class1_moderate_5,2,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,224977.87,-1,-1,-1,-1,-1,18539,0,0,0,0.15,7303,21612,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_pv,UtilityPV_Class1_Moderate_,5
+TRE_utilitypv_class1_moderate_6,2,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,393113.89,-1,-1,-1,-1,-1,22325,0,0,0,0.15,7303,21612,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_pv,UtilityPV_Class1_Moderate_,6
+TRE_utilitypv_class1_moderate_7,2,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,248585.87,-1,-1,-1,-1,-1,17464,0,0,0,0.15,7303,21612,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_pv,UtilityPV_Class1_Moderate_,7
+TRE_utilitypv_class1_moderate_8,2,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,124347.08,-1,-1,-1,-1,-1,74721,0,0,0,0.15,7303,21612,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_pv,UtilityPV_Class1_Moderate_,8
+TRE_utilitypv_class1_moderate_9,2,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,477756.89,-1,-1,-1,-1,-1,29582,0,0,0,0.15,7303,21612,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,TRE,hybrid_pv,UtilityPV_Class1_Moderate_,9
+WECC_landbasedwind_class1_moderate_0,3,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,109860.7,-1,-1,-1,-1,20294,0,0,0,0.15,7609,0,74338,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_wind,LandbasedWind_Class1_Moderate_,0
+WECC_landbasedwind_class1_moderate_1,3,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,47257.4,-1,-1,-1,-1,19872,0,0,0,0.15,7609,0,74338,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_wind,LandbasedWind_Class1_Moderate_,1
+WECC_landbasedwind_class1_moderate_2,3,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,88662.6,-1,-1,-1,-1,27185,0,0,0,0.15,7609,0,74337,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_wind,LandbasedWind_Class1_Moderate_,2
+WECC_landbasedwind_class1_moderate_3,3,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,40824.7,-1,-1,-1,-1,19137,0,0,0,0.15,7609,0,74338,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_wind,LandbasedWind_Class1_Moderate_,3
+WECC_landbasedwind_class1_moderate_4,3,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,109163.8,-1,-1,-1,-1,26039,0,0,0,0.15,7609,0,74337,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_wind,LandbasedWind_Class1_Moderate_,4
+WECC_landbasedwind_class1_moderate_5,3,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,25095.7,-1,-1,-1,-1,133609,0,0,0,0.15,7609,0,74337,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_wind,LandbasedWind_Class1_Moderate_,5
+WECC_landbasedwind_class1_moderate_6,3,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,100227,-1,-1,-1,-1,29900,0,0,0,0.15,7609,0,74337,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_wind,LandbasedWind_Class1_Moderate_,6
+WECC_landbasedwind_class1_moderate_7,3,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,34790.4,-1,-1,-1,-1,160193,0,0,0,0.15,7609,0,74337,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_wind,LandbasedWind_Class1_Moderate_,7
+WECC_landbasedwind_class1_moderate_8,3,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,64367.5,-1,-1,-1,-1,38235,0,0,0,0.15,7609,0,74338,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_wind,LandbasedWind_Class1_Moderate_,8
+WECC_landbasedwind_class1_moderate_9,3,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,77014.4,-1,-1,-1,-1,274991,0,0,0,0.15,7609,0,74338,0,0,0,0,1875,0,36613,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_wind,LandbasedWind_Class1_Moderate_,9
+WECC_storage_metalair_advanced_0,3,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,-1,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0.15,7609,0,0,0,0,0,0,1875,0,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,standalone_storage,Storage_MetalAir_Advanced,0
+WECC_utilitypv_class1_moderate_0,3,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,775652.15,-1,-1,-1,-1,-1,10320,0,0,0,0.15,7609,23643,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_pv,UtilityPV_Class1_Moderate_,0
+WECC_utilitypv_class1_moderate_1,3,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,207870.65,-1,-1,-1,-1,-1,6016,0,0,0,0.15,7609,23643,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_pv,UtilityPV_Class1_Moderate_,1
+WECC_utilitypv_class1_moderate_2,3,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,1143504.83,-1,-1,-1,-1,-1,19411,0,0,0,0.15,7609,23643,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_pv,UtilityPV_Class1_Moderate_,2
+WECC_utilitypv_class1_moderate_3,3,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,35742.72,-1,-1,-1,-1,-1,3992,0,0,0,0.15,7609,23643,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_pv,UtilityPV_Class1_Moderate_,3
+WECC_utilitypv_class1_moderate_4,3,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,1185544.36,-1,-1,-1,-1,-1,25714,0,0,0,0.15,7609,23643,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_pv,UtilityPV_Class1_Moderate_,4
+WECC_utilitypv_class1_moderate_5,3,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,31049.98,-1,-1,-1,-1,-1,8052,0,0,0,0.15,7609,23643,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_pv,UtilityPV_Class1_Moderate_,5
+WECC_utilitypv_class1_moderate_6,3,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,1023622.34,-1,-1,-1,-1,-1,33457,0,0,0,0.15,7609,23643,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_pv,UtilityPV_Class1_Moderate_,6
+WECC_utilitypv_class1_moderate_7,3,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,82238,-1,-1,-1,-1,-1,16842,0,0,0,0.15,7609,23643,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_pv,UtilityPV_Class1_Moderate_,7
+WECC_utilitypv_class1_moderate_8,3,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,1134234.27,-1,-1,-1,-1,-1,105939,0,0,0,0.15,7609,23643,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_pv,UtilityPV_Class1_Moderate_,8
+WECC_utilitypv_class1_moderate_9,3,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,94348.41,-1,-1,-1,-1,-1,28290,0,0,0,0.15,7609,23643,0,0,0,0,0,1875,12550,0,0,0,0,0,0,0,0.15,0.15,0,0,0.967,-1,-1,0.005,0.005,0,0.65,0.65,0.65,0.65,WECC,hybrid_pv,UtilityPV_Class1_Moderate_,9
\ No newline at end of file
diff --git a/test/VREStor/Vre_and_stor_data.csv b/test/VREStor/Vre_and_stor_data.csv
deleted file mode 100644
index e47236a878..0000000000
--- a/test/VREStor/Vre_and_stor_data.csv
+++ /dev/null
@@ -1,64 +0,0 @@
-region,Resource,technology,cluster,R_ID,Zone,LDS_VRE_STOR,CapResVreStor_1,MinCapTag_1,MinCapTag_2,MinCapTag_3,MaxCapTag_1,MaxCapTag_2,MaxCapTag_3,CapResVreStor_2,CapResVreStor_3,Resource_Type,Inv_Cost_Solar_per_MWyr,Inv_Cost_Inverter_per_MWyr,Inv_Cost_Wind_per_MWyr,Fixed_OM_Solar_Cost_per_MWyr,Fixed_OM_Inverter_Cost_per_MWyr,Fixed_OM_Wind_Cost_per_MWyr,SOLAR,WIND,STOR_DC_DISCHARGE,STOR_DC_CHARGE,MinCapTagStor_1,MinCapTagSolar_1,MinCapTagWind_1,MinCapTagStor_2,MinCapTagSolar_2,MinCapTagWind_2,MinCapTagStor_3,MinCapTagSolar_3,MinCapTagWind_3,MaxCapTagStor_1,MaxCapTagSolar_1,MaxCapTagWind_1,MaxCapTagStor_2,MaxCapTagSolar_2,MaxCapTagWind_2,MaxCapTagStor_3,MaxCapTagSolar_3,MaxCapTagWind_3,STOR_AC_DISCHARGE,STOR_AC_CHARGE,Existing_Cap_Inverter_MW,Existing_Cap_Solar_MW,Existing_Cap_Wind_MW,Existing_Cap_Charge_DC_MW,Existing_Cap_Charge_AC_MW,Existing_Cap_Discharge_DC_MW,Existing_Cap_Discharge_AC_MW,Min_Cap_Inverter_MW,Min_Cap_Charge_AC_MW,Min_Cap_Discharge_AC_MW,Min_Cap_Charge_DC_MW,Min_Cap_Discharge_DC_MW,Min_Cap_Solar_MW,Min_Cap_Wind_MW,Inv_Cost_Discharge_DC_per_MWyr,Inv_Cost_Charge_DC_per_MWyr,Inv_Cost_Discharge_AC_per_MWyr,Inv_Cost_Charge_AC_per_MWyr,Fixed_OM_Cost_Discharge_DC_per_MWyr,Fixed_OM_Cost_Charge_DC_per_MWyr,Fixed_OM_Cost_Discharge_AC_per_MWyr,Fixed_OM_Cost_Charge_AC_per_MWyr,Var_OM_Cost_per_MWh_Solar,Var_OM_Cost_per_MWh_Wind,Var_OM_Cost_per_MWh_Charge_AC,Var_OM_Cost_per_MWh_Discharge_AC,Max_Cap_Inverter_MW,Max_Cap_Charge_AC_MW,Max_Cap_Discharge_AC_MW,Max_Cap_Charge_DC_MW,Max_Cap_Discharge_DC_MW,Max_Cap_Solar_MW,Max_Cap_Wind_MW,Inverter_Ratio_Wind,Inverter_Ratio_Solar,Var_OM_Cost_per_MWh_Charge_DC,Var_OM_Cost_per_MWh_Discharge_DC,Eff_Up_DC,Eff_Down_DC,Eff_Up_AC,Eff_Down_AC,EtaInverter,Power_to_Energy_DC,Power_to_Energy_AC
-EIC,EIC_storage_metalair_advanced_0,Storage_MetalAir_Advanced,0,61,1,1,0.95,0,0,0,0,0,0,0,0,standalone_storage,0,7522,0,0,1875,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_landbasedwind_class1_moderate_0,LandbasedWind_Class1_Moderate_,0,62,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_wind,0,7522,56816,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,117315.5,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_landbasedwind_class1_moderate_1,LandbasedWind_Class1_Moderate_,1,63,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_wind,0,7522,56817,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,139803.7,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_landbasedwind_class1_moderate_2,LandbasedWind_Class1_Moderate_,2,64,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_wind,0,7522,56816,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,114313.7,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_landbasedwind_class1_moderate_3,LandbasedWind_Class1_Moderate_,3,65,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_wind,0,7522,56816,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,81237.6,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_landbasedwind_class1_moderate_4,LandbasedWind_Class1_Moderate_,4,66,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_wind,0,7522,56816,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,81092.2,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_landbasedwind_class1_moderate_5,LandbasedWind_Class1_Moderate_,5,67,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_wind,0,7522,56816,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,54453.3,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_landbasedwind_class1_moderate_6,LandbasedWind_Class1_Moderate_,6,68,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_wind,0,7522,56816,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,82417.2,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_landbasedwind_class1_moderate_7,LandbasedWind_Class1_Moderate_,7,69,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_wind,0,7522,56816,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,26531.1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_landbasedwind_class1_moderate_8,LandbasedWind_Class1_Moderate_,8,70,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_wind,0,7522,56817,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,58187.4,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_landbasedwind_class1_moderate_9,LandbasedWind_Class1_Moderate_,9,71,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_wind,0,7522,56816,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,194921.8,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_utilitypv_class1_moderate_0,UtilityPV_Class1_Moderate_,0,72,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_pv,22706,7522,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,1351663.04,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_utilitypv_class1_moderate_1,UtilityPV_Class1_Moderate_,1,73,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_pv,22706,7522,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,787394.14,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_utilitypv_class1_moderate_2,UtilityPV_Class1_Moderate_,2,74,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_pv,22706,7522,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,1683583.59,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_utilitypv_class1_moderate_3,UtilityPV_Class1_Moderate_,3,75,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_pv,22706,7522,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,1148387.24,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_utilitypv_class1_moderate_4,UtilityPV_Class1_Moderate_,4,76,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_pv,22706,7522,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,2254699.98,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_utilitypv_class1_moderate_5,UtilityPV_Class1_Moderate_,5,77,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_pv,22706,7522,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,879389.55,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_utilitypv_class1_moderate_6,UtilityPV_Class1_Moderate_,6,78,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_pv,22706,7522,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,1998829.95,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_utilitypv_class1_moderate_7,UtilityPV_Class1_Moderate_,7,79,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_pv,22706,7522,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,1123362.89,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_utilitypv_class1_moderate_8,UtilityPV_Class1_Moderate_,8,80,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_pv,22706,7522,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,2501477.94,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-EIC,EIC_utilitypv_class1_moderate_9,UtilityPV_Class1_Moderate_,9,81,1,1,0.95,0,0,0,0,0,0,0,0,hybrid_pv,22706,7522,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,326479.4,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_storage_metalair_advanced_0,Storage_MetalAir_Advanced,0,127,2,1,0,0,0,0,0,0,0,0.95,0,standalone_storage,0,7303,0,0,1875,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_landbasedwind_class1_moderate_0,LandbasedWind_Class1_Moderate_,0,128,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_wind,0,7303,41880,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,20796.6,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_landbasedwind_class1_moderate_1,LandbasedWind_Class1_Moderate_,1,129,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_wind,0,7303,41880,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,27529.5,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_landbasedwind_class1_moderate_2,LandbasedWind_Class1_Moderate_,2,130,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_wind,0,7303,41881,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,22035.5,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_landbasedwind_class1_moderate_3,LandbasedWind_Class1_Moderate_,3,131,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_wind,0,7303,41881,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,22639.4,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_landbasedwind_class1_moderate_4,LandbasedWind_Class1_Moderate_,4,132,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_wind,0,7303,41881,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,21021.7,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_landbasedwind_class1_moderate_5,LandbasedWind_Class1_Moderate_,5,133,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_wind,0,7303,41880,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,21153.5,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_landbasedwind_class1_moderate_6,LandbasedWind_Class1_Moderate_,6,134,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_wind,0,7303,41881,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,32345.3,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_landbasedwind_class1_moderate_7,LandbasedWind_Class1_Moderate_,7,135,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_wind,0,7303,41880,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,12398.9,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_landbasedwind_class1_moderate_8,LandbasedWind_Class1_Moderate_,8,136,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_wind,0,7303,41880,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,34789.4,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_landbasedwind_class1_moderate_9,LandbasedWind_Class1_Moderate_,9,137,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_wind,0,7303,41881,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,2448.4,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_utilitypv_class1_moderate_0,UtilityPV_Class1_Moderate_,0,138,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_pv,21612,7303,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,249716.61,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_utilitypv_class1_moderate_1,UtilityPV_Class1_Moderate_,1,139,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_pv,21612,7303,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,150550.53,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_utilitypv_class1_moderate_2,UtilityPV_Class1_Moderate_,2,140,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_pv,21612,7303,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,340227.68,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_utilitypv_class1_moderate_3,UtilityPV_Class1_Moderate_,3,141,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_pv,21612,7303,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,232869.52,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_utilitypv_class1_moderate_4,UtilityPV_Class1_Moderate_,4,142,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_pv,21612,7303,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,409644.17,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_utilitypv_class1_moderate_5,UtilityPV_Class1_Moderate_,5,143,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_pv,21612,7303,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,224977.87,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_utilitypv_class1_moderate_6,UtilityPV_Class1_Moderate_,6,144,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_pv,21612,7303,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,393113.89,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_utilitypv_class1_moderate_7,UtilityPV_Class1_Moderate_,7,145,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_pv,21612,7303,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,248585.87,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_utilitypv_class1_moderate_8,UtilityPV_Class1_Moderate_,8,146,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_pv,21612,7303,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,124347.08,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-TRE,TRE_utilitypv_class1_moderate_9,UtilityPV_Class1_Moderate_,9,147,2,1,0,0,0,0,0,0,0,0.95,0,hybrid_pv,21612,7303,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,477756.89,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_storage_metalair_advanced_0,Storage_MetalAir_Advanced,0,193,3,1,0,0,0,0,0,0,0,0,0.95,standalone_storage,0,7609,0,0,1875,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_landbasedwind_class1_moderate_0,LandbasedWind_Class1_Moderate_,0,194,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_wind,0,7609,74338,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,109860.7,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_landbasedwind_class1_moderate_1,LandbasedWind_Class1_Moderate_,1,195,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_wind,0,7609,74338,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,47257.4,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_landbasedwind_class1_moderate_2,LandbasedWind_Class1_Moderate_,2,196,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_wind,0,7609,74337,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,88662.6,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_landbasedwind_class1_moderate_3,LandbasedWind_Class1_Moderate_,3,197,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_wind,0,7609,74338,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,40824.7,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_landbasedwind_class1_moderate_4,LandbasedWind_Class1_Moderate_,4,198,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_wind,0,7609,74337,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,109163.8,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_landbasedwind_class1_moderate_5,LandbasedWind_Class1_Moderate_,5,199,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_wind,0,7609,74337,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,25095.7,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_landbasedwind_class1_moderate_6,LandbasedWind_Class1_Moderate_,6,200,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_wind,0,7609,74337,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,100227,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_landbasedwind_class1_moderate_7,LandbasedWind_Class1_Moderate_,7,201,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_wind,0,7609,74337,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,34790.4,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_landbasedwind_class1_moderate_8,LandbasedWind_Class1_Moderate_,8,202,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_wind,0,7609,74338,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,64367.5,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_landbasedwind_class1_moderate_9,LandbasedWind_Class1_Moderate_,9,203,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_wind,0,7609,74338,0,1875,36613,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,77014.4,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_utilitypv_class1_moderate_0,UtilityPV_Class1_Moderate_,0,204,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_pv,23643,7609,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,775652.15,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_utilitypv_class1_moderate_1,UtilityPV_Class1_Moderate_,1,205,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_pv,23643,7609,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,207870.65,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_utilitypv_class1_moderate_2,UtilityPV_Class1_Moderate_,2,206,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_pv,23643,7609,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,1143504.83,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_utilitypv_class1_moderate_3,UtilityPV_Class1_Moderate_,3,207,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_pv,23643,7609,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,35742.72,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_utilitypv_class1_moderate_4,UtilityPV_Class1_Moderate_,4,208,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_pv,23643,7609,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,1185544.36,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_utilitypv_class1_moderate_5,UtilityPV_Class1_Moderate_,5,209,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_pv,23643,7609,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,31049.98,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_utilitypv_class1_moderate_6,UtilityPV_Class1_Moderate_,6,210,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_pv,23643,7609,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,1023622.34,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_utilitypv_class1_moderate_7,UtilityPV_Class1_Moderate_,7,211,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_pv,23643,7609,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,82238,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_utilitypv_class1_moderate_8,UtilityPV_Class1_Moderate_,8,212,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_pv,23643,7609,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,1134234.27,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
-WECC,WECC_utilitypv_class1_moderate_9,UtilityPV_Class1_Moderate_,9,213,3,1,0,0,0,0,0,0,0,0,0.95,hybrid_pv,23643,7609,0,12550,1875,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,94348.41,-1,-1,-1,0.15,0.15,0.65,0.65,0.65,0.65,0.967,0.005,0.005
\ No newline at end of file
diff --git a/test/runtests.jl b/test/runtests.jl
index dfb08dbd97..33c5b5969e 100644
--- a/test/runtests.jl
+++ b/test/runtests.jl
@@ -9,12 +9,14 @@ include("utilities.jl")
include("simple_op_test.jl")
end
-@testset "Resource validation" begin
- include("resource_test.jl")
+@testset "Expr manipulation" begin
+ include("expression_manipulation_test.jl")
end
-@testset "Expression manipulation" begin
- include("expression_manipulation_test.jl")
+if VERSION ≥ v"1.7"
+ @testset "Resource loading" begin
+ include("test_load_resource_data.jl")
+ end
end
# Test GenX modules
@@ -23,15 +25,15 @@ end
include("test_threezones.jl")
end
- @testset "Time domain reduction" begin
+ @testset "TDR" begin
include("test_time_domain_reduction.jl")
end
- @testset "PiecewiseFuel CO2" begin
+ @testset "Piecewise Fuel" begin
include("test_piecewisefuel_CO2.jl")
end
- @testset "VRE and storage" begin
+ @testset "VRE_STOR" begin
include("test_VREStor.jl")
end
@@ -46,4 +48,4 @@ end
@testset "Compute Conflicts" begin
include("test_compute_conflicts.jl")
end
-end
+end
\ No newline at end of file
diff --git a/test/test_VREStor.jl b/test/test_VREStor.jl
index 951b8dfbd1..1e9f62583a 100644
--- a/test/test_VREStor.jl
+++ b/test/test_VREStor.jl
@@ -20,7 +20,7 @@ genx_setup = Dict(
)
# Run the case and get the objective value and tolerance
-EP, _, _ = redirect_stdout(devnull) do
+EP, inputs, _ = redirect_stdout(devnull) do
run_genx_case_testing(test_path, genx_setup)
end
obj_test = objective_value(EP)
diff --git a/test/test_electrolyzer.jl b/test/test_electrolyzer.jl
index 2551703b35..6472cbf96e 100644
--- a/test/test_electrolyzer.jl
+++ b/test/test_electrolyzer.jl
@@ -20,6 +20,7 @@ genx_setup = Dict(
EP, _, _ = redirect_stdout(devnull) do
run_genx_case_testing(test_path, genx_setup)
end
+
obj_test = objective_value(EP)
optimal_tol_rel = get_attribute(EP, "ipm_optimality_tolerance")
optimal_tol = optimal_tol_rel * obj_test # Convert to absolute tolerance
diff --git a/test/test_load_resource_data.jl b/test/test_load_resource_data.jl
new file mode 100644
index 0000000000..e84a0cf900
--- /dev/null
+++ b/test/test_load_resource_data.jl
@@ -0,0 +1,445 @@
+module TestLoadResourceData
+
+using Test
+using GenX
+using JLD2
+using Logging, LoggingExtras
+import DataFrames: rename!
+
+struct InputsTrue
+ gen_filename::AbstractString
+ inputs_filename::AbstractString
+end
+
+
+function test_macro_interface(attr::Symbol, gen, dfGen)
+ f = getfield(GenX, attr)
+ @test f.(gen) == dfGen[!, attr]
+end
+
+function test_ids_with(attr::Symbol, gen, dfGen)
+ @test GenX.ids_with(gen,attr) == dfGen[dfGen[!, attr] .!= 0, :r_id]
+end
+
+function test_ids_with_nonneg(attr::Symbol, gen, dfGen)
+ @test GenX.ids_with_nonneg(gen,attr) == dfGen[dfGen[!, attr] .>= 0, :r_id]
+end
+
+function test_ids_with_positive(attr::Symbol, gen, dfGen)
+ @test GenX.ids_with_positive(gen,attr) == dfGen[dfGen[!, attr] .> 0, :r_id]
+end
+
+function prepare_inputs_true(test_path::AbstractString, in_filenames::InputsTrue, setup::Dict)
+ gen_filename = in_filenames.gen_filename
+ inputs_filename = in_filenames.inputs_filename
+ dfGen = GenX.load_dataframe(joinpath(test_path, gen_filename))
+ scale_factor = setup["ParameterScale"] == 1 ? GenX.ModelScalingFactor : 1.
+ GenX.rename!(dfGen, lowercase.(names(dfGen)))
+ GenX.scale_resources_data!(dfGen, scale_factor)
+ dfGen[!,:r_id] = 1:size(dfGen,1)
+ inputs_true = load(joinpath(test_path, inputs_filename))
+ return dfGen, inputs_true
+end
+
+function test_load_scaled_resources_data(gen, dfGen)
+
+ ## Test that the data loaded correctly
+ # Test resource types
+ @test GenX.storage(gen) == dfGen[dfGen.stor .== 1, :r_id]
+ @test GenX.thermal(gen) == dfGen[dfGen.therm .== 1, :r_id]
+ @test GenX.vre(gen) == dfGen[dfGen.vre .== 1, :r_id]
+ @test GenX.hydro(gen) == dfGen[dfGen.hydro .== 1, :r_id]
+ @test GenX.flex_demand(gen) == dfGen[dfGen.flex .== 1, :r_id]
+ @test GenX.electrolyzer(gen) == dfGen[dfGen.electrolyzer .== 1, :r_id]
+ @test GenX.must_run(gen) == dfGen[dfGen.must_run .== 1, :r_id]
+
+ @test GenX.is_LDS(gen) == dfGen[dfGen.lds .== 1, :r_id]
+ @test GenX.is_SDS(gen) == dfGen[dfGen.lds .== 0, :r_id]
+
+ # Test resource attributes
+ @test GenX.resource_name.(gen) == dfGen.resource
+ @test GenX.resource_id.(gen) == dfGen.r_id
+ @test GenX.resource_type_mga.(gen) == dfGen.resource_type
+ @test GenX.zone_id.(gen) == dfGen.zone
+
+ @test GenX.max_cap_mw.(gen) == dfGen.max_cap_mw
+ @test GenX.min_cap_mw.(gen) == dfGen.min_cap_mw
+ @test GenX.min_cap_mwh.(gen) == dfGen.min_cap_mwh
+
+ @test GenX.existing_cap_mw.(gen) == dfGen.existing_cap_mw
+ @test GenX.existing_cap_mwh.(gen) == dfGen.existing_cap_mwh
+
+ @test GenX.num_vre_bins.(gen) == dfGen.num_vre_bins
+
+ @test GenX.qualified_hydrogen_supply.(gen) == dfGen.qualified_hydrogen_supply
+
+ @test GenX.reg_cost.(gen) == dfGen.reg_cost
+ @test GenX.reg_max.(gen) == dfGen.reg_max
+ @test GenX.rsv_cost.(gen) == dfGen.rsv_cost
+ @test GenX.rsv_max.(gen) == dfGen.rsv_max
+
+ @test GenX.inv_cost_per_mwyr.(gen) == dfGen.inv_cost_per_mwyr
+ @test GenX.fixed_om_cost_per_mwyr.(gen) == dfGen.fixed_om_cost_per_mwyr
+ @test GenX.var_om_cost_per_mwh.(gen) == dfGen.var_om_cost_per_mwh
+ @test GenX.inv_cost_per_mwhyr.(gen) == dfGen.inv_cost_per_mwhyr
+ @test GenX.fixed_om_cost_per_mwhyr.(gen) == dfGen.fixed_om_cost_per_mwhyr
+ @test GenX.start_cost_per_mw.(gen) == dfGen.start_cost_per_mw
+
+ @test GenX.fuel.(gen) == dfGen.fuel
+ @test GenX.co2_capture_fraction.(gen) == dfGen.co2_capture_fraction
+ @test GenX.co2_capture_fraction_startup.(gen) == dfGen.co2_capture_fraction_startup
+ @test GenX.ccs_disposal_cost_per_metric_ton.(gen) == dfGen.ccs_disposal_cost_per_metric_ton
+ @test GenX.biomass.(gen) == dfGen.biomass
+
+ @test GenX.ids_with_mga(gen) == dfGen[dfGen.mga .== 1, :r_id]
+
+ @test GenX.region.(gen) == dfGen.region
+ @test GenX.cluster.(gen) == dfGen.cluster
+end
+
+function test_add_policies_to_resources(gen, dfGen)
+ @test GenX.esr.(gen, tag=1) == dfGen.esr_1
+ @test GenX.esr.(gen, tag=2) == dfGen.esr_2
+ @test GenX.min_cap.(gen, tag=1) == dfGen.mincaptag_1
+ @test GenX.min_cap.(gen, tag=2) == dfGen.mincaptag_2
+ @test GenX.min_cap.(gen, tag=3) == dfGen.mincaptag_3
+ @test GenX.derating_factor.(gen, tag=1) == dfGen.capres_1
+end
+
+function test_add_modules_to_resources(gen, dfGen)
+ @test GenX.tech_wacc.(gen) == dfGen.wacc
+ @test GenX.capital_recovery_period.(gen) == dfGen.capital_recovery_period
+ @test GenX.lifetime.(gen) == dfGen.lifetime
+ @test GenX.min_retired_cap_mw.(gen) == dfGen.min_retired_cap_mw
+ @test GenX.min_retired_energy_cap_mw.(gen) == dfGen.min_retired_energy_cap_mw
+ @test GenX.min_retired_charge_cap_mw.(gen) == dfGen.min_retired_charge_cap_mw
+end
+
+function test_inputs_keys(inputs, inputs_true)
+ @test inputs["G"] == inputs_true["G"]
+
+ @test inputs["HYDRO_RES"] == inputs_true["HYDRO_RES"]
+ @test inputs["HYDRO_RES_KNOWN_CAP"] == inputs_true["HYDRO_RES_KNOWN_CAP"]
+ @test inputs["STOR_ALL"] == inputs_true["STOR_ALL"]
+ @test inputs["STOR_SYMMETRIC"] == inputs_true["STOR_SYMMETRIC"]
+ @test inputs["STOR_ASYMMETRIC"] == inputs_true["STOR_ASYMMETRIC"]
+ @test inputs["STOR_SHORT_DURATION"] == inputs_true["STOR_SHORT_DURATION"]
+ @test inputs["STOR_LONG_DURATION"] == inputs_true["STOR_LONG_DURATION"]
+ @test inputs["STOR_HYDRO_LONG_DURATION"] == inputs_true["STOR_HYDRO_LONG_DURATION"]
+ @test inputs["VRE"] == inputs_true["VRE"]
+ @test inputs["FLEX"] == inputs_true["FLEX"]
+ @test inputs["MUST_RUN"] == inputs_true["MUST_RUN"]
+ @test inputs["ELECTROLYZER"] == inputs_true["ELECTROLYZER"]
+ @test inputs["RETRO"] == inputs_true["RETRO"]
+ @test inputs["REG"] == inputs_true["REG"]
+ @test inputs["RSV"] == inputs_true["RSV"]
+ @test inputs["THERM_ALL"] == inputs_true["THERM_ALL"]
+ @test inputs["THERM_COMMIT"] == inputs_true["THERM_COMMIT"]
+ @test inputs["THERM_NO_COMMIT"] == inputs_true["THERM_NO_COMMIT"]
+ @test inputs["COMMIT"] == inputs_true["COMMIT"]
+ @test inputs["C_Start"] == inputs_true["C_Start"]
+
+ @test Set(inputs["RET_CAP"]) == inputs_true["RET_CAP"]
+ @test Set(inputs["RET_CAP_CHARGE"]) == inputs_true["RET_CAP_CHARGE"]
+ @test Set(inputs["RET_CAP_ENERGY"]) == inputs_true["RET_CAP_ENERGY"]
+ @test Set(inputs["NEW_CAP"]) == inputs_true["NEW_CAP"]
+ @test Set(inputs["NEW_CAP_ENERGY"]) == inputs_true["NEW_CAP_ENERGY"]
+ @test Set(inputs["NEW_CAP_CHARGE"]) == inputs_true["NEW_CAP_CHARGE"]
+ @test string.(inputs["slope_cols"]) == lowercase.(string.(inputs_true["slope_cols"]))
+ @test string.(inputs["intercept_cols"]) == lowercase.(string.(inputs_true["intercept_cols"]))
+ @test inputs["PWFU_data"] == rename!(inputs_true["PWFU_data"], lowercase.(names(inputs_true["PWFU_data"])))
+ @test inputs["PWFU_Num_Segments"] == inputs_true["PWFU_Num_Segments"]
+ @test inputs["THERM_COMMIT_PWFU"] == inputs_true["THERM_COMMIT_PWFU"]
+
+ @test inputs["HAS_FUEL"] == inputs_true["HAS_FUEL"]
+
+ @test inputs["R_ZONES"] == inputs_true["R_ZONES"]
+ @test inputs["RESOURCE_ZONES"] == inputs_true["RESOURCE_ZONES"]
+ @test inputs["RESOURCE_NAMES"] == inputs_true["RESOURCES"]
+end
+
+function test_resource_specific_attributes(gen, dfGen, inputs)
+ @test GenX.is_buildable(gen) == dfGen[dfGen.new_build .== 1, :r_id]
+ @test GenX.is_retirable(gen) == dfGen[dfGen.can_retire .== 1, :r_id]
+
+ rs = GenX.ids_with_positive(gen, GenX.max_cap_mwh)
+ @test rs == dfGen[dfGen.max_cap_mwh .> 0, :r_id]
+ @test GenX.max_cap_mwh.(rs) == dfGen[dfGen.max_cap_mwh .> 0, :r_id]
+ rs = GenX.ids_with_positive(gen, GenX.max_charge_cap_mw)
+ @test rs == dfGen[dfGen.max_charge_cap_mw .> 0, :r_id]
+ @test GenX.max_charge_cap_mw.(rs) == dfGen[dfGen.max_charge_cap_mw .> 0, :r_id]
+ rs = GenX.ids_with_unit_commitment(gen)
+ @test rs == dfGen[dfGen.therm .== 1, :r_id]
+ @test GenX.cap_size.(gen[rs]) == dfGen[dfGen.therm.==1,:cap_size]
+ rs = setdiff(inputs["HAS_FUEL"], inputs["THERM_COMMIT"])
+ @test GenX.heat_rate_mmbtu_per_mwh.(gen[rs]) == dfGen[rs, :heat_rate_mmbtu_per_mwh]
+ rs = setdiff(inputs["THERM_COMMIT"], inputs["THERM_COMMIT_PWFU"])
+ @test GenX.heat_rate_mmbtu_per_mwh.(gen[rs]) == dfGen[rs, :heat_rate_mmbtu_per_mwh]
+ rs = inputs["THERM_COMMIT"]
+ @test GenX.start_fuel_mmbtu_per_mw.(gen[rs]) == dfGen[rs, :start_fuel_mmbtu_per_mw]
+ rs = union(inputs["STOR_ALL"], inputs["HYDRO_RES"])
+ @test GenX.efficiency_up.(gen[rs]) == dfGen[rs, :eff_up]
+ @test GenX.efficiency_down.(gen[rs]) == dfGen[rs, :eff_down]
+ rs = union(inputs["THERM_ALL"], inputs["HYDRO_RES"], inputs["ELECTROLYZER"])
+ @test GenX.min_power.(gen[rs]) == dfGen[rs, :min_power]
+ @test GenX.ramp_up_fraction.(gen[rs]) == dfGen[rs, :ramp_up_percentage]
+ @test GenX.ramp_down_fraction.(gen[rs]) == dfGen[rs, :ramp_dn_percentage]
+ rs = inputs["STOR_ASYMMETRIC"]
+ @test GenX.max_charge_cap_mw.(gen[rs]) == dfGen[rs, :max_charge_cap_mw]
+ @test GenX.min_charge_cap_mw.(gen[rs]) == dfGen[rs, :min_charge_cap_mw]
+ @test GenX.existing_charge_cap_mw.(gen[rs]) == dfGen[rs, :existing_charge_cap_mw]
+ @test GenX.inv_cost_charge_per_mwyr.(gen[rs]) == dfGen[rs, :inv_cost_charge_per_mwyr]
+ @test GenX.fixed_om_cost_charge_per_mwyr.(gen[rs]) == dfGen[rs, :fixed_om_cost_charge_per_mwyr]
+ rs = union(inputs["HYDRO_RES_KNOWN_CAP"], inputs["STOR_HYDRO_LONG_DURATION"])
+ @test GenX.hydro_energy_to_power_ratio.(gen[rs]) == dfGen[rs, :hydro_energy_to_power_ratio]
+end
+
+function test_load_resources_data()
+ setup = Dict(
+ "ParameterScale" => 0,
+ "Reserves" => 1,
+ "UCommit" => 2,
+ "MultiStage" => 1,
+ "ResourcePath" => "Resources",
+ )
+
+ test_path = joinpath("LoadResourceData", "test_gen_non_colocated")
+
+ # load dfGen and inputs_true to compare against
+ input_true_filenames = InputsTrue("generators_data.csv", "inputs_after_loadgen.jld2")
+ dfGen, inputs_true = prepare_inputs_true(test_path, input_true_filenames, setup)
+
+ # Test resource data is loaded correctly
+ gen = GenX.create_resource_array(setup, test_path)
+ @testset "Default fields" begin
+ test_load_scaled_resources_data(gen, dfGen)
+ end
+
+ # Test policy fields are correctly added to the resource structs
+ GenX.add_policies_to_resources!(gen, setup, test_path)
+ @testset "Policy attributes" begin
+ test_add_policies_to_resources(gen, dfGen)
+ end
+
+ # Test modules are correctly added to the resource structs
+ GenX.add_modules_to_resources!(gen, setup, test_path)
+ @testset "Module attributes" begin
+ test_add_modules_to_resources(gen, dfGen)
+ end
+
+ # Test that the inputs keys are correctly set
+ inputs = load(joinpath(test_path, "inputs_before_loadgen.jld2"))
+ GenX.add_resources_to_input_data!(inputs, setup, test_path, gen)
+ @testset "Inputs keys" begin
+ test_inputs_keys(inputs, inputs_true)
+ end
+
+ # Test that the resource-specific attributes are correctly set
+ @testset "resource-specific attributes" begin
+ test_resource_specific_attributes(gen, dfGen, inputs)
+ end
+end
+
+function test_load_VRE_STOR_data()
+
+ setup = Dict(
+ "ParameterScale" => 0,
+ "Reserves" => 1,
+ "UCommit" => 2,
+ "MultiStage" => 0,
+ "ResourcePath" => "Resources",
+ )
+
+ test_path = joinpath("LoadResourceData","test_gen_vre_stor")
+ input_true_filenames = InputsTrue("generators_data.csv", "inputs_after_loadgen.jld2")
+ dfGen, inputs_true = prepare_inputs_true(test_path, input_true_filenames, setup)
+
+ dfVRE_STOR = GenX.load_dataframe(joinpath(test_path, "Vre_and_stor_data.csv"))
+ dfVRE_STOR = GenX.rename!(dfVRE_STOR, lowercase.(names(dfVRE_STOR)))
+ scale_factor = setup["ParameterScale"] == 1 ? GenX.ModelScalingFactor : 1.
+ GenX.scale_vre_stor_data!(dfVRE_STOR, scale_factor)
+
+ gen = GenX.create_resource_array(setup, test_path)
+ GenX.add_policies_to_resources!(gen, setup, test_path)
+ inputs = load(joinpath(test_path, "inputs_before_loadgen.jld2"))
+ GenX.add_resources_to_input_data!(inputs, setup, test_path, gen)
+
+ @test GenX.vre_stor(gen) == dfGen[dfGen.vre_stor .== 1, :r_id]
+ sort!(dfVRE_STOR, :resource)
+
+ rs = inputs["VRE_STOR"]
+ @test GenX.solar(gen) == dfVRE_STOR[dfVRE_STOR.solar .== 1, :r_id]
+ @test GenX.wind(gen) == dfVRE_STOR[dfVRE_STOR.wind .== 1, :r_id]
+ @test GenX.storage_dc_discharge(gen) == dfVRE_STOR[dfVRE_STOR.stor_dc_discharge .>= 1, :r_id]
+ @test GenX.storage_sym_dc_discharge(gen) == dfVRE_STOR[dfVRE_STOR.stor_dc_discharge .== 1, :r_id]
+ @test GenX.storage_asym_dc_discharge(gen) == dfVRE_STOR[dfVRE_STOR.stor_dc_discharge .== 2, :r_id]
+
+ @test GenX.storage_dc_charge(gen) == dfVRE_STOR[dfVRE_STOR.stor_dc_charge .>= 1, :r_id]
+ @test GenX.storage_sym_dc_charge(gen) == dfVRE_STOR[dfVRE_STOR.stor_dc_charge .== 1, :r_id]
+ @test GenX.storage_asym_dc_charge(gen) == dfVRE_STOR[dfVRE_STOR.stor_dc_charge .== 2, :r_id]
+
+ @test GenX.storage_ac_discharge(gen) == dfVRE_STOR[dfVRE_STOR.stor_ac_discharge .>= 1, :r_id]
+ @test GenX.storage_sym_ac_discharge(gen) == dfVRE_STOR[dfVRE_STOR.stor_ac_discharge .== 1, :r_id]
+ @test GenX.storage_asym_ac_discharge(gen) == dfVRE_STOR[dfVRE_STOR.stor_ac_discharge .== 2, :r_id]
+
+ @test GenX.storage_ac_charge(gen) == dfVRE_STOR[dfVRE_STOR.stor_ac_charge .>= 1, :r_id]
+ @test GenX.storage_sym_ac_charge(gen) == dfVRE_STOR[dfVRE_STOR.stor_ac_charge .== 1, :r_id]
+ @test GenX.storage_asym_ac_charge(gen) == dfVRE_STOR[dfVRE_STOR.stor_ac_charge .== 2, :r_id]
+
+ @test GenX.technology.(gen[rs]) == dfVRE_STOR.technology
+ @test GenX.is_LDS_VRE_STOR(gen) == dfVRE_STOR[dfVRE_STOR.lds_vre_stor .!= 0, :r_id]
+
+
+ for attr in (:existing_cap_solar_mw,
+ :existing_cap_wind_mw,
+ :existing_cap_inverter_mw,
+ :existing_cap_charge_dc_mw,
+ :existing_cap_charge_ac_mw,
+ :existing_cap_discharge_dc_mw,
+ :existing_cap_discharge_ac_mw)
+ test_macro_interface(attr, gen[rs], dfVRE_STOR)
+ test_ids_with_nonneg(attr, gen[rs], dfVRE_STOR)
+ end
+
+ for attr in (:max_cap_solar_mw,
+ :max_cap_wind_mw,
+ :max_cap_inverter_mw,
+ :max_cap_charge_dc_mw,
+ :max_cap_charge_ac_mw,
+ :max_cap_discharge_dc_mw,
+ :max_cap_discharge_ac_mw)
+ test_macro_interface(attr, gen[rs], dfVRE_STOR)
+ test_ids_with_nonneg(attr, gen[rs], dfVRE_STOR)
+ test_ids_with(attr, gen[rs], dfVRE_STOR)
+ end
+
+ for attr in (:min_cap_solar_mw,
+ :min_cap_wind_mw,
+ :min_cap_inverter_mw,
+ :min_cap_charge_dc_mw,
+ :min_cap_charge_ac_mw,
+ :min_cap_discharge_dc_mw,
+ :min_cap_discharge_ac_mw,
+ :inverter_ratio_solar,
+ :inverter_ratio_wind,)
+ test_macro_interface(attr, gen[rs], dfVRE_STOR)
+ test_ids_with_positive(attr, gen[rs], dfVRE_STOR)
+ end
+
+ for attr in (:etainverter,
+ :inv_cost_inverter_per_mwyr,
+ :inv_cost_solar_per_mwyr,
+ :inv_cost_wind_per_mwyr,
+ :inv_cost_discharge_dc_per_mwyr,
+ :inv_cost_charge_dc_per_mwyr,
+ :inv_cost_discharge_ac_per_mwyr,
+ :inv_cost_charge_ac_per_mwyr,
+ :fixed_om_inverter_cost_per_mwyr,
+ :fixed_om_solar_cost_per_mwyr,
+ :fixed_om_wind_cost_per_mwyr,
+ :fixed_om_cost_discharge_dc_per_mwyr,
+ :fixed_om_cost_charge_dc_per_mwyr,
+ :fixed_om_cost_discharge_ac_per_mwyr,
+ :fixed_om_cost_charge_ac_per_mwyr,
+ :var_om_cost_per_mwh_solar,
+ :var_om_cost_per_mwh_wind,
+ :var_om_cost_per_mwh_charge_dc,
+ :var_om_cost_per_mwh_discharge_dc,
+ :var_om_cost_per_mwh_charge_ac,
+ :var_om_cost_per_mwh_discharge_ac,
+ :eff_up_ac,
+ :eff_down_ac,
+ :eff_up_dc,
+ :eff_down_dc,
+ :power_to_energy_ac,
+ :power_to_energy_dc)
+ test_macro_interface(attr, gen[rs], dfVRE_STOR)
+ end
+
+ # policies
+ @test GenX.esr_vrestor.(gen[rs], tag=1) == dfVRE_STOR.esr_vrestor_1
+ @test GenX.esr_vrestor.(gen[rs], tag=2) == dfVRE_STOR.esr_vrestor_2
+ @test GenX.min_cap_stor.(gen[rs], tag=1) == dfVRE_STOR.mincaptagstor_1
+ @test GenX.min_cap_stor.(gen[rs], tag=2) == dfVRE_STOR.mincaptagstor_2
+ @test GenX.derating_factor.(gen[rs], tag=1) == dfVRE_STOR.capresvrestor_1
+ @test GenX.derating_factor.(gen[rs], tag=2) == dfVRE_STOR.capresvrestor_2
+ @test GenX.max_cap_stor.(gen[rs], tag=1) == dfVRE_STOR.maxcaptagstor_1
+ @test GenX.max_cap_stor.(gen[rs], tag=2) == dfVRE_STOR.maxcaptagstor_2
+ @test GenX.min_cap_solar.(gen[rs], tag=1) == dfVRE_STOR.mincaptagsolar_1
+ @test GenX.max_cap_solar.(gen[rs], tag=1) == dfVRE_STOR.maxcaptagsolar_1
+ @test GenX.min_cap_wind.(gen[rs], tag=1) == dfVRE_STOR.mincaptagwind_1
+ @test GenX.max_cap_wind.(gen[rs], tag=1) == dfVRE_STOR.maxcaptagwind_1
+
+ @test GenX.ids_with_policy(gen, GenX.min_cap_solar, tag=1) == dfVRE_STOR[dfVRE_STOR.mincaptagsolar_1 .== 1, :r_id]
+ @test GenX.ids_with_policy(gen, GenX.min_cap_wind, tag=1) == dfVRE_STOR[dfVRE_STOR.mincaptagwind_1 .== 1, :r_id]
+ @test GenX.ids_with_policy(gen, GenX.min_cap_stor, tag=1) == dfVRE_STOR[dfVRE_STOR.mincaptagstor_1 .== 1, :r_id]
+ @test GenX.ids_with_policy(gen, GenX.max_cap_solar, tag=1) == dfVRE_STOR[dfVRE_STOR.maxcaptagsolar_1 .== 1, :r_id]
+ @test GenX.ids_with_policy(gen, GenX.max_cap_wind, tag=1) == dfVRE_STOR[dfVRE_STOR.maxcaptagwind_1 .== 1, :r_id]
+ @test GenX.ids_with_policy(gen, GenX.max_cap_stor, tag=1) == dfVRE_STOR[dfVRE_STOR.maxcaptagstor_1 .== 1, :r_id]
+
+ # inputs keys
+ @test inputs["VRE_STOR"] == dfGen[dfGen.vre_stor.==1,:r_id]
+ @test inputs["VS_SOLAR"] == dfVRE_STOR[(dfVRE_STOR.solar.!=0),:r_id]
+ @test inputs["VS_WIND"] == dfVRE_STOR[(dfVRE_STOR.wind.!=0),:r_id]
+ @test inputs["VS_DC"] == union(dfVRE_STOR[dfVRE_STOR.stor_dc_discharge.>=1,:r_id], dfVRE_STOR[dfVRE_STOR.stor_dc_charge.>=1,:r_id], dfVRE_STOR[dfVRE_STOR.solar.!=0,:r_id])
+
+ @test inputs["VS_STOR"] == union(dfVRE_STOR[dfVRE_STOR.stor_dc_charge.>=1,:r_id], dfVRE_STOR[dfVRE_STOR.stor_ac_charge.>=1,:r_id],
+ dfVRE_STOR[dfVRE_STOR.stor_dc_discharge.>=1,:r_id], dfVRE_STOR[dfVRE_STOR.stor_ac_discharge.>=1,:r_id])
+ STOR = inputs["VS_STOR"]
+ @test inputs["VS_STOR_DC_DISCHARGE"] == dfVRE_STOR[(dfVRE_STOR.stor_dc_discharge.>=1),:r_id]
+ @test inputs["VS_SYM_DC_DISCHARGE"] == dfVRE_STOR[dfVRE_STOR.stor_dc_discharge.==1,:r_id]
+ @test inputs["VS_ASYM_DC_DISCHARGE"] == dfVRE_STOR[dfVRE_STOR.stor_dc_discharge.==2,:r_id]
+ @test inputs["VS_STOR_DC_CHARGE"] == dfVRE_STOR[(dfVRE_STOR.stor_dc_charge.>=1),:r_id]
+ @test inputs["VS_SYM_DC_CHARGE"] == dfVRE_STOR[dfVRE_STOR.stor_dc_charge.==1,:r_id]
+ @test inputs["VS_ASYM_DC_CHARGE"] == dfVRE_STOR[dfVRE_STOR.stor_dc_charge.==2,:r_id]
+ @test inputs["VS_STOR_AC_DISCHARGE"] == dfVRE_STOR[(dfVRE_STOR.stor_ac_discharge.>=1),:r_id]
+ @test inputs["VS_SYM_AC_DISCHARGE"] == dfVRE_STOR[dfVRE_STOR.stor_ac_discharge.==1,:r_id]
+ @test inputs["VS_ASYM_AC_DISCHARGE"] == dfVRE_STOR[dfVRE_STOR.stor_ac_discharge.==2,:r_id]
+ @test inputs["VS_STOR_AC_CHARGE"] == dfVRE_STOR[(dfVRE_STOR.stor_ac_charge.>=1),:r_id]
+ @test inputs["VS_SYM_AC_CHARGE"] == dfVRE_STOR[dfVRE_STOR.stor_ac_charge.==1,:r_id]
+ @test inputs["VS_ASYM_AC_CHARGE"] == dfVRE_STOR[dfVRE_STOR.stor_ac_charge.==2,:r_id]
+ @test inputs["VS_LDS"] == dfVRE_STOR[(dfVRE_STOR.lds_vre_stor.!=0),:r_id]
+ @test inputs["VS_nonLDS"] == setdiff(STOR, inputs["VS_LDS"])
+ @test inputs["VS_ASYM"] == union(inputs["VS_ASYM_DC_CHARGE"], inputs["VS_ASYM_DC_DISCHARGE"], inputs["VS_ASYM_AC_DISCHARGE"], inputs["VS_ASYM_AC_CHARGE"])
+ @test inputs["VS_SYM_DC"] == intersect(inputs["VS_SYM_DC_CHARGE"], inputs["VS_SYM_DC_DISCHARGE"])
+ @test inputs["VS_SYM_AC"] == intersect(inputs["VS_SYM_AC_CHARGE"], inputs["VS_SYM_AC_DISCHARGE"])
+
+ buildable = dfGen[dfGen.new_build .== 1, :r_id]
+ retirable = dfGen[dfGen.can_retire .== 1, :r_id]
+ @test inputs["NEW_CAP_SOLAR"] == intersect(buildable, dfVRE_STOR[dfVRE_STOR.solar.!=0,:r_id], dfVRE_STOR[dfVRE_STOR.max_cap_solar_mw.!=0,:r_id])
+ @test inputs["RET_CAP_SOLAR"] == intersect(retirable, dfVRE_STOR[dfVRE_STOR.solar.!=0,:r_id], dfVRE_STOR[dfVRE_STOR.existing_cap_solar_mw.>=0,:r_id])
+ @test inputs["NEW_CAP_WIND"] == intersect(buildable, dfVRE_STOR[dfVRE_STOR.wind.!=0,:r_id], dfVRE_STOR[dfVRE_STOR.max_cap_wind_mw.!=0,:r_id])
+ @test inputs["RET_CAP_WIND"] == intersect(retirable, dfVRE_STOR[dfVRE_STOR.wind.!=0,:r_id], dfVRE_STOR[dfVRE_STOR.existing_cap_wind_mw.>=0,:r_id])
+ @test inputs["NEW_CAP_DC"] == intersect(buildable, dfVRE_STOR[dfVRE_STOR.max_cap_inverter_mw.!=0,:r_id], inputs["VS_DC"])
+ @test inputs["RET_CAP_DC"] == intersect(retirable, dfVRE_STOR[dfVRE_STOR.existing_cap_inverter_mw.>=0,:r_id], inputs["VS_DC"])
+ @test inputs["NEW_CAP_STOR"] == intersect(buildable, dfGen[dfGen.max_cap_mwh.!=0,:r_id], inputs["VS_STOR"])
+ @test inputs["RET_CAP_STOR"] == intersect(retirable, dfGen[dfGen.existing_cap_mwh.>=0,:r_id], inputs["VS_STOR"])
+ @test inputs["NEW_CAP_CHARGE_DC"] == intersect(buildable, dfVRE_STOR[dfVRE_STOR.max_cap_charge_dc_mw.!=0,:r_id], inputs["VS_ASYM_DC_CHARGE"])
+ @test inputs["RET_CAP_CHARGE_DC"] == intersect(retirable, dfVRE_STOR[dfVRE_STOR.existing_cap_charge_dc_mw.>=0,:r_id], inputs["VS_ASYM_DC_CHARGE"])
+ @test inputs["NEW_CAP_DISCHARGE_DC"] == intersect(buildable, dfVRE_STOR[dfVRE_STOR.max_cap_discharge_dc_mw.!=0,:r_id], inputs["VS_ASYM_DC_DISCHARGE"])
+ @test inputs["RET_CAP_DISCHARGE_DC"] == intersect(retirable, dfVRE_STOR[dfVRE_STOR.existing_cap_discharge_dc_mw.>=0,:r_id], inputs["VS_ASYM_DC_DISCHARGE"])
+ @test inputs["NEW_CAP_CHARGE_AC"] == intersect(buildable, dfVRE_STOR[dfVRE_STOR.max_cap_charge_ac_mw.!=0,:r_id], inputs["VS_ASYM_AC_CHARGE"])
+ @test inputs["RET_CAP_CHARGE_AC"] == intersect(retirable, dfVRE_STOR[dfVRE_STOR.existing_cap_charge_ac_mw.>=0,:r_id], inputs["VS_ASYM_AC_CHARGE"])
+ @test inputs["NEW_CAP_DISCHARGE_AC"] == intersect(buildable, dfVRE_STOR[dfVRE_STOR.max_cap_discharge_ac_mw.!=0,:r_id], inputs["VS_ASYM_AC_DISCHARGE"])
+ @test inputs["RET_CAP_DISCHARGE_AC"] == intersect(retirable, dfVRE_STOR[dfVRE_STOR.existing_cap_discharge_ac_mw.>=0,:r_id], inputs["VS_ASYM_AC_DISCHARGE"])
+ @test inputs["RESOURCE_NAMES_VRE_STOR"] == collect(skipmissing(dfVRE_STOR[!,:resource][1:size(inputs["VRE_STOR"])[1]]))
+ @test inputs["RESOURCE_NAMES_SOLAR"] == dfVRE_STOR[(dfVRE_STOR.solar.!=0), :resource]
+ @test inputs["RESOURCE_NAMES_WIND"] == dfVRE_STOR[(dfVRE_STOR.wind.!=0), :resource]
+ @test inputs["RESOURCE_NAMES_DC_DISCHARGE"] == dfVRE_STOR[(dfVRE_STOR.stor_dc_discharge.!=0), :resource]
+ @test inputs["RESOURCE_NAMES_AC_DISCHARGE"] == dfVRE_STOR[(dfVRE_STOR.stor_ac_discharge.!=0), :resource]
+ @test inputs["RESOURCE_NAMES_DC_CHARGE"] == dfVRE_STOR[(dfVRE_STOR.stor_dc_charge.!=0), :resource]
+ @test inputs["RESOURCE_NAMES_AC_CHARGE"] == dfVRE_STOR[(dfVRE_STOR.stor_ac_charge.!=0), :resource]
+ @test inputs["ZONES_SOLAR"] == dfVRE_STOR[(dfVRE_STOR.solar.!=0), :zone]
+ @test inputs["ZONES_WIND"] == dfVRE_STOR[(dfVRE_STOR.wind.!=0), :zone]
+ @test inputs["ZONES_DC_DISCHARGE"] == dfVRE_STOR[(dfVRE_STOR.stor_dc_discharge.!=0), :zone]
+ @test inputs["ZONES_AC_DISCHARGE"] == dfVRE_STOR[(dfVRE_STOR.stor_ac_discharge.!=0), :zone]
+ @test inputs["ZONES_DC_CHARGE"] == dfVRE_STOR[(dfVRE_STOR.stor_dc_charge.!=0), :zone]
+ @test inputs["ZONES_AC_CHARGE"] == dfVRE_STOR[(dfVRE_STOR.stor_ac_charge.!=0), :zone]
+end
+
+with_logger(ConsoleLogger(stderr, Logging.Warn)) do
+ test_load_resources_data()
+ test_load_VRE_STOR_data()
+end
+
+end # module TestLoadResourceData
\ No newline at end of file
diff --git a/test/test_multistage.jl b/test/test_multistage.jl
index 4c03b3d90c..ea7f1b646b 100644
--- a/test/test_multistage.jl
+++ b/test/test_multistage.jl
@@ -5,7 +5,7 @@ using Test
include(joinpath(@__DIR__, "utilities.jl"))
obj_true = [79734.80032, 41630.03494, 27855.20631]
-test_path = joinpath(@__DIR__,"MultiStage");
+test_path = joinpath(@__DIR__, "MultiStage");
# Define test inputs
multistage_setup = Dict(
@@ -25,6 +25,7 @@ genx_setup = Dict(
"UCommit" => 2,
"MultiStage" => 1,
"MultiStageSettingsDict" => multistage_setup,
+ "ResourcePath" => "Resources",
)
# Run the case and get the objective value and tolerance
@@ -53,7 +54,7 @@ function test_new_build(EP::Dict,inputs::Dict)
for t in keys(EP)
if t==1
- a = value(EP[t][:eTotalCap][1]) <= inputs[1]["dfGen"][1,:Existing_Cap_MW][1]
+ a = value(EP[t][:eTotalCap][1]) <= GenX.existing_cap_mw(inputs[1]["RESOURCES"][1])[1]
else
a = value(EP[t][:eTotalCap][1]) <= value(EP[t-1][:eTotalCap][1])
end
@@ -71,7 +72,7 @@ function test_can_retire(EP::Dict,inputs::Dict)
for t in keys(EP)
if t==1
- a = value(EP[t][:eTotalCap][1]) >= inputs[1]["dfGen"][1,:Existing_Cap_MW][1]
+ a = value(EP[t][:eTotalCap][1]) >= GenX.existing_cap_mw(inputs[1]["RESOURCES"][1])[1]
else
a = value(EP[t][:eTotalCap][1]) >= value(EP[t-1][:eTotalCap][1])
end
diff --git a/test/test_threezones.jl b/test/test_threezones.jl
index 75d764d684..4489d4487b 100644
--- a/test/test_threezones.jl
+++ b/test/test_threezones.jl
@@ -19,7 +19,7 @@ genx_setup = Dict(
)
# Run the case and get the objective value and tolerance
-EP, _, _ = redirect_stdout(devnull) do
+EP, inputs, _ = redirect_stdout(devnull) do
run_genx_case_testing(test_path, genx_setup)
end
obj_test = objective_value(EP)
diff --git a/test/test_time_domain_reduction.jl b/test/test_time_domain_reduction.jl
index cfd8378439..b17761ee9c 100644
--- a/test/test_time_domain_reduction.jl
+++ b/test/test_time_domain_reduction.jl
@@ -41,8 +41,9 @@ genx_setup = Dict(
settings = GenX.default_settings()
merge!(settings, genx_setup)
-clustering_test =
+clustering_test = with_logger(ConsoleLogger(stderr, Logging.Warn)) do
GenX.cluster_inputs(test_folder, settings_path, settings, random = false)["ClusterObject"]
+end
# Load true clustering
clustering_true = JLD2.load(joinpath(TDR_Results_true, "clusters_true.jld2"))["ClusterObject"]
diff --git a/test/utilities.jl b/test/utilities.jl
index 94600d98ff..ae71056729 100644
--- a/test/utilities.jl
+++ b/test/utilities.jl
@@ -178,11 +178,67 @@ function cmp_csv(csv1::AbstractString, csv2::AbstractString)
throw(CSVFileNotFound(csv2))
end
- # Use unix-cmp on unix systems
- Sys.isunix() && return success(`cmp --quiet $csv1 $csv2`)
-
df1 = CSV.read(csv1, DataFrame)
df2 = CSV.read(csv2, DataFrame)
- return isequal(df1, df2)
+ # Sort the csv files
+ cols = sort(names(df1))
+ cols ≠ sort(names(df2)) && error("Column names in $csv1 and $csv2 are different.")
+
+ return isapprox_df(df1, df2)
+end
+
+"""
+ isapprox_df(df1::DataFrame, df2::DataFrame)
+
+Compare two DataFrames. Return true if they are identical or approximately equal.
+
+# Arguments
+- `df1::DataFrame`: first DataFrame
+- `df2::DataFrame`: second DataFrame
+
+# Returns
+- `true` if the two DataFrames are identical or approximately equal
+- `false` otherwise
+"""
+function isapprox_df(df1::DataFrame, df2::DataFrame)
+ @assert length(names(df1)) == length(names(df2))
+ @assert Set(names(df1)) == Set(names(df2))
+ is_approx = true
+ for col in names(df1)
+ !isapprox_col(df1[!, col], df2[!, col]) && return false
+ end
+ return is_approx
end
+
+"""
+ isapprox_col(col1, col2)
+
+Compare two columns of a DataFrame. Return true if they are identical or approximately equal.
+
+# Arguments
+- `col1::Vector`: first column
+- `col2::Vector`: second column
+
+# Returns
+- `true` if the two columns are identical or approximately equal
+- `false` otherwise
+"""
+function isapprox_col(col1, col2)
+ if isequal(col1, col2) || (eltype(col1) <: Float64 && isapprox(col1, col2))
+ return true
+ elseif eltype(col1) <: AbstractString
+ isapprox_col = true
+ for i in eachindex(col1)
+ if !isapprox_col
+ break
+ elseif !isnothing(tryparse(Float64, col1[i])) && !isnothing(tryparse(Float64, col2[i]))
+ isapprox_col = isapprox_col && isapprox(parse(Float64, col1[i]), parse(Float64, col2[i]))
+ else
+ isapprox_col = isapprox_col && isequal(col1[i], col2[i])
+ end
+ end
+ return isapprox_col
+ end
+ return false
+end
\ No newline at end of file