WMS:Computation of Interpolation Weights

From XMS Wiki
Jump to: navigation, search

When computing the interpolation weights, three options are available for determining which points are included in the subset of points used to compute the weights and perform the interpolation: subset, all points, and enclosing triangle.

Subset of Points

If the Use subset of points option is chosen, the Subset Definition dialog can be used to define a local subset of points.

All Points

If the Use all points option is chosen, a weight is computed for each point and all points are used in the interpolation.

Enclosing Triangle

The Use vertices of enclosing triangle method makes the interpolation process a local scheme by taking advantage of TIN topology (Franke & Nielson, 1980). With this technique, the subset of points used for interpolation consists of the three vertices of the triangle containing the interpolation point. The weight function or blending function assigned to each scatter point is a cubic S-shaped function as shown in part a of the figure below. The fact that the slope of the weight function tends to unity at its limits ensures that the slope of the interpolating surface is continuous across triangle boundaries.

(a) S-Shaped Weight Function and (b) Delauney Point Group for Point A.

The influence of the weight function extends over the limits of the Delauney point group of the scatter point. The Delauney point group is the "natural neighbors" of the scatter point, and the perimeter of the group is made up of the outer edges of the triangles that are connected to the scatter point as shown in part b. The weight function varies from a weight of unity at the scatter point to zero at the perimeter of the group. For every interpolation point in the interior of a triangle there are three nonzero weight functions (the weight functions of the three vertices of the triangle). For a triangle T with vertices i, j, and k, the weights for each vertex are determined as follows:

w_i (x,y) = b_i^2 (3 - 2b_i) + 3 \frac {b_i^2 b_j b_k}{b_i b_j + b_i b_k + b_j b_k}
\left \{ b_j \left [ \frac {\| e_i \|^2 + \|e_k\|^2 - \| e_j \|^2}{\| e_k \|^2} \right ] + b_k \left [ \frac {\| e_i \|^2 + \| e_j \|^2 - \| e_k \|^2}{\| e_j \|^2} \right ] \right \}

where ||ei|| is the length of the edge opposite vertex i, and bi, bj, bk are the area coordinates of the point (x,y) with respect to triangle T. Area coordinates are coordinates that describe the position of a point within the interior of a triangle relative to the vertices of the triangle. The coordinates are based solely on the geometry of the triangle. Area coordinates are sometimes called "barycentric coordinates." The relative magnitude of the coordinates corresponds to area ratios as shown below:

Barycentric coordinates for a point in a triangle.

The xy coordinates of the interior point can be written in terms of the xy coordinates of the vertices using the area coordinates as follows:

x = b_i x_i + b_j x_j + b_k x_k^{}
y = b_i y_i + b_j y_j + b_k y_k^{}
1.0 = b_i + b_j + b_k^{}

Solving the above equations for b_i, b_j, and b_k yields:

b_i \frac {1}{2A} [(x_j y_k - x_k y_j) + (y_j - y_k)x + (x_k - x_j)y]
 b_j \frac {1}{2A} [ (x_k y_i - x_i y_k) + (y_k - y_i) x + (x_i - x_k) y]
 b_k \frac {1}{2A} [ (x_i y_j - x_j y_i) + (y_i - y_j) x + (x_j - x_i) y]
A = \frac {1}{2} (x_i y_j + x_j y_k + x_k y_i - y_i x_j - y_j x_k - y_k x_i)

Using the weight functions defined above, the interpolating surface at points inside a triangle is computed as:

 F(x,y) = w_i (x,y) Q_i (x,y) + w_j (x,y) Q_j (x,y) + w_k (x,y) Q_k^{} (x,y)

where wi, wj, and wk are the weight functions and Qi, Qj, and Qk are the nodal functions for the three vertices of the triangle.


Related Topics