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})*Z* locations.

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 *p*
= 2*r*^{-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
*r*^{-3} +
*r*^{-4}
+ *r*^{-5}