Skip to main content

Module ravens

Module ravens 

Source
Expand description

MG-RAVENS JSON import and export for the multiconductor MulticonductorNetwork.

MG-RAVENS (https://github.com/lanl-ansi/MG-RAVENS, Apache-2.0) is the LANL/Triad microgrid data schema: one JSON document of name-keyed hash tables nested under the CIM class hierarchy, with Ravens.cimObjectType naming each object’s concrete class and Class::'name' strings pointing between tables. Values are SI (volts, watts, ohms, meters) and radians.

This is the multiconductor sibling of the balanced MG-RAVENS support in the powerio-tx crate: that reader takes the MATPOWER-derived transmission profile and refuses documents with per-phase detail; this one takes the OpenDSS-derived distribution profile — ACLineSegmentPhase, EnergyConsumerPhase, PerLengthPhaseImpedance matrices, TransformerTank ends with catalog TransformerEndInfo records, EnergySource Thevenin sources — and refuses the balanced profile’s markers, pointing back. Because it lands in MulticonductorNetwork, a RAVENS feeder converts to OpenDSS .dss, PowerModelsDistribution ENGINEERING JSON, BMOPF JSON, and distribution CIM through the same DistTargetFormat machinery as every other distribution source, and any of those convert into RAVENS.

The writer emits deterministic UUID-shaped mRIDs derived from class and name (imported mRIDs pass through the ravens_mrid extras), so write, read, write is byte stable; a parse retains its source on the module for the byte-exact echo tier.

The reader’s findings use the READ.RAVENS_DIST.* codes and the writer’s the EMIT.RAVENS_DIST.* codes of crate::diagnostics. The vocabulary the two profiles share (the profile markers, deterministic mRIDs, and the phase kinds) is powerio_core::cim; the balanced profile is read and written by powerio-tx, and powerio-tnd routes a document to its profile.

§Phase convention

CIM SinglePhaseKind/PhaseCode letters 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 secondary codes s1/s2→1/2.