-------------------------------------------------------------------------------
MB-SYSTEM CHANGELOG FILE:
-------------------------------------------------------------------------------
Version: $Id: ChangeLog 2233 2015-02-23 21:51:02Z caress $
-------------------------------------------------------------------------------

This file lists changes to the source code of the MB-System open
source software package for the processing and display of swath sonar data.
This file is located at the top of the MB-System source code distribution
directory structure.

-------------------------------------------------------------------------------
MB-SYSTEM VERSION 5 RELEASE DATES:
-------------------------------------------------------------------------------
Here "*" denotes source distribution release made available for ftp download.
Releases without an "*" are discrete revisions available from the source code
archive at http://svn.ilab.ldeo.columbia.edu/listing.php?repname=MB-System.

* Version 5.5.2233       February 23, 2015
  Version 5.5.2232       February 21, 2015
  Version 5.5.2231       February 20, 2015
  Version 5.5.2230       February 18, 2015
  Version 5.5.2229       February 14, 2015
  Version 5.5.2228       February 6, 2015
  Version 5.4.2219       December 11, 2014
  Version 5.4.2218       December 4, 2014
  Version 5.4.2217       December 1, 2014
* Version 5.4.2213       November 13, 2014
  Version 5.4.2210       November 10, 2014
* Version 5.4.2209       November 4, 2014
* Version 5.4.2208       October 29, 2014
  Version 5.4.2204       September 5, 2014
* Version 5.4.2202       August 25, 2014
  Version 5.4.2201       August 20, 2014
* Version 5.4.2200       July 24, 2014
* Version 5.4.2199       July 19, 2014
  Version 5.4.2196       July 14, 2014
  Version 5.4.2195       July 9, 2014
  Version 5.4.2194       July 8, 2014
* Version 5.4.2191       June 4, 2014
* Version 5.4.2188       May 31, 2014
  Version 5.4.2187       May 28, 2014
  Version 5.4.2186       May 26, 2014
  Version 5.4.2185       May 11, 2014
* Version 5.4.2183       April 16, 2014
  Version 5.4.2182       April 8, 2014
  Version 5.4.2181       April 4, 2014
* Version 5.4.2176       March 18, 2014
* Version 5.4.2168       February 19, 2014
* Version 5.4.2163       January 31, 2014
  Version 5.4.2162       January 24, 2014
* Version 5.4.2159       January 18, 2014
  Version 5.4.2158       January 18, 2014
* Version 5.4.2157       October 14, 2013
  Version 5.4.2155       October 13, 2013
  Version 5.4.2154       September 26, 2013
  Version 5.4.2153       September 22, 2013
* Version 5.4.2152       September 16, 2013
  Version 5.4.2151       September 12, 2013
  Version 5.4.2149       September 2, 2013
  Version 5.4.2148       August 28, 2013
  Version 5.4.2147       August 27, 2013
  Version 5.4.2144       August 26, 2013
  Version 5.4.2143       August 24, 2013
  Version 5.4.2141       August 24, 2013
  Version 5.4.2139       August 19, 2013
  Version 5.4.2138       August 18, 2013
  Version 5.4.2137       August 9, 2013
  Version 5.4.2136       August 8, 2013
* Version 5.4.2135       August 7, 2013
  Version 5.4.2133       July 29, 2013
  Version 5.4.2132       July 26, 2013
  Version 5.4.2130       July 20, 2013
  Version 5.4.2129       July 8, 2013
  Version 5.4.2128       June 18, 2013
  Version 5.4.2123       June 10, 2013
  Version 5.4.2082       May 24, 2013
  Version 5.3.2053       April 4, 2013
  Version 5.3.2051       March 20, 2013
  Version 5.3.2042       March 12, 2013
* Version 5.3.2017       March 3, 2013
* Version 5.3.2013       January 29, 2013
* Version 5.3.2012       January 25, 2013
* Version 5.3.2011       January 17, 2013
  Version 5.3.2010       January 14, 2013
* Version 5.3.2009       January 10, 2013
* Version 5.3.2008       January 6, 2013
  Version 5.3.2007       January 5, 2013
  Version 5.3.2006       January 4, 2013
  Version 5.3.2005       December 31, 2012
  Version 5.3.2004       December 12, 2012
  Version 5.3.2000       Navember 14, 2012
  Version 5.3.1999       Navember 13, 2012
  Version 5.3.1998       Navember 6, 2012
  Version 5.3.1994       October 27, 2012
  Version 5.3.1988       September 29, 2012
  Version 5.3.1986       September 12, 2012
* Version 5.3.1982       August 15, 2012
  Version 5.3.1981       August 2, 2012
* Version 5.3.1980       July 13, 2012
* Version 5.3.1955       May 16, 2012
  Version 5.3.1941       March 6, 2012
* Version 5.3.1917       January 10, 2012
* 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

-------------------------------------------------------------------------------
MB-SYSTEM VERSION 5.4 RELEASE NOTES:
-------------------------------------------------------------------------------

-----> 5.5.2233 (February 23, 2014)

Release 5.5.2233

Mbm_grdplot, mbm_grdtiff: Generated plot scripts now set foregound and background
colors based on the -D option.

Mbmroute2mission: Now allows the maximum planned climb rate of the AUV to be
specified with the -U option

-----> 5.5.2232 (February 21, 2014)

Mbm_plot, mbm_grdplot, mbm_grd3dplot, mbhistplot: Changed handling of gmt defaults
so that any local gmt.conf file is deleted before any gmtset calls are made, and
the resulting gmt.conf file is deleted before the plot script ends.

Mbswath: fixed calculation of beam or pixel footprints in mode requesting real
footprint plotting.

-----> 5.5.2231 (February 20, 2014)

Mb7kpreprocess: Switched beam angle calculation to the mb_beaudoin() function
already used by mbkongsbergpreprocess (contributed by Jonathan Beaudoin).

Mbm_bpr: Made compatible with GMT5.

-----> 5.5.2230 (February 18, 2014)

Mbgrdtiff: Fixed ordering of rows and columns in the output image.

Mbm_route2mission: Added output of a mission alititude profile plot.

Mbauvloglist: Added capability of binary output.

Mb7kpreprocess: Fixed so that bathymetry calculation uses roll merged at
the bottom detect time for all of the possible combinations of Reson 7k
data record types.

Mbpreprocess: Fixed to exclude zero longitude or lattitude values from the
tables used for interpolation onto ping times.

Mbrolltimelag: Fixed automatically generated roll-slope correlation plot.

-----> 5.5.2229 (February 14, 2014)

Format 121 (MBF_GSFGENMB): The i/o module will now allocate and initialize arrays
of beamflags and alongtrack distance when those are not included in the input file.

Mbfilter: removed failing check for existance of sidescan data.

Mbsegygrid: flipped grid convention for compatibility with GMT5.

Mbm_plot, mbm_grdplot, mbm_grd3dplot, mbm_histplot: further changes for compatibility
with GMT5.

Mbm_route2mission: Compatibility with GMT5.

Mbcontour, mbswath: More changes for compatibility with GMT5.

-----> 5.5.2228 (February 6, 2014)

Install_makefiles: the old install_makefiles build system no longer 
functions and has been removed.

Mbgrid: When using the two-step weighted footprint slope algorithm, mbgrid
only reads files on the second pass through the input datalist that contained
useful data in the first pass.

Major changes made to integrate MB-System with GMT5:
  The code will no longer compile or work with GMT4.5.
  Changes include:
    -updating functions in libmbaux  that read and write GMT grids
    -deletion of src/mbaux/mb_pslibface.c
    -changes to all programs that read or write GMT grids,
    -the former programs mbcontour, mbswath, and mbgrdtiff are now GMT5
      modules built as part of a shared library.
    -changes to all of the plot macros (e.g. mbm_grdplot) that make use of GMT

Format 88 (MBF_RESON7KR): Update Reson 7k i/o module to handle TVG records.

-----> 5.4.2219 (December 11, 2014)

Mbnavadjust: Fixed fixed memory management issue related to fbt files.

Mb7kpreprocess: Moved toward correct handling of sensor offsets.

Mbpreprocess: Moved toward correct handling of sensor offsets.

-----> 5.4.2218 (December 4, 2014)

Mbinfo: Fixed JSON format output to file (previously missed final closing bracket).


-----> 5.4.2217 (December 1, 2014)

Mbclean: Implemented additional flagging tests contributed by Suzanne O'Hara,
including speed range (-Pspeed_min/speed_max), ping navigation bounds
(-Rwest/east/south/north), and zero longitude and latitude values (-Z).
Also, a minimum depth at nadir test embedded by Dana Yoerger for all data
(circa 2010) has been recast into a minimum range test option (-Krange_min). 

Format 71 (MBF_MBLDEOIH) and fbt files: fixed a problem with the i/o module
as updated in 5.4.2216.

-----> 5.4.2216 (November 30, 2014)

