The whatif-templates based setup introduced in release 2020.02 is designed with the following wishes in mind:

  • 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

To meet those wishes, 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

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


WhatIf Editor: Create button

If the segment node allows the creation of a whatif-instance, the name and description field are enabled. When the user has filled in the name, the Create button is enabled. After pressing the Create button, the what-if instance is created and added with a specific WhatIf icon (white background and a bleu hammer/wrench) 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 explain on this page.

Once created, a Delete button is activated to allow deletion of the whatif. 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.


WhatIf Editor: Specifying the what-if content : 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.


WhatIf Editor: Specifying the what-if content : 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.

WhatIf Editor: Specifying the what-if content : 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.



WhatIf Editor: 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.


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.

Whatif icons can have various backgrounds/foregrounds (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 saved in database (cannot be adjusted anymore)
  • red: whatif run failed
  • yellow/blue: whatif has been adjusted after local execution

Note: a when the T0 of the run has changed compared to previous runs, segment nodes will change according to their normal status update. A segment node with a black icon background indicates that the last run executed at another T0 has failed. A segment node with a grey background indicates that the last run executed at another T0 was successful. The color of the check indicates whether this run was local (blue), persistent (green) or the settings have changed (yellow).

WhatIf Editor: 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




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 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) 


WhatIf Editor: compare 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.

Showing WhatIf results:

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.

WhatIf: compare outputs (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.


WhatIf: compare output (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