Library to convert Common Grid Model Exchange Standard (CGMES) datasets to PowerGridModel (PGM) format
Project description
CGMES2PGM-Converter
cgmes2pgm_converter provides a library to convert Common Grid Model Exchange Standard (CGMES) datasets to PowerGridModel format.
It was designed to apply the PGM State Estimation on a CGMES dataset.
The CGMES dataset is fetched from a SPARQL endpoint and converted to a PGM dataset.
This converter works with CGMES 3.0 / CIM 100 datasets, as well as CGMES 2.4 / CIM 16 datasets.
Methods to substitute additional measurements are included as well to improve state estimation (e.g. passive nodes). cgmes2pgm_suite provides additional tools for working with CGMES and PGM.
Getting Started
The package can be installed from PyPI using pip:
pip install cgmes2pgm_converter
Set up the CGMES-Model
The CGMES-Model needs to be imported as a dataset into a triplestore providing a SPARQL endpoint (e.g. Apache Jena Fuseki).
Currently, the CGMES model needs to be stored in the default graph of the dataset. This approach may be updated in future versions.
Conversion
from cgmes2pgm_converter import CgmesToPgmConverter, CgmesDataset
dataset = CgmesDataset(
base_url="http://localhost:3030/dataset_name",
cim_namespace="http://iec.ch/TC57/2013/CIM-schema-cim16#", # for CGMES 2.4
# "http://iec.ch/TC57/CIM100#", # for CGMES 3.0
)
converter = CgmesToPgmConverter(datasource=dataset)
input_data, extra_info = converter.convert()
See cgmes2pgm_suite for an complete example of how to use the converter.
Supported CGMES Classes
The following list of CGMES classes is supported by the converter:
- All Branches (ACLineSegment, EquivalentBranch)
- Links (Switch, Breaker, Disconnector)
- Transformers (2-Winding, 3-Winding)
- RatioTapchanger
- PhaseTapChangerTabular
- PhaseTapChangerLinear, -Symmetrical, -Asymmetrical
- Measurements (P, Q, U, I*)
- Generators & Loads
- SynchronousMachine, AsynchronousMachine
- ExternalNEtworkInjection
- EnergyConsumer
- StaticVarCompensator
- Shunts (Linear-, NonlinearShuntCompensator)
- DC Components
- CsConverter, VsConverter
- Replaced by loads since PGM does not support DC Components
* Used to create Q-measurements
License
This project is licensed under the Apache License 2.0.
Dependencies
This project includes third-party dependencies, which are licensed under their own respective licenses.
- cgmes2pgm_converter (Apache License 2.0)
- bidict (Mozilla Public License 2.0)
- numpy (BSD License)
- pandas (BSD License)
- power-grid-model (Mozilla Public License 2.0)
- power-grid-model-io (Mozilla Public License 2.0)
- SPARQLWrapper (W3C License)
- XlsxWriter (BSD License)
- PyYAML (MIT License)
- StrEnum (MIT License)
- SciPy (BSD License)
Development
For local development, the package can be installed from source:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pip install -e .
pre-commit install
Commercial Support and Services
For organizations requiring commercial support, professional maintenance, integration services, or custom extensions for this project, these services are available from SOPTIM AG.
Please feel free to contact us via powergridmodel@soptim.de.
Contributing
We welcome contributions to improve this project. Please see our Contributing Guide for details on how to submit pull requests, report issues, and suggest improvements.
Code of Conduct
This project adheres to a code of conduct adapted from the Apache Foundation's Code of Conduct. We expect all contributors and users to follow these guidelines to ensure a welcoming and inclusive community.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cgmes2pgm_converter-0.4.3.tar.gz.
File metadata
- Download URL: cgmes2pgm_converter-0.4.3.tar.gz
- Upload date:
- Size: 65.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fb843884d0f06626c32e8cc9c9bce545da5a524a54b4953b1ce11ee7beaa3505
|
|
| MD5 |
3fbf685d5bb670a47635d3d097bd192d
|
|
| BLAKE2b-256 |
d776e654366c917216d14ef2537aa0a178dec80c08a662b227346dfa64f07e95
|
File details
Details for the file cgmes2pgm_converter-0.4.3-py3-none-any.whl.
File metadata
- Download URL: cgmes2pgm_converter-0.4.3-py3-none-any.whl
- Upload date:
- Size: 115.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5f12d2cc6505fc5f986f66e51e5a84dd8a868052578cb5d78acded4f0dcdbc7f
|
|
| MD5 |
1f09c4327481f369d2bb63b0cd77356e
|
|
| BLAKE2b-256 |
5f2afb35c19338c3c9def1b1cdbc2262b5d12f33156a5ec9cf60f9ffe555b564
|