Skip to content
forked from mzy2240/ESA

Productivity tool for scripting with PowerWorld

License

Notifications You must be signed in to change notification settings

lukelowry/ESApp

 
 

Repository files navigation

ESA++

License Python 3.9+ Documentation

Coverage 98%

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 TS field intellisense
  • Analysis Utilities -- Built-in GIC, network topology, and contingency tools

Installation

Requires Windows with PowerWorld Simulator (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")

# 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.0

Documentation

Full tutorials, API reference, and examples at esapp.readthedocs.io.

Testing

pip install .[test]
pytest tests/

Citation

@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}
}

Authors

Developed by Luke Lowery and Adam Birchfield at Texas A&M University (Birchfield Research Group). See my personal (research website).

License

Distributed under the Apache License 2.0.

About

Productivity tool for scripting with PowerWorld

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%