Input
- input1
- input2
Coefficient set
- interpolationType
- extrapolationType
- lookupTable (choice)
- lookupTableRow
- locationId / inputParameterId1/ inputParameterId2 / outputParameterId / qualifierId (since 2017.02)
Output
- output
Description
The output will be calculated using a simple table lookup with the input value. The output value will be calculated by interpolation or extrapolation in the lookup table. The type of
interpolation can be configured in the coefficient set with the interpolation type option. The options available are:lineair and logarithmic. When the input value is outside the range
of the lookup table the behaviour of the transformation will be determined by the configured extrapolation type. Make sure the input and output values are configured in ascending order.
The options available are:
- notAllowed,
- maxMin,
- linear
If the first option, notAllowed, is configured an input value outside the range will return a missing value. The second option will return the minimum value or the maximum value in the lookup table. The third option linear enables the extrapolation for the function.
input1Unit: unit of the input1 values in the lookup table. When this unit is different from the input parameter unit the input values are converted using the config units configured in the parameters.xml
input2Unit: unit of the input2 values in the lookup table. When this unit is different from the input parameter unit the input values are converted using the config units configured in the parameters.xml
ouputUnit: unit of the output values in the lookup table. When this unit is different from the output parameter unit the output values are converted using the config units configured in the parameters.xml
Lookup using table directly specified in transformation config
<transformation id="2dTableTest"> <lookup> <twoDimensionalLookup> <input1> <variableId>H1</variableId> </input1> <input2> <variableId>H2</variableId> </input2> <coefficientSet> <interpolationType>linear</interpolationType> <extrapolationType>extrapolate</extrapolationType> <input1Unit>cm</input1Unit> <input2Unit>dm</input2Unit> <outputUnit>mm</outputUnit> <lookupTable> <lookupTableRow input1="0" input2="0" output="1000"/> <lookupTableRow input1="0" input2="20" output="2000"/> <lookupTableRow input1="200" input2="0" output="0"/> <lookupTableRow input1="200" input2="40" output="4000"/> <lookupTableRow input1="300" input2="0" output="0"/> <lookupTableRow input1="300" input2="80" output="16000"/> </lookupTable> </coefficientSet> <output> <variableId>H3</variableId> </output> </twoDimensionalLookup> </lookup> </transformation>
Lookup using LookupTables.xml from RegionConfigFiles
Since 2017.02 it is possible to use LookupTables.xml from RegionConfig by referencing with locationId, inputParameterId & outputParameterId
<transformation id="2dTableTest"> <lookup> <twoDimensionalLookup> <input1> <variableId>scalar1</variableId> </input1> <input2> <variableId>scalar2</variableId> </input2> <coefficientSet> <interpolationType>linear</interpolationType> <extrapolationType>extrapolate</extrapolationType> <lookupTable> <piTable> <locationId>H-2001</locationId> <inputParameterId1>H.m</inputParameterId1> <inputParameterId2>H.updated</inputParameterId2> <outputParameterId>H.obs</outputParameterId> </piTable> </lookupTable> </coefficientSet> <output> <variableId>scalar3</variableId> </output> </twoDimensionalLookup> </lookup> </transformation>
Example LookupTables.xml from RegionConfig
<?xml version="1.0" encoding="UTF-8"?> <Tables 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_tables.xsd"> <table> <header> <locationId>H-2001</locationId> <qualifierId>Plant Power Table</qualifierId> <a parameterId="H.m" units="m"/> <b parameterId="H.obs" units="m"/> <c parameterId="H.updated" units="m"/> <d parameterId="HU.Total" units=""/> <e parameterId="HU.Last" units=""/> <startDate date="2013-01-02" time="00:00:00"/> </header> <table> <row a="39" b="0" c="0" d="0" e="0"/> <row a="39" b="6.901" c="20" d="1" e="0"/> <row a="39" b="13.802" c="39.93099" d="2" e="0"/> <row a="39" b="20.703" c="59.79297" d="3" e="0"/> <row a="39" b="27.604" c="79.58594" d="4" e="0"/> <row a="39" b="34.505" c="99.3099" d="5" e="0"/> <row a="39" b="61.876497" c="154.2" d="6" e="0"/> <row a="40" b="0" c="0" d="0" e="0"/> <row a="40" b="6.881" c="20.5" d="1" e="0"/> <row a="40" b="13.762" c="40.93119" d="2" e="0"/> <row a="40" b="20.643" c="61.29357" d="3" e="0"/> <row a="40" b="27.524" c="81.58714" d="4" e="0"/> <row a="40" b="34.405" c="101.8119" d="5" e="0"/> <row a="40" b="61.312647" c="158.6" d="6" e="0"/> <row a="41" b="0" c="0" d="0" e="0"/> <row a="41" b="6.863" c="21" d="1" e="0"/> <row a="41" b="13.726" c="41.93137" d="2" e="0"/> <row a="41" b="20.589" c="62.79411" d="3" e="0"/> <row a="41" b="27.452" c="83.58822" d="4" e="0"/> <row a="41" b="34.315" c="104.3137" d="5" e="0"/> <row a="41" b="60.815997" c="163" d="6" e="0"/> </table> </table> </Tables>
inputParameterId1 must always be 'a'. The other parameters can be either inputParameterId2 or outputParameter
When 'c' needs to be looked up by 'a' and 'b' ->
<locationId> of the PiTable
<inputParameterId1> => 'a', the domain parameter
<inputParameterId2> => 'b',
<outputParameterId> => 'c'
When 'b' needs to be looked up by 'a' and 'c' ->
<locationId> of the PiTable
<inputParameterId1> => 'a', the domain parameter
<inputParameterId2> => 'c',
<outputParameterId> => 'b'