Network Matrices and Pandapower Interface

This tutorial shows how to access network matrices (such as the admittance matrix of the load flow Jacobian). PowerFactory does not allow this access directly, so the dataset is first exported to the pandapower format. The matrices can then be extracted from this format.

You can learn more from the pandapower documentation:

Warning

Note that not all networks elements/components are supported by pandapower (see the list of supported components) and the functionality shown in this tutorial may not be applicable to some PowerFactory datasets.

Note

pandapower is an optional dependency of powfacpy. Install it with pip install powfacpy[pandapower] (or pip install pandapower) before running this tutorial.

1 Imports and Project Activation

First we import some packages and activate the PowerFactory project from which we want to export the dataset (the IEEE 39 bus system example) and get the network matrices.

import os

import numpy as np
import pandas as pd
import pandapower as pp

from powfacpy.base.active_project import ActiveProject
from powfacpy.pf_classes.protocols import PFApp

# If you use IPython/Jupyter:
import sys
import json

with open(r"..\..\settings_local.json") as settings_file:
    SETTINGS = json.load(settings_file)

sys.path.append(
    SETTINGS["local path to PowerFactory application"] # e.g. r"C:\Program Files\DIgSILENT\PowerFactory 2025 SP5\Python\3.13"
)
# Get the PF app
import powerfactory

app = powerfactory.GetApplication()

pf_app: PFApp = powerfactory.GetApplication()
act_prj = ActiveProject(pf_app)
act_prj.app.Show()
act_prj.app.ActivateProject(
    "powfacpy\\39_bus_new_england_copy_to_run_tests"
)  # You may change the project path.
act_prj.activate_study_case("Study Cases\\2.1 Simulation Fault Bus 16 Stable")
<powerfactory.DataObject <l1>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Study Cases.IntPrjfolder\2.1 Simulation Fault Bus 16 Stable.IntCase</l1>>

2 Export Dataset to Pandapower

The dataset can be exported to pandapower format using the pf_project_to_pandapower function. It requires the PowerFactory app and the path to the project as inpit arguments.

from powfacpy.applications.pandapower_interface import PandapowerInterface

try:
    act_prj.app.Hide()
    ppi = PandapowerInterface(app)
    net = ppi.pf_project_to_pandapower()
finally:
    act_prj.app.Show()
net
This pandapower network includes the following parameter tables:
   - bus (39 elements)
   - load (19 elements)
   - gen (9 elements)
   - switch (92 elements)
   - ext_grid (1 element)
   - line (34 elements)
   - trafo (12 elements)
 and the following results tables:
   - res_bus (39 elements)
   - res_line (34 elements)
   - res_trafo (12 elements)
   - res_ext_grid (1 element)
   - res_load (19 elements)
   - res_gen (9 elements)
   - res_switch (92 elements)

net gives an overview of the exported network components and result tables (pandapower result format). PandaPower is based on pandas dataframes. You can query for example the data of the buses using:

net.bus
name vn_kv type zone in_service geo description substat folder_id equipment sernum chr_name
0 Bus 07 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
1 Bus 01 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
2 Bus 02 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
3 Bus 03 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
4 Bus 04 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
5 Bus 05 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
6 Bus 06 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
7 Bus 08 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
8 Bus 09 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
9 Bus 10 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
10 Bus 11 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
11 Bus 12 138.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
12 Bus 13 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
13 Bus 14 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
14 Bus 15 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
15 Bus 16 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
16 Bus 17 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
17 Bus 18 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
18 Bus 19 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
19 Bus 20 230.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
20 Bus 21 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
21 Bus 22 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
22 Bus 23 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
23 Bus 24 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
24 Bus 25 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
25 Bus 26 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
26 Bus 27 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
27 Bus 28 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
28 Bus 29 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
29 Bus 30 16.5 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
30 Bus 31 16.5 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
31 Bus 32 16.5 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
32 Bus 33 16.5 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
33 Bus 34 16.5 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
34 Bus 35 16.5 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
35 Bus 36 16.5 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
36 Bus 37 16.5 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
37 Bus 38 16.5 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid
38 Bus 39 345.0 b Grid True {"coordinates":[0.0,0.0], "type":"Point"} Grid Grid

