...
Table of Contents |
---|
Introduction
The
whatif-templates based setup
...
(since 2020.02) is
...
- WhatIf's should be intuitive to work with
- 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
...
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.
WhatIf Editor: only activated for IFD segment nodes associated with a whatifTemplate
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.
...
WhatIf Editor: Create button
After
...
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 or properties referencing config files can be selected via a dropdown box.
A whatif-template can also reference modifierTypes. For each configured modifierType, a dropdown will be shown listing the names of the modifiers available for selection.
the user has filled in the Name field, the Create button is enabled.
With the Create button, the what-if
...
WhatIf Editor: Apply button
...
instance is created and added with a specific WhatIf
...
icon (
...
see below) under the segment node.
...
As you can see, when this whatif-node is selected in the tree, the Create button has changed in a Copy button.
...
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.
Info |
---|
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)
...
- white/blue: whatif specified, not executed (can still be adjusted)
- blue/white: whatif locally executed (can still be adjusted)
- green/white: whatif executed and persistently save in database (cannot be adjsuted anymore)
- red: whatif run failed
- yellow/blue: whatif has been adjusted after local execution
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:
...
WhatIf Editor: 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 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)
...
WhatIf Editor: compare inputs
- the last run executed at another T0 has failed.
...
icon | foreground | background | status | location | adjustable |
---|---|---|---|---|---|
blue | on white | specified, not executed | local | yes | |
green | on white | specified, not executed | persistent | fixed | |
white | on blue | executed | local | yes | |
white | on green | executed | persistent | fixed | |
blue | on yellow | adjusted after execution | local | ||
green | on yellow | adjusted after execution | persistent | ||
blue | on grey | T0 different | local | yes | |
green | on grey | T0 different | persistent | fixed | |
white | on red | failed | - | ||
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.