Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.




 

scrollbar




Excerpt
hiddentrue

Functionality to define qualifiers to time series, next to locationIds and parameterIds


Function:

Configure topology of an IFD environment

Where to Use?

Mandatory for an IFD installation

Why to Use?

The topology.xml is necessary to be able to use panels like the topology panel and the forecast panel

Description:

Topology panel is used to define the topology of an IFD environment. Also the behaviour of the forecast panel which is used to start
IFD runs can be configured here.

Available since:

Delft-FEWS 2010.01

Contents

Table of Contents
excludeContents

...

The topology.xml was originally designed to configure the topology of a Delft-FEWS system but there are a lot of Delft-FEWS systems in which the topology.xml is used to configure the work process of the forecaster instead. 


An example is given below.

...

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8"?>
<topology 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/topology.xsd">
	<nodes id="C" name="C">
		<node id="A" name="A"/>
		<node id="B" name="B"/>
	</nodes>
</topology>

 


It is possible to run workflows from the topology panel. In the example below some of the node(s) have a workflow configured.

 


Code Block
languagexml
<?xml version="1.0" encoding="UTF-8"?>
<topology 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/topology.xsd">
	<nodes id="C" name="C">
		<workflowId>workflowC</workflowId>
		<node id="A" name="A">
			<workflowId>workflowA</workflowId>
		</node>
		<node id="B" name="B"/>
	</nodes>
</topology>

...

IFD runs are typically used to evaluate the effect of modifiers on the results of a forecast.

 


Server run

A workflow which is started from a group node will by default be started as a server run. A server run will run at a FSS when it is started from an operator client. When it is started from a stand alone it will run locally but the results of the run will be available after a restart of the system.

 


It is possible to change these default settings by using the element localRun.

...

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8"?>
<topology 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/topology.xsd">
	<nodes id="C" name="C">
		<workflowId>workflowC</workflowId>
		<localRun>true</localRun>
		<node id="A" name="A">
			<workflowId>workflowA</workflowId>
			<localRun>false</localRun>
		</node>
		<node id="B" name="B"/>
	</nodes>nfo
</topology>

 


It is possible to connect nodes in the topology. In the example below the node STKA2 is connected to two previous nodes (SBFQ2 and ISKQ2).

Code Block
languagexml
<node id="STKA2" name="STKA2 Stikine R Wrangell">
		<previousNodeId>SBFQ2</previousNodeId>
		<previousNodeId>ISKQ2</previousNodeId>
		<workflowId>STKA2_Forecast</workflowId>
</node>

...


The way nodes are connected plays an important role when running workflows in IFD mode.

...

Please note, if the same workflow node is selected more than once, and a description is specified, then a notification dialog pops up after the OK button is clicked. If the user chooses to change the description, then the edit run options dialog comes back, and the description text would be selected (which indicates the description text is ready to be edited).



 


Secondary workflow

It is possible to define a secondary workflow for a node. This secondary workflow can be run by clicking the button  in the button bar.

Only the primary workflow determines which icon is shown in the forecast tree.

 


Below is an example of a node with a secondary workflow.

Code Block
languagexml
	<node id="Copy_User_Input_series_ST_Planning_to_RT" name="Copy ST_Planning User Input series">
				<workflowId>Copy_User_Input_series_ST_Planning_to_RT</workflowId>
				<secondaryWorkflowId>Copy_User_Input_series_ST_Planning_to_RT</secondaryWorkflowId>
				<runSecondaryWorkflowAtServer>false</runSecondaryWorkflowAtServer>
				<timeSeriesButtonsPanelId>Observed</timeSeriesButtonsPanelId>
				<graceTime unit="hour" multiplier="1"/>
				<localRun>true</localRun>
				<saveLocalRunEnabled>true</saveLocalRunEnabled>
				<showRunApprovedForecastButton>true</showRunApprovedForecastButton>
			</node>

 


runSecondaryWorkflowWithTaskRunPropertiesFromIFD 

...

Code Block
languagexml
				<node id="B10_Main_RTC" name="Run model">
					<workflowId>Big10_RTCTools_RT</workflowId>
					<forecastLength unit="hour" multiplier="24"/>
					<cardinalTimeStepForecastLength unit="hour"/>
					<initialForecastLengthCardinalTimeStep unit="hour" multiplier="6"/>
					<displayGroupId>Main_RT-RTC</displayGroupId>
					<timeSeriesButtonsPanelId>RT_buttons_Main</timeSeriesButtonsPanelId>
					<viewPermission>execute</viewPermission>
					<visibleModifierGroup>RT</visibleModifierGroup>
					<graceTime unit="hour" multiplier="1"/>
					<localRun>true</localRun>
					<saveLocalRunEnabled>true</saveLocalRunEnabled>
					<showRunApprovedForecastButton>true</showRunApprovedForecastButton>
				</node>

 


Below a screenshot of this node after it is selected for the first time is shown.

...

Code Block
languagexml
<node id="ZWF_LHM_Z0_REF2017BP18" name="Files LHM zonder zout">
	<workflowId>ZWF_LHM_Z0_REF2017BP18</workflowId>
	<timeZero date="2004-01-01" time="00:00:00"/>
	<localRun>false</localRun>
</node>

...


To make the time zero editable and/or to shfit the time zero compared to the system time the option <timeZeroShift> can be used.

...

If the shift is set to 0 then the time zero will be editable but equal to the system time. 


Custom info label

It is possible to define a custom info label which be shown (if configured) below the run options.

