1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
// SPDX-License-Identifier: LicenseRef-PolyForm-Noncommercial-1.0.0
//! Time-series profile types — hourly load and renewable capacity factor data.
//!
//! Used by `surge-io` profile readers and the Python bindings.
//!
//! ## Stable identifiers
//!
//! All profile types use **stable external identifiers** rather than internal
//! array indices. Generator-targeted profiles use canonical generator IDs;
//! branch-targeted profiles use `(from_bus, to_bus, circuit)`.
use ;
// ---------------------------------------------------------------------------
// Load profiles
// ---------------------------------------------------------------------------
/// Hourly load profile for a single bus.
/// Collection of load profiles across buses.
// ---------------------------------------------------------------------------
// Renewable profiles
// ---------------------------------------------------------------------------
/// Hourly capacity factor profile for a renewable generator.
/// Collection of renewable profiles.
// ---------------------------------------------------------------------------
// Generator derate profiles
// ---------------------------------------------------------------------------
/// Per-interval derate factor for a single generator.
///
/// A derate factor of `1.0` means full nameplate capacity is available.
/// A derate factor of `0.5` means 50% of nameplate is available (partial outage).
/// A derate factor of `0.0` means the unit is fully offline (forced outage).
///
/// Applied *before* renewable capacity factors so that
/// `pmax_effective = pmax_nameplate × derate × cf`.
/// Collection of generator derate profiles.
// ---------------------------------------------------------------------------
// Branch derate profiles
// ---------------------------------------------------------------------------
/// Per-interval derate factor for a single branch.
///
/// A derate factor of `1.0` leaves the thermal rating (`rate_a`) unchanged.
/// A derate factor in `(0, 1)` tightens the thermal limit proportionally
/// (e.g., seasonal ambient-adjusted ratings).
/// A derate factor of `0.0` marks the branch as out of service for that interval.
/// Collection of branch derate profiles.
// ---------------------------------------------------------------------------
// HVDC derate profiles
// ---------------------------------------------------------------------------
/// Per-interval derate factor for a single HVDC link.
///
/// A derate factor of `1.0` leaves the scheduled setpoint unchanged.
/// A derate factor in `(0, 1)` reduces the transfer capacity proportionally.
/// A derate factor of `0.0` takes the link fully out of service for that interval.
/// Collection of HVDC derate profiles.