Skip to main content

Interactive web visualizer for pandapower networks

Project description

pandapower-viz

Interactive web visualizer for pandapower networks. Render power system diagrams and geographic maps — in the browser, in Jupyter notebooks, or embedded in React apps.

pandapower-viz screenshot

Features

  • Network Diagram — Interactive graph visualization with vis-network. Zoom, pan, drag, and click elements to inspect properties.
  • Geographic Map — Plot buses and lines on OpenStreetMap when coordinates are available.
  • Color Modes — Color by element type, voltage level, or loading percentage.
  • Compact Mode — Automatically simplifies large networks (>500 buses) for performance.
  • Dark & Light Themes — Full theme support via CSS custom properties.
  • Dual Distribution — Use from Python (pip install) or React (npm install).
  • Jupyter Support — Renders inline in notebook cells via anywidget.

Python Usage

pip install pandapower-viz
import pandapower as pp
import pandapower_viz as pv

net = pp.networks.case_ieee30()
pp.runpp(net)
pv.show(net)  # opens browser at localhost:8050

Jupyter Notebook

pv.show(net) auto-detects Jupyter and renders the diagram inline in the cell:

# In a Jupyter notebook cell:
import pandapower as pp
import pandapower_viz as pv

net = pp.networks.case_ieee30()
pp.runpp(net)
pv.show(net)  # renders inline — no browser tab opened

You can also use the widget directly for more control:

from pandapower_viz import NetworkWidget

w = NetworkWidget.from_net(net)
display(w)

# Update the network later:
pp.runpp(net)
w.update_network(net)

React Usage

npm install pandapower-viz
import { NetworkDiagram, parsePandaPowerJson } from 'pandapower-viz';
import 'pandapower-viz/dist/style.css';

function App({ data }) {
  const network = parsePandaPowerJson(data);
  return (
    <NetworkDiagram
      network={network}
      theme="dark"
      onElementSelect={(el) => console.log(el)}
    />
  );
}

Components

Component Description
NetworkDiagram Interactive network graph (vis-network). Supports color modes, compact mode, physics simulation.
NetworkMap Geographic map (Leaflet/OpenStreetMap). Shows buses as markers, lines as polylines.

Utilities

Function Description
parsePandaPowerJson(data) Parse pandapower JSON (from pp.to_json()) into a typed network object.
convertToVisNetwork(network) Convert network to vis-network nodes and edges (detailed mode).
convertToVisNetworkCompact(network) Convert to simplified nodes/edges for large networks.
getNetworkStatistics(network) Get element counts (buses, lines, trafos, etc.).
extractGeodata(network) Extract geographic coordinates from bus data.
getElementInfo(element, network) Get detailed properties for a selected element.
calculateTreeLayout(nodes, edges) Compute hierarchical tree positions for network nodes.

Theming

pandapower-viz uses CSS custom properties prefixed with --ppviz-. Override them to match your app's theme:

:root {
  --ppviz-bg-primary: var(--your-bg);
  --ppviz-text-primary: var(--your-text);
  --ppviz-brand-accent: var(--your-accent);
}

Or use the data-ppviz-theme attribute for built-in dark/light themes:

<div data-ppviz-theme="light">
  <!-- pandapower-viz components here -->
</div>

Supported Elements

Buses, lines, transformers (2-winding), loads, generators, static generators (solar PV, wind), battery storage, switches, external grids.

Requirements

  • Python: 3.9+ with pandapower
  • React: 18+
  • Peer dependencies: react, react-dom

Development

git clone https://github.com/matheusduartedm/pandapower-viz
cd pandapower-viz/frontend
npm install
npm run dev        # start dev server
npm test           # run tests
npm run build-lib  # build npm library

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pandapower_viz-1.2.0.tar.gz (2.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pandapower_viz-1.2.0-py3-none-any.whl (1.2 MB view details)

Uploaded Python 3

File details

Details for the file pandapower_viz-1.2.0.tar.gz.

File metadata

  • Download URL: pandapower_viz-1.2.0.tar.gz
  • Upload date:
  • Size: 2.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for pandapower_viz-1.2.0.tar.gz
Algorithm Hash digest
SHA256 9bd2e253c3f22b0872c94757db1e30ae8922cbff97ab8e6cf1107a888089b2c5
MD5 9f828a8c895ab1954139cd2d3486a1ff
BLAKE2b-256 7f615e3e911dd5c94144d1c020b55a7375efec822d95ad6056959d88b62a9cf5

See more details on using hashes here.

File details

Details for the file pandapower_viz-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: pandapower_viz-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for pandapower_viz-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 14f149ebfe1ac64258b386c240267edaae0a17ee88459b04e0106add9d1188a5
MD5 fde5881ffbe64a714b2d5739735cc0b2
BLAKE2b-256 8df5668cbee488f04af52b5a3d02026fce2e608f10e009bc32931f1904a0214f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page