You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 40 Next »

What

ModifierTypes.xml

Required

no

Description

Definition of modifiers in an IFD environment

schema location

http://fews.wldelft.nl/schemas/version1.0/modifierTypes.xsd

Contents

Schema

Introduction

A forecaster can modify a forecast with so-called Modifiers. Within FEWS there are two types of modifiers: time series modifiers and parameter modifiers. Parameter modifiers can modify a parameter of a model or of a transformation.

Time series modifiers modify a time series. The original time series is stored in the database. However as soon as this time series is retrieved from the database the modifier will be applied to it. But it is important to note that the original time series is always available in the database.

The modifiers.xml defines which modifiers are available within a fews configuration. The modifiers can be created in the modifiers panel. TimeValue-modifiers can also be created in the plot display by graphicly editing a time series or by changing

values in the table.

Time series modifiers

Single value modifiers

A single value modifier is a modifier which modifies only one value at one time step in a time series.
A single value modifier can only created from the modifier panel.

Display

The display for the single value modifiers is shown below.




The user can enter a value in the text box by entering a value and by clicking on the spinner box next to it. The value can also be adjusted by the slider bar on the right side of the display.

schema

<complexType name="SingleValueModifierTypeComplexType">
		<complexContent>
			<extension base="fews:ModifierBaseComplexType">
				<sequence>
					<element name="timeSeries" type="fews:TimeSeriesFilterComplexType" maxOccurs="unbounded"/>
					<element name="softLimits" type="fews:SoftLimitsComplexType"/>
					<element name="hardLimits" type="fews:HardLimitsComplexType" minOccurs="0"/>
					<element name="defaultTime" type="fews:DefaultStartTimeEnumStringType">
						<annotation>
							<documentation>Start of time period to which modifier is applied.
                        When omitted this value will default to the Year 1000 and will be disabled.
                    </documentation>
						</annotation>
					</element>
					<choice>
						<element name="defaultValue" type="float" minOccurs="0"/>
						<element name="defaultValueTimeSeries" type="fews:TimeSeriesFilterComplexType" minOccurs="0"/>
						<element name="statisticalFunctionDefaultValue" type="fews:statisticalFunctionEnumType" minOccurs="0" maxOccurs="unbounded"/>
					</choice>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
timeSeries

The tag timeseries is used to define to which timeseries this modifier can be applied.

softLimits

The slider in the display is bounded to the soft limits defined. However they can be overruled by entering a higher or lower value in the text box.

hardLimits

The values entered in the text box or the slider are bounded by the hard limits defined.

defaultTime

The default time of the modifier. Currently two options are available time zero and start run.

defaultValue

It is possible to assign a default value to a single value modifier.

The following options are available:

  • default value
  • derive a default value from a time series
  • derive default value from a statistical function

When a default value is configured the modifier will always default to that value. In case the second option is chosen than it is possible to define a timeseries-filter from which the default value should be derived. The modifier will look for a value at the time for which the modifier is defined. The last option allows the forecaster to configure a statistical function from which the value should be derived. Currently only the principal component analysis-functions support this option.

When the principal component analysis is run in the plot display by selecting the principal component analysis-function the output value of this function will be default value for the modifier.

Configuration example
<singleValueModifier id="wechng" name="WECHNG">
	<timeSeries>
		<parameterId>WECHNG</parameterId>
	</timeSeries>
	<softLimits>
		<maximumValue>5</maximumValue>
		<minimumValue>0</minimumValue>
	</softLimits>
	<hardLimits>
		<minimumValue>0</minimumValue>
	</hardLimits>
	<defaultTime>start run</defaultTime>
	<defaultValue>0</defaultValue>
</singleValueModifier>

