Common Energy System Model
The Common Energy System Model (CESM) is a data model for multi-energy system modelling together with tooling for converting data between tool-specific formats. CESM uses a hub-and-spoke approach: each tool needs only one transformer (to and from CESM) instead of direct converters to every other tool.
+----------------+
| CESM |
| Data Model |
+--+----------+--+
| |
+-------------+ +--+----------+
| Tool A | | Tool B |
| Data Format | | Data Format |
+-------------+ +-------------+
Where to start
| Section | Description |
|---|---|
Set up CESM and install dependencies. |
|
Load sample data, inspect it, and run format conversions. |
|
Understand the data model: entities, methods, temporal model, and data formats. |
|
Auto-generated reference for all classes and enumerations in the LinkML schema. |
|
Overview of supported input and output formats. |
|
Architecture, adding new formats, and writing transformers. |
Source code
The source code and LinkML schema are available on GitHub.
Design principles
-
Standard-based — built on LinkML with integration to IEC-CIM and QUDT ontologies.
-
Tool-agnostic — defines the data model, not the tool. Transformers handle conversions to and from tool-specific formats.
-
Separation of concerns — the specification (LinkML schema) is independent of the implementation (Python readers, writers, and transformers).
-
Version-aware transformers — each tool can have multiple transformer versions, one per tool version, all targeting the same CESM version. This allows the same CESM hub to interoperate with different releases of the same tool without breaking existing transformers.