Versions Compared

Key

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

...

What

nameofinstance.xml

Required

no

Description

Export Log Messages (Threshold Events) from the Delft-Fews database to several file formatsCreate and update flood periods based on threshold crossings and imported flood warnings

schema location

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

Excerpt
hiddentrue

Exports threshold event log messages to several file formats

generate and update flood periods

The Flood Periods The thresholdExport module can be used to export threshold crossing log messages that have been created in a workflow with the threshold crossing module. The threshold crossing module will check time series against threshold values, and add records in the Delft-FEWS database with threshold crossing information. These threshold crossings can be exported to files in different formats. The threshold export module uses a template file that specifies the format of the exported file. The procedure how the elements in the template file are filled is similar to the report module.

Configuration

generate and update flood periods. The Flood Periods module must be included in a workflow and can be run on a Stand Alone or Client Server FEWS system. The purpose of the Flood Periods module is that it can create a flood period for a catchment or basin, based on threshold crossings of observed time series or forecast time series for locations within a catchment. The Flood Periods module will check all time series in a timeseriesSet and group the timeseriesSet locations in larger units, these will be called areas. If a direct link with the FEWS Open archive is required, the areas must be identical to the configured Archive Areas.

Configuration

The configuration of the Flood Periods The threshold export module can export threshold crossing events for use in other systems. The configuration of the module is split into several elements, information is provided below.

exportTypeStandard

This type specifies which writer should be used to write the file. The type must be one from the enumeration. Presently (2017.01) only CAP-AU is included in this list.

folder

Folder (directory) in which to store the exported files.

exportFileName

This elements describes how to construct the filename(s) of the exported file(s). If only the name element is given a fixed name is used for each export. The prefix and suffix elements describe how to create a filename prefix and/or suffix. 

eventCodePattern

This element is used as a filter for all event codes logged. Only the event codes from this list will be exported. The * character is allowed at the start or end of the event code

templateFile

The template file will be used as template for the exported log event information. The procedure how the elements in the template file are filled is similar to the report module.

In the CAP template file there are 3 types of TAGS used. The Threshold Export module will replace these TAGS with information from the content of the log messages, location attributes and system properties.

...

list

...

dateFormat

configurable data formats to be used in the export file

numberFormat

configurable number formats to be used in the export file

filter

Filter the threshold crossings based on locationSets or parameters

thresholdHistorySearchTimeSpan

Time span to search in the database for previous threshold exports. This information will be used to find out if an export is an Alert, Update or Cancel. If no threshold export is found within the specified time span, FEWS will log an Alert. If threshold exports are found, FEWS will log an Update or Cancel.

eventExpiryTime

Expiry time of the alert in the export file. This time span will also be used to find the threshold exports that will be included in the Reference element when the ALERT_HISTORY Tag is included in the template.

identifier

configurable identifier used in the exported message, must be unique.

sender

Must be a valid e-mail address.

mapThreshold

Mapping of the Thresholds configured in FEWS and the Threshold name exported in the CAP file. The order of the thresholdId’s in this mapping table will also be used to check the severity of the threshold.

Configurable TAGS

The %information% tags will be hard coded in the Threshold Export module. In this example the following %information% tags are required:

  • %EXPORT_TIME(DF1)%: Will be replaced by the time the message is exported by FEWS. Time format is specified in the Export Module configuration file.
  • %MESSAGE_TYPE%: Enumeration: Alert, Update, Cancel. New alerts use Alert, then subsequent should use Update, and required references. For WL alerts we are assuming that the first threshold crossing should be Alert, and then subsequent threshold changes are updates (both up and down crossing), and a cancel is used when drops below lowest thresholds.
  • %ALERT_HISTORY (DF1)%: Include the history of the threshold exports within the configured eventExpiryTime period. Will be included in the CAP file as Reference element.
  • %THRESHOLD_NAME%: Will be the threshold name as configured in the Thresholds.xml file. When required a mapping table of Threshold ID’s from HyFS can be used.
  • %EXPIRY_TIME(DF1)%: Will be replaced by the time the message can expire, is general for all threshold exports and configurable in the Export Module configuration file.
  • %LOCATION_NAME%: Name of the location that crossed a threshold.
  • %THRESHOLD_VALUE%. Will be replaced by the threshold value that is crossed.
  • %THRESHOLD_MESSAGE%: Will be the complete threshold crossing message that is logged by HyFS.
  • %VALUE%. Will be replaced by the time series value that is logged to cross a threshold.
  • %X%,%Y%: Will be replaced by the X and Y coordinates of the location.

Example configuration file

An example threshold Export Flood Periods module configuration file is provided below, as well as a template file with included TAGS.

