Introduction

The whatif-templates based setup (since 2020.02) is tightly linked to the Interactive Forecasting Display (IFD, see 23 Interactive Forecasting Displays). 
The whatif's are made explicitly visible and accessible via the IFD Forecast tree, while whatIf management is entirely controlled via the WhatIf Editor.
The IFD-configuration (topology.xml) specifies whether an IFD-segment node is associated with a whatif-template.

The whatif-templates based set up was designed with the following wishes in mind:

  • WhatIf should be easy to create, manipulate and manage
  • Whatif results should be easy accessible
  • WhatIf's should be comparable, both on the input side as on the output side

Whatif display - create whatif scenario

Create button

If the segment node allows the creation of a whatif-instance, the name and description field are enabled.

After the user has filled in the Name field, the Create button is enabled. 

With the Create button, the what-if instance is created and added with a specific WhatIf icon (see below) under the segment node. The cursor automatically selects this what-if node in the IFD-tree.

Once created, the button row changes. the new buttons are Copy, Save, Delete, Import and Export. Their behavior is explained below.

Only activated for IFD segment nodes associated with a whatifTemplate

If the segment node does not allow a whatif to be created, all options in the whatif-editor are disabled.

Save button

The Save button is available to save any adjustments made to the whatif-instance. Adjustments can be done as long as the whatif-instance has not been saved persistently to the database by execution at the server or (after a local run) pressing the Disk icon in the IFD to promote the local run to a persistent server run.

Copy button

When a whatif-node has been selected in the IFD-tree, the Create button has changed into a Copy button.

When pressing the Copy button, the settings of the selected whatif-instance are copied to a new instance. Any setting changed compared to the configuration is indicated by the bleu font. When pressing the Copy button, a child node is added to the whatif-node you copied from, while the what-if receives the default name 'Copy of...'.

Note: the parent-child organization is only visual and decided at creation time. Only at creation time, once can assume that the whatif-settings are the same. No facilities exist for moving child nodes from one parent to another parent or any other way of reorganizing the whatif-nodes in the tree

Delete button

WhatIf-instances can be deleted using the Delete button in the WhatIf Editor. When deleting a whatif a popup appears with three choices:

  • delete entire what-if (=delete whatif-instance holding the specification, delete associated taskrun and whatif-results)
  • preserve what-if definition (=delete whatif results, while preserving the whatif-instance holding the specification)
  • preserve modifiers associated with whatif (=delete whatif results, delete whatif-instance holding the specification, preserve any modifiers included) 

Note that non-persistent whatifs remain in the database, also after the application is exited.
As long as they are not run server side, they will only be available to the user who created this what-if.

Specifying the what-if content

What-if properties

After pressing the Create button, the what-if editor shows a table with the property-fields and/or modifiers to be specified. Within the WhatIfTemplate configuration, the data entry table may have been organized in subsections, separated by bold row indicators.

Integer, double and string properties can be entered in the text field. Min/max ranges may apply to the numeric values. Booleans properties can be manipulated via a checkbox. Properties with enumerated values, properties referencing configuration files or properties referencing associated whatif-instances can be selected via a dropdown box.

When pressing Save, the specified property settings are saved to the database.

Editing embedded modifiers

A whatif may also hold modifiers which are specifically associated with this whatif.

Timeseries modifies, typical profile modifiers and location attribute modifiers can be created inside the whatif editor by double clicking the wrench icon (pre 2024.01) or double clicking the modifier name (e.g. multiply by 1.5) defined inside the table. This unfolds a tab panel with editing options.

As soon as the Apply button of the modifier is pressed, the modifier content and the modifier-whatif association is saved to the database.

Copying existing modifiers

In some situations, you may want to reuse an existing modifier, either from another what-if, or you want to use a modifier which can not be edited in the what-if editor (e.g. a Spatial Modifier). In that case you double click the copy button:  (pre 2024.01) or double click the modifier name to open the lower panel with a list of the available modifiers of this type. The user can select the row with the appropriate modifier to copy, give it a new name and press the button with the word 'Copy' to create a copy of the modifier which is fixed to this what-if.

Running of what-if scenarios

Running (IFD)

Running a whatif is conducted via the normal run facilities in the IFD-tree. By pressing the Run button in the IFD-task tree, the workflow associated with the (parent) segment node is executed using the whatif-settings.

The icon status of the segment node will reflect the status of the last run. The icon status of the whatif-node will reflect the status of the whatif-run.

Icons and meaning

Whatif icons (hammer & wrench) have specific fore-/background colors.

The foreground color of the icon indicates whether this run was 

  • local (blue),
  • persistent (green) or the
  • settings have changed (yellow)

The background color represent the status of the node. Green/yellow status is based on graceTime relative to timeZero. 

  • grey background: the last run executed at another T0 was successful.
  • yellow background: something has changed, i.e. state, modifier or forecast length.  
  • black background: the last run executed at another T0 has failed. 
iconforegroundbackgroundstatuslocationadjustable

blueon whitespecified, not executed localyes

greenon whitespecified, not executed persistentfixed

whiteon blueexecuted localyes

whiteon greenexecutedpersistentfixed

blueon yellowadjusted after executionlocal

greenon yellowadjusted after executionpersistent

blueon greyT0 differentlocalyes

greenon greyT0 differentpersistentfixed

whiteon redfailed-



on black


View results

Inputs

WhatIfs can be compared by selecting multiple whatif-nodes having the same underlying whatif-template (typically two nodes within the same segment node).

When looking at the WhatIf Editor, the whatif-specifications will be placed next to each other in the table view.

Outputs

Whatif results can be accessed by selecting the whatif-node in the IFD-Task tree and navigating to the TimeSeriesDisplay or the Spatial Display.

The Display will only show the selected whatif(s). When selecting both the segment node and a whatif node, the results will be shown of the what-if in combination with the latest Local or Current run.

The Spatial Display always shows the results of the selected WhatIf if the gridplot to be visualized is generated by the workflow associated with the whatif. If the gridplot is generated by another workflow, the Current run of that workflow is shown.

TimeseriesDisplay

When looking at the Time Series Display, the selected runs (what-ifs, possibly in combination with the Current regular run) will be shown.

When the statistical function 'differences' is available, one can choose a 'base run' to compare the other runs against. Differences between runs can be shown either in absolute or relative terms.


Spatial Display

WhatIf results can be compared spatially by selecting two whatif-nodes (within the same segment node) or by selecting the segment node and one what-if node.

  • No labels