Multibeam bottom detection algorithm

The multibeam bottom detection algorithm can be finely tuned using the settings on the Multibeam tab of the Lines and Surfaces page of the EV File Properties dialog box. These settings are available:


    Symbol used in algorithm Units

EV File Properties dialog box setting

Candidate identification




Start Depth (m)




Stop Depth (m)




Minimum threshold factor (%)




Minimum sample gap between candidates




Maximum candidates per beam

Candidate joining




Number of beams used for seeding




Number of samples to join by the depth criterion




Maximum difference in range between neighbors (%)




Maximum number of samples rejected before stopping

Quality control




Maximum range of edge samples (%)


  • The detection supports a transducer with an elevation that lies between 0 to 90°. Elevations with components that point upwards are not handled by the detection.
  • Any changes you make to values on the dialog will immediately affect any visible multibeam bottom previews.
  • MaximumDifferenceInRangeBetweenNeighbors defines the maximum allowed vertical distance between the last candidate point and the current candidate point. Any candidate seed that has a vertical distance value greater than MaximumDifferenceInRangeBetweenNeighbors, is marked as 'bottom not detected' and is discarded.
  • MaximumRangeOfEdgeSamples defines the percentage of seed candidates to be excluded from the outer edge of the beam.

The multibeam bottom detection algorithm uses these settings as follows:

  1. Identify candidate bottom samples (MaximumCandidatesPerBeam) in each beam for each ping as follows:

    1. Calculate a Threshold value
      = Min + (Max-Min) x MinimumThresholdFactor/ 100
      where: Min and Max are the minimum and maximum sample values in this beam between StartDepth and StopDepth.
    2. Scan the beam from StartDepth to StopDepth as follows:
      1. look for the next sample with a value that exceeds the Threshold.
      2. look for the next sample with a value that is below the Threshold.
      3. from within this range of samples, pick the sample S with the highest value.
      4. add sample S to a list of candidate bottom samples.
      5. if the list contains more than MaximumCandidatesPerBeam samples, discard the sample with the lowest value (the weakest sample).
      6. skip MinimumSampleGapBetweenCandidates samples and repeat.

      each beam in each ping now has a list of candidate bottom samples associated with it containing up to MaximumCandidatesPerBeam of the strongest samples found.
  2. Identify candidate bottom detections in each ping as follows:

    1. Create a list of detection seeds.
      The seeds are all the candidate bottom samples from the NumberOfBeamsUsedForSeeding most vertical beams in the ping. There will be maximally MaximumCandidatesPerBeam x NumberOfBeamsUsedForSeeding detection seeds and each seed is the first sample in a bottom detection candidate. Each candidate seed is assessed against the previous one. If the vertical distance is greater than MaximumDifferenceInRangeBetweenNeighbors, it is marked as 'bottom not detected' and discarded.

      Specifically, a start beam B is chosen which is either the most vertical or, if there is no most vertical beam then the middle beam (i.e. if beams are numbered a to b, then the beam numbered [a+b]/2 is chosen). Further beams are then chosen such that the following two criteria are met:
      1. NumberOfBeamsUsedForSeeding beams are chosen (highest priority)
      2. the chosen beams are equally distributed about the beam B (lowest priority) - an asymmetry may occur when beam B is near the edge of the sector plot or if NumberOfBeamsUsedForSeeding is even.
      Result: There are now up to MaximumCandidatesPerBeam x NumberOfBeamsUsedForSeeding seeds chosen. Each of these will become a bottom detection candidate.

      An internal beam number is used for choosing B and the neighboring beams. This may not correspond with the beam number reported on the Echoview status bar which respects the beam numbering of the original source instrument.
    2. Extend each seed into a complete bottom detection candidate.
      Each of the seeds becomes a bottom detection candidate by adding to the most suitable candidate bottom sample from each neighboring ping until completion, first in one direction then the other. Any seed that has a value greater than MaximumRangeOfEdgeSamples is discarded.
      1. if the beam is within NumberOfSamplesToJoinByTheDepthCriterion/2 beams of beam B then choose the candidate bottom sample which is nearest in depth to the next sample nearest to B, otherwise
      2. choose the candidate bottom sample which is nearest a line L which is created by linear regression on all samples already chosen (in the space defined by depth=f(beam number).
  3. If this is a bottom detection preview, then display each multibeam bottom detection candidate on the visible echogram, otherwise create a bottom surface as follows:
    1. Note the depth of each bottom detection candidate
    2. For each multibeam ping, from left to right, assemble good bottom detection candidates. When a good bottom detection is absent, look ahead beam by beam for a good bottom detection. The NumberOfSamplesRejectedBeforeStopping limits the search for the next good detection. When the next good detection is smaller than NumberOfSamplesRejectedBeforeStopping, the bottom is considered continuous despite the gap (from the last detection). When the next good detection is larger than NumberOfSamplesRejectedBeforeStopping, then the bottom line is broken and the resultant surface may contain a hole or holes.
    3. Project all the bottom detection candidates onto a horizontal flat plane.
    4. Connect the projected points with a triangulated irregular network in which the projected bottom detection candidates are the vertices of triangles.
    5. Give each of the vertices in the triangulated irregular network the depth of the bottom detection candidate associated with that vertex (as noted in a.)

      For multibeam pings with either a high elevation or low tilt, noise in the bottom echo trace may cause exaggerated unevenness or spikiness in the resulting surface. Improving the quality of the bottom detection using the settings may help to reduce this.

See also

Detecting (bottom) surfaces
Multibeam bottom detection preview