Format 251 (MBF_PHOTGRAM): We have added a new data format and associated data
system supporting photogrammetric topography calculated from stereo pair
photographs. This format includes navigation and attitude data. Each 2D group
of bathymetry values is derived with a single stereo pair. A file consists of a
sequence of stereo pair bathymetry, each set of which has a timestamp, navigation
and attitude as well as bathymetry values. The format 251 files are generated
from stereo pairs (and navigation and attitude data) by a set of tools that
are not currently in MB-System, but which will be added to MB-System in the
future. 

Mbeditviz and Mbgrdviz: Now allow selection of a single navigation point.

Mbeditviz and mbgrid: Now handle point topography data (e.g. xyz soundings, lidar
soundings, photogrammetry topography) differently than multibeam soundings even
when the footprint algorithm is specified. Point data are now treated as such,
and no longer are associated with nonsensical beam footprints.

Format 71 (MBF_MBLDEOIH) and fbt files: We have defined a new data record header (version 5)
that represents the number of bathymetry beams, amplitude beams, and sidescan
pixels as four-byte int values rather than two-byte short values. This supports
data constructs that have more than 32768 bathymetry values, as can be the case
for dense photogrammetry data derived from stereo-pair photography. The i/o module
only uses the version 5 header when there are more than 32768 bathymetry values
in the associated sonar ping, lidar scan, or photographic stereo pair. Otherwise,
the previously existing version 4 header is used. Consequently, for all previously
supported data types there will be no change to the MBF_MBLDEOIH format or to
fbt files.

General: MB-System now defines several types of bathymetry data:
      MB_TOPOGRAPHY_TYPE_UNKNOWN		0
      MB_TOPOGRAPHY_TYPE_ECHOSOUNDER	        1
      MB_TOPOGRAPHY_TYPE_MULTIBEAM		2
      MB_TOPOGRAPHY_TYPE_SIDESCAN		3
      MB_TOPOGRAPHY_TYPE_INTERFEROMETRIC	4
      MB_TOPOGRAPHY_TYPE_LIDAR      	        5
      MB_TOPOGRAPHY_TYPE_CAMERA     	        6
      MB_TOPOGRAPHY_TYPE_GRID     	        7
      MB_TOPOGRAPHY_TYPE_POINT       	        8
The immediate utility of differentiating between data types is to
allow gridding algorithms to handle data appropriately. As discussed
above, the footprint gridding algorithms are now only applied by
mbgrid or mbeditviz to multibeam bathymetry. Other differences in
data processing will be added in the future.

General: The sort function and related comparison function declarations
in MB-System have been corrected to be consistent with qsort() from stdlib.

-----> 5.4.2213 (November 13, 2014)

Mbkongsbergpreprocess: Added -E option to allow specification of offsets between
the depth sensor and the sonar. This is relevant only to submerged platforms
such as AUVs or ROVs. Also added -P option to enable filtering of pressure
depth data.

Format 59 (MBF_EM710MBA): Set the navigation and attitude source records to be
survey data so that mbnavedit and mbnavlist work by default with values from the 
survey records rather than asynchronous raw sensor data. The navigation and attitude
sources for format 58 (MBF_EM710RAW) remain the asynchronous records.

Mbnavedit: Strictly define the font definitions for pushbutton widgets
(some X11 environments are making bad choices when given latitude).

-----> 5.4.2210 (November 10, 2014)

Mbkongsbergpreprocess: Changed handling of water column records. The default
behavior is now to not write water column records to the output format 59 files.
Users can specify -W1 to have the water column records written in the output files.

Format 41 (MBF_SB2100RW): Bug fix for Seabeam format 41 so the code handles
records without the maximum number of beams. Contributed by Bob Covill.

Mbprocess: Added ability to apply static bathymetry corrections defined according
to beam angle in addition to corrections according to beam number. Contributed
by Bob Covill.

Mbvelocitytool: When loading a swath file, mbvelocitytool will now also read in
and apply an associated *.esf (edit save file) if it exists. This prevents
soundings that have been identified as bad from biasing the calculations.
Contributed by Bob Covill.

Mbm_grdcut: Fix to the manual page. Contributed by Jenny Paduan.

-----> 5.4.2209 (November 4, 2014)

MBnavadjustmerge:  Completed the manual page for this new program that allows
one to merge and manipulate MBnavadjust projects.

Formats 58 (MBF_EM710RAW) and 59 (MBF_EM710MBA): Recast the i/o architecture to
handle the full variablity of multibeam data in these formats.

-----> 5.4.2208 (October 29, 2014)

Mbkongsbergpreprocess:  Fixed calculation of beam
takeoff angles for raytracing from the raw range and angle data records by
including code made available by Jonathan Beaudoin. Recalculation of
bathymetry in current generation Kongsberg multibeam data appears to work
now.

Formats 58 (MBF_EM710RAW) and 59 (MBF_EM710MBA): Support Mesotech M3
multibeam data recorded in *.all files.

Formats 58 (MBF_EM710RAW) and 59 (MBF_EM710MBA): Fixed calculation of beam
takeoff angles for raytracing from the raw range and angle data records by
including code made available by Jonathan Beaudoin. Recalculation of
bathymetry in current generation Kongsberg multibeam data appears to work
now.

-----> 5.4.2204 (September 5, 2014)

Mb7kpreprocess:  Changed handling of roll, pitch, and heave compensation
to deal with deep water Reson 7150 data.

Format 88 (MBF_RESON7KR): Changed handling of roll, pitch, and heave compensation
to deal with deep water Reson 7150 data.

Mbdefaults: Added control of default color and shading settings for mbgrdviz and
mbeditviz.

Format 231 (MBF_3DDEPTHP): Fixed the mbsys_3datdepthlidar_insert_nav() function
to apply changes to all pulses.

Mbgrdviz and Mbeditviz: Default color and shading settings now can be set using
mbdefaults.

-----> 5.4.2202 (August 25, 2014)

Format 88 (MBF_RESON7KR): Enlarged the maximum number of beams to 1024 in order
to handle 7150 data with >800 beams.

Format 21 (MBF_HSATLRAW): Augmented to trim trailing blank space at the end of
lines before parsing - this allows reading Hydrosweep DS data in the form
held by NIO.

-----> 5.4.2201 (August 20, 2014)

Mbm_grdplot: Added two "sealevel" color palletes that use Haxby colors for
negative values (e.g. topography below sea level) and either greens or browns
for positive values (e.g. topography above sea level). The Sealevel 2 pallette
was contributed by Jenny Paduan.

Mbeditviz: Changed default illumination parameters to magnitude=1.0 and
elevation=5.0.

Mbgrdviz: Changed default illumination parameters to magnitude=1.0 and
elevation=5.0.

Mbnavadjust: Added views for 10% coverage crossings.

Mb7kpreprocess: Added kluge function to "tweak" the beam angles as if the speed of
sound used for beamforming had been wrong.

-----> 5.4.2200 (July 24, 2014)

Format 121 (MBF_GSFGENMB): Fixed bug in which null sensor depth and altitude
values are handled incorrectly.

-----> 5.4.2199 (July 20, 2014)

Format 121 (MBF_GSFGENMB): Modified GSF 3.06 source files gsf.c gsf_indx.c to
disable recasting of fundamental file io functions (fopen(), fseek(), ftell(),
stat()) when the compile flag -DUSE_DEFAULT_FILE_FUNCTIONS is defined. This
allows MB-System builds to just use the normal file functions without changing
the build behavior of the code in other contexts. The issue is that Leidos is
supporting 64-bit file i/o in binaries for 32-bit architectures. The consequence
of this change in MB-System is that MB-System will not support GSF files that
are 2 GB or larger when built on or for 32-bit systems.

mbpreprocess: Fixed bug in merging of asynchronous attitude data. This program
is not ready for general use.

-----> 5.4.2196 (July 14, 2014)

mbotps: Added -P option to specify the location of the OTPS package.

mbsslayout: Made to work (again) with Reson 7k data with embedded Edgetech
sidescan and subbottom data.

mb7kpreprocess: Made to work (again) with Reson 7k data with embedded Edgetech
sidescan and subbottom data.

mbextractsegy: Made to work (again) with Reson 7k data with embedded Edgetech
sidescan and subbottom data.

-----> 5.4.2195 (July 9, 2014)

Format 88 (MBF_RESON7KR): Fixed bug in mbsys_reson7k_extract_altitude().

Format 132 (MBF_EDGJSTAR): Added mbsys_jstar_insert_altitude() to support
mbpreprocess and mbsslayout. Fixed handling of heading on extract and insert.

mbm_route2mission: Removed confusing juxtaposition of estimated AUV mission time
with actual AUV mission termination time in the output AUV mission script.

mbpreprocess: Added ability to merge altitude data. Tested successfully with
raw Edgetech sidescan data collected without embedded navigation, attitude,
or anything really.

