MBA interpolates irregularly and regularly spaced data using multilevel B-spline approximation. The package provides functions for estimating smooth surfaces on a regular grid and for predicting surface values at arbitrary point locations.
Installation
Install the CRAN release with:
install.packages("MBA")Install the development version from GitHub with:
remotes::install_github("finleya/MBA")Basic Use
library(MBA)
data(LIDAR)
set.seed(1)
train <- sample(seq_len(nrow(LIDAR)), 500)
xyz <- LIDAR[train, ]
surf <- mba.surf(xyz, no.X = 100, no.Y = 100, extend = TRUE)
image(surf$xyz.est, xaxs = "r", yaxs = "r")
pts <- mba.points(
xyz = xyz,
xy.est = LIDAR[-train, c("x", "y")],
h = 8,
verbose = FALSE
)
head(pts$xyz.est)Functionality
The package provides:
- Surface interpolation from bivariate scattered data with
mba.surf(). - Point prediction from fitted multilevel B-spline approximations with
mba.points(). - Optional convex-hull masking for grid surfaces.
- Optional
spoutput for gridded surfaces. - The
LIDARexample dataset for interpolation examples.
Citation
The MBA implementation calls portions of the SINTEF Multilevel B-spline Library written by Oyvind Hjelle and implements methods developed in:
Lee, S., Wolberg, G., and Shin, S. Y. (1997). Scattered data interpolation with multilevel B-splines. IEEE Transactions on Visualization and Computer Graphics, 3(3), 229-244. doi:10.1109/2945.620490.
