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

x

y

Public Methods

addInterpolated (self, row)

appendInterpolated (self)

copy (self, **kwds)

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