downHill
Description
downHill is a utility designed to model and generate synthetic beam footprint files (.bf_file) for various multibeam sonar systems (e.g., EM300, SeaBeam Classic, RESON 8101, ELAC Mk II, FSWP20, ISIS, TOWSS). It simulates how sonar beams intersect a sloping seafloor, producing across-track and along-track distances for each beam at increasing depths.
This tool is useful for understanding sonar coverage, designing survey parameters, and generating ground truth data for beam footprint analysis, especially in areas with varying bathymetry. It can model different beam spacing types (equiangular or equidistant) and account for across-track slope.
Usage
downHill (-em3000 | -fswp20 | -isis | -towss | -elacII_120 | -elacII_150 | -reson_8101 | -em300 | -sb_classic) -outfile <bf_file> [OPTIONS]
Arguments
| Option | Description | |
|---|---|---|
(-em3000 | -fswp20 | -isis | -towss | -elacII_120 | -elacII_150 | -reson_8101 | -em300 | -sb_classic) | Required. Specifies the sonar model for which to generate the beam footprint. | |
-outfile <bf_file> | Required. Path for the output beam footprint file. | |
-infile <param_file> | (Optional) Path to an input parameter file. | |
-reprate <val> | Repetition rate (ping interval) in seconds. | |
-fixed_sector <val> | Forces a fixed angular sector width. | |
-distance_to_go <val> | Total along-track distance to simulate. | 1000.0 |
-desired_swath <val> | Desired across-track swath width. | 2000.0 |
-across_slope <val> | Specifies the across-track slope in degrees. | 0.0 |
-depthrange <start_depth> <stop_depth> | Specifies the starting and stopping depths for the simulation. | 250.0 to 3000.0 |
-ssp <val> | Surface sound speed. | 1500.0 |
-sect_vary | (Not fully implemented) Intended to vary the angular sector. | |
-canyon | (Not fully implemented) Intended to simulate a canyon-like bathymetry. |
How It Works
- Initialization: Parses command-line arguments to set the sonar
model, output filename, and various simulation parameters (e.g.,Start_Depth,Stop_Depth,across_slope,Desired_Swath). - Sonar Model Configuration: Based on the chosen sonar
model, it populates aBeamFootstructure (bf) with sonar-specific characteristics:toolType,operatingMode,shot_interval,spacing_type,nobeams,nopings,interleave,ping_offset.beamangle,beamheight,beamwidth,offset_dirnfor each beam.
- Simulation Loop: It simulates the sonar moving along-track, increasing
along_distin steps determined byping_interval. In each step:- Depth Calculation: Determines the current
Depthbased onStart_Depth,Stop_Depth,along_dist, andacross_slope(ifcanyonorsect_varyare used, more complex depth profiles are simulated). - Beam Footprint Calculation: For each beam
idefined by the sonar model:- It determines
full_angle(the beam’s angular position). - Calls
depth_intersect()to calculate theactual_depthat which the beam intersects the seafloor, considering the currentDepth(nadir depth) andacross_slope. - Calculates
across_distfrom theactual_depthandfull_angle. - Writes
along_distandacross_distto the output file.
- It determines
- Ping Interval Update: Calculates the
ping_intervalbased on the deepest point of the simulated swath to ensure adequate along-track coverage.
- Depth Calculation: Determines the current
- Helper Function
depth_intersect(): This function calculates the depth at which a beam, at a givenangle, intersects a seafloor with a specifiednadirdepthandacross_slope. It uses basic trigonometry to account for the slope. - Output: The output file (
bf_file) contains pairs ofalong_distandacross_distvalues for each beam at each simulated ping interval, representing the synthetic beam footprint.
Output Files
<bf_file>: A binary file containing synthetic beam footprint data.
Dependencies
BeamFoot.h: ForBeamFootstructure anddump_BF_characteristicsfunction.support.h: For general utility functions.math.h: For mathematical functions.
Notes
downHill is a valuable tool for understanding and visualizing sonar coverage, particularly how it changes with varying seafloor topography and sonar parameters. The synthetic beam footprint data can be used for survey planning, quality control, and as ground truth for testing processing algorithms. The tool creates a new file, ensuring the integrity of the original configuration. The canyon and sect_vary options are listed but not fully implemented.