Class SpreadSheetRowsToSpectra

  • All Implemented Interfaces:
    adams.core.AdditionalInformationHandler, adams.core.CleanUpHandler, adams.core.Destroyable, adams.core.GlobalInfoSupporter, adams.core.LenientModeSupporter, adams.core.logging.LoggingLevelHandler, adams.core.logging.LoggingSupporter, adams.core.option.OptionHandler, adams.core.QuickInfoSupporter, adams.core.ShallowCopySupporter<adams.data.conversion.AbstractConversion>, adams.core.SizeOfHandler, adams.core.Stoppable, adams.data.conversion.Conversion, Serializable

    public class SpreadSheetRowsToSpectra
    extends adams.data.conversion.AbstractConversion
    implements adams.core.LenientModeSupporter
    Turns spreadsheet rows into spectra.

    -logging-level <OFF|SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST> (property: loggingLevel)
        The logging level for outputting errors and debugging output.
        default: WARNING
     
    -row-wave-number <adams.data.spreadsheet.SpreadSheetRowIndex> (property: rowWaveNumber)
        The (optional) row in the spreadsheet that contains the wavenumber information.
        default:
        example: An index is a number starting with 1; the following placeholders can be used as well: first, second, third, last_2, last_1, last
     
    -wave-numbers-in-header <boolean> (property: waveNumbersInHeader)
        Whether the wave numbers are stored in the header.
        default: false
     
    -wave-number-regexp <adams.core.base.BaseRegExp> (property: waveNumberRegExp)
        The regular expression to identify the wave number (1st group is used).
        default: (.*)
        more: https://docs.oracle.com/javase/tutorial/essential/regex/
        https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html
     
    -cols-amplitude <adams.data.spreadsheet.SpreadSheetColumnRange> (property: columnsAmplitude)
        The columns that contain amplitude information.
        default:
        example: A range is a comma-separated list of single 1-based indices or sub-ranges of indices ('start-end'); 'inv(...)' inverts the range '...'; column names (case-sensitive) as well as the following placeholders can be used: first, second, third, last_2, last_1, last; numeric indices can be enforced by preceding them with '#' (eg '#12'); column names can be surrounded by double quotes.
     
    -rows-amplitude <adams.data.spreadsheet.SpreadSheetRowRange> (property: rowsAmplitude)
        The rows in the spreadsheet that contain the amplitude information.
        default:
        example: A range is a comma-separated list of single 1-based indices or sub-ranges of indices ('start-end'); 'inv(...)' inverts the range '...'; the following placeholders can be used as well: first, second, third, last_2, last_1, last
     
    -row-sampledata-names <adams.data.spreadsheet.SpreadSheetRowIndex> (property: rowSampleDataNames)
        The (optional) row that contains the sample data names.
        default:
        example: An index is a number starting with 1; the following placeholders can be used as well: first, second, third, last_2, last_1, last
     
    -sampledata-names-in-header <boolean> (property: sampleDataNamesInHeader)
        Whether the sample data names are stored in the header.
        default: false
     
    -cols-sampledata <adams.data.spreadsheet.SpreadSheetColumnRange> (property: columnsSampleData)
        The columns that contain sampledata.
        default:
        example: A range is a comma-separated list of single 1-based indices or sub-ranges of indices ('start-end'); 'inv(...)' inverts the range '...'; column names (case-sensitive) as well as the following placeholders can be used: first, second, third, last_2, last_1, last; numeric indices can be enforced by preceding them with '#' (eg '#12'); column names can be surrounded by double quotes.
     
    -col-id <adams.data.spreadsheet.SpreadSheetColumnIndex> (property: columnID)
        The (optional) column that contains the sample ID.
        default:
        example: An index is a number starting with 1; column names (case-sensitive) as well as the following placeholders can be used: first, second, third, last_2, last_1, last; numeric indices can be enforced by preceding them with '#' (eg '#12'); column names can be surrounded by double quotes.
     
    -format <java.lang.String> (property: format)
        The format for the spectrum.
        default: NIR
     
    -instrument <java.lang.String> (property: instrument)
        The instrument for the spectrum.
        default: unknown
     
    -lenient <boolean> (property: lenient)
        If enabled, then errors (e.g., due to corrupt data) will not cause exceptions.
        default: false
     
    Author:
    fracpete (fracpete at waikato dot ac dot nz)
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static String DEFAULT_WAVENO_REGEXP  
      protected adams.data.spreadsheet.SpreadSheetColumnIndex m_ColumnID
      the (optional) row with the sample ID.
      protected adams.data.spreadsheet.SpreadSheetColumnRange m_ColumnsAmplitude
      the rows to get the amplitudes from.
      protected adams.data.spreadsheet.SpreadSheetColumnRange m_ColumnsSampleData
      the rows to get the sample data from.
      protected String m_Format
      the format to use for the spectrum.
      protected String m_Instrument
      the instrument to use for the spectrum.
      protected boolean m_Lenient
      whether to skip over errors.
      protected adams.data.spreadsheet.SpreadSheetRowIndex m_RowSampleDataNames
      the column with the sample data names.
      protected adams.data.spreadsheet.SpreadSheetRowRange m_RowsAmplitude
      the rows with amplitudes.
      protected adams.data.spreadsheet.SpreadSheetRowIndex m_RowWaveNumber
      the (optional) wavenumber row.
      protected boolean m_SampleDataNamesInHeader
      whether the sample data names are in the header row.
      protected adams.core.base.BaseRegExp m_WaveNumberRegExp
      the regular expression to extract the wave number from the header (first group is used).
      protected boolean m_WaveNumbersInHeader
      whether the wavenumbers are in the header row.
      • Fields inherited from class adams.data.conversion.AbstractConversion

        m_Input, m_Output, m_Owner, m_Stopped
      • Fields inherited from class adams.core.option.AbstractOptionHandler

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

        m_Logger, m_LoggingIsEnabled, m_LoggingLevel
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      Class accepts()
      Returns the class that is accepted as input.
      String columnIDTipText()
      Returns the tip text for this property.
      String columnsAmplitudeTipText()
      Returns the tip text for this property.
      String columnsSampleDataTipText()
      Returns the tip text for this property.
      void defineOptions()
      Adds options to the internal list of options.
      protected Object doConvert()
      Performs the actual conversion.
      String formatTipText()
      Returns the tip text for this property.
      Class generates()
      Returns the class that is generated as output.
      adams.data.spreadsheet.SpreadSheetColumnIndex getColumnID()
      Returns the (optional) column that contains the sample ID.
      adams.data.spreadsheet.SpreadSheetColumnRange getColumnsAmplitude()
      Returns the columns with amplitude information.
      adams.data.spreadsheet.SpreadSheetColumnRange getColumnsSampleData()
      Returns the columns with sampledata.
      String getFormat()
      Returns the format to use for the spectrum.
      String getInstrument()
      Returns the instrument to use for the spectrum.
      boolean getLenient()
      Returns whether whether to skip over errors.
      String getQuickInfo()
      Returns a quick info about the object, which can be displayed in the GUI.
      adams.data.spreadsheet.SpreadSheetRowIndex getRowSampleDataNames()
      Returns the row that contains the sample data names.
      adams.data.spreadsheet.SpreadSheetRowRange getRowsAmplitude()
      Returns the rows with the amplitude information.
      adams.data.spreadsheet.SpreadSheetRowIndex getRowWaveNumber()
      Returns the row with the wavenumber information.
      boolean getSampleDataNamesInHeader()
      Returns whether the sample data names are in the header.
      adams.core.base.BaseRegExp getWaveNumberRegExp()
      Returns the regular expression to identify the wave number (1st group is used).
      boolean getWaveNumbersInHeader()
      Returns whether the wave numbers are in the header.
      String globalInfo()
      Returns a string describing the object.
      String instrumentTipText()
      Returns the tip text for this property.
      String lenientTipText()
      Returns the tip text for this property.
      String rowSampleDataNamesTipText()
      Returns the tip text for this property.
      String rowsAmplitudeTipText()
      Returns the tip text for this property.
      String rowWaveNumberTipText()
      Returns the tip text for this property.
      String sampleDataNamesInHeaderTipText()
      Returns the tip text for this property.
      void setColumnID​(adams.data.spreadsheet.SpreadSheetColumnIndex value)
      Sets the (optional) column that contains the sample ID.
      void setColumnsAmplitude​(adams.data.spreadsheet.SpreadSheetColumnRange value)
      Sets the columns with amplitude information.
      void setColumnsSampleData​(adams.data.spreadsheet.SpreadSheetColumnRange value)
      Sets the columns with sampledata.
      void setFormat​(String value)
      Sets the format to use for the spectrum.
      void setInstrument​(String value)
      Sets the instrument to use for the spectrum.
      void setLenient​(boolean value)
      Sets whether to skip over errors.
      void setRowSampleDataNames​(adams.data.spreadsheet.SpreadSheetRowIndex value)
      Sets the row that contains the sample data names.
      void setRowsAmplitude​(adams.data.spreadsheet.SpreadSheetRowRange value)
      Sets the rows with the amplitude information.
      void setRowWaveNumber​(adams.data.spreadsheet.SpreadSheetRowIndex value)
      Sets the row with the wavenumber information.
      void setSampleDataNamesInHeader​(boolean value)
      Sets whether the wave numbers are in the header.
      void setWaveNumberRegExp​(adams.core.base.BaseRegExp value)
      Sets the regular expression to identify the wave number (1st group is used).
      void setWaveNumbersInHeader​(boolean value)
      Sets whether the wave numbers are in the header.
      String waveNumberRegExpTipText()
      Returns the tip text for this property.
      String waveNumbersInHeaderTipText()
      Returns the tip text for this property.
      • Methods inherited from class adams.data.conversion.AbstractConversion

        checkData, cleanUp, convert, getAdditionalInformation, getInput, getInput, getOutput, getOutput, getOwner, reset, setInput, setOwner, shallowCopy, shallowCopy, stopExecution
      • Methods inherited from class adams.core.option.AbstractOptionHandler

        cleanUpOptions, destroy, finishInit, getDefaultLoggingLevel, getOptionManager, initialize, loggingLevelTipText, newOptionManager, toCommandLine, toString
      • Methods inherited from class adams.core.logging.CustomLoggingLevelObject

        setLoggingLevel
      • Methods inherited from class adams.core.logging.LoggingObject

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

        getLoggingLevel
    • Field Detail

      • m_RowWaveNumber

        protected adams.data.spreadsheet.SpreadSheetRowIndex m_RowWaveNumber
        the (optional) wavenumber row.
      • m_WaveNumbersInHeader

        protected boolean m_WaveNumbersInHeader
        whether the wavenumbers are in the header row.
      • m_WaveNumberRegExp

        protected adams.core.base.BaseRegExp m_WaveNumberRegExp
        the regular expression to extract the wave number from the header (first group is used).
      • m_RowsAmplitude

        protected adams.data.spreadsheet.SpreadSheetRowRange m_RowsAmplitude
        the rows with amplitudes.
      • m_ColumnsAmplitude

        protected adams.data.spreadsheet.SpreadSheetColumnRange m_ColumnsAmplitude
        the rows to get the amplitudes from.
      • m_RowSampleDataNames

        protected adams.data.spreadsheet.SpreadSheetRowIndex m_RowSampleDataNames
        the column with the sample data names.
      • m_SampleDataNamesInHeader

        protected boolean m_SampleDataNamesInHeader
        whether the sample data names are in the header row.
      • m_ColumnsSampleData

        protected adams.data.spreadsheet.SpreadSheetColumnRange m_ColumnsSampleData
        the rows to get the sample data from.
      • m_ColumnID

        protected adams.data.spreadsheet.SpreadSheetColumnIndex m_ColumnID
        the (optional) row with the sample ID.
      • m_Format

        protected String m_Format
        the format to use for the spectrum.
      • m_Instrument

        protected String m_Instrument
        the instrument to use for the spectrum.
      • m_Lenient

        protected boolean m_Lenient
        whether to skip over errors.
    • Constructor Detail

      • SpreadSheetRowsToSpectra

        public SpreadSheetRowsToSpectra()
    • Method Detail

      • globalInfo

        public String globalInfo()
        Returns a string describing the object.
        Specified by:
        globalInfo in interface adams.core.GlobalInfoSupporter
        Specified by:
        globalInfo in class adams.core.option.AbstractOptionHandler
        Returns:
        a description suitable for displaying in the gui
      • defineOptions

        public void defineOptions()
        Adds options to the internal list of options.
        Specified by:
        defineOptions in interface adams.core.option.OptionHandler
        Overrides:
        defineOptions in class adams.core.option.AbstractOptionHandler
      • setRowWaveNumber

        public void setRowWaveNumber​(adams.data.spreadsheet.SpreadSheetRowIndex value)
        Sets the row with the wavenumber information.
        Parameters:
        value - the row
      • getRowWaveNumber

        public adams.data.spreadsheet.SpreadSheetRowIndex getRowWaveNumber()
        Returns the row with the wavenumber information.
        Returns:
        the row
      • rowWaveNumberTipText

        public String rowWaveNumberTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setWaveNumbersInHeader

        public void setWaveNumbersInHeader​(boolean value)
        Sets whether the wave numbers are in the header.
        Parameters:
        value - true if in header
      • getWaveNumbersInHeader

        public boolean getWaveNumbersInHeader()
        Returns whether the wave numbers are in the header.
        Returns:
        true if in header
      • waveNumbersInHeaderTipText

        public String waveNumbersInHeaderTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setWaveNumberRegExp

        public void setWaveNumberRegExp​(adams.core.base.BaseRegExp value)
        Sets the regular expression to identify the wave number (1st group is used).
        Parameters:
        value - the expression
      • getWaveNumberRegExp

        public adams.core.base.BaseRegExp getWaveNumberRegExp()
        Returns the regular expression to identify the wave number (1st group is used).
        Returns:
        the expression
      • waveNumberRegExpTipText

        public String waveNumberRegExpTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setRowsAmplitude

        public void setRowsAmplitude​(adams.data.spreadsheet.SpreadSheetRowRange value)
        Sets the rows with the amplitude information.
        Parameters:
        value - the rows
      • getRowsAmplitude

        public adams.data.spreadsheet.SpreadSheetRowRange getRowsAmplitude()
        Returns the rows with the amplitude information.
        Returns:
        the rows
      • rowsAmplitudeTipText

        public String rowsAmplitudeTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setColumnID

        public void setColumnID​(adams.data.spreadsheet.SpreadSheetColumnIndex value)
        Sets the (optional) column that contains the sample ID.
        Parameters:
        value - the column
      • getColumnID

        public adams.data.spreadsheet.SpreadSheetColumnIndex getColumnID()
        Returns the (optional) column that contains the sample ID.
        Returns:
        the column
      • columnIDTipText

        public String columnIDTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setColumnsAmplitude

        public void setColumnsAmplitude​(adams.data.spreadsheet.SpreadSheetColumnRange value)
        Sets the columns with amplitude information.
        Parameters:
        value - the columns
      • getColumnsAmplitude

        public adams.data.spreadsheet.SpreadSheetColumnRange getColumnsAmplitude()
        Returns the columns with amplitude information.
        Returns:
        the columns
      • columnsAmplitudeTipText

        public String columnsAmplitudeTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setRowSampleDataNames

        public void setRowSampleDataNames​(adams.data.spreadsheet.SpreadSheetRowIndex value)
        Sets the row that contains the sample data names.
        Parameters:
        value - the row
      • getRowSampleDataNames

        public adams.data.spreadsheet.SpreadSheetRowIndex getRowSampleDataNames()
        Returns the row that contains the sample data names.
        Returns:
        the row
      • rowSampleDataNamesTipText

        public String rowSampleDataNamesTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setSampleDataNamesInHeader

        public void setSampleDataNamesInHeader​(boolean value)
        Sets whether the wave numbers are in the header.
        Parameters:
        value - true if in header
      • getSampleDataNamesInHeader

        public boolean getSampleDataNamesInHeader()
        Returns whether the sample data names are in the header.
        Returns:
        true if in header
      • sampleDataNamesInHeaderTipText

        public String sampleDataNamesInHeaderTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setColumnsSampleData

        public void setColumnsSampleData​(adams.data.spreadsheet.SpreadSheetColumnRange value)
        Sets the columns with sampledata.
        Parameters:
        value - the columns
      • getColumnsSampleData

        public adams.data.spreadsheet.SpreadSheetColumnRange getColumnsSampleData()
        Returns the columns with sampledata.
        Returns:
        the columns
      • columnsSampleDataTipText

        public String columnsSampleDataTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setFormat

        public void setFormat​(String value)
        Sets the format to use for the spectrum.
        Parameters:
        value - the format
      • getFormat

        public String getFormat()
        Returns the format to use for the spectrum.
        Returns:
        the format
      • formatTipText

        public String formatTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setInstrument

        public void setInstrument​(String value)
        Sets the instrument to use for the spectrum.
        Parameters:
        value - the instrument
      • getInstrument

        public String getInstrument()
        Returns the instrument to use for the spectrum.
        Returns:
        the instrument
      • instrumentTipText

        public String instrumentTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setLenient

        public void setLenient​(boolean value)
        Sets whether to skip over errors.
        Specified by:
        setLenient in interface adams.core.LenientModeSupporter
        Parameters:
        value - true if to skip
      • getLenient

        public boolean getLenient()
        Returns whether whether to skip over errors.
        Specified by:
        getLenient in interface adams.core.LenientModeSupporter
        Returns:
        true if to skip
      • lenientTipText

        public String lenientTipText()
        Returns the tip text for this property.
        Specified by:
        lenientTipText in interface adams.core.LenientModeSupporter
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • accepts

        public Class accepts()
        Returns the class that is accepted as input.
        Specified by:
        accepts in interface adams.data.conversion.Conversion
        Specified by:
        accepts in class adams.data.conversion.AbstractConversion
        Returns:
        the class
      • generates

        public Class generates()
        Returns the class that is generated as output.
        Specified by:
        generates in interface adams.data.conversion.Conversion
        Specified by:
        generates in class adams.data.conversion.AbstractConversion
        Returns:
        the class
      • getQuickInfo

        public String getQuickInfo()
        Returns a quick info about the object, which can be displayed in the GUI.
        Specified by:
        getQuickInfo in interface adams.core.QuickInfoSupporter
        Overrides:
        getQuickInfo in class adams.data.conversion.AbstractConversion
        Returns:
        null if no info available, otherwise short string
      • doConvert

        protected Object doConvert()
                            throws Exception
        Performs the actual conversion.
        Specified by:
        doConvert in class adams.data.conversion.AbstractConversion
        Returns:
        the converted data
        Throws:
        Exception - if something goes wrong with the conversion