| akimaInterp {fBasics} | R Documentation |
Bivariate Spline Interpolation
Description
Interpolates bivariate data sets using Akima spline interpolation.
Usage
akimaInterp(x, y = NULL, z = NULL, gridPoints = 21,
xo = seq(min(x), max(x), length = gridPoints),
yo = seq(min(y), max(y), length = gridPoints), extrap = FALSE)
akimaInterpp(x, y = NULL, z = NULL, xo, yo, extrap = FALSE)
Arguments
x, y, z |
for |
gridPoints |
an integer value specifying the number of grid points in |
xo, yo |
for |
extrap |
a logical, if |
Details
Two options are available: gridded and pointwise interpolation.
akimaInterp is a wrapper to interp provided by the
contributed R package akima. The Fortran code of the Akima
spline interpolation routine was written by H. Akima.
Linear surface fitting and krige surface fitting are provided by the
functions linearInterp and krigeInterp.
Value
- akimaInterp
-
returns a list with at least three entries,
x,yandz. Note, that the returned values, can be directly used by theperspandcontour3D plotting methods. - akimaInterpp
-
returns a data.frame with columns
"x","y", and"z".
Note
Package akima is no longer needed. Equivalent functions from
package interp are now called instead.
References
Akima H., 1978, A Method of Bivariate Interpolation and Smooth Surface Fitting for Irregularly Distributed Data Points, ACM Transactions on Mathematical Software 4, 149-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.
See Also
Examples
## Does not run for r-solaris-x86
## akimaInterp -- Akima Interpolation:
if (requireNamespace("interp")) {
set.seed(1953)
x <- runif(999) - 0.5
y <- runif(999) - 0.5
z <- cos(2*pi*(x^2+y^2))
ans <- akimaInterp(x, y, z, gridPoints = 41, extrap = FALSE)
persp(ans, theta = -40, phi = 30, col = "steelblue",
xlab = "x", ylab = "y", zlab = "z")
contour(ans)
}
## Use spatial as alternative on r-solaris-x86
## spatialInterp - Generate Kriged Grid Data:
if (requireNamespace("spatial")) {
RNGkind(kind = "Marsaglia-Multicarry", normal.kind = "Inversion")
set.seed(4711, kind = "Marsaglia-Multicarry")
x <- runif(999)-0.5
y <- runif(999)-0.5
z <- cos(2*pi*(x^2+y^2))
ans <- krigeInterp(x, y, z, extrap = FALSE)
persp(ans)
title(main = "Kriging")
contour(ans)
title(main = "Kriging")
}