Skip to main content

ESA++ is an open-source power-grid toolkit.

Project description

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.

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

esapp-0.1.4.tar.gz (1.0 MB view details)

Uploaded Source

Built Distribution

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

esapp-0.1.4-py3-none-any.whl (1.1 MB view details)

Uploaded Python 3

File details

Details for the file esapp-0.1.4.tar.gz.

File metadata

  • Download URL: esapp-0.1.4.tar.gz
  • Upload date:
  • Size: 1.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for esapp-0.1.4.tar.gz
Algorithm Hash digest
SHA256 ff3b72221e648169f5c20e893ecca98d9c62ce3ed2be60dc96a10272fc9c915f
MD5 c603119ab80f244016aa554ec75d1815
BLAKE2b-256 b2c956af10e8e5a1d6497f9f4348eb8d84251304aa776b0612854fd4364f8935

See more details on using hashes here.

Provenance

The following attestation bundles were made for esapp-0.1.4.tar.gz:

Publisher: python-publish.yml on lukelowry/ESApp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file esapp-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: esapp-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for esapp-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 a1cf0b3cb36f5e446613a0cd4d4704589cdeaf3d80e437ff01ed971d664d9e5a
MD5 99526b2301e8f6a1adc216bc7570e6f5
BLAKE2b-256 3d0cccac00f7b3f7db43c8fc5bdf76154178e67a563786cea6e961f557dfb710

See more details on using hashes here.

Provenance

The following attestation bundles were made for esapp-0.1.4-py3-none-any.whl:

Publisher: python-publish.yml on lukelowry/ESApp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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