cimd
Lightning Fast CGMES Tooling
About CIMD
cimd is an Apache 2.0-licensed project created by Casper Eijkens.
cimd is a command line interface for exploring, querying, converting and merging CGMES 3.0 equipment profiles.
As a data point, cimd converts the zipped Dutch grid model to iTesla under 200ms on an M4 ARM chip, at a speed of 24MB/s. So the equipment profile is unzipped, parsed, converted to IIDM and written to disk as a JSON file under 200ms. Other tools need at least 6 seconds for the same task.
Moreover, it is observed that cimd scales linearly with model size because of its excellent data structure and algorithms. This means that cimd keeps a constant parsing speed, no matter how large the model size. This allows for creating multi-GB, highly detailed, pan-European grid models that can be processed in mere seconds.
Why Zig?
cimd was born out of the question: “What is the speed limit for parsing equipment profiles?”. Zig allows to fully explore the answer to this question. Zig offers full freedom to express the system design, while having many language features that facilitate safe code. Also, because Zig is extremely fast (comparable to C or Rust).
CIMD is alpha software
cimd is not yet complete. The main functionality is present but it is only tested against the Dutch power grid model. We are fully aware that there will be edge cases of other TSO members that are not considered yet. I am working hard to make cimd ENTSOE-complete.
So, using cimd today does imply participating in the development process to some degree, which usually means inquiring about the development status of a feature you need, or reporting a bug. You are most welcome to get in touch so we can improve cimd for your usecase.
Here are some quicklinks related to CIMD:
- Official Website: https://cimd.eu
- Source Code: https://codeberg.org/caspereijkens/cimd
- Releases: https://github.com/caspereijkens/cimd/releases/ (waiting for CodeBerg to have proper CI.)