Skip to main content

Module cim

Module cim 

Source
Expand description

Distribution CIM: IEC 61968 and 61970 CIM100 RDF/XML for unbalanced feeders, read into and written from the MulticonductorNetwork (format token cim-dist).

The profile is the one the GridAPPS-D and CIMHub tools exchange: one RDF/XML document in the http://iec.ch/TC57/CIM100# namespace (the iec61970cim17v40 and iec61968cim13v13 release CGMES 3.0 also uses), with ConnectivityNode connectivity and per phase equipment (ACLineSegmentPhase, EnergyConsumerPhase, SwitchPhase, …). The reader also accepts the older versioned CIM-schema-cimNN namespaces. A directory of .xml documents reads as one case, with rdf:about objects extending the ones another document defines.

CIM16 documents may state an enumeration as text rather than as a reference, and draw the network in a Diagram Layout; the reader reads both.

Same format emission returns the retained source bytes of a single document. Canonical output is one CIM100 document with deterministic mRIDs: imported ids pass through the cim_mrid extras, and everything else takes a UUIDv5, so write, read, write is byte stable.

§Phase convention

CIM SinglePhaseKind values map to the wire coordinate terminal names (OpenDSS node numbers) the rest of the crate uses: A→1, B→2, C→3, N→4, and the split phase s1/s2→1/2. A conductor beyond those four has no SinglePhaseKind and is reported on output.

§Transformer forms

A PowerTransformer states its windings either as PowerTransformerEnd records with their own ratings and impedances, or as TransformerTanks, each with TransformerTankEnds and catalog data (TransformerTankInfo, TransformerEndInfo, ShortCircuitTest, NoLoadTest) that an Asset links. Each tank reads as one transformer, with its parent and catalog entry in extras, and is written back as a tank; every other transformer is written in the PowerTransformerEnd form. No-load data from either form lands in the %noloadloss and %imag extras.

Constants§

CIM_DIST_HEAD_BYTES
How much of a document the header checks read.

Functions§

looks_like_cim_dist
Whether a document reads as distribution CIM: its header passes looks_like_cim_dist_header, and it holds at least one per phase or distribution only class anywhere.
looks_like_cim_dist_header
Whether a document opens like distribution CIM: RDF/XML in a CIM namespace with no md:FullModel header (which marks a CGMES profile) in its first CIM_DIST_HEAD_BYTES. A caller holding only a file’s head can rule it out with this before reading the whole file for looks_like_cim_dist.
source_looks_like_cim_dist
Whether a source holds distribution CIM: its own buffer reads as distribution CIM (looks_like_cim_dist), or, for a directory, one of the .xml documents at its top level does. The reads go through the source, so they count against its acquisition budget and are cached for the parse that follows.