@@ -34,81 +34,79 @@ function parse_network(source; v::Union{Integer,Nothing}=nothing)
34
34
@debug 1 " Set version = $version "
35
35
36
36
# Skip the 2 lines of comments
37
- # TODO : confirm it is always only and exactly 2 lines of comments
38
37
pos = next_line (bytes, pos, len)
39
38
pos = next_line (bytes, pos, len)
40
39
@debug 1 " Parsed comments: pos = $pos "
41
-
42
- BusesV = ifelse (is_v33, Buses33, Buses30)
43
- buses, pos = parse_records! (BusesV (len÷ 1000 ), bytes, pos, len, OPTIONS)
44
- nbuses = length (buses)
45
- @debug 1 " Parsed Buses: nrows = $nbuses , pos = $pos "
46
-
47
- loads, pos = parse_records! (Loads (nbuses), bytes, pos, len, OPTIONS)
48
- @debug 1 " Parsed Loads: nrows = $(length (loads)) , pos = $pos "
49
-
50
- if is_v33
51
- fixed_shunts, pos = parse_records! (FixedShunts (), bytes, pos, len, OPTIONS)
52
- @debug 1 " Parsed FixedShunts: nrows = $(length (fixed_shunts)) , pos = $pos "
40
+ return if is_v33
41
+ parse_network33 (source, version, caseid, bytes, pos, len, OPTIONS)
53
42
else
54
- fixed_shunts = nothing
43
+ parse_network30 (source, version, caseid, bytes, pos, len, OPTIONS)
55
44
end
45
+ end
56
46
57
- gens, pos = parse_records! (Generators (nbuses÷ 10 ), bytes, pos, len, OPTIONS)
47
+ function parse_network33 (source, version, caseid, bytes, pos, len, options)
48
+ buses, pos = parse_records! (Buses33 (len÷ 1000 ), bytes, pos, len, options)
49
+ nbuses = length (buses)
50
+ loads, pos = parse_records! (Loads (nbuses), bytes, pos, len, options)
51
+ fixed_shunts, pos = parse_records! (FixedShunts (), bytes, pos, len, options)
52
+ gens, pos = parse_records! (Generators (nbuses÷ 10 ), bytes, pos, len, options)
58
53
ngens = length (gens)
59
- @debug 1 " Parsed Generators: nrows = $ngens , pos = $pos "
60
-
61
- BranchesV = ifelse (is_v33, Branches33, Branches30)
62
- branches, pos = parse_records! (BranchesV (nbuses), bytes, pos, len, OPTIONS)
63
- @debug 1 " Parsed Branches: nrows = $(length (branches)) , pos = $pos "
64
-
65
- transformers, pos = parse_records! (Transformers (ngens* 2 ), bytes, pos, len, OPTIONS)
66
- @debug 1 " Parsed Transformers: nrows = $(length (transformers)) , pos = $pos "
67
-
68
- interchanges, pos = parse_records! (AreaInterchanges (), bytes, pos, len, OPTIONS)
69
- @debug 1 " Parsed AreaInterchanges: nrows = $(length (interchanges)) , pos = $pos "
70
-
71
- TwoTerminalV = ifelse (is_v33, TwoTerminalDCLines33, TwoTerminalDCLines30)
72
- two_terminal_dc, pos = parse_records! (TwoTerminalV (), bytes, pos, len, OPTIONS)
73
- @debug 1 " Parsed TwoTerminalDCLines: nrows = $(length (two_terminal_dc)) , pos = $pos "
74
-
75
- vsc_dc, pos = parse_records! (VSCDCLines (), bytes, pos, len, OPTIONS)
76
- @debug 1 " Parsed VSCDCLines: nrows = $(length (vsc_dc)) , pos = $pos "
77
-
78
- if ! is_v33
79
- switched_shunts, pos = parse_records! (SwitchedShunts30 (nbuses÷ 11 ), bytes, pos, len, OPTIONS)
80
- @debug 1 " Parsed SwitchedShunts: nrows = $(length (switched_shunts)) , pos = $pos "
81
- end
82
-
83
- impedance_corrections, pos = parse_records! (ImpedanceCorrections (), bytes, pos, len, OPTIONS)
84
- @debug 1 " Parsed ImpedanceCorrections: nrows = $(length (impedance_corrections)) , pos = $pos "
85
-
86
- I = is_v33 ? DCLineID33 : DCLineID30
87
- multi_terminal_dc, pos = parse_records! (MultiTerminalDCLines {I} (), bytes, pos, len, OPTIONS)
88
- @debug 1 " Parsed MultiTerminalDCLines: nrows = $(length (multi_terminal_dc)) , pos = $pos "
89
-
90
- MultiSectionLineGroupsV = is_v33 ? MultiSectionLineGroups33 : MultiSectionLineGroups30
91
- multi_section_lines, pos = parse_records! (MultiSectionLineGroupsV (), bytes, pos, len, OPTIONS)
92
- @debug 1 " Parsed MultiSectionLineGroups: nrows = $(length (multi_section_lines)) , pos = $pos "
93
-
94
- zones, pos = parse_records! (Zones (), bytes, pos, len, OPTIONS)
95
- @debug 1 " Parsed Zones: nrows = $(length (zones)) , pos = $pos "
96
-
97
- area_transfers, pos = parse_records! (InterAreaTransfers (), bytes, pos, len, OPTIONS)
98
- @debug 1 " Parsed InterAreaTransfers: nrows = $(length (area_transfers)) , pos = $pos "
99
-
100
- owners, pos = parse_records! (Owners (), bytes, pos, len, OPTIONS)
101
- @debug 1 " Parsed Owners: nrows = $(length (owners)) , pos = $pos "
102
-
103
- FACTSDevicesV = ifelse (is_v33, FACTSDevices33, FACTSDevices30)
104
- facts, pos = parse_records! (FACTSDevicesV (), bytes, pos, len, OPTIONS)
105
- @debug 1 " Parsed FACTSDevices: nrows = $(length (facts)) , pos = $pos "
106
-
107
- if is_v33
108
- switched_shunts, pos = parse_records! (SwitchedShunts33 (nbuses÷ 11 ), bytes, pos, len, OPTIONS)
109
- @debug 1 " Parsed SwitchedShunts: nrows = $(length (switched_shunts)) , pos = $pos "
110
- end
54
+ branches, pos = parse_records! (Branches33 (nbuses), bytes, pos, len, options)
55
+ transformers, pos = parse_records! (Transformers (ngens* 2 ), bytes, pos, len, options)
56
+ interchanges, pos = parse_records! (AreaInterchanges (), bytes, pos, len, options)
57
+ two_terminal_dc, pos = parse_records! (TwoTerminalDCLines33 (), bytes, pos, len, options)
58
+ vsc_dc, pos = parse_records! (VSCDCLines (), bytes, pos, len, options)
59
+ impedance_corrections, pos = parse_records! (ImpedanceCorrections (), bytes, pos, len, options)
60
+ multi_terminal_dc, pos = parse_records! (MultiTerminalDCLines {DCLineID33} (), bytes, pos, len, options)
61
+ multi_section_lines, pos = parse_records! (MultiSectionLineGroups33 (), bytes, pos, len, options)
62
+ zones, pos = parse_records! (Zones (), bytes, pos, len, options)
63
+ area_transfers, pos = parse_records! (InterAreaTransfers (), bytes, pos, len, options)
64
+ owners, pos = parse_records! (Owners (), bytes, pos, len, options)
65
+ facts, pos = parse_records! (FACTSDevices33 (), bytes, pos, len, options)
66
+ switched_shunts, pos = parse_records! (SwitchedShunts33 (nbuses÷ 11 ), bytes, pos, len, options)
67
+ return Network (
68
+ version,
69
+ caseid,
70
+ buses,
71
+ loads,
72
+ fixed_shunts,
73
+ gens,
74
+ branches,
75
+ transformers,
76
+ interchanges,
77
+ two_terminal_dc,
78
+ vsc_dc,
79
+ switched_shunts,
80
+ impedance_corrections,
81
+ multi_terminal_dc,
82
+ multi_section_lines,
83
+ zones,
84
+ area_transfers,
85
+ owners,
86
+ facts,
87
+ )
88
+ end
111
89
90
+ function parse_network30 (source, version, caseid, bytes, pos, len, options)
91
+ buses, pos = parse_records! (Buses30 (len÷ 1000 ), bytes, pos, len, options)
92
+ nbuses = length (buses)
93
+ loads, pos = parse_records! (Loads (nbuses), bytes, pos, len, options)
94
+ fixed_shunts = nothing
95
+ gens, pos = parse_records! (Generators (nbuses÷ 10 ), bytes, pos, len, options)
96
+ ngens = length (gens)
97
+ branches, pos = parse_records! (Branches30 (nbuses), bytes, pos, len, options)
98
+ transformers, pos = parse_records! (Transformers (ngens* 2 ), bytes, pos, len, options)
99
+ interchanges, pos = parse_records! (AreaInterchanges (), bytes, pos, len, options)
100
+ two_terminal_dc, pos = parse_records! (TwoTerminalDCLines30 (), bytes, pos, len, options)
101
+ vsc_dc, pos = parse_records! (VSCDCLines (), bytes, pos, len, options)
102
+ switched_shunts, pos = parse_records! (SwitchedShunts30 (nbuses÷ 11 ), bytes, pos, len, options)
103
+ impedance_corrections, pos = parse_records! (ImpedanceCorrections (), bytes, pos, len, options)
104
+ multi_terminal_dc, pos = parse_records! (MultiTerminalDCLines {DCLineID30} (), bytes, pos, len, options)
105
+ multi_section_lines, pos = parse_records! (MultiSectionLineGroups30 (), bytes, pos, len, options)
106
+ zones, pos = parse_records! (Zones (), bytes, pos, len, options)
107
+ area_transfers, pos = parse_records! (InterAreaTransfers (), bytes, pos, len, options)
108
+ owners, pos = parse_records! (Owners (), bytes, pos, len, options)
109
+ facts, pos = parse_records! (FACTSDevices30 (), bytes, pos, len, options)
112
110
return Network (
113
111
version,
114
112
caseid,
@@ -129,7 +127,6 @@ function parse_network(source; v::Union{Integer,Nothing}=nothing)
129
127
area_transfers,
130
128
owners,
131
129
facts,
132
- # gne_devices,
133
130
)
134
131
end
135
132
@@ -144,6 +141,7 @@ function parse_records!(rec::R, bytes, pos, len, options)::Tuple{R, Int} where {
144
141
_, pos = parse_row! (rec, bytes, pos, len, options)
145
142
end
146
143
pos = next_line (bytes, pos, len) # Move past a "0 bus" line.
144
+ @debug 1 " Parsed $R : nrows = $(length (rec)) , pos = $pos "
147
145
return rec, pos
148
146
end
149
147
0 commit comments