`interpolation.`
 `@ -9,16 +9,26 @@ import numpy` `import scipy.interpolate` ``` ``` `class spline_2d:` ` """Simple interpolation for two-dimensional curve.` ` Created to handle the quirks of current SciPy interpolation` ` routines."""` ` """Simple interpolation or smooth approximation` ` of a two-dimensional curve.` ``` ``` ` Input parameters:` ``` ``` ` - s: smoothing of the spline curve. The default is 0,` ` which means plain interpolation, no no extra smoothing.` ` If s > 0, then some smoothing is performed, and the` ` curve represents an approximation of the input x,y` ` curve.` ` - w: the weight factor for each data point.` ` """` ` # Important notes on spline CAVEATS:` ` # - for some reason we HAVE to make a copy of the 'x' array` ` # (to make it contiguous, probably?)` ` # - also, the x values better be sorted in ascending order, or else` ` # - the x values better be sorted in ascending order, or else` ` # the routine would return nonsense (i.e. NaN's).` ` def __init__(self, x, y):` ` # - no two same values of x can be specified.` ` def __init__(self, x, y, w=None, s=0):` ` self.init(x,y)` ` self.s = s` ` self.w = w` ``` ``` ` def init(self, x, y):` ` # First, the x must be sorted, so we make a private copy of` `@ -29,7 +39,7 @@ class spline_2d:` ` self.x = self.data['x']` ` self.y = self.data['y']` ` # Quirk 2: the x data for spline function must be contiguous` ` # See below in init_spline_params()` ` # (No, now this is handled by splrep() properly.)` ` #self.x_copy = self.x.copy()` ``` ``` ` try:` `@ -43,7 +53,7 @@ class spline_2d:` ` calling the first spline function if you want different, non-default` ` parameters."""` ` self.spline_params \` ` = scipy.interpolate.splrep(self.x, self.y, s=0)` ` = scipy.interpolate.splrep(self.x, self.y, w=self.w, s=self.s)` ``` ``` ` def spline(self, xnew):` ` try:`