Note that the name column is filled with the loc_name attributes of the PowerFactory objects. name can be used as a mapping to the respective PowerFactory object only if the loc_name of all objects of a certain class are unique (e.g. no ElmTerm instances have the same loc_name). The Database interface can be used to enumerate equivalent names of calculation relevant objects in the PowerFactory database.

from powfacpy.applications.database import Database

try:
    act_prj.app.Hide()
    dbi = Database(app)
    dbi.make_loc_name_unique()
    net = ppi.pf_project_to_pandapower()
finally:
    act_prj.app.Show()

To test whether the exported dataset is feasible, we can run a power flow using pandapower:

pp.runpp(net)
numba cannot be imported and numba functions are disabled.
Probably the execution is slow.
Please install numba to gain a massive speedup.
(or if you prefer slow execution, set the flag numba=False to avoid this warning!)

The following shows how to access the results for a certain bus.

bus_name = "Bus 05"
index_of_element = net.bus[net.bus["name"] == bus_name].index[0]
net.res_bus.iloc[index_of_element]
vm_pu        1.005311
va_degree   -8.611863
p_mw         0.000000
q_mvar       0.000000
Name: 5, dtype: float64

3 Network Matrices

3.1 Admittance Matrix

We can no extract the Ybus (i.e admittance) matrix. By default, the returned numpy matrix is sparse, so we create a dense matrix for printing.

Yb = ppi.get_Ybus_matrix(net)

print(Yb)
[[25.82055168-323.99513559j  0.          +0.j
   0.          +0.j         ...  0.          +0.j
   0.          +0.j          0.          +0.j        ]
 [ 0.          +0.j          3.65450104 -64.09182402j
  -2.05705707 +24.15572336j ...  0.          +0.j
   0.          +0.j         -1.59744398 +39.93610065j]
 [ 0.          +0.j         -2.05705707 +24.15572336j
  64.64569378-213.73617934j ...  0.          +0.j
   0.          +0.j          0.          +0.j        ]
 ...
 [ 0.          +0.j          0.          +0.j
   0.          +0.j         ...  1.08682853 -42.02403737j
   0.          +0.j          0.          +0.j        ]
 [ 0.          +0.j          0.          +0.j
   0.          +0.j         ...  0.          +0.j
   3.19872045 -62.37504895j  0.          +0.j        ]
 [ 0.          +0.j         -1.59744398 +39.93610065j
   0.          +0.j         ...  0.          +0.j
   0.          +0.j          3.19488795 -79.87220131j]]

The base apparent power is net._ppc["baseMVA"].

net._ppc["baseMVA"]
100.0

This does not provide any information about the corresponding nodes of the rows and columns. The function get_Ybus_frame provides this information.

