Skip to content

NURBS

Non-Uniform Rational B-Splines (NURBS) are part of the Estimate Gridded Data option in the Non-Parametric menu. NURBS offer a form of smoothing. Unlike the least-squares B-splines which can exactly interpolate data at maximum knot counts, a NURBS will always present some measure of smoothing.

Author

Ron Brown, AISN Software

References

All OpenGL References (OpenGL uses NURBS for rendering its surfaces)
W.T.Hewitt,"The NURBS Procedure Library", AGOCG, May 1992.

Description

This option offers a two-dimensional non-uniform rational B-spline. The orders can be set separately for the X and Y directions. The default is a bicubic (order 3 in both X and Y). Orders two through five are available. The NURBS is computed only for the nodes in the data. For performance reasons, the interpolation is done using a conventional B-spline. For the bicubic case, the Akima extrapolant is added.

Smoothing and Interpolation

A NURBS is a distance weighted spline that smoothes surfaces. The number of nodes used to evaluate the spline increases with order and as such a higher order spline will produce a greater measure of smoothing. Note that this is somewhat in contrast to a conventional spline which tends to become more oscillatory between nodes as order increases. The least smoothing will occur with an order 2/2 NURBS. The greatest smoothing will occur with the order 9/9 NURBS.

A NURBS does not compute a z value for a specific x and y. Rather is a unique [x,y,z] triplet computed for an input [x,y]. Only in special cases will the x and y values coincide. As such, a true surface estimation for a NURBS often requires a two dimensional root finding procedure. For performance reasons, TableCurve 3D computes the NURBS only at the data nodes. These smoothed values are then processed by a standard B-spline comprised of the same x and y order as that of the NURBS. This enables fast surface and partial derivative estimations, function extrema, and integrations.

Since the interpolation is accomplished via a standard B-spline, the basic rules apply:
A biquadratic order 2/2 spline offers a smooth surface and continuous but not smooth first partial derivatives.
A bicubic order 3/3 spline offers a smooth surface, smooth first partial derivatives, and continuous second derivatives.
A biquartic order 4/4 spline offers a smooth surface, smooth first and second partial derivatives, and continuous third derivatives.
A biquintic order 5/5 spline offers a smooth surface, smooth first, second, and third partial derivatives, and continuous fourth derivatives.

Since the only smoothing control is the order of the NURBS, this algorithm is limited as a data smoothing procedure. The Evaluation procedure's Generate Table option must be used to save a NURBS surface to file. To save the exact nodes (the smoothed data), simply import the original data file as the source of the X,Y values for the table generation.

Extrapolation

The algorithm offers no extrapolation. Points outside the rectangular bounds of the data are mapped to the bounds and evaluated there.

Estimated Partial Derivatives

The algorithm computes exact partial derivatives using the B-spline interpolant. These are used for graphing the partial derivative surfaces and for partial derivatives computed in the Evaluation procedure.

Estimated Volumes

The B-spline algorithm computes exact integrals within the bounds of the data. For the bicubic case, an analytic integration is also used to compute exact integrals for any portion of the integration outside the data region. As such the integrations will consist of full precision. For splines other than bicubic where one or more of the integration limits are outside the data bounds, the spline is used to interpolate a uniform grid of 10,000 points. A B-spline is fitted to this generated data and this second B-spline is then integrated. The precision error reported in the Evaluation procedure will be the fractional difference with a similar 2,500 node integration. Note that such integrations will involve values that have been forced to the bounds. A repeat evaluation with the same limits will use a numeric double integration procedure. A very fast double Gaussian quadrature procedure is first attempted to 1E-5 precision. If this is unsuccessful, a double adaptive quadrature procedure is then used. This second evaluation is offered as a verification of accuracy.

Considerations

This algorithm produces smooth interpolated surfaces and can aid in producing smooth derivative surfaces. When an automatic form of smoothing is needed, a NURBS is very attractive. The smoothing that occurs with a bicubic NURBS, for example, is wholly intrinsic to the algorithm.

Algorithm Adjustments

This algorithm has one user adjustment, the X and Y order of the NURBS. Orders 2 through 9 are available.