Skip to content

jeandemanged/yagat

Repository files navigation

YAGAT

Yet Another Grid Analysis Tool

Actions Status Quality Gate Status

Release

Overview

YAGAT provides a graphical user interface built on top of the fantastic PowSyBl open source grid analysis libraries.

With YAGAT, no programming skills are required: just download, unzip, and run – you're all set!

Today with YAGAT you can:

  • Load grid models from the various formats supported by PowSyBl:
    • PowSyBl native iIDM format
    • CIM/CGMES
    • UCTE-DEF
    • IEEE-CDF
    • MATPOWER
    • Siemens PSS®E
  • Display and navigate the grid model:
    • with electrical buses represented in tabular form
    • with per-equipment lists
  • Modify generator, load, etc. active power
  • Run a Load Flow, visualize solved bus voltages and branch flows

Rationale

YAGAT was created to address key limitations found in existing open-source grid analysis tools, making it more accessible for users without programming expertise or advanced technical setups. Here's why YAGAT stands out:

  1. Graphical User Interfaces (GUIs):
    Many existing grid analysis tools are command-line-based or require custom scripting. This can be intimidating for users unfamiliar with programming. YAGAT fills this gap by offering a user-friendly GUI, allowing users to interact with grid models visually and intuitively, without writing a single line of code.

  2. Technical Barriers:
    Some tools require extensive programming knowledge or familiarity with complex APIs to perform basic operations like running load flow calculations or modifying grid parameters. YAGAT eliminates this barrier, enabling users to perform these tasks with just a few clicks.

  3. Complicated Installation Processes:
    Installations for many tools often involve dependency management, environment setup, or specific system requirements, making it difficult for non-technical users. YAGAT simplifies this process with pre-packaged binaries for Windows, Linux, and macOS. Installation is as simple as downloading, unzipping, and running the application.

By addressing these pain points, YAGAT empowers engineers, analysts, and researchers to focus on their work rather than wrestling with software setup or programming challenges. It democratizes grid analysis, making it accessible to a broader audience with diverse technical backgrounds.

Installation

Binary releases are provided for Windows, Linux and macOS on the releases page.
No additional software is required for installation.
Download and extract the zip archive for your platform, then run YAGAT.

Note that YAGAT's author does not own a Mac, please report any issue found running YAGAT on macOS.

Quick Start

  • Open a sample network: Go to File | Open Sample network | IEEE 9 Bus to load a sample grid model.
  • Navigate the grid: Use the tree view on the left to browse through the network model and its elements.
  • Run the Load Flow: Select Run | Load Flow to execute the analysis.
    • Once completed, review the solved bus voltages and branch flows.

yagat quickstart

Building from source

With Python 3.12 and e.g. using a Virtual Environment and pip.

# clone the git repository
git clone https://github.com/jeandemanged/yagat.git
cd yagat
# create a virtual environment and install requirements
python -m venv venv
. venv/bin/activate
pip install -r requirements.txt
# build the application
pyinstaller -y yagat.spec

YAGAT is then available for your platform in the dist directory.

Roadmap

YAGAT today lacks many features, but you may already find it useful. What is planned for the future is:

Short-Term to Mid-Term Plans:

  • Grid Import:
    • modify format-specific import options
  • Grid Export:
    • modify format-specific export options
  • Grid views:
    • overall cleanup
    • add tables for grid element parameters (e.g. lines R, X, etc.) display and update
    • add navigation between the different views
  • Grid Topology Updates:
    • modify switches open/close status, modify equipment connected status
  • Load Flow:
    • Add ability to save/load the Load Flow parameters
  • Reports:
    • View Grid import and Load Flow reports in order to troubleshoot e.g. non-convergence

Future Plans:

  • Security Analysis:
    • Configure a list of contingencies to simulate
    • Run contingency analysis
    • View contingency violations

Under the Hood

YAGAT is:

  • Written in Python: a high-level, general-purpose programming language.
  • Using PyPowSyBl: Provides the core grid analysis functionalities.
  • Using Tkinter: Supplies the graphical user interface.
  • Using Tksheet: An amazing tkinter table widget.
  • Using PyInstaller: Packages the application.

Data Confidentiality

We take data confidentiality seriously. All data processed by the application remains on the user's local machine and is not transmitted to any external servers. This ensures complete data privacy for users working with sensitive grid models.

Contributing and Support

Should you encounter any issues with YAGAT, please let us know.
We welcome contributions, ideas, and feedback. Please open an issue or pull request to get involved.