Wiki Markup |
---|
{scrollbar} |
Decision Module
What | nameofinstance.xml | |||||||
---|---|---|---|---|---|---|---|---|
Description | Configuration for the Decision module | |||||||
schema location | http://fews.wldelft.nl/schemas/version1.0/decisionModule.xsd | |||||||
Entry in ModuleDescriptors |
|
...
required element used to identify the timeSerieSet.
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<variable> <variableId>SVKW.position.in</variableId> <timeSeriesSet> <moduleInstanceId>RMM_Structures_Forecast_Processing_Extrapolate</moduleInstanceId> <valueType>scalar</valueType> <parameterId>State.position.meting</parameterId> <locationId>SVKW</locationId> <timeSeriesType>simulated forecasting</timeSeriesType> <timeStep unit="minute" multiplier="10"/> <relativeViewPeriod unit="day" start="0" end="1" endOverrulable="true"/> <readWriteMode>add originals</readWriteMode> </timeSeriesSet> </variable> <variable> <variableId>SVKW.position.dss</variableId> <timeSeriesSet> <moduleInstanceId>RMM_DecisionTree</moduleInstanceId> <valueType>scalar</valueType> <parameterId>State.position.meting</parameterId> <locationId>SVKW</locationId> <timeSeriesType>simulated forecasting</timeSeriesType> <timeStep unit="minute" multiplier="10"/> <relativeViewPeriod unit="day" start="0" end="1" endOverrulable="true"/> <readWriteMode>add originals</readWriteMode> </timeSeriesSet> </variable> |
...
For each barrier a decisionTree is configured. Each decision element in this decisionTree should be unique (i.e. at each moment in time only one element can be valid).
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<decisionTree> <barrierId>scheepvaart</barrierId> <decision id="Stremming (peilsluiting)"> <evaluationType>lastKnownState</evaluationType> <stateDefinitionId>scheepvaart</stateDefinitionId> <inputState> <stateValueId>geen stremming</stateValueId> </inputState> <conditionRules> <allValid> <anyValid> <isTrue>H.rotterdam.d</isTrue> <isTrue>H.dordrecht.d</isTrue> </anyValid> <isFalse>Q.lobith</isFalse> </allValid> </conditionRules> <transitionRules> <anyValid> <isTrue>scheepvaart.stremming.peilsluiting.rotterdam</isTrue> <isTrue>scheepvaart.stremming.peilsluiting.dordrecht</isTrue> </anyValid> </transitionRules> <outputState> <stateValueId>gestremd</stateValueId> </outputState> </decision> <decision id="Stremming (kenteringsluiting)"> ... </decision> <decision id="Vrijgeven scheepvaart"> ... </decision> </decisionTree> |
...
The last section of this file deals with the evaluation of the decision logic. If we are in the first step of the iterative loop, the last know system (barrier) state is used as initial value. The section within the 'initialConditionalWorkflow' tag is run, where the timeSeriesSets associated with the variableId's are used for initial values. From this workflow the (external) model is called (for example, a workflow through which Sobek is run from the FEWS General Adapter).
...
Code Block | |||||||
---|---|---|---|---|---|---|---|
| |||||||
<decisionEvaluation> <initialConditionalWorkflow> <variableId>SVKH.position.in</variableId> <variableId>SVKW.position.in</variableId> <variableId>scheepvaart.in</variableId> <workflowId>Sobek_DSS_Forecast</workflowId> </initialConditionalWorkflow> <conditionalWorkflow> <variableId>SVKH.position.dss</variableId> <variableId>SVKW.position.dss</variableId> <variableId>scheepvaart.dss</variableId> <stateChanges> <evaluationType>FirstInTime</evaluationType> <stateChange> <decisionTreeId>SVKH</decisionTreeId> </stateChange> <stateChange> <decisionTreeId>SVKW</decisionTreeId> </stateChange> <stateChange> <decisionTreeId>scheepvaart</decisionTreeId> </stateChange> </stateChanges> <workflowId>Sobek_DSS_Forecast</workflowId> </conditionalWorkflow> </decisionEvaluation> |
...