First the id and name of the modifier is declared. In this case this instance of the singeValueModifier will be identified by wechng.
The timeSeries-part identifies that this modifier can be applied to any time series which have the parameter WECHNG. The modifier has soft limits configured. These limits are used to limit the slider bar in the display. In this example the slider bar will start at 0 and end at 5. But these soft limits can be overruled by manually typing a value lower than zero or higher than 5. The hardLimits identify the upper and lower limit of the mod and they can not be overruled. This means that for this mod only the maximum value of the soft limit of 5 can be overruled because there is a minimum value configured in the hard limits of 0. A single value modifier is only applied at one time step. By default the time step is set to the start of the run in this modifier. The default value is set to 0.

Constant value modifiers

Constant value modifiers are very similar to single value modifiers. But instead of modifying a single value at a particular point in time, they modify a time series over a period of time with a fixed value. Below the display of a constant value modifier is shown. Which is very similar to the display of single value modifier. Note however that this modifier has a start and an end time.

Below an example configuration of a constant value modifer is shown.

<constantValueModifier id="mfc" name="MFC">
	<timeSeries>
		<parameterId>MFC</parameterId>
	</timeSeries>
	<softLimits>
		<maximumValue>10</maximumValue>
		<minimumValue>0</minimumValue>
	</softLimits>
	<defaultStartTime>start run</defaultStartTime>
	<defaultEndTime>end run</defaultEndTime>
	<defaultValue>1</defaultValue>
</constantValueModifier>

The only difference in the configuration of a constant value modifier and a single value modifier is that a default start- and endtime should be configured instead of default time.

Enumeration modifiers


Below an example of the display for an enumeration modifier.

In this type of modifier the forecaster can select several options from a dropdownlist. Each option is translated to a certain value in the time series.
Below is an example of the configuration of an enumeration modifier.

<enumerationModifier id="rainsnow" name="RAINSNOW">
	<timeSeries>
		<parameterId>RAINSNOW</parameterId>
	</timeSeries>
	<descriptionEnumeration>choose precipitation:</descriptionEnumeration>
	<enumeration>
		<item text="rain" value="1"/>
		<item text="snow" value="2"/>
	</enumeration>
	<defaultStartTime>start run</defaultStartTime>
	<defaultEndTime>end run</defaultEndTime>
</enumerationModifier>

This modifier is applied to every time series which has parameter id RAINSNOW because a filter is defined with only the parameterId RAINSNOW.

The text of the label in front of the dropdownlist is configurable. The items in the dropdownlist are also configurable. For this modifier the forecaster can choose between options rain and snow. If snow is selected a value of 2 in set into the time series for the selected period. If rain is selected a value of 1 is written into the time series. The numbers are treated as flags by the model to which the time series is passed.

Time series modifier

The time series modifier is a modifier which directly edits a certain time series. In the example below the display for the RunOff Change (ROCHNG) modifier which is configured to change the model produced runoff. The forecaster can edit this 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.

Below is an example of how a time series modifier should be configured.

<timeSeriesModifier id="rochng" name="ROCHNG">
	<timeSeries>
<moduleInstanceSetId>SACSMA_Forecast</moduleInstanceSetId>
		<valueType>scalar</valueType>
		<parameterId>INFW</parameterId>
		<locationSetId>Gages_Catchments</locationSetId>
		<timeSeriesType>simulated forecasting</timeSeriesType>
		<timeStep unit="hour" multiplier="6"/>
            		<ensembleId>QPF</ensembleId>
</timeSeries>
	<defaultStartTime>start run</defaultStartTime>
	<defaultEndTime>end run</defaultEndTime>
	<resolveInWorkflow>true</resolveInWorkflow>
	<resolveInPlots>false</resolveInPlots>
</timeSeriesModifier>

This modifier can be applied to the time series identified in tag timeseries. The modifier will have a start time equal to the start of the run and will end at the end of the run. The option resolveInWorkflow is set to true and the option resolveInPlots is set to false. This means that the IFD will search for time series which might be modified in the workflow of the selected node but it will not search in the time series which are displayed in the plots for this node.

Mark unreliable modifier


This modifier sets all the values in a time series to unreliable over a period so the data will not be used in the models, but the original values will be displayed.
The forecaster can only edit the start and end dates of the period in which the time series will be set to invalid. In the Modifiers Display table the unreliable values in the modified time series are marked yellow.