df = ppi.get_Ybus_frame(net)
df
Bus 07 Bus 01 Bus 02 Bus 03 Bus 04 Bus 05 Bus 06 Bus 08 Bus 09 Bus 10 ... Bus 30 Bus 31 Bus 32 Bus 33 Bus 34 Bus 35 Bus 36 Bus 37 Bus 38 Bus 39
Bus 07 25.820552-323.995136j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -7.058824+108.235291j -18.761727+215.759844j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 01 0.000000+ 0.000000j 3.654501-64.091824j -2.057057+ 24.155723j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -1.597444+39.936101j
Bus 02 0.000000+ 0.000000j -2.057057+24.155723j 64.645694-213.736179j -5.659555+ 65.737918j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+53.90109j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 03 0.000000+ 0.000000j 0.000000+ 0.000000j -5.659555+ 65.737918j 14.690618-187.189184j -2.854758+ 46.774120j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 04 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -2.854758+ 46.774120j 12.507556-201.817511j -4.863813+ 77.821008j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 05 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -4.863813+ 77.821008j 40.620747-549.006407j -29.411758+382.352917j -6.345177+ 88.832482j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 06 -7.058824+108.235291j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -29.411758+382.352917j 46.805737-649.040329j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+37.383178j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 08 -18.761727+215.759844j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -6.345177+ 88.832482j 0.000000+ 0.000000j 26.845403-332.030382j -1.738499+27.438056j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 09 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -1.738499+ 27.438056j 3.335943-67.374156j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -1.597444+39.936101j
Bus 10 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 42.895446-507.854976j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+46.728972j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 11 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -10.335155+121.068943j 0.000000+ 0.000000j 0.000000+ 0.000000j -21.447723+230.563002j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 12 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 13 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -21.447723+230.563002j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 14 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -4.788984+ 77.222383j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 15 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 16 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 17 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 18 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -6.176305+ 74.677145j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 19 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j -3.236561+65.655932j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 20 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -2.746136+54.922717j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 21 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 22 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+68.224461j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 23 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -0.675593+36.752279j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 24 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 25 0.000000+ 0.000000j 0.000000+ 0.000000j -56.929082+ 69.941447j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -1.086829+42.024037j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 26 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 27 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 28 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 29 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -3.198720+62.375049j 0.000000+ 0.000000j
Bus 30 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 53.901090j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000-53.90109j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 31 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 37.383178j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000-37.383178j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 32 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 46.728972j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000-46.728972j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 33 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 3.236561-65.655932j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 34 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 2.746136-54.922717j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 35 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000-68.224461j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 36 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.675593-36.752279j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 37 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 1.086829-42.024037j 0.000000+ 0.000000j 0.000000+ 0.000000j
Bus 38 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 3.198720-62.375049j 0.000000+ 0.000000j
Bus 39 0.000000+ 0.000000j -1.597444+39.936101j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -1.597444+39.936101j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 3.194888-79.872201j

39 rows × 39 columns

The names in the labels correspond to the loc_name attributes of the PowerFactory objects. Provided that the names are unique, we can also replace them with the actual PowerFactory objects (this can be more convenient to query data, but printing the frame is ugly because the full path is used in the labels) using the PandasInterface of powfacpy.

from powfacpy.applications.pandas_interface import PandasInterface

pdi = PandasInterface(app)

df = pdi.replace_loc_name_with_pf_objects_in_labels(
    df, "ElmTerm", index_and_column_labels_are_equal=True
)
df
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 07.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 01.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 02.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 03.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 04.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 05.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 06.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 08.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 09.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 10.ElmTerm</l3> ... <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 30.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 31.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 32.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 33.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 34.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 35.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 36.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 37.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 38.ElmTerm</l3> <l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 39.ElmTerm</l3>
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 07.ElmTerm</l3> 25.820552-323.995136j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -7.058824+108.235291j -18.761727+215.759844j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 01.ElmTerm</l3> 0.000000+ 0.000000j 3.654501-64.091824j -2.057057+ 24.155723j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -1.597444+39.936101j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 02.ElmTerm</l3> 0.000000+ 0.000000j -2.057057+24.155723j 64.645694-213.736179j -5.659555+ 65.737918j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+53.90109j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 03.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j -5.659555+ 65.737918j 14.690618-187.189184j -2.854758+ 46.774120j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 04.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -2.854758+ 46.774120j 12.507556-201.817511j -4.863813+ 77.821008j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 05.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -4.863813+ 77.821008j 40.620747-549.006407j -29.411758+382.352917j -6.345177+ 88.832482j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 06.ElmTerm</l3> -7.058824+108.235291j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -29.411758+382.352917j 46.805737-649.040329j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+37.383178j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 08.ElmTerm</l3> -18.761727+215.759844j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -6.345177+ 88.832482j 0.000000+ 0.000000j 26.845403-332.030382j -1.738499+27.438056j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 09.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -1.738499+ 27.438056j 3.335943-67.374156j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -1.597444+39.936101j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 10.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 42.895446-507.854976j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+46.728972j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 11.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -10.335155+121.068943j 0.000000+ 0.000000j 0.000000+ 0.000000j -21.447723+230.563002j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 12.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 13.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -21.447723+230.563002j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 14.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -4.788984+ 77.222383j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 15.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 16.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 17.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 18.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -6.176305+ 74.677145j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 19.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j -3.236561+65.655932j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 20.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -2.746136+54.922717j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 21.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 22.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+68.224461j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 23.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -0.675593+36.752279j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 24.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 25.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j -56.929082+ 69.941447j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -1.086829+42.024037j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 26.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 27.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 28.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 29.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -3.198720+62.375049j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 30.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 53.901090j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000-53.90109j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 31.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 37.383178j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000-37.383178j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 32.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 46.728972j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000-46.728972j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 33.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 3.236561-65.655932j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 34.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 2.746136-54.922717j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 35.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000-68.224461j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 36.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.675593-36.752279j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 37.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 1.086829-42.024037j 0.000000+ 0.000000j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 38.ElmTerm</l3> 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 3.198720-62.375049j 0.000000+ 0.000000j
<l3>\seberlein.IntUser\powfacpy\39_bus_new_england_copy_to_run_tests.IntPrj\Network Model.IntPrjfolder\Network Data.IntPrjfolder\Grid.ElmNet\Bus 39.ElmTerm</l3> 0.000000+ 0.000000j -1.597444+39.936101j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j -1.597444+39.936101j 0.000000+ 0.000000j ... 0.00000+ 0.00000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 0.000000+ 0.000000j 3.194888-79.872201j

