openTEPES 4.18.4__py3-none-any.whl → 4.18.6__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- openTEPES/9n_PTDF/oT_Data_Demand_9n_PTDF.csv +8737 -0
- openTEPES/9n_PTDF/oT_Data_Duration_9n_PTDF.csv +8737 -0
- openTEPES/9n_PTDF/oT_Data_Emission_9n_PTDF.csv +2 -0
- openTEPES/9n_PTDF/oT_Data_EnergyInflows_9n_PTDF.csv +8737 -0
- openTEPES/9n_PTDF/oT_Data_EnergyOutflows_9n_PTDF.csv +8737 -0
- openTEPES/9n_PTDF/oT_Data_Generation_9n_PTDF.csv +17 -0
- openTEPES/9n_PTDF/oT_Data_Inertia_9n_PTDF.csv +8737 -0
- openTEPES/9n_PTDF/oT_Data_Network_9n_PTDF.csv +14 -0
- openTEPES/9n_PTDF/oT_Data_NodeLocation_9n_PTDF.csv +10 -0
- openTEPES/9n_PTDF/oT_Data_OperatingReserveDown_9n_PTDF.csv +8737 -0
- openTEPES/9n_PTDF/oT_Data_OperatingReserveUp_9n_PTDF.csv +8737 -0
- openTEPES/9n_PTDF/oT_Data_Option_9n_PTDF.csv +2 -0
- openTEPES/9n_PTDF/oT_Data_Parameter_9n_PTDF.csv +2 -0
- openTEPES/9n_PTDF/oT_Data_Period_9n_PTDF.csv +2 -0
- openTEPES/9n_PTDF/oT_Data_RESEnergy_9n_PTDF.csv +2 -0
- openTEPES/9n_PTDF/oT_Data_ReserveMargin_9n_PTDF.csv +2 -0
- openTEPES/9n_PTDF/oT_Data_Scenario_9n_PTDF.csv +2 -0
- openTEPES/9n_PTDF/oT_Data_Stage_9n_PTDF.csv +2 -0
- openTEPES/9n_PTDF/oT_Data_VariableEmissionCost_9n_PTDF.csv +8737 -0
- openTEPES/9n_PTDF/oT_Data_VariableFuelCost_9n_PTDF.csv +8737 -0
- openTEPES/9n_PTDF/oT_Data_VariableMaxConsumption_9n_PTDF.csv +8737 -0
- openTEPES/9n_PTDF/oT_Data_VariableMaxEnergy_9n_PTDF.csv +8737 -0
- openTEPES/9n_PTDF/oT_Data_VariableMaxGeneration_9n_PTDF.csv +8737 -0
- openTEPES/9n_PTDF/oT_Data_VariableMaxStorage_9n_PTDF.csv +8737 -0
- openTEPES/9n_PTDF/oT_Data_VariableMinConsumption_9n_PTDF.csv +8737 -0
- openTEPES/9n_PTDF/oT_Data_VariableMinEnergy_9n_PTDF.csv +8737 -0
- openTEPES/9n_PTDF/oT_Data_VariableMinGeneration_9n_PTDF.csv +8737 -0
- openTEPES/9n_PTDF/oT_Data_VariableMinStorage_9n_PTDF.csv +8737 -0
- openTEPES/9n_PTDF/oT_Data_VariablePTDF_9n_PTDF.csv +8740 -0
- openTEPES/9n_PTDF/oT_Data_VariableTTCBck_9n_PTDF.csv +8739 -0
- openTEPES/9n_PTDF/oT_Data_VariableTTCFrw_9n_PTDF.csv +8739 -0
- openTEPES/9n_PTDF/oT_Dict_AreaToRegion_9n_PTDF.csv +2 -0
- openTEPES/9n_PTDF/oT_Dict_Area_9n_PTDF.csv +2 -0
- openTEPES/9n_PTDF/oT_Dict_Circuit_9n_PTDF.csv +3 -0
- openTEPES/9n_PTDF/oT_Dict_Generation_9n_PTDF.csv +17 -0
- openTEPES/9n_PTDF/oT_Dict_Line_9n_PTDF.csv +3 -0
- openTEPES/9n_PTDF/oT_Dict_LoadLevel_9n_PTDF.csv +8737 -0
- openTEPES/9n_PTDF/oT_Dict_NodeToZone_9n_PTDF.csv +10 -0
- openTEPES/9n_PTDF/oT_Dict_Node_9n_PTDF.csv +10 -0
- openTEPES/9n_PTDF/oT_Dict_Period_9n_PTDF.csv +2 -0
- openTEPES/9n_PTDF/oT_Dict_Region_9n_PTDF.csv +31 -0
- openTEPES/9n_PTDF/oT_Dict_Scenario_9n_PTDF.csv +2 -0
- openTEPES/9n_PTDF/oT_Dict_Stage_9n_PTDF.csv +2 -0
- openTEPES/9n_PTDF/oT_Dict_Storage_9n_PTDF.csv +3 -0
- openTEPES/9n_PTDF/oT_Dict_Technology_9n_PTDF.csv +7 -0
- openTEPES/9n_PTDF/oT_Dict_ZoneToArea_9n_PTDF.csv +10 -0
- openTEPES/9n_PTDF/oT_Dict_Zone_9n_PTDF.csv +10 -0
- openTEPES/RTS-GMLC/oT_Data_VariableMinGeneration_RTS-GMLC.csv +1 -1
- openTEPES/RTS-GMLC_6y/oT_Data_VariableFuelCost_RTS-GMLC_6y.csv +1 -1
- openTEPES/RTS-GMLC_6y/oT_Dict_AreaToRegion_RTS-GMLC_6y.csv +4 -4
- openTEPES/RTS-GMLC_6y/oT_Dict_Area_RTS-GMLC_6y.csv +4 -4
- openTEPES/RTS-GMLC_6y/oT_Dict_Circuit_RTS-GMLC_6y.csv +5 -5
- openTEPES/RTS-GMLC_6y/oT_Dict_Line_RTS-GMLC_6y.csv +3 -3
- openTEPES/RTS-GMLC_6y/oT_Dict_NodeToZone_RTS-GMLC_6y.csv +74 -74
- openTEPES/RTS-GMLC_6y/oT_Dict_Region_RTS-GMLC_6y.csv +2 -2
- openTEPES/RTS-GMLC_6y/oT_Dict_Scenario_RTS-GMLC_6y.csv +2 -2
- openTEPES/RTS-GMLC_6y/oT_Dict_Storage_RTS-GMLC_6y.csv +3 -3
- openTEPES/RTS-GMLC_6y/oT_Dict_Technology_RTS-GMLC_6y.csv +10 -10
- openTEPES/RTS-GMLC_6y/oT_Dict_ZoneToArea_RTS-GMLC_6y.csv +22 -22
- openTEPES/RTS-GMLC_6y/oT_Dict_Zone_RTS-GMLC_6y.csv +22 -22
- openTEPES/__init__.py +1 -1
- openTEPES/openTEPES.py +26 -17
- openTEPES/openTEPES_InputData.py +1335 -1188
- openTEPES/openTEPES_Main.py +3 -3
- openTEPES/openTEPES_ModelFormulation.py +413 -156
- openTEPES/openTEPES_OutputResults.py +263 -206
- openTEPES/openTEPES_ProblemSolving.py +35 -28
- openTEPES/sSEP/oT_Data_DemandHydrogen_sSEP.csv +8736 -8736
- openTEPES/sSEP/oT_Data_Generation_sSEP.csv +1 -1
- openTEPES/sSEP/oT_Data_HydroOutflows_sSEP.csv +1 -1
- {opentepes-4.18.4.dist-info → opentepes-4.18.6.dist-info}/METADATA +65 -46
- {opentepes-4.18.4.dist-info → opentepes-4.18.6.dist-info}/RECORD +75 -28
- {opentepes-4.18.4.dist-info → opentepes-4.18.6.dist-info}/WHEEL +1 -1
- {opentepes-4.18.4.dist-info → opentepes-4.18.6.dist-info}/entry_points.txt +0 -0
- {opentepes-4.18.4.dist-info → opentepes-4.18.6.dist-info/licenses}/LICENSE +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
Period,Scenario,LoadLevel,101_CT_1,101_CT_2,101_PV_1,101_PV_2,101_PV_3,101_PV_4,101_STEAM_3,101_STEAM_4,102_CT_1,102_CT_2,102_PV_1,102_PV_2,102_STEAM_3,102_STEAM_4,103_PV_1,104_PV_1,107_CC_1,113_CT_1,113_CT_2,113_CT_3,113_CT_4,113_PV_1,114_SYNC_COND_1,115_STEAM_1,115_STEAM_2,115_STEAM_3,116_STEAM_1,118_CC_1,118_RTPV_1,118_RTPV_10,118_RTPV_2,118_RTPV_3,118_RTPV_4,118_RTPV_5,118_RTPV_6,118_RTPV_7,118_RTPV_8,118_RTPV_9,119_PV_1,121_NUCLEAR_1,122_HYDRO_1,122_HYDRO_2,122_HYDRO_3,122_HYDRO_4,122_HYDRO_5,122_HYDRO_6,122_WIND_1,123_CT_1,123_CT_4,123_CT_5,123_STEAM_2,123_STEAM_3,201_CT_1,201_CT_2,201_HYDRO_4,201_STEAM_3,202_CT_1,202_CT_2,202_STEAM_3,202_STEAM_4,207_CT_1,207_CT_2,212_CSP_1,213_CC_3,213_CT_1,213_CT_2,213_RTPV_1,214_SYNC_COND_1,215_CT_4,215_CT_5,215_HYDRO_1,215_HYDRO_2,215_HYDRO_3,215_PV_1,216_STEAM_1,218_CC_1,221_CC_1,222_HYDRO_1,222_HYDRO_2,222_HYDRO_3,222_HYDRO_4,222_HYDRO_5,222_HYDRO_6,223_CT_4,223_CT_5,223_CT_6,223_STEAM_1,223_STEAM_2,223_STEAM_3,301_CT_1,301_CT_2,301_CT_3,301_CT_4,302_CT_1,302_CT_2,302_CT_3,302_CT_4,303_WIND_1,307_CT_1,307_CT_2,308_RTPV_1,309_WIND_1,310_PV_1,310_PV_2,312_PV_1,313_CC_1,313_PV_1,313_PV_2,313_RTPV_1,313_RTPV_10,313_RTPV_11,313_RTPV_12,313_RTPV_13,313_RTPV_2,313_RTPV_3,313_RTPV_4,313_RTPV_5,313_RTPV_6,313_RTPV_7,313_RTPV_8,313_RTPV_9,313_STORAGE_1,314_PV_1,314_PV_2,314_PV_3,314_PV_4,314_SYNC_COND_1,315_CT_6,315_CT_7,315_CT_8,315_STEAM_1,315_STEAM_2,315_STEAM_3,315_STEAM_4,315_STEAM_5,316_STEAM_1,317_WIND_1,318_CC_1,319_PV_1,320_PV_1,320_RTPV_1,320_RTPV_2,320_RTPV_3,320_RTPV_4,320_RTPV_5,320_RTPV_6,321_CC_1,322_CT_5,322_CT_6,322_HYDRO_1,322_HYDRO_2,322_HYDRO_3,322_HYDRO_4,323_CC_1,323_CC_2,324_PV_1,324_PV_2,324_PV_3
|
|
2
2
|
2020,sc01,01-01 00:00:00+01:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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
3
|
2020,sc01,01-01 01:00:00+01:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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
4
|
2020,sc01,01-01 02:00:00+01:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
Period,Scenario,LoadLevel,101_CT_1,101_CT_2,101_PV_1,101_PV_2,101_PV_3,101_PV_4,101_STEAM_3,101_STEAM_4,102_CT_1,102_CT_2,102_PV_1,102_PV_2,102_STEAM_3,102_STEAM_4,103_PV_1,104_PV_1,107_CC_1,113_CT_1,113_CT_2,113_CT_3,113_CT_4,113_PV_1,114_SYNC_COND_1,115_STEAM_1,115_STEAM_2,115_STEAM_3,116_STEAM_1,118_CC_1,118_RTPV_1,118_RTPV_10,118_RTPV_2,118_RTPV_3,118_RTPV_4,118_RTPV_5,118_RTPV_6,118_RTPV_7,118_RTPV_8,118_RTPV_9,119_PV_1,121_NUCLEAR_1,122_HYDRO_1,122_HYDRO_2,122_HYDRO_3,122_HYDRO_4,122_HYDRO_5,122_HYDRO_6,122_WIND_1,123_CT_1,123_CT_4,123_CT_5,123_STEAM_2,123_STEAM_3,201_CT_1,201_CT_2,201_HYDRO_4,201_STEAM_3,202_CT_1,202_CT_2,202_STEAM_3,202_STEAM_4,207_CT_1,207_CT_2,212_CSP_1,213_CC_3,213_CT_1,213_CT_2,213_RTPV_1,214_SYNC_COND_1,215_CT_4,215_CT_5,215_HYDRO_1,215_HYDRO_2,215_HYDRO_3,215_PV_1,216_STEAM_1,218_CC_1,221_CC_1,222_HYDRO_1,222_HYDRO_2,222_HYDRO_3,222_HYDRO_4,222_HYDRO_5,222_HYDRO_6,223_CT_4,223_CT_5,223_CT_6,223_STEAM_1,223_STEAM_2,223_STEAM_3,301_CT_1,301_CT_2,301_CT_3,301_CT_4,302_CT_1,302_CT_2,302_CT_3,302_CT_4,303_WIND_1,307_CT_1,307_CT_2,308_RTPV_1,309_WIND_1,310_PV_1,310_PV_2,312_PV_1,313_CC_1,313_PV_1,313_PV_2,313_RTPV_1,313_RTPV_10,313_RTPV_11,313_RTPV_12,313_RTPV_13,313_RTPV_2,313_RTPV_3,313_RTPV_4,313_RTPV_5,313_RTPV_6,313_RTPV_7,313_RTPV_8,313_RTPV_9,313_STORAGE_1,314_PV_1,314_PV_2,314_PV_3,314_PV_4,314_SYNC_COND_1,315_CT_6,315_CT_7,315_CT_8,315_STEAM_1,315_STEAM_2,315_STEAM_3,315_STEAM_4,315_STEAM_5,316_STEAM_1,317_WIND_1,318_CC_1,319_PV_1,320_PV_1,320_RTPV_1,320_RTPV_2,320_RTPV_3,320_RTPV_4,320_RTPV_5,320_RTPV_6,321_CC_1,322_CT_5,322_CT_6,322_HYDRO_1,322_HYDRO_2,322_HYDRO_3,322_HYDRO_4,323_CC_1,323_CC_2,324_PV_1,324_PV_2,324_PV_3,101_CT_1_NEW,102_CT_1_NEW,107_CT_1_NEW,113_CT_1_NEW,115_CT_1_NEW,116_CT_1_NEW,118_CT_1_NEW,123_CT_1_NEW,201_CT_1_NEW,202_CT_1_NEW,207_CT_1_NEW,213_CT_1_NEW,215_CT_1_NEW,216_CT_1_NEW,218_CT_1_NEW,221_CT_1_NEW,223_CT_1_NEW,301_CT_1_NEW,302_CT_1_NEW,307_CT_1_NEW,313_CT_1_NEW,315_CT_1_NEW,316_CT_1_NEW,318_CT_1_NEW,321_CT_1_NEW,322_CT_1_NEW,323_CT_1_NEW,114_CT_1_NEW,121_CT_1_NEW,122_CT_1_NEW,214_CT_1_NEW,222_CT_1_NEW,314_CT_1_NEW,320_CT_1_NEW,310_CT_1_NEW,324_CT_1_NEW,312_CT_1_NEW,319_CT_1_NEW,104_CT_1_NEW,212_CT_1_NEW,103_CT_1_NEW,119_CT_1_NEW,308_CT_1_NEW,309_CT_1_NEW,317_CT_1_NEW,303_CT_1_NEW,309_WIND_1_NEW,317_WIND_1_NEW,303_WIND_1_NEW,122_WIND_1_NEW
|
|
2
2
|
2020,sc01,01-01 00:00:00+01:00,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
3
3
|
2020,sc01,01-01 01:00:00+01:00,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
4
4
|
2020,sc01,01-01 02:00:00+01:00,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Area,Region
|
|
2
|
-
Area_1,Region_1
|
|
3
|
-
Area_2,Region_1
|
|
4
|
-
Area_3,Region_1
|
|
1
|
+
Area,Region
|
|
2
|
+
Area_1,Region_1
|
|
3
|
+
Area_2,Region_1
|
|
4
|
+
Area_3,Region_1
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Area
|
|
2
|
-
Area_1
|
|
3
|
-
Area_2
|
|
4
|
-
Area_3
|
|
1
|
+
Area
|
|
2
|
+
Area_1
|
|
3
|
+
Area_2
|
|
4
|
+
Area_3
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
Circuit
|
|
2
|
-
eac1
|
|
3
|
-
eac2
|
|
4
|
-
eac3
|
|
5
|
-
eac4
|
|
1
|
+
Circuit
|
|
2
|
+
eac1
|
|
3
|
+
eac2
|
|
4
|
+
eac3
|
|
5
|
+
eac4
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
LineType
|
|
2
|
-
AC
|
|
3
|
-
DC
|
|
1
|
+
LineType
|
|
2
|
+
AC
|
|
3
|
+
DC
|
|
@@ -1,74 +1,74 @@
|
|
|
1
|
-
Node,Zone
|
|
2
|
-
Node_101,Zone_11
|
|
3
|
-
Node_102,Zone_12
|
|
4
|
-
Node_103,Zone_11
|
|
5
|
-
Node_104,Zone_11
|
|
6
|
-
Node_105,Zone_11
|
|
7
|
-
Node_106,Zone_12
|
|
8
|
-
Node_107,Zone_12
|
|
9
|
-
Node_108,Zone_12
|
|
10
|
-
Node_109,Zone_13
|
|
11
|
-
Node_110,Zone_13
|
|
12
|
-
Node_111,Zone_13
|
|
13
|
-
Node_112,Zone_13
|
|
14
|
-
Node_113,Zone_14
|
|
15
|
-
Node_114,Zone_16
|
|
16
|
-
Node_115,Zone_16
|
|
17
|
-
Node_116,Zone_16
|
|
18
|
-
Node_117,Zone_17
|
|
19
|
-
Node_118,Zone_17
|
|
20
|
-
Node_119,Zone_15
|
|
21
|
-
Node_120,Zone_15
|
|
22
|
-
Node_121,Zone_17
|
|
23
|
-
Node_122,Zone_17
|
|
24
|
-
Node_123,Zone_15
|
|
25
|
-
Node_124,Zone_16
|
|
26
|
-
Node_201,Zone_21
|
|
27
|
-
Node_202,Zone_22
|
|
28
|
-
Node_203,Zone_21
|
|
29
|
-
Node_204,Zone_21
|
|
30
|
-
Node_205,Zone_21
|
|
31
|
-
Node_206,Zone_22
|
|
32
|
-
Node_207,Zone_22
|
|
33
|
-
Node_208,Zone_22
|
|
34
|
-
Node_209,Zone_23
|
|
35
|
-
Node_210,Zone_23
|
|
36
|
-
Node_211,Zone_23
|
|
37
|
-
Node_212,Zone_23
|
|
38
|
-
Node_213,Zone_24
|
|
39
|
-
Node_214,Zone_26
|
|
40
|
-
Node_215,Zone_26
|
|
41
|
-
Node_216,Zone_26
|
|
42
|
-
Node_217,Zone_27
|
|
43
|
-
Node_218,Zone_27
|
|
44
|
-
Node_219,Zone_25
|
|
45
|
-
Node_220,Zone_25
|
|
46
|
-
Node_221,Zone_27
|
|
47
|
-
Node_222,Zone_27
|
|
48
|
-
Node_223,Zone_25
|
|
49
|
-
Node_224,Zone_26
|
|
50
|
-
Node_301,Zone_31
|
|
51
|
-
Node_302,Zone_32
|
|
52
|
-
Node_303,Zone_31
|
|
53
|
-
Node_304,Zone_31
|
|
54
|
-
Node_305,Zone_31
|
|
55
|
-
Node_306,Zone_32
|
|
56
|
-
Node_307,Zone_32
|
|
57
|
-
Node_308,Zone_32
|
|
58
|
-
Node_309,Zone_33
|
|
59
|
-
Node_310,Zone_33
|
|
60
|
-
Node_311,Zone_33
|
|
61
|
-
Node_312,Zone_33
|
|
62
|
-
Node_313,Zone_34
|
|
63
|
-
Node_314,Zone_36
|
|
64
|
-
Node_315,Zone_36
|
|
65
|
-
Node_316,Zone_36
|
|
66
|
-
Node_317,Zone_37
|
|
67
|
-
Node_318,Zone_37
|
|
68
|
-
Node_319,Zone_35
|
|
69
|
-
Node_320,Zone_35
|
|
70
|
-
Node_321,Zone_37
|
|
71
|
-
Node_322,Zone_37
|
|
72
|
-
Node_323,Zone_35
|
|
73
|
-
Node_324,Zone_36
|
|
74
|
-
Node_325,Zone_35
|
|
1
|
+
Node,Zone
|
|
2
|
+
Node_101,Zone_11
|
|
3
|
+
Node_102,Zone_12
|
|
4
|
+
Node_103,Zone_11
|
|
5
|
+
Node_104,Zone_11
|
|
6
|
+
Node_105,Zone_11
|
|
7
|
+
Node_106,Zone_12
|
|
8
|
+
Node_107,Zone_12
|
|
9
|
+
Node_108,Zone_12
|
|
10
|
+
Node_109,Zone_13
|
|
11
|
+
Node_110,Zone_13
|
|
12
|
+
Node_111,Zone_13
|
|
13
|
+
Node_112,Zone_13
|
|
14
|
+
Node_113,Zone_14
|
|
15
|
+
Node_114,Zone_16
|
|
16
|
+
Node_115,Zone_16
|
|
17
|
+
Node_116,Zone_16
|
|
18
|
+
Node_117,Zone_17
|
|
19
|
+
Node_118,Zone_17
|
|
20
|
+
Node_119,Zone_15
|
|
21
|
+
Node_120,Zone_15
|
|
22
|
+
Node_121,Zone_17
|
|
23
|
+
Node_122,Zone_17
|
|
24
|
+
Node_123,Zone_15
|
|
25
|
+
Node_124,Zone_16
|
|
26
|
+
Node_201,Zone_21
|
|
27
|
+
Node_202,Zone_22
|
|
28
|
+
Node_203,Zone_21
|
|
29
|
+
Node_204,Zone_21
|
|
30
|
+
Node_205,Zone_21
|
|
31
|
+
Node_206,Zone_22
|
|
32
|
+
Node_207,Zone_22
|
|
33
|
+
Node_208,Zone_22
|
|
34
|
+
Node_209,Zone_23
|
|
35
|
+
Node_210,Zone_23
|
|
36
|
+
Node_211,Zone_23
|
|
37
|
+
Node_212,Zone_23
|
|
38
|
+
Node_213,Zone_24
|
|
39
|
+
Node_214,Zone_26
|
|
40
|
+
Node_215,Zone_26
|
|
41
|
+
Node_216,Zone_26
|
|
42
|
+
Node_217,Zone_27
|
|
43
|
+
Node_218,Zone_27
|
|
44
|
+
Node_219,Zone_25
|
|
45
|
+
Node_220,Zone_25
|
|
46
|
+
Node_221,Zone_27
|
|
47
|
+
Node_222,Zone_27
|
|
48
|
+
Node_223,Zone_25
|
|
49
|
+
Node_224,Zone_26
|
|
50
|
+
Node_301,Zone_31
|
|
51
|
+
Node_302,Zone_32
|
|
52
|
+
Node_303,Zone_31
|
|
53
|
+
Node_304,Zone_31
|
|
54
|
+
Node_305,Zone_31
|
|
55
|
+
Node_306,Zone_32
|
|
56
|
+
Node_307,Zone_32
|
|
57
|
+
Node_308,Zone_32
|
|
58
|
+
Node_309,Zone_33
|
|
59
|
+
Node_310,Zone_33
|
|
60
|
+
Node_311,Zone_33
|
|
61
|
+
Node_312,Zone_33
|
|
62
|
+
Node_313,Zone_34
|
|
63
|
+
Node_314,Zone_36
|
|
64
|
+
Node_315,Zone_36
|
|
65
|
+
Node_316,Zone_36
|
|
66
|
+
Node_317,Zone_37
|
|
67
|
+
Node_318,Zone_37
|
|
68
|
+
Node_319,Zone_35
|
|
69
|
+
Node_320,Zone_35
|
|
70
|
+
Node_321,Zone_37
|
|
71
|
+
Node_322,Zone_37
|
|
72
|
+
Node_323,Zone_35
|
|
73
|
+
Node_324,Zone_36
|
|
74
|
+
Node_325,Zone_35
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Region
|
|
2
|
-
Region_1
|
|
1
|
+
Region
|
|
2
|
+
Region_1
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Scenario
|
|
2
|
-
sc01
|
|
1
|
+
Scenario
|
|
2
|
+
sc01
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
StorageType
|
|
2
|
-
Daily
|
|
3
|
-
Weekly
|
|
1
|
+
StorageType
|
|
2
|
+
Daily
|
|
3
|
+
Weekly
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
Technology
|
|
2
|
-
Oil
|
|
3
|
-
Coal
|
|
4
|
-
NG
|
|
5
|
-
Sync_Cond
|
|
6
|
-
Nuclear
|
|
7
|
-
Hydro
|
|
8
|
-
Solar
|
|
9
|
-
Wind
|
|
10
|
-
Storage
|
|
1
|
+
Technology
|
|
2
|
+
Oil
|
|
3
|
+
Coal
|
|
4
|
+
NG
|
|
5
|
+
Sync_Cond
|
|
6
|
+
Nuclear
|
|
7
|
+
Hydro
|
|
8
|
+
Solar
|
|
9
|
+
Wind
|
|
10
|
+
Storage
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
Zone,Area
|
|
2
|
-
Zone_11,Area_1
|
|
3
|
-
Zone_12,Area_1
|
|
4
|
-
Zone_13,Area_1
|
|
5
|
-
Zone_14,Area_1
|
|
6
|
-
Zone_16,Area_1
|
|
7
|
-
Zone_17,Area_1
|
|
8
|
-
Zone_15,Area_1
|
|
9
|
-
Zone_21,Area_2
|
|
10
|
-
Zone_22,Area_2
|
|
11
|
-
Zone_23,Area_2
|
|
12
|
-
Zone_24,Area_2
|
|
13
|
-
Zone_26,Area_2
|
|
14
|
-
Zone_27,Area_2
|
|
15
|
-
Zone_25,Area_2
|
|
16
|
-
Zone_31,Area_3
|
|
17
|
-
Zone_32,Area_3
|
|
18
|
-
Zone_33,Area_3
|
|
19
|
-
Zone_34,Area_3
|
|
20
|
-
Zone_36,Area_3
|
|
21
|
-
Zone_37,Area_3
|
|
22
|
-
Zone_35,Area_3
|
|
1
|
+
Zone,Area
|
|
2
|
+
Zone_11,Area_1
|
|
3
|
+
Zone_12,Area_1
|
|
4
|
+
Zone_13,Area_1
|
|
5
|
+
Zone_14,Area_1
|
|
6
|
+
Zone_16,Area_1
|
|
7
|
+
Zone_17,Area_1
|
|
8
|
+
Zone_15,Area_1
|
|
9
|
+
Zone_21,Area_2
|
|
10
|
+
Zone_22,Area_2
|
|
11
|
+
Zone_23,Area_2
|
|
12
|
+
Zone_24,Area_2
|
|
13
|
+
Zone_26,Area_2
|
|
14
|
+
Zone_27,Area_2
|
|
15
|
+
Zone_25,Area_2
|
|
16
|
+
Zone_31,Area_3
|
|
17
|
+
Zone_32,Area_3
|
|
18
|
+
Zone_33,Area_3
|
|
19
|
+
Zone_34,Area_3
|
|
20
|
+
Zone_36,Area_3
|
|
21
|
+
Zone_37,Area_3
|
|
22
|
+
Zone_35,Area_3
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
Zone
|
|
2
|
-
Zone_11
|
|
3
|
-
Zone_12
|
|
4
|
-
Zone_13
|
|
5
|
-
Zone_14
|
|
6
|
-
Zone_16
|
|
7
|
-
Zone_17
|
|
8
|
-
Zone_15
|
|
9
|
-
Zone_21
|
|
10
|
-
Zone_22
|
|
11
|
-
Zone_23
|
|
12
|
-
Zone_24
|
|
13
|
-
Zone_26
|
|
14
|
-
Zone_27
|
|
15
|
-
Zone_25
|
|
16
|
-
Zone_31
|
|
17
|
-
Zone_32
|
|
18
|
-
Zone_33
|
|
19
|
-
Zone_34
|
|
20
|
-
Zone_36
|
|
21
|
-
Zone_37
|
|
22
|
-
Zone_35
|
|
1
|
+
Zone
|
|
2
|
+
Zone_11
|
|
3
|
+
Zone_12
|
|
4
|
+
Zone_13
|
|
5
|
+
Zone_14
|
|
6
|
+
Zone_16
|
|
7
|
+
Zone_17
|
|
8
|
+
Zone_15
|
|
9
|
+
Zone_21
|
|
10
|
+
Zone_22
|
|
11
|
+
Zone_23
|
|
12
|
+
Zone_24
|
|
13
|
+
Zone_26
|
|
14
|
+
Zone_27
|
|
15
|
+
Zone_25
|
|
16
|
+
Zone_31
|
|
17
|
+
Zone_32
|
|
18
|
+
Zone_33
|
|
19
|
+
Zone_34
|
|
20
|
+
Zone_36
|
|
21
|
+
Zone_37
|
|
22
|
+
Zone_35
|
openTEPES/__init__.py
CHANGED
|
@@ -14,7 +14,7 @@ Open Generation, Storage, and Transmission Operation and Expansion Planning Mode
|
|
|
14
14
|
>>> import openTEPES as oT
|
|
15
15
|
>>> oT.routine("9n", "C:\\Users\\UserName\\Documents\\GitHub\\openTEPES", "glpk")
|
|
16
16
|
"""
|
|
17
|
-
__version__ = "4.18.
|
|
17
|
+
__version__ = "4.18.6"
|
|
18
18
|
|
|
19
19
|
from .openTEPES_Main import main
|
|
20
20
|
from .openTEPES import *
|
openTEPES/openTEPES.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"""
|
|
2
|
-
Open Generation, Storage, and Transmission Operation and Expansion Planning Model with RES and ESS (openTEPES) -
|
|
2
|
+
Open Generation, Storage, and Transmission Operation and Expansion Planning Model with RES and ESS (openTEPES) - September 21, 2025
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
5
|
# import dill as pickle
|
|
@@ -11,7 +11,7 @@ import time
|
|
|
11
11
|
import pyomo.environ as pyo
|
|
12
12
|
from pyomo.environ import ConcreteModel, Set
|
|
13
13
|
|
|
14
|
-
from .openTEPES_InputData import InputData, SettingUpVariables
|
|
14
|
+
from .openTEPES_InputData import InputData, DataConfiguration, SettingUpVariables
|
|
15
15
|
from .openTEPES_ModelFormulation import TotalObjectiveFunction, InvestmentModelFormulation, GenerationOperationModelFormulationObjFunct, GenerationOperationModelFormulationInvestment, GenerationOperationModelFormulationDemand, GenerationOperationModelFormulationStorage, GenerationOperationModelFormulationReservoir, NetworkH2OperationModelFormulation, NetworkHeatOperationModelFormulation, GenerationOperationModelFormulationCommitment, GenerationOperationModelFormulationRampMinTime, NetworkSwitchingModelFormulation, NetworkOperationModelFormulation, NetworkCycles, CycleConstraints
|
|
16
16
|
from .openTEPES_ProblemSolving import ProblemSolving
|
|
17
17
|
from .openTEPES_OutputResults import OutputResultsParVarCon, InvestmentResults, GenerationOperationResults, GenerationOperationHeatResults, ESSOperationResults, ReservoirOperationResults, NetworkH2OperationResults, NetworkHeatOperationResults, FlexibilityResults, NetworkOperationResults, MarginalResults, OperationSummaryResults, ReliabilityResults, CostSummaryResults, EconomicResults, NetworkMapResults
|
|
@@ -39,8 +39,8 @@ def openTEPES_run(DirName, CaseName, SolverName, pIndOutputResults, pIndLogConso
|
|
|
39
39
|
idxDict['y' ] = 1
|
|
40
40
|
|
|
41
41
|
#%% model declaration
|
|
42
|
-
mTEPES = ConcreteModel('Open Generation, Storage, and Transmission Operation and Expansion Planning Model with RES and ESS (openTEPES) - Version 4.18.
|
|
43
|
-
print( 'Open Generation, Storage, and Transmission Operation and Expansion Planning Model with RES and ESS (openTEPES) - Version 4.18.
|
|
42
|
+
mTEPES = ConcreteModel('Open Generation, Storage, and Transmission Operation and Expansion Planning Model with RES and ESS (openTEPES) - Version 4.18.6 - September 21, 2025')
|
|
43
|
+
print( 'Open Generation, Storage, and Transmission Operation and Expansion Planning Model with RES and ESS (openTEPES) - Version 4.18.6 - September 21, 2025', file=open(f'{_path}/openTEPES_version_{CaseName}.log','w'))
|
|
44
44
|
|
|
45
45
|
pIndOutputResults = [j for i,j in idxDict.items() if i == pIndOutputResults][0]
|
|
46
46
|
pIndLogConsole = [j for i,j in idxDict.items() if i == pIndLogConsole ][0]
|
|
@@ -48,9 +48,12 @@ def openTEPES_run(DirName, CaseName, SolverName, pIndOutputResults, pIndLogConso
|
|
|
48
48
|
# introduce cycle flow formulations in DC and AC load flow
|
|
49
49
|
pIndCycleFlow = 0
|
|
50
50
|
|
|
51
|
-
#
|
|
51
|
+
# Reading sets and parameters
|
|
52
52
|
InputData(DirName, CaseName, mTEPES, pIndLogConsole)
|
|
53
53
|
|
|
54
|
+
# Define sets and parameters
|
|
55
|
+
DataConfiguration(mTEPES)
|
|
56
|
+
|
|
54
57
|
# Define variables
|
|
55
58
|
SettingUpVariables(mTEPES, mTEPES)
|
|
56
59
|
|
|
@@ -100,12 +103,12 @@ def openTEPES_run(DirName, CaseName, SolverName, pIndOutputResults, pIndLogConso
|
|
|
100
103
|
if sum(1 for rs,h in mTEPES.r2p):
|
|
101
104
|
mTEPES.npc = [(n,h ) for n,h in mTEPES.n*mTEPES.h if sum(1 for rs in mTEPES.rs if (rs,h) in mTEPES.r2p) and mTEPES.n.ord(n) % sum(mTEPES.pReservoirTimeStep[rs] for rs in mTEPES.rs if (rs,h) in mTEPES.r2p) == 0]
|
|
102
105
|
else:
|
|
103
|
-
mTEPES.npc
|
|
106
|
+
mTEPES.npc = []
|
|
104
107
|
mTEPES.nrsc = [(n,rs) for n,rs in mTEPES.n*mTEPES.rs if mTEPES.n.ord(n) % mTEPES.pReservoirTimeStep[rs] == 0]
|
|
105
108
|
mTEPES.nrcc = [(n,rs) for n,rs in mTEPES.n*mTEPES.rn if mTEPES.n.ord(n) % mTEPES.pReservoirTimeStep[rs] == 0]
|
|
106
109
|
mTEPES.nrso = [(n,rs) for n,rs in mTEPES.n*mTEPES.rs if mTEPES.n.ord(n) % mTEPES.pWaterOutTimeStep [rs] == 0]
|
|
107
110
|
|
|
108
|
-
if
|
|
111
|
+
if mTEPES.st:
|
|
109
112
|
|
|
110
113
|
# load levels up to the current stage for emission and RES energy constraints
|
|
111
114
|
# if (p != mTEPES.p.first() or sc != mTEPES.sc.first()) and st == mTEPES.First_st:
|
|
@@ -153,6 +156,9 @@ def openTEPES_run(DirName, CaseName, SolverName, pIndOutputResults, pIndLogConso
|
|
|
153
156
|
if (max([mTEPES.pRESEnergy[p,ar] for ar in mTEPES.ar]) == 0
|
|
154
157
|
and (min([mTEPES.pEmission [p,ar] for ar in mTEPES.ar]) == math.inf or sum(mTEPES.pEmissionRate[nr] for nr in mTEPES.nr) == 0)):
|
|
155
158
|
|
|
159
|
+
if (p,sc) == mTEPES.ps.last() and st == mTEPES.Last_st and mTEPES.NoRepetition == 0:
|
|
160
|
+
mTEPES.NoRepetition = 1
|
|
161
|
+
|
|
156
162
|
# Writing LP file
|
|
157
163
|
if pIndLogConsole == 1:
|
|
158
164
|
StartTime = time.time()
|
|
@@ -177,6 +183,9 @@ def openTEPES_run(DirName, CaseName, SolverName, pIndOutputResults, pIndLogConso
|
|
|
177
183
|
|
|
178
184
|
if st == mTEPES.Last_st and mTEPES.NoRepetition == 0:
|
|
179
185
|
|
|
186
|
+
if (p,sc) == mTEPES.ps.last():
|
|
187
|
+
mTEPES.NoRepetition = 1
|
|
188
|
+
|
|
180
189
|
mTEPES.del_component(mTEPES.st)
|
|
181
190
|
mTEPES.del_component(mTEPES.n )
|
|
182
191
|
mTEPES.del_component(mTEPES.n2)
|
|
@@ -203,7 +212,7 @@ def openTEPES_run(DirName, CaseName, SolverName, pIndOutputResults, pIndLogConso
|
|
|
203
212
|
mTEPES.nrcc = [(n,rs) for n,rs in mTEPES.n*mTEPES.rn if mTEPES.n.ord(n) % mTEPES.pReservoirTimeStep[rs] == 0]
|
|
204
213
|
mTEPES.nrso = [(n,rs) for n,rs in mTEPES.n*mTEPES.rs if mTEPES.n.ord(n) % mTEPES.pWaterOutTimeStep [rs] == 0]
|
|
205
214
|
|
|
206
|
-
# Writing LP file
|
|
215
|
+
# Writing an LP file
|
|
207
216
|
if pIndLogConsole == 1:
|
|
208
217
|
StartTime = time.time()
|
|
209
218
|
mTEPES.write(f'{_path}/openTEPES_{CaseName}_{p}_{sc}_{st}.lp', io_options={'symbolic_solver_labels': True})
|
|
@@ -211,7 +220,7 @@ def openTEPES_run(DirName, CaseName, SolverName, pIndOutputResults, pIndLogConso
|
|
|
211
220
|
StartTime = time.time()
|
|
212
221
|
print('Writing LP file ... ', round(WritingLPFileTime), 's')
|
|
213
222
|
|
|
214
|
-
# there are investment decisions (it is an expansion and operation model) or there are system emission constraints
|
|
223
|
+
# there are investment decisions (it is an expansion and operation model), or there are system emission constraints
|
|
215
224
|
ProblemSolving(DirName, CaseName, SolverName, mTEPES, mTEPES, pIndLogConsole, p, sc, st)
|
|
216
225
|
|
|
217
226
|
# deactivate the constraints of the previous period and scenario
|
|
@@ -256,7 +265,7 @@ def openTEPES_run(DirName, CaseName, SolverName, pIndOutputResults, pIndLogConso
|
|
|
256
265
|
mTEPES.nrcc = [(n,rs) for n,rs in mTEPES.n*mTEPES.rn if mTEPES.n.ord(n) % mTEPES.pReservoirTimeStep[rs] == 0]
|
|
257
266
|
mTEPES.nrso = [(n,rs) for n,rs in mTEPES.n*mTEPES.rs if mTEPES.n.ord(n) % mTEPES.pWaterOutTimeStep [rs] == 0]
|
|
258
267
|
|
|
259
|
-
# Writing LP file
|
|
268
|
+
# Writing an LP file
|
|
260
269
|
if pIndLogConsole == 1:
|
|
261
270
|
StartTime = time.time()
|
|
262
271
|
mTEPES.write(f'{_path}/openTEPES_{CaseName}_{p}_{sc}_{st}.lp', io_options={'symbolic_solver_labels': True})
|
|
@@ -264,7 +273,7 @@ def openTEPES_run(DirName, CaseName, SolverName, pIndOutputResults, pIndLogConso
|
|
|
264
273
|
StartTime = time.time()
|
|
265
274
|
print('Writing LP file ... ', round(WritingLPFileTime), 's')
|
|
266
275
|
|
|
267
|
-
# there are investment decisions (it is an expansion and operation model) or there are system emission constraints
|
|
276
|
+
# there are investment decisions (it is an expansion and operation model), or there are system emission constraints
|
|
268
277
|
ProblemSolving(DirName, CaseName, SolverName, mTEPES, mTEPES, pIndLogConsole, p, sc, st)
|
|
269
278
|
|
|
270
279
|
mTEPES.del_component(mTEPES.st)
|
|
@@ -314,7 +323,7 @@ def openTEPES_run(DirName, CaseName, SolverName, pIndOutputResults, pIndLogConso
|
|
|
314
323
|
# output plot results
|
|
315
324
|
pIndPlotOutput = 1
|
|
316
325
|
|
|
317
|
-
# indicators to control the
|
|
326
|
+
# indicators to control the number of output results
|
|
318
327
|
if pIndOutputResults == 1:
|
|
319
328
|
pIndDumpRawResults = 0
|
|
320
329
|
pIndInvestmentResults = 1
|
|
@@ -356,15 +365,15 @@ def openTEPES_run(DirName, CaseName, SolverName, pIndOutputResults, pIndLogConso
|
|
|
356
365
|
InvestmentResults (DirName, CaseName, mTEPES, mTEPES, pIndTechnologyOutput, pIndPlotOutput)
|
|
357
366
|
if pIndGenerationOperationResults == 1:
|
|
358
367
|
GenerationOperationResults (DirName, CaseName, mTEPES, mTEPES, pIndTechnologyOutput, pIndAreaOutput, pIndPlotOutput)
|
|
359
|
-
if
|
|
368
|
+
if mTEPES.ch and mTEPES.pIndHeat == 1:
|
|
360
369
|
GenerationOperationHeatResults(DirName, CaseName, mTEPES, mTEPES, pIndTechnologyOutput, pIndAreaOutput, pIndPlotOutput)
|
|
361
|
-
if pIndESSOperationResults == 1 and
|
|
370
|
+
if pIndESSOperationResults == 1 and mTEPES.es:
|
|
362
371
|
ESSOperationResults (DirName, CaseName, mTEPES, mTEPES, pIndTechnologyOutput, pIndAreaOutput, pIndPlotOutput)
|
|
363
|
-
if pIndReservoirOperationResults == 1 and
|
|
372
|
+
if pIndReservoirOperationResults == 1 and mTEPES.rs and mTEPES.pIndHydroTopology == 1:
|
|
364
373
|
ReservoirOperationResults (DirName, CaseName, mTEPES, mTEPES, pIndTechnologyOutput, pIndPlotOutput)
|
|
365
|
-
if pIndNetworkH2OperationResults == 1 and
|
|
374
|
+
if pIndNetworkH2OperationResults == 1 and mTEPES.pa and mTEPES.pIndHydrogen == 1:
|
|
366
375
|
NetworkH2OperationResults (DirName, CaseName, mTEPES, mTEPES)
|
|
367
|
-
if pIndNetworkHeatOperationResults == 1 and
|
|
376
|
+
if pIndNetworkHeatOperationResults == 1 and mTEPES.ha and mTEPES.pIndHeat == 1:
|
|
368
377
|
NetworkHeatOperationResults (DirName, CaseName, mTEPES, mTEPES)
|
|
369
378
|
if pIndFlexibilityResults == 1:
|
|
370
379
|
FlexibilityResults (DirName, CaseName, mTEPES, mTEPES)
|