public class DIFARTargetMotionInformation extends java.lang.Object implements TargetMotionInformation
Constructor and Description |
---|
DIFARTargetMotionInformation(DifarProcess difarProcess,
java.util.ArrayList<PamDetection> difarDataUnits) |
Modifier and Type | Method and Description |
---|---|
GpsData |
getBeamLatLong(LatLong localised)
Calculate the beam latitude and longitude.
|
long |
getBeamTime(GpsData beamPos)
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).
|
java.util.ArrayList<java.util.ArrayList<javax.vecmath.Point3f>> |
getHydrophonePos()
Returns the positions of the hydrophones, relative to (0,0,0) for every pamDetection
|
double[] |
getMeanPosition() |
int |
getNDetections()
The number of detections to be used in this target motion.
|
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()
Get a time for the detection (usually an average of all the individual detectiopns)
|
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
|
public DIFARTargetMotionInformation(DifarProcess difarProcess, java.util.ArrayList<PamDetection> difarDataUnits)
public double[] getMeanPosition()
public java.util.ArrayList<PamDetection> getCurrentDetections()
TargetMotionInformation
getCurrentDetections
in interface TargetMotionInformation
public int getNDetections()
TargetMotionInformation
getNDetections
in interface TargetMotionInformation
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 PamVector[] getOrigins()
TargetMotionInformation
getOrigins
in interface TargetMotionInformation
public PamVector[][] getWorldVectors()
TargetMotionInformation
getWorldVectors
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<javax.vecmath.Point3f>> getHydrophonePos()
TargetMotionInformation
getHydrophonePos
in interface TargetMotionInformation
public LatLong getGPSReference()
TargetMotionInformation
getGPSReference
in interface TargetMotionInformation
public PamVector latLongToMetres(LatLong ll)
latLongToMetres
in interface TargetMotionInformation
public LatLong metresToLatLong(PamVector pt)
TargetMotionInformation
metresToLatLong
in interface TargetMotionInformation
public int getReferenceHydrophones()
getReferenceHydrophones
in interface TargetMotionInformation
public java.lang.Long getTimeMillis()
TargetMotionInformation
getTimeMillis
in interface TargetMotionInformation
public GpsData getBeamLatLong(LatLong localised)
TargetMotionInformation
getBeamLatLong
in interface TargetMotionInformation
public long getBeamTime(GpsData beamPos)
TargetMotionInformation
getBeamTime
in interface TargetMotionInformation