Versions Compared

Key

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

Table of Contents

Introduction

MeteoAlarmCap is a XML export format following the Common Alerting Protocol standard: http://docs.oasis-open.org/emergency/cap/v1.2/CAP-v1.2-os.html . The export is used for http://www.rijkswaterstaat.nl/kaarten/waterstand-tov-nap.aspx.

...

The configuration of the MeteoAlarmCap export module is shown in the following example.

There is 1 The following are the required properties that has have to be configured:

The area code is one of the following codes that should be available as externalLocationId in the idMap (only one code is required if a locationset is configured in the timeseriesset):

  • "GR" (Groningen)
  • "FL" (Flevoland)
  • "ZH" (Zuid-Holland)
  • "ZE" (Zeeland)
  • "NH" (Noord-Holland)
  • "LB"  (Limburg)
  • "NB" (Noord-Brabant)
  • "GL" (Gelderland)
  • "UT" (Utrecht)
  • "OV" (Overijssel)
  • "FR" (Friesland)
  • "DR" (Drenthe)
  • "WAE" (Waddeneilanden)
  • "WAD" (Waddenzee)
  • "IJG" (IJsselmeergebied)

The following properties are optional and can be used to change the default values. The default values are given:

  • "status" : "Test"
  • "source" : "KNMI"
  • "scope" : "Public"
  • "certainty" : "Likely"
  • "category" " "Met"
  • "sender" : "http://www.knmi.nl/nederland-nu/weer/waarschuwingen"
  • "sender-name" : "KNMI Koninklijk Nederlands Meteorologisch Instituut"
  • "contact" : "informatiecentrum@knmi.nl"
  • "urgency" : "Future"
  • "awareness-type" : "12"
    • The following awareness-types are supported:
      "00" : "1; wind"
      "01" : "10; rain";
      "02": "2; snow-ice"
      "03" : "3; thunderstorm"
      "07" : "4; fog"
      "12" : "12; flooding"
      "16" : "5; high-temperature"
      "17" : "6; low-temperature"

For exporting description and instruction the MeteoalarmCap export relies on location attributes. 

Code Block
	<locationSet id="meteoalarm">
		<csvFile>
			<file>meteoalarm</file>
			<geoDatum>WGS 1984</geoDatum>
			<id>%ID%</id>
			<name>%NAME%</name>
			<x>%X%</x>
			<y>%Y%</y>
			<attribute id="Green_DES_NL">
				<text>%Green_DES_NL%</text>
			</attribute>
			<attribute id="Green_DES_EN">
				<text>%Green_DES_EN%</text>
			</attribute>
			<attribute id="Green_INS_NL">
				<text>%Green_INS_NL%</text>
			</attribute>
			<attribute id="Green_INS_EN">
				<text>%Green_INS_EN%</text>
			</attribute>
			
			<attribute id="Yellow_DES_NL">
				<text>%Yellow_DES_NL%</text>
			</attribute>
			<attribute id="Yellow_DES_EN">
				<text>%Yellow_DES_EN%</text>
			</attribute>
			<attribute id="Yellow_INS_NL">
				<text>%Yellow_INS_NL%</text>
			</attribute>
			<attribute id="Yellow_INS_EN">
				<text>%Yellow_INS_EN%</text>
			</attribute>
			
			<attribute id="Orange_DES_NL">
				<text>%Orange_DES_NL%</text>
			</attribute>
			<attribute id="Orange_DES_EN">
				<text>%Orange_DES_EN%</text>
			</attribute>
			<attribute id="Orange_INS_NL">
				<text>%Orange_INS_NL%</text>
			</attribute>
			<attribute id="Orange_INS_EN">
				<text>%Orange_INS_EN%</text>
			</attribute>
			<attribute id="Red_DES_NL">
				<text>%Red_DES_NL%</text>
			</attribute>
			<attribute id="Red_DES_EN">
				<text>%Red_DES_EN%</text>
			</attribute>
			<attribute id="Red_INS_NL">
				<text>%Red_INS_NL%</text>
			</attribute>
			<attribute id="Red_INS_EN">
				<text>%Red_INS_EN%</text>
			</attribute>

		</csvFile>
	</locationSet>