<alert xmlns="urn:oasis:names:tc:emergency:cap:1.2"> <identifier>%IDENTIFIER%</identifier> <sender>%SENDER%</sender> <sent>%EXPORT_TIME(DF1)%</sent> <status>Actual</status> <msgType>%MESSAGE_TYPE%</msgType> <source>@STATE@, STATE_AGENCY</source> <scope>Public</scope> <code>urn:oasis:names:tc:emergency:cap:1.2:profile:CAP-AU:1.0</code> %ALERT_HISTORY(DF1)% <info> <language>en-AU</language> <category>Met</category> <event>EVENT_EVENT</event> <urgency>Unknown</urgency> <severity>%SEVERITY%</severity> <certainty>Observed</certainty> <eventCode> <valueName>https://govshare.gov.au/xmlui/handle/10772/6495</valueName> <value>EVENTCODE</value> </eventCode> <expires>%EXPIRY_TIME(DF1)%</expires> <senderName>Australian Government</senderName> <headline>%MESSAGE_TYPE%: River Alert at %LOCATION_NAME% %CROSSING_DIRECTION% %THRESHOLD_NAME% level at %CROSSING_TIME(DF1)% - %THRESHOLD_VALUE(NF1)% Value: %VALUE(NF1)% (@STATE@)</headline> <description>%THRESHOLD_MESSAGE%</description> <contact>http://www.bom.gov.au/inside/contacts.shtml</contact> <area> <areaDesc>%LOCATION_NAME% (RIVER_NAME) - @STATE@</areaDesc> <circle>%Y%,%X% 1</circle> <geocode> <valueName>http://www.iso.org/iso/country_codes.html</valueName> <value>AU-@STATE@</value> </geocode> </area> </info> </alert>
Code Block
languagexml
titleExample threshold Export file
<thresholdExport<?xml version="1.0" encoding="UTF-8"?>
<floodPeriodsModule 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/thresholdExportfloodPeriodsModule.xsd">
<export>
	<exportTypeStandard>CAP-AU</exportTypeStandard><newFloodPeriodLogEventCode>FloodPeriod.New</newFloodPeriodLogEventCode>
	<folder>$EXPORT_FOLDER$\CAP_Alerts</folder>
	<exportFileName>
		<name>_RiverAlert_CAP_%LOCATION_ID%_@STATE@_%THRESHOLD_ID%_.xml</name>
		<prefix>
			<timeZeroFormattingString>yyyyMMddHHmm</timeZeroFormattingString>
		</prefix>
		<suffix>
			<currentTimeFormattingString>yyyyMMddHHmmss</currentTimeFormattingString>
		</suffix>
	</exportFileName>
	<eventCodePattern>River_Alert.*</eventCodePattern>
	<eventCodePattern>River_Minor.*</eventCodePattern>
	<eventCodePattern>River_Moderate.*</eventCodePattern>
	<eventCodePattern>River_Major.*</eventCodePattern>
	<templateFile>CAP_Export_Template</templateFile>
	<dateFormat id="DF1">
		<timeZone>
			<timeZoneName>GMT</timeZoneName>
		</timeZone>
		<dateTimePattern>yyyy-MM-dd'T'HH:mm:ss+00:00</dateTimePattern>
	</dateFormat>
	<dateFormat id="DF2">
		<timeZone>
			<timeZoneName>ACST</timeZoneName>
		</timeZone>
		<dateTimePattern>dd-MM-yyyy</dateTimePattern>
	</dateFormat>
	<numberFormat id="NF1">
		<pattern>{0,number,##0.0}</pattern>
	</numberFormat>
	<filter>
		<parameterId>H.obs.proc</parameterId>
	</filter>
	<thresholdHistorySearchTimeSpan unit="day" multiplier="7"/>
	<eventExpiryTime unit="day" multiplier="1"/>
	<identifier>AusBoM-PRODUCT_ID-%LOCATION_ID%-%EXPORT_TIME(DF1)%</identifier>
	<sender>CAP.Message@bom.gov.au</sender>
	<mapThreshold thresholdId="River Alert" value="Unknown"/>
	<mapThreshold thresholdId="Minor Flooding" value="Minor"/>
	<mapThreshold thresholdId="Moderate Flooding" value="Moderate"/>
	<mapThreshold thresholdId="Major Flooding" value="Severe"/>
</export>
</thresholdExport>
Code Block
languagexml
titleExample Template File
<areaLocationAttributeId>REPORT_FOLDER</areaLocationAttributeId>
	<skipLocationsWithoutAreaId>true</skipLocationsWithoutAreaId>
	<expiryTime unit="day" multiplier="365"/>
	<periodInitialLength unit="day" multiplier="1"/>
	<maximumPeriodExtensionLength unit="day" multiplier="5"/>
	<forecastSearchPeriod unit="day" start="-2" end="0"/>
	<observed>
		<thresholdValuesSetsCrossings>
			<thresholdGroupId>Waterlevel_VAT</thresholdGroupId>
			<timeSeriesSet>
				<moduleInstanceId>Normalize_RiverTelemetry</moduleInstanceId>
				<valueType>scalar</valueType>
				<parameterId>H.obs.proc</parameterId>
				<qualifierId>15m</qualifierId>
				<locationSetId>AUS_Stations_Forecast_Location</locationSetId>
				<timeSeriesType>external historical</timeSeriesType>
				<timeStep unit="minute" multiplier="15"/>
				<relativeViewPeriod unit="day" start="-4" end="0" startOverrulable="true"/>
				<readWriteMode>add originals</readWriteMode>
			</timeSeriesSet>
		</thresholdValuesSetsCrossings>
	</observed>
	<forecasted>
		<importedThresholdCrossings>
			<timeSeriesProperty key="Prediction_Level">
				<map value="BelowMinor" thresholdId="Minor Flooding"/>
				<map value="Minor" thresholdId="Minor Flooding"/>
				<map value="Moderate" thresholdId="Moderate Flooding"/>
				<map value="Major" thresholdId="Major Flooding"/>
			</timeSeriesProperty>
			<timeSeriesSet>
				<moduleInstanceId>ImportContentReviewer</moduleInstanceId>
				<valueType>scalar</valueType>
				<parameterId>H.issued.fcst</parameterId>
				<locationSetId>AUS_Stations_Forecast_Location</locationSetId>
				<timeSeriesType>external forecasting</timeSeriesType>
				<timeStep unit="nonequidistant"/>
				<relativeViewPeriod unit="day" start="-4" end="10"/>
				<readWriteMode>add originals</readWriteMode>
			</timeSeriesSet>
		</importedThresholdCrossings>
	</forecasted>
</floodPeriodsModule>