Overview

The ZRXP format is a ASCII data exchange file format of Wiski. The file may contain one or more time series. A more detailed description of the complete format can be found in this document wiski_zrxp3.0_en.pdf.

The time series are defined by a header line that starts with #REXCHANGE.
Directly after this keyword the ID of the time series is defined: #REXCHANGE013S050
After the keyword RINVAL the missing value is defined.

In a complete example of the header

#REXCHANGE013S050|*|RINVAL-777|*|

the next items will be read:

  • time series ID = 013S050
  • missing value = -777

A new time series starts simply with a new header. It also means that the previous series has ended.

The ZRXP files can be supplied in a ZIP file.

More recent versions of ZRXP files may contain a separate location and parameter instead of #REXCHANGE. The location is defined by the keyword SANR and the parameter by CNAME.
The CUNIT keyword defines the unit and the RINVAL the missing value.

Configuration

The configuration for importing ZRXP files is described below. It is important to note that these files may contain various ways of describing the timeseries and the locations, parameters and units corresponding to the timeseries. The following three cases can be distinguished:

  1. Only a time series ID is available
  2. A parameter id, location id and unit are available
  3. A parameter id, location id, unit and qualifier are available

As mentioned above ZRXP does not always identify both a location and a parameter ID. In that case it only has a time series ID. To import these series into FEWS you have to set both the external location ID and parameter ID to this time series ID. In the other cases you can just configure FEWS as you would regularly do with the external parameter in the externalParameter attribute and the external location in the externalLocation attribute.

Example of the import module instance:

  <import>
    <general>
      <importType>WISKI</importType>
      <folder>$IMPORT_FOLDER$/zrxp</folder>
      ....
    </general>

Example of the id mapping in case of a time series ID:

<?xml version="1.0" encoding="UTF-8"?>
<idMap version="1.1" 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/idMap.xsd">
  <map internalParameter="H" internalLocation="013" externalParameter="013S050" externalLocation="013S050"/>
  <map internalParameter="H" internalLocation="013" externalParameter="013S065" externalLocation="013S065"/>
.....

Example of the id mapping in case of a parameter/location combination (REXCHANGE7424_N_15):

<?xml version="1.0" encoding="UTF-8"?>
<idMap version="1.1" 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/idMap.xsd">
  <map internalParameter="N.obs" internalLocation="test_location" externalParameter="N" externalLocation="7424"/>
.....

Example file

FILE WITH ONLY A TIME SERIES ID

#REXCHANGE013S050|*|RINVAL-777|*|
20081111000000 7.538
20081111002000 7.541
20081111004000 7.544
20081111010000 7.547
20081111012000 7.549
20081111014000 7.550
20081111020000 7.553
20081111022000 7.554
20081111024000 7.555

where

  • locationId = 13S050
  • parameterId = 13S050
  • unit = not defined
  • missing value = -777

or

FILE WITH LOCATION, PARAMETER AND UNIT

#SANR7424|*|#SNAMEPiding|*|
#REXCHANGE7424_N_15|*|#CNAMEN|*|#CUNITmm|*|RINVAL-777|*|
20091211001500 0
20091211003000 0
20091211004500 0
20091211010000 0
20091211011500 0 

where

  • locationId = 7424
  • parameterId = N
  • unit = mm
  • missing value = -777

or

FILE WITH PARAMETER, LOCATION, UNIT AND QUALIFIER ID

#TSPATH/82/82_3/WATHTE/cmd.p|*|
#LAYOUT(timestamp,value,status,interpolation_type)|*|
#TZUTC+01|*|
#CUNITm|*|
20100127000000 -0.94 200 102
20100127001500 -0.93 200 102
20100127003000 -0.93 200 102 

where

  • locationId = 82_3
  • parameterId = WATHTE
  • qualifierId = cmd.p (which will be translated to cmd_p)
  • timezone = GMT+1
  • unit = m

Note that the status and the interpolation_type are combined to form a flag which can be mapped in the flag mapping. This is done by multiplying the status by 1000 and adding the interpolation_type (example below). The status should also be between 0 and 999.

20100227000709 3.0 200 103 => 200103
20100227000709 3.0 0 103 => 103
20100227000709 3.0 200 0 => 200000
20100227000709 3.0 200 => 200000

Java source code

WiskiTimeSeriesParser.java

  • No labels