Versions Compared

Key

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

...

What

ModifierTypes.xml

Required

no

Description

Definition of modifiers in an IFD environment

schema location

httphttps://fewsfewsdocs.wldelftdeltares.nl/schemas/version1.0/modifierTypes.xsd

Contents

Table of Contents

...


Modifier

TypeDescription
missing value modifiertime series modifierSet the values of a time series to missing over a certain period of time
time series modifiertime series modifierThis modifier can be used to modify the values of a time series by defining new time value pairs. It is also possible to define an operation like add 2 or divided by
3 for a certain period. It is also possible to set all the values to missing for a certain period (comparable to the missing value modifier)
constant value modifiertime series modifierSet the values of a time series to a fixed value over a certain period of time
enumeration modifiertime series modifier

The user can select an option from a pre-defined list of options. For each option a value will be defined which will stored in the time series.

This modifier is usually applied to an empty time series.

single value modifiertime series modifierThis modifier can be used to apply a certain value at a certain time to a time series.
typical profile modifiertime series modifierThis modifier can be used to shift an existing timeseries in time.
mark unreliable modifiertime series modifierThis modifier can used to set the values of a modifier to unreliable over a certain period of time.
blending steps modifiertransformation/module parameter moduleThis modifier can be used to adjust the amount of "blending steps" which will be used in the adjustQ transformation.
disable adjustment modifiertransformation/module parameter module

With this modifier it is possible to disable the adjustQ transformation

time shift constant modifiertransformation/module parameter moduleWith this modifier it is possible to modify the amount of time steps which will be used in the timeShiftConstant transformation
reverse order modifiertransformation/module parameter moduleWith this modifier it is possible to reverse the order of the time series in the mergeSimple transformation
compound modifiertime series modifierThis modifier can be used to define a value at a single date/time for 1 or more time series by using sliders.
high low surge selection modifiertime series modifier
switch option modifiertime series modifierModifier which can used to set a value for each time step for a set of time series. It is only possible to define a value for a one of the time series in the entire set.
option modifiertime series modifierThis modifier can be used to set a single value at a single time for a set of time series. It is only possible to define a value for a one of the time series in the entire set.
module parameter modifiermodule parameter modifierGeneric module parameter modifier panel which can used for all modifiers.
priority modifiertime series modifiermodel parameter modifierOrders a list of priorities
multiple model module parameter modifiermodule parameter modifierThe module parameter modifier can be used to modify multiple model parameters in a single modifier.
unit hydrograph modifiermodule parameter modifierThe unit hydrograph modifier can be used to modify the area elevation curve of the unit hydrograph model.
merge weighted modifiertransformation/module parameter modifierThis modifier can be used to modify the parameters of the mergeWeighted function.
table rating curve modifiertime series modifier
shift multiply rating curve modifiertime series modifierThe rating curve can be modified by shifting the entire curve or by multiplying the entire curve with a defined factor.
location attribute modifierlocation attribute modifierA modifier for modifying location attributes.
spatial profile modifiertime series modifier
spatial copy modifiertime series modifier

...

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8"?>
<parameters xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.wldelft.nl/fews/PI" xsi:schemaLocation="http://www.wldelft.nl/fews/PI httphttps://fewsfewsdocs.wldelftdeltares.nl/schemas/version1.0/pi-schemas/pi_modelparameters.xsd" version="1.5">
    <group id="default" readonly="false" modified="false">
        <parameter id="UHG_DURATION" name="UHG_DURATION">
            <intValue>6</intValue>
        </parameter>
        <parameter id="UNIT" name="UNIT">
            <stringValue>ENGLISH</stringValue>
        </parameter>
        <parameter id="UHG_INTERVAL" name="UHG_INTERVAL">
            <intValue>6</intValue>
        </parameter>
        <parameter id="DRAINAGE_AREA" name="DRAINAGE_AREA">
            <dblValue>3103.0</dblValue>
        </parameter>
        <parameter id="CONSTANT_BASE_FLOW" name="CONSTANT_BASE_FLOW">
            <dblValue>111.0</dblValue>
        </parameter>
        <parameter id="UHG_ORDINATES" name="UHG_ORDINATES">
            <table>
                <columnTypes A="double"/>
                <row A="7499.0"/>
                <row A="16872.0"/>
                <row A="29370.0"/>
                <row A="39993.0"/>
                <row A="48116.0"/>
                <row A="43742.0"/>
                <row A="38118.0"/>
                <row A="31869.0"/>
                <row A="24995.0"/>
                <row A="18747.0"/>
                <row A="13123.0"/>
                <row A="8123.0"/>
                <row A="5436.0"/>
                <row A="3874.0"/>
                <row A="2625.0"/>
                <row A="1687.0"/>
                <row A="1000.0"/>
                <row A="500.0"/>
                <row A="250.0"/>
                <row A="62.0"/>
                <row A="0.0"/>
                <row A="0.0"/>
                <row A="0.0"/>
                <row A="0.0"/>
                <row A="0.0"/>
                <row A="0.0"/>
                <row A="0.0"/>
                <row A="0.0"/>
            </table>
        </parameter>
    </group>
    <group id="default" readonly="false" modified="true">
        <validPeriod>
            <timeZone>0.0</timeZone>
            <startDate date="2012-09-09" time="12:00:00"/>
            <endDate date="2012-09-27" time="12:00:00"/>
        </validPeriod>
        <parameter id="UHG_DURATION" name="UHG_DURATION">
            <intValue>6</intValue>
        </parameter>
        <parameter id="UNIT" name="UNIT">
            <stringValue>ENGLISH</stringValue>
        </parameter>
        <parameter id="UHG_INTERVAL" name="UHG_INTERVAL">
            <intValue>6</intValue>
        </parameter>
        <parameter id="DRAINAGE_AREA" name="DRAINAGE_AREA">
            <dblValue>3103.0</dblValue>
        </parameter>
        <parameter id="CONSTANT_BASE_FLOW" name="CONSTANT_BASE_FLOW">
            <dblValue>0.0</dblValue>
        </parameter>
        <parameter id="UHG_ORDINATES" name="UHG_ORDINATES">
            <table>
                <columnTypes A="double"/>
                <row A="8666.18"/>
                <row A="19498.05"/>
                <row A="33941.3"/>
                <row A="46217.72"/>
                <row A="24331.23"/>
                <row A="50550.24"/>
                <row A="23027.725"/>
                <row A="36829.26"/>
                <row A="28885.35"/>
                <row A="21664.88"/>
                <row A="15165.53"/>
                <row A="9387.31"/>
                <row A="6282.09"/>
                <row A="4476.97"/>
                <row A="3033.57"/>
                <row A="1949.57"/>
                <row A="1155.65"/>
                <row A="577.82"/>
                <row A="288.91"/>
                <row A="71.65"/>
                <row A="0.0"/>
                <row A="0.0"/>
                <row A="0.0"/>
                <row A="0.0"/>
                <row A="0.0"/>
                <row A="0.0"/>
                <row A="0.0"/>
                <row A="0.0"/>
            </table>
        </parameter>
    </group>
</parameters>

...

