Skip to content

Commit fd06285

Browse files
committed
Fix loss_parameters according to pp_version
Signed-off-by: furqan463 <[email protected]>
1 parent a8e9e78 commit fd06285

File tree

1 file changed

+35
-26
lines changed

1 file changed

+35
-26
lines changed

src/power_grid_model_io/converters/pandapower_converter.py

Lines changed: 35 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88

99
import logging
1010
from functools import lru_cache
11+
from importlib.metadata import version
1112
from typing import Dict, List, MutableMapping, Optional, Tuple, Type
1213

1314
import numpy as np
14-
import pandapower as pp
1515
import pandas as pd
1616
import structlog
1717
from packaging.version import Version
@@ -36,7 +36,7 @@
3636

3737
logger = structlog.get_logger(__file__)
3838

39-
pp_curr_version = Version(pp.__version__)
39+
pp_curr_version = Version(version("pandapower"))
4040
pp_ref_version = Version("3.1.2")
4141

4242

@@ -1844,6 +1844,13 @@ def _pp_buses_output_3ph__accumulate_power(self, pp_output_buses_3ph: pd.DataFra
18441844
# Finally apply the unit conversion (W -> MW and VAR -> MVAR)
18451845
pp_output_buses_3ph[power_columns] /= 1e6
18461846

1847+
def get_loss_params_3ph(self):
1848+
if pp_curr_version <= pp_ref_version:
1849+
loss_params = ["p_a_l_mw", "q_a_l_mvar", "p_b_l_mw", "q_b_l_mvar", "p_c_l_mw", "q_c_l_mvar"]
1850+
else:
1851+
loss_params = ["pl_a_mw", "ql_a_mvar", "pl_b_mw", "ql_b_mvar", "pl_c_mw", "ql_c_mvar"]
1852+
return loss_params
1853+
18471854
def _pp_lines_output_3ph(self):
18481855
"""
18491856
This function converts a power-grid-model Line output array to a Line Dataframe of PandaPower.
@@ -1870,6 +1877,7 @@ def _pp_lines_output_3ph(self):
18701877
i_from = (pgm_output_lines["p_from"] + 1j * pgm_output_lines["q_from"]) / u_complex.iloc[from_nodes, :]
18711878
i_to = (pgm_output_lines["p_to"] + 1j * pgm_output_lines["q_to"]) / u_complex.iloc[to_nodes, :]
18721879

1880+
loss_params = self.get_loss_params_3ph()
18731881
pp_output_lines_3ph = pd.DataFrame(
18741882
columns=[
18751883
"p_a_from_mw",
@@ -1884,12 +1892,12 @@ def _pp_lines_output_3ph(self):
18841892
"q_b_to_mvar",
18851893
"p_c_to_mw",
18861894
"q_c_to_mvar",
1887-
"pl_a_mw",
1888-
"ql_a_mvar",
1889-
"pl_b_mw",
1890-
"ql_b_mvar",
1891-
"pl_c_mw",
1892-
"ql_c_mvar",
1895+
loss_params[0],
1896+
loss_params[1],
1897+
loss_params[2],
1898+
loss_params[3],
1899+
loss_params[4],
1900+
loss_params[5],
18931901
"i_a_from_ka",
18941902
"i_b_from_ka",
18951903
"i_c_from_ka",
@@ -1922,12 +1930,12 @@ def _pp_lines_output_3ph(self):
19221930
pp_output_lines_3ph["q_b_to_mvar"] = pgm_output_lines["q_to"][:, 1] * 1e-6
19231931
pp_output_lines_3ph["p_c_to_mw"] = pgm_output_lines["p_to"][:, 2] * 1e-6
19241932
pp_output_lines_3ph["q_c_to_mvar"] = pgm_output_lines["q_to"][:, 2] * 1e-6
1925-
pp_output_lines_3ph["pl_a_mw"] = (pgm_output_lines["p_from"][:, 0] + pgm_output_lines["p_to"][:, 0]) * 1e-6
1926-
pp_output_lines_3ph["ql_a_mvar"] = (pgm_output_lines["q_from"][:, 0] + pgm_output_lines["q_to"][:, 0]) * 1e-6
1927-
pp_output_lines_3ph["pl_b_mw"] = (pgm_output_lines["p_from"][:, 1] + pgm_output_lines["p_to"][:, 1]) * 1e-6
1928-
pp_output_lines_3ph["ql_b_mvar"] = (pgm_output_lines["q_from"][:, 1] + pgm_output_lines["q_to"][:, 1]) * 1e-6
1929-
pp_output_lines_3ph["pl_c_mw"] = (pgm_output_lines["p_from"][:, 2] + pgm_output_lines["p_to"][:, 2]) * 1e-6
1930-
pp_output_lines_3ph["ql_c_mvar"] = (pgm_output_lines["q_from"][:, 2] + pgm_output_lines["q_to"][:, 2]) * 1e-6
1933+
pp_output_lines_3ph[loss_params[0]] = (pgm_output_lines["p_from"][:, 0] + pgm_output_lines["p_to"][:, 0]) * 1e-6
1934+
pp_output_lines_3ph[loss_params[1]] = (pgm_output_lines["q_from"][:, 0] + pgm_output_lines["q_to"][:, 0]) * 1e-6
1935+
pp_output_lines_3ph[loss_params[2]] = (pgm_output_lines["p_from"][:, 1] + pgm_output_lines["p_to"][:, 1]) * 1e-6
1936+
pp_output_lines_3ph[loss_params[3]] = (pgm_output_lines["q_from"][:, 1] + pgm_output_lines["q_to"][:, 1]) * 1e-6
1937+
pp_output_lines_3ph[loss_params[4]] = (pgm_output_lines["p_from"][:, 2] + pgm_output_lines["p_to"][:, 2]) * 1e-6
1938+
pp_output_lines_3ph[loss_params[5]] = (pgm_output_lines["q_from"][:, 2] + pgm_output_lines["q_to"][:, 2]) * 1e-6
19311939
pp_output_lines_3ph["i_a_from_ka"] = pgm_output_lines["i_from"][:, 0] * 1e-3
19321940
pp_output_lines_3ph["i_b_from_ka"] = pgm_output_lines["i_from"][:, 1] * 1e-3
19331941
pp_output_lines_3ph["i_c_from_ka"] = pgm_output_lines["i_from"][:, 2] * 1e-3
@@ -2050,6 +2058,7 @@ def _pp_trafos_output_3ph(self): # pylint: disable=too-many-statements
20502058

20512059
loading = np.maximum(np.maximum(loading_a_percent, loading_b_percent), loading_c_percent)
20522060

2061+
loss_params = self.get_loss_params_3ph()
20532062
pp_output_trafos_3ph = pd.DataFrame(
20542063
columns=[
20552064
"p_a_hv_mw",
@@ -2064,12 +2073,12 @@ def _pp_trafos_output_3ph(self): # pylint: disable=too-many-statements
20642073
"q_b_lv_mvar",
20652074
"p_c_lv_mw",
20662075
"q_c_lv_mvar",
2067-
"pl_a_mw",
2068-
"ql_a_mvar",
2069-
"pl_b_mw",
2070-
"ql_b_mvar",
2071-
"pl_c_mw",
2072-
"ql_c_mvar",
2076+
loss_params[0],
2077+
loss_params[1],
2078+
loss_params[2],
2079+
loss_params[3],
2080+
loss_params[4],
2081+
loss_params[5],
20732082
"i_a_hv_ka",
20742083
"i_a_lv_ka",
20752084
"i_b_hv_ka",
@@ -2095,22 +2104,22 @@ def _pp_trafos_output_3ph(self): # pylint: disable=too-many-statements
20952104
pp_output_trafos_3ph["q_b_lv_mvar"] = pgm_output_transformers["q_to"][:, 1] * 1e-6
20962105
pp_output_trafos_3ph["p_c_lv_mw"] = pgm_output_transformers["p_to"][:, 2] * 1e-6
20972106
pp_output_trafos_3ph["q_c_lv_mvar"] = pgm_output_transformers["q_to"][:, 2] * 1e-6
2098-
pp_output_trafos_3ph["pl_a_mw"] = (
2107+
pp_output_trafos_3ph[loss_params[0]] = (
20992108
pgm_output_transformers["p_from"][:, 0] + pgm_output_transformers["p_to"][:, 0]
21002109
) * 1e-6
2101-
pp_output_trafos_3ph["ql_a_mvar"] = (
2110+
pp_output_trafos_3ph[loss_params[1]] = (
21022111
pgm_output_transformers["q_from"][:, 0] + pgm_output_transformers["q_to"][:, 0]
21032112
) * 1e-6
2104-
pp_output_trafos_3ph["pl_b_mw"] = (
2113+
pp_output_trafos_3ph[loss_params[2]] = (
21052114
pgm_output_transformers["p_from"][:, 1] + pgm_output_transformers["p_to"][:, 1]
21062115
) * 1e-6
2107-
pp_output_trafos_3ph["ql_b_mvar"] = (
2116+
pp_output_trafos_3ph[loss_params[3]] = (
21082117
pgm_output_transformers["q_from"][:, 1] + pgm_output_transformers["q_to"][:, 1]
21092118
) * 1e-6
2110-
pp_output_trafos_3ph["pl_c_mw"] = (
2119+
pp_output_trafos_3ph[loss_params[4]] = (
21112120
pgm_output_transformers["p_from"][:, 2] + pgm_output_transformers["p_to"][:, 2]
21122121
) * 1e-6
2113-
pp_output_trafos_3ph["ql_c_mvar"] = (
2122+
pp_output_trafos_3ph[loss_params[5]] = (
21142123
pgm_output_transformers["q_from"][:, 2] + pgm_output_transformers["q_to"][:, 2]
21152124
) * 1e-6
21162125
pp_output_trafos_3ph["i_a_hv_ka"] = pgm_output_transformers["i_from"][:, 0] * 1e-3

0 commit comments

Comments
 (0)