The csv file might look as follows:

Code Block
ID;NAME;X;Y;REL_LOBITH;REL_EIJSDEN;Green_DES_NL;Green_INS_NL;Green_DES_EN;Green_INS_EN;Yellow_DES_NL;Yellow_INS_NL;Yellow_DES_EN;Yellow_INS_EN;Orange_DES_NL;Orange_INS_NL;Orange_DES_EN;Orange_INS_EN;Red_DES_NL;Red_INS_NL;Red_DES_EN;Red_INS_EN
DR;Drenthe;6.55;52.98;FALSE;FALSE;Alles is normaal;Niets doen;Everything is normal;Do nothing;Not so fine;Check website;Not so fine;Check website;Be careful;Ready for packing;Be careful;Ready for packing;We are in danger;Run;We are in danger;Run
FL;Flevoland;5.47;52.5;FALSE;FALSE;Alles is normaal;Niets doen;Everything is normal;Do nothing;Not so fine;Check website;Not so fine;Check website;Be careful;Ready for packing;Be careful;Ready for packing;We are in danger;Run;We are in danger;Run



As MeteoAlarmCap can generate multiple CAP files per forecast, 'exportFileName' create a folder that includes all exported CAP files. 'exportFileName' should be different for each export (e.g. each RWSoS system).

meteo-alarm-soap-service - contains the url where the request should be sent. Compulsory field.

username, password and tokenUrl are necessay fields to access an authorisation token.

Code Block
xml
xml
<?xml version="1.0" encoding="UTF-8"?>
<timeSeriesExportRun 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/timeSeriesExportRun.xsd">
	<export>
		<general>
			<exportType>MeteoAlarm<<exportType>MeteoAlarmCap</exportType>
			<folder>$EXPORT_FOLDER$/MeteoAlarm</folder>
			<exportFileName>
				<name>meteoAlarmOv.xml</name>
			</exportFileName>
			<idMapId>idMeteoAlarm</idMapId>
		</general>
		<properties>
			<string key="area-code" value="OV" ></string>
			<string key="meteo-alarm-soap-service" value="https://private-anon-932344a17d-meteoalarm.apiary-proxy.com/api/v1/warnings"/>
			<string key="username" value="$METEOALARM_USER$"/>
			<string key="password" value="username"/>
			<string key="tokenUrl" value="https://private-anon-932344a17d-meteoalarm.apiary-proxy.com/api/v1/tokens"/>
		</properties>
		<exportAttribute internalAttributeId="Green_DES_NL" externalAttributeId="Green_DES_NL"></exportAttribute>
		<exportAttribute internalAttributeId="Green_INS_NL" externalAttributeId="Green_INS_NL"></exportAttribute>
		<exportAttribute internalAttributeId="Green_DES_EN" externalAttributeId="Green_DES_EN"></exportAttribute>
		<exportAttribute internalAttributeId="Green_INS_EN" externalAttributeId="Green_INS_EN"></exportAttribute>	
		<exportAttribute internalAttributeId="Yellow_DES_NL" externalAttributeId="Yellow_DES_NL"></exportAttribute>
		<exportAttribute internalAttributeId="Yellow_INS_NL" externalAttributeId="Yellow_INS_NL"></exportAttribute>
		<exportAttribute internalAttributeId="Yellow_DES_EN" externalAttributeId="Yellow_DES_EN"></exportAttribute>
		<exportAttribute internalAttributeId="Yellow_INS_EN" externalAttributeId="Yellow_INS_EN"></exportAttribute>
		<exportAttribute internalAttributeId="Orange_DES_NL" externalAttributeId="Orange_DES_NL"></exportAttribute>
		<exportAttribute internalAttributeId="Orange_INS_NL" externalAttributeId="Orange_INS_NL"></exportAttribute>
		<exportAttribute internalAttributeId="Orange_DES_EN" externalAttributeId="Orange_DES_EN"></exportAttribute>
		<exportAttribute internalAttributeId="Orange_INS_EN" externalAttributeId="Orange_INS_EN"></exportAttribute>
		<exportAttribute internalAttributeId="Red_DES_NL" externalAttributeId="Red_DES_NL"></exportAttribute>
		<exportAttribute internalAttributeId="Red_INS_NL" externalAttributeId="Red_INS_NL"></exportAttribute>
		<exportAttribute internalAttributeId="Red_DES_EN" externalAttributeId="Red_DES_EN"></exportAttribute>
		<exportAttribute internalAttributeId="Red_INS_EN" externalAttributeId="Red_INS_EN"></exportAttribute>

		<timeSeriesSet>
			<moduleInstanceId>ModuleInstanceId</moduleInstanceId>
			<valueType>scalar</valueType>
			<parameterId>Q</parameterId>
			<locationId>73</locationId>
			<timeSeriesType>external historical</timeSeriesType>
			<timeStep unit="minute" multiplier="15"/>
			<readWriteMode>read complete forecast</readWriteMode>
			<synchLevel>1</synchLevel>
			<ensembleId>main</ensembleId>
			<ensembleMemberIndex>0</ensembleMemberIndex>
		</timeSeriesSet>
	</export>
