Configuration Options
Overview
Prescient configuration options are used to indicate how the Prescient simulation should be run. Configuration options can be specified on the command line, in a text configuration file, or in code, depending on how Prescient is launched (see Running Prescient).
Each configuration option has a name, a data type, and a default value. The name used on the command line and the name used in code vary slightly. For example, the number of days to simulate is specified as --num-days on the command line, and num_days in code.
Option Data Types
Most options use self-explanatory data types like String, Integer, and Float, but some data types require more explanation and may be specified in code in ways that are unavailable on the command line:
Data type |
Command-line/config file usage |
In-code usage |
---|---|---|
Path |
A text string that refers to a file or folder. Can be relative or absolute, and may include special characters such as ~. |
Same as command-line |
Date |
A string that can be converted to a date, such as 1776-07-04. |
Either a string or a datetime object. |
Flag |
Simply include the option to set it to true. For example, the command below sets simulate_out_of_sample to true: runner.py --simulate-out-of-sample
|
Set the option by assigning True or False: config.simulate_out_of_sample = True
|
Module |
Refer to a python module in one of the following ways:
|
In addition to the two string options available to the command-line, code may also use a python module object. For example: import my_custom_data_provider
config.data_provider = my_custom_data_provider
|
List of Configuration Options
The table below describes all available configuration options.
Command-line Option |
In-Code Configuration Property |
Argument |
Description |
---|---|---|---|
--config-file |
config_file |
Path. Default=None. |
Path to a file holding configuration options. Can be absolute or relative. Cannot be set in code directly on a configuration object, but can be passed to a configuration object’s parse_args() function: p = Prescient()
p.config.parse_args(["--config-file", "my-config.txt"])
See Launch with runner.py for a description of configuration file syntax. |
General Options |
|||
--start-date |
start_date |
Date. Default=2020-01-01. |
The start date for the simulation. |
--num-days |
num_days |
Integer. Default=7 |
The number of days to simulate. |
Data Options |
|||
--data-path or --data-directory |
data_path |
Path. Default=input_data. |
Path to a file or folder where input data is located. Whether it should be a file or a folder depends on the input format. See Input Data. |
--input-format |
input_format |
String. Default=dat. |
The format of the input data. Valid values are dat and rts_gmlc. Ignored when using a custom data provider. See Input Data. |
--data-provider |
data_provider |
Module. Default=No custom data provider. |
A python module with a custom data provider that will supply data to Prescient during the simulation. Don’t specify this option unless you are using a custom data provider; use data_path and input_format instead. See Custom Data Providers. |
--output-directory |
output_directory |
Path. Default=outdir. |
The path to the root directory to which all generated simulation output files and associated data are written. |
RUC Options |
|||
--ruc_every-hours |
ruc_every_hours |
Integer. Default=24 |
How often a RUC is executed, in hours. Default is 24. Must be a divisor of 24. |
--ruc-execution-hour |
ruc_execution_hour |
Integer. Default=16 |
Specifies an hour of the day the RUC process is executed. If multiple RUCs are executed each day (because ruc_every_hours is less than 24), any of the execution times may be specified. Negative values indicate hours before midnight, positive after. |
--ruc-horizon |
ruc_horizon |
Integer. Default=48 |
The number of hours to include in each RUC. Must be >= ruc_every_hours and <= 48. |
--ruc-prescience-hour |
ruc_prescience_hour |
Integer. Default=0. |
The number of initial hours of each RUC in which linear blending of forecasts and actual values is done, making some near-term forecasts more accurate. |
--run-ruc-with-next-day-data |
run_ruc_with_next_day_data |
Flag. Default=false. |
If false (the default), never use more than 24 hours of forecast data even if the RUC horizon is longer than 24 hours. Instead, infer values beyond 24 hours. If true, use forecast data for the full RUC horizon. |
--simulate-out-of-sample |
simulate_out_of_sample |
Flag. Default=false. |
If false, use forecast input data as both forecasts and actual values; the actual value input data is ignored. If true, values for the current simulation time are taken from the actual value input, and actual values are used to blend near-term values if ruc_prescience_hour is non-zero. |
--ruc-network-type |
ruc_network_type |
String. Default=ptdf. |
Specifies how the network is represented in RUC models. Choices are: * ptdf – power transfer distribution factor representation * btheta – b-theta representation |
--ruc-slack-type |
ruc_slack_type |
String. Default=every-bus. |
Specifies the type of slack variables to use in the RUC model formulation. Choices are: * every-bus – slack variables at every system bus * ref-bus-and-branches – slack variables at only reference bus and each system branch |
--deterministic-ruc-solver |
deterministic_ruc_solver |
String. Default=cbc. |
The name of the solver to use for RUCs. |
--deterministic-ruc-solver-options |
deterministic_ruc_solver_options |
String. Default=None. |
Solver options applied to all RUC solves. |
--ruc-mipgap |
ruc_mipgap |
Float. Default=0.01. |
The mipgap for all deterministic RUC solves. |
--output-ruc-initial-conditions |
output_ruc_initial_conditions |
Flag. Default=false. |
Print initial conditions to stdout prior to each RUC solve. |
--output-ruc-solutions |
output_ruc_solutions |
Flag. Default=false. |
Print RUC solution to stdout after each RUC solve. |
--write-deterministic-ruc-instances |
write_deterministic_ruc_instances |
Flag. Default=false. |
Save each individual RUC model to a file. The date and time the RUC was executed is indicated in the file name. |
--deterministic-ruc-solver-plugin |
deterministic_ruc_solver_plugin |
Module. Default=None. |
If the user has an alternative method to solve RUCs, it should be specified here, e.g., my_special_plugin.py. Note This option is ignored if --simulator-plugin is used. |
SCED Options |
|||
--sced-frequency-minutes |
sced_frequency_minutes |
Integer. Default=60. |
How often a SCED will be run, in minutes. Must divide evenly into 60, or be a multiple of 60. |
--sced-horizon |
sced_horizon |
Integer. Default=1 |
The number of time periods to include in each SCED. Must be at least 1. |
--run-sced-with-persistent-forecast-errors |
run_sced_with_persistent_forecast_errors |
Flag. Default=false. |
If true, then values in SCEDs use persistent forecast errors. If false, all values in SCEDs use actual values for all time periods, including future time periods. See Forecast Smoothing. |
--enforce-sced-shutdown-ramprate |
enforce_sced_shutdown_ramprate |
Flag. Default=false. |
Enforces shutdown ramp-rate constraints in the SCED. Enabling this option requires a long SCED look-ahead (at least an hour) to ensure the shutdown ramp-rate constraints can be statisfied. |
--sced-network-type |
sced_network_type |
String. Default=ptdf. |
Specifies how the network is represented in SCED models. Choices are: * ptdf – power transfer distribution factor representation * btheta – b-theta representation |
--sced-slack-type |
sced_slack_type |
String. Default=every-bus. |
Specifies the type of slack variables to use in SCED models. Choices are: * every-bus – slack variables at every system bus * ref-bus-and-branches – slack variables at only reference bus and each system branch |
--sced-solver |
sced_solver |
String. Default=cbc. |
The name of the solver to use for SCEDs. |
--sced-solver-options |
sced_solver_options |
String. Default=None. |
Solver options applied to all SCED solves. |
--print-sced |
print_sced |
Flag. Default=false. |
Print results from SCED solves to stdout. |
--output-sced-initial-conditions |
output_sced_initial_conditions |
Flag. Default=false. |
Print SCED initial conditions to stdout prior to each solve. |
--output-sced-loads |
output_sced_loads |
Flag. Default=false. |
Print SCED loads to stdout prior to each solve. |
--write-sced-instances |
write_sced_instances |
Flag. Default=false. |
Save each individual SCED model to a file. The date and time the SCED was executed is indicated in the file name. |
Output Options |
|||
--disable-stackgraphs |
disable_stackgraphs |
Flag. Default=false. |
Disable stackgraph generation. |
--output-max-decimal-places |
output_max_decimal_places |
Integer. Default=6. |
The number of decimal places to output to summary files. Output is rounded to the specified accuracy. |
--output-solver-logs |
output_solver_logs |
Flag. Default=false. |
Whether to print solver logs to stdout during execution. |
Miscellaneous Options |
|||
--reserve-factor |
reserve_factor |
Float. Default=0.0. |
The reserve factor, expressed as a constant fraction of demand, for spinning reserves at each time period of the simulation. Applies to both RUC and SCED models. |
--no-startup-shutdown-curves |
no_startup_shutdown_curves |
Flag. Default=False. |
If true, then do not infer startup/shutdown ramping curves when starting-up and shutting-down thermal generators. |
--symbolic-solver-labels |
symbolic_solver_labels |
Flag. Default=False. |
Whether to use symbol names derived from the model when interfacing with the solver. |
--enable-quick-start-generator-commitment |
enable_quick_start_generator_commitment |
Flag. Default=False. |
Whether to allow quick start generators to be committed if load shedding would otherwise occur. |
Market and Pricing Options |
|||
--compute-market-settlements |
compute_market_settlements |
Flag. Default=False. |
Whether to solve a day-ahead market as well as real-time market and report the daily profit for each generator based on the computed prices. |
--day-ahead-pricing |
day_ahead_pricing |
String. Default=aCHP. |
The pricing mechanism to use for the day-ahead market. Choices are: * LMP – locational marginal price * ELMP – enhanced locational marginal price * aCHP – approximated convex hull price. |
--price-threshold |
price_threshold |
Float. Default=10000.0. |
Maximum possible value the price can take. If the price exceeds this value due to Load Mismatch, then it is set to this value. |
--reserve-price-threshold |
reserve_price_threshold |
Float. Default=10000.0. |
Maximum possible value the reserve price can take. If the reserve price exceeds this value, then it is set to this value. |
Plugin Options |
|||
--plugin |
plugin |
Module. Default=None. |
Python plugins are analyst-provided code that Prescient calls at various points in the simulation process. See Customizing Prescient with Plugins for details. After Prescient has been initialized, the configuration object’s plugin property holds plugin-specific setting values. |
--simulator-plugin |
simulator_plugin |
Module. Default=None. |
A module that implements the engine interface. Use this option to replace methods that setup and solve RUC and SCED models with custom implementations. |