Interpolates XYZ data to arbitrary XY coordinates using the inverse distance method.

INVDISTANCE(xy, z, ri, weights, radius)

xy |
- |
A 2 column series, the X (horizontal) and Y (vertical) input values. |

z |
- |
A single column series, the Z input height at coordinates X,Y. |

ri |
- |
A 2 column series, the desired output XY coordinates. |

weights |
- |
Optional. A series, the weights of distance function. Defaults to |

radius |
- |
Optional. A real, the maximum radius to include in the interpolation. Defaults to |

A series, the interpolated Z heights for the specified output coordinates.

xi = grand(100, 1)*2 - 1;

yi = grand(100, 1)*2 - 1;

zi = cos(xi*yi);

(x, y) = fxyvals(-1, 1, 0.1, -1, 1, 0.1);

xo = x[..];

yo = y[..];

z1 = invdistance(ravel(xi,yi),zi,ravel(xo,yo));

z2 = invdistance(ravel(xi,yi),zi,ravel(xo,yo),{0, 1});

W1: xyz(xi, yi, zi);points;setsym(14)

W2: xyz(xo[..], yo[..], z1);points;setsym(14)

W3: xyz(xo[..], yo[..], z2);points;setsym(14)

This example demonstrates the interpolation of random samples of the function cos(x*y) over the XY range of –1 to 1. xi, yi and zi contain the original XYZ samples. xo and yo specify the desired output interpolation locations. z1 contains the interpolated Z values using the default weighting scheme and z2 contains the interpolated result using the classical inverse distance weighting function. W1, W2 and W3 display the results as XYZ plots.

INVDISTANCE grids XYZ data over any arbitrary XY coordinates. However, a uniform grid is most useful for interpolating XYZ points to a surface. See IGRID to directly convert XYZ data to a surface by interpolating to a uniform grid.

The inverse distance method of gridding irregularly spaced XYZ data computes the new Z value at the specified output coordinates by computing the ratio of the known Z values to their distances from the desired output coordinate. If Z is the value to interpolate at point

where Z_{i} are the known values at (x_{i} , y_{i}). The weighting function is defined as:

p is an arbitrary value and the distance R is:

where (x, y) is the coordinate of the interpolation point and _{i} , y_{i})

The new Z value is computed as a weighted sum of the distances from the desired location to the known locations. The weighting function varies from a value of 1.0 if the desired output point is located exactly at an input coordinate to a value approaching 0.0 as the distance from the desired output coordinate increases. Thus, the Z output values are most strongly influenced by samples located closest to the value being interpolated.

The classical technique, known as Shepard’s method, uses a single distance term with a typical value of ^{-3} + r^{-4} + r^{-5}

{r^-1, r^-2, r^-3, r^-4, ...}.

The default of {0, 0, 1, 1, 1} specifies a linear combination of ^{-3} + r^{-4} + r^{-5}