SciPy

scipy.interpolate.insert

scipy.interpolate.insert(x, tck, m=1, per=0)[source]

Insert knots into a B-spline.

Given the knots and coefficients of a B-spline representation, create a new B-spline with a knot inserted m times at point x. This is a wrapper around the FORTRAN routine insert of FITPACK.

Parameters:

x (u) : array_like

A 1-D point at which to insert a new knot(s). If tck was returned from splprep, then the parameter values, u should be given.

tck : tuple

A tuple (t,c,k) returned by splrep or splprep containing the vector of knots, the B-spline coefficients, and the degree of the spline.

m : int, optional

The number of times to insert the given knot (its multiplicity). Default is 1.

per : int, optional

If non-zero, the input spline is considered periodic.

Returns:

tck : tuple

A tuple (t,c,k) containing the vector of knots, the B-spline coefficients, and the degree of the new spline. t(k+1) <= x <= t(n-k), where k is the degree of the spline. In case of a periodic spline (per != 0) there must be either at least k interior knots t(j) satisfying t(k+1)<t(j)<=x or at least k interior knots t(j) satisfying x<=t(j)<t(n-k).

Notes

Based on algorithms from [R68] and [R69].

References

[R68](1, 2) W. Boehm, “Inserting new knots into b-spline curves.”, Computer Aided Design, 12, p.199-201, 1980.
[R69](1, 2) P. Dierckx, “Curve and surface fitting with splines, Monographs on Numerical Analysis”, Oxford University Press, 1993.