Scenario input sets allow you to easily keep model structure, while switching between groups of input data and parameters. These may be used to represent changeable physical attributes, such as climate, land use decisions or even proposed infrastructure characteristics. You can switch between different scenario input sets to compare the effects on a model. For example, you can have one scenario input set consisting of rainfall, inflow and evapotranspiration data for natural conditions, another for wet conditions and a third set for dry conditions.
...
Nodes.Wheat Fields.Inactive Demand Models.Irrigator #0.Crops.Wheat Crop.Planting Decision.Plant Date.Use Expression=False
Nodes.Wheat Fields.Inactive Demand Models.Irrigator #0.Crops.Wheat Crop.Planting Decision.Plant Date.Day=20
Nodes.Wheat Fields.Inactive Demand Models.Irrigator #0.Crops.Wheat Crop.Planting Decision.Plant Date.Month=12
You can also use scenario input sets to change the active demand model at a water user node, for example:
Nodes.Water User 3.Demand Model=MyInactiveDemandModel
If you wish to change some parameters in an inactive demand model, and also make it the active model, then you need to specify the parameter changes first. An example is shown in Figure 2 for the inactive demand model Irrigator #0.
...
Functions.Functions.$f_rain.Expression = {MultiLineValue}
// This is a comment in my function
IF($Now.Day = 30,
200,
0)
{/MultiLineValue}
...
The file-based parameter entry (shown in Figure 56) allows the specification of a file that will contain the element path and values. The formatting of this file must adhere to the same rules as the manual parameter set editor.
...
Figure 6. Input parameter set using a file
Viewing scenario input sets from node/link feature editors
Scenario input sets can also be viewed from the node or link feature editors as in Figure 7. The entire scenario input set tree can be viewed when a node or link feature editor is selected. By default, the lines (properties) which apply to the selected node or link are only shown and others are filtered out. The functionality 'All lines' shows all the lines used in the scenario input sets regardless of selected node/link. For example, in the figure the scenario input sets lines (one line for 'Wet' and 'Dry' each) are applicable to the Loss node ('Loss 3') only and hence shown when the 'Loss 3' node is selected. By default, it is not visible when, for example, the inflow node is selected.
Figure 7. Accessing scenario input sets from node/link feature editor (a) when 'Inflow 1' node editor is selected (b) when 'Loss 3' node editor is selected
This functionality helps the user to identify the nodes or links to which the scenario input sets are applied, especially when the model is large and complicated.
Anchor | ||||
---|---|---|---|---|
|
The built-in variable $ActiveInputSet allows you to use the active scenario input set as a variable in a function, for example if($ActiveInputSet = "Wet", 15, 10). The active scenario input set is selected through the Configure dialog (Figure 1). When working with a scenario that contains parent and children scenario input sets (eg, Figure 68), the following conventions apply:
...
- To identify a specific scenario input set, use its full path, eg. "Parent1.Child1", or "Parent2", or "Parent2.Child1.Grandchild.GreatGrandchild".
- To identify any children of a specific scenario input set, use its full path followed by a full stop, eg. "Parent1.Child1." will be true for Parent1.Child1.Grandchild1 and Parent1.Child1.Grandchild2.
- To identify a child scenario input set, regardless of its parents, use its name preceded by a full stop. For example ".Child1" will be true for Parent1.Child1 and Parent2.Child1
- The previous two conventions can be combined to identify any children of a child input set, regardless of its parents. For example, ".Grandchild1." will be true for Parent2.Child1.Grandchild1.GreatGrandchild.
- If you want to identify a specific scenario input set and any of its children, use an or function combined with an if function. For example if($ActiveInputSet=".Grandchild1" or $ActiveInputSet = ".Grandchild1.", 5, 1) will be true for Parent1.Child1.Grandchild1, Parent2.Child1.Grandchild1 and Parent2.Child1.Grandchild1.GreatGrandchild.
Figure
...