39 rows × 39 columns

3.2 Connectivity (Adjacency) Matrix

The connectivity matrix (also called adjacency matrix) is a symmetric matrix that has entries \(1\) (or True) for connected nodes and \(0\) (or False) for nodes that are not connected.

ppi.get_connectivity_frame(net)
Bus 07 Bus 01 Bus 02 Bus 03 Bus 04 Bus 05 Bus 06 Bus 08 Bus 09 Bus 10 ... Bus 30 Bus 31 Bus 32 Bus 33 Bus 34 Bus 35 Bus 36 Bus 37 Bus 38 Bus 39
Bus 07 1 0 0 0 0 0 1 1 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 01 0 1 1 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 1
Bus 02 0 1 1 1 0 0 0 0 0 0 ... 1 0 0 0 0 0 0 0 0 0
Bus 03 0 0 1 1 1 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 04 0 0 0 1 1 1 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 05 0 0 0 0 1 1 1 1 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 06 1 0 0 0 0 1 1 0 0 0 ... 0 1 0 0 0 0 0 0 0 0
Bus 08 1 0 0 0 0 1 0 1 1 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 09 0 0 0 0 0 0 0 1 1 0 ... 0 0 0 0 0 0 0 0 0 1
Bus 10 0 0 0 0 0 0 0 0 0 1 ... 0 0 1 0 0 0 0 0 0 0
Bus 11 0 0 0 0 0 0 1 0 0 1 ... 0 0 0 0 0 0 0 0 0 0
Bus 12 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 13 0 0 0 0 0 0 0 0 0 1 ... 0 0 0 0 0 0 0 0 0 0
Bus 14 0 0 0 0 1 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 15 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 16 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 17 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 18 0 0 0 1 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 19 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 1 0 0 0 0 0 0
Bus 20 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 1 0 0 0 0 0
Bus 21 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 22 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 1 0 0 0 0
Bus 23 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 1 0 0 0
Bus 24 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 25 0 0 1 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 1 0 0
Bus 26 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 27 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 28 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Bus 29 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 1 0
Bus 30 0 0 1 0 0 0 0 0 0 0 ... 1 0 0 0 0 0 0 0 0 0
Bus 31 0 0 0 0 0 0 1 0 0 0 ... 0 1 0 0 0 0 0 0 0 0
Bus 32 0 0 0 0 0 0 0 0 0 1 ... 0 0 1 0 0 0 0 0 0 0
Bus 33 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 1 0 0 0 0 0 0
Bus 34 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 1 0 0 0 0 0
Bus 35 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 1 0 0 0 0
Bus 36 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 1 0 0 0
Bus 37 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 1 0 0
Bus 38 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 1 0
Bus 39 0 1 0 0 0 0 0 0 1 0 ... 0 0 0 0 0 0 0 0 0 1

