interpp                package:akima                R Documentation

_P_o_i_n_t_w_i_s_e _B_i_v_a_r_i_a_t_e _I_n_t_e_r_p_o_l_a_t_i_o_n _f_o_r _I_r_r_e_g_u_l_a_r _D_a_t_a

_D_e_s_c_r_i_p_t_i_o_n:

     If `ncp' is zero, linear interpolation is used in the triangles
     bounded by data points.   Cubic interpolation is done if partial
     derivatives are used. If `extrap' is `FALSE', z-values for points
     outside the convex hull are returned as `NA'.   No extrapolation
     can be performed if `ncp' is zero.

     The `interpp' 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 `interpp' to work.

_U_s_a_g_e:

     interpp(x, y, z, xo, yo, ncp=0, extrap=F, duplicate = "error", dupfun = NULL)

_A_r_g_u_m_e_n_t_s:

       x: vector of x-coordinates of data points. Missing values are
          not accepted. 

       y: vector of y-coordinates of data points. Missing values are
          not accepted. 

       z: vector of z-coordinates of data points. Missing values are
          not accepted.

          `x', `y', and `z' must be the same length  and may contain no
          fewer than four points. The points of `x' and `y' cannot be
          collinear, i.e, they cannot fall on the same line (two
          vectors `x' and `y' such that `y = ax + b' for some `a', `b'
          will not be accepted).  

      xo: vector of x-coordinates of points at which to evaluate the
          interpolating function.

      yo: vector of y-coordinates of points at which to evaluate the
          interpolating function.

     ncp: number of additional points to be used in computing partial
          derivatives at each data point.   `ncp' must be either `0'
          (partial derivatives are not used, = linear interpolation),
          or at least 2 but smaller than the number of data points (and
          smaller than 25). 

  extrap: logical flag: should extrapolation be used outside of the
          convex hull determined by the data points?

duplicate: indicates 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 of
          duplicate z values. 

  dupfun: this function is applied to duplicate points if
          `duplicate="user"'  

_V_a_l_u_e:

     list with 3 components:

       x: vector of x-coordinates of output points, the same as the
          input argument `xo'. 

       y: vector of y-coordinates of output points, the same as the
          input argument `yo'. 

       z: fitted z-values.  The value `z[i]' is computed at the x,y
          point `x[i], y[i]'. 

_N_O_T_E:

     Use `interp' if interpolation on a regular grid is wanted.

     The two versions  `interpp.old'  and `interpp.new' refer to Akimas
     Fortran code from 1978 and 1996 resp. At the moment `interpp.new'
     does not work porperly (it results in a segmentation fault), so it
     is not used from the call wrapper  `interp'.

_R_e_f_e_r_e_n_c_e_s:

     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.

_S_e_e _A_l_s_o:

     `contour', `image', `approx', `spline', `outer',
     `expand.grid',`interp'.

_E_x_a_m_p_l_e_s:

     data(akima)
     # linear interpolation at points (1,2), (5,6) and (10,12)
     akima.lip<-interpp(akima$x, akima$y, akima$z,c(1,5,10),c(2,6,12))

