Skip to content

Commit a8675a4

Browse files
committed
improvement
Signed-off-by: furqan463 <[email protected]>
1 parent 8011104 commit a8675a4

File tree

2 files changed

+18
-18
lines changed

2 files changed

+18
-18
lines changed

src/power_grid_model_io/converters/pandapower_converter.py

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -412,13 +412,6 @@ def _create_pgm_input_lines(self):
412412
parallel = self._get_pp_attr("line", "parallel", expected_type="u4", default=1)
413413
c_nf_per_km = self._get_pp_attr("line", "c_nf_per_km", expected_type="f8", default=0)
414414
c0_nf_per_km = self._get_pp_attr("line", "c0_nf_per_km", expected_type="f8", default=0)
415-
g_us_per_km = self._get_pp_attr("line", "g_us_per_km", expected_type="f8", default=0)
416-
g0_us_per_km = self._get_pp_attr("line", "g0_us_per_km", expected_type="f8", default=0)
417-
# broadcast to array length
418-
c_nf_per_km = c_nf_per_km * np.ones(shape=len(pp_lines), dtype="f8")
419-
c0_nf_per_km = c0_nf_per_km * np.ones(shape=len(pp_lines), dtype="f8")
420-
g_us_per_km = g_us_per_km * np.ones(shape=len(pp_lines), dtype="f8")
421-
g0_us_per_km = g0_us_per_km * np.ones(shape=len(pp_lines), dtype="f8")
422415
multiplier = length_km / parallel
423416

