Versions Compared

Key

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

...

The purpose of this check is to test for trends in each of the input timeseries time series and send log messages whenever a trend is detected. Each timeseries time series is processed independently. One of the strengths of the Mann-Kendall check is that it can also be used when there are lots of missing values. Unfortunately there is a limit on the number of non-missings that can be processed reasonably, since the calculation of the slopes requires memory for n * (n + 1) / 2 values. In practise this means a limit of some 6000 time steps. It is therefore recommended to aggregate the values first when there are many values in the timeseries to be checked.

...

  • id: identifier of the check.
  • checkRelativePeriod: The period to run the trend test for.
  • variableDefinition: embedded variable definition (see above)Definition of time series.

For each threshold,

  • testTrend: either two-tailed, upward or downward (two-tailed is default)
  • confidenceCoefficient: the confidence coefficient, also known as alpha, which is typically between 0 and 0.5, i.e. 0.05 (one-tailed) and 0.025 (two-tailed) correspond to a confidence level of 95%.
  • logLevel: Log level for the log message that is logged if a trend is detected. Can be DEBUG, INFO, WARN, ERROR or FATAL. If level is error or fatal, then the module will stop running after logging the first log message. Fatal should never be used actually.
  • logEventCode: Event code for the log message that is logged if a trend is detected. This event code has to contain a dot, e.g. "TimeSeries.Check", because the log message is only visible to the master controller if the event code contains a dot.
  • logMessage: Log message that is logged if a trend is detected.

...

Code Block
xml
xml
<secondaryValidation xmlns="http://www.wldelft.nl/fews" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.wldelft.nl/fews http://fews.wldelft.nl/schemas/version1.0/secondaryValidation.xsd">
	<mannKendallCheck id="MannKendallCheck1">
		<variable>
			<timeSeriesSet>
				<moduleInstanceId>MannKendallCheckTest</moduleInstanceId>
				<valueType>scalar</valueType>
				<parameterId>H.meting</parameterId>
				<locationId>Nue_0015_01_01</locationId>
				<timeSeriesType>simulated forecasting</timeSeriesType>
				<timeStep unit="minutehour" multiplier="1"/>
				<readWriteMode>read only</readWriteMode>
			</timeSeriesSet>
		</variable>
		<!-- test storage is set to 2009-1-1, data starts at 11-Dec-2011 -->
		<checkRelativePeriod unit="minuteday" start="1705491100" end="17055010"/>
		<threshold>
			<testTrend>two-tailed</testTrend>
			<confidenceCoefficient>0.01</confidenceCoefficient>
			<logLevel>WARN</logLevel>
			<logEventCode>SecondaryValidation.MannKendallCheck</logEventCode>
			<logMessage>trend detected in %HEADER% by %CHECK_ID%.</logMessage>
		</threshold>
	</mannKendallCheck>
</secondaryValidation>