mbsslayout: A new program to lay out raw sidescan onto the seafloor, most
often on a 3D seafloor topographic model. Achieved functionality, at least 
for use with Edgetech sidescan data in Jstar format.

-----> 5.4.2194 (July 8, 2014)

Format 121 (MBF_GSFGENMB): Updated source files in src/gsf/ to GSF release 3.06.

Format 121 (MBF_GSFGENMB): Fixed scaling of array values in GSF files to allow
depth and distance resolutions better than 1 cm.

Formats 58 (MBF_EM710RAW) and 59 (MBF_EM710MBA) to support EM2040D data, in which
dual sonars ping simulatneously.

-----> 5.4.2191 (June 4, 2014)

Install_makefiles: Fixed old build system so that it successfully compiles and
links the new, unfinished program mbsslayout.

-----> 5.4.2189 (June 4, 2014)

Format 121 (MBF_GSFGENMB): Fixed bug that caused programs reading GSF data to hang
when the GSF file ends with a partial or corrupted data record.

MBeditviz: Added capability to set the color of selected soundings (e.g. soundings
associated with a particular file or particular section of trackline).

Format 88 (MBF_RESON7KR): Added support for pitch stabilization.

MB7kpreprocess: Added support for pitch stabilization in Reson 7k data.

-----> 5.4.2188 (May 31, 2014)

Format 121 (MBF_GSFGENMB): Fixed bug that caused crashes when the GSF file
contains a zero length comment.

Format 64 (MBF_MR1PRVR2): Fixed bug that caused crashes when copying data from
MR1 file to an fbt file when comments are longer than supported in fbt files.

MBnavadjust: Fixed bug that reset the selected survey while doing autopicks.

-----> 5.4.2187 (May 28, 2014)

Format 201 (MBF_HYSWEEP1): Added code to ignore bad RMB records found in some
NOAA HSX data.

Format 88 (MBF_RESON7KR): Support for calibrated snippet records (contributed
by David Finlayson).

MB7kpreprocess: Support for calibrated snippet records (contributed
by David Finlayson).

MBnavadjustmerge: Fixed to handle projects not in the current working directory.

-----> 5.4.2186 (May 26, 2014)

MBeditviz: Fixed interactive application of pitch bias and heading bias changes.

MBnavadjustmerge: New program to merge two existing MBnavadjust projects.

-----> 5.4.2185 (May 17, 2014)

MBrolltimelag: Now checks for case when all beams are flagged.

MBlist: Added beamflag values to those that can be printed ('F' or 'f').

Bathymetry editing: Fixed bug that prevented successful flagging of some beams
when files include simultaneous pings with different numbers of beams.

GSF library: Updated to new release 03.05. This release is licensed using LGPL 2.1.

-----> 5.4.2185 (May 11, 2014)

Several programs: Fixed formating error in printing system time_tm.tv_sec values.

MBsvpselect: Fixed sscanf format warning.

MBcopy: Fixed array dimensioning bug that occasionally caused buffer overflows.

MBnavadjust: Moved some declarations from mbnavadjust_prog.c to mbnavadjust.h in
preparation for breaking project i/o out into a separate source file to be shared
with the new program mbnavadjustmerge.

MBsslayout: Added shell of program under development to read sidescan in raw time
series form, lay the sidescan out regularly sampled on a specified topography
model, and output the sidescan to format 71 (MBF_MBLDEOIH) files.

HSDS formats (MBF_HSATLRAW, MBF_HSLDEDMB, MBF_HSURIVAX, MBF_HSURICEN): Fixed bug
in handling of system gain arrays (16 rather than 59 values).

MBsegygrid: Attempted to incorporate actual nonvertical geometry into the
subbottom sections - not satisfactory yet.

MBrolltimelag: Fixed bug regarding the default roll source. The program will
now work with roll values derived from survey records by default.

Format 88 (MBF_RESON7KR): Cleaned up some debug print statements.

MBinsreprocess: Incomplete new MB6 program to reprocess INS data of various sorts
to improve on realtime Kalman filtered navigation and attitude data.

MBsslayout: Incomplete new MB6 program to perform layout of time series sidescan
onto a 3D topography model. This will replace mb7k2ss and extend the functionality
to conventional sidescan data in several data formats.

Mbm_route2mission: Fixed output AUV mission script to have "\r\n" line ends on
all lines.

Format 222 (MBF_SWPLSSXP): Revised implementation of SEA SwathPlus SXP data format
(format id 222) contributed by David Finlayson.

Format 121 (MBF_GSFGENMB): Changed the source for the internally supplied GSF
library to be the new 3.05 release. This includes for the first time a proper
open source license (LGPL 2.1).

-----> 5.4.2184 (April 22, 2014)


src/bsio/Makefile.in: Added to archive (previously mistakenly left out).

-----> 5.4.2183 (April 16, 2014)

Many programs: Fixed handling of system time character string provided by
function ctime() to prevent occasional overflows.

Format 222 (MBF_SWPLSSXP): Revised implementation of SEA SwathPlus SXP data format
(format id 222) contributed by David Finlayson.

MBswplspreprocess: Preprocess program for SEA SwathPlus SXP data format
(format id 222) contributed by David Finlayson. This was formerly known as
mbsxppreprocess.

-----> 5.4.2182 (April 8, 2014)

Format 231 (MBF_3DDEPTHP): Added new raw Lidar record to be used by 3DatDepth.

Format 201 (): Corrected bug in handling of navigation in projected coordinate
systems.

mbio/mb_navint.c and mbio/mb_define.h: Added a new function mb_navint_prjinterp()
that interpolates navigation and speed from internal runnings lists assuming the
navigation is in eastings and northings rather than longitude and latitude.

-----> 5.4.2181 (April 4, 2014)

Release 5.4.2181

htmlsrc/mbsystem_home.html & htmlsrc/mbsystem_faq.html: Actually committed
pictures of Christian Ferreira and Krystle Anderson to the archive

-----> 5.4.2180 (April 2, 2014)

htmlsrc/mbsystem_home.html & htmlsrc/mbsystem_faq.html: Updated references
to the MB-System team in the html documentation to include Christian Ferreira
and Krystle Anderson.

htmlsrc/mbsystem_how_to_get.html: Updated installation instructions
in the html documentation.

MB7kpreprocess: recoded the application of time domain filtering of pressure
depth data to be much more efficient.

Format 132 (MBF_EDGJSTAR): Supported obsolete sidescan records with 80 byte
traceheaders.

MBextractsegy: Now works with Edgetech Jstar files.

MBauvloglist: reset default printing of timestamp values.

Mbset: modified so that when mbset is used to turn off a mode that implies
use of an external file, the associated filename is also erased. For example
    mbset -PSVPMODE:0
will now also erase (null) the filename set by -PSVPFILE.

Mbm_grd3dplot, mbm_grdplot, mbm_histplot, mbm_plot, mbm_xyplot: added support
for the evince postscript viewer.

Format 172 (MBF_HIR2RNAV) and format 173 (MBF_MGD77TXT): fixed segmentation
faults while handling comment records.

MBlist: The 'N' output option will now use actual ping numbers if those are
available (instead of ping count in the file).

MBroutetime: Now exits with error message if no start line or end line waypoints
are read from the input route file.

-----> 5.4.2176 (March 18, 2014)

Release 5.4.2176

-----> 5.4.2175 (March 18, 2014)

Configure.ac: Removed reference to src/mbsvptool (src/mbsvptool/mbsvptool.c
was moved to src/utilities/mbsvpselect.c for 5.4.2173).

MBnavadjust: The program generates route files of crossings and ties that
can be viewed in mbgrdviz. The coloring of the crossings and ties when
displayed in mbgrdviz has changed. The route files generated are:
    True Crossings (unfixed)
    >50% Crossings (unfixed)
    >25% && <50% Crossings (unfixed)
    <25% Crossings (unfixed)
    Ties (unfixed)
    Ties (fixed)
For the crossing files, individual crossings are colored as:
    Unset - Red
    Skipped - Yellow
    Set - Green
For the tie files, individual ties are colored as:
    Ties (unfixed) - Blue-Green
    Ties (fixed) - Purple

All source files: Updated copyright notices to 2014.

-----> 5.4.2173 (March 17, 2014)

MBsvpselect: Added program contributed by Ammar Aljuhne and Christian Ferreira
of MARUM (University of Bremen). This program chooses and implements the best
available sound speed model for each swath file in a survey. The user  provides
a  list of the available sound speed models and specifies the criteria used for
model selection. The program uses mbset to turn on bathymetry recalculation by
raytracing through the sound speed model selected for each swath file.

MBsvplist: The SVP files output by mbsvplist now include a header line that
is recognized by mbsvpselect. This header line includes the time stamp and
position associated with the SVP record's location in the swath file.

MBpreprocess: Added an incomplete manual page for this incomplete MB-System 6
program.

-----> 5.4.2172 (March 14, 2014)

