Documentation in scipy.interpolate (found at https://docs.scipy.org/doc/scipy/reference/tutorial/interpolate.html) states:
"The parameter variable is given with the keyword argument, u, which defaults to an equally-spaced monotonic sequence between 0 and 1."
From experimenting with the function in 2D, it appears that the parameter is the length along the curve. Here's a snippet my test script:
import numpy as np import matplotlib.pyplot as plt from scipy.interpolate import splprep, splev n = 20 iota = np.arange(n) gamma = 5 theta = np.pi/2 * (1.0 * iota / (n-1)) ** gamma r = np.cos(theta) z = np.sin(theta) spl, u = splprep([r,z]) spline = splev(u, spl) # Sampled point at half-length? test = splev(0.5, spl) plt.plot(r, z, '*') plt.plot(spline, spline, '*', color = 'red') plt.plot(test, test, '*', color = 'cyan') # Exact mid-point. plt.plot(np.sqrt(2)/2, np.sqrt(2)/2, '*', color = 'purple') plt.axis('equal') plt.show()
The above statement does not (to me) seem to clearly convey this behavior. Would anyone have input on this?