3D school detection algorithms
Echoview can perform 3D school detection using one of several algorithms depending upon the scanning mode used when collecting the data:
See also: About scanning for further information.
Each algorithm will produce one or more 3D regions. The algorithm used in creating the region can be seen under Further information on the General page of the Region Properties dialog box. Additional 3D school detection information for each region is recorded on the Notes page of the Region Properties dialog box.
Note: A detection warning is displayed when GPS fix times do not overlap the specified detection ping range times.
Basic algorithm
The basic 3D school detection algorithm is used in two different contexts:
In both cases it proceeds as follows:
 Scan through the variable and discard any pings which:
 cross the previous undiscarded ping, or
 lie, in part or entirely, between the previous undiscarded ping and the undiscarded ping prior to it
 are outside the specified Ping range of the Detect 3D Schools dialog box.
Note: This is an attempt to avoid very unusual folding back shapes which are not a good representation of a real school and would cause ambiguity in the calculation of certain 3D Region metrics. The precise manner in which the test is performed may differ slightly to that suggested here.
 For each remaining ping:
 Create a virtual ping with data points set to either 1 (include for the detection) or 0 (excluded from the detection).
Note: Data points are removed from the detection if:
 their value is outside the range of values defined by the Minimum threshold and Maximum threshold settings on the Data page of the Variable Properties dialog box, or
 their range is greater than the range threshold (Beyond minimum range of Exclude below surface and/or Exclude below surface additional depth offset) defined on the Analysis page of the Variable Properties dialog box.
 their depth/range is above the specified Exclude above surface.
 their depth/range is below the specified Exclude below surface.
 Identify intervals (contiguous groups of 1s) in each beam.
 Form (nearly) rectangular prisms from each interval. These prisms span the distance between this ping and the next ping.
Note: Echoview will complete this step regardless of the actual distance between pings. If your data file contains large gaps between pings, (e.g. you did not log data while moving a vessel between transects) and you do not think the pings on either side of that gap were insonifying the same school, you may wish to do multiple detections and set a limited range of pings for each detection on the Data page of the Detect 3D schools dialog box.
 Triangulate the prisms. That is, reduce each surface of each prism to two triangles.
 Store details of the vertices of the triangles that represent the visible surfaces.
 From the resulting data (i.e. the data from all pings):
 Analyze vertices and discard nonvisible surfaces.
Note: These are all the surfaces shared by more than one prism
 Define groups of connected vertices.
Note: Vertices are considered connected if they lie on a common triangle, and any one vertex may lie on more than one triangle.
 Create a 3D region for each set of connected vertices and the triangles containing them.
Note: If schools are not connected (even for a single ping) they will be treated as separate schools and separate 3D regions will be created.
 Identify vacuoles (hollow areas within a fully enclosing larger school).
 Identify and discard subschools (a school within a fully enclosing larger school, i.e. within a vacuole).
 Calculate the objectaligned bounding box for each 3D region and each vacuole.
 Compare the dimensions of the objectaligned bounding box for each school with the minimum school dimensions defined on the Size Criteria page of the Detect 3D schools dialog box and discard schools that do not meet the minimum size requirements.
 Calculate 3D object properties for the 3D regions.
Notes:
 School detection settings can be seen on the Notes page of the 3D Region properties dialog box.
 Exclude above or Exclude below surfaces and Bottom elimination for 3D school detection settings are not applied if there is no GPS fix associated with a ping.
Cruise scanning algorithm
Used for cruise scanning data only. The basic algorithm is applied with the following restrictions:
For cruise scanning school detection on Hmode variables:
 Only the leading face is considered. Data on the trailing face is disregarded for the purpose of school detection.
See About ping modes for further information.
 The tilt angle of all pings in the detection must be the same, and greater than 5°.
For cruise scanning school detection on Vmode variables:
 The bearing angle of pings in the detection must be the same, and further than 5° from the alongship axis.
For cruise scanning school detection on Smode variables:
 The tilt angle of all pings in the detection must be the same and greater then 5°.
 The bearing angle of pings in the detection must be the same and further than 5° from the alongship axis.
Instrument Scanning algorithm
Note: We strongly recommend you prepare your data for school detection before applying this algorithm.
Used for instrument scanning data only.
The algorithm works as follows:
 Divide the data into frames.
 To each frame, apply the basic algorithm.
By ping algorithm
The By ping algorithm is an application of the basic algorithm to each ping individually, producing zero, one or more 3D regions for each ping considered, each of which has a uniform Region width as specified on the Data page of the Detect 3D Schools dialog box. The By ping algorithm is also used when you do a detection on a displayed ping.
Each ping is modeled as a zero width plane and the Region width is measured in a direction orthogonal to that plane extending an equal distance either side of the plane.
The resulting algorithm proceeds as follows:
 For each ping:
 Create a virtual ping with data points set to either 1 (included for the detection) or 0 (excluded from the detection).
