Overview
The Delft-Fews Published interface format (PI) consists of a number of xsd schemas defining a number of XML formats for the exchange of data. The timeseries format deals with (scalar) timeseries data.
Time series data represent data collected over a given period of time at a specific location. Within the PI XML format timeseries files can contain both equidistant times series and non-equidistant series. Multiple time series can be stored in a single file. All time and date information is given in GMT unless otherwise stated. Each series has a small header followed by a number of events. An event is defined by a date/time, a value and an (optional) quality flag. A missing value definition can be defined in the files. The default (and preferred) missing value definition is NaN.
As described in the timeseries XML schemas a single quality flag may be given. It is up to the data supplier to describe the meaning of the quality flags used. Delft-Fews will map these to internal flags on import.
A detailed description of all PI formats can be found at https://publicwiki.deltares.nl/display/FEWSDOC/The+Delft-Fews+Published+Interface. The latest versions of the schema files are always available at the Deltares website at: http://fews.wldelft.nl/schemas/version1.0/pi-schemas/pi_timeseries.xsd
When the time zone is not present in the PI file the default timezone configured in the general adapter or import module is used. The time zone is always written to the pi time series file when exported from FEWS.
The file format
Please consult the full documentation (https://publicwiki.deltares.nl/display/FEWSDOC/The+Delft-Fews+Published+Interface) and the xsd schema for more details.
<TimeSeries xmlns="http://www.wldelft.nl/fews/PI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.wldelft.nl/fews/PI http://fews.wldelft.nl/schemas/version1.0/pi-schemas/pi_timeseries.xsd" version="1.2"> <timeZone>0.0</timeZone> <series> <header> <type>instantaneous</type> <locationId>locA</locationId> <!-- Put the locationId here. the locationId is defined by the data supplier. Delft-Fews will map this to an internal location if needed. --> <parameterId>H.obs</parameterId> <!-- Put the parameterId here. the parameterIdis defined by the data supplier. Delft-Fews will map this to an internal location if needed. --> <timeStep unit="second" multiplier="3600"/> <!-- start and end date/time are required! --> <startDate date="2006-08-23" time="17:00:00"/> <endDate date="2006-08-24" time="00:00:00"/> <missVal>-8888.0</missVal> <longName>Bobbio Trebbia</longName> <units>m</units> </header> <event date="2006-08-23" time="17:00:00" value="8.66"/> <event date="2006-08-23" time="18:00:00" value="9.66"/> <event date="2006-08-23" time="19:00:00" value="8.66" flag="3" flagSource="SX"/> <!-- flag=3 means doubtfull, the flagsource explains the reason: exceeding the Soft Max criteria--> <event date="2006-08-23" time="20:00:00" value="-8888.0" flag="9"/> <event date="2006-08-23" time="21:00:00" value="8888.0"/> <event date="2006-08-23" time="22:00:00" value="8888.0" flag="2"/> <event date="2006-08-23" time="23:00:00" value="8888.0" flag="1"/> <event date="2006-08-24" time="00:00:00" value="-8888.0" flag="9"/> </series> <series> <header> <type>instantaneous</type> <locationId>locB</locationId> <!-- Put the locationId here. the locationId is defined by the data supplier. Delft-Fews will map this to an internal location if needed. --> <parameterId>H.obs</parameterId> <!-- Put the parameterId here. the parameterIdis defined by the data supplier. Delft-Fews will map this to an internal location if needed. --> <qualifierId>test</qualifierId> <!-- here are the (optional) qualifierIds listed, there can be more than only one --> <qualifierId>temp</qualifierId> <timeStep unit="second" multiplier="3600"/> <!-- start and end date/time are required! --> <startDate date="2006-08-23" time="17:00:00"/> <endDate date="2006-08-24" time="00:00:00"/> <missVal>-999.0</missVal> <longName>Fitz</longName> <units>m</units> </header> <properties> <dateTime key="requestTime" date="2014-03-10" time="15:43:04" /> <string value="source" key="Matroos"/> </properties> <event date="2006-08-23" time="17:00:00" value="2.66"/> <event date="2006-08-23" time="18:00:00" value="2.66"/> <event date="2006-08-23" time="19:00:00" value="2.66"/> <event date="2006-08-23" time="20:00:00" value="-2.0"/> <event date="2006-08-23" time="21:00:00" value="2.0"/> <event date="2006-08-23" time="22:00:00" value="2.0"/> <event date="2006-08-23" time="23:00:00" value="2.0"/> <event date="2006-08-24" time="00:00:00" value="-2.0"/> </series> </TimeSeries>
A layout of the schema that defines this format is shown below:
Parameter domain axes
A pi time series file can contain 1D (single domain axis) or 2D (two domain axes) data like spectra. The domain axes are non-spatial and non-temporary like frequency and direction. Grids and longitudinal profiles can not be store in a pi time series file at this moment. 1D values are displayed as XY chart per point in time like longitudinal profiles. For 2D value the second domain axis is used as direction to display a polar plot per time.
<?xml version="1.0" encoding="UTF-8"?> <TimeSeries xmlns="http://www.wldelft.nl/fews/PI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.wldelft.nl/fews/PI http://fews.wldelft.nl/schemas/version1.0/pi-schemas/pi_timeseries.xsd" version="1.2"> <timeZone>0.0</timeZone> <series> <header> <type>instantaneous</type> <locationId>CRKW-001_N</locationId> <parameterId>Wave.variancedensity.voorspeld</parameterId> <timeStep unit="nonequidistant"/> <startDate date="2011-06-05" time="00:00:00"/> <endDate date="2011-06-05" time="00:00:20"/> <missVal>-999</missVal> <stationName>Burg.Korstanjestraat</stationName> <units>m2/Hz</units> <domainAxis parameterId="f" units="Hz"/> <domainAxis parameterId="dir" units="degrees"/> </header> <event date="2011-06-05" time="00:00:00" flag="9"/> <domainAxisValues parameterId="f"> 1.0 2.0 3.0 4.0 </domainAxisValues> <domainAxisValues parameterId="dir"> 0.0 180.0 </domainAxisValues> <event date="2011-06-05" time="00:00:10" flag="0"> 1.0 2.0 3.0 4.0 -999 6.0 7.0 8.0 </event> <event date="2011-06-05" time="00:00:20" flag="0"> 8.0 7.0 6.0 5.0 4.0 3.0 2.0 1.0 </event> </series> </TimeSeries>