Below an configuration example of this type of modifier

<markUnreliableModifier id="ignorets" name="IGNORETS">
	<timeSeries>
		<moduleInstanceSetId>RESSNGL_Forecast</moduleInstanceSetId>
		<valueType>scalar</valueType>
		<parameterId>PELV</parameterId>
		<locationSetId>Reservoirs</locationSetId>
		<timeSeriesType>simulated forecasting</timeSeriesType>
		<timeStep unit="hour" multiplier="1"/>
	</timeSeries>
	<defaultStartTime>start run</defaultStartTime>
	<defaultEndTime>end run</defaultEndTime>
</markUnreliableModifier>

In the tag time series can be specified to which time series this modifier can be applied. In the tag defaultStartTime the default start of the modifier can be specified. The configuration can choose start run or time zero. The tag defaultEndTime can be used to specify the default end time of the modifier. The configuration can choose time zero or end run.

Compound modifier


The compound modifier can be used to modify a set of time series with slider bars. Each slider shows a reference value in blue and the modified value. Initially the modified value is equal to the reference value. For each slider there is a time series configured which stores the modified value and a time series configured which holds the reference value. This type of modifier is typically used as a state modifier of models. The reference values show the current state of the model. The modified values in the boxes show the modified state values. The maximum value of the slider bar is derived from a parameter in the linked module parameter file.

Below an example of the configuration of a compound modifier. In this example a part of the sacco configuration is not shown but only the configuration of one of the five sliders is shown.
For each slider the time series which holds the reference values should be configured, and the time series which should contain the modified value should be configured. Each slider also has maximum value. This maximum is retrieved from the module parameter file of the model. The tag maximumAllowedValueParameterId identifies which parameter should be used to identify the maximum.

<compoundModifier id="sacco" name="SACCO">
		<slider>
			<currentTimeSeries>
				<moduleInstanceSetId>SACSMA_Forecast</moduleInstanceSetId>
				<valueType>scalar</valueType>
				<parameterId>UZTWC</parameterId>
				<locationSetId>Gages_Catchments</locationSetId>
				<timeSeriesType>simulated forecasting</timeSeriesType>
				<timeStep unit="hour" multiplier="6"/>
			</currentTimeSeries>
			<modifiedTimeSeries>
				<moduleInstanceId>ExportMODS</moduleInstanceId>
				<valueType>scalar</valueType>
				<parameterId>UZTWC</parameterId>
				<locationSetId>Gages_Catchments</locationSetId>
				<timeSeriesType>external historical</timeSeriesType>
				<timeStep unit="nonequidistant"/>
			</modifiedTimeSeries>
			<maximumAllowedValueParameterId>UZTWM</maximumAllowedValueParameterId>
		</slider>
		<defaultTime>start run</defaultTime>
	</compoundModifier>

The default time of the model can also be configured. The configurator can choose between start run or time zero.

Missing value modifier


The missing value modifier can be used to set the values in a time series to missing over a period of time.



Like the Mark Unreliable Modifier, for the Missing Value modifier, the forecaster can only edit the start date and the end date of period in which the values of the time series should be set to missing. In the table and the graph of the Modifiers Display the values of the modified time series are not shown when they have been set to missing.


Below an example of the configuration of a missing value modifier.

<missingValueModifier id="setmsng" name="SETMSNG">
        <timeSeries>
            <parameterId>QIN</parameterId>    
        </timeSeries>
        <defaultStartTime>start run</defaultStartTime>
        <offsetDefaultStartTime unit="day" multiplier="1"/>
        <defaultEndTime>time zero</defaultEndTime>
        <offsetDefaultEndTime unit="day" multiplier="100"/>
        <expiryTime unit="day" multiplier="100"/>
        <resolveInWorkflow>false</resolveInWorkflow>
        <resolveInPlots>true</resolveInPlots>
</missingValueModifier>

This missing value modifier can only be applied to time series which have the parameterid QIN because the tag timeseries defines a timeseries-filter with parameterId QIN.

