Time Dependent Locations

In the case that FEWS is used as a forecasting system the locations dont need to be time dependent in the majority of the cases. The time span of a forecating system is usually several weeks.

For such a short time span the configuration of the locations can be static and if something changes in one of the forecasting locations this can be changed in the FEWS system without keeping track of the situation was before the change.

However when FEWS is used for a Water Information System (WIS) it is important that FEWS also has knowledge of how the location configuration was in the past. In a WIS the time span is much larger and can be as large as 10 or 20 years.

To make it possible to reproduce the time series generated in the past it is necessary that FEWS still has knowledge about how the location configuration was in the past.


The chapter will describe how it is possible to configure time dependent locations. It is also very important to note that only the functionality which is described in this chapter can be considered time depedent.


Configuration of time dependent locations

What exactly is a time dependent location? A time dependent location has a start- and a endtime. In addition the attributes, but also the related locations of the location can vary in time.

A set of time depedent locations can be configured int the LocationSets.xml file. Below is een example file.


<locationSet id="example">
	<geoDatum>Rijks Driehoekstelsel</geoDatum>
	<relation id="relation">
	<attribute id="PARAMETERS">
		<attribute id="Q">


The tags visibilityStartTime and visibilityEndTime relate to a columns in the in the file mapLayers/myLocationFile.dbf.  The dbf file defines which locations are in the locationSet example.

The column ID defines the id of the location. The column NAME defines the name. The tag visibilityStarTime refers to the column START.

The tag visibiltyEndTime refers to the column END. The combination of both defines for which period this location is valid.


The tag relation with id relation defines a related location. The value is stored in the column REL. The value should be the location id of the related location. 

if, for example, the related location of location A changes over time than this should be configured in the following way. In this example we will assume that location A has a related location B

until 1-1-2014. After this date the related location should be location C. First a row should exists in the dbf file of this locationset with the value A in column ID and the column which defines the relation (REL) should have the id

B of location B. The END column should indicate that this is valid until 1-1-2014. A second row with the same value A for the ID column should exists. The START column should indicate that this row is valid from 1-1-2014.

The column REL should have the value C to indicate that the related location is C.


In the case that the related location of a location can vary over time but that a lot of attribute stay constant it is usefull to define the constant attributes in a seperate attribute file. In the example above an attribute file is configured.

The attributes which dont vary over time can be placed in this file. However the attributeFile support the definition of a starttime and endtime in the same way it can be defined for a locationSet.

Grid display

The grid display supports the usage of time dependent locations and polygons. The time step displayed in the grid display can be varied by using the time slider at the top of the display. In a FEWS system were the locations are not time

dependent the locations and polygons shown will not change when another time step is selected. However when the locations are time dependent the locations and polygons which are shown in the display will change when another time step is selected.

The polygons of the locations of the time series shown in the display will vary automaticly over time when locations are configured to be time dependent. The map layers can be time dependent. An example configuration is shown below.

		<esriShapeLayer id="Peilgebieden">

When a user double clicks on a shape in the grid display the plots dialog will automaticly open and the time series of the selected polygon will be shown. But with the introduction of time dependent locations it is possible that the polygon which overlaps a

selected geographical point varies over time. If this is the case the time series shown in the plots display will also vary over time.

Filters and Map display

By default the map display and filters will not take into account that the locations shown are time dependent but shown the situation as it is at the display time. In the explorer.xml it is possible to configure that the map display shows a time slider

if locations are shown on the map which are time dependent.

		<locationHistoryBarRelativePeriod unit="week" start="-100" end="100"/>


The screenshot below shows the slider button which appears when the locationHistoryBarRelativePeriod is configured in the explorer.xml

After pressing this button a time slider appears.

The time slider will show a time mark for each time in the view period were a location shown in the display changes. The default view period will be the period configured in the explorer.xml.

The view period can be changed by selecting the button "Period history time slider" (button with the clock and arrows). The t0 can be set to the selected time in the time slider by the button 

"Set t0 to the selected time". If a location is not visible at the selected time in the time slider, the location will be shown in the map and the filters. But the location will be greyed out to indicate that

it is not valid at the selected time. For performance reasons the icons in the filters will not be updated according to the selected time when the time slider is shown in the map display. Activating the time slider

should be considered as going into a sort of special mode which allows to view how locations were configured in the past.

Time dependent map layers

The map layers in the map display can be made time depedent in the same way as the map layers in the grid display.


The transformation module automaticly takes into account the time dependency of the locations. No configuration is needed in the transformation module. If an end time is introduced for a location and time series are

in the database for this location after the end time than the part of the time series which is not valid anymore will be removed from the time series after it has been read from the database. The benefit of this approach is that

the configurator doesn't need to remove obsolete parts of time series for the location from the database.

Secondary validation

The secondary validation module also takes into account the time dependency of the locations. The secondary validation will only run if all of the used locations are valid. And the values of location attributes used in the

expression can be time dependent and are always resolved for the time step for which the validation is being done.

		<seriesComparisonCheck id="timeDependentSeriesComparisonCheck">
			<expression>output - A1 >@A@</expression>
			<logMessage>%AMOUNT_CHANGED_FLAGS% flags set to %OUTPUT_FLAG% by [%CHECK_ID%, %EXPRESSION%].</logMessage>


However it is important to explain how the time dependency of locations influences the resolving of the location attributes.

In the example above the expression contains one location attribute A. But which location should be used to resolve this location?

Both variable output and variable A1 provide a location which could be used to resolve the attribute. We chose to always use the value of the attribute of the output location in the expression.

Using the input is not very logical and in addition it would still not be clear which location to use in the case that the input consists of time series with more than one location.


But should be done in the case that more than one validating variable is configured? In that case the validation is being done for one validating variable at the time.

If 2 validating variables are being used. Lets say for example A and B than the secondary validation will first run for validating variable A and validate the time series defined by this variable.

In that case the location of variable A will be used to determine the value of the location attributes. After that the secondary validation will run for validating variable B which will mean that the location of this variable will be used.