These functions implement bivariate interpolation onto a grid for irregularly spaced input data. Bilinear or bicubic spline interpolation is applied using different versions of algorithms from Akima.
interp(x, y=NULL, z, xo=seq(min(x), max(x), length = nx),
       yo=seq(min(y), max(y), length = ny),
       linear = TRUE, extrap=FALSE, duplicate = "error", dupfun = NULL,
       nx = 40, ny = 40,
       jitter = 10^-12, jitter.iter = 6, jitter.random = FALSE,
       remove = !linear)list with 3 components:
vectors of x- and y- coordinates of output grid, the same as the input
    argument xo, or yo, if present.  Otherwise, their
    default, a vector 40 points evenly spaced over the range of the
    input x.
matrix of fitted z-values.  The value z[i,j] is computed
    at the x,y point xo[i], yo[j]. z has
    dimensions length(xo) times length(yo).
If input is a SpatialPointsDataFrame a
SpatialPixelssDataFrame is returned.
vector of x-coordinates of data points or a
    SpatialPointsDataFrame object.
    Missing values are not accepted.
vector of y-coordinates of data points. Missing values are not accepted.
If left as NULL indicates that x should be a
  SpatialPointsDataFrame and z names the variable of
  interest in this dataframe.
vector of z-coordinates of data points or a character variable
    naming the variable of interest in the
    SpatialPointsDataFrame x.
Missing values are not accepted.
x, y, and z must be the same length
    (execpt if x is a SpatialPointsDataFrame) and may
    contain no fewer than four points. The points of x and
    y should not be collinear, i.e, they should not fall on the same line
    (two vectors x and y such that y = ax + b for
    some a, b will not produce menaningful results). Some
    heuristics is built in to avoid this case by adding small jitter to
    x and y when the number of NA values in the
    result exceeds 10%.
interp is
    meant for cases in which you have x, y values
    scattered over a plane and a z value for each.  If, instead,
    you are trying to evaluate a mathematical function, or get a
    graphical interpretation of relationships that can be described by a
    polynomial, try outer().
vector of x-coordinates of output grid.  The default is 40 points
    evenly spaced over the range of x.  If extrapolation is not being
    used (extrap=FALSE, the default), xo should have a
    range that is close to or inside of the range of x for the
    results to be meaningful.
vector of y-coordinates of output grid; analogous to
    xo, see above.
logical -- indicating wether linear or spline interpolation should be used.
logical flag: should extrapolation be used outside of the convex hull determined by the data points?
character string indicating how to handle duplicate data points. Possible values are
"error"produces an error message,
"strip"remove duplicate z values,
"mean","median","user"calculate
	mean , median or user defined function (dupfun) of duplicate
	z values.
a function, applied to duplicate points if
    duplicate= "user".
dimension of output grid in x direction
dimension of output grid in y direction
Jitter of amount of diff(range(XX))*jitter (XX=x
    or y) will be added to coordinates if collinear points are
    detected. Afterwards interpolation will be tried once again.
Note that the jitter is not generated randomly unless
    jitter.random is set to TRUE. This ensures
    reproducable result. tri.mesh of package
    tripack uses the same jitter mechanism. That means you can
    plot the triangulation on top of the interpolation and see the
    same triangulation as used for interpolation, see examples below.
number of iterations to retry with jitter, amount
    will be multiplied in each iteration by iter^1.5
logical, see jitter, defaults to
    FALSE
logical, indicates whether Akimas removal of thin triangles along
    the border of the convex hull should be performed, experimental setting!
    defaults to !linear, so it will be left out for linear interpolation
    by default. For some point configurations it is the only
    available option to skip this removal step.
If linear is TRUE (default), linear
  interpolation is used in the triangles bounded by data points.
  Cubic interpolation is done if linear is set to FALSE.
  If extrap is FALSE, z-values for points outside the
  convex hull are returned as NA.
  No extrapolation can be performed for the linear case.
The interp function handles duplicate (x,y) points
  in different ways. As default it will stop with an error message. But
  it can give duplicate points an unique z value according to the
  parameter duplicate (mean,median or any other
  user defined function).
The triangulation scheme used by interp works well if x
  and y have similar scales but will appear stretched if they have
  very different scales.  The spreads of x and y must be
  within four orders of magnitude of each other for interp to work.
Akima, H. (1978). A Method of Bivariate Interpolation and Smooth Surface Fitting for Irregularly Distributed Data Points. ACM Transactions on Mathematical Software 4, 148-164.
Akima, H. (1996). Algorithm 761: scattered-data surface fitting that has the accuracy of a cubic polynomial. ACM Transactions on Mathematical Software 22, 362--371.
R. J. Renka (1996). Algorithm 751: TRIPACK: a constrained two-dimensional Delaunay triangulation package. ACM Transactions on Mathematical Software. 22, 1-8.
R. J. Renka and Ron Brown (1998). Remark on algorithm 761. ACM Transactions on Mathematical Software. 24, 383-385.