Class SavitzkyGolay

  • All Implemented Interfaces:
    adams.core.CleanUpHandler, adams.core.Destroyable, adams.core.GlobalInfoSupporter, adams.core.logging.LoggingLevelHandler, adams.core.logging.LoggingSupporter, adams.core.option.OptionHandler, adams.core.ShallowCopySupporter<adams.data.filter.Filter>, adams.core.SizeOfHandler, adams.core.TechnicalInformationHandler, adams.data.filter.Filter<Spectrum>, Serializable, Comparable

    public class SavitzkyGolay
    extends adams.data.filter.AbstractSavitzkyGolay<Spectrum>
    A filter that applies Savitzky-Golay smoothing.

    For more information see:

    A. Savitzky, Marcel J.E. Golay (1964). Smoothing and Differentiation of Data by Simplified Least Squares Procedures. Analytical Chemistry. 36:1627-1639.

    William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery (1992). Savitzky-Golay Smoothing Filters.

    BibTeX:
     @article{Savitzky1964,
        author = {A. Savitzky and Marcel J.E. Golay},
        journal = {Analytical Chemistry},
        pages = {1627-1639},
        title = {Smoothing and Differentiation of Data by Simplified Least Squares Procedures},
        volume = {36},
        year = {1964},
        HTTP = {http://dx.doi.org/10.1021/ac60214a047}
     }
    
     @inbook{Press1992,
        author = {William H. Press and Saul A. Teukolsky and William T. Vetterling and Brian P. Flannery},
        chapter = {14.8},
        edition = {Second},
        pages = {650-655},
        publisher = {Cambridge University Press},
        series = {Numerical Recipes in C},
        title = {Savitzky-Golay Smoothing Filters},
        year = {1992},
        PDF = {http://www.nrbook.com/a/bookcpdf/c14-8.pdf}
     }
     


    Valid options are:

    -D (property: debug)
             If set to true, scheme may output additional info to the console.
     
    -polynomial <int> (property: polynomialOrder)
             The polynomial order to use, must be at least 2.
             default: 2
     
    -derivative <int> (property: derivativeOrder)
             The order of the derivative to use, >= 0.
             default: 1
     
    -left <int> (property: numPointsLeft)
             The number of points left of a data point, >= 0.
             default: 3
     
    -right <int> (property: numPointsRight)
             The number of points right of a data point, >= 0.
             default: 3
     
    Version:
    $Revision: 2242 $
    Author:
    fracpete (fracpete at waikato dot ac dot nz)
    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class adams.data.filter.AbstractFilter

        adams.data.filter.AbstractFilter.FilterJob<T extends adams.data.container.DataContainer>
    • Field Summary

      • Fields inherited from class adams.data.filter.AbstractSavitzkyGolay

        m_Coefficients, m_DerivativeOrder, m_NumPointsLeft, m_NumPointsRight, m_PolynomialOrder
      • Fields inherited from class adams.data.filter.AbstractFilter

        m_DontUpdateID
      • Fields inherited from class adams.core.option.AbstractOptionHandler

        m_OptionManager
      • Fields inherited from class adams.core.logging.LoggingObject

        m_Logger, m_LoggingIsEnabled, m_LoggingLevel
    • Constructor Summary

      Constructors 
      Constructor Description
      SavitzkyGolay()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected double getValue​(adams.data.container.DataPoint point)
      Returns the X-value of the DataPoint.
      protected adams.data.container.DataPoint newDataPoint​(adams.data.container.DataPoint oldPoint, double x)
      Creates a new DataPoint based on the old one and the new X value.
      • Methods inherited from class adams.data.filter.AbstractSavitzkyGolay

        defineOptions, derivativeOrderTipText, getDerivativeOrder, getNumPointsLeft, getNumPointsRight, getPolynomialOrder, getTechnicalInformation, globalInfo, initialize, numPointsLeftTipText, numPointsRightTipText, polynomialOrderTipText, postProcess, processData, resetCoefficients, setDerivativeOrder, setNumPointsLeft, setNumPointsRight, setPolynomialOrder
      • Methods inherited from class adams.data.filter.AbstractFilter

        checkData, cleanUp, compareTo, destroy, dontUpdateIDTipText, equals, filter, forCommandLine, getDontUpdateID, reset, setDontUpdateID, shallowCopy, shallowCopy
      • Methods inherited from class adams.core.option.AbstractOptionHandler

        cleanUpOptions, finishInit, getDefaultLoggingLevel, getOptionManager, loggingLevelTipText, newOptionManager, setLoggingLevel, toCommandLine, toString
      • Methods inherited from class adams.core.logging.LoggingObject

        configureLogger, getLogger, getLoggingLevel, initializeLogging, isLoggingEnabled, sizeOf
      • Methods inherited from interface adams.core.logging.LoggingLevelHandler

        getLoggingLevel, setLoggingLevel
      • Methods inherited from interface adams.core.logging.LoggingSupporter

        getLogger, isLoggingEnabled
      • Methods inherited from interface adams.core.option.OptionHandler

        cleanUpOptions, getOptionManager, toCommandLine
    • Constructor Detail

      • SavitzkyGolay

        public SavitzkyGolay()
    • Method Detail

      • getValue

        protected double getValue​(adams.data.container.DataPoint point)
        Returns the X-value of the DataPoint.
        Specified by:
        getValue in class adams.data.filter.AbstractSavitzkyGolay<Spectrum>
        Parameters:
        point - the point to get the X-Value from
        Returns:
        the X-value
      • newDataPoint

        protected adams.data.container.DataPoint newDataPoint​(adams.data.container.DataPoint oldPoint,
                                                              double x)
        Creates a new DataPoint based on the old one and the new X value.
        Specified by:
        newDataPoint in class adams.data.filter.AbstractSavitzkyGolay<Spectrum>
        Parameters:
        oldPoint - the old DataPoint
        x - the new X value
        Returns:
        the new DataPoint