- description:
sddssmooth smooths columns of data using multipass nearest-neighbor averaging and/or
despiking. Any number of columns may be smoothed. The smoothed data may be put in place of the
original data, or included as a new column.
Nearest-neighbor averaging involves repeatedly replacing each point by the average of its
N nearest-neighbors; this is the type of smoothing that is done if nothing is specified.
Despiking consists of replacing the most extreme of N nearest neighbors with the average
of the same points; the most extreme point is the one with the largest mean absolute difference
from the other points.
- examples:
Smooth data in a Fourier transform:
sddssmooth data.fft data.peaks -column=FFTamplitude
- synopsis:
sddssmooth [-pipe=[input][,output]] [inputfile] [outputfile]
-columns=name[,name...]
[-points=oddInteger] [-passes=integer]
[-SavitzkyGolay=left,right,order,[derivativeOrder]]
[-despike[=neighbors=integer][,passes=integer]]
[-newColumns] [-differenceColumns]
- files:
inputFile contains the data to be smoothed. outputFile contains all of the array and
parameter data from inputFile, plus at least one column for every column in inputFile.
Columns that are not smoothed will appear unchanged in outputFile. If inputFile
contains multiple pages, each is treated separately and is delivered to a separate page of outputFile.
- switches:
-pipe[=input][,output]
-- The standard SDDS Toolkit pipe option.
- -columns=columnName[,columnName... -- Specifies the names of the column to smooth.
The names may include wildcards.
- -points=oddInteger -- Specifies the number of points to average to create a smoothed
value for each point. The default is three, which implies replacing each point by the average
of itself and its two nearest neighbors.
- -passes=integer -- Specifies the number of nearest-neighbor-averaging
smoothing passes to make over each column
of data. The default is 1. If 0, no such smoothing is done.
In the limit of an infinite number of passes, every point will
tend toward the average value of the original data. If -despike is also given,
then despiking occurs first.
- -SavitzkyGolay=left,right,order,[derivativeOrder] --
Specifies smoothing by use of a Savitzky-Golay filter, which involves fitting a
polynomial of order order through left+right+1 points. Optionally,
takes the derivativeOrder-th derivative of the data. If this option is given,
the nearest-neighbor-averaging smoothing is not done. If -despike is also given,
then despiking occurs first.
- -despike[=neighbors=integer][,passes=integer] --
Specifies smoothing by despiking, as described above. By default, 4 nearest-neighbors
are used and 1 pass is done. If this option is not given, no despiking is done.
- -newColumns -- Specifies that the smoothed data will be placed in new columns, rather than
replacing the data in each column with the smoothed result. The new columns are given names of
the form columnNameSmoothed, where columnName is the original name of a column.
- -differenceColumns -- Specifies that additional columns be created in the output file,
containing the difference between the original data and the smoothed data.
The new columns are given names of the form columnNameUnsmooth, where
columnName is the orignal name of the column.
- see also:
- author: M. Borland, ANL/APS.