scpn_fusion.io – Data Interop¶
The IO subpackage provides data-interoperability adapters for the IMAS (Integrated Modelling & Analysis Suite) data exchange standard used in the fusion community.
IMAS Connector¶
Facade API for IMAS/IDS adapter modules.
This module intentionally stays as a stable import surface while implementation is decomposed into focused submodules:
imas_connector_common: validation/coercion primitivesimas_connector_digital_twin: summary/state IDS mappingsimas_connector_equilibrium: GEQDSK <-> IMAS equilibriumimas_connector_transport: core_profiles/summary/core_transportimas_connector_storage: JSON I/O helpersimas_connector_omas: OMAS bridge
- scpn_fusion.io.imas_connector.validate_ids_payload(payload)[source]¶
Validate a complete IDS payload shape and units.
Ensures required top-level fields, nested structures, and numeric coercion constraints are satisfied. This function performs strict checks for time-slice ordering at the millisecond level and required equilibrium / performance keys.
- scpn_fusion.io.imas_connector.digital_twin_summary_to_ids(summary, *, machine='ITER', shot=0, run=0)[source]¶
Map an internal digital-twin summary into an IDS-like payload.
Returns a shallow canonicalised mapping that includes the equilibrium and performance fields required by
validate_ids_payload().
- scpn_fusion.io.imas_connector.digital_twin_state_to_ids(state, *, machine='ITER', shot=0, run=0)[source]¶
Map a detailed digital-twin state + profiles into an IDS-like payload.
Accepts full internal state records, including optional 1-D profile fields, and delegates to
digital_twin_summary_to_ids()before attaching the validatedequilibrium.profiles_1dpayload.
- scpn_fusion.io.imas_connector.ids_to_digital_twin_summary(payload)[source]¶
Convert an IDS-like payload into internal digital-twin summary shape.
- scpn_fusion.io.imas_connector.ids_to_digital_twin_state(payload)[source]¶
Convert IDS payload into detailed digital-twin state with optional profiles.
- scpn_fusion.io.imas_connector.digital_twin_history_to_ids(history, *, machine='ITER', shot=0, run=0)[source]¶
Convert a local digital-twin history into IDS payload sequence form.
- scpn_fusion.io.imas_connector.digital_twin_history_to_ids_pulse(history, *, machine='ITER', shot=0, run=0)[source]¶
Convert digital-twin history into a single IDS pulse payload.
- scpn_fusion.io.imas_connector.ids_to_digital_twin_history(payloads)[source]¶
Convert a sequence of IDS payloads back to digital-twin snapshots.
- scpn_fusion.io.imas_connector.ids_pulse_to_digital_twin_history(pulse)[source]¶
Convert IDS pulse payload into a sequence of digital-twin snapshots.
- scpn_fusion.io.imas_connector.validate_ids_payload_sequence(payloads)[source]¶
Validate a strictly monotonic sequence of IDS payloads.
The function enforces: - required payload schema fields - shared machine / shot / run identity across the sequence - strictly increasing time index and time value
- scpn_fusion.io.imas_connector.validate_ids_pulse_payload(pulse)[source]¶
Validate IDS pulse payload integrity and consistency constraints.
- scpn_fusion.io.imas_connector.geqdsk_to_imas_equilibrium(eq, *, time_s=0.0, shot=0, run=0)[source]¶
Convert a GEqdsk equilibrium to an IMAS Data Dictionary
equilibriumIDS.
- scpn_fusion.io.imas_connector.imas_equilibrium_to_geqdsk(ids)[source]¶
Convert an IMAS Data Dictionary
equilibriumIDS back to a GEqdsk.
- scpn_fusion.io.imas_connector.state_to_imas_core_profiles(state, *, time_s=0.0)[source]¶
Convert a plasma state dict to an IMAS
core_profilesIDS.
- scpn_fusion.io.imas_connector.state_to_imas_summary(state)[source]¶
Convert a performance/state dict to an IMAS
summaryIDS.
- scpn_fusion.io.imas_connector.state_to_imas_core_transport(state, *, time_s=0.0)[source]¶
Convert a plasma state dict to an IMAS
core_transportIDS.
- scpn_fusion.io.imas_connector.imas_core_transport_to_state(ids)[source]¶
Convert an IMAS
core_transportIDS back to a state dict.
- scpn_fusion.io.imas_connector.write_ids(ids_dict, path)[source]¶
Write an IDS dict to a JSON file with schema validation.
- scpn_fusion.io.imas_connector.read_ids(path)[source]¶
Read an IDS JSON file and validate minimal schema.