Skip to content

Commit

Permalink
ensure reserve factor is honored even if not pre-existing
Browse files Browse the repository at this point in the history
  • Loading branch information
bknueven committed Jan 3, 2022
1 parent e28073f commit 05492ba
Showing 1 changed file with 10 additions and 3 deletions.
13 changes: 10 additions & 3 deletions prescient/engine/egret/egret_plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -391,9 +391,6 @@ def create_deterministic_ruc(options,
actuals_portion = 1-forecast_portion
forecast[t] = forecast_portion*forecast[t] + actuals_portion*actuals[t]

# Ensure the reserve requirement is satisfied
_ensure_reserve_factor_honored(options, md, range(forecast_request_count))

if infer_second_day:
for infer_type, vals in get_forecastables_with_inferral_method(md):
for t in range(24, ruc_horizon):
Expand All @@ -404,6 +401,9 @@ def create_deterministic_ruc(options,
# Repeat the final value from day 1
vals[t] = vals[23]

# Ensure the reserve requirement is satisfied
_ensure_reserve_factor_honored(options, md, range(ruc_horizon))

return md


Expand Down Expand Up @@ -660,6 +660,13 @@ def _ensure_reserve_factor_honored(options:Options, md:EgretModel, time_periods:
'''
if options.reserve_factor > 0:
reserve_factor = options.reserve_factor
if 'reserve_requirement' not in md.data['system']:
md.data['system']['reserve_requirement'] = 0.
if not isinstance(md.data['system']['reserve_requirement'], dict):
fixed_requirement = md.data['system']['reserve_requirement']
md.data['system']['reserve_requirement'] = \
{ 'data_type' : 'time_series',
'values' : [fixed_requirement for _ in time_periods] }
reserve_reqs = md.data['system']['reserve_requirement']['values']
for t in time_periods:
total_load = sum(bdata['p_load']['values'][t]
Expand Down

0 comments on commit 05492ba

Please sign in to comment.