org.imirsel.m2k.evaluation
Class OnsetDetectionEvaluator

java.lang.Object
  extended byjava.util.Observable
      extended byncsa.d2k.core.modules.RootModule
          extended byncsa.d2k.core.modules.ConfigurableModule
              extended byncsa.d2k.core.modules.EmbeddedPipeModule
                  extended byncsa.d2k.core.modules.ExecModule
                      extended byncsa.d2k.core.modules.ComputeModule
                          extended byorg.imirsel.m2k.evaluation.OnsetDetectionEvaluator
All Implemented Interfaces:
java.lang.Cloneable, ncsa.d2k.core.modules.Module, java.io.Serializable, ncsa.d2k.core.modules.SystemModule

public class OnsetDetectionEvaluator
extends ncsa.d2k.core.modules.ComputeModule

This module evaluates onset detection algorithms based on a tolerance parameter. Input is a null terminated stream of Signal objects with "Onset times" meta-data, to be used as the ground-truth, and another stream of Signal objects with an "Onset times" meta-data to be tested for accuracy. The F-measure of the onset detector is returned. Finally, the serialized Signal arrays and the text result files are copied to a directory, specified as a parameter, for McNemar's testing by another module.

Author:
Kris West
See Also:
Serialized Form

Field Summary
 
Fields inherited from class ncsa.d2k.core.modules.ConfigurableModule
addedInputInfo, addedInputNames, addedInputTypes, addedOutputInfo, addedOutputNames, addedOutputTypes, addPortListeners
 
Fields inherited from class ncsa.d2k.core.modules.RootModule
alias, children, DEBUG_LEVEL, EMPTY_INPUT, ERROR_LEVEL, executionManager, FATAL_LEVEL, HAVE_INPUT, INFO_LEVEL, iPipes, iPipesIndex, iTriggers, oPipes, oPipesIndex, oTriggers, parents, pipesFullManager, stats, triggerChildren, triggerParents, WARN_LEVEL
 
Fields inherited from interface ncsa.d2k.core.modules.SystemModule
BLOCKED_STATE, IDLE_STATE, MEDIUM, MEDIUM_RARE, MEDIUM_WELL, RARE, READY_STATE, WELL, WORKING_STATE
 
Constructor Summary
OnsetDetectionEvaluator()
           
 
Method Summary
 void beginExecution()
          Performs operations at the beginning of itinerary execution.
 void doit()
          This module evaluates onset detection algorithms based on a tolerance parameter.
 void endExecution()
          Performs operations at the end of itinerary execution.
 java.lang.String getCopyToDirectory()
          Returns the value of CopyToDirectory
 java.lang.String getDetectorName()
          Returns the value of detectorName
 java.lang.String getInputInfo(int i)
          Returns a text description for the indicated input.
 java.lang.String getInputName(int i)
          Returns a text name for the given input.
 java.lang.String[] getInputTypes()
          Returns an array of strings containing the Java data types of the input.
 java.lang.String getModuleInfo()
          Returns information about the module.
 java.lang.String getModuleName()
          Returns the name of the module.
 java.lang.String getOutputInfo(int i)
          Returns a text description for the given output.
 java.lang.String getOutputName(int i)
          Returns a text name for the given output.
 java.lang.String[] getOutputTypes()
          Returns an array of strings containing the Java data types of the outputs.
 ncsa.d2k.core.modules.PropertyDescription[] getPropertiesDescriptions()
          Returns an array of description objects for each property of the Module.
 double getTolerance()
          Returns the value of tolerance
 boolean getVerbose()
          Returns the value of the verbose output flag
 boolean isReady()
          Returns a boolean indicating if the module is ready to execute or not.
 void setCopyToDirectory(java.lang.String value)
          Sets the value of CopyToDirectory
 void setDetectorName(java.lang.String value)
          Sets the value of detectorName
 void setTolerance(double value)
          Sets the value of the tolerance parameter
 void setVerbose(boolean value)
          Sets the value of the verbose output flag
 
Methods inherited from class ncsa.d2k.core.modules.ExecModule
execute, setExecutionManager
 
Methods inherited from class ncsa.d2k.core.modules.ConfigurableModule
addAddPortListener, addInput, addInputTrigger, addOutput, addOutputTrigger, getAddedInputTypes, getAddedOutputTypes, getAddPortListeners, insertInput, insertOutput, removeAddPortListener, removeInput, removeInputTrigger, removeOutput, removeOutputTrigger, setAddedInputTypes, setInputType, setOutputType
 