When a missing value modifier is created from the modifiers panel by default the start time of the modifier will be equal to the start of the run plus 1 day.

The end of the modifier will default to time zero plus 100 days.

The tag resolveInWorkflow is set to false and the resolveInPlots tag is set to true which means that the modifier can be applied to all time series in the plots of the node, but will not be applied to the time series identified in the workflow of the node. In this example there are no time series defined to which this modifier should be applied. This means it can applied to all time series which are defined in the plots of a node.

Switch option modifier


This modifier allows the forecaster to generate several linked time series. This modifier is currently used to set regulation options for a basin. For each regulation option a time series should be identified. There are two types of time series which can be configured, time series in which the forecaster can enter any value and time series which can only contain a 1 when the option is switched on.
Below an example of the display of a switch option modifier.

For each data at a model time step one of the options can be selected by the radio-button-field. In the value field the forecaster can enter a value or if the option is only a switch on option, the value field is blocked. The add-icon automatically adds a new entry to the table. By default the new entry will have the data of the current row plus one model time step. The delete-icon deletes all the selected rows. The entries are allways in sequence.
Below an example of a switch option modifier. For each regulation option available in the display a time series should be defined. The parameterid of the configured time series will be used as the name of the regulation option in the column regulation.

<switchOptionModifier id="ssarreg" name="ssarreg">
	        <timeValueTimeSeries>
	            <moduleInstanceId>ExportMODS</moduleInstanceId>
	            <valueType>scalar</valueType>
	            <parameterId>SETH</parameterId>
	            <qualifierId>US</qualifierId>
	            <locationSetId>ImportIHFSDB</locationSetId>
	            <timeSeriesType>external forecasting</timeSeriesType>
	            <timeStep unit="nonequidistant"/>
	            <ensembleId>main</ensembleId>
	        </timeValueTimeSeries>
	        <timeValueTimeSeries>
	            <moduleInstanceId>ExportMODS</moduleInstanceId>
	            <valueType>scalar</valueType>
	            <parameterId>SETQ</parameterId>
	            <qualifierId>US</qualifierId>
	            <locationSetId>ImportIHFSDB</locationSetId>
	            <timeSeriesType>external forecasting</timeSeriesType>
	            <timeStep unit="nonequidistant"/>
	            <ensembleId>main</ensembleId>
	        </timeValueTimeSeries>
	        <timeValueTimeSeries>
	            <moduleInstanceId>ExportMODS</moduleInstanceId>
	            <valueType>scalar</valueType>
	            <parameterId>SETS</parameterId>
	            <qualifierId>US</qualifierId>
	            <locationSetId>ImportIHFSDB</locationSetId>
	            <timeSeriesType>external forecasting</timeSeriesType>
	            <timeStep unit="nonequidistant"/>
	            <ensembleId>main</ensembleId>
	        </timeValueTimeSeries>
	        <timeValueTimeSeries>
	            <moduleInstanceId>ExportMODS</moduleInstanceId>
	            <valueType>scalar</valueType>
	            <parameterId>SETDH</parameterId>
	            <qualifierId>US</qualifierId>
	            <locationSetId>ImportIHFSDB</locationSetId>
	            <timeSeriesType>external forecasting</timeSeriesType>
	            <timeStep unit="nonequidistant"/>
	            <ensembleId>main</ensembleId>
	        </timeValueTimeSeries>
	        <timeValueTimeSeries>
	            <moduleInstanceId>ExportMODS</moduleInstanceId>
	            <valueType>scalar</valueType>
	            <parameterId>SETDQ</parameterId>
	            <qualifierId>US</qualifierId>
	            <locationSetId>ImportIHFSDB</locationSetId>
	            <timeSeriesType>external forecasting</timeSeriesType>
	            <timeStep unit="nonequidistant"/>
	            <ensembleId>main</ensembleId>
	        </timeValueTimeSeries>
	        <booleanTimeSeries>
	            <moduleInstanceId>ExportMODS</moduleInstanceId>
	            <valueType>scalar</valueType>
	            <parameterId>FREEFLOW</parameterId>
	            <qualifierId>US</qualifierId>
	            <locationSetId>ImportIHFSDB</locationSetId>
	            <timeSeriesType>external forecasting</timeSeriesType>
	            <timeStep unit="nonequidistant"/>
	            <ensembleId>main</ensembleId>
	        </booleanTimeSeries>
	        <timeValueTimeSeries>
	            <moduleInstanceId>ExportMODS</moduleInstanceId>
	            <valueType>scalar</valueType>
	            <parameterId>SETDS</parameterId>
	            <qualifierId>US</qualifierId>
	            <locationSetId>ImportIHFSDB</locationSetId>
	            <timeSeriesType>external forecasting</timeSeriesType>
	            <timeStep unit="nonequidistant"/>
	            <ensembleId>main</ensembleId>
	        </timeValueTimeSeries>
	        <startTime>start run</startTime>
	     <effectiveDate></effectiveDate>
    </switchOptionModifier>

