PamDetection
Class PamDetection<T extends PamDetection,U extends PamDetection>

java.lang.Object
  extended by PamguardMVC.PamDataUnit
      extended by PamDetection.AcousticDataUnit
          extended by PamDetection.PamDetection<T,U>
All Implemented Interfaces:
java.lang.Comparable<PamDataUnit>
Direct Known Subclasses:
AbstractWhistleDataUnit, AbstractWhistleDataUnit, ClickDetection, EventDataUnit, GroupDetDataUnit, GroupDetection, IshAnchorGroup, IshDetection, IshDetWrapper, IshTrack, OfflineEventDataUnit, PamLocalisation, PeakDataUnit, RoccaContourDataUnit, RoccaDataUnit, RoccaSightingDataUnit, ThresholdDetectorDataUnit, TowedArray3DDataUnit, TriggerLevelDataUnit, VetoDataUnit, WorkshopDataUnit

public class PamDetection<T extends PamDetection,U extends PamDetection>
extends AcousticDataUnit

Base class for all Pamguard detections. Hopefully, we'll be able to subclass this off to become more specific for various other detection types.

These things will nearly always be stored within a PamDataUnit which already contains some of the information - such as the channelMap - should this be repeated here ?

One thing this will have to do is to deal with the myriad of different amplitude types. I suggest that the basic storage unit should either be fft amplitude units - which will be there for any detection that comes out of a spectrogram, or peak ADC values, such as would come from a click detector. The class will have functions for converting between the different amplitude types.

Author:
Doug Gillespie

Field Summary
(package private)  java.lang.String detectionType
           
private  double peakTime
          Time of peak within a detection, in msec.
private  java.util.Vector<T> subDetections
           
private  java.lang.Object subDetectionSyncronisation
           
private  java.util.Vector<U> superDetections
           
private  java.lang.Object superDetectionSyncronisation
           
 
Fields inherited from class PamDetection.AcousticDataUnit
AMPLITUDE_SCALE_DBREMPA, AMPLITUDE_SCALE_LINREFSD, duration, frequency, startSample
 
Fields inherited from class PamguardMVC.PamDataUnit
absBlockIndex, channelBitmap, localisation, oLL, timeMilliseconds
 
Constructor Summary
PamDetection(long timeMilliseconds, int channelBitmap, long startSample, long duration)
           
 
Method Summary
 void addSubDetection(T subDetection)
          Add a sub detection to the sub detection list.
 void addSuperDetection(U superDetection)
           
 java.lang.String getDetectionType()
           
 double getPeakTime()
           
 T getSubDetection(int ind)
           
 int getSubDetectionsCount()
           
 java.lang.Object getSubDetectionSyncronisation()
           
 U getSuperDetection(java.lang.Class superClass)
           
 U getSuperDetection(int ind)
           
 int getSuperDetectionsCount()
           
 java.lang.Object getSuperDetectionSyncronisation()
           
 void removeSubDetection(T subDetection)
           
 void removeSuperDetection(U superDetection)
           
 void setDetectionType(java.lang.String detectionType)
           
 void setPeakTime(double peakTimeMsec)
           
 void setUniqueSuperDetection(U superDetection)
          Sets a unique super detection.
 
Methods inherited from class PamDetection.AcousticDataUnit
amplifyMeasuredAmplitudeByDB, amplifyMeasuredAmplitudeByLinear, compareTo, getAmplitudeDB, getCalculatedAmlitudeDB, getDuration, getFrequency, getFrequencyOverlap, getLastSample, getMeasuredAmplitude, getMeasuredAmplitudeType, getSeconds, getStartSample, getTimeOverlap, setCalculatedAmlitudeDB, setDuration, setFrequency, setInfo, setMeasuredAmplitude, setMeasuredAmplitude, setMeasuredAmplitudeType, setStartSample
 
Methods inherited from class PamguardMVC.PamDataUnit
clearUpdateCount, getAbsBlockIndex, getChannelBitmap, getDatabaseIndex, getDatabaseUpdateOf, getDataUnitFileInformation, getGpsPosition, getLastUpdateTime, getLocalisation, getOriginLatLong, getPairAngle, getParentDataBlock, getTimeMilliseconds, getUpdateCount, setAbsBlockIndex, setChannelBitmap, setDatabaseIndex, setDatabaseUpdateOf, setDataUnitFileInformation, setLastUpdateTime, setLocalisation, setOriginLatLong, setParentDataBlock, setTimeMilliseconds, updateDataUnit
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

peakTime

private double peakTime
Time of peak within a detection, in msec. relative to the start of the PAMGUARD run


detectionType

java.lang.String detectionType

subDetections

private java.util.Vector<T extends PamDetection> subDetections

superDetections

private java.util.Vector<U extends PamDetection> superDetections

subDetectionSyncronisation

private java.lang.Object subDetectionSyncronisation

superDetectionSyncronisation

private java.lang.Object superDetectionSyncronisation
Constructor Detail

PamDetection

public PamDetection(long timeMilliseconds,
                    int channelBitmap,
                    long startSample,
                    long duration)
Method Detail

getPeakTime

public double getPeakTime()
Returns:
Returns the peakTime, in msec. relative to the start of the PAMGUARD run

setPeakTime

public void setPeakTime(double peakTimeMsec)
Parameters:
peakTimeMsec - The peakTime to set, in msec. relative to the start of the PAMGUARD run.

getDetectionType

public java.lang.String getDetectionType()
Returns:
Returns the detectionType.

setDetectionType

public void setDetectionType(java.lang.String detectionType)
Parameters:
detectionType - The detectionType to set.

addSubDetection

public void addSubDetection(T subDetection)
Add a sub detection to the sub detection list.

Parameters:
subDetection -

setUniqueSuperDetection

public void setUniqueSuperDetection(U superDetection)
Sets a unique super detection. i.e. if the data unit already had a super detection of the same class, then this data unit is removed from that pre-existing superdetection.

Parameters:
superDetection -

addSuperDetection

public void addSuperDetection(U superDetection)

getSubDetectionsCount

public int getSubDetectionsCount()

getSuperDetectionsCount

public int getSuperDetectionsCount()

getSubDetection

public T getSubDetection(int ind)

getSuperDetection

public U getSuperDetection(java.lang.Class superClass)

getSuperDetection

public U getSuperDetection(int ind)

removeSubDetection

public void removeSubDetection(T subDetection)

removeSuperDetection

public void removeSuperDetection(U superDetection)

getSubDetectionSyncronisation

public java.lang.Object getSubDetectionSyncronisation()

getSuperDetectionSyncronisation

public java.lang.Object getSuperDetectionSyncronisation()