Versions Compared

Key

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


For multivariate threshold crossings a transformation is used to combine the multiple input time series to 1 output time series which is connected to thresholds.

For each line in the threshold crossing matrix on top of the page a rule should be defined, specifying which and how many input time series should have a value higher than a certain boundary.

Each rule has a rule outcome which will be the value written to the output time series. Those output values should be connected to a threshold value in the threshold value sets.

The <inputVariableAttributeId> specifies which input variable is used to find the input time series and <inputLocationSetIdAttributeId> specifies which locations within the variable should be used.

The <lowerBoundAttributeId> specifies the trigger for the input time series in order to apply to to rule.

The <numberOfTimeSeriesWithinBoundariesAttributeId> specifies how many of the time series need to have their trigger crossed in order for the rule to apply.


Code Block
languagexml
titleExample multivariate threshold tranformation
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2007 sp2 (http://www.altova.com) by WL | Delft Hydraulics (WL | Delft Hydraulics) -->
<transformationModule version="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.wldelft.nl/fews"
					  xsi:schemaLocation="http://www.wldelft.nl/fews http://fews.wldelft.nl/schemas/version1.0/transformationModule.xsd">
	<variable>
		<variableId>ForecastRain</variableId>
		<timeSeriesSet>
			<moduleInstanceId>ImportMultiVariateInput</moduleInstanceId>
			<valueType>scalar</valueType>
			<parameterId>P.radar.forecast</parameterId>
			<locationSetId>MultiVarHyFSInput</locationSetId>
			<timeSeriesType>external historical</timeSeriesType>
			<timeStep unit="day"/>
			<relativeViewPeriod unit="day" start="-12" end="0"/>
			<readWriteMode>editing visible to all future task runs</readWriteMode>
		</timeSeriesSet>
	</variable>
	<variable>
		<variableId>ObservedRain</variableId>
		<timeSeriesSet>
			<moduleInstanceId>ImportMultiVariateInput</moduleInstanceId>
			<valueType>scalar</valueType>
			<parameterId>P.obs</parameterId>
			<locationSetId>MultiVarHyFSInput</locationSetId>
			<timeSeriesType>external historical</timeSeriesType>
			<timeStep unit="day"/>
			<relativeViewPeriod unit="day" start="-12" end="0"/>
			<readWriteMode>editing visible to all future task runs</readWriteMode>
		</timeSeriesSet>
	</variable>
	<variable>
		<variableId>ObservedFlooding</variableId>
		<timeSeriesSet>
			<moduleInstanceId>ImportMultiVariateInput</moduleInstanceId>
			<valueType>scalar</valueType>
			<parameterId>H.obs</parameterId>
			<locationSetId>MultiVarHyFSInput</locationSetId>
			<timeSeriesType>external historical</timeSeriesType>
			<timeStep unit="day"/>
			<relativeViewPeriod unit="day" start="-12" end="0"/>
			<readWriteMode>editing visible to all future task runs</readWriteMode>
		</timeSeriesSet>
	</variable>
	<variable>
		<variableId>output</variableId>
		<timeSeriesSet>
			<moduleInstanceId>MultiVariateThresholdsTransformation</moduleInstanceId>
			<valueType>scalar</valueType>
			<parameterId>H.sim</parameterId>
			<locationId>MultiVarHyFSOutput1</locationId>
			<timeSeriesType>simulated forecasting</timeSeriesType>
			<timeStep unit="day"/>
			<relativeViewPeriod unit="day" start="-12" end="0"/>
			<readWriteMode>editing visible to all future task runs</readWriteMode>
		</timeSeriesSet>
	</variable>
	<transformation id="MultiVariateHyFS">
		<multipleLocationAttributes>
			<multiVariateThresholdsHyFS>
				<ruleAttributeId>ruleId</ruleAttributeId>
				<inputVariableAttributeId>variable</inputVariableAttributeId>
				<inputLocationSetIdAttributeId>inputLocationSetId</inputLocationSetIdAttributeId>
				<lowerBoundAttributeId>lowerBound</lowerBoundAttributeId>
				<numberOfTimeSeriesWithinBoundariesAttributeId>numberOfTimeSeries</numberOfTimeSeriesWithinBoundariesAttributeId>
				<ruleOutcomeAttributeId>ruleOutcome</ruleOutcomeAttributeId>
				<outputVariable>
					<variableId>output</variableId>
				</outputVariable>
			</multiVariateThresholdsHyFS>
		</multipleLocationAttributes>
	</transformation>
</transformationModule>


When a rule is a combination of multiple input variable like forecastRain and observedWaterlevel multiple lines a csv file will make up 1 rule, as can be seen in rule5, rule6 and rule8


MultiVariateThresholdsAttributesHyFS.csv
idvariableinputLocationSetIdruleIdlowerBoundruleOutcomenumberOfTimeSerieslowerBoundInclusiveseveritycertaintyinstructionresponseTypeurgencyheadline
OutputLocForecastRainInputLocSetrule0-999-11FALSE      
OutputLocForecastRainInputLocSetrule11012FALSEminorpossibleMonitor the situation as Minor Flooding is possibleAssessFutureMinor Flooding is possible in Coffs Creek
OutputLocObservedRainInputLocSetrule21022FALSEminorlikelyAssess your surroundingsAvoidExpectedMinor Flooding is possible in Coffs Creek
OutputLocObservedFloodingInputLocSetrule31032FALSEminorobservedAvoid Flood watersPrepareImmediateMinor Flooding has been observed in Coffs Creek
OutputLocForecastRainInputLocSetrule42042FALSEseverepossiblePrepare for Major FloodingPrepareFutureMajor Flooding is possible in Coffs Creek
OutputLocForecastRainInputLocSetrule52052FALSEseverepossiblePrepare for Major FloodingPrepareFutureMajor Flooding is possible and Minor Flooding is likely in Coffs Creek
OutputLocObservedRainInputLocSetrule51052FALSEseverepossiblePrepare for Major FloodingPrepareFutureMajor Flooding is possible and Minor Flooding is likely in Coffs Creek
OutputLocForecastRainInputLocSetrule62062FALSEseverepossiblePrepare for Major FloodingEvacuateFutureMajor Flooding is possible and Minor Flooding has been observed in Coffs Creek
OutputLocObservedFloodingInputLocSetrule61062FALSEseverepossiblePrepare for Major FloodingEvacuateFutureMajor Flooding is possible and Minor Flooding has been observed in Coffs Creek
OutputLocObservedRainInputLocSetrule72072FALSEseverelikelyEvacuate to higher groundEvacuateExpectedMajor Flooding is likely in Coffs Creek
OutputLocObservedRainInputLocSetrule82082FALSEseverelikelyEvacuate to higher groundEvacuateExpectedMajor Flooding is likely and Minor Flooding has been observed in Coffs Creek
OutputLocObservedFloodingInputLocSetrule81082FALSEseverelikelyEvacuate to higher groundEvacuateExpectedMajor Flooding is likely and Minor Flooding has been observed in Coffs Creek
OutputLocObservedFloodingInputLocSetrule92092FALSEsevereobservedShelter in placeShelterImmediateMajor Flooding has been observed in Coffs Creek



Image Added


Image Added



Code Block
languagexml
titleExample locations set with multivariate attributes
	<locationSet id="MultiVariateThresholdsHyFS">
		<csvFile>
			<file>MultiVariateThresholdsHyFS.csv</file>
			<id>%id%</id>
			<x>%x%</x>
			<y>%y%</y>
			<attributeFile>
				<csvFile>MultiVariateThresholdsAttributesHyFS.csv</csvFile>
				<id>%id%</id>
				<attribute id="inputLocationSetId">
					<text>%inputLocationSetId%</text>
				</attribute>
				<attribute id="variable">
					<text>%variable%</text>
				</attribute>
				<attribute id="ruleId">
					<text>%ruleId%</text>
				</attribute>
				<attribute id="lowerBound">
					<number>%lowerBound%</number>
				</attribute>
				<attribute id="lowerBoundInclusive">
					<boolean>%lowerBoundInclusive%</boolean>
				</attribute>
				<attribute id="upperBound">
					<number>%upperBound%</number>
				</attribute>
				<attribute id="upperBoundInclusive">
					<boolean>%upperBoundInclusive%</boolean>
				</attribute>
				<attribute id="ruleOutcome">
					<number>%ruleOutcome%</number>
				</attribute>
				<attribute id="numberOfTimeSeries">
					<number>%numberOfTimeSeries%</number>
				</attribute>
				<attribute id="severity">
					<text>%severity%</text>
				</attribute>
				<attribute id="certainty">
					<text>%certainty%</text>
				</attribute>
				<attribute id="instruction">
					<text>%instruction%</text>
				</attribute>
				<attribute id="responseType">
					<text>%responseType%</text>
				</attribute>
				<attribute id="urgency">
					<text>%urgency%</text>
				</attribute>
				<attribute id="headline">
					<text>%headline%</text>
				</attribute>
			</attributeFile>
		</csvFile>
	</locationSet>
	<locationSet id="MultiVarHyFSInput">
		<locationSetId>MultiVariateThresholdsHyFS</locationSetId>
		<constraints>
			<idContains contains="MultiVarHyFSInput"/>
		</constraints>
	</locationSet>

Image Removed

Image Removed

MultiVariateThresholdsAttributesHyFS.csv

...

Code Block
languagexml
titleExample locations set with multivariate attributes
	<locationSet id="MultiVariateThresholdsHyFS">
		<csvFile>
			<file>MultiVariateThresholdsHyFS.csv</file>
			<id>%id%</id>
			<x>%x%</x>
			<y>%y%</y>
			<attributeFile>
				<csvFile>MultiVariateThresholdsAttributesHyFS.csv</csvFile>
				<id>%id%</id>
				<attribute id="inputLocationSetId">
					<text>%inputLocationSetId%</text>
				</attribute>
				<attribute id="variable">
					<text>%variable%</text>
				</attribute>
				<attribute id="ruleId">
					<text>%ruleId%</text>
				</attribute>
				<attribute id="lowerBound">
					<number>%lowerBound%</number>
				</attribute>
				<attribute id="lowerBoundInclusive">
					<boolean>%lowerBoundInclusive%</boolean>
				</attribute>
				<attribute id="upperBound">
					<number>%upperBound%</number>
				</attribute>
				<attribute id="upperBoundInclusive">
					<boolean>%upperBoundInclusive%</boolean>
				</attribute>
				<attribute id="ruleOutcome">
					<number>%ruleOutcome%</number>
				</attribute>
				<attribute id="numberOfTimeSeries">
					<number>%numberOfTimeSeries%</number>
				</attribute>
				<attribute id="severity">
					<text>%severity%</text>
				</attribute>
				<attribute id="certainty">
					<text>%certainty%</text>
				</attribute>
				<attribute id="instruction">
					<text>%instruction%</text>
				</attribute>
				<attribute id="responseType">
					<text>%responseType%</text>
				</attribute>
				<attribute id="urgency">
					<text>%urgency%</text>
				</attribute>
				<attribute id="headline">
					<text>%headline%</text>
				</attribute>
			</attributeFile>
		</csvFile>
	</locationSet>
	<locationSet id="MultiVarHyFSInput">
		<locationSetId>MultiVariateThresholdsHyFS</locationSetId>
		<constraints>
			<idContains contains="MultiVarHyFSInput"/>
		</constraints>
	</locationSet>

For multivariate threshold crossings a transformation is used to combine the multiple input time series to 1 output time series which is connected to thresholds.

For each line in the threshold crossing matrix on top of the page a rule should be defined, specifying which and how many input time series should have a value higher than a certain boundary.

Each rule has a rule outcome which will be the value written to the output time series. Those output values should be connected to a threshold value in the threshold value sets.

The <inputVariableAttributeId> specifies which input variable is used to find the input time series and <inputLocationSetIdAttributeId> specifies which locations within the variable should be used.

The <lowerBoundAttributeId> specifies the trigger for the input time series in order to apply to to rule.

The <numberOfTimeSeriesWithinBoundariesAttributeId> specifies how many of the time series need to have their trigger crossed in order for the rule to apply.

Code Block
languagexml
titleExample multivariate threshold tranformation
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2007 sp2 (http://www.altova.com) by WL | Delft Hydraulics (WL | Delft Hydraulics) -->
<transformationModule version="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.wldelft.nl/fews"
					  xsi:schemaLocation="http://www.wldelft.nl/fews http://fews.wldelft.nl/schemas/version1.0/transformationModule.xsd">
	<variable>
		<variableId>ForecastRain</variableId>
		<timeSeriesSet>
			<moduleInstanceId>ImportMultiVariateInput</moduleInstanceId>
			<valueType>scalar</valueType>
			<parameterId>P.radar.forecast</parameterId>
			<locationSetId>MultiVarHyFSInput</locationSetId>
			<timeSeriesType>external historical</timeSeriesType>
			<timeStep unit="day"/>
			<relativeViewPeriod unit="day" start="-12" end="0"/>
			<readWriteMode>editing visible to all future task runs</readWriteMode>
		</timeSeriesSet>
	</variable>
	<variable>
		<variableId>ObservedRain</variableId>
		<timeSeriesSet>
			<moduleInstanceId>ImportMultiVariateInput</moduleInstanceId>
			<valueType>scalar</valueType>
			<parameterId>P.obs</parameterId>
			<locationSetId>MultiVarHyFSInput</locationSetId>
			<timeSeriesType>external historical</timeSeriesType>
			<timeStep unit="day"/>
			<relativeViewPeriod unit="day" start="-12" end="0"/>
			<readWriteMode>editing visible to all future task runs</readWriteMode>
		</timeSeriesSet>
	</variable>
	<variable>
		<variableId>ObservedFlooding</variableId>
		<timeSeriesSet>
			<moduleInstanceId>ImportMultiVariateInput</moduleInstanceId>
			<valueType>scalar</valueType>
			<parameterId>H.obs</parameterId>
			<locationSetId>MultiVarHyFSInput</locationSetId>
			<timeSeriesType>external historical</timeSeriesType>
			<timeStep unit="day"/>
			<relativeViewPeriod unit="day" start="-12" end="0"/>
			<readWriteMode>editing visible to all future task runs</readWriteMode>
		</timeSeriesSet>
	</variable>
	<variable>
		<variableId>output</variableId>
		<timeSeriesSet>
			<moduleInstanceId>MultiVariateThresholdsTransformation</moduleInstanceId>
			<valueType>scalar</valueType>
			<parameterId>H.sim</parameterId>
			<locationId>MultiVarHyFSOutput1</locationId>
			<timeSeriesType>simulated forecasting</timeSeriesType>
			<timeStep unit="day"/>
			<relativeViewPeriod unit="day" start="-12" end="0"/>
			<readWriteMode>editing visible to all future task runs</readWriteMode>
		</timeSeriesSet>
	</variable>
	<transformation id="MultiVariateHyFS">
		<multipleLocationAttributes>
			<multiVariateThresholdsHyFS>
				<ruleAttributeId>ruleId</ruleAttributeId>
				<inputVariableAttributeId>variable</inputVariableAttributeId>
				<inputLocationSetIdAttributeId>inputLocationSetId</inputLocationSetIdAttributeId>
				<lowerBoundAttributeId>lowerBound</lowerBoundAttributeId>
				<numberOfTimeSeriesWithinBoundariesAttributeId>numberOfTimeSeries</numberOfTimeSeriesWithinBoundariesAttributeId>
				<ruleOutcomeAttributeId>ruleOutcome</ruleOutcomeAttributeId>
				<outputVariable>
					<variableId>output</variableId>
				</outputVariable>
			</multiVariateThresholdsHyFS>
		</multipleLocationAttributes>
	</transformation>
</transformationModule>


Code Block
languagexml
titleExample multivariate threshold value set
	<thresholdValueSet id="MultiVariateThresholdsSet" name="MultiVariateThresholdsSet">
		<levelThresholdValue>
			<levelThresholdId>EnhanceLevel</levelThresholdId>
			<value>1</value>
			<upActionLogEventTypeId>Action.Enhanced</upActionLogEventTypeId>
		</levelThresholdValue>
		<levelThresholdValue>
			<levelThresholdId>EnhanceLevel</levelThresholdId>
			<value>2</value>
			<upActionLogEventTypeId>Action.Enhanced</upActionLogEventTypeId>
		</levelThresholdValue>
		<levelThresholdValue>
			<levelThresholdId>EnhanceLevel</levelThresholdId>
			<value>3</value>
			<upActionLogEventTypeId>Action.Enhanced</upActionLogEventTypeId>
			<downActionLogEventTypeId>Action.StandDown</downActionLogEventTypeId>
		</levelThresholdValue>
		<levelThresholdValue>
			<levelThresholdId>EnhanceLevel</levelThresholdId>
			<value>4</value>
			<upActionLogEventTypeId>Action.Enhanced</upActionLogEventTypeId>
		</levelThresholdValue>
		<levelThresholdValue>
			<levelThresholdId>EnhanceLevel</levelThresholdId>
			<value>5</value>
			<upActionLogEventTypeId>Action.Enhanced</upActionLogEventTypeId>
		</levelThresholdValue>
		<levelThresholdValue>
			<levelThresholdId>EnhanceLevel</levelThresholdId>
			<value>6</value>
			<upActionLogEventTypeId>Action.Enhanced</upActionLogEventTypeId>
			<downActionLogEventTypeId>Action.StandDown</downActionLogEventTypeId>
		</levelThresholdValue>
		<levelThresholdValue>
			<levelThresholdId>EnhanceLevel</levelThresholdId>
			<value>7</value>
			<upActionLogEventTypeId>Action.Enhanced</upActionLogEventTypeId>
		</levelThresholdValue>
		<levelThresholdValue>
			<levelThresholdId>EnhanceLevel</levelThresholdId>
			<value>8</value>
			<upActionLogEventTypeId>Action.Enhanced</upActionLogEventTypeId>
			<downActionLogEventTypeId>Action.StandDown</downActionLogEventTypeId>
		</levelThresholdValue>
		<levelThresholdValue>
			<levelThresholdId>EnhanceLevel</levelThresholdId>
			<value>9</value>
			<upActionLogEventTypeId>Action.Enhanced</upActionLogEventTypeId>
			<downActionLogEventTypeId>Action.StandDown</downActionLogEventTypeId>
		</levelThresholdValue>
		<timeSeriesSet>
			<moduleInstanceId>MultiVariateThresholdsTransformation</moduleInstanceId>
			<valueType>scalar</valueType>
			<parameterId>H.sim</parameterId>
			<locationId>MultiVarHyFSOutput1</locationId>
			<timeSeriesType>simulated forecasting</timeSeriesType>
			<timeStep unit="day"/>
			<relativeViewPeriod unit="day" start="-12" end="0"/>
			<readWriteMode>editing visible to all future task runs</readWriteMode>
		</timeSeriesSet>
	</thresholdValueSet>	

...