39 rows × 39 columns

To get boolean values instead of zero and one, use ppi.get_connectivity_frame(net, boolean=True).

4 Load Flow Jacobian

The load flow Jacobian matrix can be exported as well.

net._ppc["internal"]["J"].todense()
matrix([[ 59.16048773,   0.        ,   0.        , ...,   0.        ,
           0.        ,   0.        ],
        [  0.        ,  46.27299714,   0.        , ...,   0.        ,
           0.        ,   0.        ],
        [  0.        ,   0.        ,  68.76043932, ...,   0.        ,
           0.        ,   0.        ],
        ...,
        [  0.        ,   0.        ,   0.        , ..., 128.59013819,
           0.        ,   0.        ],
        [  0.        ,   0.        ,   0.        , ...,   0.        ,
          90.12249347, -68.56432408],
        [  0.        ,   0.        ,   0.        , ...,   0.        ,
         -69.16792458, 148.56670176]], shape=(67, 67))

An explanation of the Jacobian matrix entries is provided in the pandapower tutorial that was mentioned above already.

5 Format Comparison

The dataformats of pandapower and PowerFactory are not fully compatible. An overview and functionality to rudimentary validate the exported data is presented in the following.

Remember the exported dataset in pandapower format:

net
This pandapower network includes the following parameter tables:
   - bus (39 elements)
   - load (19 elements)
   - gen (9 elements)
   - switch (92 elements)
   - ext_grid (1 element)
   - line (34 elements)
   - trafo (12 elements)
 and the following results tables:
   - res_bus (39 elements)
   - res_line (34 elements)
   - res_trafo (12 elements)
   - res_ext_grid (1 element)
   - res_load (19 elements)
   - res_gen (9 elements)
   - res_switch (92 elements)

There are a few things to consider here (not everything is relevant for this example):

  • bus considers all terminals, even those that are not energized
  • gen are PV-controlled generators (active power and voltage)
  • sgen are PQ-controlled generators
  • ext_grid are generators/external grids which act as slack buses
  • switch considers only breakers/switches for branches, i.e. between buses or between buses and branch elements like lines and transformers (i.e. switches connecting generators are not considered for example)

6 Validation

6.1 Using pandapower

pandapower has a function validate_pf_conversion (due to a bug in pandapower this function fails if load flow results are initially present) which compares load flow results and returns the differences.

from pandapower.converter.powerfactory.validate import validate_pf_conversion

try:
    act_prj.app.Hide()
    net = ppi.pf_project_to_pandapower()
    all_diffs = validate_pf_conversion(net)
finally:
    act_prj.app.Show()
