An open-source Python toolkit for power system automation, providing a high-performance wrapper for PowerWorld's Simulator Automation Server (SimAuto). 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
TSfield intellisense - Analysis Utilities -- Built-in GIC, network topology, and contingency tools
Requires Windows with PowerWorld Simulator (SimAuto enabled) and Python 3.9+.
pip install esappfrom esapp import PowerWorld
from esapp.components import *
pw = PowerWorld("path/to/case.pwb")
# Read data
bus_data = pw[Bus, ["BusName", "BusPUVolt"]]
# Solve power flow
V = pw.pflow()
# Inspect and modify
violations = pw.violations(v_min=0.95)
pw[Gen, "GenMW"] = 100.0Full tutorials, API reference, and examples at esapp.readthedocs.io.
pip install .[test]
pytest tests/@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}
}Developed by Luke Lowery and Adam Birchfield at Texas A&M University (Birchfield Research Group). See my personal (research website).
Distributed under the Apache License 2.0.