7.4.9. pymodaq_utils.math_utils module
- class pymodaq_utils.math_utils.LSqEllipse[source]
Bases:
object- Attributes:
- center
- height
phiangle of counterclockwise rotation of major-axis of ellipse to x-axis
- width
Methods
fit(data)Lest Squares fitting algorithm
parameters
- fit(data)[source]
Lest Squares fitting algorithm
Theory taken from (*) Solving equation Sa=lCa. with a = |a b c d f g> and a1 = |a b c>
a2 = |d f g>
- Parameters:
(list (data) – ellipse. of the form [[x1, x2, …, xi],[y1, y2, …, yi]]
- Returns:
coef (list) – [a,b,c,d,f,g] corresponding to ax**2+2bxy+cy**2+2dx+2fy+g
- Return type:
list of the coefficients describing an ellipse
- property center
- property height
- property phi
angle of counterclockwise rotation of major-axis of ellipse to x-axis [eqn. 23] from (**)
- property width
- pymodaq_utils.math_utils.find_common_index(x: Iterable, y: Iterable, x0: Number, y0: Number) Tuple[source]
find the index in two vectors corresponding to x0 and y0
- pymodaq_utils.math_utils.find_index(x, threshold: Number | List[Number]) List[tuple][source]
find_index finds the index ix such that x(ix) is the closest from threshold
- pymodaq_utils.math_utils.ft(x, dim=-1)[source]
Process the 1D fast fourier transform and swaps the axis to get coorect results using ftAxis :param x: :type x: (ndarray) the array on which the FFT should be done :param dim: :type dim: the axis over which is done the FFT (default is the last of the array)
See also
ftAxis,ftAxis_time,ift,ft2,ift2
- pymodaq_utils.math_utils.ft2(x, dim=(-2, -1))[source]
Process the 2D fast fourier transform and swaps the axis to get correct results using ftAxis :param x: :type x: (ndarray) the array on which the FFT should be done :param dim: :type dim: the axis over which is done the FFT (default is the last of the array)
See also
ftAxis,ftAxis_time,ift,ft2,ift2
- pymodaq_utils.math_utils.ftAxis(Npts, omega_max)[source]
Given two numbers Npts,omega_max, return two vectors spanning the temporal and spectral range. They are related by Fourier Transform
- Parameters:
- Returns:
omega_grid ((ndarray)) – The spectral axis of the FFT
time_grid ((ndarray))) – The temporal axis of the FFT
See also
ftAxis,ftAxis_time,ift,ft2,ift2
- pymodaq_utils.math_utils.ftAxis_time(Npts, time_max)[source]
Given two numbers Npts,omega_max, return two vectors spanning the temporal and spectral range. They are related by Fourier Transform
- Parameters:
Npts (number) – A number of points defining the length of both grids
time_max (number) – The maximum tmporal window
- Returns:
omega_grid (vector) – The spectral axis of the FFT
time_grid (vector) – The temporal axis of the FFT
See also
ftAxis,ftAxis_time,ift,ft2,ift2
- pymodaq_utils.math_utils.gauss1D(x, x0, dx, n=1)[source]
compute the gaussian function along a vector x, centered in x0 and with a FWHM i intensity of dx. n=1 is for the standart gaussian while n>1 defines a hypergaussian
- Parameters:
- Returns:
out – the value taken by the gaussian along x axis
- Return type:
vector
- pymodaq_utils.math_utils.gauss2D(x, x0, dx, y, y0, dy, n=1, angle=0)[source]
compute the 2D gaussian function along a vector x, centered in x0 and with a FWHM in intensity of dx and smae along y axis. n=1 is for the standard gaussian while n>1 defines a hypergaussian. optionally rotate it by an angle in degree
- Parameters:
x ((ndarray) first axis of the 2D gaussian) –
x0 ((float) the central position of the gaussian) –
dx ((float) :the FWHM of the gaussian) –
y ((ndarray) second axis of the 2D gaussian) –
y0 ((float) the central position of the gaussian) –
dy ((float) :the FWHM of the gaussian) –
n=1 (an integer to define hypergaussian, n=1 by default for regular gaussian) –
angle ((float) a float to rotate main axes, in degree) –
- Returns:
out
- Return type:
ndarray 2 dimensions
- pymodaq_utils.math_utils.greater2n(x)[source]
return the first power of 2 greater than x :param x: :type x: (int or float) a number
- Returns:
int
- Return type:
the power of 2 greater than x
- pymodaq_utils.math_utils.ift(x, dim=0)[source]
Process the inverse 1D fast fourier transform and swaps the axis to get correct results using ftAxis :param x: :type x: (ndarray) the array on which the FFT should be done :param dim: :type dim: the axis over which is done the FFT (default is the last of the array)
See also
ftAxis,ftAxis_time,ift,ft2,ift2
- pymodaq_utils.math_utils.ift2(x, dim=(-2, -1))[source]
Process the inverse 2D fast fourier transform and swaps the axis to get correct results using ftAxis :param x: :type x: (ndarray) the array on which the FFT should be done :param dim: :type dim: the axis (or a tuple of axes) over which is done the FFT (default is the last of the array)
See also
ftAxis,ftAxis_time,ift,ft2,ift2
- pymodaq_utils.math_utils.linspace_step(start, stop, step)[source]
Compute a regular linspace_step distribution from start to stop values.
Parameters
Type
Description
start
scalar
the starting value of distribution
stop
scalar
the stopping value of distribution
step
scalar
the length of a distribution step
- Returns:
The computed distribution axis as an array.
- Return type:
scalar array
- pymodaq_utils.math_utils.make_test_ellipse(center=[1, 1], width=1, height=0.6, phi=0.628)[source]
Generate Elliptical data with noise
- Parameters:
(list (center) –
(float) (height) –
(float) –
(float (phi) – makes with the x-axis
- Returns:
data (list – ellipse. of the form [[x1, x2, …, xi],[y1, y2, …, yi]]
- Return type:
list:float): list of two lists containing the x and y data of the
- pymodaq_utils.math_utils.my_moment(x, y)[source]
Returns the moments of a distribution y over an axe x
- pymodaq_utils.math_utils.odd_even(x: int | ndarray)[source]
odd_even tells if a number (or an array) is odd (return True) or even (return False)
- Parameters:
x (the integer number (or array) to test) –
- Returns:
bool
- Return type:
boolean or array of boolean
- pymodaq_utils.math_utils.rotate2D(origin: tuple = (0, 0), point: tuple = (0, 0), angle: float = 0)[source]
Rotate a point counterclockwise by a given angle around a given origin.
The angle should be given in radians. :param origin: :type origin: (tuple) x,y coordinate from which to rotate :param point: :type point: (tuple) x,y coordinate of point to rotate :param angle: :type angle: (float) a float to rotate main axes, in radian
- Returns:
out
- Return type:
(tuple) x,y coordinate of rotated point