Class LSQBearingLocaliser

java.lang.Object
Localiser.algorithms.timeDelayLocalisers.bearingLoc.LSQBearingLocaliser
All Implemented Interfaces:
BearingLocaliser, LocalisationAlgorithm, LocalisationAlgorithmInfo

public class LSQBearingLocaliser extends Object implements BearingLocaliser
  • Constructor Details

    • LSQBearingLocaliser

      public LSQBearingLocaliser(int hydrophoneBitMap, long timeMillis, double timingError)
  • Method Details

    • getLocalisationContents

      public int getLocalisationContents()
      Description copied from interface: LocalisationAlgorithmInfo
      Get the likely content flags for this localiser.
      Specified by:
      getLocalisationContents in interface LocalisationAlgorithmInfo
      Returns:
      localisation flags.
      See Also:
    • prepare

      public void prepare(int[] arrayElements, long timeMillis, double timingError)
      Description copied from interface: BearingLocaliser
      Do any preparation necessary (e.g. creation of look up tables)
      Specified by:
      prepare in interface BearingLocaliser
      Parameters:
      arrayElements - list of hydrophone array elements in the sub array for this localiser.
      timeMillis - , current time for this localisation
      timingError - expected timing error for each measurement (typically 1/12 of an ADC bin, or less if interpolation is being used in the cross correlation function).
    • getArrayType

      public int getArrayType()
      Specified by:
      getArrayType in interface BearingLocaliser
      Returns:
      the type of array - linear, planar, volumetric, etc.
    • getHydrophoneMap

      public int getHydrophoneMap()
      Description copied from interface: BearingLocaliser
      Get a hydrophone map for this localiser
      Specified by:
      getHydrophoneMap in interface BearingLocaliser
      Returns:
      bitmap of used hydrophones.
    • getArrayAxis

      public PamVector[] getArrayAxis()
      Description copied from interface: BearingLocaliser
      Get the principle axis of the array
      Specified by:
      getArrayAxis in interface BearingLocaliser
      Returns:
      for a linear array this will be a vector along the array;

      for a planar array, this will be the vector on the plane between two hydrophones which is closest to the y axis.

    • localise

      public double[][] localise(double[] delays, long timeMillis)
      Description copied from interface: BearingLocaliser
      Calculate angles theta and phi, based on a set of delays. The number of delays should be equal to n(n-1)/2 where n is the number of hydrophone elements in the sub array.
      Specified by:
      localise in interface BearingLocaliser
      Parameters:
      delays - array of delay times.
      timeMillis - of this detection. This is relatively unused except in situation where hydrophone elements are moving relative to each other with time.
      Returns:
      theta, phi and their estimated errors all in radians.

      Data are packed into a two row array, the first row of which contains one or two angles, the second (optional) row contains the errors on those angles.

    • logLikelihood

      public double logLikelihood(double[] delays, double angle0, double angle1)
      Log likelihood function
      Parameters:
      delays - time delays
      angle0 - horizontal angle
      angle1 - vertical angle
      Returns:
      log likelihood based on an estimate of errors.
    • logLikelihood

      public double logLikelihood(double[] delays, double[] angles)
      Calculate a log likelihood for a given pair of angles
      Parameters:
      delays - actual delays
      angles - angles, horizontal and vertical.
      Returns:
    • logLikelihood

      public double logLikelihood(double[] delays, Jama.Matrix whaleVector)
      Calculate a log likelihood for a given whale vector.
      Parameters:
      delays - actual delays
      whaleVector - estimated whale vector.
      Returns:
    • getAlgorithmName

      public String getAlgorithmName()
      Description copied from interface: LocalisationAlgorithmInfo
      Get the algorithm name
      Specified by:
      getAlgorithmName in interface LocalisationAlgorithmInfo
      Returns:
      algorithm name
    • getParameters

      public Serializable getParameters()
      Description copied from interface: LocalisationAlgorithmInfo
      Get the algorithm parameters. Something else can turn these into xml for Tethys.
      Specified by:
      getParameters in interface LocalisationAlgorithmInfo
      Returns:
      algorithm parameters object. Might be null;
    • getAlgorithmInfo

      public LocalisationAlgorithmInfo getAlgorithmInfo()
      Description copied from interface: LocalisationAlgorithm
      Get information about the localisation algorithm.
      Specified by:
      getAlgorithmInfo in interface LocalisationAlgorithm
      Returns:
      algorithm information.
    • getTethysCreator

      public LocalizationCreator getTethysCreator()
      Description copied from interface: LocalisationAlgorithm
      Get something that can make LocalisationType objects of a form a bit bespoke to the type of localiser. This may be better than having the standard functions in LocalizationBuilder guess what's best.
      Specified by:
      getTethysCreator in interface LocalisationAlgorithm
      Returns:
      can be null in which case standard functions will do the best they can.