Find a bivariate B-spline representation of a surface.
Description:
Given a set of data points (x[i], y[i], z[i]) representing a surface z=f(x,y), compute a B-spline representation of the surface. Based on the routine SURFIT from FITPACK.
Inputs:
x, y, z – Rank-1 arrays of data points. w – Rank-1 array of weights. By default w=ones(len(x)). xb, xe – End points of approximation interval in x. yb, ye – End points of approximation interval in y.
By default xb, xe, yb, ye = x.min(), x.max(), y.min(), y.max()
- kx, ky – The degrees of the spline (1 <= kx, ky <= 5). Third order
- (kx=ky=3) is recommended.
- task – If task=0, find knots in x and y and coefficients for a given
smoothing factor, s.
- If task=1, find knots and coefficients for another value of the
- smoothing factor, s. bisplrep must have been previously called with task=0 or task=1.
If task=-1, find coefficients for a given set of knots tx, ty.
- s – A non-negative smoothing factor. If weights correspond
- to the inverse of the standard-deviation of the errors in z, then a good s-value should be found in the range (m-sqrt(2*m),m+sqrt(2*m)) where m=len(x)
- eps – A threshold for determining the effective rank of an
- over-determined linear system of equations (0 < eps < 1) — not likely to need changing.
tx, ty – Rank-1 arrays of the knots of the spline for task=-1 full_output – Non-zero to return optional outputs. nxest, nyest – Over-estimates of the total number of knots.
- If None then nxest = max(kx+sqrt(m/2),2*kx+3),
- nyest = max(ky+sqrt(m/2),2*ky+3)
quiet – Non-zero to suppress printing of messages.
Outputs: (tck, {fp, ier, msg})
- tck – A list [tx, ty, c, kx, ky] containing the knots (tx, ty) and
- coefficients (c) of the bivariate B-spline representation of the surface along with the degree of the spline.
fp – The weighted sum of squared residuals of the spline approximation. ier – An integer flag about splrep success. Success is indicated if
ier<=0. If ier in [1,2,3] an error occurred but was not raised. Otherwise an error is raised.msg – A message corresponding to the integer flag, ier.
Remarks:
SEE bisplev to evaluate the value of the B-spline given its tck representation.
splprep, splrep, splint, sproot, splev - evaluation, roots, integral UnivariateSpline, BivariateSpline - an alternative wrapping
of the FITPACK functions
Notes: Based on algorithms from:
- Dierckx P. : An algorithm for surface fitting with spline functions
- Ima J. Numer. Anal. 1 (1981) 267-283.
- Dierckx P. : An algorithm for surface fitting with spline functions
- report tw50, Dept. Computer Science,K.U.Leuven, 1980.
- Dierckx P. : Curve and surface fitting with splines, Monographs on
- Numerical Analysis, Oxford University Press, 1993.