</timeSeriesExportRun>

...

Code Block
xml
xml
<?xml version="1.0" encoding="UTF-8"?>
<alert xmlns="urn:oasis:names:tc:emergency:cap:1.2">
    <identifier>2.49.0.0.528.0.NL.180214155054.FL_OV</identifier>
    <sender>http://www.knmi.nl/nederland-nu/weer/waarschuwingen</sender>
    <sent>2018-02-15T14:48:17+00:00</sent>
    <status>Test</status>
    <msgType>Alert</msgType>
    <source>KNMI</source>
    <scope>Public</scope>
    <info>
        <language>ne-NL</language>
        <category>Met</category>
        <event>awareness_type=12,awareness_level=1</event>
        <responseType>None</responseType>
        <urgency>Future</urgency>
        <severity>Minor</severity>
        <certainty>Likely</certainty>
        <effective>2007-12-09T00:00:00+00:00</effective>
        <onset>2007-12-09T23:00:00+00:00</onset>
        <expires>2007-12-09T23:59:59+00:00</expires>
        <senderName>KNMI Koninklijk Nederlands Meteorologisch Instituut</senderName>
        <headline>Flooding - Geen waarschuwingen voor Overijssel - Nederland</headline>
        <web>http://meteoalarm.eu/ne-NL/0/0/NL016-Overijssel.html</web>
        <contact>informatiecentrum@knmi.nl</contact>
        <parameter>
            <valueName>awareness_type</valueName>
            <value>12; flooding</value>
        </parameter>
        <parameter>
            <valueName>awareness_level</valueName>
            <value>1; green; Minor</value>
        </parameter>
        <area>
            <areaDesc>desc_NL016</areaDesc>
            <geocode>
                <valueName>EMMA_ID</valueName>
                <value>NL016</value>
            </geocode>
        </area>
    </info>
</alert>

Exporting Updates and Cancels

When it is desired to update existing alerts instead of adding new ones a "feedsUrl" property can be configured:

<string key="feedsUrl" value="https://feeds-test.meteoalarm.org/feeds/meteoalarm-legacy-atom-netherlands"/>

The export will read from this url what the existing alerts are and compare them with the data for the export.

When there is data for a non existing alert, a new alert will be exported.

When there is different data for an existing alert and update will be send.

overrulingIdentifierElement

Because during development there have been differences detected between the production and test server an overrulingIdentifierElement property has been introduced which functions as a signal that some information needs to be taken from different elements or slightly corrected. So for the export to the test server the <string key="overrulingIdentifierElement" value="id"/> needs to be configured, for the production server this property should not be present.