Package difar

Class DifarLocalisation


public class DifarLocalisation extends AbstractLocalisation
Localisations from a single sonobuoy are bearings originating from the sonobuoy. If more than one sonobuoy detects the same sound, triangulation of the bearings can yeild a latitude and longitude.
  • Constructor Details

    • DifarLocalisation

      public DifarLocalisation(DifarDataUnit difarDataUnit, int locContents, int referenceHydrophones)
  • Method Details

    • getSubArrayType

      public int getSubArrayType()
      Overrides:
      getSubArrayType in class AbstractLocalisation
      Returns:
      the type of hydrophone sub array used, eg point, planar, line, volumetric. this can tell us the type of information likely to be available in terms of bearings, etc.

      Added DG 6 January 2010

    • getLocContents

      public LocContents getLocContents()
      Overrides:
      getLocContents in class AbstractLocalisation
      Returns:
      a set of flags specifying which data are available within this localisation object.
    • bearingAmbiguity

      public boolean bearingAmbiguity()
      Overrides:
      bearingAmbiguity in class AbstractLocalisation
      Returns:
      true if the bearing is subject to a left right (or rotational) ambiguity about the reference bearing.
    • getWorldVectors

      public PamVector[] getWorldVectors()
      Description copied from class: AbstractLocalisation
      Get vectors pointing at this localisation in a real world coordinate frame.
      N.B. Real world in this instance means relative to the xyz coordinate frame of the hydrophone array. To get real real world vectors relative to the planet, the vectors will need to be further rotated by the course of the vessel/array and the pitch, roll of the hydrophone array
      Overrides:
      getWorldVectors in class AbstractLocalisation
      Returns:
      vectors pointing at this localisation in a real world coordinate frame. For a volumetric array, there should be a single vector since the geometry gives an unambiguous result. For a planar array we will get two vectors, one either side of the plane.
    • getAngles

      public double[] getAngles()
      Overrides:
      getAngles in class AbstractLocalisation
      Returns:
      Angles to detection in radians. The number of angles will be 0, 1 or 2.

      ***************** CHANGES FROM AUGUST 2017 *******************
      Now oriented the 'globe' differently, so that the first angle can be between -Pi and +Pi or between 0 and 2Pi. The second angle is the elevation angle which is either up (+ve angles) or down (-ve angles) having a range of -Pi/2 to +Pi/2. This change will only affect data from volumetric arrays when the animal is at significant depth. Changes are being made to data from click and whistle detectors which used the older system to maintain compatibility.

      For a point array, null should be returned.

      For a line array a single angle is returned which is the angle relative to the first orientation vector with 0 being in line with the orientation vector (can be thought of as colatitude).

      For a planar or volumetric array, two angles should be returned, the first being the colongitude, the second being the latitude. Imagine a globe, with North vertical and 0 longitude pointing along the main axis of the array geometry.

    • getAngleErrors

      public double[] getAngleErrors()
      Overrides:
      getAngleErrors in class AbstractLocalisation
      Returns:
      Angle errors to detection in radians. The number of angles will be 0, 1 or 2.

      For a point array, null should be returned.

      For a line array a single error is returned which is the angle relative to the first orientation vector with 0 being in line with the orientation vector (can be thought of as colatitude).

      For a planar or volumetric array, two errors should be returned, the first being the error on colatitude, the second being the longitude which will be between 0 and pi for a planar array and either -pi to pi or 0 to 2pi for a volumetric array.

    • getLatLong

      public LatLong getLatLong(int iSide)
      Description copied from class: AbstractLocalisation
      Return the latlong for a location. There may be more than one of them if there is side to side ambiguity.
      Overrides:
      getLatLong in class AbstractLocalisation
      Parameters:
      iSide - 0, 1, 2, etc.
      Returns:
      LatLong information
    • getNumLatLong

      public int getNumLatLong()
      Description copied from class: AbstractLocalisation
      Gte the number of lat long results (replaced by getAmbiguityCount());
      Overrides:
      getNumLatLong in class AbstractLocalisation
      Returns:
      The number of LatLongs (generally 0 to 2)