public interface TargetMotionInformation
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
|
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
|
java.util.ArrayList<PamDetection> getCurrentDetections()
int getNDetections()
java.util.ArrayList<java.util.ArrayList<java.lang.Double>> getTimeDelays()
java.util.ArrayList<java.util.ArrayList<java.lang.Double>> getTimeDelayErrors()
PamVector[] getOrigins()
PamVector[][] getWorldVectors()
PamQuaternion[] getEulerAngles()
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.
PamQuaternion
java.util.ArrayList<java.util.ArrayList<javax.vecmath.Point3f>> getHydrophonePos()
LatLong getGPSReference()
PamVector latLongToMetres(LatLong ll)
ll-
- the GPS Co-Ordinaterotate
- LatLong metresToLatLong(PamVector pt)
pt
- isRotated
- int getReferenceHydrophones()
java.lang.Long getTimeMillis()
GpsData getBeamLatLong(LatLong localised)
localised-
- localisation result to find beam lat long for.long getBeamTime(GpsData beamPos)
beamPos-
- the beam lat long.