PeakUtils — A peak finding algorithm.¶
A version of the PyPi PeakUtils, converted from Python3.4 to Python2.7.
-
class
admit.util.peakfinder.PeakUtils.
PeakUtils
(spec, x=None, **kwarg)[source]¶ PeakUtils peak finding algorithm
Parameters: spec : List or numpy array
The spectrum to be analyzed.
x : List or numpy array, optional
The x co-ordinates for the spectrum. Default = None.
kwarg : Dict
Any additional arguments, see the Attributes list for a complete listing.
Attributes
spec (numpy array) The spectrum to be analyzed. x (numpy array) The x co-ordinates of the spectrum. thres (float) Threshold for detecting a peak/valley. The absolute value of the intensity must be above this value. Default: 0.0. min_dist (int) The minimum distance between peaks in channels. Deafult: 5. profile (str) The spectral line profile to use when refining the fits. Choices are “gaussian” and “lorentzian”. Default: “gaussian”. width (int) The number of channels on either side of a peak to use when refining the fit. Default: 10. basedeg (int) Degree of the polynomial that will estimate the data baseline. Default: 3. baseiter (int) The maximum number of iterations to perform when trying to fit the baseline. Default: 100. basetol (float) Tolerance to use when comparing the difference between the current fit coefficient and the ones from the last iteration. Default: 1e-3. dobase (boolean) Whether or not to do baseline/continuum subtraction. Default: False. Methods
baseline
([deg, max_it, tol])Computes the baseline of a given data. centroid
([chans])Computes the centroid for the specified data. find
()Method to find any peaks in the spectrum. gaussian
(x, ampl, center, dev)Computes the Gaussian function. gaussian_fit
([chans])Performs a Gaussian fitting of the specified data. indexes
([thres, min_dist])Peak detection routine. interpolate
([ind, width, func])Tries to enhance the resolution of the peak detection by using Gaussian fitting, centroid computation or an arbitrary function on the neighborhood of each previously detected peak index. laurentzian_fit
([chans])Performs a Lorentzian fitting of the specified data. lorentzian
(x, ampl, center, width)Computes the Lorentzian function. scale
(x[, new_range, eps])Changes the scale of an array -
basedeg
= 3¶
-
baseiter
= 100¶
-
baseline
(deg=3, max_it=100, tol=0.001)[source]¶ Computes the baseline of a given data.
Iteratively performs a polynomial fitting in the data to detect its baseline. At every iteration, the fitting weights on the regions with peaks is reduced to identify the baseline only.
Parameters: deg : int
Degree of the polynomial that will estimate the data baseline. A low degree may fail to detect all the baseline present, while a high degree may make the data too oscillatory, especially at the edges.
max_it : int
Maximum number of iterations to perform.
tol : float
Tolerance to use when comparing the difference between the current fit coefficient and the ones from the last iteration. The iteration procedure will stop when the difference between them is lower than tol.
Returns: ndarray
Array with the baseline amplitude for every original point in y
-
basetol
= 0.001¶
-
centroid
(chans=[0, -1])[source]¶ Computes the centroid for the specified data.
Parameters: chans : list
The indexes to start and end at. Default: [0,-1]
Returns: float
Centroid of the data.
-
dobase
= False¶
-
find
()[source]¶ Method to find any peaks in the spectrum. A baseline will be subtracted first if requested.
Parameters: None
Returns: numpy array of floats
containing the locations of the peaks
-
gaussian
(x, ampl, center, dev)[source]¶ Computes the Gaussian function.
Parameters: x : float
Point to evaluate the Gaussian for.
ampl : float
Amplitude.
center : float
Center.
dev : float
Width.
Returns: float
Value of the specified Gaussian at x
-
gaussian_fit
(chans=[0, -1])[source]¶ Performs a Gaussian fitting of the specified data.
Parameters: chans : list
The indexes to start and end at. Default: [0,-1]
Returns: ndarray
Parameters of the Gaussian that fits the specified data
-
indexes
(thres=0.0, min_dist=5)[source]¶ Peak detection routine.
Finds the peaks in y by taking its first order difference. By using thres and min_dist parameters, it is possible to reduce the number of detected peaks.
Parameters: thres : float
Threshold for detecting a peak/valley. The absolute value of the intensity must be above this value. Default: 0.0
min_dist : int
Minimum distance between each detected peak. The peak with the highest amplitude is preferred to satisfy this constraint.
Returns: ndarray
Array containing the indexes of the peaks that were detected
-
interpolate
(ind=None, width=10, func='gaussian_fit')[source]¶ Tries to enhance the resolution of the peak detection by using Gaussian fitting, centroid computation or an arbitrary function on the neighborhood of each previously detected peak index.
Parameters: ind : ndarray
Indexes of the previously detected peaks. If None, indexes() will be called with the default parameters.
width : int
Number of points (before and after) each peak index to pass to func in order to increase the resolution in x.
func : function(x,y)
Function that will be called to detect an unique peak in the x,y data.
Returns: ndarray :
Array with the adjusted peak positions (in x)
-
laurentzian_fit
(chans=[0, -1])[source]¶ Performs a Lorentzian fitting of the specified data.
Parameters: chans : list
The indexes to start and end at. Default: [0,-1]
Returns: ndarray
Parameters of the Lorentzian that fits the specified data
-
lorentzian
(x, ampl, center, width)[source]¶ Computes the Lorentzian function.
Parameters: x : float
Point to evaluate the Gaussian for.
ampl : float
Amplitude.
center : float
Center.
width : float
Width.
Returns: float
Value of the specified Gaussian at x
-
min_dist
= 1¶
-
profile
= 'gaussian'¶
-
scale
(x, new_range=(0.0, 1.0), eps=1e-09)[source]¶ Changes the scale of an array
Parameters: x : ndarray
1D array to change the scale (remains unchanged)
new_range : tuple (float, float)
Desired range of the array
eps: float
Numerical precision, to detect degenerate cases (for example, when every value of x is equal)
Returns: ndarray
Scaled array
tuple (float, float)
Previous data range, allowing a rescale to the old range
-
thres
= 0.0¶
-
width
= 10¶
-