MBmosaic: Added option to apply priorities based on the platform heading.

Format 64 (MBF_MR1PRVR2): Hawaii Mapping Research Group (HMRG) data format
updated to use the current library and thereby support post-2005 data.
Removed old HMRG mr1pr library from mbsystem/src and added current bsio
library.

MBgrdviz: Modified handling of routes so that if a route header contains a line
like:
      ## ROUTEEDITMODE:0
then the route cannot be changed in MBgrdviz.

MBnavadjust: Changed so that when a project is output, mbnavadjust writes out
five different route files in which each tie point or crossing is a two point route
consisting of the connected snav points
- route files of ties (fixed and unfixed separate) represent each tie as a
two point route consisting of the connected snav points
- route files of crossings (<25%, >= 25% && < 50%, >= 50%, true crossings)
represent each crossing as a two point route consisting of the central
snav points for each of the two sections.

Mbvelocitytool: made all filename and command strings type mb_path, which is
a 1024 byte char array.

Format 173 (MBF_MGD77TXT): Added format to read and write MGD77 format
underway geophysical data files with "\r\n" characters at the ends of the
data records.

Format 174 (MBF_MGD77TAB): Added format to read and write MGD77T format
underway geophysical data files with tab delimiters and "\r\n" characters
at the ends of the data records.

-----> 5.4.2168 (February 19, 2014)

Mbinfo: Fixed bug in variance calculation (memory overwrites of the relevant arrays).

-----> 5.4.2165 (February 18, 2014)

Format 241 (MBF_WASSPENL): Made format suffix ".000" recognizable as format 241.


-----> 5.4.2164 (February 15, 2014)

Format 241 (MBF_WASSPENL): added new format for WASSP multibeam sonar.

Format 151 (MBF_OMGHDCSJ): applied patch supplied by Bob Covill.

Mbrolltimelag: fixed so that the program works with data formats for which the
roll source is the survey records.

Mbauvloglist: added capability to merge navigation from external files.

-----> 5.4.2163 (January 31, 2014)

Format 71 (MBF_MBLDEOIH): fixed a recently introduced error in scaling of
bathymetry values. This error impacts the fbt files, and consequently will
mess up bathymetry gridding and plotting. It's important to update installations
to 5.4.2163.

MBextractsegy: Fixed so correct navigation is inserted in both the source and
group position fields in the segy traceheader.

-----> 5.4.2162 (January 24, 2014)

Format 88 (MBF_RESON7KR): fixed crash when generating sidescan from pings with no valid beams.

Format 201 (MBF_HYSWEEP1): fixed crash when generating sidescan from pings with no valid beams.

Build system: Altered so the configure script works with standard options.

-----> 5.4.2161 (January 21, 2014)

MBedit: fixed use of beamflag setting macros that were messed up yesterday.

-----> 5.4.2160 (January 20, 2014)

General: fixed many compiler warnings.

General: implemented changes suggested by Joaquim Luis in order to enable
building MB-System on Windows systems.

-----> 5.4.2159 (January 18, 2014)

Release 5.4.2159.

-----> 5.4.2158 (January 18, 2014)

Many changes, including:
  - Support for new format of lidar data
  - Fixes to support swath data with sub-cm lateral resolution
  - Fix so that mbnavadjust works when built with shared libraries.
    - this involved changes to the contouring code in the mbaux library.
  - Augmentation of the AUV mission planning capability
  - Improvement to mbm_grdplot output for maps of small areas
  - Fixes to the configure build system
    - now allows MB-System to be built using an externally installed
      libproj or the proj library bundled with MB-System
    - using --disable-gsf now works properly to build without any use of
      or entanglement with libgsf.
        
-----> 5.4.2157 (October 14, 2013)

Mbm_makesvp: New macro to extract sound speed and depth data from a datalist of
swath files, and generate a sound velocity profile model from averages of the
sound speed values in regular depth ranges. This macro uses mbctdlist to extract
the sound speed values embedded in swath data files is intended for use with
mapping data from submerged platforms (e.g. ROVs and AUVs) carrying CTD or
sound speed sensors. 

-----> 5.4.2155 (October 13, 2013)

MBvelocitytool: Fixed problems with bad calculations after loading more than
one swath data.

MBgrdtiff, mbm_grdtiff: Added capability to output a *.tfw "world" file parallel
to the GeoTiff image. Some software does not recognize the coordinate system
information embedded in the GeoTiff file.

MBsegygrid: Added capability for simple time domain low-pass filtering.

MBrphsbias: Added incomplete new program that will, when complete, use a brute
force multidimensional search obtain optimized estimates for bias parameters
from a specified dataset. There is no documentation yet as the program currently
does nothing but compile and read data.

-----> 5.4.2154 (September 26, 2013)

MBkongsbergpreprocess, MB7kpreprocess, MBhysweeppreprocess, mbprocess:
Fixed errors in navigation interpolation introduced in 5.4.2152.

Format 84 (MBF_XTFR8101): Fixed initialization of the storage data structure.

Committed from CCGS Sir Wilfrid Laurier at 116d 04.4876' W, 68d 57.30' N.

-----> 5.4.2153 (September 22, 2013)

Format 201 (Hysweep HSX): fixed sign error in handling of pitch values.

-----> 5.4.2152 (September 16, 2013)

Formats 58 (Kongsberg raw), 59 (Kongsberg extended), 88 (Reson 7k):
Fixed problem with interpolation of heading for Kongsberg and Reson data.
Eliminated possibility of negative headings being inserted into the storage
data structure.

Format 222: Inserted initial implementation of SEA SwathPlus sxp data format
(format id 222) contributed by David Finlayson with minor changes. This format
support is still developmental.

Build system: Applied patch contributed by Frank Delahoyde with additional fixes
to configure.ac and the src/*/Makefile.am files.

-----> 5.4.2151 (September 12, 2013)

Many *.c files: hundreds of small changes to eliminate compiler warning messages
on various types of systems.

Build system: Changes to configure.ac, autogen.sh, and src/*/Makefile.am files
based on suggestions from Frank Delahoyde of SIO and Kurt Schwehr of Google.

-----> 5.4.2149 (September 2, 2013)

Src directories src/mbio and src/utilities: Fixed a number of debug print
statements that treated pointer values as %ul rather than %p.

-----> 5.4.2148 (August 28, 2013)

Buildsystem: More tweaking of configure.ac file, including making the comments
output more sensible.

-----> 5.4.2147 (August 27, 2013)

Buildsystem: More tweaking of configure.in file trying to get MB-System to build
on Ubuntu 12.04.02LTS. Moved configure.in to configure.ac to conform to current
autoconf file naming conventions.

-----> 5.4.2144 (August 26, 2013)

Buildsystem: Added src/mbgrdviz/Makefile.in and src/mbeditviz/Makefile.in to the
subversion source archive.

Format 201 (Hysweep HSX): Changed mbr_rt_hysweep1() in mbr_hysweep1.c so that
survey records without navigation and/or attitude data do not have an error
set. This means that data missing nav and/or attitude will still be
processable.

Format 121 (GSF): Now recognizes and appropriately treats null values for
position, attitude, speed, and sonar depth.

-----> 5.4.2143 (August 24, 2013)

MBsxppreprocess: Added nonfunctional stub for program mbsxppreprocess to be
developed by David Finlayson.

-----> 5.4.2141 (August 24, 2013)

Build system, MBgrdviz, MBeditviz, MBview: Moved source files for MBgrdviz
and MBeditviz from src/mbview to src/mbgrdviz and src/mbeditviz, respectively.
This move separates the application source files for MBgrdviz and MBeditviz
from the source files of the mbview library.

-----> 5.4.2139 (August 19, 2013)

Build system: Further modification to the src/mbview/Makefile.am file.

-----> 5.4.2138 (August 18, 2013)

Build system: Further modifications to the Makefile.am files.

MBopts: Now allows users to specify the tide model used by OTPS. Also now works
with all three variants of the OTPS package.

MBareaclean: Fixed memory allocations problems.

MBgrdviz: Added capability to launch mbnavedit and mbvelocitytool on selected
swath data (contributed by Christian Ferreira).

-----> 5.4.2137 (August 9, 2013)

