Skip to main content

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.

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.

Metadata

Release files for cgmes2pgm-converter 0.4.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cgmes2pgm-converter 0.4.4
File Size Uploaded
cgmes2pgm_converter-0.4.4.tar.gz 66.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cgmes2pgm-converter 0.4.4
File Interpreter ABI Platform
cgmes2pgm_converter-0.4.4-py3-none-any.whl Python 3 none any Details

Total release size: 182.0 kB

Release files / cgmes2pgm_converter-0.4.4.tar.gz

Download URL cgmes2pgm_converter-0.4.4.tar.gz
Size 66.3 kB
Tags Source
SHA-256 checksum
How to use checksums
f6dcb7996da32344689f1a6855eed39054d1c13e9db0467c62bea05dcfa25960
BLAKE2b-256 checksum
How to use checksums
29631a9b50dd0f8a0558acc65d4db80a3b9626b349c5ed11fc86b10d7e79e87b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / cgmes2pgm_converter-0.4.4-py3-none-any.whl

Download URL cgmes2pgm_converter-0.4.4-py3-none-any.whl
Size 115.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bceb4614a6b59e45ffebac34ebe2275e5047cd24a73e8f7399446515b9d3441b
BLAKE2b-256 checksum
How to use checksums
e3eaae60cbc52fff756c75677fe81cf4d774c2f40ba5901299c5322c8961afe4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page