Note: Data points are thresholded out if:
 their value is outside the range of values defined by the Minimum threshold and Maximum threshold settings on the Data page of the Variable properties dialog box, or
 their range is greater than the range threshold (Beyond minimum range of Exclude below surface and/or Exclude below surface additional depth offset) defined on the Analysis page of the Variable Properties dialog box.
 their depth/range is above the specified Exclude above surface.
 their depth/range is below the specified Exclude below surface.
 Identify intervals (contiguous groups of 1s) in each beam.
 Form (nearly) rectangular prisms from each interval. These prisms extend either side of the ping in the direction orthogonal to the plane of the ping a distance equal to one half of the Region width specified on the Data page of the Detect 3D Schools dialog box.
 Triangulate the prisms. That is, reduce each surface of each prism to two triangles.
 Store details of the vertices of the triangles that represent the visible surfaces.
 Analyze vertices and discard nonvisible surfaces.
Note: These are all the surfaces shared by more than one prism
 Define groups of connected vertices.
Note: Vertices are considered connected if they lie on a common triangle, and any one vertex may lie on more than one triangle.
 Create a 3D region for each set of connected vertices and the triangles containing them.
Note: If schools are not connected they will be treated as separate schools and separate 3D regions will be created.
 Calculate the objectaligned bounding box for each 3D region and each vacuole.
 Compare the dimensions of the objectaligned bounding box for each school with the minimum school dimensions defined on the Size Criteria page of the Detect 3D schools dialog box and discard 3D regions that do not meet the minimum size requirements.
 Calculate 3D object properties for the 3D regions.
Notes:
 School detection settings can be seen on to the Notes page of the 3D Region properties dialog box.
 The Byping detection will detect no schools when the Region width is less than the Minimum shortest dimension.
Targetlocked scanning algorithm
Note: We strongly recommend you prepare your data for school detection before applying this algorithm.
Used for targetlocked scanning data only.
For the purposes of school detection, a targetlocked ping pair is an Hmode ping and a Vmode ping:
 that are identified as described in About targetlocked ping pairs.
 that furthermore meet the following requirements:
 have the same ping position.
 have the same start range and sample thickness.
 intersect one another
For any given targetlocked ping pair:
 let PH be the Hmode ping
 let PV be the Vmode ping
 let BH be the Hmode beam nearest this intersection
 let BV be the Vmode beam nearest this intersection
 BH and BV may (ideally) be identical (i.e. contain identical data) but in the general case are not assumed to be.
Zero or more 3D regions are created for every targetlocked ping pair as follows:
 Apply the specified exclusion criteria to the data on PH and PV
 If PV is a V1*V2 or V1L*V2L type variable, ignore the V2 (or V2L) component of PV
 In both PH and PV find:
 all samples above the detection threshold (call these 1), and
 those below the detection threshold (call these 0)
 Find the largest intersection (in range space) of above threshold samples (1s) in BV and above threshold samples (1s) in BH.
 Create a 3D region for this overlap as follows:

Identify regions+ of abovethreshold data (1s) in both PH and PV which surround this overlap:
 Let RH be the region thus detected on PH
 Let RV be the region thus detected on PV
 Create a 3D region as an ellipsoid which encloses RH and RV as follows:
 Let V be the Vmode plane
 Let X be the direction perpendicular to BH and tangential to PH
 Let Y be the direction of BH
 Let RV3D be a 3D region defined as follows:
 area (on V) equal to RV and
 width (in direction X) equal to the width of BH.
Note however that the width is not uniform (the width of BH changes with both range and tilt angle)
 positioned such that
 its area covers RV
 it is vertically centered on BH
Note: If a hemisphere is divided into cells using all possible beams defined by all possible bearing and tilt angles of a Vmode and Hmode ping respectively then RV3D is a composite of such cells (on a spherical coordinate system centered at the transducer). The volume of any such cell is defined as Vs for the Targetlocked scanning algorithm under Volume_integration.
 For each beam in RH create a 3D region RV3Di as follows:
 Let BHi be the Hmode beams in RH, where i = 1 to the number of Hmode beams in RH
 RV3Di is a scaled copy of RV3D, such that:
 let Li be the length of RH at BHi and Wi be the width of BHi
 let Lr be the length of RH at BH and Wr be the width of BH
 its area (on V) is scaled by the ratio of Li to Lr
 its width (in direction X) is scaled by the ratio of Wi to Wr.
 its position is space is as follows:
 let D be the distance between the geometric centers of RH at BH and of RH at BHi
 move RV3Di in direction Y by distance D.
 rotate RV3Di about the transducer so that it is centered on BH
 The final 3D region is the union of all the RV3Di
 Apply the specified exclusion and size criteria
 Repeat this (step 3) for each intersection (of above threshold samples [1s] in BV and above threshold samples [1s] in BH) in descending order of size (of the intersection)  in the case of ties, the nearest to the transducer is treated first.
Notes:
 A consequence of this algorithm is that the regionping intersection will always include the detected samples on PV, but may not include them all on PH. On PH the regionping intersection will always have the same shape as the set of detected samples, but may be nearer to or further from the transducer if there is not a 100% overlap and correspondence between the Hmode and Vmode above threshold samples detected.
 Another consequence of this algorithm is that the initial region RV3D can be scaled down in size or up in size in response to the Hmode data. There is currently no limit specified on the upsizing or downsizing and this can as a consequence produce regions which are much larger than a ping.
+ These are not Echoview regions, just a temporary data structure used in this algorithm.
See also:
About 3D school detection
About school detection algorithms
Detecting schools on multibeam echograms