By default, local modifiers are committed when the user starts a server run in which these modifiers are used. When this option is enabled the modifiers will be committed directly after the moment they are changed.

Assigning modifiers to whatifs

By default, modifiers are always applied to the workflow

By default

Location attribute modifiers

Currently there is only one type of modifier, the locationAttributeModifier, available to modify location attributes. This type has however a lot of configuration options so it can be used in a lot of different ways.

Location Attribute Modifier

This type is the only type available to modify location attributes. The section will explain the available configuration options in detail.

Basic examples

Although this modifier type offers a lot of configuration options, it is possible to configure a basic location attribute modifier without much effort.

Below an example.

Code Block
languagexml
linenumberstrue
		<locationAttributeModifier id="example" name="example">
			<modifiableGroup name="exampleGroupA">
				<locationSetId>MODIFIABLE_PROJECTS_QO_Avg_Min</locationSetId>
				<attribute id="wQO_Avg_Req_Day_RT">
					<comment>Original value: @wQO_Avg_Req_Day_RT@</comment>
				</attribute>
				<attribute id="wQO_Avg_Min_Day_RT">
					<comment>Original value: @wQO_Avg_Min_Day_RT@</comment>
				</attribute>
			</modifiableGroup>
		</locationAttributeModifier>

The basic example above configures a modifier which can be used to modify two attributes of all the locations in locationSet MODIFIABLE_PROJECTS_QO_Avg_Min.

Below a screenshot of this modifier in the modifiers panel.

Image Removed

The modifier shows the original and the modified values by default. To hide the original values you can use the option <showOriginalValues>

Code Block
languagexml
<locationAttributeModifier id="example" name="example">
			<modifiableGroup name="exampleGroupA">
				<locationSetId>MODIFIABLE_PROJECTS_QO_Avg_Min</locationSetId>
				<attribute id="wQO_Avg_Req_Day_RT">
					<comment>Original value: @wQO_Avg_Req_Day_RT@</comment>
				</attribute>
				<attribute id="wQO_Avg_Min_Day_RT">
					<comment>Original value: @wQO_Avg_Min_Day_RT@</comment>
				</attribute>
				<tabularLayout>
					<showOriginalValues>false</showOriginalValues>
				</tabularLayout>
			</modifiableGroup>
</locationAttributeModifier>

When this option is set to false, the original values will be hidden in the panel.

Image Removed

In the example above the attributes are located in the rows of the table and the locations are positioned in the columns of the table. To switch the locations to the rows and the attributes to the columns the option <locationOrientation> can be used.

Below an example.


Valid time

The behaviour of the valid time for simulated time series and external historical time series is as follows:

When modifiers are defined in the period before valid time, they will always be valid.

Image Added

The situation changes when modified values are placed in the future. When the valid time is on or after time zero, all modified values are valid and will be used.

Image Added

Later, when time has proceeded and valid time is before time zero, the modified values AFTER valid time are not valid anymore.

Image Added



The behaviour of the valid time for external forecasting time series is as follows:

If a modifier has a valid time then it will only be applied if the external forecast time is the same as the valid time. If a modifier doesn't have a valid time then it will always be valid.


Assigning modifiers to whatifs

By default, modifiers are always applied to the workflow

With the introduction of the new WhatIf Templates/WhatIf Editor functionality in 2021.01, one can configure the system to allow modifiers to be created in the What-If Editor and only to be applied in a whatif.

This behavior is specified in element <whatIfModifierType> available in each modifierType, which offers four options:

  1. always apply in workflow (default)
  2. apply according to creation method (since 2022.02)
  3. apply modifier if referenced in a what-if workflow
  4. never apply in a what-if workflow (i.e. always apply unless running a workflow with a whatif attached)

ModifierTypes configured with case 1 (always apply in workflow) represent the default behaviour. The associated Modifiers can be created in the ModifiersDisplay or in the TimeSeriesDisplay. These modifiers can not be created in the WhatIf Editor.

ModifierTypes configured with case 2 (apply according to creation method) can be created in the ModifiersDisplay or in the WhatIf Editor. When created in the ModifiersDisplay the modifier will apply in the regular forecast workflow, but will never be applied in a what-if forecast workflow. When created in the WhatIf Editor, theyare tied to a specific what-if and will only be applied in the associated what-if forecast workflow.

ModifierTypes configured with case 3 (apply modifier if referenced in a whatif workflow) can only be created in the WhatIf Editor. The created modifier is directly associated with the whatif-instance and will only be applide in a whatif workflow. The created modifier will never be applied in a regular workflow.

ModifierTypes configured with case 4 (never apply in a what-if workflow) allows creation of modifiers in the ModifiersDisplay or in the TimeSeriesDisplay. These modifiers can not be created in the WhatIf Editor.the created modifier will only apply in a regular forecast and not in a what-if forecast.

Modifiers can become part of a what-if by referencing the modifierType in the whatifTemplates.

Visibility of modifiers in the IFD

When a modifier is of a type without a What-if modifier type configured then the modifier is visible when the modifier is used at the selected topology node or what-if node. But when the modifier is of a type with a What-If modifier type configured then different rules apply.

What-If modifier typeTopology NodeWhat-If Node
always apply in workflow (default)visible when applicable for the selected nodevisible when applicable for the selected node
never apply in what-if workflowsvisible when applicable for the selected nodenever visible
apply if referenced in what-if workflownever visiblevisible when applicable for the selected node
apply according to creation methodvisible when applicable for the selected nodenever visible


Location attribute modifiers

Currently there is only one type of modifier, the locationAttributeModifier, available to modify location attributes. This type has however a lot of configuration options so it can be used in a lot of different ways.

Location Attribute Modifier

This type is the only type available to modify location attributes. The section will explain the available configuration options in detail.

Basic examples

Although this modifier type offers a lot of configuration options, it is possible to configure a basic location attribute modifier without much effort.

Below an example.

Code Block
languagexml
linenumberstrue
		<locationAttributeModifier id="example" 
Code Block
languagexml
<locationAttributeModifier id="example" name="example">
			<modifiableGroup name="exampleGroupA">
				<locationSetId>MODIFIABLE_PROJECTS_QO_Avg_Min</locationSetId>
				<attribute id="wQO_Avg_Req_Day_RT">
					<comment>Original value: @wQO_Avg_Req_Day_RT@</comment>
				</attribute>
				<attribute id="wQO_Avg_Min_Day_RT">
					<comment>Original value: @wQO_Avg_Min_Day_RT@</comment>
				</attribute>
				<tabularLayout>
					<showOriginalValues>false</showOriginalValues>
					<locationOrientation>row</locationOrientation>
				</tabularLayout>modifiableGroup>
			</modifiableGroup>
</locationAttributeModifier>

Below a screenshot of the display.

Image Removed

The basic example above configures a modifier which can be used to modify two attributes of all the locations in locationSet MODIFIABLE_PROJECTS_QO_Avg_Min.

Below a screenshot of this modifier in the modifiers panel.

Image Added

The modifier shows the original and the modified values by default. To hide the original values you can use the option <showOriginalValues> In the examples above only one modifiableGroup was defined. It is also possible to define a location attribute modifier with multiple modifiableGroups. Below a config example.