Build system: Still attempting to fix problems with the autoconf build system on
Ubuntu machines. Change mbsystem/src/opts/Makefile.am so that building this
utility does not depend on GMT libraries (since it doesn't).

-----> 5.4.2136 (August 8, 2013)

Build system: Attempted to fix problems with the autoconf build system on
Ubuntu machines. Reset the automake version to 2.65 from 2.69 as specified
in the mbsystem/configure.in file. Also added a conditional reference to
libmbgsf to the requirements for mbcopy in mbsystem/src/utilities/Makefile.am.

-----> 5.4.2135 (August 7, 2013)

Mbdatalist: Fixed generation of old-format fbt files.

Web page documentation: Updated basic web pages included in the distribution.

-----> 5.4.2134 (July 31, 2013)

Heading and nav interpolation (src/mbaux/mb_spline.c): Fixed function
mb_linear_interp_degrees() so that negative latitude values are allowed.

Mbkongsbergpreprocess: Added checking so that interpolated heading and
navigation are in the correct domains.

-----> 5.4.2133 (July 29, 2013)

Heading and nav interpolation (src/mbaux/mb_spline.c): Modified function
mb_linear_interp_degrees() so that return values must be in the range
  0.0 <= value < 360.0
to fix bad heading values near due north.

Mbclean: added -Ttolerance option which will recast the timestamps of edit
events read from edit save files to match the pingtimes, where the tolerance
value in seconds defines how close the timestamps must be to be considered the
same. This is used to override timestamp differences greater than 0.0011 seconds
that can arise when edits are extracted from one set of files (perhaps processed
using software other than MB-System) using mbgetesf and then applied to a
different set of files (presumably as part of MB-System processing).

-----> 5.4.2132 (July 26, 2013)

Format 88 (Reson s7k): Fixed layout of snippet backscatter into sidescan in the
near-nadir region.

Format 88 (Reson s7k): Mbprocess now routinely recreates multibeam sidescan
during processing. This allows backscatter from beams flagged as bad to be
excluded from the multibeam sidescan.

Mbinfo: Fixes to XML output from mbinfo (Christian Ferreira)

Format 201 (Hysweep): Substantially changed i/o logic to handle the many
different variants of data logged through Hysweep.

Format 201 (Hysweep): Augmented to handle sidescan data in conjunction with
multibeam bathymetry. The i/o module will lay the raw sidescan out on the
bathymetry to generate "processed" sidescan. That will be included in any output
file as MSS records (an MB-System extension to the HSX format), which can be
corrected and filtered in the usual way.

Format 88 (Reson s7k): Fixed bug in which sidescan generated from backscatter
records was flipped port to starboard. Also fixed layout of backscatter in the
near-nadir region.

-----> 5.4.2129 (July 8, 2013)

Build system: Attempted to implement changes to the build system suggested by
Kurt Schwehr and Hamish Bowman.

Mbrolltimelag: Augmented to allow specification of the time lag interval used
in correllation calculations with arbitrary start and end times.

Mbnavlist: Fixed problems with outputting attitude data from some variants of
Kongsberg data.

Mbgrid: Changed the convergence criteria for the zgrid interpolation algorithm
to simply be that the largest change in the grid value is no more than 1 mm.

Formats 56 and 57: Augmented handling of Kongsberg EM1002 data to recognize and
fix erroneous transmit and receive beamwidth values.

Mbprocess and mbvelocitytool: Augmented raytracing code to handle high angle
rays without rounding errors producing a square root of a negative number.
This fixed problems with sample EM1002 data.

-----> 5.4.2128 (June 18, 2013)

Mblist: Fixed bug that flagged as bad all sidescan pixels with negative values.

src/mbio/projections.h and src/utilities/levitus.h: Removed from svn version
control as these are created during the build process.

Build system: Implemented changes to the build system contributed by
Kurt Schwehr that enable building MB-System without support for GSF or inclusion
of the GSF source code from SAIC. This optional removal of GSF support addresses
the lack of a proper open source or free software license for the GSF source
code distribution from SAIC. MB-System distributions that include GSF code or
require the GSF library cannot be included in official open source package
collections such as Debian.

Mbgrid: Changed the usage of the zgrid interpolation by mbgrid. Release 5.3.1989
included changes to speed up interpolation by calculating a smooth model for a
low resolution grid and then resampling this onto the full resolution grid. This
approach has the problem that the low resolution interpolation can work poorly
near data. Mbgrid still does low resolution interpolation as part of the
slope estimation stage of algorithms 5 and 6 and as part of background
interpolation, but once again does the primary interpolation stage at full
resolution.

-----> 5.4.2123 (June 10, 2013)

Many changes implementing fixes to the new build system from Bob Covill,
Hamish Bowman, and Christian Ferreira. Moved key auto-generated header file
from mbsystem/src/mbsystem_config.h to mbsystem/src/mbio/mb_config.h.

Mbm_route2mission: added support for more than one type of survey behavior
in an AUV mission as controlled by waypoint type in the route files
exported from mbgrdviz.

Moved program hsdump to mbhsdump.

Fixed some potential buffer overflows and other errors identified by
Hamish Bowman.

Changed the header of the mbm_* perl macros to #!/usr/bin/env perl as
suggested by Hamish Bowman and Kurt Schwehr.

-----> 5.4.2082 (May 24, 2013)

Configure.cmd: Added -DBYTESWAPPED to the recommended pre-options for the
configure script on Macs.

MBF_EM710RAW (format 58) and MBF_EM710MBA (format 59): Added EM2045 to the
list of supported Kongsberg multibeam sonars (also known as the EM2040D).

-----> 5.4.2081 (May 23, 2013)

Build System: Have implemented an autotools-based build system with a
configure script, following on the initial work by Bob Covill and others.
The man page and web page documentation have been moved into the source
tree. The old install_makefiles build system has been updated to still work.

-------------------------------------------------------------------------------
MB-SYSTEM VERSION 5.3 RELEASE NOTES:
-------------------------------------------------------------------------------

-----> 5.3.2062 (May 17, 2013)

Mbprocess: Fixed a couple more mistakes on lines 5659 and 5662 in mbprocess.c.

-----> 5.3.2061 (May 16, 2013)

Perl macros: Renamed all perl source files in mbsystem/src/macros by removing
the *.pl suffix. This is another change to allow use of the GNU autotools for
building MB-System. The easy way for automake to handle executable scripts is
to just copy them to the bin directory; renaming the scripts is harder to set
up.

-----> 5.3.2060 (May 14, 2013)

Mbsvplist: Added -N option to limit the number of SVP profiles that can be
output. (contributed by Suzanne O'Hara)

-----> 5.3.2059 (May 14, 2013)

Mbprocess: Fixed bug in mbprocess in which angle rotation calculations mixed
degrees and radians when attitude is merged as part of an external navigation
stream. (Contributed by Bob Covill)

Mbsvplist: Added -T option to output CSV delimited table
(contributed by Suzanne O'Hara)

-----> 5.3.2056 (May 7, 2013)

Formats 221 and 222: Added empty i/o module files to ultimately support two
new formats, both handling data from SEA SWATHplus interferometric sonars:
	MBF_SWPLSSXI - 221
	MBF_SWPLSSXP - 222
The new files include:
	mbio/mbsys_swathplus.c
	mbio/mbsys_swathplus.h
	mbio/mbr_swplssxi.c
	mbio/mbr_swplssxp.c

-----> 5.3.2055 (May 7, 2013)

Many files: fixed issues that result in compiler warnings.

Mb7k2ss: Fixed problem that overwrote the first extracted sidescan line.

Mbgrid: Added gridding algorithm 6, called footprint weighted mean. This
differs from algorithm 5, called footprint slope weighted mean, in that it
omits the use of the local slope, and thus requires only a single pass
through the data.

Format 121 (GSF): Added fix from Christian Ferreira to reset the
depth_corrector value to zero if necessary

-----> 5.3.2053 (April 4, 2013)

Mb7k2ss: Fixed line breakouts so that the first line is output separate from
the second.

Formats 162, 163, 168, 169 (text xyz variants): Fixed i/o modules to handle files
with leading white space before the first column.

Mbset: Added -N option to turn off merging of navigation from MBnavadjust and
also remove the *.na0 files.

Mbgrid, mbmosaic, mbm_grid: Fixed documentation descriptions of the options
controlling the spline interpolation, particularly the tension.

Mbm_grdtiff: Fixed the image display program called in the tiff-creating
script created by mbm_grdtiff.

Mbdatalist: Recast the output format for the -S option. One now gets a single
line of output for each file unless the -V option is also specified.

-----> 5.3.2051 (March 20, 2013)

Formats 58 and 59 (mbf): The calculation of "sidescan" from raw backscatter
samples has been improved. The sidescan can now be successfully
recalculated by mbprocess following application of bathymetry edits.

Mbprocess: Recalculation of Konsberg multibeam sidescan now enabled for
formats 58 (mbf_em710raw) and 59 (mbf_em710mba) with command
mbset -PSSRECALCMODE:1.

Mbedit: soundings originally flagged by the sonar now return to that
state if they are unflagged and then reflagged interactively.

Mbgrdviz: Disabled "goaway" buttons in dialogs to minimize crashes.

Mbeditviz: Disabled "goaway" buttons in dialogs to minimize crashes.

Mbm_grdplot: Updated macros to derive system defaults from mbdefaults.

Mbm_grdtiff: Updated macros to derive system defaults from mbdefaults.

Mbm_histplot: Updated macros to derive system defaults from mbdefaults.

Mbm_grd3dplot: Updated macros to derive system defaults from mbdefaults.

Mbm_vrefcheck: Updated macros to derive system defaults from mbdefaults.

Mbm_plot: Updated macros to derive system defaults from mbdefaults.

-----> 5.3.2042 (March 12, 2013)

MBkongsbergpreprocess: Fixed calculation of transmit time for sector subpings.

Format 58 (mbf_em710raw): Improved translation of bottom pick parameters to
beam flags.

MBgrdviz: Added export of routes to Hypack lnw format and to degrees + decimal
minutes format.

-----> 5.3.2017 (March 3, 2013)

Mb7k2ss: Program exits if topography grid specified but reading the file fails.

-----> 5.3.2016 (March 2, 2013)

Mb7k2ss: Fixed plotting correlation functions.

Mbm_xyplot: Fixed handling of NaN values in input data - no longer includes NaN
inputs in sorting to determine min max.

-----> 5.3.2015 (March 1, 2013)

Format 88 (mbf_reson7kr): Fixed some debugging print statements of hexadecimal
values.

Mbm_route2mission: Added command line control of multibeam sonar settings.

Mbprocess: Fixed handling of tide data with just one value.

Mbeditviz: Fixed calculation of corrected attitude and position for pings at
start and end of files.Previously badly mislocated pings happened unpredictably.

Mbfilter: Fixed handling of nonfatal read errors.

Format 94 (mbf_l3xseraw): Made storage available for sound speed profiles much
larger to handle some ridiculous data samples.

Mbauvloglist: Added code to output readable date and time values if desired.

mbm_xbt: Fixed code to more generally handle actual headers in Sippican MK12 data.

mbaux/mb_spline.c: Fixed extrapolation error in linear interpolation code.

Formats 162, 163, 168, 169 (xyz, yxz, xyt, yxt): Augmented code to handle text
triples with NaN values.

Mbotps: made /usr/local/otps the default location for the OSU Tidal Prediction Software (OTPS)

Format 21 (mbf_hsatlraw): Fixed failure to initialize the internal storage structure.

-----> 5.3.2013 (January 29, 2013)

Format 94 (mbf_l3xseraw): Fixed bug causing memory faults in Linux when data
with large svp records are encountered. SVP records can now have as many as
8192 entries.

-----> 5.3.2012 (January 25, 2013)

Mbkongsbergpreprocess: Fixed bug causing seg faults on Linux

-----> 5.3.2011 (January 17, 2013)

Format 88 (mbf_reson7kr): Removed debug messages left in by mistake

-----> 5.3.2010 (January 14, 2013)

Format 88 (mbf_reson7kr): Fixed reporting of angular beam widths, particularly
for pre-2009 data in which the alongtrack value was reported incorrectly.

Mbgrid: Changed the weighted footprint algorithm to correctly use the beamwidth
scaling parameter set with the -W option.

-----> 5.3.2009 (January 10, 2013)

Format 88 (mbf_reson7kr): Fixed a bug introduced at 5.3.2004 in first-time
parsing of current Reson 7k data that caused erroneous flagging of some beams.

-----> 5.3.2008 (January 6, 2013)

-----> 5.3.2007 (January 5, 2013)

Mbkongsbergpreprocess: Fixed -O option to direct all output to a single file.
Mb7kpreprocess: Fixed -O option to direct all output to a single file.

-----> 5.3.2006 (January 4, 2013)

Mbkongsbergpreprocess: Fixed -D option to put output files in the specified
directory.

-----> 5.3.2005 (December 31, 2012)

Mbsvplist: Added -M option to control SVP printing. If mode=0 (the default), then
the first SVP of each file will be output, plus any SVP that is different from
the previous SVP. If mode=1, then only the first instance of each unique SVP will
be output, even through multiple files referenced through a datalist structure.
If mode=2, then all SVPs will be output even if they are duplicates (equivalent
to the -D option). The -D option is retained for compatibility.

Format 88 (mbf_reson7kr): MB-System now recognizes files with a *.7k suffix as
Reson multibeam data in format 88. Usually Reson data are logged to files with
a *.s7k suffix.

Mbm_route2mission: Updated the calculation of the number of photos to be taken
during a Dorado-class AUV bottom photography mission.

Formats 58 (mbf_em710raw) and 59 (mbf_em710mba): Added support for for the
"Extraparameters" datagram.

Formats 58 (mbf_em710raw) and 59 (mbf_em710mba): Changed the encoding of binary
values in the format 58 and 59 files written by MB-System to be little-endian
(Intel byte order). The Kongsberg format specification allows byte encoding to
be little or big-endian, and previously MB-System has consistently used big-endian.

Mblist: Fixed bug regarding the output of transmit pulse length values.

Mbprocess: Altered mbprocess so that input SVP files are checked for zero
thickness layers.

-----> 5.3.2004 (December 12, 2012)

Mbsvplist: Added -S option to output surface sound speed from survey data rather

Mb7kpreprocess: Changed lever arm correction specified with the -D option to
involve three dimensions rather than just two.

Format 88 (mbf_reson7kr): Fixed so that mbctdlist and mbsvplist can output
surface sound speed values from Reson 7k data.

Format 88 (mbf_reson7kr): Fixed so that the storage of bathymetry acrosstrack and
alongtrack distance values in bathymetry (7006) records is correct. MB-System has
output incorrect 7006 records since the Reson 7k format (88) was first supported.
The error was that the acrosstrack and alongtrack distance values were transposed
relative to the format specification and the data output by the PDS2000 datalogger
(a reality that only became apparent when I finally had access to a sample of
PDS2000-logged data). The format 88 i/o module has been augmented to detect if
data being read derives from pre-fix versions of MB-System, and to fix the data
if necessary. The existence of this error and its fix should be invisible to
users, except that data written by pre-fix MB-System will probably import to
other software packages with the acrosstrack and alongtrack distances switched.

Mbmosaic: Fixed azimuthal priority weighting so that directional mosaicing is
more reliable.

-----> 5.3.2000 (Navember 14, 2012)

Mbinfo: Changed mbinfo to gracefully handle the situation of reading a file that
has no data records while the -P option is specified (gracefully means not
seg faulting).

Mbmosaic: fixed bug in the use of the azimuth weighting factor.

-----> 5.3.1999 (Navember 13, 2012)

Mbm_route2mission: Added multibeam pulse length as a command line argument.

Mbnavadjust: Added capability to solve for a z-offset model in which each
survey has a uniform or constant z-offset, and then reset all ties automatically using
those z-offsets.

Format 88 (mbf_reson7kr): Fixed bug that caused seg faults with pings that have no valid soundings.

-----> 5.3.1998 (Navember 6, 2012)

Mb7kpreprocess: Added -C option to apply roll bias and pitch bias during preprocessing. Fixed
rotation calculations so that side-looking and up looking mapping data can be handled
properly.

Mbmosaic: added checks for valid topography grid file.

Mbprocess: Fixed rotation calculations so that side-looking and up looking mapping data
can be handled properly.

Mbm_route2mission: added handling of third specified altitude value in AUV missions.

Mbeditviz: Fixed rotation calculations so that side-looking and up looking mapping data
can be handled properly.

Formats 56 (mbf_em300raw) and 57 (mbf_em300mba): added support for asynchronous attitude
output, in particular by mbnavlist -K18.

-----> 5.3.1995 (October 27, 2012)
-----> 5.3.1994 (October 27, 2012)

Mbfilter: when filtering sidescan the output file now includes any bathymetry available in the
original file. The bathymetry can be used by mbmosaic for calculating apparent grazing
angles and data priorities.

Mbmosaic: substantially rewrote the calculation of apparent grazing angle for sidescan
data to be more reliable and to optionally use a topographic model supplied by a
topography grid (specified with the -T option).

Mb7k2ss: removed functions associated with laying out sidescan on a 3D topographic
model. These functions are now found in src/mbaux/mb_intersectgrid.c.

Format 88 (mbf_reson7kr) and mb7kpreprocess: added support for multibeam sidescan
derived from either the backscatter records or the snippet records. The snippets are
generally better, and are the default source when . The program mb7kpreprocess can be
set to generate the multibeam sidescan from either record type. The multibeam sidescan is stored using
MB-System-only "processed sidescan" records as an MB-System-specific extension
to the 7k format.

libmbaux: added functions to the mbaux library that locate the intersection of
arbitrary vectors from a sonar platform with a topographic grid. This code is
located in src/mbaux/mb_intersectgrid.c, and includes functions formerly found
in src/utilities/mb7k2ss.c. These functions are now used to lay sidescan out
on a seafloor topographic model and to calculate the apparent grazing angles
needed for angle-based priority calculation in mbmosaic.

Mbgrid: fixed -Cclip[/mode] option so that -C0/3 will in fact fully interpolate
the resulting grid.

Format 88 (mbf_reson7kr): fixed travel time and angle calculation for current
generation data using v2detectionsetup data records.

Mbgrid and mbmosaic: Added -Rfactor option that will allow users to specify that
the output grid extent will be the data extent expanded by a multiplicitive
factor. For instance, specifying factor = 1.1 means the grid is expanded 5% to
the west, east, south and north for a total expansion of 0.1 or 10%.

-----> 5.3.1989 (October 4, 2012)

Mbm_grdplot & mbm_grdtiff: Fixed application of strict color table bounds in
mbm_grdplot and mbm_grdtiff.

mb7k2ss: Added -Q option so that sidescan lines can be constructed based on the
times starting and ending waypoints were reached.

Format 71 (mbf_mbldeoih): Fixed scaling of sidescan values to handle data with
small values.

Mbgrid and mbmosaic: Fixed the zgrid interpolation code, and also changed the
usage so that the interpolation stages will proceed much more rapidly. This is
now accomplished for large grids by iteratively calculating a smooth Laplacian model
for a low resolution grid and then resampling this onto the desired full resolution
grid using bilinear interpolation.

-----> 5.3.1988 (September 29, 2012)

Format 71 (mbf_mbldeoih): Implemented automatic scaling of sidescan values to improve
fidelity of stored values to the original values.

MBeditviz: Fixed region selection to include topography min and max within that
region.

Reson 7k data (format 88, mbf_reson7kr): fixed calculation of beam angles from
7026 7k Detection records.

MBnavadjust: the tie (or block) view now honors the "With Selected Survey" and
"With Selected File" display modes.

MB7kpreprocess: Added control for the use or nonuse of attitude sensor time delay
data embedded in MBARI "Bluefin Navigation" records.

MB7k2ss: Added option to define sidescan line start and end points using a list
of times generated using mbroutetime (duplicating an option of mbextractsegy).

MB7k2ss: When extracting sidescan data from 7k data files to separate format 71 files,
use navigation, heading, sonar depth, and attitude data from multibeam data records
in the 7k data file (previously these values derived from asynchronous navigation,
heading, attitude, etc, records).

-----> 5.3.1986 (September 12, 2012)

MBnavadjust now treats data from interferometric sonars different than data
from other sonars. When interferometric bathymetry is imported, the many soundings
are binned and averaged into 1-degree wide "pseudo-beams" to allow reasonable
(both visually and computationally) contouring.

Added MBIO function mb_sonartype() that returns the type of sonar associated
with some data, using the definitions:
  #define	MB_SONARTYPE_UNKNOWN		0
  #define	MB_SONARTYPE_ECHOSOUNDER	1
  #define	MB_SONARTYPE_MULTIBEAM		2
  #define	MB_SONARTYPE_SIDESCAN		3
  #define	MB_SONARTYPE_INTERFEROMETRIC	4

Added function to mbnavadjust that will estimate vertical offset between surveys
and then set relevant ties accordingly.

Fixed some plotting defaults for mbm_histplot.

Added -MXexcludepercent option to mblist to exclude a user defined
percentage of outer beams from mblist output. (contributed by Suzanne O'Hara)

-----> 5.3.1982 (August 15, 2012)

Fixed significant issue in mb7kpreprocess and in Reson 7k format support in general.
The code was not handling the current raw detection data records correctly.

Fixed mbotps so that it handles requests for sound speed models on locations that
are dry land in the Topex mdoels more gracefully.

Fixed minor info printing issue with mbnavadjust (now doesn't report failure to
invert unless there is a failure to invert).

Improved performance of navigation and attitude merging for both mb7kpreprocess
and mbkongsbergpreprocess

Added new functionality to mbkongsbergpreprocess (contributed by Suzanne O'Hara):
  -Added -D<outputDirectory> argument to allow users to set new directory for
    output files; original code always created output in input directory.
    This is a problem where users should not be modifying original directories.
    Using this flag allows the user to use the datalist option and is easier
    than copying the original mb58 data to a different directory or to using a
    script that loops through all the data using the -D option
  -Added -C flag to output counts. Current code always outputs many rows of
    information that can be confusing. The default now is to work silently
    unless there is a problem.

-----> 5.3.1981 (August 2, 2012)

Fixed problem with mbprocess in which the heading was unexpectedly replaced by course-made-good.
Now this can only happen with HEADINGMODE:1 or HEADINGMODE:2 in the parameter file.

Fixed error in the definition of the OMG HDCS format in mbf_omghdcsj.h
This fix provided by Bob Covill.

-----> 5.3.1980 (July 13, 2012)

Augmented support for L3 XSE format (94) so that data from recent SeaBeam 3000 and SeaBeam 3050
multibeams can be processed.

Added option to mbinfo to generate output in XML (contributed by Christian Ferreira)

Augmented the i/o module for Reson 7k data to work with data files that do not
include the 7006 bathymetry records but instead include the raw detection 7027
records.

Altered mbnavlist so that longitude and latitude values are output with a
precision about equivalent to 0.1 mm, the same as mblist and mbinfo.

Altered mbprocess so that navigation shifts and offsets are applied to merged
navigation. Navigation derived from mbnavadjust is not affected.

Added new program mbkongsbergpreprocess, which reads data from a third generation
Kongsberg multibeam sonar (e.g. EM122, EM302, EM710),  interpolates  the asynchronous
navigation, heading, and attitude onto the multibeam data, and writes a new file
with that information correctly embedded in the multibeam  survey  data.  The  input
files  may  be  in  the  vendor  format  MBF_EM710RAW  (format id 58) or the MB-System
extended format MBF_EM710MBA (format id 59); the output  files  will  always  be  in
the  MB-System  extended  format MBF_EM710MBA (format id 59).

Updated GSF library to new release 3.04 from SAIC.

Removed local($[) = 0 initializations from all perl macros for compatibility with the
current version of perl (some macros were missed when this was done before 5.3.1955).

Fixed problem with mbprocess in which merged roll and pitch data were not applied
to the bathymetry unless the bathymetry was being recalculated by raytracing.

Added ability to change the read and write buffers for file i/o, initially just
for Reson 7k and Kongsberg current generation data. This allows one to tune for
the highest throughput file i/o for a given situation (e.g. 10 MB buffers achieve
5-10% faster throughput on the MBARI network).

Altered i/o module mbr_image83p.c for Imagenex DeltaT data so that if no roll or
pitch data are stored, the sonar is treated as if it is pointed down rather than
horizontal. Also fixed the module so that the profile tile angle parameter is
used correctly.

-----> 5.3.1955 (May 16, 2012)

Removed ($[) = 0 initializations from all perl macros for compatibility with the
current version of perl.

Updated PROJ4 to the 4.8.0 release.

Added code for a new i/o module reading (but not yet writing) Benthos 1624 sidescan
data in the XTF format. This read-only i/o module has a format id of 211. This code
has been contributed by Jens Renken (MARUM/University of Bremen). The intent is to
complete the i/o module to allow full processing of the Benthos 1624 data.

Added a new macro, mbm_bpr,  to translate pressure data from a Seabird SBE53 pressure sensor
used as a Bottom Pressure Recorder (BPR) into tidal data that can be used to correct swath
bathymetry data.

Changed default Postscript viewer for Linux or Mac to be gv rather than Ghostview.

Added option to mbinfo (-X1) to generate output in the json format. If the -O option
is used to make metadata files, then the addition of -X1 will cause the output files
to be named "*_inf.json" rather than "*.inf". Suzanne O'Hara (LDEO) contributed this
improvement.

Augmented mbsvplist with option -C which causes the program to output the number of
unique SVPs in each file to stdout. Suzanne O'Hara (LDEO) contributed this
improvement.

Fixed multiple problems with mbcontour and the underlying contouring library that
were producing crashes in many circumstances.

Updated the MBARI AUV mission generator mbm_route2mission to reflect current operational
parameters for the MBARI Mapping AUV.

Applied fixes to the Marine Sonics sidescan i/o module (mbr_mstiffss.c) contributed
by Val Schmidt of UNH/CCOM.

Changed the color table in mbnavadjust to eliminate yellow contours, which are difficult to see.

Added output of potential temperature to mbctdlist.

Altered subbottom section plots generated by mbextractsegy. The first cut plots
generated when mbextractsegy is used to extract subbottom data into segy files are broken
into multiple section plots for long files (representing survey lines if extracted
according to a route file). Previously, all section plots for a given line had a time sweep
encompassing the data for the entire line. Now, if the total sweep exceeds 1 second, then
the sections plots will be generated using only the sweep required for each section alone.

Improved the robustness of calculating longitude latitude bounds for segy data using
mbsegyinfo.

Added capability to mbsegygrid to grid and plot subbottom sections based on distance between
the end points of a survey line. This approach to plotting subbottom sections removes the
impact of speed variations and deemphasizes data where the sonar platform moved slowly
or stopped.

-----> 5.3.1941 (March 6, 2012)

Fixed sidescan filtering with mbfilter. The filtered sidescan output in
format 71 files had incorrect acrosstrack locations.

Fixed problems with sidescan generation for current generation
Kongsberg data (formats 58 and 59). The code previously tended to choose too
small of a pixel size, resulting in a sidescan swath narrower than the real
swath width.

Fixed swath contouring and track plotting by mbcontour and mbm_plot. Subtle changes
in the GMT pslib resulted in contours and tracks only partly plotting in some
Postscript devices. The MB-System code now explicitly chooses when to call
stroke operations in the Postscript, rather than leaving that up to pslib.

Fixed format 24 (mbf_hsldeoih) so that certain old files with extra bytes in some
comment records can be read correctly.

Added output of raw values from current generation Kongsberg data (formats 58 and 59)
to mblist.

-----> 5.3.1937

Changed the resolution of navigation in fbt (format 71) files and
fnv files to be 1e-9 degrees, equivalent to about 0.1 mm. Similarly change
the navigation resolution in the output of mbinfo, and thus in inf files.
This affects mbr_mbldeoih.c, mbsys_ldeoih.c mbsys_ldeoih.h in src/mbio,
and mbinfo.c and mblist.c in src/utilities.

Add importing and display of "vector" data in mbview and mbgrdviz. The
vector files are GMT-style segmented files of lon, lat, topography value triples.
These are displayed as lines colored according to the value. Controls for
setting the color tables still have to be added.

Changed mbgrid so that any background (option -K) is calculated first,
before significant memory is allocated. This avoids crashes due to
attempted forks that overrun available memory.

Fixed beamwidth calculation for Reson 7k data. Fix in mbr_reson7kr.c
and mbsys_reson7k.c.

Fixed overflow during iterative search for beam angle values in
mbr_em710raw.c

Added capability to mbauvloglist to output angle values in degrees rather
than radians.

Added code to mbnavadjust to detect when the uncertainty ellipsoid of one
or more ties contains a zero value that will cause the inversion to fail.
In this case, the program prints out which ties are problematic, and declines
to calculate the inversion.

Fixed beamwidth values stored in fbt files.

Added JSON output option to mbinfo. This addition provided by Suzanne O'Hara of
LDEO/IEDA.

Added graceful exit to mbm_grdplot when a call to grdinfo fails. Fix provided by
Hamish Bowman of the University of Otago.

Bug fixes to mbr_mstiffss.c related to reading Marine Sonics sidescan data. This fix
provided by Val Schmidt of CCOM/JHC at University of New Hampshire.

-----> 5.3.1917 (January 10, 2012)

Added preliminary support for HYSWEEP HSX format as MBIO format 201. Added program mbhysweeppreprocess to preprocess the HSX data.

Fixed bug in mb_lever() function in mb_angle.c.

GSF 3.03 update.

-----> 5.3.1912 (November 19, 2011)

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.

-----> 5.3.1909 (November 16, 2011)

Program mbnavlist:
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
MB_DATA_ATTITUDE3.

-----> 5.3.1907 (November 9, 2011)

Program mblist:
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.

Program mbnavlist:
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.

Program mbm_route2mission:
Enabled the generation of AUV missions in which multibeam beamformed
data ("water column") are recorded in addition to bathymetry and
backscatter.

Program mb7kpreprocess:
Fixed integration of MBARI AUV INS log data into the processing of
Reson 7k data.

Program mbrolltimelag:
Fixed a bug that rarely produced a failure of time lag correlation
calculation.

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).

-----> 5.3.1906 (September 28, 2011)

Program mbnavadjust:
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.

Program mb7kpreprocess:
Fixed some filtering code in mb7kpreprocess.

Program mbrolltimelag:
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.

Program mbnavlist:
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
record types.

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
     mbdefaults -U0
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.

Program mbclean:
Added flagging by acrosstrack distance to mbclean. Also added esf
file locking for compatibility with mbedit and mbeditviz, and
fixed handling of old edits.

Program mbgrid:
Fixed a problem with the footprint algorithm of mbgrid
that sometimes left holes that could not be filled by interpolation.

Macro mbm_route2mission:
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.

Program mbextractsegy:
Adjustments to the default plots of segy data by mbextractsegy.

Macro mbm_route2mission:
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
mbrolltimelag.

Program mb7kpreprocess:
Fixed application of time lag model by mb7kpreprocess for the case
of Reson 7k data using rollpitchheave records (e.g. from the MARUM AUV).

Program mblist:
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
mbprocess. If
 	mbdefaults -Fold
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.

Program mbnavadjust:
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
section id's.

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.

Program mbinfo:
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.

Program mbnavadjust:
Supplemented informational output to stdout from MBnavadjust.

Format 71 MBF_LDEOIH (generic swath):
Started development of new version of format 71 (mbf_ldeoih).

Program mb7kpreprocess:
Fixed translation of beam quality values into MB-System beam flags
by mb7kpreprocess.

Program mbextractsegy:
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
file suffixes.

Program mbedit:
Fixed MBedit's handling of files not conforming to the MB-System
filename suffix convention.

Macro mbm_xyplot:
Allow users of mbm_xyplot to specify both axis annotation with the
-B option and axis labeling with the -L option.

Program mbeditviz:
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
widgets.

Program mbprocess:
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.

Program mbprocess:
Fixed bug in mbprocess.c involving parsing of NMEA GGA strings when
reading in navigation for merging with survey data.

Program mbnavadjust:
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.

Program mbnavadjust:
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.

Program mbm_copy:
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.

Program mbdatalist:
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.

Program mbeditviz:
Changed mbeditviz_import_file() function in mbeditviz_prog.c to reset global
status to MB_SUCCESS on entry.

Program mbclean:
Incomplete implementation of Dana Yoerger's changes to mbclean. Not yet tested.

Program mbnavedit:
Increased verbosity of mbnavedit for -X option.

-------------------------------------------------------------------------------
MB-SYSTEM VERSION 5.2 RELEASE NOTES:
-------------------------------------------------------------------------------

-----> 5.2.1880 (December 30, 2010)

Augmented mbotps to output tide in both
 	time_d tide
and
 	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
in mb_angle.c.

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,
SSCUTDISTANCE, SSCUTSPEED).

-----> 5.1.3beta1875

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.

-----> 5.1.3beta1874

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
mb7k2ss.

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.

-----> 5.1.3beta1862

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
and src/mbio/mb_access.c.

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.

-----> 5.1.3beta1860

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.

-----> 5.1.3beta1858

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.

-----> 5.1.3beta1855

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.

-----> 5.1.3beta1851

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
project.

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
are read.

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.

-----> 5.1.3beta1844

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.

-----> 5.1.3beta1843

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.

-----> 5.1.3beta1829

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
little-endian systems.

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.

-----> 5.1.2beta07

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.

-----> 5.1.2beta08

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.

-----> 5.1.2beta09

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).

-----> 5.1.2beta11

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
-N options.

-----> 5.1.2beta12

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
data.

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:
     http://www.coas.oregonstate.edu/research/po/research/tide/

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.

-----> 5.1.2beta13

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).

-----> 5.1.2beta14

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.

-----> 5.1.2beta15

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).

-----> 5.1.2

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
as well.

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
assumption (mb7k2ss).

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
frequency.

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
projected coordinates.

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
model.

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:
 	mbanglecorrect
 	mbbackangleold
 	mbbath
 	mbcleanold
 	mbeditold
 	mbfilter
 	mbgetmask
 	mbmask
 	mbmerge
 	mbm_dslnavfix.perl
 	mbm_fmtvel.perl
 	mbm_vrefcheck.perl
 	mbm_rollerror.perl
 	mbnaveditold
 	mbsmooth
 	mbtide
 	mbunclean

-------------------------------------------------------------------------------
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
data.s

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
view menu.

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
mbm_plot.

Fixed problem reading some Simrad multibeam data with slightly broken
bathymetry records.

-------------------------------------------------------------------------------
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
release.

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
files.

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
include:
        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
latitudes.

The program mbset now accepts '=' as well as ':' as separators between
parameter names and values in -P option arguments (as suggested by
Bob Covill).

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
submerged platforms.

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
been fixed.

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
to mbnavedit.

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
adopted.

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
mbgrdviz.

Improved the ability of mbgrid to embed background
datasets.

-------------------------------------------------------------------------------
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
data bounds).

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
fixed.

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
"datalist.mb-1".

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
mbprocess.

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
bathymetry.

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
or LessTif).

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
script. Set:
	$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
analyzed.

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.

New tools.
- mbnavadjust.
    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.
- mbprocess.
    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.
- mbset.
    This new tool allows users to create and modify the
    parameter files used to control the operation of mbprocess.
- mbdatalist.
    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.
- mbsvplist.
    This new tool lists water sound velocity profiles embedded in
    swath data files, creating secondary files that  can be read
    into MBvelocitytool.
- mbareaclean.
    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
    mbsystem/share/projections.dat.
- 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
    multibeam sonars.

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.
