Spline (hwx.common.math)¶
A two element list of (x, y) values.
Spline has methods to convert to/from units, add/insert/delete rows, interpolate, get the derivative and read/write CSV files.
The length of x should be the same as y and at least 4. Also, x should be increasing i.e. x[i] < x[i+1].
Properties¶
Public Methods¶
addInterpolated (self, row)
appendInterpolated (self)
deleteRows (self, *deleteRows)
derivative (self, order=1, npts=None, type=’akima’, scaled=True)
fromBaseUnits (self)
getFormattedStrings (self, format=5)
getXFromY (self, y)
insertInterpolated (self, row)
interpolate (self, npts=None, type=’akima’, order=0, x=None)
isValid (self)
prependInterpolated (self)
readCsv (self, fname, validationMethod=None)
reflect (self)
removeNegativeX (self)
scalex (self, factor)
scaley (self, factor)
setComponent (self, row, col, value)
setValues (self, x, y=None)
shiftx (self, offset)
shifty (self, offset)
toBaseUnits (self)
writeCsv (self, fname=None)
Property Details¶
- property x¶
The x values.
- property y¶
The y values.
Method Details¶
- addInterpolated(self, row)¶
Adds a linear interpolated value after the specified row.
- param row
The row where to add the value after.
- type row
int
- returns
A reference to the instance Spline object on which it was called.
- rtype
Spline
- appendInterpolated(self)¶
Appends a linear interpolated value.
- returns
A reference to the instance Spline object on which it was called.
- rtype
Spline
- copy(self, **kwds)¶
Return a copy of self.
It is updated with kwds if specified to support derived classes.
- deleteRows(self, *deleteRows)¶
Removes the specified rows.
- returns
A reference to the instance Spline object on which it was called.
- rtype
Spline
- derivative(self, order=1, npts=None, type='akima', scaled=True)¶
Computes the derivative.
Scale the derivative so it is not too big but can still be viewed.
- param order
Order of the derivative.
- type order
int
- param npts
Number of points to interpolate.
- type npts
int
- param type
Type of Interpolation.
- type type
str
- param scaled
The factor to scale y values.
- type scaled
bool | float
- returns
A reference to the instance Spline object on which it was called.
- rtype
Spline
- fromBaseUnits(self)¶
Makes the Spline values work like other Double values.
- getFormattedStrings(self, format=5)¶
Returns the values suitable for display in the gui fields or table cells.
- param format
The format of the values as strings.
- type format
int | str
- returns
The x, y values.
- rtype
list[list[float], list[float]]
- getXFromY(self, y)¶
Returns a computed x value from the specified y value.
This uses linear interpolation since we can not assume the y values are monotonically increasing.
- param y
The y value.
- type y
float
- returns
The x value.
- rtype
float
- insertInterpolated(self, row)¶
Adds a linear interpolated value before the specified row.
- param row
The row where to add the value before.
- type row
int
- returns
A reference to the instance Spline object on which it was called.
- rtype
Spline
- interpolate(self, npts=None, type='akima', order=0, x=None)¶
Recalculates x and y by interpolation.
This is used to get equally spaced values of x, kind can be “akima” or any scipy.interpolate.inter1d.
If x is specified, returns the computed y value.
- param npts
Number of samples to generate, if x is None.
- type npts
int
- param type
The type of interpolation. Possible choices are “akima”, “linear”, “cubic”, “zero”, “natural”. If none of these is given then “splev” is used.
- type type
str
- param order
The order of interpolation.
- type order
int
- param x
The x value used to return the interpolated y.
- type x
float
- returns
A reference to the instance Spline object on which it was called.
- rtype
Spline
- isValid(self)¶
Determines if self can be interpolated and if the derivative can be computed.
- returns
True if it is valid, False otherwise.
- rtype
bool
- prependInterpolated(self)¶
Adds a linear interpolated value in the beginning.
- returns
A reference to the instance Spline object on which it was called.
- rtype
Spline
- readCsv(self, fname, validationMethod=None)¶
Reads a csv file to populate the x/y values.
- param fname
The path to the csv file.
- type fname
str
- param validationMethod
A function used to validate the csv reading.
- type validationMethod
func
- returns
A reference to the instance Spline object on which it was called.
- rtype
Spline
- reflect(self)¶
Reflects the data across X and Y.
- removeNegativeX(self)¶
Removes x, y pairs with negative x values.
- scalex(self, factor)¶
Mulitplies the x values by a scale factor.
- param factor
The factor to multiply the values with.
- type factor
float
- returns
A reference to the instance Spline object on which it was called.
- rtype
Spline
- scaley(self, factor)¶
Mulitplies the y values by a scale factor.
- param factor
The factor to multiply the values with.
- type factor
float
- returns
A reference to the instance Spline object on which it was called.
- rtype
Spline
- setComponent(self, row, col, value)¶
Sets a single value.
- param row
The row value to set.
- type row
int
- param col
The column value to set.
- type col
int
- param value
The value to set.
- type value
float
- raises SplineValueError
If value is not numeric.
- returns
A reference to the instance Spline object on which it was called.
- rtype
Spline
- setValues(self, x, y=None)¶
Sets the list of x and y values.
- param x
The list of x values.
- type x
list
- param y
The list of y values.
- type y
list
- returns
A reference to the instance Spline object on which it was called.
- rtype
Spline
- shiftx(self, offset)¶
Shifts the x values by an offset.
- param offset
The offset to shift the values with.
- type offset
float
- returns
A reference to the instance Spline object on which it was called.
- rtype
Spline
- shifty(self, offset)¶
Shifts the y values by an offset.
- param offset
The offset to shift the values with.
- type offset
float
- returns
A reference to the instance Spline object on which it was called.
- rtype
Spline
- toBaseUnits(self)¶
Makes the Spline values work like other Double values.
- writeCsv(self, fname=None)¶
Writes x/y values to a csv file.
- param fname
The path to the csv file.
- type fname
str