Code Block
languagexml
<locationAttributeModifier id="example" name="example">
			<modifiableGroup name="exampleGroupA">
				<locationSetId>MODIFIABLE_PROJECTS_QO_Avg_Min</locationSetId>
				<attribute id="wQO_Avg_Req_Day_RT">
					<comment>Original value: @wQO_Avg_Req_Day_RT@</comment>
				</attribute>
				<attribute id="wQO_Avg_Min_Day_RT">
					<comment>Original value: @wQO_Avg_Min_Day_RT@</comment>
				</attribute>
				<attribute id="QO_Avg_Min_Week_constraintType_RT"><tabularLayout>
					<selection>
						<predefined>
							<option>hard</option><showOriginalValues>false</showOriginalValues>
							<option>soft</option></tabularLayout>
						</predefined>modifiableGroup>
					</selection>
					<comment>Original value: @QO_Avg_Min_Week_constraintType_RT@</comment>
				</attribute>
				<tabularLayout>
					<showOriginalValues>false</showOriginalValues>
					<locationOrientation>row</locationOrientation>
				</tabularLayout>
			</modifiableGroup></locationAttributeModifier>

When this option is set to false, the original values will be hidden in the panel.

Image Added

In the example above the attributes are located in the rows of the table and the locations are positioned in the columns of the table. To switch the locations to the rows and the attributes to the columns the option <locationOrientation> can be used.

Below an example.

Code Block
languagexml
<locationAttributeModifier id="example" name="example">
			<modifiableGroup name="exampleGroupBexampleGroupA">
				<locationSetId>MODIFIABLE_PROJECTS_QO_Avg_Min</locationSetId>
				<attribute id="wQO_Avg_MinReq_WeekDay_RT"/>
			</modifiableGroup>
</locationAttributeModifier>

 Because there are two modifiable groups defined in the config, the display will show two tabs instead of only one.

Image Removed

Attribute config options

The following config options are available for the <attribute> element:

  • read only,
  • visible,
  • timeSeriesValueClosestToStateSelectionStartTime,
  • useSystemTimeAsDefaultvalue,
  • useTimeOfFirstReliableValueInTimeSeries,
  • selection,
  • conditional selection,
  • comment.

Read only

This option will make attribute read-only in the display

Visible

It is possible to configure an export-button in the location attribute panel. In some cases it is necessary to export a complete set of location attributes which includes attributes which should not be editable or visible in the location attribute modifiers panel. For this special case it is possible to define location attributes which are invisible. These attributes will be exported to file but will not be editable in the location attribute modifiers panel.

TimeSeriesValueClosestTostateSelectionStartTime

This option can be used to define a set time series from which the value of the attribute should be derived.  

The value will be determined in the following way:

  1. Select the time series from the defined set which has the same location as the location from the location attribute,
  2. Select the value at the selected state time from the IFD. If a state selection period is defined the start of the period will be used to select a value.

Below a config example.

					<comment>Original value: @wQO_Avg_Req_Day_RT@</comment>
				</attribute>
				<attribute id="wQO_Avg_Min_Day_RT">
					<comment>Original value: @wQO_Avg_Min_Day_RT@</comment>
				</attribute>
				<tabularLayout>
					<showOriginalValues>false</showOriginalValues>
					<locationOrientation>row</locationOrientation>
				</tabularLayout>
			</modifiableGroup>
</locationAttributeModifier>

Below a screenshot of the display.

Image Added

 In the examples above only one modifiableGroup was defined. It is also possible to define a location attribute modifier with multiple modifiableGroups. Below a config example.

Code Block
languagexml
<locationAttributeModifier id="example" name="example">
			<modifiableGroup name="exampleGroupA">
				<locationSetId>MODIFIABLE_PROJECTS_QO_Avg_Min</locationSetId>
				<attribute id="wQO_Avg_Req_Day_RT">
					<comment>Original value: @wQO_Avg_Req_Day_RT@</comment>
				</attribute>
				<attribute id="wQO_Avg_Min_Day_RT">
					<comment>Original value: @wQO_Avg_Min_Day_RT@</comment>
				</attribute>
				<attribute id="QO_Avg_Min_Week_constraintType_RT">
					<selection>
						<predefined>
							<option>hard</option>
Code Block
languagexml
<attribute id="URBS_IL_AWRA">
					<timeSeriesValueClosestToStateSelectionStartTime>
						<timeSeriesSet>
							<moduleInstanceId>AWRAGrid_To_SubCatchments</moduleInstanceId>
							<valueType>scalar</valueType>
							<parameterId>AWRA.IL</parameterId>
							<locationSetId>AUS_URBS_subcatchments</locationSetId>
							<timeSeriesType>external historical</timeSeriesType>
							<timeStep unit="day"/>
							<relativeViewPeriod unit="day" start="-14" end="0"/>
							<readWriteMode>read only<<option>soft</readWriteMode>option>
						</timeSeriesSet>predefined>
					</timeSeriesValueClosestToStateSelectionStartTime>selection>
					<comment>No advice<<comment>Original value: @QO_Avg_Min_Week_constraintType_RT@</comment>
				</attribute>

useSystemTimeAsDefaultValue

This element can be used define a default value for a date/time attribute. If this option is selected the initial value is set to the system time. When this option is used a checkbox will be shown after the date/time selection box. If this checkbox is selected then a modifier will be created for this attribute with the current value of the date/time box. When an existing modifier is selected and there is a modified value for the attribute in this modifier then the checkbox will also be selected.

Image Removed

useTimeOfFirstReliableValueInTimeSeries

This option is similar to the option useSystemTimeAsDefaultValue, but instead of setting the default value to the system time the default time will be derived from a time series. A time series set can be configured for this option. The first time of the time series array for which a reliable value is available will be used.

Selection

The element <selection> can be used to predefine the list of options which are available for a certain attribute. The predefined list op options can be defined by:

  • a list of location id's,
  • a location set,
  • a hard-coded predefined list of options,
  • a multi-value attribute which contains all the options which are available.

				<tabularLayout>
					<showOriginalValues>false</showOriginalValues>
					<locationOrientation>row</locationOrientation>
				</tabularLayout>
			</modifiableGroup>
			<modifiableGroup name="exampleGroupB">
				<locationSetId>MODIFIABLE_PROJECTS_QO_Avg_Min</locationSetId>
				<attribute id="wQO_Avg_Min_Week_RT"/>
			</modifiableGroup>
</locationAttributeModifier>

 Because there are two modifiable groups defined in the config, the display will show two tabs instead of only one.

Image Added

Attribute config options

The following config options are available for the <attribute> element:

  • read only,
  • visible,
  • timeSeriesValueClosestToStateSelectionStartTime,
  • useSystemTimeAsDefaultvalue,
  • useTimeOfFirstReliableValueInTimeSeries,
  • selection,
  • conditional selection,
  • comment.

Read only

This option will make attribute read-only in the display

Visible

It is possible to configure an export-button in the location attribute panel. In some cases it is necessary to export a complete set of location attributes which includes attributes which should not be editable or visible in the location attribute modifiers panel. For this special case it is possible to define location attributes which are invisible. These attributes will be exported to file but will not be editable in the location attribute modifiers panel.


