Interpolation on Scattered Data - GNU Octave
Description: GNU Octave

Previous: Convex Hull, Up: Geometry

### 29.4 Interpolation on Scattered Data

An important use of the Delaunay tessellation is that it can be used to interpolate from scattered data to an arbitrary set of points. To do this the N-simplex of the known set of points is calculated with `delaunay`, `delaunay3` or `delaunayn`. Then the simplices in to which the desired points are found are identified. Finally the vertices of the simplices are used to interpolate to the desired points. The functions that perform this interpolation are `griddata`, `griddata3` and `griddatan`.

— Function File: zi = griddata (x, y, z, xi, yi, method)
— Function File: [xi, yi, zi] = griddata (x, y, z, xi, yi, method)

> Generate a regular mesh from irregular data using interpolation. The function is defined by z`= f (`x`,` y`)`. Inputs x`,` y`,` z are vectors of the same length or x`,` y are vectors and z is matrix.

> The interpolation points are all `(`xi`,` yi`)`. If xi, yi are vectors then they are made into a 2-D mesh.

> The interpolation method can be `"nearest"`, `"cubic"` or `"linear"`. If method is omitted it defaults to `"linear"`.

> See also: delaunay.

— Function File: vi = griddata3 (x, y, z, v xi, yi, zi, method, options)

> Generate a regular mesh from irregular data using interpolation. The function is defined by y`= f (`x`,`y`,`z`)`. The interpolation points are all xi.

> The interpolation method can be `"nearest"` or `"linear"`. If method is omitted it defaults to `"linear"`.

> See also: griddata, delaunayn.

— Function File: yi = griddatan (x, y, xi, method, options)

> Generate a regular mesh from irregular data using interpolation. The function is defined by y`= f (`x`)`. The interpolation points are all xi.

> The interpolation method can be `"nearest"` or `"linear"`. If method is omitted it defaults to `"linear"`.

> See also: griddata, delaunayn.

An example of the use of the `griddata` function is

         rand("state",1);
         x=2*rand(1000,1)-1;
         y=2*rand(size(x))-1;
         z=sin(2*(x.^2+y.^2));
         [xx,yy]=meshgrid(linspace(-1,1,32));
         griddata(x,y,z,xx,yy);

that interpolates from a random scattering of points, to a uniform grid. The output of the above can be seen in fig:griddata.

Figure 29.6: Interpolation from a scattered data to a regular grid