IshmaelLocator
Class IshLocHyperbProcess

java.lang.Object
  extended by PamguardMVC.PamProcess
      extended by IshmaelLocator.IshLocProcess
          extended by IshmaelLocator.IshLocHyperbProcess
All Implemented Interfaces:
Annotator, PamObserver, SpectrogramMarkObserver

public class IshLocHyperbProcess
extends IshLocProcess

Two-hydrophone bearing calculation.

Author:
Dave Mellinger

Nested Class Summary
(package private)  class IshLocHyperbProcess.TimeDiff_LM
          Functions for running the LM algorithm.
 
Field Summary
(package private)  Correlations correlations
           
(package private)  double[][] deltaTime
           
(package private)  double[] freqRange
           
(package private)  int nDim
           
(package private)  int nPairs
           
 
Fields inherited from class IshmaelLocator.IshLocProcess
arraygeom, c, hydlist, inputData, ishLocControl, outputDataBlock, v1, v2
 
Fields inherited from class PamguardMVC.PamProcess
outputDataBlocks, processName, sampleRate
 
Fields inherited from interface Spectrogram.SpectrogramMarkObserver
MOUSE_DOWN, MOUSE_UP
 
Constructor Summary
IshLocHyperbProcess(IshLocControl ishLocControl)
           
 
Method Summary
(package private)  IshLocalisation calcData(PamDetection outputUnit, int referencePhones, double[][] selectionSams, double rawSampleRate, double f0, double f1)
          Calculate the location of the sound source.
 java.lang.String getName()
           
(package private)  double[] initialGuess(IshLocHyperbProcess.TimeDiff_LM lm)
          Find a starting point (initial guess) for the LM algorithm.
 
Methods inherited from class IshmaelLocator.IshLocProcess
doLocalisation, getInputDataBlock, getMarkObserverName, newData, pamStart, pamStop, prepareMyParams, setParentDataBlock, setupConnections, spectrogramNotification
 
Methods inherited from class PamguardMVC.PamProcess
absMillisecondsToSamples, absSamplesToMilliseconds, addOutputDataBlock, changedThreading, clearOldData, createAnnotations, destroyProcess, fillXMLElement, fillXMLParameters, getAncestorDataBlock, getAnnotation, getBackendProcess, getChainPosition, getCpuPercent, getNumAnnotations, getNumOutputDataBlocks, getObserverName, getObserverObject, getOfflineData, getOutputDataBlock, getPamControlledUnit, getParentDataBlock, getParentProcess, getProcessName, getRawSourceDataBlock, getRequiredDataHistory, getSampleRate, getSourceDataBlock, getSourceProcess, isCanMultiThread, makePamProcess, masterClockUpdate, noteNewSettings, notifyModelChanged, prepareProcess, relMillisecondsToSamples, relSamplesToMilliseconds, removeObservable, removeOutputDatablock, saveViewerData, setBackendProcess, setCanMultiThread, setParentDataBlock, setProcessName, setSampleRate, setupProcess, toString, update, updateData
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

freqRange

double[] freqRange

deltaTime

double[][] deltaTime

nPairs

int nPairs

nDim

int nDim

correlations

Correlations correlations
Constructor Detail

IshLocHyperbProcess

public IshLocHyperbProcess(IshLocControl ishLocControl)
Method Detail

getName

public java.lang.String getName()
Specified by:
getName in class IshLocProcess

calcData

IshLocalisation calcData(PamDetection outputUnit,
                         int referencePhones,
                         double[][] selectionSams,
                         double rawSampleRate,
                         double f0,
                         double f1)
                   throws noLocationFoundException
Calculate the location of the sound source. this.arraygeom is set upon entry to the hydrophone positions.

Specified by:
calcData in class IshLocProcess
Throws:
noLocationFoundException

initialGuess

double[] initialGuess(IshLocHyperbProcess.TimeDiff_LM lm)
Find a starting point (initial guess) for the LM algorithm. Try a 20x20 grid of points centered on the middle of the phone array and 3 times as wide as the array. The gridpoint with the lowest sum-squared error becomes the initial guess.

Returns:
a 2- or 3-D coordinate vector with the starting point for the LM algorithm.