public class AbstractTargetMotionInformation extends java.lang.Object implements TargetMotionInformation
Constructor and Description |
---|
AbstractTargetMotionInformation(java.util.ArrayList<PamDetection> detections,
PamDataBlock pamDataBlock) |
Modifier and Type | Method and Description |
---|---|
static java.util.ArrayList<java.lang.Integer> |
checkStreamers(java.util.ArrayList<PamDetection> currentDetections)
Check which streamer we have in the group of detections
|
GpsData |
getBeamLatLong(LatLong localised)
Calculate the beam latitude and longitude.
|
long |
getBeamTime(GpsData beamLatLong)
Calculate the beam time.
|
java.util.ArrayList<PamDetection> |
getCurrentDetections()
Returns the pamDetections which will be used for this target motion localisation.
|
PamQuaternion[] |
getEulerAngles()
Get the Euler angles for each detection.
|
LatLong |
getGPSReference()
The GPS point which corresponds to (0,0,0).
|
static PamVector[] |
getHeadingVectors(PamQuaternion[] eulerAngles)
This is a piece of code designed to bridge the gap between using Euler angles and heading angles.
|
java.util.ArrayList<java.util.ArrayList<javax.vecmath.Point3f>> |
getHydrophonePos()
Returns the positions of the hydrophones, relative to (0,0,0) for every pamDetection
|
int |
getNDetections()
The number of detections to be used in this target motion.
|
TMManager.TMInfoWorker |
getObserverThread() |
PamVector[] |
getOrigins()
Returns the origin of the hydrophone array for each detection point- this is in meters relative to 0,0,0;
|
int |
getReferenceHydrophones() |
java.util.ArrayList<java.util.ArrayList<java.lang.Double>> |
getTimeDelayErrors()
Returns the time delay errors for each detection.
|
java.util.ArrayList<java.util.ArrayList<java.lang.Double>> |
getTimeDelays()
Returns the time delays for each detection.
|
java.lang.Long |
getTimeMillis()
Return average time for the target motion event.
|
PamVector[][] |
getWorldVectors()
The real world vectors for each detection.
|
PamVector |
latLongToMetres(LatLong ll) |
LatLong |
metresToLatLong(PamVector pt)
Convert a point in your cartesian co-ordinate frame
|
void |
setObserverThread(TMManager.TMInfoWorker observerThread) |
public AbstractTargetMotionInformation(java.util.ArrayList<PamDetection> detections, PamDataBlock pamDataBlock)
public int getNDetections()
TargetMotionInformation
getNDetections
in interface TargetMotionInformation
public PamQuaternion[] getEulerAngles()
TargetMotionInformation
Note on Euler Angles:
We need to know the position and depth of the array but we also must know the rotation of the array. It would be nice to store the rotation as vector, however a unit vector cannot describe fully the rotation of the array. e.g say we have the unit vector (-0.71 0.0 0.71), this would describe a heading of 270 and pitch of 45 degrees. However this unit vector tells us nothing about the roll (tilt) of the array. This is because we had to start off with a unit vector (0,1,0) to rotate to begin with. We can transform co-ordinate systems all we want but a unit vector will only ever tell us two Euler angles. Hence we have to store euler angles as a PamQuaternion not a PamVector.
getEulerAngles
in interface TargetMotionInformation
PamQuaternion
public java.util.ArrayList<java.util.ArrayList<java.lang.Double>> getTimeDelays()
TargetMotionInformation
getTimeDelays
in interface TargetMotionInformation
public java.util.ArrayList<java.util.ArrayList<java.lang.Double>> getTimeDelayErrors()
TargetMotionInformation
getTimeDelayErrors
in interface TargetMotionInformation
public java.util.ArrayList<java.util.ArrayList<javax.vecmath.Point3f>> getHydrophonePos()
TargetMotionInformation
getHydrophonePos
in interface TargetMotionInformation
public java.util.ArrayList<PamDetection> getCurrentDetections()
TargetMotionInformation
getCurrentDetections
in interface TargetMotionInformation
public PamVector[] getOrigins()
TargetMotionInformation
getOrigins
in interface TargetMotionInformation
public LatLong getGPSReference()
TargetMotionInformation
getGPSReference
in interface TargetMotionInformation
public PamVector[][] getWorldVectors()
TargetMotionInformation
getWorldVectors
in interface TargetMotionInformation
public LatLong metresToLatLong(PamVector pt)
TargetMotionInformation
metresToLatLong
in interface TargetMotionInformation
public PamVector latLongToMetres(LatLong ll)
latLongToMetres
in interface TargetMotionInformation
public int getReferenceHydrophones()
getReferenceHydrophones
in interface TargetMotionInformation
public java.lang.Long getTimeMillis()
getTimeMillis
in interface TargetMotionInformation
public static PamVector[] getHeadingVectors(PamQuaternion[] eulerAngles)
eulerAngles
- public static java.util.ArrayList<java.lang.Integer> checkStreamers(java.util.ArrayList<PamDetection> currentDetections)
public TMManager.TMInfoWorker getObserverThread()
public void setObserverThread(TMManager.TMInfoWorker observerThread)
public GpsData getBeamLatLong(LatLong localised)
TargetMotionInformation
getBeamLatLong
in interface TargetMotionInformation
public long getBeamTime(GpsData beamLatLong)
getBeamTime
in interface TargetMotionInformation
beamLatLong-
- the beam lat long.