Inverse distance weighting (IDW) is a type of deterministic method for multivariate interpolation with a known scattered set of points. The assigned values to unknown points are calculated with a weighted average of the values available at the known points. This method can also be used to create spatial weights matrices in spatial autocorrelation analyses (e.g. Moran's I).[1]
The name given to this type of method was motivated by the weighted average applied, since it resorts to the inverse of the distance to each known point ("amount of proximity") when assigning weights.
The expected result is a discrete assignment of the unknown function
u
u(x):x\toR, x\inD\subRn,
where
D
The set of
N
[(x1,u1),(x2,u2),...,(xN,uN)].
The function is to be "smooth" (continuous and once differentiable), to be exact (
u(xi)=ui
At the Harvard Laboratory for Computer Graphics and Spatial Analysis, beginning in 1965, a varied collection of scientists converged to rethink, among other things, what are now called geographic information systems.[2]
The motive force behind the Laboratory, Howard Fisher, conceived an improved computer mapping program that he called SYMAP, which, from the start, Fisher wanted to improve on the interpolation. He showed Harvard College freshmen his work on SYMAP, and many of them participated in Laboratory events. One freshman, Donald Shepard, decided to overhaul the interpolation in SYMAP, resulting in his famous article from 1968.[3]
Shepard's algorithm was also influenced by the theoretical approach of William Warntz and others at the Lab who worked with spatial analysis. He conducted a number of experiments with the exponent of distance, deciding on something closer to the gravity model (exponent of -2). Shepard implemented not just basic inverse distance weighting, but also allowed barriers (permeable and absolute) to interpolation.
Other research centers were working on interpolation at this time, particularly University of Kansas and their SURFACE II program. Still, the features of SYMAP were state-of-the-art, even though programmed by an undergraduate.
Given a set of sample points
\{xi,ui|forxi\inRn,ui\in
N | |
R\} | |
i=1 |
u(x):Rn\toR
u(x)=\begin{cases}
N | |
\dfrac{\sum | |
i=1 |
{wi(x)ui}}{
N | |
\sum | |
i=1 |
{wi(x)}},&ifd(x,xi) ≠ 0foralli,\\ ui,&ifd(x,xi)=0forsomei, \end{cases}
where
wi(x)=
1 | ||||||
|
is a simple IDW weighting function, as defined by Shepard,[3] x denotes an interpolated (arbitrary) point, xi is an interpolating (known) point,
d
p
Here weight decreases as distance increases from the interpolated points. Greater values of
p
p\leq2
\rho
r0
R
\sumjwj ≈
R | |
\int | |
r0 |
2\pir\rhodr | |
rp |
=
R | |
2\pi\rho\int | |
r0 |
r1-pdr,
R → infty
p\leq2
p\leqM
Shepard's method is a consequence of minimization of a functional related to a measure of deviations between tuples of interpolating points and i tuples of interpolated points, defined as:
\phi(x,u)=\left(
N | ||
\sum | { | |
i=0 |
| |||||||
|
\partial\phi(x,u) | |
\partialu |
=0.
The method can easily be extended to other dimensional spaces and it is in fact a generalization of Lagrange approximation into a multidimensional spaces. A modified version of the algorithm designed for trivariate interpolation was developed by Robert J. Renka [4] and is available in Netlib as algorithm 661 in the TOMS Library.
Another modification of Shepard's method calculates interpolated value using only nearest neighbors within R-sphere (instead of full sample). Weights are slightly modified in this case:
wk(x)=\left(
max(0,R-d(x,xk)) | |
Rd(x,xk) |
\right)2.
When combined with fast spatial search structure (like kd-tree), it becomes efficient N log N interpolation method suitable for large-scale problems.