Skip to content

Commit 525fca9

Browse files
authored
Merge pull request #127 from REAM-lab/database/transmission_fix
Script to fix derating factor for transmission lines
2 parents 8f1cb6f + e76fd82 commit 525fca9

File tree

3 files changed

+106
-12
lines changed

3 files changed

+106
-12
lines changed
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
-- October 12, 2022
2+
-- Author: pesap
3+
4+
-- Reason: We detected a type in the transmission derating factor for all the transmission
5+
-- lines for the WECC model. This is the description in the switch module of what the
6+
-- transmission derate factor does: trans_derating_factor[tx in TRANSMISSION_LINES] is an
7+
-- overall derating factor for each transmission line that can reflect forced outage
8+
-- rates, stability or contingency limitations. This parameter is optional and defaults to
9+
-- 1. This parameter should be in the range of 0 to 1, being 0 a value that disables the
10+
-- line completely.
11+
-- In our scenarios we have been using 0.59 for no apparent reason and this limited the
12+
-- amount of electricity that flow throught the transmission line. The new value that we
13+
-- will use for the scenarios is 0.95 or a 5% derate.
14+
15+
alter table
16+
switch.transmission_lines
17+
add
18+
column transmission_scenario_id int;
19+
20+
alter table
21+
switch.scenario
22+
add
23+
column transmission_scenario_id int;
24+
25+
UPDATE switch.transmission_lines SET transmission_scenario_id = 1;
26+
UPDATE switch.scenario SET transmission_scenario_id = 1;
27+
28+
alter table switch.transmission_lines drop constraint transmission_lines_pkey;
29+
30+
insert into switch.transmission_lines(
31+
transmission_line_id, start_load_zone_id,
32+
end_load_zone_id, trans_length_km,
33+
trans_efficiency, existing_trans_cap_mw,
34+
new_build_allowed, derating_factor,
35+
terrain_multiplier, transmission_cost_econ_multiplier,
36+
transmission_scenario_id
37+
)
38+
select
39+
transmission_line_id,
40+
start_load_zone_id,
41+
end_load_zone_id,
42+
trans_length_km,
43+
trans_efficiency,
44+
existing_trans_cap_mw,
45+
new_build_allowed,
46+
0.95 as derating_factor,
47+
terrain_multiplier,
48+
transmission_cost_econ_multiplier,
49+
2 as transmission_scenario_id
50+
from
51+
switch.transmission_lines;
52+
53+
insert into switch.scenario
54+
values (179,
55+
'[LDES and SWITCH_WEAP]',
56+
'Baseline scenario with 0 carbon cap for WECC and CA by 2045, 15% PRM, updated 2 days per month sampling and tranmission_line scenario',
57+
17, -- study_timeframe_id
58+
16, -- time_sample_id
59+
115, -- demand_scenario_id
60+
4, -- fuel_simple_price_scenario, without Bio_Solid costs, because they are provided by supply curve
61+
23, -- generation_plant_scenario_id
62+
25, -- generation_plant_cost_scenario_id
63+
21, -- generation_plant_existing_and_planned_scenario_id
64+
23, -- hydro_simple_scenario_id
65+
92, -- carbon_cap_scenario_id
66+
2, -- supply_curve_scenario_id
67+
1, -- regional_fuel_market_scenario_id
68+
NULL, -- rps_scenario_id
69+
NULL, --enable_dr
70+
NULL, --enable_ev
71+
2, --transmission_base_capital_cost_scenario_id
72+
NULL, --ca_policies_scenario_id
73+
1, --enable_planning_reserves
74+
2, --generation_plant_technologies_scenario_id
75+
3, --variable_o_m_cost_scenario_id
76+
NULL,--wind_to_solar_ratio
77+
2 --tranmission_scenario_id
78+
);

switch_model/wecc/get_inputs/get_inputs.py

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -315,16 +315,32 @@ def query_db(config, skip_cf):
315315
"trans_terrain_multiplier",
316316
"trans_new_build_allowed",
317317
],
318-
"""
319-
SELECT start_load_zone_id || '-' || end_load_zone_id, t1.name, t2.name,
320-
trans_length_km, trans_efficiency, existing_trans_cap_mw, transmission_line_id,
321-
derating_factor, terrain_multiplier * transmission_cost_econ_multiplier as terrain_multiplier,
322-
new_build_allowed
323-
FROM transmission_lines
324-
join load_zone as t1 on(t1.load_zone_id=start_load_zone_id)
325-
join load_zone as t2 on(t2.load_zone_id=end_load_zone_id)
326-
WHERE start_load_zone_id < end_load_zone_id
327-
ORDER BY 2,3;
318+
f"""
319+
SELECT
320+
start_load_zone_id || '-' || end_load_zone_id,
321+
t1.name,
322+
t2.name,
323+
trans_length_km,
324+
trans_efficiency,
325+
existing_trans_cap_mw,
326+
transmission_line_id,
327+
derating_factor,
328+
terrain_multiplier * transmission_cost_econ_multiplier as terrain_multiplier,
329+
new_build_allowed
330+
FROM
331+
switch.transmission_lines
332+
join switch.load_zone as t1 on(
333+
t1.load_zone_id = start_load_zone_id
334+
)
335+
join switch.load_zone as t2 on(
336+
t2.load_zone_id = end_load_zone_id
337+
)
338+
WHERE
339+
start_load_zone_id < end_load_zone_id and
340+
transmission_scenario_id = {params.transmission_scenario_id}
341+
ORDER BY
342+
2,
343+
3;
328344
""",
329345
)
330346

@@ -337,10 +353,9 @@ def query_db(config, skip_cf):
337353
"trans_lifetime_yrs",
338354
"trans_fixed_om_fraction",
339355
],
340-
# See Issue #80 for reasoning behind the 85 year lifetime.
341356
f"""
342357
SELECT trans_capital_cost_per_mw_km,
343-
85 as trans_lifetime_yrs,
358+
25 as trans_lifetime_yrs,
344359
0.03 as trans_fixed_om_fraction
345360
FROM transmission_base_capital_cost
346361
WHERE transmission_base_capital_cost_scenario_id = {params.transmission_base_capital_cost_scenario_id}

switch_model/wecc/get_inputs/scenario.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ def __init__(self, scenario_id=None):
2525
self.generation_plant_technologies_scenario_id = None
2626
self.variable_o_m_cost_scenario_id = None
2727
self.wind_to_solar_ratio = None
28+
self.transmission_scenario_id = None
2829

2930

3031
def load_scenario_from_config(config, db_cursor) -> ScenarioParams:

0 commit comments

Comments
 (0)