Package difar
Class DIFARTargetMotionInformation
java.lang.Object
difar.DIFARTargetMotionInformation
- All Implemented Interfaces:
TargetMotionInformation
-
Constructor Summary
ConstructorDescriptionDIFARTargetMotionInformation
(DifarProcess difarProcess, ArrayList<PamDataUnit> difarDataUnits) -
Method Summary
Modifier and TypeMethodDescriptiongetBeamLatLong
(LatLong localised) Calculate the beam latitude and longitude.long
getBeamTime
(GpsData beamPos) Calculate the beam time.Returns the pamDetections which will be used for this target motion localisation.Get the Euler angles for each detection.The GPS point which corresponds to (0,0,0).Returns the positions of the hydrophones, relative to (0,0,0) for every pamDetectiondouble[]
int
The number of detections to be used in this target motion.Returns the origin of the hydrophone array for each detection point- this is in meters relative to 0,0,0;int
Returns the time delay errors for each detection.Returns the time delays for each detection.Get a time for the detection (usually an average of all the individual detectiopns)PamVector[][]
The real world vectors for each detection.Convert a point in your cartesian co-ordinate frame
-
Constructor Details
-
DIFARTargetMotionInformation
public DIFARTargetMotionInformation(DifarProcess difarProcess, ArrayList<PamDataUnit> difarDataUnits)
-
-
Method Details
-
getMeanPosition
public double[] getMeanPosition()- Returns:
- the mean position of all buoys in x,y coordinates.
-
getCurrentDetections
Description copied from interface:TargetMotionInformation
Returns the pamDetections which will be used for this target motion localisation.- Specified by:
getCurrentDetections
in interfaceTargetMotionInformation
- Returns:
- a list fo the current detections to be localised with target motion algorithms
-
getNDetections
public int getNDetections()Description copied from interface:TargetMotionInformation
The number of detections to be used in this target motion.- Specified by:
getNDetections
in interfaceTargetMotionInformation
- Returns:
- the number of detections we have in total getCurrentDetection().size();
-
getTimeDelays
Description copied from interface:TargetMotionInformation
Returns the time delays for each detection. The number of time delays per detection is going to be based on the number of hydrophones in the array.- Specified by:
getTimeDelays
in interfaceTargetMotionInformation
- Returns:
- a list of time delays. Each ArrayList
corresponds to the time delays calculated from a PamDtection,. Time delays are related to channel numbers by the indexM1 and indexM2 functions in AbstractLocalisation.
-
getTimeDelayErrors
Description copied from interface:TargetMotionInformation
Returns the time delay errors for each detection. This should be based on the uncertainty in spacing between hydrophones for target motion analysis.- Specified by:
getTimeDelayErrors
in interfaceTargetMotionInformation
- Returns:
- a list of time delay errors. Each ArrayList
corresponds to the time delays calculated from a PamDtection,. Time delays are related to channel numbers by the indexM1 and indexM2 functions in AbstractLocalisation.
-
getOrigins
Description copied from interface:TargetMotionInformation
Returns the origin of the hydrophone array for each detection point- this is in meters relative to 0,0,0;- Specified by:
getOrigins
in interfaceTargetMotionInformation
- Returns:
- the vector of a PamDetections origin were (0,0,0) is the origin.
-
getWorldVectors
Description copied from interface:TargetMotionInformation
The real world vectors for each detection. There may be an ambiguity in the vectors in which case we would have two world vectors per detections e.g. for a stereo array there are two bearings whilst for a 3D towed array there would usually be only one three dimensional bearing.- Specified by:
getWorldVectors
in interfaceTargetMotionInformation
- Returns:
- a 2D array of world vectors corresponding to each pamDetection in the currentDetectionsGroup.
-
getEulerAngles
Description copied from interface:TargetMotionInformation
Get the Euler angles for each detection. We are assumming that any pamDetection used for the target motion localiser will be from a group which is within a rigid array. Hence the hydrophones within that array will all have the same euler angles.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.
- Specified by:
getEulerAngles
in interfaceTargetMotionInformation
- Returns:
- PamQuaternion angles for each PamDetection.
- See Also:
-
getHydrophonePos
Description copied from interface:TargetMotionInformation
Returns the positions of the hydrophones, relative to (0,0,0) for every pamDetection- Specified by:
getHydrophonePos
in interfaceTargetMotionInformation
- Returns:
- a list of hydrophone positions. Each invalid input: '<'ArrayList
corresponds to the hydrophone positions for one PamDetection.
-
getGPSReference
Description copied from interface:TargetMotionInformation
The GPS point which corresponds to (0,0,0).- Specified by:
getGPSReference
in interfaceTargetMotionInformation
- Returns:
- the lat long which has been used for the (0,0,0) reference.
-
latLongToMetres
- Specified by:
latLongToMetres
in interfaceTargetMotionInformation
- Parameters:
ll
- - the GPS Co-Ordinate- Returns:
-
metresToLatLong
Description copied from interface:TargetMotionInformation
Convert a point in your cartesian co-ordinate frame- Specified by:
metresToLatLong
in interfaceTargetMotionInformation
- Returns:
-
getReferenceHydrophones
public int getReferenceHydrophones()- Specified by:
getReferenceHydrophones
in interfaceTargetMotionInformation
- Returns:
-
getTimeMillis
Description copied from interface:TargetMotionInformation
Get a time for the detection (usually an average of all the individual detectiopns)- Specified by:
getTimeMillis
in interfaceTargetMotionInformation
- Returns:
-
getBeamLatLong
Description copied from interface:TargetMotionInformation
Calculate the beam latitude and longitude. The beam lat long is basically the point on the GPS path which is closest to the localised position of the animal- Specified by:
getBeamLatLong
in interfaceTargetMotionInformation
- Parameters:
localised
- - localisation result to find beam lat long for.- Returns:
- lat long
-
getBeamTime
Description copied from interface:TargetMotionInformation
Calculate the beam time. This is not the time that the vessel was at the beam lat long but the time the streamer passed that point. Note that if there are multiple streamers passing the point the streamer lengths are averaged and used as our beam lat long. We use the model for each streamer to to work out when it passed the beam lat long point.- Specified by:
getBeamTime
in interfaceTargetMotionInformation
- Parameters:
beamPos
- - the beam lat long.- Returns:
- the time at which the hydrophone array passed the beam lat long point.
-