Getting Started

License Python 3.9+ Documentation

ESA++ is an open-source Python toolkit for power system automation, providing a high-performance wrapper for PowerWorld’s Simulator Automation Server (SimAuto). It transforms complex COM calls into intuitive, Pythonic operations.

  • Intuitive Indexing — Access grid data with pw[Bus, "BusPUVolt"] syntax

  • Full SimAuto Coverage — All PowerWorld API functions through modular mixins

  • Pandas Integration — Every query returns a DataFrame

  • Pythonic Settings — Solver and GIC options as descriptor attributes (pw.max_iterations = 250)

  • Convenience Methods — Flows, overloads, PTDF/LODF, snapshot context manager, case summary

  • Transient Stability — Fluent API with TS field intellisense

  • Analysis Utilities — Built-in GIC, network topology, and contingency tools

Developed by Luke Lowery and Adam Birchfield at Texas A&M University (Birchfield Research Group). Licensed under Apache 2.0.

If you use ESA++ in research, please cite:

@article{esa2020,
  title={Easy SimAuto (ESA): A Python Package for PowerWorld Simulator Automation},
  author={Mao, Zeyu and Thayer, Brandon and Liu, Yijing and Birchfield, Adam},
  year={2020}
}

Installation

Requires PowerWorld Simulator with SimAuto enabled and Python 3.9+.

pip install esapp

Quick Example

from esapp import PowerWorld
from esapp.components import *

pw = PowerWorld("path/to/case.pwb")
voltages = pw[Bus, "BusPUVolt"]

See the examples for walkthroughs of reading data, writing data, power flow, and workbench utilities.