Class HyperbolicLocaliser

All Implemented Interfaces:
LocaliserModel<PamDataUnit>

public class HyperbolicLocaliser extends TOADBaseAlgorithm
Hyperbolic localisation using methods described in Gillette, M. D., and Silverman, H. F. (2008). �A linear closed-form algorithm for source localization from time-differences of arrival,� IEEE Signal Processing Letters, 15, 1�4.

Also worth reading Spiesberger, J. L. (2001). �Hyperbolic location errors due to insufficient numbers of receivers,� The Journal of the Acoustical Society of America, 109, 3076�3079. which gives a clearer explanation of why at least 4 recievers are needed for 2D localisation and 5 for 3D localisation.

Worth noting that the equations derived in Gillette 2008 are functionally identical to those in Spiesberger 2001 and an earlier work by Speisberger and Fristrup:
Spiesberger, J. L., and Fristrup, K. M. (1990). �Passive localization of calling animals and sensing of their acoustic environment using acoustic tomography,� The american naturalist, 135, 107�153.

Author:
Doug Gillespie
  • Constructor Details

  • Method Details

    • processTOADs

      public AbstractLocalisation processTOADs(PamDataUnit groupDataUnit, SnapshotGeometry geometry, TOADInformation toadInformation)
      Description copied from class: TOADBaseAlgorithm
      Process the list of delays, which are in seconds
      Specified by:
      processTOADs in class TOADBaseAlgorithm
      Parameters:
      groupDataUnit - group data unit.
      toadInformation - all information on delays, errors, channels, etc.
      Returns:
    • calcErrors

      public GroupLocResult calcErrors(GroupLocResult loclaisation, PamDataUnit groupDataUnit, SnapshotGeometry geometry, TOADInformation toadInformation, HyperbolicParams params)
      Calculate and add the errors in source position. This is achieved by sampling a random number from the time delay error distributions, localising and looking at the distribution in position of localisation results.
      Parameters:
      loclaisation - - the localisation result.
      params - - hyperbolic params object with settings for error calculations.
      timeDelays - - object containing time delay data.
      hydrophonePos - - the hydrophone positions.
      Returns:
      the loclaisation object iwth errors added.
    • calcErrors

      public double[] calcErrors(PamDataUnit groupDataUnit, SnapshotGeometry geometry, TOADInformation toadInformation, HyperbolicParams params)
      Calculate the errors in source position. This is achieved by sampling a random number from the time delay error distributions, localising and looking at the distribution in position of localisation results.
      Parameters:
      params - - hyperbolic params object with settings for error calculations.
      timeDelays - - object containing time delay data.
      hydrophonePos - - the hydrophone positions.
      Returns:
      the errors in meters
    • getName

      public String getName()
      Description copied from interface: LocaliserModel
      Get the name which describes the localiser.
      Returns:
      the name of the localiser.
    • getSQLLoggingAddon

      public SQLLoggingAddon getSQLLoggingAddon(int arrayType)
      Description copied from class: LocaliserAlgorithm3D
      Get SQL Logging Addon data to append to the basic database table
      Specified by:
      getSQLLoggingAddon in class LocaliserAlgorithm3D
      Parameters:
      arrayType - type of array - which may affect how logging is organised.
      Returns:
      SQL Logging information.
    • getLastPosVector

      public double[] getLastPosVector()
      Returns:
      the lastPosVector
    • getToolTipText

      public String getToolTipText()
    • getLocContents

      public LocContents getLocContents()
      Description copied from interface: LocaliserModel
      The type of localisation information the localiser can accept. e.g. bearings, time delays etc. The types are defined in the AbstractLocalisation class.
      Returns:
      integer bitmap of the type of localisation information the localiser can use.
    • getAlgorithmSettingsPane

      public LocaliserPane getAlgorithmSettingsPane()
      Description copied from class: LocaliserAlgorithm3D
      Get an algorithm specific settings pane. This holds settings which are specific to the localisation algorithm.
      Specified by:
      getAlgorithmSettingsPane in interface LocaliserModel<PamDataUnit>
      Overrides:
      getAlgorithmSettingsPane in class LocaliserAlgorithm3D
      Returns:
      the settings pane for the localiser.
    • hasParams

      public boolean hasParams()
      Description copied from interface: LocaliserModel
      True if the model has parameters to set. If has the localiser has a settings pane it will have parameters. This generally puts an extra button onto a display panel.
    • notifyModelProgress

      public void notifyModelProgress(double progress)
      Description copied from interface: LocaliserModel
      This should be called whenever the localiser has finished processing and, if the localisation process is long, then updates progress.