CIMHub OpenDSS¶
Bidirectional converter between OpenDSS and CIM (IEC 61968/61970) using the cimhub_2026 profile.
Features¶
- Full roundtrip fidelity — import a DSS model to CIM, export back to DSS, solve both with OpenDSS. Verified within 0.14% on the IEEE 13-bus feeder.
- cimhub_2026 profile — uses the extended CIMHub profile including distribution-level assets and unit-annotated quantities.
- Physical units enforced — all CIM quantities use
CIMUnitwrappers (pint-backed), preventing the manual ×1000 bugs that plague hand-written converters. - Annotation-driven schema — the OpenDSS schema is defined in LinkML YAML; each DSS attribute maps to a CIM class/field via
exact_mappings.
Supported Models¶
| Category | Element | Import | Export |
|---|---|---|---|
| Transformers | PowerTransformer, TransformerTank | ✓ | ✓ |
| Transformers | Autotransformer | ✓ | ✓ |
| Lines | ACLineSegment, LineCode | ✓ | ✓ |
| Shunts | LinearShuntCompensator (Capacitor) | ✓ | ✓ |
| Controls | RegulatingControl (CapControl, RegControl) | ✓ | ✓ |
| Loads | EnergyConsumer | ✓ | ✓ |
| Generators | SynchronousMachine | ✓ | ✓ |
| DER | PhotoVoltaicUnit (PVSystem) | ✓ | ✓ |
| DER | BatteryUnit (Storage) | ✓ | ✓ |
| Switches | Breaker, Fuse, LoadBreakSwitch, Recloser | ✓ | ✓ |
| Source | EnergySource (Vsource) | ✓ | ✓ |
| Conductors | WireInfo (WireData) | ✓ | ✓ |
| Conductors | ConcentricNeutralCableInfo (CNData) | ✓ | — |
| Conductors | TapeShieldCableInfo (TSData) | ✓ | — |
| Conductors | WireSpacingInfo (LineGeometry/LineSpacing) | ✓ | — |
Installation¶
Quick Start¶
import os
os.environ['CIMG_USE_UNITS'] = 'TRUE'
os.environ['CIMG_CIM_PROFILE'] = 'cimhub_2026'
from cimhub_opendss.importer.dss_to_cim import dss_to_cim
from cimhub_opendss.exporter.cim_to_dss import cim_to_dss
# Import DSS → CIM
feeder = dss_to_cim("/path/to/Master.dss")
# Export CIM → DSS
cim_to_dss(feeder, "/path/to/output_dir")