Module parameter modifiers


Blending steps modifier


One of the parameters of the adjustQ-transformation is the blending steps. This parameter determines in how many steps the blend from the observed time series to the simulated time series is done. Below is an example of a blending steps modifier. The forecaster can enter the value in the text box and/or change it with the up and down arrows next to the text box.

Below an example of the configuration an adjustQModifier. The only thing the configurator has to configure is the id of the modifier and its name.

<adjustQModifiers>
	<blendingStepsModifier id="chgblend" name="chgblend"></blendingStepsModifier>
</adjustQModifiers>

Sample years modifier


The transformation sample historic creates ensembles based on historic time series. This modifier enables the forecaster to change the start year and the end year of the historic time series to sample.
Below an example of the display of this modifier.

The forecaster can modifiy the default sample years by changing the start year and end year in the display.
Below an example of the configuration of this modifier.

Module parameter modifier

<sampleHistoricalModifiers>
	<sampleYearsModifier id="historicwateryears" name="historicwateryears"></sampleYearsModifier>
</sampleHistoricalModifiers>

The module parameter is a generic modifier which can be used to edit any type of module parameter file. Below an example of the display of a module parameter modifier. In this example only one parameter can be modified.


Below an example of the configuration of a module parameter modifier. With the tag filter can be identified which module parameter files can be modified. In the example below every module parameter file with the tag CONSTANT_BASE_FLOW can be modified. The filter is also used to filter which part of the module parameter file can be modified. In the example below only the module parameters with id CONSTANT_BASE_FLOW are shown in the modifiers display and are editable.

<moduleParameterModifier id="baseflow" name="BASEFLOW">
    	<filter>
    		<moduleParameterId>CONSTANT_BASE_FLOW</moduleParameterId>
    	</filter>
    	<defaultValidTime/>
    </moduleParameterModifier>

Change ordinates modifier


This modifier can be used to change the ordinates of the module parameter file of the unit Hydrograph-model. Below an example of the display of this modifier. The ordinates can be changed in the table or in the graph. When the user presses the apply button the ordinates are adjusted by using a volume-correction. The volume correcton will ensure that the volume without the modifier applied is the same as the volume of unit hydrograph after the modifier is applied.

Below an example of the configuration of this modifier.

<unitHydrographModifiers>
    	<changeOrdinatesModifier id="unithg" name="UNITHG">
    		<defaultStartTime>start run</defaultStartTime>
    		<defaultEndTime>end run</defaultEndTime>
    		<defaultValidTime/>
    	</changeOrdinatesModifier>
</unitHydrographModifiers>

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. Below an example of the display of this modifier. This display is blank, the forecaster can only enter a period in which this modifier is active.

Below a configuration example.

<mergeSimpleModifiers>
	<reverseOrderModifiers id="switchTs" name="SWITCHTS">
		<defaultStartTime>start run</defaultStartTime>
		<defaultEndTime>time zero</defaultEndTime>
	</reverseOrderModifiers>
</mergeSimpleModifiers>
  • No labels