MB-SYSTEM README FILE:
Version: $Id: README 1912 2011-11-19 15:44:38Z caress $
This file is located at the top of the MB-System
directory structure. This directory structure contains
the source code of the MB-System software package for
processing and display of swath sonar data.
MB-SYSTEM VERSION 5 DESCRIPTION:
MB-System is a software package consisting of programs which
manipulate, process, list, or display swath sonar
bathymetry, amplitude, and sidescan data. This software is
distributed freely (and for free) in the form of source code
for Unix platforms. The heart of the system is an
input/output library called MBIO which allows programs to
work transparently with any of a number of supported swath
sonar data formats. This approach has allowed the creation
of "generic" utilities which can be applied in a uniform
manner to sonar data from a variety of sources. Most of the
programs are command-line tools, but the package does
include graphical tools for editing swath bathymetry,
editing navigation, modeling bathymetry calculation, and
adjusting survey navigation.
MB-SYSTEM VERSION 5 RELEASE DATES:
* Version 5.3.1912 November 19, 2011
* Version 5.3.1909 November 16, 2011
* Version 5.3.1907 November 9, 2011
* Version 5.3.1906 September 28, 2011
* Version 5.2.1880 December 30, 2010
Version 5.1.3beta1875 November 23, 2010
Version 5.1.3beta1874 November 7, 2010
Version 5.1.3beta1862 June 7, 2010
Version 5.1.3beta1858 May 18, 2010
Version 5.1.3beta1855 May 4, 2010
Version 5.1.3beta1851 April 14, 2010
Version 5.1.3beta1844 March 30, 2010
Version 5.1.3beta1843 March 29, 2010
Version 5.1.3beta1829 February 5, 2010
* Version 5.1.2 December 31, 2009
Version 5.1.2beta15 December 30, 2009
Version 5.1.2beta14 December 28, 2009
Version 5.1.2beta13 December 28, 2009
Version 5.1.2beta12 December 26, 2009
Version 5.1.2beta11 Ausust 26, 2009
Version 5.1.2beta10 Ausust 12, 2009
Version 5.1.2beta09 Ausust 7, 2009
Version 5.1.2beta08 Ausust 5, 2009
Version 5.1.2beta06 July 2, 2009
Version 5.1.2beta05 June 14, 2009
Version 5.1.2beta02 March 13, 2009
Version 5.1.2beta01 March 9, 2009
* Version 5.1.1 December 31, 2008
Version 5.1.1beta26 November 18, 2008
Version 5.1.1beta25 September 28, 2008
Version 5.1.1beta23 September 19, 2008
Version 5.1.1beta21 July 20, 2008
Version 5.1.1beta20 July 10, 2008
Version 5.1.1beta19 June 6, 2008
Version 5.1.1beta18 May 16, 2008
Version 5.1.1beta17 March 21, 2008
Version 5.1.1beta16 March 14, 2008
Version 5.1.1beta15 February 8, 2008
Version 5.1.1beta14 January 15, 2008
Version 5.1.1beta13 November 16, 2007
Version 5.1.1beta12 November 2, 2007
Version 5.1.1beta11 October 17, 2007
Version 5.1.1beta10 October 8, 2007
Version 5.1.1beta5 July 5, 2007
* Version 5.1.0 November 26, 2006
Version 5.1.0beta4 October 5, 2006
Version 5.1.0beta3 September 11, 2006
Version 5.1.0beta2 August 9, 2006
Version 5.1.0beta July 5, 2006
* Version 5.0.9 February 20, 2006
* Version 5.0.8 February 8, 2006
Version 5.0.8beta5 February 3, 2006
Version 5.0.8beta4 February 1, 2006
Version 5.0.8beta3 February 1, 2006
Version 5.0.8beta2 January 27, 2006
Version 5.0.8beta January 24, 2006
* Version 5.0.7 April 7, 2005
* Version 5.0.6 February 19, 2005
* Version 5.0.5 October 6, 2004
* Version 5.0.4 May 22, 2004
* Version 5.0.3 February 27, 2004
* Version 5.0.2 December 24, 2003
* Version 5.0.1 December 12, 2003
* Version 5.0.0 December 5, 2003
Version 5.0.beta31 April 29, 2003
Version 5.0.beta30 April 25, 2003
Version 5.0.beta29 March 10, 2003
Version 5.0.beta28 January 14, 2003
Version 5.0.beta27 November 13, 2002
Version 5.0.beta26 November 3, 2002
Version 5.0.beta25 October 15, 2002
Version 5.0.beta24 October 4, 2002
Version 5.0.beta23 September 20, 2002
Version 5.0.beta22 August 30, 2002
Version 5.0.beta21 July 25, 2002
Version 5.0.beta20 July 20, 2002
Version 5.0.beta18 May 31, 2002
Version 5.0.beta17 May 1, 2002
Version 5.0.beta16 April 5, 2002
Version 5.0.beta15 March 26, 2002
Version 5.0.beta14 February 25, 2002
Version 5.0.beta13 February 22, 2002
Version 5.0.beta12 January 2, 2002
Version 5.0.beta11 December 20, 2001
Version 5.0.beta10 November 20, 2001
Version 5.0.beta09 November 6, 2001
Version 5.0.beta08 October 19, 2001
Version 5.0.beta07 August 10, 2001
Version 5.0.beta06 July 30, 2001
Version 5.0.beta05 July 23, 2001
Version 5.0.beta04 July 20, 2001
Version 5.0.beta03 July 19, 2001
Version 5.0.beta02 June 30, 2001
Version 5.0.beta01 June 8, 2001
Version 5.0.beta00 April 6, 2001
David W. Caress (firstname.lastname@example.org)
Monterey Bay Aquarium Research Institute
7700 Sandholdt Road
Moss Landing, CA 95039
Dale N. Chayes (email@example.com)
Lamont-Doherty Earth Observatory of Columbia University
Palisades, NY 10964
MB-SYSTEM COPYRIGHT, LICENSING AND CAVEAT:
MB-System Copyright (C) 1993-2011 by
David W. Caress (firstname.lastname@example.org)
Monterey Bay Aquarium Research Institute
Moss Landing, CA 95039
Dale N. Chayes (email@example.com)
Lamont-Doherty Earth Observatory
Palisades, NY 10964mbbackangle.manl
All Rights Reserved
All Wrongs Remembered
The MB-System source code is distributed under the GNU
General Public License as formulated by the GNU Project.
Early MB-System distributions were described as "public
domain", which meant there was no restrictions whatsoever
on the use of the code. For over a decade we have adopted the
more restrictive GNU GPL license in order to insure that
anyone who distributes software based in whole or in part on
MB-System also distributes the modified MB-System source
code and any additional source code.
The GNU GPL also prohibits the distribution of proprietary
executables linked with MB-System libraries unless the
source code is also distributed. We waive this restriction
on distributing proprietary compiled programs for specific
software products if and only if those software products
meet the following two conditions:
1) The software product was created, sold, and
delivered to customers using source code derived from MB-
System release 4.6 distributions.
2) The software product was sold and delivered to
customers prior to January 1, 2001.
The MB-System does not come with any warranties, nor is it
guarenteed to work on your computer or to do anything useful. The
user assumes full responsibility for the use of this system. In
particular, David W. Caress, Dale N. Chayes, the Lamont-Doherty
Earth Observatory of Columbia University, the Monterey Bay
Aquarium Research Institute, or any other individuals or
organizations involved in the design and maintenance of the
MB-System software package are NOT responsible for any damage
that may follow from correct or incorrect use of these programs.
MB-SYSTEM VERSION 5.3 RELEASE NOTES:
Formats 58 and 59 (third generation Kongsberg multibeam data):
Augmented code to handle bathymetry data in which beams are reported
as having valid soundings but actually have zero ranges and NaN
bathymetry, acrosstrack distance, and alongtrack distance values.
Formats 58 and 59 (third generation Kongsberg multibeam data):
Fixes to the handling of attitude ecords, particularly with regard
to writing the records.
Fixed attitude record output so that use of -K18, -K55, -K56, or -K57
results in output lines for all attitude records, even when position
or heading data are not available for interpolation.
Formats 58 and 59 (third generation Kongsberg multibeam data):
Fixed the i/o modules to successfully output attitude and netattitude
records identified as MB_DATA_ATTITUDE1, MB_DATA_ATTITUDE2, or
Added output of beam bottom detection algorithm (amplitude or phase)
to mblist. One can now use Q and q as valid output values that can
be included in the arguments to the -O option.
Added ability to output navigation data keyed to primary or
ancilliary attitude data. For instance, use of the -K18 option will
cause the mbnavlist output to occur for all attitude samples in the
primary attitude data stream. The timestamps will be those of the
attitude records, and any position, speed, or sonar depth values
requested will be interpolated onto the attitude timestamps.
Enabled the generation of AUV missions in which multibeam beamformed
data ("water column") are recorded in addition to bathymetry and
Fixed integration of MBARI AUV INS log data into the processing of
Reson 7k data.
Fixed a bug that rarely produced a failure of time lag correlation
Third generation Kongsberg data (formats 58 & 59:
Fixed handling of different attitude records, in that the code
now recognizes multiple sources of roll, pitch, and heave when
they appear in a datastream. The data records identified as the
primary attitude source are identified as type MB_DATA_ATTITUDE (18)
while ancilliary records will be identified as MB_DATA_ATTITUDE1 (55),
MB_DATA_ATTITUDE2 (56), or MB_DATA_ATTITUDE3(57).
Added -D option to invert foreground (normally black) and background
(normally white) colors in the interactive plots
Format 88 MBF_RESON7KR (Reson 7k multibeam data):
Fixed deallocation of MBF_RESON7KR data structures.
Fixed some filtering code in mb7kpreprocess.
Added -K option to mbrolltimelag - this duplicates the new -K option
in mbnavlist and is used when mbrolltimelag calls mbnavlist to extract
the roll time series.
Augmented mbnavlist to allow extraction of data keyed to data records
other than navigation or survey data. A new -Kkind option allows
users to specify output at the times of attitude, heading, or other
Programs mbedit, mbeditviz, mbnavedit, mbclean, mbprocess:
Added ability to disable file locking using the program mbdefaults
and the .mbio_defaults file in the user's home directory.
If a user disables file locking by running
then the programs mbedit, mbeditviz, mbnavedit, mbclean, and
mbprocess will not set new file locks and will ignore any existing
file locks. In short, a user can disable the entire file locking
mechanism in MB-System.
New macros mbm_multicopy, mbm_multidatalist, mbm_multiprocess:
Added three new macros authored by Christian Ferreira. These are
mbm_multicopy, mbm_multidatalist, and mbm_multiprocess. All three
are used to execute tasks on large numbers of swath files by starting
multiple processes in parallel. The mbm_multicopy macro accomplishes
copying of files from one format to another. The mbm_multidatalist
macro accomplishes the creation of ancilliary files. The mbm_multiprocess
macro accomplishes processing with mbprocess. These all require the
Parallel-Forkmanager Perl module available from www.cpan.org.
Added flagging by acrosstrack distance to mbclean. Also added esf
file locking for compatibility with mbedit and mbeditviz, and
fixed handling of old edits.
Fixed a problem with the footprint algorithm of mbgrid
that sometimes left holes that could not be filled by interpolation.
Added ability to mix constant altitude and constant depth behaviors
within a single AUV mission to mbm_route2mission.
Format 88 MBF_RESON7KR (Reson 7k multibeam data):
Fixes to handling of asynchronous attitude data in format 88 (Reson s7k)
and calculation of time lag estimates.
Adjustments to the default plots of segy data by mbextractsegy.
Fixes to generation of MBARI AUV missions by mbm_route2mission.
Format 88 MBF_RESON7KR (Reson 7k multibeam data):
Fixed extraction of raw, asynchronous attitude data from Reson 7k
data using rollpitchheave records (e.g. from the MARUM AUV), which in
turn fixes the calculation of attitude time lag estimates using
Fixed application of time lag model by mb7kpreprocess for the case
of Reson 7k data using rollpitchheave records (e.g. from the MARUM AUV).
Added -UN option to mblist that ignores output of lines
associated with zero longitude or latitude values. This option
will be used by mbdatalist to create *.fnv files.
Format 71 MBF_LDEOIH (generic swath):
Provided a means to continue using the old definition of
swath format MBF_LDEOIH (format 71) for fbt files.
Users can now use mbdefaults to set the format 71 version that
will be generated when fbt files are created by mbdatalist and
is executed, the .mbio_defaults file in the user's home directory
will be altered so that all new fbt files are in the old format.
The purpose of this backwards compatibility is to allow users to
take advantage of the Fledermaus capability for editing bathymetry
in MB-System processing environments. This involved changes to mbcopy
as well as to the MBF_LDEOIH i/o module.
Changed the swath data import code so that sections will be created even
when all beams have been flagged as bad. This is to allow surveys
to remain intact, with no breaks, because the concept of a continuous
survey is increasingly important in MBnavadjust. Also altered the
status displays and listings to show survey id along with file and
Format 71 MBF_LDEOIH (generic swath):
Updated the definition of swath format MBF_LDEOIH (format 71),
which is used for the "fast bathymetry" or *.fbt files in MB-System
processing environments. The previous form of *.fbt files had a
serious limitation in that bathymetry from multibeams operated
near the seafloor in deep water did not represent the full
numerical resolution of those data. The updated format allows for
depth and distance resolution to 0.001 m even in the deep ocean.
Old *.fbt files are read transparently, but newly written files
will be in the new form.
IMPORTANT: In order to avoid compatibility issues, all users
operating on the same projects should upgrade to this version or
higher once one user upgrades.
Format 88 MBF_RESON7KR (Reson 7k multibeam data):
Updated support for Reson 7k data to include the "1022" record.
We still don't know what this is, but the code now reads and
writes it without complaint.
Fixed mbinfo handling of swath files with no good data
(Thanks Suzanne O'Hara)
MBIO function mb_get_format():
Changed mb_get_format() function in mb_format.c so that formats
are inferred from parameter files if they exist.
Supplemented informational output to stdout from MBnavadjust.
Format 71 MBF_LDEOIH (generic swath):
Started development of new version of format 71 (mbf_ldeoih).
Fixed translation of beam quality values into MB-System beam flags
Fixed calculation of line breaks by mbextractsegy.
MBIO function mb_get_format():
Augmented mb_get_format() in mb_format.c to look for the format id
value in mbprocess parameter files before trying to make sense of
Fixed MBedit's handling of files not conforming to the MB-System
filename suffix convention.
Allow users of mbm_xyplot to specify both axis annotation with the
-B option and axis labeling with the -L option.
Implemented workaround for MBeditviz crash problem on Poseidon Linux.
MBeditviz would shut down whenever a second map view was requested with
an Xserver error named GLXBadContextTag. Previously, the OpenGL rendering
within X11/Motif widgets has been implemented with the graphics calls
always sent through the X11 window server. I have now set the code to
allow direct rendering through hardware when that is possible. For reasons
I do not understand, this change results in MBeditviz no longer crashing
on my Poseidon Linux test machine.
Programs mbedit, mbnavedit, mbeditviz:
Fixed font issue for MBedit, MBnavedit, and MBeditviz by using courier
rather than monaco as a fixed-width font for the available file list
Added support for the "Rolling Deck to Repository" (R2R) navigation format
as both an MB-System format (format id 172) and an mbprocess navigation
merging format (NAVFORMAT=10)
Macros mbm_grdplot and mbm_grdtiff:
Modified mbm_grdplot and mbm_grdtiff so that the -Y option strictly enforces
the colormap min max bounds set with the -Z option.
Formats 132 MBF_EDGJSTAR and 133 MBF_EDGJSTR2 (Edgetech Jstar):
Fixed support for Edgetech Jstar files (formats 132 and 133) so that the
output of mb7k2jstar and mbprocess are compatible with Edgetech programs.
Programs mbedit, mbeditviz, and mbnavedit:
Added file locking to mbedit, mbeditviz, and mbnavedit. All three programs
can now load datalists and display lists of files available for editing.
These lists show whether the file has been previously edited and if the
file is locked. Locked files cannot be loaded or edited. As before, mbprocess
also locks files during processing and skips files that are locked by
other programs. The program mbdatalist can be used to detect (-S) and remove
(-Y) orphan file locks in files referenced by datalist structures.
Fixed bug in mbprocess.c involving parsing of NMEA GGA strings when
reading in navigation for merging with survey data.
Changed MBnavadjust to allow more file modes, in turn allowing
more control over which data has the most influence over the navigation
solutions. In addition to the previously existing modes (Fixed, Good, Poor),
surveys can now be set to FixedXY and FixedZ modes where the navigation
of the files so identified will have the specified coordinates fixed
(unadjusted) and the other coordinate(s) treated as Good. In particular,
this allowed us to simultaneously adjust navigation from overlapping
MBARI Mapping AUV and ABE surveys in which the Mapping AUV pressure depth
was clearly more accurate than the ABE vehicle depths. By setting the
MBARI data to mode FixedZ, we were able to force the solution to adjust
the ABE navigation to match the Mapping AUV vertical reference, while still
allowing lateral (XY) adjustments of all the AUV navigation.
Changed MBnavadjust to output user, cpu, and time of changes to
project files and as comments to the adjusted navigation files. Also changed
mbprocess to handle comments in adjusted navigation files.
Fixed -C option of mbm_copy.
Format 192 MBF_IMAGEMBA (Imagenex DeltaT):
Fixed i/o module for extended format Imagenex DeltaT data (format 192) by removing code
that recalculated bathymetry unnecessarily.
Added -Y option to mbdatalist to remove any leftover lock files.
Parsing *.inf files:
Fixed bug in parsing file start and end times in *.inf files.
MBIO functions mb_defaults(), mb_env(), and mb_lonflip():
Changed mb_defaults(), mb_env(), and mb_lonflip() functions to always return
MB_SUCCESS status even when ~/.mbio_defaults file does not exist. Working with
system defaults hould not be an error.
Changed mbeditviz_import_file() function in mbeditviz_prog.c to reset global
status to MB_SUCCESS on entry.
Incomplete implementation of Dana Yoerger's changes to mbclean. Not yet tested.
Increased verbosity of mbnavedit for -X option.
MB-SYSTEM VERSION 5.2 RELEASE NOTES:
Augmented mbotps to output tide in both
year month day hour minute seconds tide
using a -Atideformat command line option.
Added new kluge processing option to mb7kpreprocess (-K2)
that zeros alongtrack angles. This fixes some recent sample
Reson 7k data.
Recast lever arm calculation due to roll and pitch rotations
More changes to the handling of current generation Kongsberg
data in mbr_em710raw.c.
Fixed handling of beam alongtrack distance values during bathymetry
recalculation by raytracing.
Improved beam info display in mbeditviz.
Fixed mbnavadjust recalculation of the 3D cross-correlation function
after changing the vertical offset.
Changed mbr_image83p.c, mbr_imagemba.c, and mbsys_imae83p.c so that
calculation of beam angles happens during the first read of the data.
Replaced strsep() with strtok() in mbr_edgjstar.c. This is to allow
MB-System to be more easily built on Solaris systems.
Fixed mbset so that it recognizes sidescan cutting commands (SSCUTNUMBER,
Altered -P option in mbsvplist. Previously this option (which turns on
bathymetry recalculation by raytracing in mbprocess using the water sound
speed models extracted from the data files) set the raytracing to
correct the takeoff angles for the difference between the sound speed
used for beamforming (surface sound velocity or SSV) and the sound speed
at the sonar depth in the water sound speed model. Now, mbsvplist sets
mbprocess to leave the takeoff angles unchanged. This is more more
consistent with the expectation that raytracing through the original
sound speed model should yield values matching the original bathymetry.
Altered mbprocess bathymetry recalculation by raytracing to better handle
cases where large heave values bring the sonar array above the nominal
water line. In this case, a static heave offset is calculated, raytracing
is done from the top of the water sound speed model, and the heave offset
is added to the raytracing result.
Improved the autopicking function of mbnavadjust.
Fixed a bug in handling the per-beam heave values in current generation
Kongsberg data (formats 58 & 59).
Changed mbm_route2mission to allow command line argument control of AUV
speed during ascent/descent, survey lines, and transit lines. Also added
control of the "deltaDepthRestart" value controlling how far up the AUV
should float after an altitude abort before resuming the mission.
More changes to support of Kongsberg current generation multibeam
data in formats 58 and 59. As previously noted, the angles used to recalculate
bathymetry from raw travel times by raytracing are estimated by iteratively
seeking to match the original bathymetry reported by the sonar. These angles
are estimated when data are first read as format 58 and then embedded in
format 59 data (presumably when mbcopy is used to translate format 58 files to
format 59)for later use by mbprocess. The default algorithm matches the original
bathymetry to within about 0.1% altitude by calculating an effective heave for
each ping and takeoff angles for each beam. A second algorithm (which can only
be activated by uncommenting an #ifdef statement in mbr_em710raw.c) matches the
orginal bathymetry by modifying both the takeoff angles and the travel time
measurement - this achieves matching of the original bathymetry to about 0.02%
of altitude. Use of the second algorithm is not recommended because modifying
the fundamental observations (travel times) to match the sonar's calculation
is, well, unsatisfying and wrong. The bad option is there because I took the
time to code it to see how well it would work.
The function mb_get_info() now properly applies the lonflip value. This
in turn allows mbgrid to infer correct bounds in situations where the
lonflip is important (e.g. data across the +/-180 degree boundary when
lonflip is -1 or 1).
Changed MBnavadjust so that an "Inversion Smoothing" value replaces a
no-longer-used "Inversion Precision" value. This value, accessible under
the Options dialog, sets the importance of smoothing in the adjusted
navigation model. The default is 4.00, and possible ranges are 0.10 to
10.0, where the smoothing penalty weight applied to the first and
second derivatives of the adjusted navigation perturbation is ten
raised to this power.
Added support for Kongsberg EM2040 multibeam in formats 58 and 59.
Changed MBnavadjust so that default settings for section length and
contour interval are appropriate for high resolution surveys such
as those produced by AUV's equipped with >100 kHz multibeams.
Fixed plotting macros mbm_plot, mbm_grdplot, mbm_xyplot, mbm_grd3dplot
so that the calls to display postscript graphics using gv in the output
plotting scripts scale plots to fit on the screen.
Fixed mbm_route2mission to use proper camera control when generating
mission scripts for the MBARI Benthic Imaging AUV.
Added -W option to set the desired swath width of sidescan output from
Updated the i/o module supporting OMG HDCS (the John Hughes Clarke format)
to handle HDCS version 4. These mods contributed by Bob Covill.
Fixed mb7kpreprocess to check for and ignore repeated ancilliary and
survey data records.
Update GSF code to version 3.02, released 28 September 2010.
Set MBeditviz to resolve format id's in output parameter files when
filenames do not follow known suffix conventions.
Added support for a number of new data records in the Reson 7k data format,
following the 19 June 2009 addendum to the 7k format version 1.00 specification.
Changed mb_malloc() calls in mb_format.c and mb_buffer.c to mb_mallocd() calls
for greater debugging capability.
Added some debugging statements to mbprocess.c.
Changed mbm_grdplot macro to use the variable names embedded in seismic section
GMT grid files generated by mbsegygrid.
Improved autopicking in MBnavadjust to the point where it is actually useful.
Also fixed bug that caused eventual seg faults when analyzing many crossings
in a single session.
Fixes to Reson s7k (format 88) support allowing mbnavlist to use position
records as navigation channel 3. This in turn allows mbrolltimelag to work
with Reson 7k data collected by MARUM (University of Bremen).
Added file name and line output to debug messages in mbr_l3xseraw.c to aid
in later work to fully support the current XSE data format.
Set mbrolltimelag to only attempt to generate a variable time lag model
plot if more than one robust time lag values have been generated.
Updating in preparation for beta release version 5.1.3beta1874.
Moved src/mbaux/mb_rt.c to src/mbio/mb_rt.c and made this
raytracing code part of libmbio rather than libmbaux.
Fixed deallocation of raytracing data in mbprocess.
Added source type flag (CW or chirp) definition to src/mbio/mb_status.h
Add mb_io_pulses() function definition to src/mbio/mb_io.h as a
pointer for functions in i/o modules that extract source type (CW or chirp)
for individual beams. Added mb_pulses() function calls to src/mbio/mb_define.h
Added mbsys_simrad3_pulses() function to i/o module for current
generation Kongsberg (Simrad) data in src/mbio/mbsys_simrad3_pulses().
Altered i/o module for current generation Kongsberg (Simrad) data
so that bathymetry calculation using raytracing works correctly.
This involves src/mbio/mbr_em710raw.c and src/mbio/mbsys_simrad3.c.
The problem is that the current raw beam and angle datagram stores
travel times and angles uncorrected for motion and attitude. My
attempts to properly calculate the attitude and motion
compensation have not succeeded (as measured by succeeding in replicating
the original bathymetry when used with the original sound speed model).
This version achieves accurate estimation of the compensated angles
for each sounding by finding a ray (through iteration) that replicates
the original sounding position by raytracing through the original
sound speed model. The depth difference is stored as a per-beam heave
correction, and the angles are stored normally. This calculation is
done only on the raw data format 58. When mbcopy is used to translate
the data to the processing format 59, the compensated angles are stored
in extended bathymetry datagrams. This scheme suffices to allow full
processing of the data, but is not satisfying in that I clearly still do not
fully understand the raw data format
Fixed issues with a number of manual pages.
Further changes to mbnavadjust:
- The inversion stops if it is diverging rather than converging on a navigation adjustment model solution.
- The program will insure that all crossings have the later section second by flipping the order of crossings if necessary while reading an old project.
- The program also resorts the crossings when it reads a project.
Slight modification to mbm_grdplot map annotation scheme (degrees + minutes
for maps up to 4 degrees across where only degrees shown before for maps
wider than 1 degree).
Changes to mbm_route2mission to accomodate new capability of MBARI
Mapping AUV to record full water column data from the Reson 7125 multibeam.
Move mb_mergesort() function prototype from mb_esf.c to mb_define.h.
MBnavadjust augmented with capability to check for new crossings and
to recalculate overlap coverage of existing crossings after inversions.
Users can also toggle previously analyzed crossing to "unset" status.
MB7kpreprocess augmented to handle Reson 7111 data sample from NGDC.
Fixed incorrect listing MB_DATA defines in mb_status.h.
Added per-beam heave data to mbsys_simrad3 ping structure to support
bathymetry recalculation for EM710, EM302, EM122 data. Defined new
processed bathymetry record for use in format 59, and set code to
transparently read the old record and write only the new record.
Mostly fixed handling of attitude data in bathymetry recalculation.
There still seems to be a problem with handling heading data.
Fixed error in beam angle calculation for third generation Simrad multibeam
data (formats 58 and 59, EM710, EM302, EM122) that made bathymetry recalculation
by raytracing badly wrong.
Fixed problem where mb7kpreprocess made beams that should have been null
valid but flagged.
Fixed bug that caused mbclean to fail to actually flag some beams
identified for flagging.
Added button to zero all z offsets on crossings for cases where tidal
corrections have been made before data were imported into a mbnavadjust
Fixed mbgetesf manual page.
Fixed mode control in mbgetesf so one can extract the complete beam flag
state from a swath file. MBgetesf is now used by MBeditviz to get the
original beam flag state of raw swath bathymetry when processed files
Fixed sorting of beamflag edit events in edit save file data as used by
MBedit, MBeditviz, MBclean, MBareaclean, and MBprocess. This fixes a
problem wherein some edits performed by MBeditviz were dropped by
MBprocess. Also, MBgetesf is now used by MBeditviz to get the original
beam flag state of raw swath bathymetry when processed files are read.
Fixed yet another bug in MBnavadjust - this time getting the
importation of old project files correct and, more importantly,
getting the z-offset sign correct in the Naverr display.
Updated mb7k2ss man page.
Fixed bug in mbrolltimelag regarding popen/pclose use.
Fixed bug in mb_process.c file locking.
Fixed mbotps man page.Fixed bug in MBeditviz and added hot keys for
editing (only partially successful because it's hard to reliably get
the keyboard focus onto the rendering OpenGL widget.
Fixed mbotps man page.
Augmented MBnavadjust to allow referencing high resolution bathymetry
(e.g. AUV surveys) to lower resolution bathymetry (e.g. hull mounted
multibeam surveys). The navigation of specified files (typically the
data collected from the surface where GPS is available) can be fixed
so that everything else floats and is adjusted relative to those data.
mbprocess - improved error reporting to show why files are not being processed.
mbmosaic - fixed aspects of the footprint calculation, particularly
fixing a bug that prevented footprints from being fully covered.
Added -S option to mbprocess for debugging file status values used to
determine whether processed data files are "out of date".
Greatly improved mbnavadjust by adding a interim solution for a smooth
navigation adjustment model fitting ties to fixed (immovable) data and
by making all of the internal crossing and tie conventions consistent.
MBnavadjust now outputs version 3.0 nvh project files, but will transparently
read and translate earlier version nvh project files.
From now on beta releases will be named according to the corresponding
source archive revision in the MB-System Subversion source code archive.
This will allow us (and users) to more precisely track code changes relative
to the beta releases.
Fixed support of Reson 7k data (format 88) to work with MARUM
AUV data. Includes changes to mb7kpreprocess.
Fixed 64 bit issues with Simrad, Reson 7k, and L3 XSE data
(formats 58, 59, 88, 94).
Fixed 64 bit issues with mbnavedit, mbclean, and mbneptune2esf.
Added buttons to MBedit to immediately go to the start or end of the data.
Fixed sidescan beamwidths used by the Edgetech Jstar format i/o
modules (formats 132 & 133).
Fixed memory management errors in MBgrdviz and mbfilter.
Fixed more 64 bit and memory management issues in MBeditviz and MBgrdviz.
Added a plot reset button and an ability to autoscale on unflagged soundings
only in the MBeditviz 3D sounding cloud display.
Fixed handling of site and route points far from the display view in MBgrdviz.
Put actual (but still incomplete) text into the MBeditviz man page.
Changed print format for unsigned long values from %ld to %lu to avoid copious
warning messages in Ubuntu.
MB-SYSTEM VERSION 5.1.2 RELEASE NOTES:
Fixed pixel calculation algorithm in mbmosaic. Previously, sidescan
data from each pixel were being treated as extending over a
larger area than is correct.
Ressurected program mbfilter with an new implementation. Allows
low pass, high pass, and contrast enhancement filtering of amplitude
and sidescan data. Implemented so that filtered data are stored
in ancilliary files ending in *.ffa (amplitude) and *.ffs (sidescan).
The data type selection options of mbswath, mbm_plot, and mbmosaic
all now allow users to select filtered data.
Improved handling current generation Simrad multibeam data (e.g.
EM710, EM122) through formats 58 (MBF_EM710RAW) and 59 (MBF_EM710MBA).
There still seems to be a problem with calculating the takeoff angles
for recalculating bathymetry by raytracing, probably due to a problem
interpolating the correct roll and pitch values.
Changed processing kluge 004. Previously kluge 004 caused mbprocess
to not output survey data with time stamps prior to the last good ping.
Now the dropped data will have time stamps prior to or equal to that
of the last good ping.
Fixed problem reading and writing format 16 (MBF_SBSIOSWB) data on
Added support for new ROV Doc Ricketts navigation data as format 165.
Added a Gaussian mean smoothing algorithm to MBnavedit. This is primarily
intended for smoothing USBL or LBL based navigation of submerged platforms
(e.g. ROVs or submersibles).
Altered the install_makefiles perl script used to generate the makefiles
during installation of MB-System. The install_makefiles script now
automatically determines whether the local architecture is big or
little "endian". Consequently, the "BYTESWAPPED" parameter no longer
needs to be set in install_makefiles, and has been removed. The "GRAPHICAL"
parameter has also been removed. Now, install_makefiles builds the
graphical utilities only if the Motif libraries and header file
location are specified with the MOTIFLIBs and MOTIFINCDIR parameters.
Also, install_makefiles now allows users to specify the use of independent
installations of the GSF and PROJ4 libraries. By default, the versions of
these libraries distributed with MB-System will be built and used.
Fixed bug in mbedit in which the view mode switched spontaneously after
loading a new file and advancing the view buffer.
Improved efficiency of attitude interpolation when reading Simrad multibeam
data. This greatly improves the speed at which Simrad multibeam data files
are read and processed.
Fixed bug in mbm_grdplot which sometimes produces broken color tables.
Updated GSF library code to GSF release 3.01.
Fixed bug in EM710 support (format 59) involving netattitude datagrams.
Changed licensing from GPL version 2 to GPL version 3.
Fixed MB-System compatibility with GMT 4.5.0
Fixed mbps memory handling.
MBgrdviz now displays ping/shot numbers when navigation is picked.
MBextractsegy now embeds line numbers into the output segy files.
Fixed mbauvloglist to work with all MBARI AUV logs.
Fixed mbm_route2mission so that the AUV mission segment duration always
corresponds to the actual mission segment length.
Added file locking to the mbprocess system. Now, when mbprocess starts
working on a swath file, it creates a *.lck file parallel to the swath file
and deletes the *.lck file when processing is complete. Other instances of
mbprocess will skip a locked file. This allows users to run multiple instances
of mbprocess on multiple machines on the same datalist structure. This
crude sort of parallel processing can greatly speed up reprocessing of
large datasets. This locking functionality will be extended to the processing
tools mbedit, mbeditviz, and mbnavedit in the future.
Fixed bug in SeaBeam 2112 support that misplaced some sidescan data
on little-endian machines.
Fixed the mbview library so that MBgrdviz will enable display of routes,
sites, and navigation on all open windows when such data is loaded into
one of the windows.
Fixed cause of frequent MBgrdviz crashes when displaying multiple windows.
Implemented timed background plotting in MBgrdviz so that full resolution
displays automatically appear within a few seconds of the end of mouse
interactions. Previously one had to click the "Full" button to get a full
resolution view. At this point, the redisplay fails to happen occasionally.
Greatly increased speed of reading third generation Simrad data (formats 58 & 59,
EM710, EM302, EM122).
Fixed mb7k2ss to avoid creating shadow zones in the extracted sidescan.
Fixed support for dual-head Simrad EM3002 data (formats 56 and 57).
Changed mbdatalist so that the -Z option (create datalistp.mb-1 datalist
file referencing an input datalist with the $PROCESSED tag set) can be
executed in conjunction with creating ancilliary files with the -O or
Updated proj library to 4.7.0 release. If the installing user chooses to
use the proj distributed with MB-System, then the programs proj and geod
will now be built and installed in the bin directory.
Rooted through the entire codebase fixing obvious failure points for
64-bit compilation. Most of the issues identified so far relate to
storing address values in variables declared as "int".
Completed moving the code base into subversion hosted at Lamont by
first updating the subversion archive to 5.1.2beta11 and then committing
the copious mods related to the 64-bit cleanup.
Changed the suffix of the Perl source files in src/macros from
".perl" to ".pl".
Changed the section name for the MB-System man pages from "l" to "1"
for programs and "3" for libraries and functions. This is in line with
common practice and follows a similar change by GMT.
Modified support for Edgetech JSTAR sidescan/subbottom files (formats 132 & 133)
to work with a new data sample from GEOMAR. MB-System can now automatically
distinguish between low frequency (132) and high frequency (133) sidescan
Modified support for Reson 7k multibeams (format 88) to work with a
new data sample from GEOMAR. Altered interpretation of initial beam quality
flags, improving initial beamflags.
Fixed problems with survey generation in mbgrdviz.
Improved read-only support for XTF format Reson 8XXX data
(format 84 MBF_XTFR8101), but still don't have time stamping of
attitude data correct.
Augmented edit save file format and beam flag handling in order to deal
successfully with multiple head multibeams that produce multiple pings
with identical time stamps. This affects mbprocess, mbedit, mbeditviz,
mbclean, and mbareaclean.
Added program mbotps to generate open ocean tidal models at specified
times and locations using the Oregon State Tidal Prediction Software
(OTPS) package. This program will build whether OTPS is installed or
not, but will only work if the OTPS programs are installed and in the
user's path. The OTPS predictions are based on global barotropic inverse
tidal solutions obtained with OTIS and available for download at:
Added program mbsegypsd to calculate sonograms from segy time series data.
Sonograms are 2D displays of power spectral density (PSD) functions (y-axis)
versus time (x-axis). One PSD is calculated for each trace in the segy file.
This program requires linking with the FFTW (Fastest FFT in The West) package.
Fixed many more issues relating to clean compiles on 64 bit machines.
In particular, store GSF and netCDF data stream id's in their own
int-size variables rather than a pointer-size FILE variable, and
declare mbview instance parameters as size_t rather than int so that
passing these values through Xt event notify function calls as pointer
values is clean. Also changed casting of pointer values to long for
debug printing so that the pointer values are now casted to size_t
values. This should allow for compatibility with Windows 64 bit builds,
as Windows 64 bit C has a different type model than the rest of the
universe (e.g. long = 32 bit on Windows but long = 64 bit for gcc).
Fixed a few more issues relating to clean compiles on 64 bit machines.
We're iterating towards a working version by getting problem reports
from people like Hamish Bowman, Bob Arko, and Bob Covill.
Fixed EM3002 support to reliably detect whether data comes from a single
or double head sonar (formats 56 & 57).
Fixed problem with EM710 support (formats 58 & 59).
Incorporates all changes listed above.
Fixed memory management bug for formats 56 and 57 (Simrad EM3002 etc).
MB-SYSTEM VERSION 5.1.1 RELEASE NOTES:
Fixed longstanding error in src/mbio/mb_angle.c in the application
of roll and pitch angles. Previously, the pitch rotation was applied
first, which is incorrect, but only produced obvious errors with
large pitch values. Now roll is applied first, and the translation
between sonar coordinates and raytracing coordinates is correct.
Ping number, and more importantly for seismic data, shot number
annotation of navigation tracks is now supported by mbm_grdplot.
Improved handling of navigation plotting and annotation by
mbcontour, mbm_plot, and mbm_grdplot. It is now easier to specify
time, ping number, and filename annotation of navigation tracks.
Major modifications have been made to MBnavadjust. MBnavadjust
now picks offsets in z (depth) as well as x (longitude) and
y (latitude). An autopicking algorithm has been implemented,
and a display of the optimal navigation adjustment model added
The acrosstrack view of MBedit now shows the real alongtrack
positions of the soundings.
Fixed bug in mbsys_gsf.c that incorrectly calculated the alongtrack
distance of sidescan samples in "snippet" sidescan data contained in
GSF format (121) multibeam data. On occasion this bug produced
egregiously wrong alongtrack values.
Fixed bug in mbgrid that caused failure to write Arc Ascii grids
with option -G4.
Augmented i/o module for XSE format (94) to support current version
of SeaBeam 2112 sonars on WHOI ships. This data format now has
an MB-System extension to its multibeam records that includes
interpolated navigation values. Previously only asynchronous
navigation was handled.
Fixed bug in old Simrad i/o module regarding EM121A data.
Added prototype of MBeditviz, a tool that combines 3D bathymetry
editing and patch test capability.
MBeditviz can be started from MBgrdviz. Any selected files (using
navigation selection) will be loaded.
Fixed further issues with the XSE format i/o module.
Added swath file copy function to mbdatalist.
Fixed calculation of grazing angles in mblist by adding sonar
depth to the calculation.
Added some additional large format page sizes to the plot macros
mbm_plot, mbm_grdplot, mbm_grd3dplot, mbm_xyplot, and mbm_histplot.
Added mblist capability to output tables using column delimiters
other than tabs (e.g. commas to make csv files).
Modified mbnavedit so that any nav points that repeat previous lon
and lat values will be automatically flagged as bad.
Fixed footprint calculation in mbmosaic, correcting problems in
sidescan mosaic creation.
Altered mbm_utm to work with comma delimited input data as well as
white space delimited data.
Updated proj library to current version 4.5.0.
Updated gsf to the current version 2.07.
Sidescan extracted from MBARI Mapping AUV data can now be laid out
on a topography grid rather than laid out with a flat bottom
The sidescan and amplitude correction scheme (mbbackangle & mbprocess)
can now use a topography grid to calculate grazing angles.
Altered several programs so that sidescan data can have valid zero or
negative values. Stopped applying a shift to Simrad sidescan and amplitude
values to force them to be positive.
Added decimation feature to mblist, mbnavlist, and mbsegylist. Also added
and/or fixed the delimiter, segment, and binary output features for all
three listing programs.
Added mbcopy capability to merge bathymetry and beam flags from a third
"merge" swath file. This is a Gordon Keith contribution.
MB-System programs will now recognize filename suffixes of the form
".MB***" as well as ".mb***". Capitalized versions of many vendor
format suffixes are also supported.
Fixed error in mblist manual page.
Fixed mbswath handling of time gap errors that made plotting of
single beam data problematic.
Fixed problem with processing mgd77 data. Can now use mbedit to process
single beam echosounder bathymetry.
Made checking for data min maxes and bounds more robust to improve
parsing through large databases.
Added some generic gain values to mblist as part of the "raw" list.
To do this, added mb_gains() function to MBIO. This is currently
defined for SeaBeam 2112, Simrad, and Reson 7k multibeams.
Added new program mbabsorption to calculate the sound absorption of
seawater as a function of salinity, pH, temperature, depth, and
Changed macro mbm_grdplot so that the -T option causes the coastline
to be drawn without grayscale filling of dry areas. To obtain the
previously default behavior, add -MTG128.
Added support for newer Simrad multibeam data (e.g. EM710) in
vendor format MBF_EM710RAW (format id 58) and processing
format MBF_EM710MBA (format id 59)
Updated format MBF_OMGHDCSJ (151), which supports the John Hughes
Clark HDCS (SwathEd) format, to handle all of John's "version 3"
data. John's "version 4" format is not yet supported.
Added calculation and use of three dimensional covariance in
the xyz nav offsets used by mbnavadjust.
Added processing kluge006 to mbprocess. This "kluge" allows users to
change the sonar draft value without changing the calculated bathymetry.
This fixes a problem in which Atalante Simard data were exported by
Caris into GSF with an incorrect sonar draft.
Added program mbtime to allow command line conversion between calendar
times and unix time values.
Fixed mbprocess so that changes to the sonar depth/draft derived from
mbnavadjust are output to the processed data. Previously the bathymetry
was corrected, but not the sonar depth/draft.
Fixed formats 58/59 to support EM302, EM122 in addition to EM710. Also
supported "network attitude" datagram as source of attitude.
Changed mbnavadjust inversion to use simplistic iterative relaxation
rather than a full matrix solver. This targeted solver is faster and
avoids some bad behavior around survey starts and ends.
Fixed mbedit scaling for swath widths less than 6 m.
Added formats 191 and 192 to support Imagenex Delta T multibeams.
Format 191 supports the 83P vendor format and format 192 is an
extended processing format. This format also supports data from
the Odom ES3 multibeam sonar.
Lengthened filename char arrays in mbedit, mbnavedit, and mbvelocitytool
to prevent possible overflows with large paths.
Updated the GSF code to new GSF version 2.09
Fixed support of UNB OMG HDCS format 151 to handle situation where
ancillary sidescan files are missing.
Added new program mbctdlist to allow mblist style text output of
CTD data from swath files. Initially relevant only to Reson 7k format data.
Applied patches to mbgrid and mbmosaic to handle lonflipping of bounds in
Added format 26 to support Hydrosweep DS data format used by SOPAC.
Fixed support for EM302 sonars.
Augmented mbgrid footprint gridding algorithm. When used with the -F5
option, mbgrid now does a first pass, low resolution grid to provide
a local slope estimate. During the second pass, final gridding,
individual beam footprints are tilted to reflect the local slope,
increasing the high-resolution fidelity of the resulting topographic
Enhanced the patch test capability of mbeditviz. MBeditviz can now be
used to model time lag as well as roll, pitch, and heading bias. In order
to use the time lag function, users must place files parallel to each
swath file containing time series of attitude, heading, and sonardepth.
These files contain the full asynchronous times series for heading,
sonardepth, roll, and pitch and the synchronous time series for roll
and pitch (asynchronous means the raw sensor data sampled more frequently
than the sonar ping rate, and synchronous means the sensor data sampled
at ping times).
Each time series file uses epoch times in seconds as the first column.
These files are:
*.ath - asynchronous heading - time heading
*.ats - asynchronous sonardepth - time sonardepth
*.ata - asynchronous attitude - time roll pitch
*.sta - synchronous attitude - time roll pitch
Asynchronous data are not available in all formats. When available, the
asynchronous data can be extracted using mbnavlist. The synchronous
attitude can be extracted using mblist.
Added support for EM12D data in the Caraibes netcdf form as format 76.
Contributed by Gordon Keith.
Removed a number of obsolete programs and macros from the distribution.
The following are no longer distributed with MB-System:
MB-SYSTEM VERSION 5.1.0 RELEASE NOTES:
The version 5.1.0 release of MB-System contains both bug fixes
and new capabilities relative to the 5.0.9 release.
A typo in the mbgrid man page was fixed.
A catastrophic error in the i/o module for the MBF_ASCIIYXZ
format was fixed.
The proj library was updated to use code from the Proj 4.4.9 release.
The proj and GSF libraries internal to MB-System have been
renamed libmbproj and libmbgsf to avoid name conflicts with
proj and gsf in package managers like fink for MacOsX.
Fixed mbprocess problem with per-beam heave values when applying
rotational bathymetry correction - previously did not initialize
heave values for non-null but flagged beams.
A minor change to mbbackangle to output the slope correction
status (-Q) in the coments in the output file.
Altered mbbackangle so that it outputs at least one table,
even if there are no survey pings in a file. This prevents
mbprocess from failing on data files with no survey pings.
Also altered mbbackangle so that it outputs a single global
correction table based on all of the input data. This can
be used for uniform correction of sidescan and amplitude
A new program mbrolltimelag calculates the cross-correlation
between roll data and the difference between the seafloor
slope and the roll. If there is a time lag in the roll data,
then the two series should have a cross correlation maximum
at a nonzero time lag.
New macro mbm_histplot for simple histogram plots.
MBgrdviz now has a profile display capability. Profiles can
be displayed and exported from two point picks, selected routes,
and selected navigation. The profile view is enabled from the
Fixed problems with output of ESRI ARC ascii grids from
mbgrid and mbmosiac.
Added interactive control over the target of precision of the
navigation inversion in MBnavadjust.
Added output of Winfrog pts file to mbm_route2mission.
Added output of Winfrog pts file to mbgrdviz.
MBedit now automatically chooses appropriate acrosstrack and
vertical annotation intervals when files are opened.
MBextractsegy now will extract subbottom data to segy files
in sequential line files based on waypoints in a route file.
The program generates a plotting shellscript that will in
turn generate profile plots of the segy data. Long lines will
be broken up into multiple plots.
Updated manual page for mbm_route2mission.
A bug in mbgrdtiff has been fixed that mislocated the geoTIFF
images by 1/2 pixel, thanks to Gordon Keith.
The plotting macros mbm_plot, mbm_grdplot, mbm_xyplot,
mbm_3dgrdplot, and mbm_histplot all now use the current
GMT default parameter PLOT_DEGREE_FORMAT rather than
the old DEGREE_FORMAT.
Upgraded the mbsystem/gsf code to GSF version 2.0.4. Since the
libgsf code now has #ifdef statements allowing compilation
under MacOSX, the code contained in MB-System no longer has
modifications relative to the generic GSF releases.
Added support for Simrad EM710 data in formats 56 and 57.
Fixed byte count problem with comment records in format 94 (XSE data).
Added GMT_end() calls to all programs calling gmtlib and pslib functions
so that GMT "advisory file locking" does not system() calls to GMT programs.
Put (void *) casts into qsort() calls to avoid compiler warnings.
The macro mbm_grdplot now handles calls for a linear plot with
decreasing x values (e.g. using -Jx-0.01/20 to specify the projection).
A new edit mode called "grab" has been added to MBedit. In this
mode, the user drags a rectangle on the ping display. When the mouse
is released, all unflagged beams within that rectangle are flagged.
All MB-System programs that read or write grids have been altered
so that they will work with GMT 4.1.3 built in the default fashion
(i.e. GMT built with "advisory file locking" enabled).
Fixed mbgrdtiff so that it creates geographic GeoTIFF images with
the longitude bounds consistent with the user's default or
specified lonflip value.
MBlist can now print out values associated with the port-most and
starboard-most non-null beams and pixels. Use the special '=' or '+'
characters in the -O option.
Support was added for a new MBARI ROV navigation format (format id 170)
Support was added for SEGY seismic data as single beam format (id = 160).
Heading values are stored in an unused space in the trace header - this
is an MB-System specific modification that will only be found in segy
files generated by mbextractsegy.
Ping number, and more importantly for seismic data, shot number
annotation of navigation tracks is now supported by mbcontour and
Fixed problem reading some Simrad multibeam data with slightly broken
MB-SYSTEM VERSION 5.0.9 RELEASE NOTES:
The version 5.0.9 release of MB-System is purely a bug fix
release, and includes only a few changes relative to the 5.0.8
The macros mbm_grdtiff, mbm_grd2arc, mbm_grd3dplot, mbm_grdinfo,
mbm_grdtiff, mbm_grd2geovrml, and mbm_grdcut have been fixed to
work properly with the output of the GMT 4.1 version of grdinfo.
The code in src/mbio/mb_swap.c has been fixed so it will compile
using the Solaris cc compiler.
MBprocess had been fixed so that it will read navigation
formats using julian days properly.
MBnavedit has been altered so that speed and acceleration weighting
values in the smooth inversion function can be less than 1.0.
MB-SYSTEM VERSION 5.0.8 RELEASE NOTES:
The version 5.0.8 release of MB-System includes several changes
relative to the 5.0.7 release.
MB-System 5.0.8 requires GMT 4.1 in order to build successfully.
The format 75 (MBF_MBNETCDF) i/o module has been altered to
handle multiple pings with the same time stamp without breaking
the beam edit (edit save file) scheme, which depends upon
unique time stamps. When multiple pings with the same time
stamp are encountered, the subsequent pings have multiples
of 2 msec added so that each has a detectably unique time
stamp. This issue relates to Thompson Seafalcon II multibeam
data; this sonar collects five simultaneous acrosstrack swathes.
Since this is a deep water sonar, the maximum 10 msec time
addition should not introduce excessive error in navigation
or other aspects of the data.
The Edgetech Jstar format is now supported through the new
MB-System formats 132 and 133. The Jstar format is relevant
to Edgetech FSDW systems (and related sonar products). The
FSDW systems include chirp subbottom profiler and dual
frequency chirp sidescan sonar. Format 132 treats the low
frequency sidescan as survey data, and format 133 treats
the high frequency sidescan as survey data.
Incorrect trace scaling of subbottom and sidescan data
in the Reson 7k format (format 88) has been fixed.
A new program called mb7k2jstar has been added that extracts
Edgetech subbottom and sidescan data from Reson 7k format (88)
files and writes that data in Edgetech Jstar (132/133) format
The comments in the install_makefiles script has been updated
to show the correct parameters needed to build MB-System on
a current Solaris system.
A feature to apply longitude and latitude offsets to navigation
data has been added to MBnavedit.
The program mbextractsegy can now extract subbottom profiler
data in segy format from both Reson 7k files (format 88) and
Edgetech Jstar files (formats 132 and 133).
MBprocess kluge005 has been defined to cause survey data
timestamps to be replaced by the timestamps of the corresponding
merged navigation records. This allows timestamps fixed using
MBnavedit to be inserted into processed data.
The program mbsegygrid can now apply a simple time-varying
gain to traces before gridding. This gain may begin at either
the start of each trace or at the seafloor arrival time. The
user may also set the length of time the gain is applied;
samples after the end of the gain window are zeroed.
The method for determining the best altitude value to be used
in correcting amplitude and sidescan data has been improved
in programs mbbackangle and mbbprocess.
The program mbgrid once again uses the Zgrid algorithm for
thin plate spline interpolation. The code allows for the GMT
Surface algorithm to be used instead by compiling with a
-DUSESURFACE compile flag.
The macros mbm_grdplot and mbm_grd3dplot have been altered so
that histogram equalization will work even if grdhisteq returns
a smaller number of valid intervals than requested.
The capability of plotting amplitude vs. grazing angle histograms
from mbbackangle results has been fixed for sidescan data.
A further significant architectural change was implemented for release
5.0.8 in order to support data formats that have no explicit maximum
number of beams or pixels. The memory management of arrays used to hold
bathymetry, amplitude, and sidescan data has been made dynamic. Now,
when data records are encountered that include larger numbers of beams
or pixels than will fit in the arrays previously allocated, those
arrays are reallocated to the required size. This is handled automati-
cally for all of the internal arrays used by MBIO functions. Of course,
applications using MBIO must allocate arrays that are passed into
functions like mb_read, mb_get_all, and mb_get to be populated by the
desired data. In order for these arrays to be managed dynamically, the
application must first register each array by passing the location of
the array pointer to a new function called mb_register_array.
The program MBgrdtiff has been altered so that the geoTiff images
produced are more generally portable.
A program called mbrolltimelag has been written to analyze attitude
time lag. This macro extracts raw attitude and apparent slope values
from multibeam data, and then calculates the cross correlation between
roll and apparent slope over a specified range of time lags. If there
is a an attitude time lag, then the bathymetry collected over a planar
bottom should be dominated by a jitter that is correlated, with a time
lag, with the roll signal.
The format 56 (vendor Simrad multibeam format) i/o module has been
altered to support data logged on byteswapped platforms (e.g. Windows
Intel PC's.). The Simrad multibeam formats 56 and 57 now support
recently introduced raw angle/range and water column imagery datagrams.
These i/o modules also now handle cases where the beams listed in a
sidescan datagram do not exactly match the beams listed in the corresponding
bathymetry datagram differently than before. Previously the entire
ping would have been dropped. Now, the ping is preserved but the raw
sidescan samples are not used to generate binned sidescan.
The program mbdatalist has been augmented to allow users to easily identify
some problems with swath data files and the processing parameters
specified in parameter files. The -n and -o options are used to generate
ancillary files for all swath files referenced through a recursive datalist
structure. These options now invoke mbinfo with the -n option, causing
the "inf" files to include listings of easily identified data problems.
The -q option of mbdatalist now extracts and lists these data problems
as well as problems with the processing parameters.The possible data problems
No survey data found
Zero longitude or latitude in survey data
Instantaneous speed exceeds 25 km/hr
Average speed exceeds 25 km/hr
Sounding depth exceeds 11000 m
Unsupported Simrad datagram
To populate the "inf" files of existing datalist structures with data problem
notices, use mbdatalist with the -n option.
The program mbvelocitytool now allows users to interactively set the
center as well as the range of the water sound speed model plot window.
Fixed mbm_plot so that it calculates reasonable plot bounds at high
The program mbset now accepts '=' as well as ':' as separators between
parameter names and values in -P option arguments (as suggested by
The install_makefiles script has been altered so that the editable
parameters are located towards the top of the file rather than below
the documentation of example settings for different operating systems.
The program mbareaclean now incorporates a mean filter as well as a
median filter (contributed by Gordon Keith).
The program mbmosaic will now mosaic grazing angle or acrosstrack slope as
well as amplitude or sidescan data (contributed by Gordon Keith).
The program mblist will now output some format specific values from
Simrad multibeams (formats 56 and 57). In particular, some
system parameters, raw amplitude values, and raw sidescan samples
may now be output (Contributed by Gordon Keith).
A new macro called mbm_makedatalist can easily generate a datalist
referencing all identifiable swath files in a specified directory.
There is a known but not understood bug in MBnavedit. When built on
SUSE 10 systems, use of the smooth inversion function causes the first
line of the output edited navigation to have NaN values for the
longitude and lattitude.
MB-SYSTEM VERSION 5.0.7 RELEASE NOTES:
The version 5.0.7 release of MB-System includes several changes
relative to the 5.0.6 release.
MBprocess and MBset now support merging sonar depth
(or draft) from separate time series files. This is
controlled by the SONARDEPTHMODE, SONARDEPTHFILE,
and SONARDEPTHFORMAT mbprocess parameters.
A bug in mbgrid has been fixed that affected the footprint
gridding algorithm used with bathymetry from sonars on
MBedit has new view options. The default is the the
traditional waterfall view. Users may now also view the
soundings from an alongtrack view perspective and an
acrosstrack view perspective without static vertical
offsets between pings. The view mode is controlled from
the View menu and from keyboard macros (characters '2',
'3', and '4').
The 5.0.6 release mistakenly left the code in mbr_em300raw.c
in debug mode, causing copious stderr output when reading
raw Simrad data (format 56). This has been corrected.
Problems with the output in debug mode of mbr_em300raw.c and
mbr_em300mba.c have been fixed.
The handling of the tickinfo string in the plot macros
mbm_plot, mbm_grdplot, mbm_grd3dplot, and mbm_xyplot have
The orientation of the filename annotation by mbcontour
has been fixed, and control over that orientation has been
added to mbcontour and mbm_plot.
Fixed problem of uninitialized data in mbr_mbpronav.c.
Fixed problem with occasional incorrect scaling of sonar
depth in mbldeoih format (71) data.
Fixed problem in which sonar depth could be calculated
from implausible pressure values in some single beam
or navigation formats.
Improved handling of interpolated asynchronous data,
especially sonar depth, in Reson 7k data (format 88).
A capability to interpolate over repeated values was added
Fixed a problem with the beam footprint gridding algorithm
in mbgrid that caused beam footprints to be miscalculated
for submerged sonars.
Fixed MBgrdviz crashes related to route data by fixing
problem with allocation and deallocation of route
arrays in the mbview library.
Moved tide correction to end of processing tasks so that
it doesn't mess up grazing angle calculations for amplitude
and sidescan correction.
Added option to mbm_grdplot allowing the user to specify
a separate grid file to be contoured. This code was
contributed by Gordon Keith.
MB-SYSTEM VERSION 5.0.6 RELEASE NOTES:
The version 5.0.6 release of MB-System includes several changes
relative to the 5.0.5 release.
The man page for mbprocess has been updated with full
documentation of the navigation formats supported for
merging by mbprocess.
The merging of heading and attitude data from navigation files
has been fixed.
The ability to merge attitude data from a separate file
has been added to mbprocess, and the mbprocess and mbset
man pages have been updated.
A problem producing ascii grids from mbgrid and mbmosaic
has been identified, and a fix suggested by Gordon Keith
A problem with the -D option of mblist has been identified,
and a fix suggested by Gordon Keith adopted.
A new program called mbneptune2esf has been contributed by
Gordon Keith. MBneptune2esf imports manual data flagging
performed using Simrad's NEPTUNE software and flags those
beams in the corresponding MB-System files.
A new program called mbauvnavusbl has been added to the
distribution. MBauvnavusbl reads a primary navigation file
(usually from a submerged platform swath survey) and also
reads secondary navigation (e.g. USBL fixes). The program
calculates position offsets between the raw survey navigation
and the secondary navigation every 3600 seconds (10 minutes),
and then linearly interpolates and applies this adjustment
vector for each primary navigation position. The adjusted
navigation is output.
The ability to annotate tracklines on swath plots with
the swath filenames has been added to mbm_plot and
mbcontour. The annotation occurs at the beginning of the
data associated with each file. This option can be used
most simply by specifying -NF in mbm_plot. The suggestion
and initial implementation were contributed by Gordon Keith.
A problem with setting file paths in parameter files in
the different directories associated with recursive
datalists has been fixed. The nature of and fix to this
bug were determined by Gordon Keith.
Fixed makefiles to link libpsl.a with all programs making
libgmt.a calls. This was necessitated by changes to the
GMT4.0 release relative to the GMT4.0beta release.
Implemented latest GSF release (2.0.3).
Fixed, but not satisfactorily, a problem reading some older
EM3000 data with the current format 56 i/o module.
Added release version of simple grid visualization demo
Improved the ability of mbgrid to embed background
MB-SYSTEM VERSION 5.0.5 RELEASE NOTES:
The version 5.0.5 release of MB-System includes several changes
relative to the 5.0.4 release.
The program mbgrid can now obtain background data from GMT grid
files using grd2xyz as well as through raster databases using
grdraster. See the -Kbackground option documentation in the
mbgrid manual page.
The macro mbm_xbt has been substantially updated.
The -G option of mbinfo now avoids reporting zero starting
positions (it always ignored zero positions for the reported
Provides read-only support for Edgetech sidescan and subbottom
profiler data in the new Reson 6046 format (format id 88).
A new program mbextractsegy allows for the extraction of
subbottom profiler data into separate files in the SEGY
format (this can apply only to data formats that incorporate
subbottom data in with swath sonar data, and at present only
supports format 88).
A new program mbsegyinfo is a utility for reading a segy
format seismic data file and outputting some basic statistics.
The table generated shows the filename, data counts, navigation
totals, time and navigation of the first and last data records,
minimum and maximum data values, and the geographic bounding box
of the data.
A new program mbsegylist is a utility to output specified
header values from segy seismic data files to stdout.
The option -Ooutput_format is used to control the type and
order of values output. By default, mbsegylist produces
ASCII files in spreadsheet style, with data columns separated by
tabs. Alternatively, the output can be binary, with each field
represented as a double precision float (-A option).
A new program mbsegygrid generates grids from subbottom
profiler data (and seismic reflection data, and potentially
other seismic data) in the SEGY format. These grids can then
be displayed using GMT (through mbm_grdplot if desired).
The program mbm_plot now works properly when start and end times
are specified using the -MMB and -MME options.
A bug involving the handling of edit save filenames by mbset and
mbprocess has been fixed.
Errors in handling Simrad datagrams and edit save files on
byteswapped machines (e.g. Intel or AMD processors) have been
The program mbdatalist has a new option -Z which causes a
standard "datalistp.mb-1" file to be created. This is a
convenience file that applies the $PROCESSED flag to be
applied to the swath files referenced in a datalist named
Problems with the creation of amplitude vs. grazing angle
correction tables using mbbackangle, and the use of those
tables by mbprocess, have been fixed. The default settings
for mbbackangle and amplitude vs. grazing angle correction
by mbprocess have been changed.
The default angle mode for raytracing has been changed so
that starting angles are adjusted using Snell's Law for the
difference between the SSV and the initial depth in the SVP.
This change affects mbvelocitytool, mbsvplist, mbset, and
The program mbsvplist now has an option -P that not only
outputs SVPs in a swath file to individual ancillary SVP
files (as with the -O option), but also sets the first SVP
output file to be used by mbprocess to recalculate the
Problems with the MGD77 format i/o module have been fixed
according to suggestions from Bob Covill.
MB-SYSTEM VERSION 5.0.4 RELEASE NOTES:
The version 5.0.4 release of MB-System includes several changes
relative to the 5.0.3 release.
All of the interactive tools (MBedit, MBnavedit, MBvelocitytool,
MBnavadjust) have been changed to require linking with the Motif 2.0
or later library (or compatible open source versions such as OpenMotif
The MB-System distribution is now compatible with GMT 4.0b. There have
been minor changes to the pslib and gmtlib APIs, so it is necessary
to specify the linked version of GMT in the mbsystem/install_makefiles
$GMTVERSION = "4.0";
if you are using GMT 4.0b, or set:
$GMTVERSION = "3.4";
if you are still using GMT 3.4
MBnavadjust has a significant new feature in which the contours
displayed by the Nav Err window can be pre-generated. This greatly
increases the speed with which the bathymetry crossings can be
A "Flag View" feature has been added to MBedit, allowing users to
flag all of the beams in the current display. Key macros have also
been defined for both the "Flag View" and "Unflag View" buttons.
The raw Hydrosweep DS format (format 21) i/o module now estimates
travel times from the bathymetry when data files lacking travel time
records are read. This allows users to recalculate bathymetry by
raytracing even if the travel times are not recorded.
MB-SYSTEM VERSION 5.0.3 RELEASE NOTES:
The version 5.0.3 release of MB-System includes two bug fixes
relative to the 5.0.2 release.
We have fixed a bug in the i/o modules for Simrad multibeam
data (formats 56 and 57) that caused a failure to gracefully
handle unsupported datagrams on byteswapped systems (e.g.
Intel processors running Linux).
We have fixed a bug that caused edit save files to be incorrectly
read on byteswapped systems (e.g. Intel processors running Linux).
We have fixed a bug in the i/o modules for binary SeaBeam 2100
data (formats 42 and 43) that caused data to be written incorrectly
on byteswapped systems (e.g. Intel processors running Linux).
MB-SYSTEM VERSION 5.0.2 RELEASE NOTES:
The version 5.0.2 release of MB-System includes two bug fixes
relative to the 5.0.1 release.
We have fixed a bug in the i/o module for Elac Bottomchart data
in the XSE format (94) in which the sonar depth was added to
bathymetry values when new data files were written.
We have also fixed problems related to reading and writing
SeaBeam 2100 data in the binary formats 42 and 43.
MB-SYSTEM VERSION 5.0.1 RELEASE NOTES:
The version 5.0.1 release of MB-System includes two bug fixes
relative to the 5.0.0 release. The program mbgrid has been
fixed so that it compiles correctly under Red Hat Linux. The
program mbcopy has been fixed so that time and space bounds
are successfully applied to pings with a time gap error.
Also, the distribution now has a top directory name of mbsystem-5.0.1
rather than just mbsystem. This will allow users to unpack the
distribution in the target location without overwriting an existing
older MB-System installation. Users can then rename the directory to
mbsystem or create a soft link to mbsystem-5.0.1 named mbsystem
(e.g. ln -s mbsystem-5.0.1 mbsystem).
MB-SYSTEM VERSION 5.0.0 RELEASE NOTES:
The version 5.0 release of MB-System includes a number of
changes and improvements relative to the version 4 releases.
The most significant changes include:
A new approach to managing data processing.
- Many tools - one output file.
In previous versions of MB-System, each processing
program read an input swath data file and
produced an output swath data file. This "serial"
processing scheme generally produced a large number of
intermediate data files. MB-System version 5.0 features the
integration of the editing and analysis tools with a single
program, mbprocess, that outputs processed data files. The
new "parallel" processing scheme covers bathymetry data
processing, but does not yet incorporate the sidescan
processing capabilities. All of the old tools and
capabilities are still part of the distribution.
- Recursive datalists.
The lists of data files used by gridding and plotting
programs can now be recursive, making it simpler to manage
data from many different surveys.
- Automatic format identification.
MB-System programs will now attempt to automatically
identify the swath data format based on the filename suffix.
- Extended inf files.
Users can generate inf files by directing the output
of mbinfo to a file named by adding an
".inf" suffix to the swath data file name. Several programs
can parse inf files, if they exist, to quickly obtain data
locations or ranges. This feature speeds operations such as
gridding, mosaicing, and automated plotting.
This new tool allows users to adjust poorly
navigated surveys by matching features in overlapping
swathes. It is particularly useful for processing surveys
conducted from submerged platforms.
This new tool performs a variety of processing
tasks and produces a single output processed swath data
file. The program mbprocess can apply bathymetry edits from
mbedit and mbclean, navigation edits from mbnavedit, sound
velocity profile changes from mbvelocitytool, and a variety
of other corrections.
This new tool allows users to create and modify the
parameter files used to control the operation of mbprocess.
This new tool allows users to list the files referenced by
a recursive datalist structure. It can also be used to create
the ancillary ".inf", ".fbt", and ".fnv" files for all of the
data files referenced in a recursive datalist structure.
This new tool lists water sound velocity profiles embedded in
swath data files, creating secondary files that can be read
This new tool identifies and flags artifacts in swath sonar
bathymetry data within a specified area of interest. The area
is divided into a grid with square cells or bins, and the
data are grouped according to these bins. Once all of data
are read, statistical tests are applied to the soundings
within each bin.
Improved bathymetry and navigation editors.
- MBedit and MBnavedit now swallow data files whole rather than
reading in limited size buffers.
- MBedit now outputs beam edit events rather than an entire swath
file. The edits are applied by MBprocess.
- MBnavedit now outputs the edited navigation rather than an entire
swath file. The edited navigation is merged using MBprocess.
- Both editors show the position of the currently displayed data
within the entire data file.
- MBnavedit has two navigation modeling modes relevant to swath
data collected using poorly navigated ROVs and towfishes. One
mode applies a dead reckoning model with interactively set drifts,
and the other involves inverting for an optimally smooth
navigation by penalizing speed and acceleration.
Support for Projected Coordinate Systems
- MB-System now incorporates the source code for the PROJ.4
Cartographic Projections library, providing support for
(apparently) all commonly used geodetic coordinate systems.
PROJ.4 was developed by Gerald Evenden (then of the USGS),
and was obtained from the www.remotesensing.org website.
- A large number of commonly used projected coordinate systems
(e.g. UTM) are defined in a file (mbsystem/share/projections.dat)
distributed with MB-System. These include all of the standard
UTM zones, all of the standard state plate coordinate systems,
and most of the European Petroleum Survey Group (EPSG)
coordinate systems (also including UTM).
- MB-System can now handle swath data that is navigated in a supported
projected coordinate system. In particular, data files that are
navigated with UTM eastings and northings instead of longitude and
latitude can now be plotted and processed with MB-System.
- The programs mbgrid and mbmosaic can now output grids and mosaics
in any of the projected coordinate systems specified in
- The TIFF images generated with mbm_grdtiff and mbgrdtiff
now fully conform to the GeoTIFF standard, providing that the
source grids or mosaics were generated using mbgrid or mbmosaic
in either Geographic coordinates, UTM coordinates, or any of the
EPSG coordinate systems specified in the projections.dat file.
This means, for instance, that GeoTIFF images generated with
mbgrdtiff will be properly georeferenced when they are
imported into ESRI ArcGIS or other GIS packages.
Restructuring the code.
- All of the C code now conforms to the ANSI C standard.
- The underlying input/output library (MBIO) has been
substantially rewritten. The structure has been streamlined,
simplifying both future development and support of the
existing code. The MBIO API has been greatly modified.
Handling of old Simrad multibeam data.
- Vendor format data from the old Simrad multibeams (pre-
1997 sonars) are now supported by a single format id (51)
rather than a separate format id for each sonar model. The
old format id's are automatically aliased to 51, so existing
shellscripts will continue to work.
- Sidescan data from old Simrad multibeams (pre-1997 sonars)
are now handled in the same manner as data from the newer
sonars (e.g. EM3000, EM3000, EM120). The raw samples in the
vendor data format are binned, averaged, and interpolated
into a 1024 pixel sidescan swath. This binned sidescan is
not saved in the vendor format, so it is recommended that
the data be copied to an extended format (57) that stores
both bathymetry beam flags and processed sidescan. Format 57
is also used for processing data from the current Simrad
Streamlining of MB-System Default Parameters.
- Prior to version 5.0, the MB-System defaults set by mbdefaults
included the format id, a control for ping averaging,
longitude and latitude bounds for windowing by area, and
begin and end times for windowing in time. These values are
no longer set in the .mbio_defaults file or controlled by
mbdefaults. As noted above, the format id is automatically
identified from the filename when possible. When filenames
do not match one of the recognized structures, users must
specify the format using the relevant programs -Fformat option.
The controls for ping averaging and windowing in time and
space are rarely used, and must now be explicitly set in
command line arguments.
New Data Formats
- Furuno HS10 multibeam bathymetry is supported as format 171.
- SeaBeam 2120 multibeam data in the L3 Communications XSE format
are supported as format 94 (already used to support Elac
Bottomchart MkII XSE data).
- Raw STN Atlas multibeam data generated by the upgraded
Hydrosweep DS2 multibeam on the R/V Ewing are supported by
read-only format 182. Processing is supported using the
augmented read-write format 183.
- The IFREMER netCDF multibeam archiving data format is supported
as format 75. Similarly, the IFREMER netCDF navigation
archiving data format is supported as format 167.
- The STN Atlas processing data format SURF is supported as
format 181. At present, SURF is supported as a read-only
format. This allows plotting and gridding of the SURF data,
but not processing. Writing or translating the SURF data to
allow processing will be supported in a later version.
- The Hawaii Mapping Research Group's new MR1 format is supported
as format 64. This format is used to disseminate data from
both the HMRG interferometric sonars (e.g. MR1) and the
WHOI DSL 120 deep-towed inteferometric sonar. This format has
been supported by including the code for the HMRG library
libmr1pr in the MB-System library. Thanks to Roger Davis and
HMRG for making the code available under the GPL.
THE NEW VERSION 5 DATA PROCESSING STRUCTURE
Previous versions of MB-System have emphasized processing
utilities that operate serially, that is, that read in an
input swath data file, modify it, and then output a second
swath data file. Serial processing utilities do allow for
great flexibility in processing because one uses only the
programs required and, in general, the order in which the
programs are used does matter. However, one consequence of
serial processing has been that processing data frequently
results in a large number of intermediate data files. For
instance, if an EM300 data file called "mbari_1998_524.mb57"
has spikes in the bathymetry, outliers in the navigation,
a strong high amplitude peak in the central sidescan swath,
and the bathymetry has been calculated using an incorrect
model for the water sound speed structure, users of MB-
System would previously have processed it with a sequence
something like this:
1) Run mbclean to automatically flag
the obvious bathymetric artifacts.
2) Run mbedit to interactively flag
3) Run mbnavedit to interactively clean
4) Run mbvelocitytool to generate an
appropriate sound velocity profile (SVP) for
recalculating the bathymetry.
5) Run mbbath to recalculate the
bathymetry using the SVP file generated
6) Run mbsimradmakess to recalculate the
sidescan while ignoring sidescan samples
from beams now flagged as bad.
7) Run mbbackangle to calculate an amplitude
vs grazing angle table for correcting
8) Run mbanglecorrect to correct the sidescan.
The result of this processing includes the input swath data
file, the final swath data file, and five intermediate
swath data files. The impact of this approach on data
storage requirements is obvious (though some users have
ameliorated the issue by working with scripts that
automatically delete unneeded data files or by piping data
from one non-graphical process to another to avoid making
intermediate files). The serial processing approach also
presents data management problems because data files
frequently have different processing requirements, even
within a single survey. We have found that working with very
large datasets can be awkward when only a minority of data
files require navigation editing or bathymetric
recalculation, or when some data files require multiple
episodes of bathymetry and navigation editing.
MB-System version 5 includes new utilities implementing a
parallel processing scheme that simplifies the processing of
most swath data. This scheme is centered around the program
mbprocess, which can accomplish the following processing
tasks in a single step:
- Merge edited navigation generated by mbnavedit.
- Apply bathymetry edit flags from mbedit
- Recalculate bathymetry from raw travel time and
angle data by raytracing through water sound speed
models from mbvelocitytool or mbsvplist.
- Apply changes to roll bias, pitch bias, heading
bias, and draft values.
- Recalculate sidescan from raw backscatter samples
(Simrad multibeam data only).
- Correct sidescan for amplitude vs grazing angle
- Apply tides to bathymetry.
The actions of mbprocess are controlled by text parameter
files. Each mbprocess parameter file is named by adding a
".par" suffix to the associated input swath data file and
contains single line commands that set processing modes and
parameters. Tools such as mbedit, mbnavedit, and mbclean all
generate and/or modify parameter files in addition to
generating parallel files used by mbprocess. The program
mbset can also be used to create and modify mbprocess
The same processing steps described above as a serial
processing scheme can be accomplished with the new parallel
processing scheme as follows:
1) Run mbdatalist to create ancillary
data files containing statistics
(".inf"), quickly read bathymetry
(".fbt"), and quickly read navigation
(".fnv"). These files are used to
speed common operations such as swath
plotting and gridding.
2) Run mbclean to identify
the obvious bathymetric artifacts
and output a list of the edit events.
The parameter file is created and
set to apply bathymetry flags from
the ".esf" file.
3) Run mbedit to interactively
identify bathymetric artifacts
and output a list of the edit events.
The existing edits from mbclean
are loaded and applied prior to editing.
The parameter file is updated and
set to apply bathymetry flags from
the ".esf" file.
4) Run mbnavedit to interactively
clean the navigation. The edited
navigation is output to the ".nve" file.
The parameter file is updated and
set to merge the navigation from
the ".nve" file.
5) Run mbvelocitytool to generate an
an appropriate sound velocity profile
(SVP) for recalculating the bathymetry.
The SVP is output to the ".svp" file.
The parameter file is updated and
set to recalculate the bathymetry by
raytracing through the SVP model from
the ".svp" file.
6) Run mbbackangle to generate an
a set of amplitude vs grazing angle
tables at regular intervals in the
data. These tables are placed into
a single ".sga" file. The parameter
file is updated and set to correct
the sidescan by interpolating the
amplitude vs grazing angle table for
7) Run mbset to set the parameter file
so that mbprocess will recalculate
the sidescan (this is for Simrad
multibeam data only) while ignoring
sidescan samples from beams now flagged
8) Run mbprocess to apply the bathymetric
edits, merge the cleaned navigation,
recalculate the bathymetry, recalculate
the sidescan, and correct the sidescan.
The processed swath data is written to
an output swath data file. The usual
ancillary data files containing statistics,
quickly read bathymetry, and quickly
read navigation are also created.
The result of this processing is a single output swath data
file. Moreover, the processed output can be easily updated
if, for example, additional bathymetry editing is required.
If the mbedit program is used again, it will load the
existing edit events from the ".esf" file and then update
the ".esf" file. To incorporate the updated bathymetry
edits, one just runs mbprocess again. One can similarly
change the SVP file without impacting on the bathymetry
editing or navigation editing components of the processing.
Starting with the 5.1.1 release, the old, serial processing
utilities have been removed from MB-System. However, some
of the serial tools have been replaced by new versions with
the same name (e.g. mbedit, mbclean, mbbackangle, and mbnavedit).
OTHER REQUIRED AND SUGGESTED SOFTWARE AND DATA
MB-System requires a number of other software packages
and databases to be fully functional. These are:
- GMT version 4.2.0 or later: MB-System makes use of the Generic Mapping Tools (GMT)
libraries and programs for much of its graphics. GMT also includes a detailed global
coastline database. GMT has been developed by Professor Paul Wessel of SOEST (School
of Ocean and Earth Science and Technology at the Univeristy of Hawaii) and Dr. Walter
H. F. Smith of NOAA. The GMT source code is available from the GMT web page.
- NetCDF version 3.0 or later: Both GMT and MB-System require the NCAR netCDF
- Perl version 5.0 or later: Perl is a fast, well documented scripting language used widely
in the Unix world. MB-System contains a number of perl scripts used both for installation
and to ease common tasks. Most of the current Unix operating systems include perl. If you
need to obtain the perl source code, first check with your local system administrator - you
will probably find perl already available locally. The perl source code can be obtained from
the GNU Project software archive of the Free Software Foundation.
- Motif 2.0 or later: The interactive graphical utilities in MB-System (e.g. data editors) use
the Motif 2 widget set, and Motif-compatible libraries or equivalent are required for these
utilities to be built and to run. Most current Unix operating systems include the required
Motif libraries. If you do not have these libraries, you can obtain the OpenMotif source
code distribution from http://www.motifzone.net Another open source Motif-compatible
distribution called LessTif (http://www.lesstif.org) has been available for some time, and
also works well with MB-System.
- FFTW3 - Fastest Fourier Transform in the West. This FFT library is required for the
spectrogram program mbsegypsd
- Levitus Database: The MB-System program mblevitus depends on a 16 MByte data file
that is not included in the MB-System tarfile. Be sure to
uncompress the file and to set the "LEVITUS" flag in the install_makefiles appropriately,
as described below in the installation section.
MB-System produces Postscript based graphics. Most current Unix operating systems provide a
program which serves as a screen-based Postscript viewer. If you do not have a Postscript viewer,
one option is to obtain the Ghostscript package from the Free Software Foundation.
- ghostview: open source screen Postscript viewer. The source code can be obtained from the
GNU Project software archive of the Free Software Foundation.
- gv: better open source screen Postscript viewer. The source code can be obtained from the
GNU Project software archive of the Free Software Foundation.
HOW TO INSTALL MB-SYSTEM:
The MB-System source code is extracted by first uncompressing the tar file and then running tar:
% tar xvzf MB-System.tar.gz
This will create a directory structure called mbsystem. In order to configure your installation,
you must edit the shellscript mbsystem/install_makefiles. This is perl script will read template
makefiles in the MB-System source directories and create makefiles with the correct attributes.
This enables users to install MB-System without having to edit the makefiles. Instead of editing
the makefiles directly, the installer should edit this script so that the locations of important
libraries and include files are accurate and so that the compile and link flags are correct.
The important parameters to be set in install_makefiles are:
$MBSYSTEM_HOME - absolute path to the MB-System installation location
$OS - Operating system (e.g. DARWIN, LINUX).
$CFLAGS - Compile flags for C source files.
$LFLAGS - Load flags for all object files.
$NETCDFLIBDIR - Location of NetCDF library.
$NETCDFINCDIR - Location of NetCDF header files.
$GMTLIBDIR - Location of GMT libraries.
$GMTINCDIR - Location of GMT header files.
Required parameters for spectrogram program mbsegypsd
- mbsegypsd will not be built if these are commented out
$FFTWLIBDIR - Location of the FFTW3 library.
$FFTWINCDIR - Location of FFTW3 header files.
Required parameters for graphical tools
- graphical tools will not be built if these
are commented out
$MOTIFINCDIR - Location of the Motif header files.
$MOTIFLIBS - Location of the Motif libraries.
Required parameter for visualization tools
- visualization tools will not be built if this
is commented out
$OPENGLLIBS - Link flags for the OpenGL libraries: "-lGLU -lGL";
Required parameter for mblevitus program
$LEVITUS - Location of the Levitus library (usually "$MBSYSTEM_HOME/share/LevitusAnnual82.dat").
Required parameter for mbotps program
$OTPSDIR - Location of the OTPSnc installation (usually "/usr/local/OTPSnc").
Optional name of C compiler (if other than "cc").
$CC - Usually "cc", but could be "gcc".
Optional parameters for use of independent GSF library installation
- GSF library included with MB-System will be used
if these are commented out
$GSFLIB - Location of GSF library.
$GSFINCDIR - Location of GSF header files.
Optional parameters for use of independent PROJ4 library installation
- PROJ4 library included with MB-System will be used
if these are commented out
$PROJLIB - Location of PROJ4 library.
$PROJINCDIR - Location of PROJ4 header files.
Examples of appropriate values for several different installations (e.g. Sun, SGI, PC) are included
in the comments in install_makefiles. To execute install_makefiles, do the following:
% cd mbsystem
Because install_makefiles is a perl script, the executable perl must be available in the installer's
path. Once install_makefiles has been correctly configured and run, give the command "make all"
to generate the executable programs:
% make all
The make command will descend recursively down through the directory structure, compiling
source files, linking object files, and copying executables and manual pages to the appropriate
directories. The executables will be placed in mbsystem/bin, the libraries in mbsystem/lib, and
the manual pages in mbsystem/man/man1.
Naturally, in order for users to use the MB-System utilities, the directory containing the
executables must be included in their path (usually this is done by editing the .cshrc file in the
user's home directory). The executable perl must also be available in the user's path for most of
the macros to work.
Most users will also wish to specify which program they generally use to view Postscript plots on
their screen. This parameter can be set either with the mbdefaults program or using the
MB_PS_VIEWER environment variable - the former is recommended (see the mbdefaults manual
page for details). On Sun workstations pageview is a popular Postscript viewer; on Silicon
Graphics machines xpsview is commonly used. A popular generic alternative to these platform
specific programs is ghostview.
WEB BASED DOCUMENTATION:
The html documentation consists of a number of html
documents and images in the directory mbsystem/html.
This documentation also comprises the MB-System
web page available from the Lamont web site at:
and the MBARI web site at:
Users can access the documentation in their own MB-System
installation by using a web browser and accessing the file:
(here it is assumed that MB-System has been installed
in /usr/local). Currently, the documentation includes some
general information about MB-System (e.g. who wrote, how to
get it, how to install it) and a complete set of manual
pages. In the future we will add increasing amounts of
information including examples of using MB-System.
We are pleased to have received an additional five years
(2001-2005) of NSF funding for the support and development
of MB-System. This project is also supported by the
Monterey Bay Aquarium Research Institute.
We are actively soliciting contributions for inclusion in the
MB-System. In particular support for additional data formats in the
mbio.a library would be helpful, as would new, clever
tools for data manipulation and processing. We thank
those who have already contributed to MB-System.
We are interested in your suggestions.
There are undoubtably bugs in this software. Although we
make no promises about how rapidly problems will be fixed, we
strongly encourage users to notify us of bugs (and fixes!!).
We will continue to support this software for the forseeable
The MB-System Cookbook was written by Val Schmidt, formerly
of L-DEO and now with CCOM/JHC at the University of New
A number of people have made contributions to the code
included in MB-System. These include:
Bob Covill (Tekmap Consulting)
Gordon Keith (CSIRO)
Val Schmidt (CCOM/JHC, University of New Hampshire)
Suzanne O'Hara (Lamont-Doherty Earth Observatory)
Mike McCann (MBARI)
Daniel Scheirer (Brown University)
Paul Cohen (SeaBeam Instruments, now Fidelity Investments)
Steve Dzurenko (SeaBeam Instruments, now University of Texas)
Peter Lemmond (Woods Hole Oceanographic Institution)
David Brock (formerly with Antarctic Support Associates)
Alberto Malinverno (Lamont-Doherty Earth Observatory, later at
Russ Alexander (formerly with UCSB)
Numerous users and vendors have provided information regarding
data file formats and sonar system specific characteristics.
Dave Caress firstname.lastname@example.org
Dale Chayes email@example.com
Subversion ID: $Id: README 1912 2011-11-19 15:44:38Z caress $
RCS Revision History:
$Log: README,v $
Revision 5.130 2009/03/13 07:05:58 caress
Revision 5.129 2009/03/10 05:11:21 caress
Added Gaussian mean smoothing to MBnavedit.
Revision 5.128 2009/03/09 16:58:31 caress
Revision 5.127 2009/03/09 15:11:31 caress
Revision 5.126 2009/03/08 09:20:59 caress
Fixed problem reading and writing format 16 (MBF_SBSIOSWB) data on little endian systems.
Revision 5.125 2009/03/06 21:46:47 caress
Release 5.1.2beta01 March 6 2009
Revision 5.124 2009/03/02 18:59:05 caress
Moving towards 5.1.2beta1.
Revision 5.123 2008/12/31 09:06:56 caress
Revision 5.122 2008/12/31 08:53:31 caress
Updates towards release 5.1.1
Revision 5.121 2008/12/05 17:32:51 caress
Check-in mods 5 December 2008 including contributions from Gordon Keith.
Revision 5.120 2008/11/18 21:26:39 caress
Revision 5.119 2008/11/16 21:47:00 caress
Added recent changes.
Revision 5.118 2008/10/17 07:54:03 caress
Check in on October 17, 2008.
Revision 5.117 2008/09/27 03:27:10 caress
Working towards release 5.1.1beta24
Revision 5.116 2008/09/20 00:57:40 caress
Revision 5.115 2008/08/12 00:00:40 caress
Working towards 5.1.beta22
Revision 5.114 2008/07/20 15:42:00 caress
Revision 5.113 2008/07/10 18:24:56 caress
Proceeding towards 5.1.1beta20.
Revision 5.112 2008/07/10 06:51:04 caress
Preparing for 5.1.1beta20
Revision 5.111 2008/05/24 19:33:25 caress
Update on 24 May 2008.
Revision 5.110 2008/05/16 23:17:22 caress
Revision 5.109 2008/03/14 18:29:45 caress
Updated support for JHC format 151.
Revision 5.108 2008/03/01 09:05:10 caress
Added support for EM710 multibeam using formats 58 and 59.
Revision 5.107 2008/02/12 02:31:43 caress
Changes as of 11 February 2008.
Revision 5.106 2008/01/14 18:40:23 caress
Working towards 5.1.1 release.
Revision 5.105 2007/11/02 22:37:21 caress
Revision 5.104 2007/10/31 18:44:11 caress
Update on 31 October 2007.
Revision 5.103 2007/10/17 20:24:43 caress
Revision 5.102 2007/10/08 17:50:47 caress
Updates to reflect present state.
Revision 5.101 2007/10/08 17:22:22 caress
New MB-System version number.
Revision 5.100 2007/10/08 17:16:49 caress
State of 8 October 2007.
Revision 5.99 2007/07/05 19:18:34 caress
Revision 5.98 2007/07/05 16:43:17 caress
Revision 5.97 2007/07/03 17:23:46 caress
Working on things...
Revision 5.96 2007/06/18 01:23:03 caress
Revision 5.95 2007/05/21 16:16:33 caress
Working towards next release.
Revision 5.94 2007/05/12 19:28:23 caress
Working towards next version.
Revision 5.93 2006/12/15 21:42:49 caress
Incremental CVS update.
Revision 5.92 2006/11/26 16:15:16 caress
Revision 5.91 2006/11/26 09:35:55 caress
Making distribution 5.1.0.
Revision 5.90 2006/11/10 22:36:04 caress
Working towards release 5.1.0
Revision 5.89 2006/10/05 18:58:28 caress
Changes for 5.1.0beta4
Revision 5.88 2006/09/11 19:04:41 caress
Setting up release 5.1.0beta3.
Revision 5.87 2006/08/10 00:08:10 caress
Working towards 5.0.0beta2
Revision 5.86 2006/08/09 22:37:33 caress
Working towards 5.1.0beta2
Revision 5.85 2006/08/04 03:56:41 caress
Working towards 5.1.0 release.
Revision 5.84 2006/07/27 18:42:24 caress
Working towards 5.1.0
Revision 5.83 2006/07/06 05:30:57 caress
Working more towards 5.1.0beta
Revision 5.82 2006/07/05 19:50:21 caress
Working towards 5.1.0beta
Revision 5.81 2006/06/22 04:45:42 caress
Working towards 5.1.0
Revision 5.80 2006/06/16 19:24:47 caress
Check in after the Santa Monica Basin Mapping AUV Expedition.
Revision 5.79 2006/03/06 21:33:42 caress
Working towards 5.0.10
Revision 5.78 2006/02/20 05:25:09 caress
Revision 5.77 2006/02/16 21:24:25 caress
Revision 5.76 2006/02/08 19:15:27 caress
Release 5.0.8. Really.
Revision 5.75 2006/02/08 17:59:25 caress
Release 5.0.8. Finally.
Revision 5.74 2006/02/03 22:45:30 caress
Revision 5.73 2006/02/01 18:32:47 caress
Revision 5.72 2006/02/01 07:52:09 caress
Modifications suggested by Gordon Keith
Revision 5.71 2006/01/27 19:08:27 caress
Revision 5.70 2006/01/24 22:06:42 caress
Revision 5.69 2006/01/24 19:04:07 caress
Version 5.0.8 beta.
Revision 5.68 2006/01/20 19:40:55 caress
Working towards 5.0.8
Revision 5.67 2006/01/15 05:25:45 caress
Working on 5.0.8.
Revision 5.66 2006/01/11 07:22:23 caress
Working towards 5.0.8
Revision 5.65 2006/01/06 18:18:25 caress
Working towards 5.0.8
Revision 5.64 2005/11/05 01:43:16 caress
Revision 5.63 2005/06/15 15:05:42 caress
Some new fixes noted.
Revision 5.62 2005/06/04 03:32:27 caress
Updates during 5.0.8 development.
Revision 5.61 2005/04/07 04:32:19 caress
Revision 5.60 2005/03/26 23:58:34 caress
Revision 5.59 2005/03/25 04:51:21 caress
Updated with recent changes.
Revision 5.58 2005/03/25 04:01:01 caress
Fixes to 5.0.6.
Revision 5.57 2005/02/19 07:09:22 caress
Revision 5.56 2005/02/17 07:33:26 caress
Moving towards 5.0.6 release.
Revision 5.55 2005/02/08 22:37:37 caress
Heading towards 5.0.6 release.
Revision 5.54 2005/01/04 18:36:59 caress
Working towards release 5.0.6
Revision 5.53 2004/12/18 01:23:24 caress
Working towards 5.0.6 release.
Revision 5.52 2004/10/06 21:30:50 caress
Revision 5.51 2004/09/16 21:49:59 caress
More changes leading up to 5.0.5 release.
Revision 5.50 2004/06/18 02:58:15 caress
Added first notes for 5.0.5 release.
Revision 5.49 2004/05/22 05:58:18 caress
Revision 5.48 2004/05/22 04:22:02 caress
Revision 5.47 2004/05/21 23:59:31 caress
Getting ready for release 5.0.4
Revision 5.46 2004/04/27 00:29:25 caress
Updated with recent changes.
Revision 5.45 2004/02/27 18:12:49 caress
Revision 5.44 2004/02/26 22:41:02 caress
Revision 5.43 2004/02/25 17:48:49 caress
Revision 5.42 2003/12/24 08:51:05 caress
Revision 5.41 2003/12/12 08:06:00 caress
Revision 5.40 2003/12/05 08:21:22 caress
*** empty log message ***
Revision 5.39 2003/12/01 20:32:47 caress
Trying to get real 5.0.0 release out.
Revision 5.38 2003/07/27 13:14:12 caress
Revision 5.37 2003/07/02 18:10:47 caress
Revision 5.36 2003/04/29 20:31:08 caress
Revision 5.35 2003/04/25 23:18:57 caress
Revision 5.34 2003/04/23 06:26:52 caress
Revision 5.33 2003/03/10 22:42:28 caress
Revision 5.32 2003/01/15 21:15:01 caress
Revision 5.31 2002/11/04 19:15:01 caress
Revision 5.30 2002/10/15 19:22:24 caress
Revision 5.29 2002/10/04 21:29:40 caress
Revision 5.28 2002/10/02 23:51:50 caress
Revision 5.27 2002/09/20 22:39:48 caress
Real release 5.0.beta23
Revision 5.26 2002/09/19 22:24:55 caress
Revision 5.25 2002/09/19 17:31:21 caress
Revision 5.24 2002/08/30 19:37:35 caress
Revision 5.23 2002/08/28 01:43:27 caress
Revision 5.22 2002/08/21 01:10:37 caress
Revision 5.21 2002/07/25 19:11:35 caress
Revision 5.20 2002/07/20 21:08:07 caress
Revision 5.19 2002/05/31 19:58:28 caress
Revision 5.18 2002/05/29 20:43:56 caress
Revision 5.17 2002/04/06 03:10:12 caress
Revision 5.16 2002/03/26 07:40:25 caress
Revision 5.15 2002/02/26 07:59:33 caress
Revision 5.14 2002/01/02 20:33:36 caress
Set real data of 5.0.beta12
# Revision 5.13 2001/12/30 20:31:31 caress
# Release 5.0.beta12
Revision 5.12 2001/11/20 22:11:20 caress
# Revision 5.11 2001/11/16 20:14:47 caress
# Release 5.0.beta10
Revision 5.10 2001/11/07 01:57:54 caress
Fixed for release 5.0.beta09
# Revision 5.9 2001/11/07 01:15:08 caress
# Release 5.0.beta09
# Revision 5.8 2001/10/19 19:49:08 caress
# Release 5.0.beta08
# Revision 5.7 2001/08/10 23:10:08 dcaress
# Release 5.0.beta07
Revision 5.6 2001-07-30 17:51:15-07 caress
# Revision 5.5 2001/07/27 19:28:38 caress
# Release 5.0.beta06.
# Revision 5.4 2001/07/20 16:48:26 caress
# Release 5.0.beta04
# Revision 5.3 2001/06/08 21:39:07 caress
# Version 5.0.beta01
# Revision 4.22 2000/09/26 20:32:27 caress
# Fixed reference to ftp site.
# Revision 4.21 2000/03/08 01:19:08 caress
# Release 4.6.10
# Revision 4.20 1999/09/16 23:09:54 caress
# Real version 4.6.6 release notes
# Revision 4.19 1999/09/15 21:29:37 caress
# Version 4.6.6 Release Notes
# Revision 4.18 1999/05/07 00:30:38 caress
# Version 4.6a release
# Revision 4.17 1999/04/16 00:26:05 caress
# Final 4.6 release?
# Revision 4.16 1998/12/17 23:09:42 caress
# MB-System version 4.6beta4
# Revision 4.15 1998/10/05 22:12:48 caress
# MB-System version 4.6beta
# Revision 4.14 1997/09/15 21:33:33 caress
# Fixed typo.
# Revision 4.13 1997/09/15 19:02:15 caress
# Real Version 4.5
# Revision 4.12 1997/04/21 16:51:19 caress
# MB-System 4.5 Beta Release.
# Revision 4.12 1997/04/17 17:37:59 caress
# MB-System 4.5 Beta Release.
# Revision 4.11 1996/09/05 12:57:11 caress
# Actual V4.4 release.
# Revision 4.10 1996/08/26 15:38:28 caress
# Release 4.4 revision.
# Revision 4.9 1996/01/26 21:32:53 caress
# Revision for real version 4.3 release.
# Revision 4.8 1995/08/17 16:34:39 caress
# Revision for release 4.3.
# Revision 4.7 1995/02/14 22:25:56 caress
# Version 4.2 Release
# Revision 4.6 1994/11/18 16:37:15 caress
# *** empty log message ***
# Revision 4.5 1994/10/21 21:54:24 caress
# Release V4.0
# Revision 4.4 1994/10/21 17:42:43 caress
# Release V4.0
# Revision 4.3 1994/10/21 13:29:54 caress
# Release V4.0
# Revision 4.2 1994/10/20 21:30:31 caress
# Release V4.0
# Revision 4.1 1994/08/03 21:00:43 dale
# Update for Beta issues......
# Revision 4.0 1994/03/05 23:06:24 caress
# Changes for release 4.0.
# Revision 3.7 1993/12/14 22:15:56 caress
# Changed for release version 3.4
# Revision 3.6 1993/11/06 21:24:39 caress
# Added discussion of src/realtime directory.
# Revision 3.5 1993/11/05 21:25:02 caress
# Added discussion of how to run make to generate the executables.
# Revision 3.4 1993/11/05 14:59:04 caress
# Some small changes by Dale.
# Revision 3.3 1993/11/04 17:46:36 caress
# Updated for version 3.3. Added where to get required
# software packages and what Makefile to change to fit
# local environments.
# Revision 3.2 1993/08/25 14:41:41 dale
# Add porting, and requirements, and bugs and stuff for 3.2
# Revision 3.1 1993/04/22 16:09:21 dale
# Update and clarify the text, add third reason
# Revision 3.0 1993/04/22 16:04:29 dale
# *** empty log message ***