TimeSeriesValueClosestTostateSelectionStartTime

This option can be used to define a set time series from which the value of the attribute should be derived.  

The value will be determined in the following way:

  1. Select the time series from the defined set which has the same location as the location from the location attribute,
  2. Select the value at the selected state time from the IFD. If a state selection period is defined the start of the period will be used to select a value.

Below a config exampleBelow an example of a hard-coded list of options.

Code Block
languagexml
<attributeModifiers>
		<locationAttributeModifier<attribute id="example" name="exampleURBS_IL_AWRA">
				<modifiableGroup name="exampleGroupA">	<timeSeriesValueClosestToStateSelectionStartTime>
				<locationSetId>MODIFIABLE_PROJECTS_QO_Avg_Min</locationSetId>
		<timeSeriesSet>
					<attribute id="wQO_Avg_Req_Day_RT">		<moduleInstanceId>AWRAGrid_To_SubCatchments</moduleInstanceId>
					<comment>Original value: @wQO_Avg_Req_Day_RT@</comment>		<valueType>scalar</valueType>
				</attribute>
			<parameterId>AWRA.IL</parameterId>
					<attribute id="wQO_Avg_Min_Day_RT">		<locationSetId>AUS_URBS_subcatchments</locationSetId>
					<comment>Original value: @wQO_Avg_Min_Day_RT@</comment>		<timeSeriesType>external historical</timeSeriesType>
				</attribute>
			<timeStep unit="day"/>
						<attribute id="QO_Avg_Min_Week_constraintType_RT"	<relativeViewPeriod unit="day" start="-14" end="0"/>
					<selection>
						<predefined>
							<option>hard</option>
							<option>soft</option>		<readWriteMode>read only</readWriteMode>
						</predefined>timeSeriesSet>
					</selection>timeSeriesValueClosestToStateSelectionStartTime>
					<comment>Original value: @QO_Avg_Min_Week_constraintType_RT@<<comment>No advice</comment>
				</attribute>
				<tabularLayout>
					<showOriginalValues>false</showOriginalValues>
					<locationOrientation>row</locationOrientation>
				</tabularLayout>
			</modifiableGroup>
			<modifiableGroup name="exampleGroupB">
				<locationSetId>MODIFIABLE_PROJECTS_QO_Avg_Min</locationSetId>
				<attribute id="wQO_Avg_Min_Week_RT"/>
			</modifiableGroup>
</locationAttributeModifier>

 The display will look like the example below.

Image Removed

 Conditional selection

The conditional selection can be used to disable other attributes depending on which option is selected for an attribute. For example if option A is selected for a certain attribute X then attribute Y should be disabled and attribute Z should be enabled. If option B is selected then attribute Z should be disabled and attribute Y should be enabled. Below an example.

useSystemTimeAsDefaultValue

This element can be used define a default value for a date/time attribute. If this option is selected the initial value is set to the system time. When this option is used a checkbox will be shown after the date/time selection box. If this checkbox is selected then a modifier will be created for this attribute with the current value of the date/time box. When an existing modifier is selected and there is a modified value for the attribute in this modifier then the checkbox will also be selected.

Image Added

useTimeOfFirstReliableValueInTimeSeries

This option is similar to the option useSystemTimeAsDefaultValue, but instead of setting the default value to the system time the default time will be derived from a time series. A time series set can be configured for this option. The first time of the time series array for which a reliable value is available will be used.

Selection

The element <selection> can be used to predefine the list of options which are available for a certain attribute. The predefined list of options can be defined by:

  • a list of location id's,
  • a location set,
  • a hard-coded predefined list of options, by using the <predefined> or <predefinedInteger> elements
  • a multi-value attribute which contains all the options which are available, by using the optionsControllingLocationAttributeId.

Below an example of a hard-coded list of options.

Code Block
languagexml
<attributeModifiers>
		<locationAttributeModifier id="example"
Code Block
languagexml
<locationAttributeModifier id="example" name="example">
			<modifiableGroup name="exampleGroupA">
				<locationSetId>MODIFIABLE_PROJECTS_QO_Avg_Min</locationSetId>
				<attribute id="wQO_Avg_Req_Day_RT">
					<comment>Original value: @wQO_Avg_Req_Day_RT@</comment>
				</attribute>
				<attribute id="wQO_Avg_Min_Day_RT">
					<comment>Original value: @wQO_Avg_Min_Day_RT@</comment>
				</attribute>
				<attribute id="QO_Avg_Min_Week_constraintType_RT">
					<conditionalSelection><selection>
						<option value="hard"><predefined>
							<disabledAttributeId>wQO_Avg_Req_Day_RT</disabledAttributeId>
						<<option>hard</option>
						<option value="soft">
							<disabledAttributeId>wQO_Avg_Min_Day_RT</disabledAttributeId><option>soft</option>
						</option>predefined>
					</conditionalSelection>selection>
					<comment>Original value: @QO_Avg_Min_Week_constraintType_RT@</comment>
				</attribute>
				<tabularLayout>
					<showOriginalValues>false</showOriginalValues>
					<locationOrientation>row</locationOrientation>
				</tabularLayout>
			</modifiableGroup>
</locationAttributeModifier>

...


			<modifiableGroup name="exampleGroupB">
				<locationSetId>MODIFIABLE_PROJECTS_QO_Avg_Min</locationSetId>
				<attribute id="wQO_Avg_

...

Min_

...

Week_RT"/>
			</modifiableGroup>
</locationAttributeModifier>

 The display will look like the example below.

Image Added

 Conditional selection

The conditional selection can be used to disable other attributes depending on which option is selected for an attribute. For example if option A is selected for a certain attribute X then attribute Y should be disabled and attribute Z should be enabled. If option B is selected then attribute Z should be disabled and attribute Y should be enabled

Image Removed

Comment

The bottom line of the display shows the comment for each attribute. The comment can be defined by using this element. It is possible to use location attribute in the comment. The unmodified value of the defined attribute will be used in the comment. Below an example.

Code Block
languagexml
<attribute<locationAttributeModifier id="example" name="QO_Avg_Min_Week_constraintType_RTexample">
					<modifiableGroup name="exampleGroupA">
				<locationSetId>MODIFIABLE_PROJECTS_QO_Avg_Min</locationSetId>
				<attribute id="wQO_Avg_Req_Day_RT">
					<comment>Original value: @wQO_Avg_Req_Day_RT@</comment>
				</attribute>
				<attribute id="wQO_Avg_Min_Day_RT">
					<comment>Original value: @wQO_Avg_Min_Day_RT@</comment>
				</attribute>
				<attribute id="QO_Avg_Min_Week_constraintType_RT">
					<conditionalSelection>
						<option value="hard">
							<disabledAttributeId>wQO_Avg_Req_Day_RT</disabledAttributeId>
						</option>
						<option value="soft">
							<disabledAttributeId>wQO_Avg_Min_Day_RT</disabledAttributeId>
						</option>
					</conditionalSelection>
					<comment>Original value: @QO_Avg_Min_Week_constraintType_RT@</comment>
