|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.ObjectPamguardMVC.PamProcess
clickDetector.ClickDetector
public class ClickDetector
Main click detector process.
Observes a raw data block, filters and thresholds the data to create Click objects
ClickDetection| Nested Class Summary | |
|---|---|
(package private) class |
ClickDetector.ChannelGroupDetector
|
(package private) static class |
ClickDetector.ClickStatus
|
(package private) class |
ClickDetector.NewClickMonitor
To improve performance, raw data is sent to each ChannelGroupDetector into a different thread. |
| Fields inherited from class PamguardMVC.PamProcess |
|---|
outputDataBlocks, processName, sampleRate |
| Constructor Summary | |
|---|---|
ClickDetector(ClickControl clickControl)
|
|
| Method Summary | |
|---|---|
void |
closeOutputFile()
|
private boolean |
completeClick(ClickDetection newClick)
Once a click is detected, does everything else to it such as calculate bearing, check species, send to click train detector, etc. |
void |
createFilters()
|
ClickDetector.ChannelGroupDetector |
findChannelGroupDetector(int channelBitmap)
|
ClickBinaryDataSource |
getClickBinaryDataSource()
|
ClickControl |
getClickControl()
|
long |
getClickCount()
|
ClickDataBlock |
getClickDataBlock()
|
PamRawDataBlock[] |
getFilteredDataBlocks()
|
Hilbert |
getHilbert()
|
OfflineEventDataBlock |
getOfflineEventDataBlock()
|
PamDataBlock<ClickDetection> |
getOutputClickData()
|
long |
getRequiredDataHistory(PamObservable o,
java.lang.Object arg)
|
long |
getSamplesProcessed()
|
long |
getStartTimeMillis()
|
PamDataBlock<ClickDetection> |
getTrackedClicks()
|
PamDataBlock<TriggerLevelDataUnit> |
getTriggerDataBlock()
|
ClickTriggerFunctionDataBlock |
getTriggerFunctionDataBlock()
|
void |
newData(PamObservable obs,
PamDataUnit newData)
|
void |
newParameters()
|
void |
notifyArrayChanged()
|
boolean |
openOutputFile(boolean doHeader)
|
void |
pamStart()
Called for each process to tell it to start (may not be necessary for processes which are listening for data anyway. |
void |
pamStop()
Stops the process. |
void |
prepareProcess()
Called for each process before any of them receive the PamStart command |
private void |
preProcessData()
|
boolean |
reWriteClick(ClickDetection click,
boolean waveformToo)
|
void |
secondTimer(long sampleNumber)
|
void |
setSampleRate(float sampleRate,
boolean notify)
New sample rate |
void |
setupProcess()
called for every process once the systemmodel has been created. |
private void |
sortOutDataBlocks()
|
boolean |
wantClick(ClickDetection click,
ClickIdInformation idInfo)
Return true if the click should be processed and stored. |
private boolean |
wantMultiThread()
Quick way of making a local decision on multithreading |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
private ClickDetector THIS
private int nChannelGroups
private boolean multiThread
private ClickDetector.ChannelGroupDetector[] channelGroupDetectors
private int[] globalChannelList
private int[] globalChannelIndex
private long startTimeMillis
private ClickControl clickControl
private int channelsReceived
private double[][] channelData
private int nChan
private Hilbert hilbert
private ClickDataBlock outputClickData
private OfflineEventDataBlock offlineEventDataBlock
private NoiseDataBlock noiseDataBlock
private long blockStartSample
private long blockDuration
private long allSamplesProcessed
private PamRawDataBlock rawDataSource
private PamDataBlock<TriggerLevelDataUnit> triggerDataBlock
private PamRawDataBlock doubleFilteredData
protected PamDataBlock<ClickDetection> trackedClicks
private ClickTriggerFunctionDataBlock triggerFunctionDataBlock
private IirfFilter[] firstFilter
private IirfFilter[] secondFilter
private long secondCounter
private TriggerHistogram[] triggerHistogram
private ClickFileStorage clickStorage
private long samplesPerStore
private long fileStartSample
private long clickCount
private double[] freqLims
private long requiredKeptSamples
protected FastFFT fastFFT
protected Correlations correlations
private ClickDetector.NewClickMonitor newClickMonitor
AcquisitionProcess acquisitionProcess
int correlationLength
private ClickBinaryDataSource clickBinaryDataSource
private ClickParameters previousParameters
private volatile boolean pauseDetection
private volatile boolean lockDownfile
| Constructor Detail |
|---|
public ClickDetector(ClickControl clickControl)
| Method Detail |
|---|
public void setSampleRate(float sampleRate,
boolean notify)
PamObserver
setSampleRate in interface PamObserversetSampleRate in class PamProcessnotify - Notify other PamObservers and PamObservables in the chain.private boolean wantMultiThread()
public void setupProcess()
PamProcess
setupProcess in class PamProcesspublic void createFilters()
public void newParameters()
public ClickDataBlock getClickDataBlock()
public OfflineEventDataBlock getOfflineEventDataBlock()
public long getRequiredDataHistory(PamObservable o,
java.lang.Object arg)
getRequiredDataHistory in interface PamObservergetRequiredDataHistory in class PamProcesso - PamObservable class requiring the dataarg - optional argument from PamObservable
public void secondTimer(long sampleNumber)
public void newData(PamObservable obs,
PamDataUnit newData)
newData in class PamProcesspublic void prepareProcess()
PamProcess
prepareProcess in class PamProcesspublic void pamStart()
PamProcess
pamStart in class PamProcessprivate void preProcessData()
private void sortOutDataBlocks()
public boolean openOutputFile(boolean doHeader)
public void closeOutputFile()
public void pamStop()
PamProcess
pamStop in class PamProcesspublic long getStartTimeMillis()
public boolean reWriteClick(ClickDetection click,
boolean waveformToo)
public ClickControl getClickControl()
public long getSamplesProcessed()
public long getClickCount()
public PamDataBlock<TriggerLevelDataUnit> getTriggerDataBlock()
public PamDataBlock<ClickDetection> getOutputClickData()
private boolean completeClick(ClickDetection newClick)
public boolean wantClick(ClickDetection click,
ClickIdInformation idInfo)
If there is no online classification, we want everything If there is classification, but we've not told it to discard, etc
click - idInfo -
public PamRawDataBlock[] getFilteredDataBlocks()
public ClickTriggerFunctionDataBlock getTriggerFunctionDataBlock()
public PamDataBlock<ClickDetection> getTrackedClicks()
public Hilbert getHilbert()
public void notifyArrayChanged()
public ClickDetector.ChannelGroupDetector findChannelGroupDetector(int channelBitmap)
public ClickBinaryDataSource getClickBinaryDataSource()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||