all_diffs
numba cannot be imported and numba functions are disabled.
Probably the execution is slow.
Please install numba to gain a massive speedup.
(or if you prefer slow execution, set the flag numba=False to avoid this warning!)
{'gen_p_diff_is':            diff  p_mw_pp  p_mw_pf
 0  5.388387e-09    250.0    250.0
 1  4.945377e-09    540.0    540.0
 2  4.474373e-09   1000.0   1000.0
 3  4.093181e-09    650.0    650.0
 4  1.336514e-08    632.0    632.0
 5  5.883180e-09    508.0    508.0
 6  6.877826e-09    650.0    650.0
 7  5.005631e-09    830.0    830.0
 8  1.286480e-09    560.0    560.0,
 'gen_q_diff_is':            diff   q_mvar_pp   q_mvar_pf
 0 -1.990345e-06  146.158180  146.158178
 1  3.744761e-06    0.439923    0.439926
 2  3.910830e-07   88.281414   88.281415
 3  1.046722e-06  205.144370  205.144371
 4  2.652369e-06  109.905979  109.905981
 5 -3.168794e-06  165.763652  165.763649
 6  4.919251e-07  212.411826  212.411827
 7  1.547458e-06   22.841623   22.841625
 8  1.132401e-06  101.175009  101.175010,
 'diff_vm':             diff  vm_pu_pp  vm_pu_pf
 0   3.792676e-10  0.997001  0.997001
 1   5.274026e-11  1.047356  1.047356
 2   1.697953e-11  1.048736  1.048736
 3   1.683635e-10  1.030173  1.030173
 4   3.405913e-10  1.003863  1.003863
 5   4.445260e-10  1.005311  1.005311
 6   4.944185e-10  1.007672  1.007672
 7   3.273649e-10  0.996020  0.996020
 8  -1.537579e-10  1.028226  1.028226
 9   6.057375e-10  1.017151  1.017151
 10  5.642400e-10  1.012694  1.012694
 11 -5.276251e-10  1.000151  1.000151
 12  5.251641e-10  1.014307  1.014307
 13  3.384422e-10  1.011733  1.011733
 14  6.859024e-11  1.015384  1.015384
 15 -4.589662e-12  1.031774  1.031774
 16  1.137657e-10  1.033555  1.033555
 17  1.420393e-10  1.030931  1.030931
 18  2.106220e-10  1.049861  1.049861
 19  1.212995e-09  0.991177  0.991177
 20 -1.941565e-10  1.031760  1.031760
 21 -3.624552e-10  1.049795  1.049795
 22 -3.145499e-10  1.044789  1.044789
 23 -9.434253e-11  1.037311  1.037311
 24  1.678044e-10  1.057568  1.057568
 25  1.896117e-10  1.052075  1.052075
 26  2.069158e-10  1.037741  1.037741
 27  8.532330e-11  1.050122  1.050122
 28  9.517187e-11  1.049942  1.049942
 29  2.665868e-12  1.047500  1.047500
 31  4.730660e-13  0.983100  0.983100
 32  2.887579e-12  0.997200  0.997200
 33  3.113954e-12  1.012300  1.012300
 34  2.042588e-12  1.049300  1.049300
 35  1.286304e-12  1.063500  1.063500
 36  2.709610e-12  1.027800  1.027800
 37  2.565947e-12  1.026500  1.026500
 38  1.442624e-12  1.030000  1.030000,
 'diff_va':             diff  va_degree_pp  va_degree_pf
 0   1.302316e-07    -10.123823    -10.123823
 1   1.272867e-07     -8.438685     -8.438685
 2   1.261071e-07     -5.753762     -5.753762
 3   1.253273e-07     -8.598549     -8.598549
 4   1.278345e-07     -9.606668     -9.606667
 5   1.289775e-07     -8.611863     -8.611863
 6   1.286948e-07     -7.949683     -7.949683
 7   1.304982e-07    -10.615381    -10.615381
 8   1.298370e-07    -10.321987    -10.321987
 9   1.243239e-07     -5.427126     -5.427126
 10  1.255758e-07     -6.284262     -6.284262
 11  1.161739e-07     -6.243642     -6.243642
 12  1.254398e-07     -6.097718     -6.097718
 13  1.264527e-07     -7.656411     -7.656411
 14  1.247388e-07     -7.736092     -7.736092
 15  1.242053e-07     -6.187509     -6.187509
 16  1.232096e-07     -7.301286     -7.301285
 17  1.239574e-07     -8.223858     -8.223858
 18  1.243416e-07     -1.022768     -1.022768
 19  8.781482e-08     -2.014676     -2.014676
 20  1.254547e-07     -3.780534     -3.780534
 21  1.290296e-07      0.668306      0.668306
 22  1.286402e-07      0.470028      0.470028
 23  1.243799e-07     -6.067907     -6.067907
 24  1.186790e-07     -4.363392     -4.363391
 25  1.186066e-07     -5.526725     -5.526725
 26  1.205033e-07     -7.495423     -7.495423
 27  1.160292e-07     -2.014886     -2.014886
 28  1.149744e-07      0.744355      0.744355
 29  1.987250e-07     -3.333993     -3.333993
 31 -5.807802e-08      2.568960      2.568960
 32  4.317915e-08      4.194689      4.194689
 33 -9.149473e-08      3.174992      3.174992
 34  2.881649e-07      5.630054      5.630054
 35  1.555340e-07      8.322918      8.322918
 36  4.192849e-07      2.421107      2.421107
 37  2.239051e-07      7.807727      7.807727
 38  1.284375e-07    -10.052962    -10.052961,
 'line_diff': 0     5.486268e-08
 1     3.848388e-08
 2    -5.150186e-08
 3    -4.950216e-09
 4     2.555217e-08
 5     2.813963e-08
 6     4.895927e-08
 7     3.372674e-08
 8    -2.410915e-07
 9    -2.494210e-08
 10   -1.323971e-08
 11   -1.526540e-08
 12    1.335353e-08
 13   -7.175414e-08
 14   -3.785559e-09
 15   -3.613631e-08
 16   -3.060013e-07
 17    1.907262e-08
 18   -1.125295e-07
 19   -6.683102e-08
 20    4.926295e-08
 21   -3.236848e-08
 22   -2.751825e-08
 23    1.696872e-07
 24    5.957072e-08
 25   -9.428253e-08
 26   -2.416888e-07
 27   -2.474485e-08
 28   -1.238902e-07
 29   -3.017550e-08
 30    1.673646e-07
 31   -1.269710e-07
 32    2.066865e-08
 33    6.852902e-08
 dtype: float64,
 'trafo_diff': 0    -9.592364e-08
 1     1.519596e-07
 2     4.051871e-08
 3     3.987825e-08
 4    -3.555796e-08
 5    -1.647720e-08
 6     6.224111e-08
 7    -1.595603e-07
 8     1.979981e-08
 9     2.759657e-08
 10    1.862674e-09
 11    3.799485e-09
 dtype: float64,
 'load_p_diff_is': 0     5.684342e-14
 1     0.000000e+00
 2     2.842171e-14
 3    -1.136868e-13
 4    -8.881784e-16
 5     0.000000e+00
 6    -5.684342e-14
 7    -2.842171e-14
 8    -1.136868e-13
 9     0.000000e+00
 10    0.000000e+00
 11   -5.684342e-14
 12    0.000000e+00
 13    0.000000e+00
 14    0.000000e+00
 15   -2.842171e-14
 16   -5.684342e-14
 17    0.000000e+00
 18    0.000000e+00
 dtype: float64,
 'load_q_diff_is': 0    -7.105427e-15
 1     0.000000e+00
 2     1.421085e-14
 3    -5.684342e-14
 4    -1.421085e-14
 5     2.842171e-14
 6    -7.105427e-15
 7     3.552714e-15
 8    -1.421085e-14
 9    -1.421085e-14
 10    0.000000e+00
 11    2.842171e-14
 12    0.000000e+00
 13    0.000000e+00
 14    0.000000e+00
 15   -7.105427e-15
 16   -3.552714e-15
 17    0.000000e+00
 18    2.842171e-14
 dtype: float64,
 'ext_grid_p_diff': 0    6.027551e-07
 dtype: float64,
 'ext_grid_q_diff': 0    0.000001
 dtype: float64}

