scrollbar |
---|
...
Table of Contents |
---|
Water Coach script configuration
What | script_config.xml (stand alone WaterCoach), or waterCoachScript.xml (embedded WaterCoach, from 2016.01 and up) |
---|---|
Description | Configuration of a script in the |
Water Coach | |
schema location | http://fews.wldelft.nl/watercoachschemas/version1.0/script_config.xsd, or http://fews.wldelft.nl/schemas/version1.0/waterCoachScript.xsd |
---|
In a script configuration, the start and end time, and events for the script are specified. A script must be is a directory in the scenario/script database in which files relevant for that script are collected, including the script configuration file. For more information, see scenario/script database.
Section | |||||
---|---|---|---|---|---|
|
...
|
...
|
Section | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Section | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Section | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Section | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Section | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Code Block | ||
---|---|---|
| ||
<script 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/watercoachschemas/version1.0/script_config.xsd">
<title>Water Wolf</title>
<timeZone>
<offset>+00:00</offset>
</timeZone>
<dataStart date="2019-10-07" time="09:00:00"/>
<dataStop date="2019-10-11" time="09:00:00"/>
<displayStart date="2020-01-01" time="12:00:00"/>
<workflow>
<workflowId>Export_Meren_WC</workflowId>
<schedulingInterval unit="minute" multiplier="10"/>
<schedulingStart date="2020-01-01" time="12:01:00"/>
</workflow>
<workflow>
<workflowId>Import_Rivieren_Forecast_WC</workflowId>
<schedulingInterval unit="minute" multiplier="10"/>
<schedulingStart date="2020-01-01" time="12:02:00"/>
</workflow>
</script> |
Example script
An example of a script configuration is given here:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2009 sp1 (http://www.altova.com) by ICT (Stichting Deltares) -->
<script 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/waterCoachScript.xsd">
<title>Demonstration</title>
<dataStart date="2007-10-04" time="10:00:00"/>
<dataStop date="2007-10-04" time="13:05:00"/>
<displayStart date="2012-11-23" time="09:55:00"/>
<stories>
<inbox>
<title>inbox</title>
<frame>
<title lang="EN">Session start</title>
<start date="2007-10-04" time="10:05:05"/>
<popup>true</popup>
<requiredExperienceLevel>0</requiredExperienceLevel>
<requiredExperienceLevel>1</requiredExperienceLevel>
<file lang="EN">start_session.txt</file>
</frame>
<frame>
<title lang="EN">Help</title>
<start date="2007-10-04" time="10:05:15"/>
<popup>false</popup>
<requiredExperienceLevel>0</requiredExperienceLevel>
<requiredExperienceLevel>1</requiredExperienceLevel>
<message lang="EN">If you need help, take a look at file://%fewsRegionDir%\Help.pdf</message>
</frame>
<frame>
<title lang="EN">KNMI analysis_1</title>
<start date="2007-10-04" time="10:06:05"/>
<popup>false</popup>
<requiredExperienceLevel>0</requiredExperienceLevel>
<requiredExperienceLevel>1</requiredExperienceLevel>
<file lang="EN">windfield_03111200.pdf</file>
</frame>
<frame>
<title lang="EN">Assignment 1</title>
<start date="2007-10-04" time="10:16:00"/>
<popup>false</popup>
<requiredExperienceLevel>0</requiredExperienceLevel>
<once>true</once>
<file lang="EN">assignment_1.txt</file>
</frame>
</inbox>
<story color="aquamarine">
<title>KNMI</title>
<frame>
<title lang="EN">Telephone call</title>
<start date="2007-10-04" time="10:06:00"/>
<stop date="2007-10-04" time="10:16:00"/>
<popup>true</popup>
<requiredExperienceLevel>0</requiredExperienceLevel>
<requiredExperienceLevel>1</requiredExperienceLevel>
<file lang="EN">phonecall_knmi_1.txt</file>
</frame>
<frame>
<title lang="EN">KNMI phoneline is busy</title>
<start date="2007-10-04" time="10:16:00"/>
<stop date="2007-10-04" time="11:05:00"/>
<popup>false</popup>
<requiredExperienceLevel>0</requiredExperienceLevel>
<requiredExperienceLevel>1</requiredExperienceLevel>
<message lang="EN">KNMI phoneline is busy. PLease try again later.</message>
<message lang="NL">KNMI telefoonlijn is ingesprek. Probeer het later nogmaals.</message>
</frame>
</story>
<story color="goldenrod">
<title>HMCZ</title>
<frame>
<title lang="EN">Telephone call</title>
<start date="2007-10-04" time="11:07:00"/>
<stop date="2007-10-04" time="12:07:00"/>
<popup>false</popup>
<requiredExperienceLevel>0</requiredExperienceLevel>
<file lang="EN">phonecall_hmcz_1.txt</file>
</frame>
</story>
<story color="forest green">
<title>HMCN</title>
<frame>
<title lang="EN">Telephone call</title>
<start date="2007-10-04" time="10:08:00"/>
<stop date="2007-10-04" time="12:08:00"/>
<popup>false</popup>
<requiredExperienceLevel>0</requiredExperienceLevel>
<file lang="EN">phonecall_hmcn_1.txt</file>
</frame>
</story>
</stories>
<forecastTable>
<header>
<column id="sector">sector</column>
<column id="station">station</column>
<column id="astro_date" lang="EN">date</column>
<column id="astro_time" lang="EN">time astro high tide</column>
<column id="astro_level" unit="cm" isExport="true" exportName="H.tidal.astronomic">astro water level</column>
<column id="svsd_forecast" unit="cm" isEditable="true" exportName="H.tidal.peak">forecast</column>
</header>
<row id="Vlissingen">
<cell columnId="sector">Schelde</cell>
<cell columnId="station">Vlissingen</cell>
<cell columnId="astro_date" lang="EN">January 1</cell>
<cell columnId="astro_time">19:16</cell>
<cell columnId="astro_level">237</cell>
</row>
<row id="HoekVanHolland">
<cell columnId="sector">West Holland</cell>
<cell columnId="station">Hoek van Holland</cell>
<cell columnId="astro_date" lang="EN">January 1</cell>
<cell columnId="astro_time">20:01</cell>
<cell columnId="astro_level">122</cell>
</row>
</forecastTable>
<forecastNote>
<initialText lang="EN">Here you can add notes to support your forecast.</initialText>
</forecastNote>
<dictionaryFiles>
<dictionaryFile lang="EN">Dictionary_1.xml</dictionaryFile>
</dictionaryFiles>
</script>
|
Dictionary file configuration
Anchor | ||||
---|---|---|---|---|
|
What | dictionary.xml (stand alone WaterCoach), or waterCoachDictionary.xml (embedded WaterCoach, from 2016.01 and up) |
---|---|
Description | Configuration of a dictionary file in the Water Coach |
schema location | http://fews.wldelft.nl/watercoachschemas/version1.0/dictionary.xsd, or http://fews.wldelft.nl/schemas/version1.0/waterCoachDictionary.xsd |
Section | |||||||
---|---|---|---|---|---|---|---|
|
Anchor | ||||
---|---|---|---|---|
|
Example dictionary
An example of a dictionary file configuration is given here:
Code Block | ||
---|---|---|
| ||
<?xml version="1.0" encoding="UTF-8"?>
<dictionary 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/waterCoachDictionary.xsd">
<entry>
<word>ACCESS C</word>
<definition>
ACCESS C (1 hour high resolution 36 hour models covering limited domains). Same
disaggregation and sub-area estimation as for OCF.
</definition>
</entry>
<entry>
<word>ACCESS R</word>
<definition>
ACCESS R (1 hour medium resolution 72 hour model). Same disaggregation and
sub-area estimation as for OCF.
</definition>
</entry>
<entry>
<word>ACCESS G</word>
<definition>
ACCESS G (3 hour low resolution model). Same disaggregation and sub-area
estimation as for OCF.
</definition>
</entry>
<entry>
<word>ECMWF</word>
<definition>
ECMWF (3 hour low resolution model). Same disaggregation and sub-area
sestimation as for OCF.
</definition>
</entry>
</dictionary> |
Stories
In the section Stories
of the script configuration, an arbitrary number of stories can be specified. Two types of stories can be specified:
Inbox
is optional and may be specified only once. The inbox consists of events (or messages) that are put in the inbox, which can be activated by the user.Story
can be specified an arbitrary number of times. Each story corresponds to a button in the user interface that can be activated by the user. The content of story buttons can be dynamic, i.e. different events may be triggered by pushing the story button at different times.
Each story must have a title by specifying the Title
key (but the title for the inbox is optional). This title will be used as the title of the story button. The title can be different for various languages:
...
<Story>
<Title lang="NL">Telefoongesprek</Title>
<Title lang="GE">Anruf</Title>
<Title>Telephone call</Title>
</Story>
If the language attribute for Title
is specified and it corresponds to the preferred language in the application configuration, then this title is used in the script. If no language attribute is found that corresponds to the preferred language, then the default Title
for which no language attribute was specified will be used.
A story may consist of an arbitrary number of frames according to the following schema:
The title of a frame in the inbox will be used in the list of actions that the user can invoke from the inbox drop-down menu. As explained above, the title can be different for various languages.
The Start
and Stop
keys indicate the time window in which the frame of a story is active. For a frame in the inbox this means that the associated event is available in the inbox between the start and stop time. For a frame in a regular story, the associated event will be executed if the user pushes the story button between the start and stop time. The Start
and Stop
keys have attributes date
and time
following the format YYYY-MM-DD
and hh:mm:ss
, respectively. Both the Start
and Stop
keys are optional. If these are not specified, then these default to the start and end time of the script, respectively.
The Popup
key is a flag indicating whether or not to show a pop-up window at the start of the frame. For a frame belonging to the inbox this means that the associated event is executed. For a frame of a regular story, a message dialog appears informing the user that new content is available for a story, which can trigger the user to activate the relevant story button.
A condition can be added to a story frame; the associated event will only be executed if this condition is fulfilled. For now, the only supported condition is one based on a forecast published by the user. A condition must be specified according to:
where
Type
must be equal to "Forecast",ColumnId
is a reference to a column in the forecast table (see below), usually a parameter,RowId
is a reference to a row in the forecast table (see below), usually a location,Operator
is one of "lt" (less than), "gt" (greater than), "le" (less than or equal to), or "ge" (greater than or equal to), andValue
is the reference value to compare to.
An example in which a condition is used:
...
<Frame>
<Title>condition example</Title>
<Start date="2008-03-13" time="00:01:00"/>
<Stop date="2008-03-13" time="00:02:00"/>
<Popup>true</Popup>
<Condition>
<Type>Forecast</Type>
<ColumnId>water_level</ColumnId>
<RowId>Lowestoft</RowId>
<Operator>ge</Operator>
<Value>300</Value>
</Condition>
<File>emergency_telephone_call.txt</File>
</Frame>
An event can be associated with a story frame by specifying the File
key. Depending on the file type, a suitable application is started for displaying the file (e.g. a pdf-file is displayed in Adobe Reader and the contents of a txt-file is displayed in a message dialog window).
The File
-key has an optional language attribute that behaves the same as for the Title
keys.
Forecast Table
The contents of the forecast table can be configured using the ForecastTable
key. The schema for this section is as follows:
The time zone can be specified with the TimeZone
key; for now, only "GMT" is supported.
Using the Header
key the headers of columns in the forecast table can be specified. A column can be added with the the Column
key. The value of this key is used as the name in the header of that column. For each column an id
attribute must be specified. Furthermore, the following optional attributes may be specified for a column:
isEditable
: a flag with valuetrue
orfalse
indicating whether the column is editable for the user,unit
: a string containing the unit for the column (e.g. "cm" for a water level),isExport
: a flag with valuetrue
orfalse
indicating whether the column must be exported to file if the forecast is published (editable columns are exported by default),exportName
: a string containing the name that must be used for exporting the column to file.
For example, the header section in the forecast table may look like:
...
<Header>
<Column id="station">station</Column>
<Column id="date">date</Column>
<Column id="time">time</Column>
<Column id="astro_level" isExport="true" exportName="H.tidal.astronomic" unit="cm">astronomical water level</Column>
<Column id="water_level" isEditable="true" exportName="H.tidal.peak" unit="cm">water level</Column>
<Column id="discharge" isEditable="true" exportName="Q" unit="m^3/s">discharge</Column>
</Header>
Rows can be added to the forecast table by specifying the Rows
key. The number of rows is arbitrary. For each row, an identifier must be specified using the id
attribute. Contents for a row is added using the Cell
key, where each cell must correspond to a column in the header. This can be achieved with the columnId
attribute of the Row
key. For example:
...
<Row id="Vlissingen">
<Cell columnId="station">Vlissingen</Cell>
<Cell columnId="date">12 Mar</Cell>
<Cell columnId="time">17h16</Cell>
<Cell columnId="astro_level">237</Cell>
</Row>
Example
A complete example of a script configuration is given here:
Code Block | |
---|---|
xml | xml |
title | Example of script configuration |
<?xml version="1.0" encoding="UTF-8"?>
<Script xmlns="http://localhost" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://localhost ../../xml-schemas/script_config.xsd">
<Title>storm surge March 12</Title>
<Start date="2008-03-12" time="04:00:00"/>
<Stop date="2008-03-12" time="18:00:00"/>
<NextEventButton>true</NextEventButton>
<Stories>
<Inbox>
<Title>inbox</Title>
<Frame>
<Title lang="NL">Start zitting</Title>
<Title lang="EN">Session start</Title>
<Start date="2008-03-12" time="04:00:05"/>
<Popup>true</Popup>
<File lang="NL">start_zitting_NL.txt</File>
<File lang="EN">start_zitting_EN.txt</File>
</Frame>
<Frame>
<Title lang="NL">KNMI weeranalyse 12 maart, 0:00 uur</Title>
<Title lang="EN">KNMI analysis March 12, 12:00 midnight</Title>
<Start date="2008-03-12" time="04:00:05"/>
<Popup>false</Popup>
<File lang="NL">weerkaart_12maart_00uur.pdf</File>
<File lang="EN">weerkaart_12maart_00uur.pdf</File>
</Frame>
<Frame>
<Title lang="NL">KNMI run 11 maart, 12:00 uur</Title>
<Title lang="EN">KNMI run March 11, 12:00 noon</Title>
<Start date="2008-03-12" time="04:00:05"/>
<Popup>false</Popup>
<File lang="NL">windveld_11maart_12uur.pdf</File>
<File lang="EN">windveld_11maart_12uur.pdf</File>
</Frame>
<Frame>
<Title lang="NL">Opdracht 1</Title>
<Title lang="EN">Exercise 1</Title>
<Start date="2008-03-12" time="04:11:00"/>
<Popup>true</Popup>
<File lang="NL">opdracht1_NL.txt</File>
<File lang="EN">opdracht1_EN.txt</File>
</Frame>
</Inbox>
<Story>
<Title>KNMI</Title>
<Frame>
<Title lang="NL">Telefoon</Title>
<Title lang="EN">Telephone call</Title>
<Start date="2008-03-12" time="04:10:00"/>
<Popup>true</Popup>
<File lang="NL">telefoon_knmi_bericht1_NL.txt</File>
<File lang="EN">telefoon_knmi_bericht1_EN.txt</File>
</Frame>
</Story>
<Story>
<Title>HMCZ</Title>
<Frame>
<Title lang="NL">Telefoon</Title>
<Title lang="EN">Telephone call</Title>
<Start date="2008-03-12" time="04:11:00"/>
<Popup>false</Popup>
<File lang="NL">telefoon_hmcz_bericht1_NL.txt</File>
<File lang="EN">telefoon_hmcz_bericht1_EN.txt</File>
</Frame>
</Story>
<Story>
<Title>HMCN</Title>
<Frame>
<Title lang="NL">Telefoon</Title>
<Title lang="EN">Telephone call</Title>
<Start date="2008-03-12" time="05:36:00"/>
<Popup>false</Popup>
<File lang="NL">telefoon_hmcn_bericht1_NL.txt</File>
<File lang="EN">telefoon_hmcn_bericht1_EN.txt</File>
</Frame>
</Story>
</Stories>
<ForecastTable>
<TimeZone>GMT</TimeZone>
<Header>
<Column id="sector">sector</Column>
<Column id="station">station</Column>
<Column id="astro_date">datum</Column>
<Column id="astro_time">tijd astro HW</Column>
<Column id="astro_level" unit="cm" isExport="true" exportName="H.tidal.astronomic">astro waterstand</Column>
<Column id="svsd_forecast" unit="cm" isEditable="true" exportName="H.tidal.peak">SVSD verwachting</Column>
</Header>
<Row id="Vlissingen">
<Cell columnId="sector">Schelde</Cell>
<Cell columnId="station">Vlissingen</Cell>
<Cell columnId="astro_date">12 maart</Cell>
<Cell columnId="astro_time">17:16</Cell>
<Cell columnId="astro_level">237</Cell>
</Row>
<Row id="HoekVanHolland">
<Cell columnId="sector">West Holland</Cell>
<Cell columnId="station">Hoek van Holland</Cell>
<Cell columnId="astro_date">12 maart</Cell>
<Cell columnId="astro_time">18:01</Cell>
<Cell columnId="astro_level">122</Cell>
</Row>
</ForecastTable>
</Script>
|