...
- csv - new file with Booleans to enable/disable
- LocationSets.xml
- ModifierTypes.xml
This example has been configured for an OC, using a workflow for URBS model runs within the Tweed region, consisting of three catchments (see image of structure of workflow and metadata below).
- The workflow consists of pre/post-processing modules, rainfall merge modules, general adapters for model deployment and model simulation, and an archiving module.
- The modifier will be configured for each of the three catchments, and the archiving module.
Multiple modifier attributes have been configured to provide greater flexibility in enabling/disabling both modules and workflows.
Structure of the workflow and required “metadata/config” | |||||||||||
| |||||||||||
|
The example below has been configured for an Operator Client, using a workflow for URBS model runs within the Tweed region, consisting of three catchments. The workflow consists of pre/post-processing modules, rainfall merge modules, general adapters for model deployment and model simulation, and an archiving module.
The modifier will be configured for each of the three catchments, and the archiving module. Multiple modifier attributes have been configured to provide greater flexibility in enabling/disabling both modules and workflows.
A structure of the workflow and required “metadata/config” is displayed below.
At the catchment level, an enabled tag is configured for each of the three modules within the catchment workflow. Each enabled attributeId <attributeId> is associated to the module to be modified, allowing flexibility in toggling each module.
Code Block | ||||
---|---|---|---|---|
|
...
| |||||
<workflow xmlns="http://www.wldelft.nl/fews" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.wldelft.nl/fews http://fews.wldelft.nl/schemas/version1.0/workflow.xsd" version="1.1">
<properties>
<string key="CATCHMENT" value="Burringbar"/>
<string key="TIME_ZONE" value="AEST"/>
<int key="MODEL_START" value="-7"/>
<string key="REGION" value="Tweed"/>
</properties>
<activity>
<properties>
<string key="CATCHMENT" value="Burringbar"/>
</properties>
<enabled locationId="Burringbar_System" attributeId="URBS_Deploy"/>
<runIndependent>true</runIndependent>
<workflowId>Update_Model_Directory</workflowId>
</activity>
<activity>
<properties>
<string key="CATCHMENT" value="Burringbar"/>
</properties>
<enabled locationId="Burringbar_System" attributeId="URBS_Merge"/>
<runIndependent>true</runIndependent>
<moduleInstanceId>URBS_Merge_Rainfall</moduleInstanceId>
<moduleConfigFileName>URBS_Merge_Rainfall</moduleConfigFileName>
</activity>
<activity>
<properties>
<string key="CATCHMENT" value="Burringbar"/>
</properties>
<enabled locationId="Burringbar_System" attributeId="URBS_Fcst"/>
<runIndependent>true</runIndependent>
<moduleInstanceId>URBS_Burringbar_Forecast</moduleInstanceId>
</activity>
</workflow> |
...
To configure the location of the modified attribute, a dummy variable must be created, which was configured within a transformation module (URBS_Merge_Rainfall in this example). The other two modules in the workflow are general adapter modules, which I’m unsure if variable’s can be configured in the way that is required (potentially in the export/import activity sections). The variable contains each of the locations configured in the SystemSettings.csv, which can then be referenced across the entire workflow, as long as transformation URBS_Merge_Rainfall is configured within the workflow.
Code Block | ||||
---|---|---|---|---|
|
...
| |||||
<variable>
<variableId>Dummy_Modifier_1</variableId>
<timeSeriesSet>
<moduleInstanceId>URBS_Merge_Rainfall</moduleInstanceId>
<valueType>scalar</valueType>
<parameterId>P.obs</parameterId>
<locationSetId>SystemSettings_$REGION$</locationSetId><!-- tag for template use -->
<timeSeriesType>external historical</timeSeriesType>
<timeStep unit="hour"/>
<readWriteMode>read only</readWriteMode>
</timeSeriesSet>
</variable> |
Some tinkering is still required to summarise summarize the modifier display, although it works, toggling modules for the 3 catchments (Burringbar Creek, Crabbes Creek, Tweed River) and toggling the Archive workflow for the entire Tweed region workflow.