Versions Compared

Key

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



scrollbar


Table of Contents

Excerpt
hiddentrue

aggregates data by summing the values

...

See this wiki Validationrules for a general explanation, and below for a config example including validationrules.

Configuration example

Below a configuration example which has proven itself in an operational context.

The idea behind it is that if the majority of the input is doubtful, the output should be doubtful and if the majority of the input is unreliable the output should be unreliable.

Splitting into quartiles turned out to be most intuitive, distinctive and least complex.

Code Block
languagexml
titleConditional Aggregation used at Dutch Waterboard HDSR
<?xml version="1.0" encoding="UTF-8"?>
<transformation id="DebietBerekeningDag">
  	<aggregation>
    <accumulative>
      <inputVariable>
        <timeSeriesSet>
          <moduleInstanceId>DebietBerekening</moduleInstanceId>
          <valueType>scalar</valueType>
          		<accumulative>
			<inputVariable>
				<timeSeriesSet>
					<moduleInstanceId>DebietBerekening</moduleInstanceId>
					<valueType>scalar</valueType>
					<parameterId>Q.berekend.15min</parameterId>
          					<locationSetId>HHNK_TMX_debiet</locationSetId>
          					<timeSeriesType>external historical</timeSeriesType>
          					<timeStep unit="minute" multiplier="15"/>
          					<relativeViewPeriod unit="day" start="-300" end="0"/>
          					<readWriteMode>read only</readWriteMode>
          					<synchLevel>1</synchLevel>
        				</timeSeriesSet>
      </inputVariable>
      <validationRule>
        <inputDoubtfulPercentage>10</inputDoubtfulPercentage>
        <inputMissingPercentage>0</inputMissingPercentage>
        <outputValueFlag>reliable</outputValueFlag>
      </validationRule>
      <validationRule>
        <inputDoubtfulPercentage>30</inputDoubtfulPercentage>
        <inputMissingPercentage>0</inputMissingPercentage>
        <outputValueFlag>doubtful</outputValueFlag>
        <outputCustomFlagSourceId>D1</outputCustomFlagSourceId>
      </validationRule>
      <validationRule>
        <inputDoubtfulPercentage>60</inputDoubtfulPercentage>
        <inputMissingPercentage>0</inputMissingPercentage>
        <outputValueFlag>doubtful</outputValueFlag>
        <outputCustomFlagSourceId>D2</outputCustomFlagSourceId>
      </validationRule>
      <validationRule>
        <inputDoubtfulPercentage>100</inputDoubtfulPercentage>
        <inputMissingPercentage>0</inputMissingPercentage>
        <outputValueFlag>doubtful</outputValueFlag>
        <outputCustomFlagSourceId>D3</outputCustomFlagSourceId>
      </validationRule>
      <validationRule>
        <inputMissingPercentage>0</inputMissingPercentage>
        <outputValueFlag>reliable</outputValueFlag>
      </validationRule>
      <validationRule>
        <inputMissingPercentage>15</inputMissingPercentage>
        <outputValueFlag>reliable</outputValueFlag>
        <outputCustomFlagSourceId>CA</outputCustomFlagSourceId>
      </validationRule>
      <validationRule>
        <inputMissingPercentage>40</inputMissingPercentage>
        <outputValueFlag>doubtful</outputValueFlag>
      </validationRule>
      <validationRule>
        <inputMissingPercentage>100</inputMissingPercentage>
        <outputValueFlag>missing</outputValueFlag>
      </validationRule>
      <outputVariable>
        <timeSeriesSet>
          <moduleInstanceId>DebietBerekening</moduleInstanceId>
          <valueType>scalar</valueType>
          <parameterId>Q.berekend.15min</parameterId>
          <locationSetId>HHNK_TMX_debiet</locationSetId>
          <timeSeriesType>external historical</timeSeriesType>
          			</inputVariable>
			<validationRule>
				<inputDoubtfulPercentage>0</inputDoubtfulPercentage>
				<inputMissingPercentage>0</inputMissingPercentage>
				<outputValueFlag>reliable</outputValueFlag>
				<outputCustomFlagSourceId>d0u0</outputCustomFlagSourceId>
			</validationRule>
			<validationRule>
				<inputDoubtfulPercentage>25</inputDoubtfulPercentage>
				<inputMissingPercentage>0</inputMissingPercentage>
				<outputValueFlag>reliable</outputValueFlag>
				<outputCustomFlagSourceId>d1u0</outputCustomFlagSourceId>
			</validationRule>
			<validationRule>
				<inputDoubtfulPercentage>50</inputDoubtfulPercentage>
				<inputMissingPercentage>0</inputMissingPercentage>
				<outputValueFlag>doubtful</outputValueFlag>
				<outputCustomFlagSourceId>d2u0</outputCustomFlagSourceId>
			</validationRule>
			<validationRule>
				<inputDoubtfulPercentage>75</inputDoubtfulPercentage>
				<inputMissingPercentage>0</inputMissingPercentage>
				<outputValueFlag>doubtful</outputValueFlag>
				<outputCustomFlagSourceId>d3u0</outputCustomFlagSourceId>
			</validationRule>
			<validationRule>
				<inputDoubtfulPercentage>100</inputDoubtfulPercentage>
				<inputMissingPercentage>0</inputMissingPercentage>
				<outputValueFlag>doubtful</outputValueFlag>
				<outputCustomFlagSourceId>d4u0</outputCustomFlagSourceId>
			</validationRule>
			<validationRule>
				<inputDoubtfulPercentage>25</inputDoubtfulPercentage>
				<inputMissingPercentage>25</inputMissingPercentage>
				<outputValueFlag>reliable</outputValueFlag>
				<outputCustomFlagSourceId>d0u1</outputCustomFlagSourceId>
			</validationRule>
			<validationRule>
				<inputDoubtfulPercentage>50</inputDoubtfulPercentage>
				<inputMissingPercentage>25</inputMissingPercentage>
				<outputValueFlag>doubtful</outputValueFlag>
				<outputCustomFlagSourceId>d1u1</outputCustomFlagSourceId>
			</validationRule>
			<validationRule>
				<inputDoubtfulPercentage>75</inputDoubtfulPercentage>
				<inputMissingPercentage>25</inputMissingPercentage>
				<outputValueFlag>doubtful</outputValueFlag>
				<outputCustomFlagSourceId>d2u1</outputCustomFlagSourceId>
			</validationRule>
			<validationRule>
				<inputDoubtfulPercentage>100</inputDoubtfulPercentage>
				<inputMissingPercentage>25</inputMissingPercentage>
				<outputValueFlag>doubtful</outputValueFlag>
				<outputCustomFlagSourceId>d3u1</outputCustomFlagSourceId>
			</validationRule>
			<validationRule>
				<inputDoubtfulPercentage>50</inputDoubtfulPercentage>
				<inputMissingPercentage>50</inputMissingPercentage>
				<outputValueFlag>doubtful</outputValueFlag>
				<outputCustomFlagSourceId>d0u2</outputCustomFlagSourceId>
			</validationRule>
			<validationRule>
				<inputDoubtfulPercentage>75</inputDoubtfulPercentage>
				<inputMissingPercentage>50</inputMissingPercentage>
				<outputValueFlag>missing</outputValueFlag>
				<outputCustomFlagSourceId>d1u2</outputCustomFlagSourceId>
			</validationRule>
			<validationRule>
				<inputDoubtfulPercentage>100</inputDoubtfulPercentage>
				<inputMissingPercentage>50</inputMissingPercentage>
				<outputValueFlag>missing</outputValueFlag>
				<outputCustomFlagSourceId>d2u2</outputCustomFlagSourceId>
			</validationRule>
			<validationRule>
				<inputDoubtfulPercentage>75</inputDoubtfulPercentage>
				<inputMissingPercentage>75</inputMissingPercentage>
				<outputValueFlag>missing</outputValueFlag>
				<outputCustomFlagSourceId>d0u3</outputCustomFlagSourceId>
			</validationRule>
			<validationRule>
				<inputDoubtfulPercentage>100</inputDoubtfulPercentage>
				<inputMissingPercentage>75</inputMissingPercentage>
				<outputValueFlag>missing</outputValueFlag>
				<outputCustomFlagSourceId>d1u3</outputCustomFlagSourceId>
			</validationRule>
			<validationRule>
				<inputDoubtfulPercentage>100</inputDoubtfulPercentage>
				<inputMissingPercentage>100</inputMissingPercentage>
				<outputValueFlag>missing</outputValueFlag>
				<outputCustomFlagSourceId>d0u4</outputCustomFlagSourceId>
			</validationRule>
			<outputVariable>
				<timeSeriesSet>
					<moduleInstanceId>DebietBerekening</moduleInstanceId>
					<valueType>scalar</valueType>
					<parameterId>Q.berekend.15min</parameterId>
					<locationSetId>HHNK_TMX_debiet</locationSetId>
					<timeSeriesType>external historical</timeSeriesType>
					<timeStep unit="minute" multiplier="15"/>
          					<relativeViewPeriod unit="day" start="-300" end="0"/>
          					<readWriteMode>read only</readWriteMode>
          					<synchLevel>1</synchLevel>
        				</timeSeriesSet>
      			</outputVariable>
    		</accumulative>
  	</aggregation>
</transformation>