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. This is a choice, it is also possible to configure
<inputLocationLowerBoundReferringAttributeId> which refers to separate attibute id's of the input locations, this way each input location can have a different lower bound value.
The <numberOfTimeSeriesWithinBoundariesAttributeId> specifies how many of the time series need to have their trigger crossed in order for the rule to apply.
Code Block |
---|
language | xml |
---|
title | Example multivariate threshold transformation |
---|
|
<?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>
<inputLocationSetsBasedMultivariateThresholds>
<ruleAttributeId>ruleId</ruleAttributeId>
<inputVariableAttributeId>variable</inputVariableAttributeId>
<inputLocationSetIdAttributeId>inputLocationSetId</inputLocationSetIdAttributeId>
<lowerBoundAttributeId>lowerBound</lowerBoundAttributeId>
<numberOfTimeSeriesWithinBoundariesAttributeId>numberOfTimeSeries</numberOfTimeSeriesWithinBoundariesAttributeId>
<ruleOutcomeAttributeId>ruleOutcome</ruleOutcomeAttributeId>
<outputVariable>
<variableId>output</variableId>
</outputVariable>
</inputLocationSetsBasedMultivariateThresholds>
</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
id | variable | inputLocationSetId | ruleId | lowerBound | ruleOutcome | numberOfTimeSeries | lowerBoundInclusive | severity | certainty | instruction | responseType | urgency | headline |
OutputLoc | ForecastRain | InputLocSet | rule0 | -999 | -1 | 1 | FALSE | | | | | | |
OutputLoc | ForecastRain | InputLocSet | rule1 | 10 | 1 | 2 | FALSE | minor | possible | Monitor the situation as Minor Flooding is possible | Assess | Future | Minor Flooding is possible |
Image Removed
id | variable | inputLocationSetId | ruleId | lowerBound | ruleOutcome | lowerBoundInclusive | severity | certainty | instruction | responseType | urgency | headline |
OutputLoc | ForecastRain | InputLocSet | rule0 | -999 | -1 | FALSE | OutputLoc | ForecastRain | InputLocSet | rule1 | 10 | 1 | FALSE | minor | possible | Monitor the situation as Minor Flooding is possible | Assess | Future | Minor Flooding is possible in Coffs Creek |
OutputLoc | ObservedRain | InputLocSet | rule2 | 10 | 2 | FALSE | minor | likely | Assess your surroundings | Avoid | Expected | Minor Flooding is possible in Coffs Creek |
OutputLoc | ObservedFlooding | InputLocSet | rule3 | 10 | 3 | FALSE | minor | observed | Avoid Flood waters | Prepare | Immediate | Minor Flooding has been observed in Coffs Creek |
OutputLoc | ForecastRain | InputLocSet | rule4 | 20 | 4 | FALSE | severe | possible | Prepare for Major Flooding | Prepare | Future | Major Flooding is possible in Coffs Creek |
OutputLoc | ForecastRain | InputLocSet | rule5 | 20 | 5 | FALSE | severe | possible | Prepare for Major Flooding | Prepare | Future | Major Flooding is possible and Minor Flooding is likely in Coffs Creek |
OutputLoc | ObservedRain | InputLocSet | rule5 | 10 | 5 | FALSE | severe | possible | Prepare for Major Flooding | Prepare | Future | Major Flooding is possible and Minor Flooding is likely in Coffs Creek |
OutputLoc | ForecastRain | InputLocSet | rule6 | 20 | 6 | FALSE | severe | possible | Prepare for Major Flooding | Evacuate | Future | Major Flooding is possible and Minor Flooding has been observed in Coffs Creek |
OutputLoc | ObservedFlooding | InputLocSet | rule6 | 10 | 6 | FALSE | severe | possible | Prepare for Major Flooding | Evacuate | Future | Major Flooding is possible and Minor Flooding has been observed in Coffs Creek |
OutputLoc | ObservedRain | InputLocSet | rule7 | 20 | 7 | FALSE | severe | likely | Evacuate to higher ground | Evacuate | Expected | Major Flooding is likely in Coffs Creek |
OutputLoc | ObservedRain | InputLocSet | rule8 | 20 | 8 | FALSE | severe | likely | Evacuate to higher ground | Evacuate | Expected | Major Flooding is likely and Minor Flooding has been observed in Coffs Creek |
OutputLoc | ObservedFlooding | InputLocSet | rule8 | 10 | 8 | FALSE | severe | likely | Evacuate to higher ground | Evacuate | Expected | Major Flooding is likely and Minor Flooding has been observed in Coffs Creek |
OutputLoc | ObservedFlooding | InputLocSet | rule9 | 20 | 9 | FALSE | severe | observed | Shelter in place | Shelter | Immediate | Major Flooding has been observed in Coffs Creek |
id | variable | inputLocationSetId | ruleId | lowerBound | ruleOutcome | numberOfTimeSeries | lowerBoundInclusive | severity | certainty | instruction | responseType | urgency | headline |
OutputLoc | ForecastRain | InputLocSet | rule0 | -999 | -1 | 1 | FALSE | | | | | | |
OutputLoc | ForecastRain | InputLocSet | rule1 | 10 | 1 | 2 | FALSE | minor | possible | Monitor the situation as Minor Flooding is possible | Assess | Future | Minor Flooding is possible in Coffs Creek |
OutputLoc | ObservedRain | InputLocSet | rule2 | 10 | 2 | 2 | FALSE | minor | likely | Assess your surroundings | Avoid | Expected | Minor Flooding is possible in Coffs Creek |
OutputLoc | ObservedFlooding | InputLocSet | rule3 | 10 | 3 | 2 | FALSE | minor | observed | Avoid Flood waters | Prepare | Immediate | Minor Flooding has been observed in Coffs Creek |
OutputLoc | ForecastRain | InputLocSet | rule4 | 20 | 4 | 2 | FALSE | severe | possible | Prepare for Major Flooding | Prepare | Future | Major Flooding is possible in Coffs Creek |
OutputLoc | ForecastRain | InputLocSet | rule5 | 20 | 5 | 2 | FALSE | severe | possible | Prepare for Major Flooding | Prepare | Future | Major Flooding is possible and Minor Flooding is likely in Coffs Creek |
OutputLoc | ObservedRain | InputLocSet | rule5 | 10 | 5 | 2 | FALSE | severe | possible | Prepare for Major Flooding | Prepare | Future | Major Flooding is possible and Minor Flooding is likely in Coffs Creek |
OutputLoc | ForecastRain | InputLocSet | rule6 | 20 | 6 | 2 | FALSE | severe | possible | Prepare for Major Flooding | Evacuate | Future | Major Flooding is possible and Minor Flooding has been observed in Coffs Creek |
OutputLoc | ObservedFlooding | InputLocSet | rule6 | 10 | 6 | 2 | FALSE | severe | possible | Prepare for Major Flooding | Evacuate | Future | Major Flooding is possible and Minor Flooding has been observed in Coffs Creek |
OutputLoc | ObservedRain | InputLocSet | rule7 | 20 | 7 | 2 | FALSE | severe | likely | Evacuate to higher ground | Evacuate | Expected | Major Flooding is likely in Coffs Creek |
OutputLoc | ObservedRain | InputLocSet | rule8rule2 | 2010 | 82 | 2 | FALSE | severeminor | likely | Evacuate to higher ground | Assess your surroundings | AvoidEvacuate | Expected | Major Minor Flooding is likely and Minor Flooding has been observed possible in Coffs Creek |
OutputLoc | ObservedFlooding | InputLocSet | rule8rule3 | 10 | 83 | 2 | FALSE | severeminor | likely | Evacuate to higher ground | Evacuate | Expected | observed | Avoid Flood waters | Prepare | Immediate | Major Flooding is likely and Minor Flooding has been observed in Coffs Creek |
OutputLoc | ObservedFloodingForecastRain | InputLocSet | rule9rule4 | 20 | 94 | 2 | FALSE | severe | observed | Shelter in place | Shelter | possible | Prepare for Major Flooding | Prepare | FutureImmediate | Major Flooding has been observed is possible in Coffs Creek |
Code Block |
---|
language | xml |
---|
title | Example 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> |
OutputLoc | ForecastRain | InputLocSet | rule5 | 20 | 5 | 2 | FALSE | severe | possible | Prepare for Major Flooding | Prepare | Future | Major Flooding is possible and Minor Flooding is likely in Coffs Creek |
OutputLoc | ObservedRain | InputLocSet | rule5 | 10 | 5 | 2 | FALSE | severe | possible | Prepare for Major Flooding | Prepare | Future | Major Flooding is possible and Minor Flooding is likely in Coffs Creek |
OutputLoc | ForecastRain | InputLocSet | rule6 | 20 | 6 | 2 | FALSE | severe | possible | Prepare for Major Flooding | Evacuate | Future | Major Flooding is possible and Minor Flooding has been observed in Coffs Creek |
OutputLoc | ObservedFlooding | InputLocSet | rule6 | 10 | 6 | 2 | FALSE | severe | possible | Prepare for Major Flooding | Evacuate | Future | Major Flooding is possible and Minor Flooding has been observed in Coffs Creek |
OutputLoc | ObservedRain | InputLocSet | rule7 | 20 | 7 | 2 | FALSE | severe | likely | Evacuate to higher ground | Evacuate | Expected | Major Flooding is likely in Coffs Creek |
OutputLoc | ObservedRain | InputLocSet | rule8 | 20 | 8 | 2 | FALSE | severe | likely | Evacuate to higher ground | Evacuate | Expected | Major Flooding is likely and Minor Flooding has been observed in Coffs Creek |
OutputLoc | ObservedFlooding | InputLocSet | rule8 | 10 | 8 | 2 | FALSE | severe | likely | Evacuate to higher ground | Evacuate | Expected | Major Flooding is likely and Minor Flooding has been observed in Coffs Creek |
OutputLoc | ObservedFlooding | InputLocSet | rule9 | 20 | 9 | 2 | FALSE | severe | observed | Shelter in place | Shelter | Immediate | Major Flooding has been observed in Coffs Creek |
Image Added
Image Added
Code Block |
---|
language | xml |
---|
title | Example 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> |
Code Block |
---|
language | xml |
---|
title | Example 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 |
---|
language | xml |
---|
title | Example 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> |
...