6.2 Using powfacpy

powfacpy offers a rudimentary validation of the exported dataset focusing only on data relevant for the admittance matrix. It is assumed that the currently active project in PowerFactory was used for the export. We can check the difference between both datasets by using get_difference_between_pf_and_pandapower_dataset.

We artificially set (and later undo) a deviation in the pandapower dataset here. A Dataframe with the divergent parameters is returned.

from pandas import DataFrame

try:
    pf_app.Hide()
    net["bus"].loc[0, "vn_kv"] = net["bus"].loc[0, "vn_kv"] + 1

    divergent_parameters = ppi.get_difference_between_pf_and_pandapower_dataset(net)
    net["bus"].loc[0, "vn_kv"] = net["bus"].loc[0, "vn_kv"] - 1

finally:
    pf_app.Show()

divergent_parameters
name pf_class pp_parameter pf_value pp_value
0 Bus 07 ElmTerm vn_kv 345.0 346.0

get_difference_between_pf_and_pandapower_dataset assumes default settings for the units in the PowerFactory project (see *Settings).

As mentioned, only a subset of classes and parameters is validated. The following mapping is used:

ppi.get_pandapower_2_pf_class_mapping()
{'bus': ['ElmTerm'],
 'line': ['ElmLne'],
 'trafo': ['ElmTr2', 'ElmTr3'],
 'impedance': ['ElmZpu', 'ElmSind']}

