TableInterpolation

(Function Library)

Description:

Given a graph described by a CSV file containing X and Y values, this function will interpolate a Y value for any provided X value within the range of the graph.

Returns: Numeric
Usage: Script or steady state.
Function Groups: Function Library, Oil & Gas
Related to: ShellTemperatureCorrection
Format: TableInterpolation(FileName, Input, Mode[, ErrorTag])
Parameters:
FileName

Required text. The name of the CSV file containing X and Y values for a graph. Must be relative to the root of the application folder.

Do not place file in '\Data' directory, otherwise the file will not be recognized by the application when searched for, and will fail to load.

Input
Required numeric. An X value, for which this function will return an interpolated Y value. This value must be within the range of X values found in the given CSV file.
Mode

Required numeric. Sets the type of interpolation to use.

Set to 0 for linear interpolation.

Set to 1 to return the Y value associated with the closest X value.

ErrorTag

Deprecated - for diagnostics at configuration time only, not for operations.

Optional tag object. If provided, this must be an analog tag (typically an I/O tag in Analog mode). The value of that tag will be set according as follows:

Value Meaning
0 Success
1 No file
2 Bad file (Includes a header or does not hold X,Y data points sorted by ascending X value .)
3 Input exceeds the maximum X value in the CSV file
4 Input is less than the minimum X value in the CSV file
5 Input value not provided
6 Mode not set to 0 or 1
Comments:

This function will read a table from a CSV file at the specified location and perform the selected type of interpolation for the Input value, returning the result. Returns Invalid if a result cannot be found.

Each line of the CSV file must contain two values: The X and Y coordinates for a point on the graph. No header should be included. The data must be sorted from top to bottom within the file in order by ascending X values.

An optional error tag can be provided for which an error value will be set.

Example:

\FunctionLib.TableInterpolation("CSVFile.csv", [ValueTag], 1, [Fault]\Root);