natgrids, natgridd

Routines that interpolate from 2D random data to a rectangular output grid. These routines are part of the Natgrid package which implements a natural neighbor interpolation method.


Synopsis

    function natgrids(
        x[*]  : float,
        y[*]  : float,
        z[*]  : float,
        xo[*] : float,
        yo[*] : float
    )

    function natgridd(
        x[*]  : double,
        y[*]  : double,
        z[*]  : double,
        xo[*] : double,
        yo[*] : double
    )


Arguments

x
1D array of any length (npts) containing the X coordinates of the input data points
y
1D array of length npts containing the Y coordinates of the input data points
z
1D array of length npts containing the functional values of the input data points (z(i) is the value of the input function at coordinate (x(i), y(i)) for i=1,npts).
xo
1D array of any length (NumXOut) containing the X coordinates of the output data grid. The values in xo must be increasing, but need not be equally spaced.
yo
1D array of any length (NumYOut) containing the Y coordinates of the output data grid. The values in yo must be increasing, but need not be equally spaced.

Description

Both the natgrids and natgridd functions use a natural neighbor interpolation method for taking a set of randomly-spaced two-dimensional coordinates with function values at those coordinates and return a set of interpolated function values at coordinates in a user-specified rectangular grid. The results are returned in a 2D float array dimensioned NumXOut x NumYOut. natgrids is the single precision version and natgridd is the double precision version.

If an error code is returned, you can look up the meaning of the code in the Natgrid documentation at the URL:

http://ngwww.ucar.edu/ngdoc/ng/ngmath/natgrid/errors.html#ErrorTable

Example

begin
  NumXOut = 21
  NumYOut = 21
  ISLIM = 6
  x = new((/ISLIM/),double)
  y = new((/ISLIM/),double)
  z = new((/ISLIM/),double)
  xi = new((/NumXOut/),double)
  yi = new((/NumYOut/),double)

  x = (/0.00, 1.00, 0.00, 1.00, 0.40, 0.75/)
  y = (/0.00, 0.00, 1.00, 1.00, 0.20, 0.65/)
  z = (/0.00, 0.00, 0.00, 0.00, 1.25, 0.80/)

  xc = 1./(NumXOut-1.) 
  xi = ispan(0,NumXOut-1,1) * xc

  yc = 1./(NumYOut-1.) 
  yi = ispan(0,NumYOut-1,1) * yc

  zi = natgridd(x, y, z, xi, yi)
end

Reference Manual Control Panel

NG4.1 Home, Index, Examples, Glossary, Feedback, Ref Contents, Ref WhereAmI?


$Revision: 1.8 $ $Date: 1999/03/12 20:57:38 $