JSON Schema
grid/nodes/bus (4 features)
| Index |
Feature |
Description |
Units |
| 0 |
base_kv |
Base voltage |
kV |
| 1 |
bus_type |
Bus type (1=PQ, 2=PV, 3=Ref, 4=Isolated) |
- |
| 2 |
vmin |
Minimum voltage magnitude |
per unit (p.u.) |
| 3 |
vmax |
Maximum voltage magnitude |
per unit (p.u.) |
grid/nodes/generator (11 features)
| Index |
Feature |
Description |
Units |
| 0 |
mbase |
Machine base power |
MVA |
| 1 |
pg |
Active power generation |
p.u |
| 2 |
pmin |
Minimum active power output |
p.u |
| 3 |
pmax |
Maximum active power output |
p.u |
| 4 |
qg |
Reactive power generation |
p.u |
| 5 |
qmin |
Minimum reactive power output |
p.u |
| 6 |
qmax |
Maximum reactive power output |
p.u |
| 7 |
vg |
Voltage setpoint |
per unit |
| 8 |
cost_c2 |
Quadratic cost coefficient |
$/MW²/h |
| 9 |
cost_c1 |
Linear cost coefficient |
$/MW/h |
| 10 |
cost_c0 |
Constant cost coefficient |
$/h |
grid/nodes/load (2 features)
| Index |
Feature |
Description |
Units |
| 0 |
pd |
Active power demand |
p.u |
| 1 |
qd |
Reactive power demand |
p.u |
grid/nodes/shunt (2 features)
| Index |
Feature |
Description |
Units |
| 0 |
bs |
Shunt susceptance |
per unit |
| 1 |
gs |
Shunt conductance |
per unit |
grid/edges/ac_line/features (9 features)
| Index |
Feature |
Description |
Units |
| 0 |
angmin |
Minimum voltage angle difference |
radians |
| 1 |
angmax |
Maximum voltage angle difference |
radians |
| 2 |
b_fr |
Charging susceptance (from side) |
per unit |
| 3 |
b_to |
Charging susceptance (to side) |
per unit |
| 4 |
br_r |
Series resistance |
per unit |
| 5 |
br_x |
Series reactance |
per unit |
| 6 |
rate_a |
Long-term thermal rating |
MVA |
| 7 |
rate_b |
Short-term thermal rating |
MVA |
| 8 |
rate_c |
Emergency thermal rating |
MVA |
| Index |
Feature |
Description |
Units |
| 0 |
angmin |
Minimum voltage angle difference |
radians |
| 1 |
angmax |
Maximum voltage angle difference |
radians |
| 2 |
br_r |
Series resistance |
per unit |
| 3 |
br_x |
Series reactance |
per unit |
| 4 |
rate_a |
Long-term thermal rating |
MVA |
| 5 |
rate_b |
Short-term thermal rating |
MVA |
| 6 |
rate_c |
Emergency thermal rating |
MVA |
| 7 |
tap |
Transformer tap ratio |
per unit |
| 8 |
shift |
Phase shift angle |
radians |
| 9 |
b_fr |
Charging susceptance (from side) |
per unit |
| 10 |
b_to |
Charging susceptance (to side) |
per unit |
solution/nodes/bus (2 features)
| Index |
Feature |
Description |
Units |
| 0 |
va |
Voltage angle |
radians |
| 1 |
vm |
Voltage magnitude |
per unit |
solution/nodes/generator (2 features)
| Index |
Feature |
Description |
Units |
| 0 |
pg |
Active power generation |
p.u |
| 1 |
qg |
Reactive power generation |
p.u |
solution/edges/ac_line/features (4 features)
| Index |
Feature |
Description |
Units |
| 0 |
pt |
Active power flow (to side) |
MW |
| 1 |
qt |
Reactive power flow (to side) |
MVAr |
| 2 |
pf |
Active power flow (from side) |
MW |
| 3 |
qf |
Reactive power flow (from side) |
MVAr |
Same as ac_line.
HDF5 Schema
scenario_XXXXXX.h5
├── grid/ (Group: Input network data)
├── solution/ (Group: Optimization results)
└── metadata/ (Group: Scenario metadata)
chunk_XXXX.h5
├── scenario_000001/
│ ├── grid/
│ ├── solution/
│ └── metadata/
├── scenario_000002/
│ ├── grid/
│ ├── solution/
│ └── metadata/
...
└── scenario_00YYYY/
├── grid/
├── solution/
└── metadata/
Field specifications:
grid/nodes/bus (Dataset: Float32, shape=[n_bus, 5])
| Index |
Feature |
Type |
Description |
Units |
| 0 |
vmin |
Float32 |
Minimum voltage magnitude |
per unit (p.u.) |
| 1 |
vmax |
Float32 |
Maximum voltage magnitude |
per unit (p.u.) |
| 2 |
zone |
Float32 |
Zone identifier |
- |
| 3 |
area |
Float32 |
Area identifier |
- |
| 4 |
bus_type |
Float32 |
Bus type (1=PQ, 2=PV, 3=Ref) |
- |
grid/nodes/generator (Dataset: Float32, shape=[n_gen, 10])
| Index |
Feature |
Type |
Description |
Units |
| 0 |
pmax |
Float32 |
Maximum active power output |
MW |
| 1 |
pmin |
Float32 |
Minimum active power output |
MW |
| 2 |
qmax |
Float32 |
Maximum reactive power output |
MVAr |
| 3 |
qmin |
Float32 |
Minimum reactive power output |
MVAr |
| 4 |
cost_c2 |
Float32 |
Quadratic cost coefficient (c2·pg²) |
$/MW²/h |
| 5 |
cost_c1 |
Float32 |
Linear cost coefficient (c1·pg) |
$/MW/h |
| 6 |
cost_c0 |
Float32 |
Constant cost coefficient |
$/h |
| 7 |
vg |
Float32 |
Voltage setpoint (for PV buses) |
per unit |
| 8 |
mbase |
Float32 |
Machine base power |
MVA |
| 9 |
gen_status |
Float32 |
Generator status (1=on, 0=off) |
- |
grid/nodes/load (Dataset: Float32, shape=[n_load, 2])
| Index |
Feature |
Type |
Description |
Units |
| 0 |
pd |
Float32 |
Active power demand |
MW |
| 1 |
qd |
Float32 |
Reactive power demand |
MVAr |
grid/nodes/shunt (Dataset: Float32, shape=[n_shunt, 2])
| Index |
Feature |
Type |
Description |
Units |
| 0 |
gs |
Float32 |
Shunt conductance |
per unit |
| 1 |
bs |
Float32 |
Shunt susceptance |
per unit |
grid/context/baseMVA` (Dataset: Float32, shape=[1, 1, 1])
grid/edges/ac_line/
senders (Dataset: Int32, shape=[n_ac_line])
receivers (Dataset: Int32, shape=[n_ac_line])
features (Dataset: Float32, shape=[n_ac_line, 9])
| Index |
Feature |
Type |
Description |
Units |
| 0 |
angmin |
Float32 |
Minimum voltage angle difference |
radians |
| 1 |
angmax |
Float32 |
Maximum voltage angle difference |
radians |
| 2 |
br_r |
Float32 |
Series resistance |
per unit |
| 3 |
br_x |
Float32 |
Series reactance |
per unit |
| 4 |
b_fr |
Float32 |
Half of br_b |
per unit |
| 5 |
b_to |
Float32 |
Half of br_b |
per unit |
| 6 |
rate_a |
Float32 |
Long-term thermal rating |
MVA |
| 7 |
rate_b |
Float32 |
Short-term thermal rating |
MVA |
| 8 |
rate_c |
Float32 |
Emergency thermal rating |
MVA |
| 9 |
br_status |
Float32 |
Branch status (1=in-service, 0=out) |
- |
senders (Dataset: Int32, shape=[n_transformer])
receivers (Dataset: Int32, shape=[n_transformer])
features (Dataset: Float32, shape=[n_transformer, 11])
| Index |
Feature |
Type |
Description |
Units |
| 0 |
angmin |
Float32 |
Minimum voltage angle difference |
radians |
| 1 |
angmax |
Float32 |
Maximum voltage angle difference |
radians |
| 2 |
br_r |
Float32 |
Series resistance |
per unit |
| 3 |
br_x |
Float32 |
Series reactance |
per unit |
| 4 |
b_fr |
Float32 |
Half of br_b |
per unit |
| 5 |
b_to |
Float32 |
Half of br_b |
per unit |
| 6 |
rate_a |
Float32 |
Long-term thermal rating |
MVA |
| 7 |
rate_b |
Float32 |
Short-term thermal rating |
MVA |
| 8 |
rate_c |
Float32 |
Emergency thermal rating |
MVA |
| 9 |
br_status |
Float32 |
Branch status |
- |
| 10 |
tap |
Float32 |
Transformer tap ratio |
per unit |
| 11 |
shift |
Float32 |
Phase shift angle |
radians |
solution/nodes/bus (Dataset: Float32, shape=[n_bus, 2])
| Index |
Feature |
Type |
Description |
Units |
| 0 |
va |
Float32 |
Voltage angle |
radians |
| 1 |
vm |
Float32 |
Voltage magnitude |
per unit |
solution/nodes/generator (Dataset: Float32, shape=[n_gen, 2])
| Index |
Feature |
Type |
Description |
Units |
| 0 |
pg |
Float32 |
Active power generation |
MW |
| 1 |
qg |
Float32 |
Reactive power generation |
MVAr |
solution/edges/ac_line/features (Dataset: Float32, shape=[n_ac_line, 4])
Power flows on AC lines.
| Index |
Feature |
Type |
Description |
Units |
| 0 |
pf |
Float32 |
Active power flow (from → to) |
MW |
| 1 |
qf |
Float32 |
Reactive power flow (from → to) |
MVAr |
| 2 |
pt |
Float32 |
Active power flow (to → from) |
MW |
| 3 |
qt |
Float32 |
Reactive power flow (to → from) |
MVAr |
solution/edges/ac_line/features (Dataset: Float32, shape=[n_ac_line, 4])
| Index |
Feature |
Type |
Description |
Units |
| 0 |
pf |
Float32 |
Active power flow (from → to) |
MW |
| 1 |
qf |
Float32 |
Reactive power flow (from → to) |
MVAr |
| 2 |
pt |
Float32 |
Active power flow (to → from) |
MW |
| 3 |
qt |
Float32 |
Reactive power flow (to → from) |
MVAr |
solution/edges/transformer/features (Dataset: Float32, shape=[n_transformer, 4])
| Index |
Feature |
Type |
Description |
Units |
| 0 |
pf |
Float32 |
Active power flow (from → to) |
MW |
| 1 |
qf |
Float32 |
Reactive power flow (from → to) |
MVAr |
| 2 |
pt |
Float32 |
Active power flow (to → from) |
MW |
| 3 |
qt |
Float32 |
Reactive power flow (to → from) |
MVAr |
| Attribute |
Type |
Description |
Units |
scenario_id |
Int32 |
Unique scenario identifier |
- |
objective |
Float32 |
Optimal objective function value |
$ (or $/h) |
solve_time |
Float32 |
Solver wall-clock time |
seconds |
status |
String |
Solver termination status |
- |
total_power_slack |
Float32 |
Sum of all power balance slack variables |
|
total_line_slack |
Float32 |
Sum of all line limit slack variables |
|
Contingency HDF5 schemas:
Single scenario:
scenario_XXXXXX.h5
├── grid/ (Group: Input network with perturbed loads)
├── base_solution/ (Group: Pre-contingency OPF solution)
├── contingencies/ (Group: Contingency definitions)
├── post_contingency/ (Group: Post-contingency OPF solutions)
└── metadata/ (Group: Scenario metadata)
Multiple scenarios:
merged_XXXXXXX.h5
├── grid/
├── scenario_000001/
│ ├── base_solution/
│ ├── contingencies/
│ ├── post_contingency/
└ ├── metadata/
├── scenario_000002/
│ ...
grid/nodes/load (Dataset: Float32, shape=[n_load, 4])
| Index |
Feature |
Description |
Units |
| 0 |
pd |
Active power demand |
MW |
| 1 |
qd |
Reactive power demand |
MVAr |
| 2 |
weight_p |
Load shedding priority weight (P) |
- |
| 3 |
weight_q |
Load shedding priority weight (Q) |
- |
base_solution/
├── pf/nodes/ (Power Flow solution)
│ ├── bus [n_bus, 2]
│ ├── generator [n_gen, 2]
│ └── load [n_load, 2]
└── opf/nodes/ (Optimal Power Flow solution)
├── bus [n_bus, 2]
├── generator [n_gen, 2]
└── load [n_load, 2]
bus (Dataset: Float32, shape=[n_bus, 2])
| Index |
Feature |
Description |
Units |
| 0 |
va |
Voltage angle |
radians |
| 1 |
vm |
Voltage magnitude |
per unit |
generator (Dataset: Float32, shape=[n_gen, 2])
| Index |
Feature |
Description |
Units |
| 0 |
pg |
Active power generation |
MW |
| 1 |
qg |
Reactive power generation |
MVAr |
load (Dataset: Float32, shape=[n_load, 2])
| Index |
Feature |
Description |
Units |
| 0 |
pd_served |
Active power actually served |
MW |
| 1 |
qd_served |
Reactive power actually served |
MVAr |
Attributes (base_solution/opf/)
| Attribute |
Type |
Description |
objective |
Float32 |
Optimal cost |
solve_time |
Float32 |
Solver time (seconds) |
status |
String |
Solver termination status (e.g., LOCALLY_SOLVED) |
CONTINGENCIES GROUP
Definitions of all contingencies analyzed.
Attributes
| Attribute |
Type |
Description |
count |
Int32 |
Number of contingencies |
Datasets
contingencies/types (Dataset: Int8, shape=[n_cont])
Contingency type for each contingency.
| Value |
Type |
Description |
| 0 |
LINE |
Line/branch outage |
| 1 |
GEN |
Generator outage |
contingencies/ids (Dataset: String, shape=[n_cont])
contingencies/names (Dataset: String, shape=[n_cont])
post_contingency/
├── contingency_000001/
│ ├── @pf_converged Int8 (1=yes, 0=no)
│ ├── @opf_converged Int8 (1=yes, 0=no)
│ ├── pf/nodes/
│ │ ├── bus [n_bus, 2]
│ │ ├── generator [n_gen, 2]
│ │ └── load [n_load, 2]
│ └── opf/
│ ├── @objective Float32
│ ├── @solve_time Float32
│ ├── @status String
│ └── nodes/
│ ├── bus [n_bus, 2]
│ ├── generator [n_gen, 2]
│ └── load [n_load, 2]
├── contingency_000002/
│ └── ...
└── contingency_NNNNNN/
Contingency Attributes (post_contingency/contingency_XXXXXX/)
| Attribute |
Type |
Description |
pf_converged |
Int8 |
1 if PF converged, 0 otherwise |
opf_converged |
Int8 |
1 if OPF converged, 0 otherwise |
OPF Attributes (post_contingency/contingency_XXXXXX/opf/)
| Attribute |
Type |
Description |
objective |
Float32 |
Optimal cost |
solve_time |
Float32 |
Solver time (seconds) |
status |
String |
Solver termination status (e.g., LOCALLY_SOLVED) |
Node Datasets (same structure as base_solution)
bus [n_bus, 2]: va, vm
generator [n_gen, 2]: pg, qg
load [n_load, 2]: pd_served, qd_served
| Attribute |
Type |
Description |
scenario_id |
Int32 |
Unique scenario identifier |
n_contingencies |
Int32 |
Total contingencies analyzed |
n_pf_converged |
Int32 |
Number of PF that converged |
n_opf_converged |
Int32 |
Number of OPF that converged |
total_solve_time |
Float32 |
Sum of all solve times (seconds) |