sddspeakfind finds the locations and values of peaks in a single column of an SDDS file.
It incorporates various features to help reject spurious peaks. The column is considered a
function of the row index for the purpose of finding peaks. Hence, the data should be sorted
if necessary using sddssort prior to using this program. I.e., if the data contains columns x
and y, and one wants x values of peaks in y, then one should ensure that the rows are sorted
into increasing or decreasing x order.
It may also be helpful to smooth the data using sddssmooth in order to eliminate spurious
peaks due to noisy data.
- examples: Find peaks in a Fourier transform:
sddspeakfind data.fft data.peaks -column=FFTamplitude
Sort and smooth the data first:
sddssort data.fft -column=f,increasing -pipe=out
| sddssmooth -pipe -columns=FFTamplitude
| sddspeakfind -pipe=in data.peaks -column=FFTamplitude
sddspeakfind [-pipe=[input][,output]] [inputFile] [outputFile] -column=columnName
[-fivePoints] [-threshold=value] [-exclusionZone=fractionalInterval]
- files: inputFile contains the data to be searched for peaks. outputFile contains all of the array and
parameter data from inputFile, plus data from all rows that contain a peak in the named column.
No new data elements are created. If inputFile contains multiple pages, each is treated separately
and is delivered to a separate page of outputFile.
- -pipe[=input][,output] — The standard SDDS Toolkit pipe option.
- -column=columnName — Specifies the name of the column to search for peaks.
- -fivePoints — Specifies peak analysis using five adjacent data points, rather than the
default three. For three-point mode, a peak is any point which is larger than both of
its two nearest neighbors. For five-point mode, the candidate point’s nearest neighbors
must in turn be higher than their nearest neighbors on the side away from the candidate
- -threshold=value — Specifies a minimum value that a peak value must exceed in order
to be included in the output. By default, no threshold is applied.
- -exclusionZone=fractionalInterval — Specifies elimination of smaller peaks within
a given interval around a larger peak. fractionalInterval is the width of the interval in
units of the length of the data table.
- -changeThreshold=fractionalChange — Specifies elimination of peaks for which the
fractional change between the peak value and the nearest neighbor points is less than
the given amount. If -fivePoints is given, the nearest neighbors in question are those
2 rows above and below the peak.
- see also:
- author: M. Borland, ANL/APS.