</attribute>

Define which locations are modifiable

To define from which locations the attributes can be modified there are 3 options available:

  1. locationSetId,
  2. locationId,
  3. timeSeries

When the first two options are used the set of modifiable locations is determined in the following way. After selecting a topology node the module config quick scanner will determine which locations are available in the workflow of the selected node. The intersection of the locations which are found for the selected node and the configured locations (by either a location set or a list of locations) is the set of modifiable locations for the selected node.

The option timeSeries can be used to define a filter. First all the time series which are  used in the topology workflow are determined. Then the found time series are filtered by using the defined filter the locations of the resulting time series are the modifiable locations for a toplogy node.

				</attribute>
				<tabularLayout>
					<showOriginalValues>false</showOriginalValues>
					<locationOrientation>row</locationOrientation>
				</tabularLayout>
			</modifiableGroup>
</locationAttributeModifier>

If the option hard is selected, the attribute wQO_Avg_Req_Day_RT should be disabled. If the second option is selected the attribute wQO_Avg_Min_Day_RT should be disabled. Below an example of the display

Image Added


Comment

The bottom line of the display shows the comment for each attribute. The comment can be defined by using this element. It is possible to use location attribute in the comment. The unmodified value of the defined attribute will be used in the comment. Below an exampleBelow a configuration example of the option <timeSeries>.

Code Block
languagexml
<modifiableGroup<attribute nameid="exampleGroupAQO_Avg_Min_Week_constraintType_RT">
				<timeSeries>	<conditionalSelection>
						<parameterId>QO</parameterId><option value="hard">
				</timeSeries>
				<attribute id="wQO<disabledAttributeId>wQO_Avg_Req_Day_RT">
RT</disabledAttributeId>
						<comment>Original value: @wQO_Avg_Req_Day</option>
						<option value="soft">
							<disabledAttributeId>wQO_Avg_Min_Day_RT</disabledAttributeId>
						</option>
					</conditionalSelection>
					<comment>Original value: @QO_Avg_Min_Week_constraintType_RT@</comment>
</attribute>

...

Define which locations are modifiable

To define from which locations the attributes can be modified there are 3 options available:

  1. locationSetId,
  2. locationId,
  3. timeSeries

When the first two options are used the set of modifiable locations is determined in the following way. After selecting a topology node the module config quick scanner will determine which locations are available in the workflow of the selected node. The intersection of the locations which are found for the selected node and the configured locations (by either a location set or a list of locations) is the set of modifiable locations for the selected node.

The option timeSeries can be used to define a filter. First all the time series which are  used in the topology workflow are determined. Then the found time series are filtered by using the defined filter the locations of the resulting time series are the modifiable locations for a toplogy node.

Below a configuration example of the option <timeSeries>If this option is configured an additional button "export" will be shown in the modifiers display. It is possible to export the location attribute modifiers to dbf-format or csv-format. Each modifierGroup will be exported to a separate file. In addition a file called description.txt will be exported. This file will contain general information about the exported modifier. By default the data will be exported to dbf-format. Below an example of a location attribute modifier which is exported to csv-format.

Code Block
languagexml
Location id,URBS_LOSSTYPE,URBS_IL,URBS_CL,URBS_PR,URBS_IF,URBS_ILMX,URBS_RF,URBS_IFRF
tweed_eungella,ILCL,2.0,22.0,0.0,1.0E31,0.0,0.0,0.0

 Below an example.

Code Block
languagexml
<locationAttributeModifier id="example" name="example<modifiableGroup name="exampleGroupA">
			<exportFile>	<timeSeries>
				<fileName>example</fileName>
				<exportAllAttributes>true</exportAllAttributes>
				<dataFormat>csv</dataFormat>
	<parameterId>QO</parameterId>
				</exportFile>
			<modifiableGroup name="exampleGroupA">
				<locationSetId>MODIFIABLE_PROJECTS_QO_Avg_Min</locationSetId>timeSeries>
				<attribute id="wQO_Avg_Req_Day_RT">
					<comment>Original value: @wQO_Avg_Req_Day_RT@</comment>
				</attribute>
				<attribute id="wQO_Avg_Min_Day_RT">
					<comment>Original value: @wQO_Avg_Min_Day_RT@</comment>
				</attribute>
				<tabularLayout>
					<showOriginalValues>false</showOriginalValues>
					<locationOrientation>row</locationOrientation>
				</tabularLayout>
			</modifiableGroup>
</locationAttributeModifier>


Export file

If this option is configured an additional button "export" will be shown in the modifiers display. It is possible to export the location attribute modifiers to dbf-format or csv-format. Each modifierGroup will be exported to a separate file. In addition a file called description.txt will be exported. This file will contain general information about the exported modifier. By default the data will be exported to dbf-format. Below an example of a location attribute modifier which is exported to csv-format.

Code Block
languagexml
Location id,URBS_LOSSTYPE,URBS_IL,URBS_CL,URBS_PR,URBS_IF,URBS_ILMX,URBS_RF,URBS_IFRF
tweed_eungella,ILCL,2.0,22.0,0.0,1.0E31,0.0,0.0,0.0

 Below an example.

Code Block
languagexml
<locationAttributeModifier id="example" name="example">
			<exportFile>
				<fileName>example</fileName>
				<exportAllAttributes>true</exportAllAttributes>
				<dataFormat>csv</dataFormat>
			</exportFile>
			<modifiableGroup name="exampleGroupA">
				<locationSetId>MODIFIABLE_PROJECTS_QO_Avg_Min</locationSetId>
				<attribute id="wQO_Avg_Req_Day_RT">
					<comment>Original value: @wQO_Avg_Req_Day_RT@</comment>
				</attribute>
				<attribute id="wQO_Avg_Min_Day_RT">
					<comment>Original value: @wQO_Avg_Min_Day_RT@</comment>
				</attribute>
				<tabularLayout>
					<showOriginalValues>false</showOriginalValues>
					<locationOrientation>row</locationOrientation>
				</tabularLayout>
			</modifiableGroup>
</locationAttributeModifier>

The element <fileName> is used The element <fileName> is used to define the name of export file. The element <exportAllAttributes> can be used to define if only the visible attributes (exportAllAttributes=false) should be exported or all the attributes (exportAllAttributes=true). Currently two dataFormats are supported for the export function csv and dbf. The dataFormat can be configured by using the element <dataFormat>. Below an example of a modifier with the element <exportFile> configured.

...

defaultValidTime
If this option is configured than a valid time can be chosen for this modifier. The valid time always default to time zero.


priorityModifier

Transformation module parameter modifiers

Reverse order modifiers

This modifier can be used to reverse the data hierarchy of the merge simple transformation.

When this modifier is active on the transformation the data hierachy is reversed.

Modifier by which module parameter type 'table' can be modified. This modifier presently supports reordening of the table rows for the given moduleParameterId. This moduleParameterId refers to the 'table' parameter defined in pi_modelparameters.xml. When a modifier is created, the original table values are filled in by default. It enables the user to re-order the "priorities" in the modifier display.

Image Added

Transformation module parameter modifiers

Reverse order modifiers

