Class ConnectedRegion

java.lang.Object
whistlesAndMoans.ConnectedRegion
All Implemented Interfaces:
Cloneable

public class ConnectedRegion extends Object implements Cloneable
  • Constructor Details

    • ConnectedRegion

      public ConnectedRegion(int channel, int firstSlice, int regionNumber, int height)
      Constructor used during initial region detection process.
      Parameters:
      channel - channel number
      firstSlice - first slice number
      regionNumber - region number
      height - fft length
    • ConnectedRegion

      public ConnectedRegion(ConnectedRegion oldRegion, SliceData oldSlice, int peakNumber, int nJoinedStart)
      Constructor to create a new connected region during fragmentation. Constructor starts by making a single peak in a single slice.
      Parameters:
      oldRegion - old mother region which is being fragmented
      peakNumber - peak number in the slice
      nJoinedStart - number of contours that joined this one before the were fragmented.
      sliceData - start slice in the old region
  • Method Details

    • extendRegion

      public void extendRegion(SliceData oldSlice, int peakNumber)
      Extend a region during fragmentation taking a single peak from a new slice.
      Parameters:
      oldSlice - reference to slice in old unit
      peakNumber - number of peak to copy
    • addOfflineSlice

      public void addOfflineSlice(SliceData newSlice)
      Add in a slice during offline mode.
      Parameters:
      i - slice number (or slice index as it's read back !
      peakInfo -
    • checkRepeatslices

      public boolean checkRepeatslices()
      Check for slices repeating twice.
      Returns:
    • resetRegion

      public void resetRegion(int channel, int firstSlice, int regionNumber, int height)
      Prepare a region for re-use (saves some time reallocating the object if they were only used very briefly).
      Parameters:
      channel -
      firstSlice -
      regionNumber -
      height -
    • addPixel

      public void addPixel(int iCol, int iRow, FFTDataUnit fftDataUnit)
    • mergeRegion

      public void mergeRegion(ConnectedRegion region)
      Merge another region into this region and then tell the array of regions that all references to that other region now refer to this one.
      Parameters:
      region - other region
      regionArray - array of region references to update.
    • mergeFragmentedRegion

      public void mergeFragmentedRegion(ConnectedRegion r2)
      for merging two regions during the fragmentation process. Can be assumed that all slices in r2 come AFTER those in this.
      Parameters:
      r2 -
    • recycle

      public void recycle()
    • condenseInfo

      public void condenseInfo()
      Go through the data and remove create triplets of into about each part of each slice in the region. Called durign initial detection, not after refragmentation of complex shapes.
    • cleanFragmentedFragment

      public void cleanFragmentedFragment()
      similar to condenseInfo, but for refragmetned fragments.
    • isGrowing

      public boolean isGrowing()
    • setGrowing

      public void setGrowing(boolean growing)
    • getChannel

      public int getChannel()
    • getRegionNumber

      public int getRegionNumber()
    • getFirstSlice

      public int getFirstSlice()
    • getSliceHeight

      public int getSliceHeight()
    • getSliceData

      public List<SliceData> getSliceData()
    • getNumSlices

      public int getNumSlices()
    • getTotalPixels

      public int getTotalPixels()
    • getStartMillis

      public long getStartMillis()
    • getDuration

      public long getDuration()
    • getStartSample

      public long getStartSample()
    • sayRegion

      public void sayRegion()
    • calculateRMSAmplitude

      public double calculateRMSAmplitude()
    • getFreqRange

      public int[] getFreqRange()
    • getMaxPeaks

      public int getMaxPeaks()
    • getPeakFreqsBins

      public int[] getPeakFreqsBins()
    • getTimesBins

      public int[] getTimesBins()
    • getFirstSliceData

      public SliceData getFirstSliceData()
    • getLastSliceData

      public SliceData getLastSliceData()
    • setNJoinedStart

      public void setNJoinedStart(int nJoinedStart)
      Parameters:
      nJoinedStart - the nJoinedStart to set
    • getNJoinedStart

      public int getNJoinedStart()
      Returns:
      the nJoinedStart
    • setNJoinedEnd

      public void setNJoinedEnd(int nJoinedEnd)
      Parameters:
      nJoinedEnd - the nJoinedEnd to set
    • getNJoinedEnd

      public int getNJoinedEnd()
      Returns:
      the nJoinedEnd
    • getStartGradient

      public double getStartGradient(int nBins)
      Gradient at the start of the shape for the first peak in pixels per pixel.
      Used for rapid region matching in RejoiningFragmenter
      Parameters:
      nBins - number of bins to measure over.
      Returns:
      gradient.
    • getEndGradient

      public double getEndGradient(int nBins)
      Gradient at the end of the shape for the first peak in pixels per pixel.
      Used for rapid region matching in RejoiningFragmenter
      Parameters:
      nBins - number of bins to measure over.
      Returns:
      gradient.
    • isCross

      public boolean isCross(int maxCrossLength)
      Returns:
      true if two or more whistles cross in this region
    • isMerge

      public boolean isMerge(int maxCrossLength)
      Returns:
      true if two or more whistles merged into this Region
    • isSplit

      public boolean isSplit(int maxCrossLength)
      Returns:
      true if this region splits into two or more parts
    • isRightMess

      public boolean isRightMess()
      Returns:
      true if > 2 sounds joined this region at the start and > 2 left at the end, but they were not the same number of sounds.