Methods inherited from class ncsa.d2k.core.modules.RootModule
activateTriggers, begin, canRun, clone, debug, debug, disconnectInputPipe, disconnectInputTriggers, disconnectOutputPipe, disconnectOutputTriggers, end, error, error, fatal, fatal, fetchInputs, getAlias, getChildIndex, getChildMux, getChildren, getExecutionManager, getFile, getFlags, getFullPipeManager, getGuiComponent, getImage, getInputPipes, getInputPipeSize, getInputTriggers, getModuleStatistics, getNumInputs, getNumOutputs, getOutputCounts, getOutputPipes, getOutputPipeSize, getOutputTriggers, getParentIndex, getParentMux, getParents, getPipesFull, getPriority, getPropertyEditor, getResource, getRootName, getState, info, info, initModule, isAborting, isHead, isInputPipeConnected, isOutputPipeConnected, pullInput, pushOutput, resetInputs, setAlias, setBlocked, setD2KModulesLoggingLevel, setFlags, setFullPipeManager, setIdle, setInputPipe, setLogLevel, setModuleStatistics, setModuleStatisticsByMachine, setOutputCounts, setOutputPipe, setPipesFull, setReady, setResource, setState, setThePriority, setWorking, trigger, triggersActivated, warn, warn
 
Methods inherited from class java.util.Observable
addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChanged
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OnsetDetectionEvaluator

public OnsetDetectionEvaluator()
Method Detail

setVerbose

public void setVerbose(boolean value)
Sets the value of the verbose output flag

Parameters:
value - the value which verbose is set to
See Also:
#verbose

getVerbose

public boolean getVerbose()
Returns the value of the verbose output flag

Returns:
verbose
See Also:
#verbose

setTolerance

public void setTolerance(double value)
Sets the value of the tolerance parameter

Parameters:
value - the value which tolerance is set to
See Also:
#tolerance

getTolerance

public double getTolerance()
Returns the value of tolerance

Returns:
tolerance
See Also:
#tolerance

setCopyToDirectory

public void setCopyToDirectory(java.lang.String value)
Sets the value of CopyToDirectory

Parameters:
value - the value which CopyToDirectory is set to

getCopyToDirectory

public java.lang.String getCopyToDirectory()
Returns the value of CopyToDirectory

Returns:
the value of CopyToDirectory

setDetectorName

public void setDetectorName(java.lang.String value)
Sets the value of detectorName

Parameters:
value - the value which detectorName is set to
See Also:
#detectorName

getDetectorName

public java.lang.String getDetectorName()
Returns the value of detectorName

Returns:
detectorName
See Also:
#detectorName

getPropertiesDescriptions

public ncsa.d2k.core.modules.PropertyDescription[] getPropertiesDescriptions()
Returns an array of description objects for each property of the Module.

Returns:
an array of description objects for each property of the Module.

getModuleName

public java.lang.String getModuleName()
Returns the name of the module.

Returns:
the module name

getModuleInfo

public java.lang.String getModuleInfo()
Returns information about the module.

Returns:
Module information

getInputName

public java.lang.String getInputName(int i)
Returns a text name for the given input.

Parameters:
i - the index of the input
Returns:
the name of the indexed input

getInputInfo

public java.lang.String getInputInfo(int i)
Returns a text description for the indicated input.

Parameters:
i - the index of the input
Returns:
a text description of the indexed input

getInputTypes

public java.lang.String[] getInputTypes()
Returns an array of strings containing the Java data types of the input.

Returns:
the fully qualified java types for each of the inputs

getOutputName

public java.lang.String getOutputName(int i)
Returns a text name for the given output.

Parameters:
i - the index of the output
Returns:
the name of the indexed output

getOutputInfo

public java.lang.String getOutputInfo(int i)
Returns a text description for the given output.

Parameters:
i - the index of the output
Returns:
the name of the indexed output

getOutputTypes

public java.lang.String[] getOutputTypes()
Returns an array of strings containing the Java data types of the outputs.

Returns:
the fully qualified java types for each of the outputs.

beginExecution

public void beginExecution()
Performs operations at the beginning of itinerary execution.

See Also:
endExecution()

endExecution

public void endExecution()
Performs operations at the end of itinerary execution.

See Also:
beginExecution()

isReady

public boolean isReady()
Returns a boolean indicating if the module is ready to execute or not.

Returns:
true if the module is ready to execute, false if not.

doit

public void doit()
          throws java.lang.Exception,
                 noMetadataException
This module evaluates onset detection algorithms based on a tolerance parameter. Input is a null terminated stream of Signal objects with "Onset times" meta-data, to be used as the ground-truth, and another stream of Signal objects with an "Onset times" meta-data to be tested for accuracy. The F-measure of the onset detector is returned. Finally, the serialized Signal arrays and the text result files are copied to a directory, specified as a parameter, for McNemar's testing by another module. The input data is not modified.

Throws:
noMetadataException - Thrown if the module tries to access metadata that a Signal object does not contain, usually indicates mis-use of a module.
java.lang.Exception