The parameter mapping is defined in get_pandapower_2_pf_parameter_mapping. It is best understood by looking at the source code and we use python’s inspect module to print the method. The mapping is either between the pandapower parameter strings or between a pandapower* parameter string and and a callable with the PowerFactory object as argument and returning the parameter value (used for example to get parameters from the type object).

import inspect

print(f"{inspect.getsource(ppi.get_pandapower_2_pf_parameter_mapping)}")
    def get_pandapower_2_pf_parameter_mapping(
        self,
    ) -> dict[str, dict[str, str | Callable]]:
        """Get parameter mapping between pandapower and PowerFactory.

        Only a small subset of all the parameters is currently implemented.

        Returns:
            dict[str, dict[str, str | Callable]]: For each pf class, a mapping between the pandapower and the pf parameter is provided. The pf parameter can be a string or a callable (input is the pf object; used for example to access a parameter of the type).
        """
        return {
            "ElmTerm": {
                "vn_kv": "uknom",
            },
            "ElmLne": {
                "length_km": "dline",
                "parallel": "nlnum",
                "r_ohm_per_km": lambda x: x.typ_id.rline,
                "x_ohm_per_km": lambda x: x.typ_id.xline,
                "c_nf_per_km": lambda x: x.typ_id.cline
                * 1000  # from micro to nano
                * x.typ_id.frnom  # nominal frequency is adapted to 50 Hz by pandapower
                / 50.0,
                "g_us_per_km": lambda x: x.typ_id.gline,
            },
            "ElmTr2": {
                "sn_mva": lambda x: x.typ_id.strn,
                "parallel": "ntnum",
                "vn_hv_kv": lambda x: x.typ_id.utrn_h,
                "vn_lv_kv": lambda x: x.typ_id.utrn_l,
                "vk_percent": lambda x: x.typ_id.uktr,
                "vkr_percent": lambda x: x.typ_id.uktrr,
            },
            "ElmTr3": {
                "parallel": "nt3nm",
                "sn_hv_mva": lambda x: x.typ_id.strn3_h,
                "sn_mv_mva": lambda x: x.typ_id.strn3_m,
                "sn_lv_mva": lambda x: x.typ_id.strn3_l,
                "vn_hv_kv": lambda x: x.typ_id.utrn3_h,
                "vn_mv_kv": lambda x: x.typ_id.utrn3_m,
                "vn_lv_kv": lambda x: x.typ_id.utrn3_l,
                "vk_hv_percent": lambda x: x.typ_id.uktr3_h,
                "vk_mv_percent": lambda x: x.typ_id.uktr3_m,
                "vk_lv_percent": lambda x: x.typ_id.uktr3_l,
                "vkr_hv_percent": lambda x: x.typ_id.uktrr3_h,
                "vkr_mv_percent": lambda x: x.typ_id.uktrr3_m,
                "vkr_lv_percent": lambda x: x.typ_id.uktrr3_l,
            },
            "ElmZpu": {
                "sn_mva": "Sn",
                "rft_pu": "r_pu",
                "xft_pu": "x_pu",
            },
            "ElmSind": {
                "sn_mva": "Sn",
                "rft_pu": lambda x: (x.rrea * x.Sn) / (x.ucn**2),
                "xft_pu": lambda x: (x.xrea * x.Sn) / (x.ucn**2),
            },
        }
Back to top