This modifier can be used to reverse the data hierarchy of the merge simple transformation.

When this modifier is active on the transformation the data hierachy is reversed.

An example of the An example of the use of this modifier is the switchts-modifier of the NWS. With this modifier the forecasters temporarily favor one timeseries above the other because the timeseries which normally is used as the primary timeseries is considered to be less reliable.

...

Code Block
languagexml
<mergeSimpleModifiers>
		<reverseOrderModifiers id="switchts" name="SWITCHTS">
			<defaultStartTime>start run</defaultStartTime>
			<defaultEndTime>time zero</defaultEndTime>
		</reverseOrderModifiers>
</mergeSimpleModifiers>

 

defaultStartTime

The default start time of the modifier. The available options are startrun and time zero. It corresponds to the same field in the modifier display.

...

Code Block
<parameters xmlns="http://www.wldelft.nl/fews/PI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.5" xsi:schemaLocation="http://www.wldelft.nl/fews/PI httphttps://chps1fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_modelparameters.xsd"> 
	<group id="default"> 
		<parameter id="blendingSteps"> 
			<intValue>1</intValue> 
		</parameter> 
		<parameter id="interpolationType"> 
			<stringValue>difference</stringValue>
		</parameter>
		<parameter id="disableAdjustment"> <
			<boolValue>false</boolValue> 
		</parameter>
	</group> 
</parameters>

...

The picture below shows both the  original and the referenced rating curves:

 

Configuration example

Code Block
languagexml
<ratingCurveModifiers>
	<tableRatingCurveModifier id="tableRC" name="table RC">
		<defaultStartTime>start run</defaultStartTime>
		<defaultEndTime>end run</defaultEndTime>
	</tableRatingCurveModifier>
</ratingCurveModifiers>

...

  • The time series modifier has always a start- and end date.
  • The time series modifier can (Optionally, if configured) have a valid time.

When a valid time is used the behaviour is different for time series types:

  • When a modified time series is a simulated forecast timeseries and the valid time is equal to time zero (or later) then the entire modifier will be applied, otherwise the modifier will only be applied up to the valid time. When a modifier is created the valid time will be equal to the system time. In this situation the entire modifier will be applied. When the modifier is still available and used in later runs with a later time zero then the modifier will only be partly applied up to the valid time. This functionality was developed for the following situation. When the data of a simulated time series before time zero is a copy of the observed data this part of the simulation is not likely to change in simulations which are executed at a later time. So the part of the modifier before time zero (valid time) is still valid in later runs. However the part of the modifier after time zero is likely to be invalid because this part of the time series more likely to change in later runs.
  • When a modified time series is an external forecast time series, and no valid time is configured, the modifier is valid for all external forecast times.
  • When a modified time series is an external forecast time series, and a valid time is configured, the modifier is valid for the valid time only.

The forecaster can modify time series by making changes in table or in the graph. The changes in the graph are made by clicking in the graph.

  • When the user clicks from left to right then the values between the points are interpolated.
  • When the user clicks from right to left only the newly added or changed points are adjusted but no interpolation will be done between the last two points.
  • When more than one time series is shown in the display it is possible to make a selection of which time series should edited when making changes by clicking in the graph.
  • The time series which should be changed can be selected by clicking on the legend of that example time series in the graph.

Besides modifying the time series by editing values in the graph or table, processing functions can be selected from the dropdownbox. Available processing functions are:

  • add
  • subtract
  • multiply
  • divide
  • replace
  • missing
  • ignore time series
  • time series

When one of the options add, subtract, multiply, divide or replace is chosen than a text box in which a value can be entered appears next to the operation type-dropdownbox.

Image Removed
The options add, subtract, multiply, divide or replace are self-explaining. They add, subtract, multiply, divide or replace the timeseries with the specified value over the specified period of time.

The option missing replaces the values in the time series with missing values over the specified period of time, the ignore time series sets the value over the specified period of time to unreliable.

The last option time series is the default option which will be selected after the initial creation of this modifier and this option allows the forecaster to freely edit the timeseries.

An example of the use of the time series modifier is the RRICHNG modifier.

Display

Below a screenshot of the timeseries modifier.

Image Removed

Configuration example

Code Block
languagexml
<timeSeriesModifier id="rrichng" name="rrichng">
		<timeSeries>
			<moduleInstanceSetId>SNOW17_Forecast</moduleInstanceSetId>
			<valueType>scalar</valueType>
			<parameterId>RAIM</parameterId>
			<locationSetId>Gages_Catchments</locationSetId>
			<timeSeriesType>simulated forecasting</timeSeriesType>
			<timeStep unit="hour" multiplier="6"/>
		</timeSeries>
		<defaultStartTime>start run</defaultStartTime>
		<defaultEndTime>end run</defaultEndTime>
		<defaultValidTime/>
		<resolveInWorkflow>true</resolveInWorkflow>
		<resolveInPlots>false</resolveInPlots>
		<createContinuousModifiers>true</createContinuousModifiers>
</timeSeriesModifier>

timeSeries

This element can be used to identify to which timeseries this modifier can be applied.

onlyApplyLastModifier

If this option is enabled only the most recent applicable modifier of this type will be applied

mergeUncommittedModifiers

If this option is enabled uncommitted modifiers will be merged into one modifier. This option is limited to modifiers which only modify a single time series

referenceTimeSeries

This option can be used to define a filter for reference time series. The available time series for the selected node in the topology will be filtered by using the defined filter. 

Only the reference time series which belong to the same parameter group as the modifiers which are being editted in the display will be displayed.

In addition only the reference time series which have the same location(s) as the time series which are being modified will be shown. 

defaultValidTime

Forecast time after which the modifier is no longer valid. If omitted, this value will be default to the year 3000 and the valid time entry box will not be shown in the modifier display. Note that the only way to get the validTime option available, is to add: <defaultValidTime/> (without attributes or content)

offsetValidTime

an offset to the default valid time, compared to the T0 of the run

resolveInWorkflow
In the element timeSeries is a filter defined which defines which timeseries can be modified with this timeseries. If the element resolveInWorkflow is set than the modifier can be applied to all timeseries in the current workflow to which the defined time
series filter applies. In an IFD-environment the current workflow is the workflow which is associated to the selected topology node.

resolveInPlots
This element can only be used in IFD-environments. If this element is enabled than the timeseries-filter is also applied to all timseries in the plots associated with the current selected topology node.

editInPlots
It is possible to create a timeseries modifier in the plot displays. This can be done by selecting a timeseries by selecting a legend. After selection the timeseries can be modified by graphically editing the timeseries or by changing values in the graph. This feature can
be disabled by setting this option to false.

createContinousModifiers
If a modifier is created in the graph by default one modifier will be created. However when the option createContinousModifiers is disabled one modifier will be created for every continuous range of modifications made. For example if the forecaster changes a 6 hours timeseries at 00z and at 12z but not a 0600z than by default this will result in creating a single modifier, but when this option is disabled two modifiers will be created. One for each continuous range of changes. In this case there is a change at 00z and one at 12z therefore two modifiers will be created.

Graphical appointment of modifiers (aka GAM)

