After all this discussion, let us take a moment to review what we've done. We first set out to identify what MB-System™ format identified our sonar data. With that in hand, we went on to quickly survey our data to get a good idea for the types of problems we were likely to see. We analyzed the data with the most accurate sound speed profiles available, making adjustments as necessary to produce the best profile for each portion of the data set. We then carefully analyzed selected portions of the data to determine the roll and pitch biases of the sonar. We reviewed the navigation data and may have smoothed it or even decided that a second source of navigation data must be applied altogether. Finally we began the task of flagging bad data, pitching outliers and excessively noisy data. First this was done using automated tools, and then, more laboriously, using interactive tools. We also might have applied filters and grazing angle functions to the side scan data to bring out features in the data set.
All of this has been preparatory work for the final step of applying these changes to the sonar data. This final step is completed using the application mbprocess.
It is quite common to have used mbprocess within the processing of the earlier steps. For example, you may have measured and applied a SSP to the data used to calculate the roll bias. Or you may have run mbprocess to see the effects of your sidescan filters such that you could apply them iteratively to produce quality pictures. mbprocess allows changes to the parameter file at any time, and subsequent executions will incorporate those changes. In this way, mbprocess can be executed iteratively such that you can see the effects with each applied change and reprocess new changes at a later date.
As we have gone along, using various tools, they have automatically created or edited the parameter files (ending in ".par") to identify what options are to be applied to the sonar data. mbprocess uses these parameters to complete the final step of applying the sound speed profiles, biases, flagged bathymetry, smoothed navigation, and a host of other options.
In addition to the tools thus far described, there are a host of other processing options that can applied to a sonar data set via mbprocess. Many of these have thus far, not been mentioned, but are extremely useful to the processing of sonar data. These include corrects for constant errors in heading, offsets from the ship's navigation source to the sonar array (if not already taken into account), correction of the ship's draft and many others. Application of these corrections require editing of the parameter file. This man be done manually, or with mbset.
mbset is a tool for creating or modifying MB-System™ parameter files. Typically the "-P" flag to mbset is simply followed by a series "PARAMETERNAME:value" separated by a comma, which are written to the parameter files of the associated data.
As an example, assume you find out that in middle of a survey, the primary GPS receiver providing position information to the sonar fails, and a backup is place online. Everything seems OK, until you realize that the new GPS antenna is mounted on the aft end of the ship, while the former was mounted on the pilot house, and no professional survey numbers are available to correct for this difference in position. Some months after the cruise, you receive an email from the ship's Science Officer that they have had the new GPS position professionally surveyed and the offsets from the previous position are 80 meters aft, and 2.5 meters to STBD. We could apply these values to the sonar data using mbset to specify these offsets in the appropriate parameter files.
mbset -F-1 -I DATALISTOFAFFECTFILES -PSONAROFFSETX:2.5 \ -PSONAROFFSETY:-80
The preceding line would write the correction values into the parameter files for those bathymetry files specified in the data list and the corrections would be applied with mbprocess.
Now that we have seen how to edit the parameter files, we can take a more in-depth look at types of things in the parameter files.
Any post processing you would like to do to a multibeam data file is specified in its associated parameter file, and a handful of ancillary data files which accompany it. As we have seen, the parameter file will be automatically generated for you by the MB-System™ tools as it is required. So, for example, when you edit bathymetry data in mbedit, on exiting you will see that a parameter file has been generated with the same basename as the original data file, and a .par suffix. In this case you will also see a .esf file which contains a list of the bathymetry edit flags from your work in mbedit. Similarly, the application mbset allows one to set specific processing parameters within the parameter file, and will generate a parameter file if one does not already exist.
The parameter file is simply a text file containing a host of options for the post processing of the sonar data. Its general form is of commented out headings followed by parameter and value pairs. Each section designates a kind of processing and usually has a "Mode" parameter associated with it that turns the recalculation of that section "ON" or "OFF". Each parameter is quite well described in the mbprocess man page which is reproduced at the end of this section.
New processing options are being added to the parameter file all the time, often before they are fully documented in the man page or this document. It is well worth while to survey the parameter files generated by any of the automated processing tools to see what might be currently available. In the mean time, we'll do our best to keep the documentation up to date.
There is truly an extraordinary number of processing tools that may be specified in the parameter file and applied with subsequent use of mbprocess. While documented in the man pages for mbprocess and mbset, there are many fantastic, time saving details that are little known. A few in particular that are worth pointing out:
EXPLICIT:
When this flag is set (which is the default), mbprocess parses the parameter file and makes assumptions regarding what sections require processing based on the parameter values and ancillary data files specified. For example, if a roll bias is to be applied, mbprocess will automatically also turn on the ray-tracing processing mode such that the new incident angles are appropriately applied to the bathymetry.
Navigation Merging:
The collection of parameters that may be specified in this section are some of the most helpful and powerful tools in MB-System™.
One may specify, smoothed or altogether new navigation files to be merged with the bathymetry. If you think your navigation source has been incorrectly surveyed with respect to your sonar or vessel reference, you can apply vessel-referenced fore/aft and athwartships offsets. Perhaps you find that the time standard provided for your sonar has an offset from GMT. The Navigation section allows you to set a time offset to be applied. Similarly, if you fear your heading reference has an offset, you can specify that as well, and all the necessary lever arm translations will be applied appropriately.
Bathymetry Editing:
This section allows one to apply new sound speed profiles to the data file. When the default EXPLICIT parameter is set (as described above) simply specifying a new sound speed profile in this section will turn on ray tracing such that new bathymetry values are calculated appropriately.
Metadata Insertion:
This section allows one to add comments to processed data files including the vessel, institution, cruise ID and principal investigator among others.
Processing Kludges:
This section enables us to make special provisions for particularly finicky sonar data.
It is good to remember that while the MB-System™ tools will manage and edit your parameter files for you, one can edit them by hand. The syntax is straight forward and the allowable options are specified in the man pages.
MBPROCESS PARAMETER FILE COMMANDS
The mbprocess commands found in parameter files are:
GENERAL PARAMETERS:
EXPLICIT
causes mbprocess to set modes implicitly
- e.g. the SVPFILE command will also set
raytracing on even if the RAYTRACE command
is not given [explicit mode commands required]
FORMAT constant
sets format id [no default]
INFILE filename
sets input file path [no default]
OUTFILE filename
sets output file path [no default]
NAVIGATION MERGING:
NAVMODE boolean
sets navigation merging [0]
0: navigation merge off
1: navigation merge on
NAVFILE filename
sets navigation file path [no default]
NAVFORMAT constant
sets navigation file format [9]
NAVHEADING boolean
sets heading to be merged from navigation file
- note: heading merged from navigation before
heading correction applied
0: heading not changed
1: heading merged from navigation file
NAVSPEED boolean
sets speed to be merged from navigation file
0: speed not changed
1: speed merged from navigation file
NAVDRAFT boolean
sets draft to be merged from navigation file
- note: draft merged from navigation before
draft correction applied
0: draft not changed
1: draft merged from navigation file
NAVINTERP boolean
sets navigation interpolation algorithm [0]
0: linear interpolation (recommended)
1: spline interpolation
ADJUSTED NAVIGATION MERGING:
NAVADJMODE boolean
sets navigation merging from mbnavadjust [0]
- longitude and latitude only
0: adjusted navigation merge off
1: adjusted navigation merge on
NAVADJFILE filename
sets adjusted navigation file path
- this file supersedes navigation file for
lon and lat only
- uses mbnavadjust output
NAVADJINTERP boolean
sets adjusted navigation interpolation algorithm [0]
0: linear interpolation (recommended)
1: spline interpolation
DATA CUTTING:
DATACUTCLEAR
removes all existing data cutting commands
DATACUT kind mode min max
adds new data cutting command, where:
kind = 0 : cut applied to bathymetry data
kind = 1 : cut applied to amplitude data
kind = 2 : cut applied to sidescan data
mode = 0 : min and max indicate start and end
beam/pixel numbers between which data
are flagged or zeroed
mode = 1 : min and max indicate start and end
acrosstrack distance (m) between which
data are flagged or zeroed
BATHCUTNUMBER min max
adds new bathymetry data cutting command where
min and max are the start and end beam numbers
between which data are flagged (note that
flagging bathymetry also flags amplitude data)
BATHCUTDISTANCE min max
adds new bathymetry data cutting command where
min and max are the start and end acrosstrack
distance (m) between which data are flagged
(note that flagging bathymetry also flags
amplitude data)
BATHCUTSPEED min max
adds new bathymetry data cutting command where
all beams are flagged for pings with a ship
or vehicle speed less than min or greater than
max (note that flagging bathymetry also flags
amplitude data)
AMPCUTNUMBER min max
adds new amplitude data cutting command where
min and max are the start and end beam numbers
between which amplitude data are zeroed (note
that zeroing amplitude data has no impact on
bathymetry data)
AMPCUTDISTANCE min max
adds new amplitude data cutting command where
min and max are the start and end acrosstrack
distance (m) between which amplitude data are
zeroed (note that zeroing amplitude data has
no impact on bathymetry data)
AMPCUTSPEED min max
adds new amplitude data cutting command where
all amplitude values are zeroed for pings with
a ship or vehicle speed less than min or greater
than max (note that zeroing amplitude data has
no impact on bathymetry data)
SSCUTNUMBER min max
adds new sidescan data cutting command where
min and max are the start and end pixel numbers
between which sidescan data are zeroed (note
that zeroing sidescan data has no impact on
bathymetry data)
SSCUTDISTANCE min max
adds new sidescan data cutting command where
min and max are the start and end acrosstrack
distance (m) between which sidescan data are
zeroed (note that zeroing sidescan data has
no impact on bathymetry data)
SSCUTSPEED min max
adds new sidescan data cutting command where
all sidescan values are zeroed for pings with
a ship or vehicle speed less than min or greater
than max (note that zeroing sidescan data has
no impact on bathymetry data)
BATHYMETRY EDITING:
EDITSAVEMODE boolean
turns on reading edit save file (from mbedit) [0]
EDITSAVEFILE filename
sets edit save file path (from mbedit) [none]
BATHYMETRY RECALCULATION:
SVPMODE mode
sets usage of a water sound speed model (sound
velocity profile, or SVP) [0]
0: bathymetry recalculation by raytracing off
1: bathymetry recalculation by raytracing on
2: translate depths from corrected to uncorrected
or vice versa depending on SOUNDSPEEDREF
command
SVPFILE filename
sets SVP file path [no default]
SSVMODE boolean
sets surface sound velocity (SSV) mode [0]
0: use SSV from file
1: offset SSV from file (set by SSV command)
2: use constant SSV (set by SSV command)
SSV constant/offset
sets SSV value or offset (m/s) [1500.0]
ANGLEMODE mode
sets handling of beam angles during
raytracing [0]
0: angles not changed before raytracing
1: angles adjusted using Snell's Law for
the difference between the surface sound
velocity (SSV) and the sound speed at
the sonar depth in the SVP.
2: angles adjusted using Snell's Law and
the sonar array geometry for the
difference between the surface sound
velocity (SSV) and the sound speed at
the sonar depth in the SVP.
TTMULTIPLY multiplier
sets value multiplied by travel times [1.0]
SOUNDSPEEDREF boolean
determines the handling of the sound
speed reference for bathymetry [1]
- note: if raytracing is turned off then
this command implies correcting or
uncorrecting using the SVP specified
with the SVPFILE command
0: produce "uncorrected" bathymetry
referenced to a uniform 1500 m/s
water sound speed model.
1: produce "corrected" bathymetry
referenced to a realistic water
sound speed model.
STATIC BEAM BATHYMETRY OFFSETS:
STATICMODE mode
sets offsetting of bathymetry by
per-beam statics [0]
0: static correction off
1: static correction on
STATICFILE filename
sets static per-beam file path [no default]
- static files are two-column ASCII tables
with the beam # in column 1 and
the depth offset in m in column 2
DRAFT CORRECTION:
DRAFTMODE mode
sets draft correction [0]
- note: draft merged from navigation before
draft correction applied
0: no draft correction
1: draft correction by offset
2: draft correction by multiply
3: draft correction by offset and multiply
4: draft set to constant
DRAFT constant
sets draft value (m) [0.0]
DRAFTOFFSET offset
sets value added to draft (m) [0.0]
DRAFTMULTIPLY multiplier
sets value multiplied by draft [1.0]
HEAVE CORRECTION:
HEAVEMODE mode
sets heave correction [0]
- note: heave correction by offset and/or
multiplication is added to any lever
heave correction, and then either used in
bathymetry recalculation or added to
existing bathymetry
0: no heave correction
1: heave correction by offset
2: heave correction by multiply
3: heave correction by offset and multiply
HEAVEOFFSET offset
sets value added to heave (m)
HEAVEMULTIPLY multiplier
sets value multiplied by heave
LEVER CORRECTION:
LEVERMODE mode
sets heave correction by lever calculation [0]
- note: lever heave correction is added to
any heave correction by offset and/or
multiplication, and then either used in
bathymetry recalculation or added to
existing bathymetry
0: no lever calculation
1: heave correction by lever calculation
VRUOFFSETX constant
sets athwartships offset of attitude sensor (m)
- note: positive to starboard
VRUOFFSETY constant
sets fore-aft offset of attitude sensor (m)
- note: positive forward
VRUOFFSETZ constant
sets vertical offset of attitude sensor (m)
- note: positive down
SONAROFFSETX constant
sets athwartships offset of sonar receive array (m)
- note: positive to starboard
SONAROFFSETY constant
sets fore-aft offset of sonar receive array (m)
- note: positive forward
SONAROFFSETZ constant
sets vertical offset of sonar receive array (m)
- note: positive down
ROLL CORRECTION:
ROLLBIASMODE mode
sets roll correction [0]
0: no roll correction
1: roll correction by single roll bias
2: roll correction by separate port and
starboard roll bias
ROLLBIAS offset
sets roll bias (degrees)
ROLLBIASPORT offset
sets port roll bias (degrees)
ROLLBIASSTBD offset
sets starboard roll bias (degrees)
PITCH CORRECTION:
PITCHBIASMODE mode
sets pitch correction [0]
0: no pitch correction
1: pitch correction by pitch bias
PITCHBIAS offset
sets pitch bias (degrees)
HEADING CORRECTION:
HEADINGMODE mode
sets heading correction [no heading correction]
- note: heading merged from navigation before
heading correction applied
0: no heading correction
1: heading correction using course
made good
2: heading correction by offset
3: heading correction using course
made good and offset
HEADINGOFFSET offset
sets value added to heading (degrees)
TIDE CORRECTION:
TIDEMODE mode
sets tide correction [0]
- note: tide added to bathymetry after
all other calculations and corrections
0: tide correction off
1: tide correction on
TIDEFILE filename
sets tide file path
TIDEFORMAT constant
sets tide file format [1]
- tide files can be in one of four ASCII
table formats
1: format is >time_d tide<
2: format is >yr mon day hour min sec tide<
3: format is >yr jday hour min sec tide<
4: format is >yr jday daymin sec tide<
- time_d = decimal seconds since 1/1/1970
- daymin = decimal minutes start of day
AMPLITUDE CORRECTION:
AMPCORRMODE boolean
sets correction of amplitude for
amplitude vs grazing angle function
0: amplitude correction off
1: amplitude correction on
AMPCORRFILE filename
sets amplitude correction file path [no default]
AMPCORRTYPE mode
sets sidescan correction type [0]
0: correction by subtraction (dB scale)
1: correction by division (linear scale)
AMPCORRSYMMETRY boolean
forces correction function to be symmetric [1]
AMPCORRANGLE constant
sets amplitude correction reference angle (deg) [30.0]
SIDESCAN CORRECTION:
SSCORRMODE boolean
sets correction of sidescan for
amplitude vs grazing angle function
0: sidescan correction off
1: sidescan correction on
SSCORRFILE filename
sets sidescan correction file path [no default]
SSCORRTYPE mode
sets sidescan correction type [0]
0: correction by subtraction (dB scale)
1: correction by division (linear scale)
SSCORRSYMMETRY boolean
forces correction function to be symmetric [1]
SSCORRANGLE constant
sets sidescan correction reference angle (deg) [30.0]
SIDESCAN RECALCULATION:
SSRECALCMODE boolean
sets recalculation of sidescan for
Simrad multibeam data
0: sidescan recalculation off
1: sidescan recalculation on
SSPIXELSIZE constant
sets recalculated sidescan pixel size (m) [0.0]
- a zero value causes the pixel size to
be recalculated for every data record
SSSWATHWIDTH constant
sets sidescan swath width (degrees) [0.0]
- a zero value causes the swath width
to be recalculated for every data record
SSINTERPOLATE constant
sets sidescan interpolation distance
(number of pixels)
METADATA INSERTION:
METAVESSEL string
sets mbinfo metadata string for vessel
METAINSTITUTION string
sets mbinfo metadata string for vessel
operator institution or company
METAPLATFORM string
sets mbinfo metadata string for sonar
platform (ship or vehicle)
METASONAR string
sets mbinfo metadata string for sonar
model name
METASONARVERSION string
sets mbinfo metadata string for sonar
version (usually software version)
METACRUISEID string
sets mbinfo metadata string for institutional
cruise id
METACRUISENAME string
sets mbinfo metadata string for descriptive
cruise name
METAPI string
sets mbinfo metadata string for principal
investigator
METAPIINSTITUTION string
sets mbinfo metadata string for principal
investigator
METACLIENT string
sets mbinfo metadata string for data owner
(usually PI institution)
METASVCORRECTED boolean
sets mbinfo metadata boolean for sound
velocity corrected depths
METATIDECORRECTED boolean
sets mbinfo metadata boolean for tide
corrected bathymetry
METABATHEDITMANUAL boolean
sets mbinfo metadata boolean for manually
edited bathymetry
METABATHEDITAUTO boolean
sets mbinfo metadata boolean for automatically
edited bathymetry
METAROLLBIAS constant
sets mbinfo metadata constant for roll bias
(degrees + to starboard)
METAPITCHBIAS constant
sets mbinfo metadata constant for pitch bias
(degrees + forward)
METAHEADINGBIAS constant
sets mbinfo metadata constant for heading bias
METADRAFT constant
sets mbinfo metadata constant for vessel draft (m)
PROCESSING KLUDGES:
KLUGE001 boolean
enables correction of travel times in Hydrosweep DS2
data from the R/V Maurice Ewing in 2001 and 2002.
KLUGE002 boolean
processing kludge 002 (not yet defined)
- occasional odd processing problems will
occur that are specific to a particular
survey or sonar version
- mbprocess will allow one-time fixes to
be defined as "kludges" that can be turned
on through the parameter files.
KLUGE003 boolean
processing kludge 003 (not yet defined)
KLUGE004 boolean
processing kludge 004 (not yet defined)
KLUGE005 boolean
processing kludge 005 (not yet defined)
Organization is key to speeding the reprocessing of sonar data. With your data in an archive as described in earlier chapters, one can utilize the data lists and mbset to apply changes to the parameter files in bulk. However it is instructive to make a metadata map of the files involved to make sure you do not miss any detail along the way.
"What do you mean by "metadata map"?, you say. Make a list of all the data files, and identify for each, all the appropriate corrections that you have identified along the way. For example, identify which SSP's are to be applied to which portions of the survey, what roll bias values are to be applied (typically to all of the data), and what navigation corrections should be applied and where. You may have organized your data into subdirectories already, and you may decide to reorganize your data at this point based on the corrections you need to apply.
With the map in hand, you can then ensure that the parameter files for each data file are correct and make appropriate changes by hand or in bulk using data lists and mbset.
To apply the settings in the parameter file and the other ancillary files (navigation, flagged bathymetry, etc.) we call mbprocess.
Calling mbprocess is quite simple, the following is usually sufficient.
mbprocess -Idatalist -F-1
The line above will apply the changes specified in the respective parameter files to the data files listed in the "datalist". Unless specified explicitly with the "-O" flag, mbprocess automatically creates names for the processed data files by appending a "p" to the basename of each file. Hence 00020504133000.mb183 becomes 00020504133000p.mb183. mbprocess keeps tabs, in the parameter file, of the name and modification time of the processed data file, the parameter file, and the ancillary data files and only reprocessed data if changes have been made. One can force reprocessing of the data, however, with the "-P" flag to mbprocess. Typically mbprocess will include comments from the original data file as well as embed the meta-data items specified in the parameter file, into the processed sonar data. The "-N" flag prevents this.
It is helpful to remember that changes can be made piece-meal, in any order, and indeed iteratively, to the parameter file. mbprocess can be called after each change to see the effects, or only after all the changes have been made.
That's it. The rest is up to you. If you have taken good notes during the survey, and are methodical in your methods for post processing the data, it can be relatively straight forward. If you are post processing data that is several years old, is poorly documented, and is from a cruise in which you did not participate, it can be quite a challenge. In either case, MB-System™ will be an invaluable aid.
Best of Luck!