Getting Started
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"]syntaxFull 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 intellisenseAnalysis 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.