424417
pgm_lines = initialize_array(
@@ -433,12 +426,12 @@ def _create_pgm_input_lines(self):
433426
pgm_lines["x1"] = self._get_pp_attr("line", "x_ohm_per_km", expected_type="f8") * multiplier
434427
pgm_lines["c1"] = c_nf_per_km * length_km * parallel * 1e-9
435428
# The formula for tan1 = R_1 / Xc_1 = (g * 1e-6) / (2 * pi * f * c * 1e-9) = g / (2 * pi * f * c * 1e-3)
429+
pgm_lines["tan1"] = 0.0
436430
pgm_lines["tan1"] = np.divide(
437-
g_us_per_km,
431+
self._get_pp_attr("line", "g_us_per_km", expected_type="f8", default=0),
438432
c_nf_per_km * (2 * np.pi * self.system_frequency * 1e-3),
439433
where=np.logical_not(np.isclose(c_nf_per_km, 0.0)),
440434
)
441-
pgm_lines["tan1"][np.isclose(c_nf_per_km, 0.0)] = 0.0
442435
pgm_lines["i_n"] = (
443436
(self._get_pp_attr("line", "max_i_ka", expected_type="f8", default=np.nan) * 1e3)
444437
* self._get_pp_attr("line", "df", expected_type="f8", default=1)
@@ -447,12 +440,12 @@ def _create_pgm_input_lines(self):
447440
pgm_lines["r0"] = self._get_pp_attr("line", "r0_ohm_per_km", expected_type="f8", default=np.nan) * multiplier
448441
pgm_lines["x0"] = self._get_pp_attr("line", "x0_ohm_per_km", expected_type="f8", default=np.nan) * multiplier
449442
pgm_lines["c0"] = c0_nf_per_km * length_km * parallel * 1e-9
443+
pgm_lines["tan0"] = 0.0
450444
pgm_lines["tan0"] = np.divide(
451-
g0_us_per_km,
445+
self._get_pp_attr("line", "g0_us_per_km", expected_type="f8", default=0),
452446
c0_nf_per_km * (2 * np.pi * self.system_frequency * 1e-3),
453447
where=np.logical_not(np.isclose(c0_nf_per_km, 0.0)),
454448
)
455-
pgm_lines["tan0"][np.isclose(c0_nf_per_km, 0.0)] = 0.0
456449
assert ComponentType.line not in self.pgm_input_data
457450
self.pgm_input_data[ComponentType.line] = pgm_lines
458451

tests/unit/converters/test_pandapower_converter_input.py

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -525,13 +525,13 @@ def test_create_pgm_input_lines(mock_init_array: MagicMock, two_pp_objs, convert
525525
converter._get_pp_attr.assert_any_call("line", "parallel", expected_type="u4", default=1)
526526
converter._get_pp_attr.assert_any_call("line", "r_ohm_per_km", expected_type="f8")
527527
converter._get_pp_attr.assert_any_call("line", "x_ohm_per_km", expected_type="f8")
528-
converter._get_pp_attr.assert_any_call("line", "c_nf_per_km", expected_type="f8")
528+
converter._get_pp_attr.assert_any_call("line", "c_nf_per_km", expected_type="f8", default=0)
529529
converter._get_pp_attr.assert_any_call("line", "g_us_per_km", expected_type="f8", default=0)
530530
converter._get_pp_attr.assert_any_call("line", "max_i_ka", expected_type="f8", default=np.nan)
531531
converter._get_pp_attr.assert_any_call("line", "df", expected_type="f8", default=1)
532532
converter._get_pp_attr.assert_any_call("line", "r0_ohm_per_km", expected_type="f8", default=np.nan)
533533
converter._get_pp_attr.assert_any_call("line", "x0_ohm_per_km", expected_type="f8", default=np.nan)
534-
converter._get_pp_attr.assert_any_call("line", "c0_nf_per_km", expected_type="f8", default=np.nan)
534+
converter._get_pp_attr.assert_any_call("line", "c0_nf_per_km", expected_type="f8", default=0)
535535
converter._get_pp_attr.assert_any_call("line", "g0_us_per_km", expected_type="f8", default=0)
536536
assert len(converter._get_pp_attr.call_args_list) == 15
537537

@@ -566,7 +566,7 @@ def test_create_pgm_input_lines(mock_init_array: MagicMock, two_pp_objs, convert
566566
)
567567
pgm.assert_any_call(
568568
"c1",
569-
_get_pp_attr("line", "c_nf_per_km", expected_type="f8")
569+
_get_pp_attr("line", "c_nf_per_km", expected_type="f8", default=0)
570570
* _get_pp_attr("line", "length_km", expected_type="f8")
571571
* _get_pp_attr("line", "parallel", expected_type="u4", default=1)
572572
* 1e-9,
@@ -575,8 +575,8 @@ def test_create_pgm_input_lines(mock_init_array: MagicMock, two_pp_objs, convert
575575
"tan1",
576576
np.divide(
577577
_get_pp_attr("line", "g_us_per_km", expected_type="f8", default=0),
578-
_get_pp_attr("line", "c_nf_per_km", expected_type="f8") * (np.pi / 10),
579-
where=_get_pp_attr("line", "c_nf_per_km", expected_type="f8") != 0.0,
578+
_get_pp_attr("line", "c_nf_per_km", expected_type="f8", default=0) * (np.pi / 10),
579+
where=np.logical_not(np.isclose(_get_pp_attr("line", "c_nf_per_km", expected_type="f8", default=0), 0.0)),
580580
),
581581
)
582582
pgm.assert_any_call(
@@ -585,11 +585,18 @@ def test_create_pgm_input_lines(mock_init_array: MagicMock, two_pp_objs, convert
585585
* _get_pp_attr("line", "df", expected_type="f8", default=1)
586586
* _get_pp_attr("line", "parallel", expected_type="u4", default=1),
587587
)
588+
pgm.assert_any_call(
589+
"tan0",
590+
np.divide(
591+
_get_pp_attr("line", "g0_us_per_km", expected_type="f8", default=0),
592+
_get_pp_attr("line", "c0_nf_per_km", expected_type="f8", default=0) * (np.pi / 10),
593+
where=np.logical_not(np.isclose(_get_pp_attr("line", "c0_nf_per_km", expected_type="f8", default=0), 0.0)),
594+
),
595+
)
588596
pgm.assert_any_call("r0", ANY)
589597
pgm.assert_any_call("x0", ANY)
590598
pgm.assert_any_call("c0", ANY)
591-
pgm.assert_any_call("tan0", ANY)
592-
assert len(pgm.call_args_list) == 14
599+
assert len(pgm.call_args_list) == 16
593600

594601
# result
595602
assert converter.pgm_input_data[ComponentType.line] == mock_init_array.return_value

0 commit comments

Comments
 (0)