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¶
 
-