Package clickDetector
Class ClickSpectrumTemplateEditDialog
java.lang.Object
java.awt.Component
java.awt.Container
java.awt.Window
java.awt.Dialog
javax.swing.JDialog
PamView.dialog.PamDialog
clickDetector.ClickSpectrumTemplateEditDialog
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,Accessible
,RootPaneContainer
,WindowConstants
The edit template dialog allows users to create mean spectrums from marked out events. A created mean spectrum can be exported as .csv file and displayed on the Click Spectrum window. Templates contain data on species
,sample rate, and standard deviation of each frequency bin along with the mean FFT. The idea behind these templates is that they can be used to help the user identify dolphin clicks and perhaps highlight common features over multiple clicks.
The problem of classifying dolphin clicks is a difficult one. Different clicks from the same animal often have highly different spectral properties. For some species the average spectrum of multiple clicks does contain peaks and features which can be useful. The aim of this class is to allow the user
to gain some kind of handle on these features. Further development must look at some sort of statistical analysis to quantify the similarity between a template and click/click event.
A note on creating mean spectrums;
The rules of logarithms are, to the casual mathematician, a bit strange. We need to be careful when constructing a mean or standard deviation of logarithmic spectrums mainly because log(x)+log(y) does NOT equal log(x+y). So if we create a mean spectrum, then take the log of that, it is not the same as calculating the log of each click fft and then taking the mean. The same applies to standard deviation.
- Author:
- Jamie Macaulay
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class PamView.dialog.PamDialog
PamDialog.PopupListener
Nested classes/interfaces inherited from class java.awt.Dialog
Dialog.ModalExclusionType, Dialog.ModalityType
Nested classes/interfaces inherited from class java.awt.Window
Window.Type
Nested classes/interfaces inherited from class java.awt.Component
Component.BaselineResizeBehavior
-
Field Summary
Fields inherited from class java.awt.Dialog
DEFAULT_MODALITY_TYPE
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
-
Constructor Summary
ConstructorDescriptionClickSpectrumTemplateEditDialog
(Window parentFrame, Point pt, ClickControl clickControl) -
Method Summary
Modifier and TypeMethodDescriptionvoid
addListSelectionListener
(ListSelectionListener listSelectionListener) void
Save the average event data to a ClickTemplate class and add to list of click templates.void
called when the cancel button is pressed before the dialog closes.controls()
convertToArrayList
(double[] array) static double[]
convertToDoubleArray
(ArrayList<Double> array) Converts and ArrayListto a double[] Creates a click template from the saved instance variables.void
deleteTemplate
(int row) Deletes template from memory; -both the template and corresponding setVisble boolean must be deleted.double[]
Calculates the average fft for an ArrayList of fft's.double[]
Create standard deviation of all fft's.ArrayList<double[]>
getEventFFTs
(Integer channel, boolean normalise) Get the event ffts for the selected channel.boolean
called when the Ok button is pressed.void
void
standard function which should us used to copy default parameters into the dialog controls.Opens file save dialog and allows user to select save location.void
Saves the current template and standard deviation to a .csv file.void
Saves a template plus a list of all the spectrums used in creating that template- note the template is from normalised spectrums but the list of spectrums is not normalised- this gives the maximum amount of data to the user.void
setClickSpectrum
(ClickSpectrum clickSpectrum) boolean
static ClickSpectrumTemplateParams
showDialog
(Window parentFrame, Point pt, ClickSpectrum clickSpectrum, ClickSpectrumTemplateParams clickSpectrumTemplateParams, ClickControl clickControl) Creates an instance of the edit template dialog, associated with the Click Spectrum window it was opened from.void
Updates the clickSpectrum whenever a template is added or removed.Methods inherited from class PamView.dialog.PamDialog
addComponent, closeLater, enableHelpButton, exportSettings, formatDouble, getButtonPanel, getCancelButton, getCancelObserver, getDefaultButton, getHelpButton, getHelpPoint, getOkButton, getWarningTitle, importSettings, isMoveToMouse, isSendGeneralSettingsNotification, isWarnDefaultSetting, moveToLocation, moveToMouseLocation, restoreDefaultSettingsQ, setCancelObserver, setDialogComponent, setDoubleValue, setHelpPoint, setMoveToMouse, setSendGeneralSettingsNotification, setVisible, setWarnDefaultSetting, setWarningTitle, showQuestion, showQuestion, showQuestion, showWarning, showWarning, showWarning
Methods inherited from class javax.swing.JDialog
getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setTransferHandler, update
Methods inherited from class java.awt.Dialog
addNotify, getModalityType, getTitle, hide, isModal, isResizable, isUndecorated, setBackground, setModal, setModalityType, setOpacity, setResizable, setShape, setTitle, setUndecorated, show, toBack
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, removeNotify, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImage, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, toFront
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, dispatchEvent, enable, enable, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Constructor Details
-
ClickSpectrumTemplateEditDialog
-
-
Method Details
-
showDialog
public static ClickSpectrumTemplateParams showDialog(Window parentFrame, Point pt, ClickSpectrum clickSpectrum, ClickSpectrumTemplateParams clickSpectrumTemplateParams, ClickControl clickControl) Creates an instance of the edit template dialog, associated with the Click Spectrum window it was opened from.- Parameters:
parentFrame
-pt
-clickSpectrum
-clickSpectrumTemplateParams
-clickControl
-- Returns:
- new clickSpectrumTemplateParams
-
setClickSpectrum
-
addListSelectionListener
-
controls
-
getEventFFTs
Get the event ffts for the selected channel. If channel is null then then all ffts from every event are selected. Have to be careful here with channel numbers here. If an event does not have any clicks form the selected channel then an empty ArrayList is returned.- Parameters:
channel
-- Returns:
-
openFileBrowser
-
loadTemplate
public void loadTemplate() -
saveTemplate
public void saveTemplate()Saves the current template and standard deviation to a .csv file. -
saveTemplatePlusSpectrums
public void saveTemplatePlusSpectrums()Saves a template plus a list of all the spectrums used in creating that template- note the template is from normalised spectrums but the list of spectrums is not normalised- this gives the maximum amount of data to the user. -
addToSpectrum
public void addToSpectrum()Save the average event data to a ClickTemplate class and add to list of click templates. Make visible as a default. -
fftMean
Calculates the average fft for an ArrayList of fft's. Ignores any NaN values.- Parameters:
fftAll
-- Returns:
- average fft.
-
fftstd
Create standard deviation of all fft's.- Parameters:
fftAll
- - all the fft'smeanVals
- - ArrayList of the means if the fft's ;- Returns:
-
deleteTemplate
public void deleteTemplate(int row) Deletes template from memory; -both the template and corresponding setVisble boolean must be deleted. -
saveFileBrowser
Opens file save dialog and allows user to select save location.- Returns:
- Path to save file to
-
convertToDoubleArray
Converts and ArrayListto a double[] - Parameters:
array
-- Returns:
- double[] array with same values as inputed ArrayList
-
convertToArrayList
-
createTemplate
Creates a click template from the saved instance variables. Be careful that these variables have been updated when using this function.- Returns:
- ClickTemplate
-
setParams
public boolean setParams() -
updateClickSpectrum
public void updateClickSpectrum()Updates the clickSpectrum whenever a template is added or removed. This function basically changes the clickSpectrum before the dialog box is closed. -
getParams
public boolean getParams()Description copied from class:PamDialog
called when the Ok button is pressed. This must return true in order that the dialog may close. It should also copy all parameters into an object that will be returned by showDialog. -
cancelButtonPressed
public void cancelButtonPressed()Description copied from class:PamDialog
called when the cancel button is pressed before the dialog closes. Generally you should set the parameters returned by the dialog to null or some default value, or in some other way indicate that Cancel was pressed.- Specified by:
cancelButtonPressed
in classPamDialog
-
restoreDefaultSettings
public void restoreDefaultSettings()Description copied from class:PamDialog
standard function which should us used to copy default parameters into the dialog controls.- Specified by:
restoreDefaultSettings
in classPamDialog
-