Bicubic Interpolation for Data on a Rectangular grid
bicubic.grid.RdThis is a placeholder function for backward compatibility with packaga akima.
In its current state it simply calls the reimplemented Akima algorithm for irregular grids applied to the regular gridded data given.
Later a reimplementation of the original algorithm for regular grids may follow.
Arguments
- x
a vector containing the
xcoordinates of the rectangular data grid.- y
a vector containing the
ycoordinates of the rectangular data grid.- z
a matrix containing the
z[i,j]data values for the grid points (x[i],y[j]).- xlim
vector of length 2 giving lower and upper limit for range
xcoordinates used for output grid.- ylim
vector of length 2 giving lower and upper limit for range of
ycoordinates used for output grid.- nx
output grid dimension in
xdirection.- ny
output grid dimension in
ydirection.- dx
output grid spacing in
xdirection, not used by default, overridesnxif specified.- dy
output grid spacing in
ydirection, not used by default, overridesnyif specified..
Details
This function is a call wrapper for backward compatibility with package akima.
Currently it applies Akimas irregular grid splines to regular grids, later a FOSS reimplementation of his regular grid splines may replace this wrapper.
Value
This function produces a grid of interpolated points, feasible to be
used directly with image and contour:
- x
vector of
xcoordinates of the output grid.- y
vector of
ycoordinates of the output grid.- z
matrix of interpolated data for the output grid.
References
Akima, H. (1996) Rectangular-Grid-Data Surface Fitting that Has the Accuracy of a Bicubic Polynomial, J. ACM 22(3), 357-361
Note
Use interp for the general case of irregular gridded data!
Examples
data(akima474)
# interpolate at a grid [0,8]x[0,10]
akima.bic <- bicubic.grid(akima474$x,akima474$y,akima474$z)
#> Warning: this output is generated according to Akimas irregular grid splines, not the regular grid one! This is a temporary workaround until Akimas ACM algorithm 760 is reimplmented from scratch!
zmin <- min(akima.bic$z, na.rm=TRUE)
zmax <- max(akima.bic$z, na.rm=TRUE)
breaks <- pretty(c(zmin,zmax),10)
colors <- heat.colors(length(breaks)-1)
image(akima.bic, breaks=breaks, col=colors)
contour(akima.bic, levels=breaks, add=TRUE)