Skip to content

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 CIMUnit wrappers (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

pip install cimhub_opendss

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")