Class HyperbolicLocaliser
java.lang.Object
group3dlocaliser.algorithm.LocaliserAlgorithm3D
group3dlocaliser.algorithm.toadbase.TOADBaseAlgorithm
group3dlocaliser.algorithm.hyperbolic.HyperbolicLocaliser
- All Implemented Interfaces:
LocaliserModel<PamDataUnit>
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
-
Nested Class Summary
Nested classes/interfaces inherited from class group3dlocaliser.algorithm.toadbase.TOADBaseAlgorithm
TOADBaseAlgorithm.MultiVariateType -
Field Summary
Fields inherited from class group3dlocaliser.algorithm.toadbase.TOADBaseAlgorithm
group3dLocaliser -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncalcErrors(GroupLocResult loclaisation, PamDataUnit groupDataUnit, SnapshotGeometry geometry, TOADInformation toadInformation, HyperbolicParams params) Calculate and add the errors in source position.double[]calcErrors(PamDataUnit groupDataUnit, SnapshotGeometry geometry, TOADInformation toadInformation, HyperbolicParams params) Calculate the errors in source position.Get an algorithm specific settings pane.double[]The type of localisation information the localiser can accept.getName()Get the name which describes the localiser.getSQLLoggingAddon(int arrayType) Get SQL Logging Addon data to append to the basic database tablebooleanTrue if the model has parameters to set.voidnotifyModelProgress(double progress) This should be called whenever the localiser has finished processing and, if the localisation process is long, then updates progress.processTOADs(PamDataUnit groupDataUnit, SnapshotGeometry geometry, TOADInformation toadInformation) Process the list of delays, which are in secondsMethods inherited from class group3dlocaliser.algorithm.toadbase.TOADBaseAlgorithm
calcChi2, calcLogLikelihood, canLocalise, checkTOADInformation, countUsableTOADS, countUsableTOADS, estimateCartesianError, estimateEllipticalError, getSourceSettingsPane, getToadBaseParams, prepare, runModelMethods inherited from class group3dlocaliser.algorithm.LocaliserAlgorithm3D
canArrayShape, getGroupChannelMap, preFilterLoc, setLocaliserParams
-
Constructor Details
-
HyperbolicLocaliser
-
-
Method Details
-
processTOADs
public AbstractLocalisation processTOADs(PamDataUnit groupDataUnit, SnapshotGeometry geometry, TOADInformation toadInformation) Description copied from class:TOADBaseAlgorithmProcess the list of delays, which are in seconds- Specified by:
processTOADsin classTOADBaseAlgorithm- Parameters:
groupDataUnit- group data unit.geometry-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
Description copied from interface:LocaliserModelGet the name which describes the localiser.- Returns:
- the name of the localiser.
-
getSQLLoggingAddon
Description copied from class:LocaliserAlgorithm3DGet SQL Logging Addon data to append to the basic database table- Specified by:
getSQLLoggingAddonin classLocaliserAlgorithm3D- Parameters:
arrayType- type of array - which may affect how logging is organised.- Returns:
- SQL Logging information.
-
getLastPosVector
public double[] getLastPosVector()- Returns:
- the lastPosVector
-
getToolTipText
-
getLocContents
Description copied from interface:LocaliserModelThe 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
Description copied from class:LocaliserAlgorithm3DGet an algorithm specific settings pane. This holds settings which are specific to the localisation algorithm.- Specified by:
getAlgorithmSettingsPanein interfaceLocaliserModel<PamDataUnit>- Overrides:
getAlgorithmSettingsPanein classLocaliserAlgorithm3D- Returns:
- the settings pane for the localiser.
-
hasParams
public boolean hasParams()Description copied from interface:LocaliserModelTrue 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:LocaliserModelThis should be called whenever the localiser has finished processing and, if the localisation process is long, then updates progress.
-