Image Removed

To make use of the graphical appointment of modifiers menu, you need to configure several things in the ModifierTypes.xml


The forecaster can modify time series by making changes in table or in the graph. The changes in the graph are made by clicking in the graph.

  • When the user clicks from left to right then the values between the points are interpolated.
  • When the user clicks from right to left only the newly added or changed points are adjusted but no interpolation will be done between the last two points.
  • When more than one time series is shown in the display it is possible to make a selection of which time series should edited when making changes by clicking in the graph.
  • The time series which should be changed can be selected by clicking on the legend of that example time series in the graph.

Besides modifying the time series by editing values in the graph or table, processing functions can be selected from the dropdownbox. Available processing functions are:

  • add
  • subtract
  • multiply
  • divide
  • replace
  • missing
  • ignore time series
  • time series

When one of the options add, subtract, multiply, divide or replace is chosen than a text box in which a value can be entered appears next to the operation type-dropdownbox.

Image Added
The options add, subtract, multiply, divide or replace are self-explaining. They add, subtract, multiply, divide or replace the timeseries with the specified value over the specified period of time.

The option missing replaces the values in the time series with missing values over the specified period of time, the ignore time series sets the value over the specified period of time to unreliable.

The last option time series is the default option which will be selected after the initial creation of this modifier and this option allows the forecaster to freely edit the timeseries.

An example of the use of the time series modifier is the RRICHNG modifier.

Display

Below a screenshot of the timeseries modifier.

Image Added

Configuration example

Code Block
languagexml
<timeSeriesModifier id="rrichng" name="rrichng">
		<timeSeries>
			<moduleInstanceSetId>SNOW17_Forecast</moduleInstanceSetId>
			<valueType>scalar</valueType>
			<parameterId>RAIM</parameterId>
			<locationSetId>Gages_Catchments</locationSetId>
			<timeSeriesType>simulated forecasting</timeSeriesType>
			<timeStep unit="hour" multiplier="6"/>
		</timeSeries>
		<defaultStartTime>start run</defaultStartTime>
		<defaultEndTime>end run</defaultEndTime>
		<defaultValidTime/>
		<resolveInWorkflow>true</resolveInWorkflow>
		<resolveInPlots>false</resolveInPlots>
		<createContinuousModifiers>true</createContinuousModifiers>
</timeSeriesModifier>


timeSeries

This element can be used to identify to which timeseries this modifier can be applied.

onlyApplyLastModifier

If this option is enabled only the most recent applicable modifier of this type will be applied

mergeUncommittedModifiers

If this option is enabled uncommitted modifiers will be merged into one modifier. This option is limited to modifiers which only modify a single time series

referenceTimeSeries

This option can be used to define a filter for reference time series. The available time series for the selected node in the topology will be filtered by using the defined filter. 

Only the reference time series which belong to the same parameter group as the modifiers which are being editted in the display will be displayed.

In addition only the reference time series which have the same location(s) as the time series which are being modified will be shown. 

defaultValidTime

Forecast time after which the modifier is no longer valid. If omitted, this value will be default to the year 3000 and the valid time entry box will not be shown in the modifier display. Note that the only way to get the validTime option available, is to add: <defaultValidTime/> (without attributes or content)

offsetValidTime

an offset to the default valid time, compared to the T0 of the run

resolveInWorkflow
In the element timeSeries is a filter defined which defines which timeseries can be modified with this timeseries. If the element resolveInWorkflow is set than the modifier can be applied to all timeseries in the current workflow to which the defined time
series filter applies. In an IFD-environment the current workflow is the workflow which is associated to the selected topology node.

resolveInPlots
This element can only be used in IFD-environments. If this element is enabled than the timeseries-filter is also applied to all timseries in the plots associated with the current selected topology node.

editInPlots
It is possible to create a timeseries modifier in the plot displays. This can be done by selecting a timeseries by selecting a legend. After selection the timeseries can be modified by graphically editing the timeseries or by changing values in the graph. This feature can
be disabled by setting this option to false.

createContinousModifiers
If a modifier is created in the graph by default one modifier will be created. However when the option createContinousModifiers is disabled one modifier will be created for every continuous range of modifications made. For example if the forecaster changes a 6 hours timeseries at 00z and at 12z but not a 0600z than by default this will result in creating a single modifier, but when this option is disabled two modifiers will be created. One for each continuous range of changes. In this case there is a change at 00z and one at 12z therefore two modifiers will be created.

Graphical appointment of modifiers (aka GAM)

Image Added

In order to make use of the graphical appointment of modifiers menu, it is adviced to configure the TimeSeries Display as PlotsTimeSeriesDialog in Explorer.xml:

Code Block
		<explorerTask name="Data Display">
            ..
			<taskClass>nl.wldelft.fews.gui.plugin.timeseries.PlotsTimeSeriesDialog</taskClass>
            ..
		</explorerTask>


Then, you need to configure several things in the ModifierTypes.xml

