Weather Simulations Forecast Logic

The following outlines the forecast logic for executing a simulation. If multiple simulations are selected in the UI, the list of simulations is the outer-most loop in the forecast logic. The Active flag is ignored when executing a simulation through the user interface. Only Active simulations are executed by a scheduled process.

Simulation Scenarios.

In the Simulation Module the term Simulation Scenarios means the list of forecast calculations to be executed. There is a base or reference scenario, which is called the Expected Case, and there is a list of alternative scenarios. The Expected Case uses model inputs from the Weather Module and the XDrivers Module. The alternative scenarios are defined in the Simulation Module, and these scenarios use weather and XDriver data that is imported specifically for the alternative scenarios. So, if there are four alternative scenarios defined in the Simulation Module, there are five sets of forecasts executed for each Simulation object (the Expected Case and the four alternative scenarios).

Simulation Object Properties

Simulation object properties that impact the calculation logic are discussed here. These properties can be seen on the List Tab in the parent row of each Simulation object.

  • Expected Case Only setting. If this Simulation property is checked, then when the simulation is executed, forecast calculations are only made for the Expected Case, regardless of the how the Active flags are set in the Manage Simulation Scenarios dialog. Use this setting to save time when testing Expected Case configuration data.
  • Weather Scenario. This Simulation property determines which Weather Scenario defined in the Weather Module is to be used in the Expected Case forecast calculations.
  • Use Actual Driver Data. This Simulation property impacts the weather data that are used in simulation calculations that cover historical days for which actual weather data are available. If this property is checked, the Actual data will be used for historical periods and the Scenario weather data will be used for forecast periods. This does not impact the XDriver values used in each Simulation Scenario.

Schedule Assignment Properties.

For each Simulation object, the list of contributing Schedules can be seen by pressing the expander (+) button on the List Tab.

  • Multiplier. When a simulation is executed, forecasts are generated for each contributing schedule and an overall total is computed for the Simulation object. The schedule multiplier is a weight that is applied when the results are added across schedules. This will usually be set to 1.0.
  • Use Expected Case. This is a property of each Schedule that contributes to a Simulation. If this flag is checked for a Schedule, only the Expected Case forecast is executed for that Schedule. When totals are calculated across the Simulation contributors, the Expected Case forecast for that Schedule will be included in the totals for the Expected Case and for the alternative scenarios as well. When a Schedule is inserted as a contributor to a Simulation, the Use Expected Case flag is checked. The user will eventually want to uncheck this flag in most cases.

Scenario Properties.

Simulation Scenarios are defined on the Manage Simulation Scenarios dialog, which is accessed through the Tools menu. This dialog includes two properties that impact the calculation logic.

  • Scenario Active Flag. This flag determines whether calculations are made for an alternative scenario when a Simulation is executed. When a Simulation is executed, forecast results are calculated for the Expected Case and for the list of alternative scenarios for which Active is checked. For example, if the list has four scenarios named (S1, S2, S3, and S4), and only S1 and S3 have Active checked, then three forecast calculations will be made: Expected Case, S1, and S3.
  • Scenario Display Order. The Display Order is a property of each alternative scenario. The Display Order is used as the calculation order. When a Simulation calculation is made, the Expected Case forecast is calculated first, followed by the scenario cases calculated in Display Order from lowest to highest.

The Expected Case

The Expected Case forecast is always calculated when a Simulation object is run. The weather data provided to models used in the calculations come from the Weather Module Scenario that is assigned to Simulation object. If UseActualDriverData is checked for the Simulation object, actual weather data will be used where it is available. For the Expected Cast, XDriver data from the XDriver module are used.

Alternative Scenario Cases

The alternative scenario forecasts are calculated when a Simulation object is run and the ExpectedCaseOnly flag is not checked. The weather data provided to models used in the calculations are the values that have been imported into the Scenarios that are defined in the Simulation module. If UseActualDriverData is checked for the Simulation object, actual weather data will be used where it is available. The XDriver data provided to models used in the calculations are the values that have been imported into the Scenarios that are defined in the Simulations module. If the weather concepts or XDrivers required by the models have not been imported into the Scenarios, the forecast calculations will return missing values.

Simulation Calculation Logic

The following provides a summary of the calculation logic. The logic applies separately to each Simulation object.

  1. Loop over the scenarios:

    Expected Case is always included. If ExpectedCaseOnly is unchecked for the Simulation, also include Alternative Scenarios for which the Active Flag is checked.

    1. Loop over Schedules in the Simulation

      • Loop over the list of models needed for the current schedule. This includes any models required by sub schedules that are contributors to the top-level schedule.

      • Compute the Model forecast for the Expected Case using weather data from the Weather Module Scenario that is assigned. Use XDriver data from the XDriver Module.

      • If ExpectedCaseOnly is not checked, compute model forecasts for the alternative scenarios. Use the weather data that has been imported for each scenario. Use the XDriver data that has been imported for each scenario.

      • Insert the Model results into the SimResults table.

      • Check to see if the Model is a contributor to any Archive rule with an XDriver as a destination node. If so, archive the model forecast to Simulation XDriverData table. For example, if ModelB uses an XDriver that is populated by ModelA, the ModelA forecast is archived to the SimXDriver table.

      • Compute any sub-schedules and insert results into the SimResults table.

      • Check to see if the sub-schedule is a contributor to any Archive rule with an XDriver as a destination node. If so, archive the sub-schedule forecast to the SimXDriverData table.

      • Compute the Schedule and insert the schedule results into the SimResults table.

      • Check to see if the schedule is a contributor of any Archive rule with an XDriver as a destination node. If so, archive the schedule forecast to SimXDriverData table.

      • Add Schedule forecasts into the Simulation total for the scenario. If any Schedule in the Simulation is marked as ExpectedCaseOnly, add the Expected Case results, otherwise add the alternative scenario results.

    2. Write Simulation total for the scenario to the SimResults table.