2.2.1.8 xyz_shep

Brief Information

Convert XYZ data to matrix using Shepard gridding

Command Line Usage

1. xyz_shep iz:=Col(3);

2. xyz_shep iz:=Col(3) rows:=10 cols:=10;

3. xyz_shep iz:=Col(3) q:=13 w:=19;

4. xyz_shep iz:=Col(3) om:=[MBook]MSheet!Mat(1);

X-Function Execution Options

Please refer to the page for additional option switches when accessing the x-function from script

Variables

Display
Name
Variable
Name
I/O
and
Type
Default
Value
Description
Input iz

Input

XYZRange

<active>

Specifies the input XYZ range.

Rows rows

Input

int

20

Rows in the output matrix.

Columns cols

Input

int

20

Columns in the output matrix.

Quadratic q

Input

int

13

The quadratic interplant locality factor, which is used to calculate the influence radius of local approximate quadratic fitted function for each node. By default, q equals to 13. Modifying these factors could increase gridding accuracy, though note that the computation time can be greatly increased for large values (i.e. values that decrease the locality of the method.)

Weight w

Input

int

19

The weight function locality factor, which is used to calculate the weighting radius for each node. By default, w equals to 19. Modifying these factors could increase gridding accuracy, though note that the computation time can be greatly increased for large values (i.e. values that decrease the locality of the method.)

Output Matrix om

Output

MatrixObject

<new>

Specify the output matrix object.

See the syntax here.

Description

This function performs modified Shepard gridding method which described by Renka[1]. This is a distance-based method and improves the Shepard's method by some local strategies. During gridding, only the data points that lying within certain ranges, R_q and R_w, to the grid nodes are considered. To make it easier for setting, two integers, N_q and N_w are used to calculate R_q and R_w (parameters q and w of the function, and called Quadratic Interplant Locality Factor and Weight Function Locality Factor, respectively). Increase the value of N_q and N_w will make the calculation more global, vice versa. Generally speaking, setting N_q and N_w works quite well.

The value of R_q and R_w in this function is varied for each node. There is another similar X-Function xyz_shep_nag which described by Franke and Nielson[2] uses a fixed R_q and R_w calculation.

Examples

  • To run from Command window
  1. Import XYZ Random Gaussian.dat on the \Samples\Matrix Conversion and Gridding folder.
  2. Type xyz_shep 3 in the command window. Or type xyz_shep -d to bring up the dialog.
  • Code Sample
/*
This example shows how convert random worksheet data into matrix by Shepard gridding method.
The sample data is exe_path\Samples\Matrix Conversion and Gridding\XYZ Random Gaussian.dat
1. Load data to a new created workbook.
2. Random xyz gridding by Shepard method.
3. Plot a contour graph.
*/
// Get sample data
fn$ = system.path.program$ + "Samples\Matrix Conversion and Gridding\XYZ Random Gaussian.dat";
newbook;
impASC fn$;
// Set the third column as Z column
wks.col3.type = 6;

// Convert worksheet data into matrix by Shepard gridding method
xyz_shep 3;

// Plot 
worksheet -p 226 contour;

Algorithm

This is a distance-based weighted gridding method which interpolate data by:

Xyz shep help English files image002.gif,

where F_i is the underlying function at nodes (x_i, y_i), and W_i(x, y) is the weights. To make the function more local, F_i and W_i are calculated only by the data points lying in the circle with center (x_i, y_i) and some radius R..

Firstly, the weights are defined as:

Xyz shep help English files image004.gif.

Given a radius (R_w, the relative weight (w_k is:

Xyz shep help English files image006.gif for

Xyz shep help English files image008.gif,

and (d_k is the Euclidean distance between (x, y) and (x_k, y_k):

Xyz shep help English files image010.gif.

For any (R_w >0, we have:

Xyz shep help English files image012.gif

Xyz shep help English files image014.gif.

Secondly, the nodal function (F_i is replaced by a local approximation function Q_k:

Xyz shep help English files image016.gif

(Q_k is the weighted least-square quadratic fitted function to the data located within (R_q of nodal points. So the coefficients minimize:

Xyz shep help English files image018.gif

for

Xyz shep help English files image020.gif.

It can be seen above that the interpolate function is a local approximation function and depends on the radius of influence about nodal points, (R_q and (R_w. In this method, (R_q and (R_w are varied for each nodal point to make the calculation more accurate. Given two integers (N_q and (N_w, (R_q and (R_w are chosen just large enough to include (N_q and (N_w nodes.

References

[1]. Renka, R. J., Multivariate Interpolation of Large Sets of Scattered Data. ACM Transactions on Mathematical Software, Vol. 14, No. 2, June 1988, pp:139-148.

[2]. Franke R and Nielson G. smooth Interpolation of Large Sets of Scattered Data. Internat. J.Num. Methods Engrg. 1980, 15 pp:1691-1704.

Related X-Functions

xyz_regular, xyz_renka, xyz_renka_nag, xyz_shep_nag, xyz_sparse, xyz_tps


Keywords:worksheet