Create a modifier type for the parameter you want to modify (as Create a modifier type for the parameter you want to modify (as described on this page), e.g.:

...

An example of the missing value modifier is shown below.

 

Configuration example


Code Block
languagexml
<missingValueModifier id="setmsng" name="setmsng">
		<timeSeries>
			<moduleInstanceId>ImportIHFSDB</moduleInstanceId>
			<valueType>scalar</valueType>
			<parameterId>STG</parameterId>
			<locationSetId>Gages_AK</locationSetId>
			<timeSeriesType>external historical</timeSeriesType>
			<timeStep unit="hour" multiplier="6"/>
		</timeSeries>
		<timeSeries>
			<moduleInstanceId>ImportIHFSDB</moduleInstanceId>
			<valueType>scalar</valueType>
			<parameterId>STG</parameterId>
			<locationSetId>Gages_AK</locationSetId>
			<timeSeriesType>external historical</timeSeriesType>
			<timeStep unit="hour" multiplier="1"/>
		</timeSeries>
		<defaultStartTime>start run</defaultStartTime>
		<defaultEndTime>end run</defaultEndTime>
		<resolveInWorkflow>false</resolveInWorkflow>
		<resolveInPlots>true</resolveInPlots>
</missingValueModifier>

...

Code Block
languagexml
titleExample config of a spatial profile modifier
	<spatialProfileModifier id="SpatialProfile" name="Spatial Profile">
		<expiryTime unit="day" multiplier="2"/>
		<userDefinedDescriptionField id="Comment" descriptionField="Comment"/>
		<timeSeries>
			<moduleInstanceId>Import_NWP_Mediumrange</moduleInstanceId>
			<qualifierId>BE</qualifierId>
		</timeSeries>
		<timeSeries>
			<moduleInstanceId>Import_NWP_Mediumrange</moduleInstanceId>
			<qualifierId>RWC</qualifierId>
		</timeSeries>
		<descriptiveFunctionGroups>
			<descriptiveFunctionGroup name="Basic statistics">
				<descriptiveFunction function="startTime" ignoreMissings="true"/>
				<descriptiveFunction function="endTime" ignoreMissings="true"/>
				<descriptiveFunction function="timeLength" ignoreMissings="true"/>
			</descriptiveFunctionGroup>
			<descriptiveFunctionGroup name="Accumulation">
				<descriptiveFunction function="movingAccumulationMax" ignoreMissings="true">
					<timeSpan unit="hour" multiplier="1"/>
					<timeSpan unit="hour" multiplier="2"/>
					<timeSpan unit="hour" multiplier="3"/>
					<timeSpan unit="hour" multiplier="4"/>
					<timeSpan unit="hour" multiplier="6"/>
					<timeSpan unit="hour" multiplier="12"/>
					<timeSpan unit="hour" multiplier="24"/>
					<timeSpan unit="hour" multiplier="48"/>
					<timeSpan unit="hour" multiplier="72"/>
					<timeSpan unit="hour" multiplier="96"/>
					<timeSpan unit="hour" multiplier="120"/>
				</descriptiveFunction>
				<descriptiveFunction function="sum" ignoreMissings="true"/>
			</descriptiveFunctionGroup>
		</descriptiveFunctionGroups>
	</spatialProfileModifier>

The regular modifier type configuration elements such as <expiryTime> and <userDefinedDescription> field are available. The configuration elements specific for this modifier are explained below.

timeSeries

The <timeSeries> elements are time series filters used to configure to which time series the spatial profile modifier can be applied. In the given example, any time series with module instance id "Import_NWP_Mediumrange" and qualifier id "BE" or "RWC" can be modified with a spatial profile modifier. If such a time series is shown in the spatial display, the spatial modifier mode button and the spatial profile button used to create spatial profile modifiers will be available. The configured time series should always be a grid time series. Configuring a spatial copy modifier for a time series with a different type will have no effect.

descriptiveFunctionGroups

This is an optional element to configure the statistics shown in the statistics panel. When this element is not configured, the statistics panel (and button) will be hidden in the spatial profile modifier editor. More information on the available descriptiveFunctions can be found in Configuration Guide > System Configuration > Time Series Display Configuration.

"Apply to"  option

Via "Apply To" button it is possible to apply a  single  modifier to an entire forecast group or range of basins . In case of time series modifiers  an option  “create unique modifiers for each time series” can also be used.

This option makes possible to create a modifier  as an unique independent  modifier for each of the selected segments.  The  option is useful  when many segments  need the same type of modifier but the  forecaster needs to make adjustments to a subset of the initial group modifier.

Image Removed

 Applying modifiers in a whatif

By default, modifiers are always applied in the workflow. With the introduction of the new WhatIf Templates/WhatIf Editor functionality in 2021.01, one can configure the system to allow modifiers only to be applied in a whatif.

This behavior is specified in element <whatIfModifierType> available in each modifierType, which offers three options:

  • apply modifier if referenced in a whatif workflow
  • always apply in workflow (default)
  • never apply in a whatif workflow (i.e. always apply unless running a workflow with a whatif attached)
"/>
					<timeSpan unit="hour" multiplier="3"/>
					<timeSpan unit="hour" multiplier="4"/>
					<timeSpan unit="hour" multiplier="6"/>
					<timeSpan unit="hour" multiplier="12"/>
					<timeSpan unit="hour" multiplier="24"/>
					<timeSpan unit="hour" multiplier="48"/>
					<timeSpan unit="hour" multiplier="72"/>
					<timeSpan unit="hour" multiplier="96"/>
					<timeSpan unit="hour" multiplier="120"/>
				</descriptiveFunction>
				<descriptiveFunction function="sum" ignoreMissings="true"/>
			</descriptiveFunctionGroup>
		</descriptiveFunctionGroups>
	</spatialProfileModifier>

The regular modifier type configuration elements such as <expiryTime> and <userDefinedDescription> field are available. The configuration elements specific for this modifier are explained below.

timeSeries

The <timeSeries> elements are time series filters used to configure to which time series the spatial profile modifier can be applied. In the given example, any time series with module instance id "Import_NWP_Mediumrange" and qualifier id "BE" or "RWC" can be modified with a spatial profile modifier. If such a time series is shown in the spatial display, the spatial modifier mode button and the spatial profile button used to create spatial profile modifiers will be available. The configured time series should always be a grid time series. Configuring a spatial copy modifier for a time series with a different type will have no effect.

descriptiveFunctionGroups

This is an optional element to configure the statistics shown in the statistics panel. When this element is not configured, the statistics panel (and button) will be hidden in the spatial profile modifier editor. More information on the available descriptiveFunctions can be found in Configuration Guide > System Configuration > Time Series Display Configuration.

"Apply to"  option

Via "Apply To" button it is possible to apply a single modifier to an entire set of IFD-segments . In case of time series modifiers  and  reverseOrderModifiers an option  “create unique modifiers for each segment” can also be used.

This option is only available when creating a new modifier  and makes possible to create a modifier as an unique independent modifier for each of the selected segments.  The  option is useful  when many segments  need the same type of modifier but the  forecaster needs to make adjustments to a subset of the initial group modifier.

Image Added

Copy time series modifiers

It is possible to copy time series modifiers to another set of modifiers with a different set of module instance descriptors.

This option is available after selecting one or more time series modifiers in the modifiers panels in the menu which appears after a right mouse click.

This option is by default not available. To enable this feature the copyModifiers section needs to configured.

An example is given below.

Code Block
<copyModifiers>
		<timeSeriesModifiersPattern>
			<pattern>MAP</pattern>
			<patternDescription>MAP</patternDescription>
		</timeSeriesModifiersPattern>
		<timeSeriesModifiersPattern>
			<pattern>_HTMS</pattern>
			<patternDescription>1D</patternDescription>
		</timeSeriesModifiersPattern>
		<timeSeriesModifiersPattern>
			<pattern>_Delft3D_UpdateStates</pattern>
			<patternDescription>D3D Update States</patternDescription>
		</timeSeriesModifiersPattern>
		<timeSeriesModifiersPattern>
			<pattern>_Delft3D_0</pattern>
			<patternDescription>D3D Scenario 0</patternDescription>
		</timeSeriesModifiersPattern>
		<timeSeriesModifiersPattern>
			<pattern>_Delft3D_1</pattern>
			<patternDescription>D3D Scenario 1</patternDescription>
		</timeSeriesModifiersPattern>
</copyModifiers>

The configured pattern is the pattern which is actually used when copying modifiers. The pattern description is a pretty name which only used for display purposes in the "Copy modifiers dialog"

After selecting one or more time series modifiers which comply to one of the patterns defined in the copyModifiers section the option "Copy the selected time series modifiers to another module instance id" will appear in the menu.

After selecting the option a panel (see below) in which the user can select a pattern will appear.

Image Added

The user can select a new pattern (only one) from the list. After pressing the OK button the selected time series modifiers will be copied to a new module instance id.

The new module instance id will be determined by replacing the pattern from the existing module instance id with the new selected pattern.

For example if the original module instance id is original_MAP and we have configured two patterns original and copy and we select the pattern copy from the list the new module instance id will be copy_MAP.

All the other characteristics of the time series modifiers will be kept the same. The new copied modifier will only differ in module instance idModifiers which can be referenced in a whatif workflow need to be listed in the whatifTemplates.