Python for Power Systems

A blog for power systems engineers to learn Python.

Case Study: Find All Network Differences Automatically

What changed between these two PSS/E RAW files? We set out to answer that question once and for all, and in the process wrote some software that can match buses between two networks even if their bus numbers and names are different.

Skip to see the software we developed (video)

Many versions of the same network

We were recently invited to write some software for the Australian Energy Market Operator – AEMO. They had many versions of the electricity network sent to them from many sources, and needed to understand how each was similar or different from their own.

These versions used a sometimes similar but often very different bus numbering and bus naming scheme. All of these network files described the same areas of network, but they described it in different ways.

For example, a bus in one area AEMO may call:

24230 2ARM330

while a version sent to them may call that same bus:


They are both describing the same physical bus, but are doing so in a different way. There was also the issue that each network may be switched differently, causing subtle differences in the connections.

Previously GridCompare

We’ve attempted to solve this problem in the past. And the result of that was called GridCompare. GridCompare was limited in that the two compared cases must be substantially similar. It relied on bus numbers being identical between the two cases. However for many situations this was simply not the case.

NodeMate – compares even when bus numbers are different

David Francis from AEMO suggested that we develop NodeMate to match based on how the buses are connected. This is the shape of the network rather than the labels, like numbers and names, we place on the individual network buses themselves. This concept is called graph theory, and is a topic of research today, particularly involving social networks and internet search.

To see NodeMate in action for yourself I’ve recorded this short demo:

← Back to the article