...

Code Block
languagexml
<nodes id="exampleGroupNode">
   <workflowId>workflowA</workflowId>
   <enableAutoApprove>true</enableAutoApprove>
   <node id="exampleChildNode">
      <workflowId>workflowB</workflowId>
   </node>
</nodes>

 

...

 





Topology groups

It is possible to split the configuration of the topology in separate configuration files.

...

Code Block
languagexml
<?xml version="1.0" encoding="utf-8"?>
<topologyGroup 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/topologyGroup.xsd">
	<group id="ForecastGroup_Bear">
		<nodes id="Bear" name="Bear">
			<workflowId>Bear_Forecast</workflowId>
			<node id="MergeMAPBear" name="MergeMAP and Outflow">
				<workflowId>Bear_Forecast</workflowId>
				<moduleInstanceId>SetTimes_Forecast</moduleInstanceId>
				<moduleInstanceId>MergeMAP_Bear_Forecast</moduleInstanceId>
				<moduleInstanceId>Merge_RiverWare_Observed_QT</moduleInstanceId>
				<visibleModifierGroup>None</visibleModifierGroup>
			</node>
		</nodes>
	</group>
</topologyGroup>

...


The defined topology groups can be used in the topology.xml by using the element <groupId>. An example is shown below.

...

Code Block
languagexml
<node id="Coastal_Scenario" name="Create Coastal Scenario">
           <workflowId>Coastal_Scenario</workflowId>
           <mainPanel>modifiers panel</mainPanel>
           <toolWindow>plot overview</toolWindow>
</node>

<node id="Fluvial_Scenario" name="Create Fluvial Scenario">
            <workflowId>Fluvial_Scenario</workflowId>
            <displayConfigFileName>MySSDConfigFile</displayConfigFileName>
            <panelId>panel3</panelId>
</node>

<node id="ImportObserved" name="Import observations”>
            <workflowId>ImportObservations</workflowId>
            <displayConfigFileName>MySystemMonitorDisplayConfigFile</displayConfigFileName>
            <tabId>importStatus</tabId>
</node>

...


After selecting a node in the topology a plot connected to this node will be automatically displayed in the plot window.

...

To be added by Onno...timeSeriesButtonPanelId

 


To automatically select a zoom extent in the map after selecting a node, the element <mapExtentId> can be used.

...

The element <enableSelectNodesFromMap> is a configuration option which applies to all nodes. With this option set to true, the user can select nodes in the topology tree by selecting locations on the map. For this to work, you need to also configure at least one <locationId> and a <filterId> at each node which you would like to be able to select from a map. If the user first selects the configured filter in the Data Viewer, and then next selects (one of) the location(s) on the map, the corresponding node in the topology will be opened and the IFD will get the focus. It is possible to configure one or more locationIds for a node by using the element <locationId>. 


An <areaId> can be configured for a topology node. This configuration option is used in combination with the archive panel. After selecting a node with an area id configured the area selection in the archive panel will be set to the area id of the selected node.

...

If the status of a topology node is determined by a server run and its parent node has a more recent server run then the node will inherit the status from its parent. If this is set to false, then the server run of the parent node will be ignored. 


Modifiers 

...


showModifiers

The option is only available at group nodes. By default the modifiers panel doesn't show modifiers at group nodes. This choice was made because of performance reasons.

...

The modifier group should be defined in the modifierTypes.xml.


popupMessageUncommittedModifiers

This option can be used to define a warning message which will be shown when a user leaves a topology node with uncommitted modifiers.


Permissions

There are several configurations options available with regard to permissions.

...

Since 201801. Permission to run the secondary workflow

 


Thresholds

Location threshold icons can be added to the Forecast Tree (Topology).  In Delft-FEWS thresholds are configured in the Thresholds.xml and ThresholdValueSets.XML. The Thresholds.xml file contains the thresholds and the thresholdValueSets the time series that are used for thresholds. The time series have a RelativeViewPeriod configured that is used to find threshold crossings relative to the FEWS system time.

...

Details about the buttons can be found here: 23 Interactive Forecasting Displays#23InteractiveForecastingDisplays-Buttonbar 


At the top of the forecast panel a group of buttons is shown. 

...

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2014 rel. 2 sp1 (http://www.altova.com) by Afdeling ICT (Stichting Deltares) -->
<topology 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/topology.xsd">
	<enableOriginalButtons>true</enableOriginalButtons>
<!--	<hideModifiersButton>true</hideModifiersButton>-->
<!--	<hideThresholdsButton>true</hideThresholdsButton>-->
	<enableAutoRun>false</enableAutoRun>
	<nodes id="NWM" name="Nationaal Water Model">
		<nodes id="Zoetwater" name="Zoetwater">
			<groupId>GroupZoetwater</groupId>
		</nodes>
		<nodes id="Zoetwater_files" name="Prepare Zoetwater files">
			<groupId>GroupZoetwater_Files</groupId>
		</nodes>
	</nodes>
</topology>

 


The element <saveLocalRunEnabled> can be used to allow the user to promote a local IFD run to a permanent server run.

...

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8"?>
<topology 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/topology.xsd">
	<nodes id="C" name="C">
		<workflowId>workflowC</workflowId>
		<node id="A" name="A">
			<workflowId>workflowA</workflowId>
			<refreshConfigAfterCompletion>true</refreshConfigAfterCompletion>
		</node>
		<node id="B" name="B"/>
	</nodes>
</topology>

...