[SciPy-User] Splines in scipy.signal vs scipy.interpolation

denis denis-bz-gg at t-online.de
Wed Feb 10 11:27:43 EST 2010


Hi Tony,
  yet more notation:

you start with "data points", and add some "control points" or "knots"
or "handles"
to bend or shape the curve or surface towards the knots.
Visually, you add and move "control points" with a mouse to shape the
curve.
(The starting curve may go through the data points, or may not,
e.g. Catmull-Rom / Bspline.)OB

Here's a confusion, experts correct me: "knots" can mean
1) "control points" added as above,
2) or t values where cubic pieces join, initial (for me 0 1 2) or
added.

For any cloud of data points, you can generate any number of spline
pieces,
with various smoothing criteria.
That is, Ndata and Nsplinepiece can be related any which way;
the simplest case, in dotspline, has e.g. Ndata=11, Npiece=10,
but you can have Ndata > Nsplinepiece if Ndata is big
and Ndata < Nsplinepiece too.

There are zillions of papers on this, each with its own thicket of
notation.
Scipy.interpolate is based on fitpack by Prof. Dierckx, who has a
book;
books.google.com "spline" in title => 302 books since 1990 ?!
Sederberg, http://tom.cs.byu.edu/~557/text/cagd.pdf is 250 pages, v
readable.

An interactive applet combining C-R, Bspline, and knots would be nice:
anyone ?
For fun, look at the applets in http://en.wikipedia.org/wiki/Bezier_curve
also http://en.wikipedia.org/wiki/Bezier_spline for control points.


I'll add derivatives to the code on http://advice.mechanicalkern.com
(if I can edit it, getting login - claimid - timeout.)
Example:
    deriv = dotspline1( x, nsample, spline="Catmull-Rom-derivative" )

cheers
  -- denis



More information about the SciPy-User mailing list