--
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.
In the list below, releases shown in bold type are major, announced releases. The other entries are test or "beta" releases that were not announced and generally not widely distributed. Prior to 5.7.1, the MB-System source code repository was a privately hosted Subversion archive. In that era, announced source distribution releases were made available for download by ftp. Starting with 5.7.1 the MB-System source code repository is hosted by Github at https://github.com/dwcaress/MB-System/ and each distribution corresponds to a discrete Github release tag. Releases that include "beta" in the tag name are preliminary and generally not announced. Distributions that do not include "beta" in the tag name correspond to the major, announced releases. The source distributions associated with all releases, major or beta, are equally accessible as tarballs through the Github interface.
- Version 5.8.2beta18 December 8, 2024
- Version 5.8.2beta17 November 7, 2024
- Version 5.8.2beta16 November 6, 2024
- Version 5.8.2beta15 October 1, 2024
- Version 5.8.2beta14 September 6, 2024
- Version 5.8.2beta13 August 23, 2024
- Version 5.8.2beta12 August 22, 2024
- Version 5.8.2beta11 August 19, 2024
- Version 5.8.2beta10 August 16, 2024
- Version 5.8.2beta09 August 4, 2024
- Version 5.8.2beta08 July 27, 2024
- Version 5.8.2beta07 June 27, 2024
- Version 5.8.2beta06 June 13, 2024
- Version 5.8.2beta05 May 19, 2024
- Version 5.8.2beta04 May 13, 2024
- Version 5.8.2beta02 May 1, 2024
- Version 5.8.2beta01 April 29, 2024
- Version 5.8.1 March 22, 2024
- Version 5.8.1beta09 March 22, 2024
- Version 5.8.1beta08 March 10, 2024
- Version 5.8.1beta07 February 24, 2024
- Version 5.8.1beta04 February 16, 2024
- Version 5.8.1beta03 February 8, 2024
- Version 5.8.1beta02 February 7, 2024
- Version 5.8.1beta01 February 1, 2024
- Version 5.8.0 January 22, 2024
MBlist: Fixed a critical bug in which mblist would never output from processed files specified through a datalist using the $PROCESSED tag.
Format MBF_KEMKALL (261): Augmented the i/o module to read and write an undocumented kmall data record (#MSC) found in EM124 data collected by NERC. Without documentation the record cannot be parsed, but it is read and rewritten without modification.
Format MBF_KEMKMALL (261): Fixed failure to differentiate between #SKM records from different navigation + heading + attitude systems. If a platform has two navation/attitude systems, then the first will map to MB_DATA_NAV1 type data, and the second to MB_DATA_NAV2. The default for mbpreprocess will be to interpolate from navigation, heading, and attitude data stored in MB_DATA_NAV1 records, which for this format means #SKM datagrams with system id 0 (as opposed to system id 1).
Miscellaneous: Removed top level files "NEWS", "NOTES", and "INSTALL.md". These files existed to conform to GNU expectations for a package structure. We are no longer trying to match the GNU structure, and so have removed these unnecessary files.
Most SeaBeam Classic formats (MBF_SBSIOMRG, MBF_SBSIOCEN, MBF_SBSIOLSI, MBF_SBURICEN, MBF_SBURIVAX): Added code to handle rare condition where the ping timestamp has a seconds value of 60. Now the code will add one to the minutes value, and set the seconds value to 0.
Libtrnav (src/mbtrnav/): Additional fixes by Kent Headley to enable building on Ubuntu 24.
Mbm_route2mission: Change so that no edgetech behaviors are output to the mission script if no sidescan or subbottom is enabled.
Format MBF_MBPRONAV (165): code changed so that if a file has records in which the date fields (yyyy mm dd hh mm ss.ssssss) are all zero, then on reading the data will be set using the value in the time_d (epoch time in seconds) field.
Mbauvloglist: Fixed bug that caused occasional crashes.
Mbphotogrammetry: Now applies CLAHE equalization to images before calculating disparity map.
Libtrnav (src/mbtrnav/): Many fixes by Kent Headley, including casting the code to use Proj for geodetic transformations when used as part of MB-System while still allowing use of the old GCTP library when used in other contexts lacking Proj.
Mbmakeplatform: Fixed problems with handling sensor add and sensor modify modes.
Mbgrdviz, mbeditviz, mbnavadjust: Changed the mbview display of swath bounds for selected navigation to be optional rather than always displayed.
Formats 58 (MBF_EM710RAW) and 59 (MBF_EM710MBA): Fixed preprocessing support for the Kongsberg M3 multibeam. Added capability to use an MB-System platform file in place of the sensor offsets embedded in the logged multibeam files.
Mbphotogrammetry: Fixed use of range bounds in filtering the photogrammetric bathymetry.
Mbphotomosaic: Removed unnecessary --correction-file-color option (redundant with --correction-file)
mbm_grdplot: Fixed -G7 option for plotting images with geodetics defined in world files rather than embedded as in GeoTiffs. Specifically allows use of png images with transparency.
Formats 232 (MBF_WISSLR) and 233 (MBF_WISSLP): Fixed initial beam flagging by mbpreprocess for secondary sounding picks (when the lidar was operated in multipick mode)
Mbphotomosaic: Fixed use of the --dark-image-ignore and --dark-image-multiply options as parameters embedded in recursive imagelist files.
Mbnavadjustmerge: Fixed (again, this time hopefully for real) the --reimport-all-files option so that large projects can be reimported with a single command. Added a --reimport-survey option.
Mbnavadjustmerge: Fixed the --reimport-all-files option so that large projects can be reimported with a single command. Added a --reimport-survey option.
Mbnavadjustmerge: Added --reimport-file and --reimport-all-files options that reimport swath files into an mbnavadjust project from the current processed versions of that files. Each file is broken into the same sections as previously, regardless of any changes to the settings for the maximum section length or the maximum number of soundings in a section. The original navigation and attitude data are also preserved, but the bathymetry is changed to reflect the current processed values. This means that updates to the bathymetry editing can now be brought into mbnavadjust projects.
Format 71 (MBF_MBLDEOIH): Fixed a compression bug that occasionally resulted in corrupting the acrosstrack values of the outermost beams of pings when changed data are inserted into records using the mb_put_all() or mb_insert() functions. The only know manifestation of this bug was in importing swath data into mbnavadjust projects.
Mbtrnpp: Fixed #ifdefs and Makefile.am files so that mbtrnpp can still be built with the old autoconf build system, albeit using GCTP for projections rather libproj.
mb7k2jstar: This program extracts Edgetech sidescan and subbottom data from Reson s7k files and writes current format Edgetech Jstar format files identical to what current Edgetech sonars record. This functionality is needed only for MBARI Mapping AUV data from 2004-2014, as MBARI was the only user of a payload controller software package named 6046 from Reson that logged Reson 7125 multibeam and Edgetech FSAU sidescan/subbottom data in the same s7k files. Recognizing that reprocessing old Mapping AUV data requires this capability (and much of these data are now in public archives at MGDS and NCEI), we are moving mb7k2jstar back into src/utilities out of src/deprecated, so that it is always built as part of MB-System. Also, a bug causing seg faults with 2007 data has been fixed.
Mbpreprocess: Added option --kluge-early-mbari-mapping-auv to mbpreprocess. This option pertains only to Reson 7125 200 kHz multibeam data collected on the first MBARI Mapping AUV from 2006 through 2009. Invoking this kluge triggers \fBmbpreprocess\fP to modify the beam quality factors to be consistent with the later (>2009) standard for the original bathymetry records in Reson s7k format data.
Mbextractsegy: Fixed bug in extracting and plotting envelope function of subbottom data.
General: Added macros to src/mbio/mb_define.h enabling the printing of byte values as a binary bitmask using fprintf(). To print a single byte as binary (e.g. "01010101") do something like: char value; printf("Bitmask: "MB_PRINTF_BINARY_PATTERN_INT8"\n", MB_PRINTF_BYTE_TO_BINARY_INT8(value)); Printing of larger int types has a similar form: short value; printf("Bitmask: "MB_PRINTF_BINARY_PATTERN_INT16"\n", MB_PRINTF_BYTE_TO_BINARY_INT16(value)); int value; printf("Bitmask: "MB_PRINTF_BINARY_PATTERN_INT32"\n", MB_PRINTF_BYTE_TO_BINARY_INT32(value)); long long value; printf("Bitmask: "MB_PRINTF_BINARY_PATTERN_INT64"\n", MB_PRINTF_BYTE_TO_BINARY_INT64(value)); These macros are taken from https://stackoverflow.com/questions/111928/is-there-a-printf-converter-to-print-in-binary-format
Format 121 (MBF_GSFGENMB): Updated to use new version of libgsf (3.10) released by Leidos. The following change descriptions are from the libgsf 3.10 change summary:
Change request GSF_03-10_01
Support for ME70 sonars
11/8/2021
Sean Donovan, Leidos
Description:
Added GSF_SWATH_BATHY_SUBRECORD_ME70BO_SPECIFIC subrecord identifier.
Added support for sonar under EM4 cases.
Purpose:
To add support in GSF for the ME70 multibeam systems
Change request GSF_03-10_02
STIG Remediation to address vulnerabilities
3/12/2024
Dwight Johnson, NAVO
Description:
Various changes to safe memory allocation and usage throughout the encoding and
decoding processes
Purpose:
Improved Robustness
Change request GSF_03-10_03
Updates to KMALL ping level metadata
3/12/2024
Jonathon Beaudoin, Hydro Octave
Description:
Added new variables highVoltageLevelDB, sectorTrackingCorr_DB, and
effectiveSignalLength_sec within the spare space of the gsfKMALLTxSector Struct.
Added encoding and decoding logic for these values.
Purpose:
To support backscatter processing
Change request GSF_03-10_04
Resolved bug surrounding network transmission of range samples
3/12/2024
Jonathon Beaudoin, Hydro Octave
Description:
Missing htons call added to range sample processing
Purpose:
Bug Fix
Change request GSF_03-10_05
Added TVG DB to bathy ping structure
3/12/2024
Jonathon Beaudoin, Hydro Octave
Description:
Added new array variable TVG_DB to multibeam ping struct. Added encoding and
decoding logic for this value.
Purpose:
To support backscatter processing
MBnavadjust: Added autosaving the last version of a project file immediately before beginning to write a new file. Also fixed some inconsistencies in the UI.
Mbm_trnplot: Added extraction of TRN localization estimates in longitude and latitude.
Mbtrnpp: Now includes longitude and latitude values of TRN localization estimates into the log file (in addition to the coordinate reference system used for the reference map).
Mbgrdviz: Fixed importation of non-csv raw site files.
Formats 88 and 89 (MBF_RESON7KR and MBF_RESON7K3): Change to allow pings to be valid if a BeamGeometry record has been read earlier in the file (as opposed to having a BeamGeometry record for every ping).
Formats 88 and 89 (MBF_RESON7KR and MBF_RESON7K3): Fixed problem calculating sample times for attitude data in s7k 1016 Attitude data records.
MBgrid and mbmosaic: Added an option to generate grids and mosaics in a projected coordinate system defined as a Local Transverse Mercator (LTM) projection with the origin at the center of the grid or mosaic.
MBgrdviz, mbeditviz, mbnavadjust: The mbview visualization library now displays grids defined in geographic coordinates (longitude and latitude) using a Local Transverse Mercator projection with the origin at the center of the grid or mosaic. This replaces the prior use of UTM projections, which introduced rotation and distortion when the grid was located far from the center of the UTM zone.
MBtrnpp: and TRN: Changed TerrainNav, supporting libraries, and the program mbtrnpp to calculate projections using the Proj package rather than the GCTP package.
MBtrnpp: Now works with reference topography models defined in a Local Transverse Mercator (LTM) projection.
Mbm_trnplot: augmented to allow specifying the CRS of the reference topoography so that a Local Transverse Mercator (LTM) projection can be used.
MBextractsegy: changed calculation of section plot bounds to more consistently catch the seafloor arrival within the plot.
MBpreprocess: fixed initialization of the --kluge-fix-7k-times option.
Docker image: updated documentation in the Docker directory.
Formats 58 (MBF_EM710RAW) and 59 (MBF_EM710MBA): Removed an errant debug message that printed out information when reading height datagrams.
Mbpreprocess: Added kluge option to fix large shifts in survey record timestamps in Teledyne s7k format data (specifically MBARI Mapping AUV multibeam data collected with the sonar computer experiencing large shifts in time). This option is accessed as --kluge-fix-7k-timestamps=time
Mbroutetime: Now works with the recently changed route file format.
Mblevitus: Fixed problem building mblevitus with the Cmake build system. The problem was that the Levitus database location was incorrectly embedded in the compiled program.
Format 261 (MBF_KEMKMALL): Fixed bug in handing pings for which there are multiple MRZ datagrams that have different timestamps. This bug resulted in MB-System dropping many pings in some deepwater Kongsberg data (mostly EM124 data).
Mbedit: Fixed display of ping profiles to handle condition where a ping contains two acrosstrack profiles, typically one aft and one forward of the sonar location. Now the connection between the end of the first acrosstrack profile and the start of the second is no longer plotted.
MB-System Docker Container: Improved Docker documentation included in the Docker directory.
CMake build system: Fixed ability to set OTPS location in cmake build system.
CMake build system: Added installation of header files required for external programs to utilize MB-System libraries.
Format 261 (MBF_KEMKMALL): Updated support for Kongsberg Kmall format to match updated specification J.
Format 16 (MBF_SBSIOSWB): Fixed bug that became evident when processing old Scripps SeaBeam Classic data in format 16 on a MacOs Sonoma machine. This turned out to be a poorly formed preprocessor macro for rounding floating point values in code dating from 1992.
Formats 58 (MBF_EM710RAW) and 59 (MBF_EM710MBA): Fixed bug in which some bathymetry edits were applied to the wrong pings. Third generation Kongsberg multibeams produce two cross profiles with each ping cycle, but represent these as two separate pings with the same ping time. MB-System distinguishes between pings using the timestamps rather than ping numbers (because not all sonars produce ping numbers), so pings with the same timestamp confuse the beam flag handling code. The solution is to add a small amount of time to the timestamp of the second ping in each pair. The bug was that the amount of time added by mbpreprocess was 33 microseconds, but the datagrams in Kongsberg *.all files specify timestamps only to the millisecond level, and so the added time was not large enough to be recorded differently in the output files.
Mbpreprocess: Now checks for successive pings/scans with the same timestamp, and adds enough time to the second timestamp (0.0000033 seconds) that these pings/scans are seen as different by the beam edit flag handling code. For dual head sensors this logic only compares timestamps for the same subsensor, so simultaneous operation of the two subsensors (sonar or lidar heads) is allowed.
Mbpreprocess and format MBF_EM710RAW (58): The command --kluge-auv-sentry-sensordepth now works for format 58 files (3rd generation Kongsberg multibeam data in *.all files) such that available sensordepth values are embedded in the output format MBF_EM710MBA (59) files.
Mbpreprocess and mbprocess: Now support merging navigation and attitude from Schmidt Ocean Institute RVDAS format ROV navigation.
Mbvoxelclean: Fixed bug in which previously beamflags from previously existing esf files were ignored. Also fixed a non-initialized pointer bug that produced occasional crashes.
Mbgrid: Improved output to shell so that it shows the min max values from each contributing input file whether verbose is specified or not. Mbm_grdplot: Added colortable 10, which runs from blue to red and can be used for plots of seismic reflection or subbottom profiler data when the trace signals are both positive or negative.
Mbphotomosaic: Fixed priority-heading option that allows image prioritization on the basis of camera heading.
Mbphotomosaic: Added options to detect and correct dark images (for when strobe lights partially drop out), to ignore dark images, and to allow image prioritization on the basis of camera heading.
SEGY format data: Changed MB-System SEGY traceheader to include a sensordepthtime float value in bytes 216-219. This will be used to hold the two-way traveltime in seconds corresponding to the source depth assuming a 1500 m/sec water sound speed. This value can be used as a trace start delay time in plotting to account for the source location of subbottom profiler data collected from submerged platforms like AUVs and ROVs. The MB-System programs mbsegygrid and mbm_grdplot use the source depth value in meters, but some external packages need the delay time.
SEGY format data: MB-System now recognizes file suffixes *.sgy and *.SGY in addition to *.segy *.SEGY *.seg and *.SEG
Mbsegyinfo: Fixed calculation and reporting of trace minimum and maximum values.
Mbextractsegy: Now allows output of subbottom analytic data as well as envelope data. Use of the -S4 command will output three separate segy files, one with the envelope function, one with the subbottom correlate, and one with the correlate conjugant (i.e. the Hilbert transform of the correlate). The section plot script generated now will create plots of all three trace types.
Mbtrnpp: The optional Terrain Relative Navigation (TRN) software has been augmented with code to utilize realtime format 58 (Kongsberg *.all) format multibeam accessed through a serial stream.
Format 16 (MBF_SBSIOSWB): Fixed bug that became evident when processing old Scripps SeaBeam Classic data in format 16 on a MacOs Sonoma machine. This turned out to be a poorly formed preprocessor macro for rounding floating point values in code dating from 1992.
Formats 58 (MBF_EM710RAW) and 59 (MBF_EM710MBA): Fixed bug in which some bathymetry edits were applied to the wrong pings. Third generation Kongsberg multibeams produce two cross profiles with each ping cycle, but represent these as two separate pings with the same ping time. MB-System distinguishes between pings using the timestamps rather than ping numbers (because not all sonars produce ping numbers), so pings with the same timestamp confuse the beam flag handling code. The solution is to add a small amount of time to the timestamp of the second ping in each pair. The bug was that the amount of time added by mbpreprocess was 33 microseconds, but the datagrams in Kongsberg *.all files specify timestamps only to the millisecond level, and so the added time was not large enough to be recorded differently in the output files.
Mbgrid: Improved output to shell so that it shows the min max values from each contributing input file whether verbose is specified or not.
Mbm_grdplot: Added colortable 10, which runs from blue to red and can be used for plots of seismic reflection or subbottom profiler data when the trace signals are both positive or negative.
SEGY format data: Changed MB-System SEGY traceheader to include a sensordepthtime float value in bytes 216-219. This will be used to hold the two-way traveltime in seconds corresponding to the source depth assuming a 1500 m/sec water sound speed. This value can be used as a trace start delay time in plotting to account for the source location of subbottom profiler data collected from submerged platforms like AUVs and ROVs. The MB-System programs mbsegygrid and mbm_grdplot use the source depth value in meters, but some external packages need the delay time.
SEGY format data: MB-System now recognizes file suffixes *.sgy and *.SGY in addition to *.segy *.SEGY *.seg and *.SEG
Mbsegyinfo: Fixed calculation and reporting of trace minimum and maximum values.
Mbextractsegy: Now allows output of subbottom analytic data as well as envelope data. Use of the -S4 command will output three separate segy files, one with the envelope function, one with the subbottom correlate, and one with the correlate conjugant (i.e. the Hilbert transform of the correlate). The section plot script generated now will create plots of all three trace types.
Mbpreprocess and mbprocess: Now support merging navigation and attitude from Schmidt Ocean Institute RVDAS format ROV navigation.
Mbpreprocess and format MBF_EM710RAW (58): The command --kluge-auv-sentry-sensordepth now works for format 58 files (3rd generation Kongsberg multibeam data in *.all files) such that available sensordepth values are embedded in the output format MBF_EM710MBA (59) files.
CMake build system: Fixed ability to set OTPS location in cmake build system.
CMake build system: Added installation of header files required for external programs to utilize MB-System libraries.
Format 261 (MBF_KEMKMALL): Updated support for Kongsberg Kmall format to match updated specification J.
Mbphotomosaic: Fixed priority-heading option that allows image prioritization on the basis of camera heading.
Mbphotomosaic: Added options to detect and correct dark images (for when strobe lights partially drop out), to ignore dark images, and to allow image prioritization on the basis of camera heading.
Mbpreprocess: Now checks for successive pings/scans with the same timestamp, and adds enough time to the second timestamp (0.0000033 seconds) that these pings/scans are seen as different by the beam edit flag handling code. For dual head sensors this logic only compares timestamps for the same subsensor, so simultaneous operation of the two subsensors (sonar or lidar heads) is allowed.
Mbvoxelclean: Fixed bug in which previously beamflags from previously existing esf files were ignored. Also fixed a non-initialized pointer bug that produced occasional crashes.
Version 5.8.0 is now the current release of MB-System.
The source code distribution can be downloaded from the MB-System Github repository at:
https://github.com/dwcaress/MB-System/archive/refs/tags/5.8.0.tar.gz
In addition to many bug fixes, the changes of 5.8.0 relative to the prior major release (5.7.8) include:
New build system:
MB-System is now built and installed using the CMake package, rather than GNU Autotools. The old build system is still present and can be used to install MB-System on old operating systems (e.g. Ubuntu 18.04), but all support for building on recent, current and future operating systems will be for use of CMake. See the Download and Install (https://www.mbari.org/technology/mb-system/installation/) instructions page for details.
Global ties to reference grids in MBnavadjust:
MBnavadjust is a toolset used adjust navigation of submerged platform (e.g. AUV or ROV) surveys so that features match where swaths overlap and cross. The primary information comes from measuring the navigation offsets required to match features using cross correlation of the bathymetry data. MBnavadjust now also allows the survey navigation to be tied to reference bathymetry models, typically from GPS-navigated hull mounted surveys, so that the navigation can be tied to the world frame of reference.
Realtime Terrain Relative Navigation:
MB-System now includes a Terrain Relative Navigation (TRN) codebase developed at Stanford and MBARI that uses realtime topography information to where a platform is located on a pre-existing topography map. The MB-System tool mbtrnpp implements TRN in the case of an AUV or ROV equipped with a multibeam sonar.
Photomosaicing tools available:
Tools for generating photomosaics from sets of still seafloor photographs are now built as part of MB-System. Documentation and examples are being developed but are not available at the time of this release.
- Version 5.7.9beta72 January 14, 2024
- Version 5.7.9beta71 January 3, 2024
- Version 5.7.9beta70 January 2, 2024
- Version 5.7.9beta69 December 17, 2023
- Version 5.7.9beta68 November 30, 2023
- Version 5.7.9beta66 November 18, 2023
- Version 5.7.9beta65 November 17, 2023
- Version 5.7.9beta64 November 16, 2023
- Version 5.7.9beta63 November 10, 2023
- Version 5.7.9beta62 November 3, 2023
- Version 5.7.9beta61 November 2, 2023
- Version 5.7.9beta60 October 22, 2023
- Version 5.7.9beta59 September 19, 2023
- Version 5.7.9beta58 August 30, 2023
- Version 5.7.9beta57 June 27, 2023
- Version 5.7.9beta53 June 15, 2023
- Version 5.7.9beta52 March 9, 2023
- Version 5.7.9beta51 February 14, 2023
- Version 5.7.9beta50 February 12, 2023
- Version 5.7.9beta49 January 22, 2023
- Version 5.7.9beta48 December 16, 2022
- Version 5.7.9beta47 November 15, 2022
- Version 5.7.9beta46 November 11, 2022
- Version 5.7.9beta45 November 6, 2022
- Version 5.7.9beta44 August 9, 2022
- Version 5.7.9beta43 July 29, 2022
- Version 5.7.9beta42 June 26, 2022
- Version 5.7.9beta41 June 22, 2022
- Version 5.7.9beta40 June 18, 2022
- Version 5.7.9beta38 June 18, 2022
- Version 5.7.9beta37 June 17, 2022
- Version 5.7.9beta36 June 15, 2022
- Version 5.7.9beta35 June 13, 2022
- Version 5.7.9beta34 June 5, 2022
- Version 5.7.9beta33 June 5, 2022
- Version 5.7.9beta32 June 4, 2022
- Version 5.7.9beta30 June 4, 2022
- Version 5.7.9beta29 May 13, 2022
- Version 5.7.9beta28 March 21, 2022
- Version 5.7.9beta27 February 28, 2022
- Version 5.7.9beta26 January 2, 2022
- Version 5.7.9beta25 December 29, 2021
- Version 5.7.9beta24 December 27, 2021
- Version 5.7.9beta23 December 18, 2021
- Version 5.7.9beta22 December 5, 2021
- Version 5.7.9beta21 December 4, 2021
- Version 5.7.9beta20 December 1, 2021
- Version 5.7.9beta19 November 6, 2021
- Version 5.7.9beta18 October 31, 2021
- Version 5.7.9beta17 October 16, 2021
- Version 5.7.9beta16 August 27, 2021
- Version 5.7.9beta15 August 26, 2021
- Version 5.7.9beta14 July 25, 2021
- Version 5.7.9beta13 July 18, 2021
- Version 5.7.9beta12 July 4, 2021
- Version 5.7.9beta11 June 26, 2021
- Version 5.7.9beta10 June 16, 2021
- Version 5.7.9beta09 June 8, 2021
- Version 5.7.9beta07 May 7, 2021
- Version 5.7.9beta06 March 24, 2021
- Version 5.7.9beta05 March 8, 2021
- Version 5.7.9beta04 February 21, 2021
- Version 5.7.9beta03 February 7, 2021
- Version 5.7.9beta02 January 27, 2021
- Version 5.7.9beta01 January 18, 2021
- Version 5.7.8 January 17, 2021
- Version 5.7.7 January 17, 2021 (flawed, quickly superceded)
- Version 5.7.7beta09 January 17, 2021
- Version 5.7.7beta08 January 6, 2021
- Version 5.7.7beta06 December 30, 2020
- Version 5.7.7beta05 December 28, 2020
- Version 5.7.7beta04 October 28, 2020
- Version 5.7.7beta03 October 27, 2020
- Version 5.7.7beta02 October 8, 2020
- Version 5.7.7beta01 October 7, 2020
- Version 5.7.6 October 5, 2020
- Version 5.7.6beta56 September 28, 2020
- Version 5.7.6beta55 September 16, 2020
- Version 5.7.6beta54 September 14, 2020
- Version 5.7.6beta53 September 13, 2020
- Version 5.7.6beta52 September 9, 2020
- Version 5.7.6beta51 September 4, 2020
- Version 5.7.6beta50 September 2, 2020
- Version 5.7.6beta49 September 2, 2020
- Version 5.7.6beta48 September 1, 2020
- Version 5.7.6beta47 September 1, 2020
- Version 5.7.6beta46 August 31, 2020
- Version 5.7.6beta45 August 26, 2020
- Version 5.7.6beta44 August 24, 2020
- Version 5.7.6beta43 July 23, 2020
- Version 5.7.6beta42 July 21, 2020
- Version 5.7.6beta41 July 12, 2020
- Version 5.7.6beta40 July 7, 2020
- Version 5.7.6beta38 June 8, 2020
- Version 5.7.6beta37 May 26, 2020
- Version 5.7.6beta36 May 17, 2020
- Version 5.7.6beta34 May 14, 2020
- Version 5.7.6beta33 May 5, 2020
- Version 5.7.6beta32 April 22, 2020
- Version 5.7.6beta31 March 2, 2020
- Version 5.7.6beta30 February 20, 2020
- Version 5.7.6beta29 February 17, 2020
- Version 5.7.6beta28 February 13, 2020
- Version 5.7.6beta27 February 3, 2020
- Version 5.7.6beta26 February 2, 2020
- Version 5.7.6beta25 January 20, 2020
- Version 5.7.6beta24 January 16, 2020
- Version 5.7.6beta23 January 11, 2020
- Version 5.7.6beta21 December 12, 2019
- Version 5.7.6beta20 November 26, 2019
- Version 5.7.6beta19 November 22, 2019
- Version 5.7.6beta18 November 21, 2019
- Version 5.7.6beta17 November 15, 2019
- Version 5.7.6beta16 October 29, 2019
- Version 5.7.6beta15 October 21, 2019
- Version 5.7.6beta14 October 8, 2019
- Version 5.7.6beta12 September 20, 2019
- Version 5.7.6beta10 September 18, 2019
- Version 5.7.6beta8 September 9, 2019
- Version 5.7.6beta6 August 26, 2019
- Version 5.7.6beta5 August 6, 2019
- Version 5.7.6beta4 August 2, 2019
- Version 5.7.6beta2 July 25, 2019
- Version 5.7.6beta1 July 6, 2019
- Version 5.7.5 June 26, 2019
- Version 5.7.5beta12 June 24, 2019
- Version 5.7.5beta11 June 16, 2019
- Version 5.7.5beta10 June 9, 2019
- Version 5.7.5beta9 June 8, 2019
- Version 5.7.5beta8 April 11, 2019
- Version 5.7.5beta7 March 28, 2019
- Version 5.7.5beta6 March 26, 2019
- Version 5.7.5beta5 March 22, 2019
- Version 5.7.5beta4 March 21, 2019
- Version 5.7.5beta3 March 14, 2019
- Version 5.7.5beta2 March 4, 2019
- Version 5.7.5beta1 February 26, 2019
- Version 5.7.5beta0 February 25, 2019
- Version 5.7.4 February 12, 2019
- Version 5.7.3 February 8, 2019
- Version 5.7.2 February 4, 2019
- Version 5.7.1 December 19, 2018
Build Systems: Made building and installing deprecated programs optional for both the CMake and Autoconf build systems.
Man pages: Restructured the web page versions of the manual pages installed with MB-System. Recast the postscript versions of the manual pages into Pdf files.
Mbgrdviz: Generated a new version of the MB-System Route files.
Mbm_route2mission: Now works with both old and new format route files.
CMake build system: Fixed creating the levitus.h header file used by mblevitus and mbconfig to define the location of the Levitus database and the OTPS installation, thereby making mblevitus and mbconfig work properly.
Mblist: Added capability to output beam travel times, angles and other values needed to recaclulate bathymetry by raytracing.
Format 261 (MBF_KEMKMALL): Fixed recalculation of bathymetry by raytracing - the problem was that the interpolation of attitude data onto the beam receive time was faulty, so an incorrect roll value was used in calculating the beam raytracing takeoff angles.
Format 192 (MBF_IMAGEMBA): Fixed correction of beam amplitude values (previously corrected values were not successfully inserted into the data structure).
Mbauvloglist: Program altered so that time and utcTime fields are printed by default in format %17.6f and %12.6f, respectively, even though the MBARI Dorado AUV log files have default formats of %8.8e instead. Now by default the timestamps are printed usefully with precision to microseconds.
Mbbackangle: Fixed bug in which mbbackangle did not process sidescan or amplitude data from files in formats that support variable numbers of beams and pixels.
Mbsslayout: Fixed bug in which a command to swap the starboard and port sidescan channels was ignored.
CMake build system: It turns out that the GSF i/o module was not getting built and used by default. The build system has been fixed so that the GSF format i/o module is built and linked unless the cmake command includes -DbuildGSF=OFF, as in: cmake -DbuildGSF=OFF ..
Mbnavadjustmerge: Added options to shift global ties singly or all together.
Mbtrnpp: Fixed use of covariances from TRN: to get x y z covariances use covariance[2], covariance[0], covariance[5] rather than 0, 1, and 2.
Mbdatalist: Fixed an unitialized string causing intermittent failure.
Mbinfo and mblist: Fixed bug introduced with the alternate navigation capability that caused mbinfo and mblist to fail when running on single files rather than through datalists.
Mbnavadjust: Improved handling of reference grids. The list of reference grids now starts with an option "" that will cause loading a section with a global tie set to also load the reference grid (if any) loaded when the tie was created. If a specific reference grid is selected from the reference grid list, then that reference grid will be loaded when any section is loaded, regardless of whether a prior global tie already exists.
Mbtrnpp: Fixed bug identified by Kent Headley that caused divide by zeros when calculating swath width filtering of soundings.
CMake build system: Fixed the unit testing, and enabled building unit tests by default. After "make all" is run, the unit tests can be run with "make test".
Reading GMT grids: Fixed a very significant bug that caused GMT grids to be read into memory incorrectly by mb_read_gmt_grd() in src/mbaux/mb_readwritegrd.c. The problem was that the GMT default padding of grids by 2 grid cells around all edges was applied incorrectly, with a result that the topography (or other data) in the grid was shifted two grid cell widths north. The creation of grids by mbgrid or mbmosaic was correct; the problem came when the grids were read in by mbgrdviz, mbanglecorrect, mbprocess, and mbnavadjust.
Further fixes to the CMake build system, which now actually builds all components of MB-System on MacOs Ventura, Debian 11 and 12, and Ubuntu 20 and 22.
Moved the MB-System version tag and version date variables from the build system files CMakeLists.txt and configure.ac into src/mbio/mb_define.h so that there is only one place to edit the versioning.
Fixed the Cmake build system so that all components of the current MB-System source can be built, installed, and run on MacOs using CMake.
Updated the copyright notices in the several hundred source files.
Read functions mb_get_all(), mb_get(), mb_read(): Fixed bug in handling the vertical dimension while applying alternate navigation. Bathymetry were being corrected wrongly for changes in the sensordepth.
Datalists: Fixed problem in which processed files would not be read when the raw files do not conform to MB-System suffix conventions.
Mbbackangle: Changed to not set parameter files when the swath files do not contain the expected amplitude and/or sidescan data.
Mbgrd2gltf: Added "#include " to src/mbgrd2gltf/bathymetry.cpp to enable compiling on CentOs 7.
Configure.ac and Configure: Modified to find Proj on CentOs 7 systems.
Mbnavadjust: Added an application or use mode to MBnavadjust projects. Projects can now be primary, secondary, or tertiary, with the setting found in the Controls diaglog brought up via the Options menu. A primary project behaves as MBnavadjust projects have always behaved, so that applying the navigation model writes the adjusted navigation model to *.na0 files parallel to the swath files and sets the *.par parameter files so that mbprocess merges the adjusted navigation as it generates the processed swath files. In a secondary project, applying the adjusted navigation model writes *.na1 files parallel to the processed swath files (not the raw swath files), and in a tertiary project the output is in *.na2 files. The purpose for this change is to allow the existence of multiple navigation adjustment models for the same swath data, generally because there may be reasons to have different vertical adjustments. The secondary and tertiary navigation models are termed alternative navigation models. A specific example is for repeated surveys of an active volcano experiencing deformation - one may want to adjust surveys so that vertical offsets over time are removed to allow a seamless topographic map, and to also adjust surveys so that the vertical changes betweeen surveys are revealed by differencing the topographic models. The MBnavadjust project file version has been updated to 3.15 with the addition of the USEMODE parameters (primary=0, secondary=1, tertiary=2). MBnavadjust will read all old format projects but only write out the current format.
Mbgrid, mbmosaic, and mblist: These programs are now capable of accessing alternative navigation for processed swath data if such files exist and a datalist structure is set to enable use of the alternative navigation, as described above. The internal changes made to enable this capability are described below.
Datalists and a mechanism for alternative navigation: A new specialized datalist tag has been implemented to allow use of the alternative navigations files (*.na1 and *.na2) introduced above. Adding this tag to a datalist is the only way to access alternative navigation when reading swath files. If the following line appears in a datalist: $ALTNAVSUFFIX:.na1 then following this tag the new datalist parsing function will look for a *.na1 file parallel to each processed file, and return a flag and the path to that file. This functionality works recursively, as all things do in datalist structures - a top level use of this tag sets the behavior for all datalist parsing down through a recursive datalist file structure. To use this functionality, a program must use a new function mb_datalist_read3() in place of mb_datalist_read() or mb_datalist_read2():
int mb_datalist_read(int verbose, void *datalist_ptr, char *path, char *dpath,
int *format, double *weight, int *error);
int mb_datalist_read2(int verbose, void *datalist_ptr, int *pstatus, char *path,
char *ppath, char *dpath, int *format,
double *weight, int *error);
int mb_datalist_read3(int verbose, void *datalist_ptr, int *pstatus, char *path,
char *ppath, int *astatus, char *apath,
char *dpath, int *format, double *weight, int *error);
Here the new astatus is a boolean indicating that an alternative navigation file exists for this swath file, and apath is a string containing the path for that alternative navigation file. In order to have the MBIO library calls actually use the alternative navigation in place of the navigation embedded in processed swath files, the program must use another new function mb_read_init_altnav() to initialize reading (instead of mb_read_init()) - here the change is to pass in the astatus and apath values obtained from mb_datalist_read3().
int mb_read_init(int verbose, char *file, int format, int pings, int lonflip,
double bounds[4], int btime_i[7], int etime_i[7],
double speedmin, double timegap, void **mbio_ptr,
double *btime_d, double *etime_d, int *beams_bath,
int *beams_amp, int *pixels_ss, int *error);
int mb_read_init_altnav(int verbose, char *file, int format, int pings,
int lonflip, double bounds[4], int btime_i[7], int etime_i[7],
double speedmin, double timegap, int astatus, char *apath,
void **mbio_ptr, double *btime_d, double *etime_d,
int *beams_bath, int *beams_amp, int *pixels_ss, int *error);
If mb_read_init_altnav() is used, astatus is true, and apath is a valid alternative navigation file, then calls to mb_get_all(), mb_get(), and mb_read() will return survey records with the alternative navigation merged in place of the embedded navigation.
The only programs utilizing this capability are mbgrid, mbmosaic, and mblist - this allows generating data products utilizing the alternative navigation.
We have chosen to implement these features using new MBIO functions rather than the simpler approach of modifying the original functions. This choice is to avoid breaking the MBIO API for existing other programs at this time. We will likely simplify the API at some point in the future when the consequences of an API change are understood and manageable.
Mbnavadjustmerge: Made copying of mbnavadjust projects more efficient.
Mbnavadjustmerge: Add --remove-short-sections option to eliminate undesirably short sections by merging them with their prior section.
Mbnavadjustmerge: Add --remove-file option to remove a file from an mbnavadjust project.
Mbcontour: Fixed drawing of survey tracklines - restored to generate thin lines.
Mbm_route2mission: Modifications to accomodate changes to Dorado AUV vehicle software.
Mbinfo: Added -Q option which causes mbinfo to read statistics from existing *.inf files rather than to read the actual swath files. Variances, record types, nonfatal error messages and mask output cannot be generated with this option.
Mbnavadjustmerge: Fixed bug in merging projects.
Docker: Added a lightweight (945 MB) MB-System Dockerfile build based on alpine Linux distribution. The image contains full MB-System, including TRN and graphical tools. Runs on MacOS 12 (Monterey) and Ubuntu 22.04.
TRN tools: Minor changes to .gitignore (add binaries) and mbtrn/utils/tbinx.cpp (add signal handler, reconnect timing, bug fix).
Mblist: Added option to merge data from a secondary file and allow printing those secondary data values. The secondary file is columnar text in which the first column holds the time stamp in epoch or unix time (seconds since 1/1/1970), and up to 19 following columns hold other data collected during the survey (e.g. temperature or salinity measured on a CTD sensor).
Mbeditviz: The scale widget controlling grid cell size now changes it's range if either the minimum or maximum values are selected (halving or doubling, respectively).
Mbnavadjustmerge: Copying mbnavadjust projects is much more efficient due to use of a fast file copy function replacing a shell call of the program cp.
Mbm_route2mission: Added -T option to embed use of Terrain Relative Navigation in MBARI Mapping AUV missions.
Format 89 (MBF_RESON7K3): Fixed too small buffer size for broadcast Teledyne s7k data records, which caused mbtrnpp to crash by seg fault. This was 32K and is now 600K.
Mbnavadjust: Fixed bug in the inversion algorithm.
Rewrote the CMake build system based on the work of both Tom O'Reilly and Josch. This build system now works on MacOs Ventura. We will continue to augment and test using cmake so that this build system also works on Ubuntu and Debian Linux.
Mbtrnpp and related TRN code: Many updates and improvements from Kent Headley
Mbcontour: The navigation line width and color can now be set using the -W argument
Format SOIUSBLN (275): Supports USBL tracking data from R/V Falkor (too) as format 275.
Format SOIROVN (276): Supports ROV SuBastian INS navigation data as format 276.
Mbm_route2mission: Added a depth limit parameter to the -D argument.
Mbgrdviz: Fixed display of vector data.
General: Fixed automated handling of asynchronous nav and attitude data when reading Kongsberg or Teledyne multibeam data that have not been preprocessed. Changes are in mbio/mb_navint.c
Format RESON7K3 (89): Fixed counting of valid records in the file catalog.
Mbgetphotocorrection, mbphotomosaic, mbphotogrammetry: Fixed to properly handle embedding of parameters within recursive imagelist structures, allowing mixing of photographs taken with difference camera systems or perhaps different camera calibrations.
Mbgetphotocorrection, mbphotogrammetry: enabled multi-threading.
Mbauvloglist: Allow merging attitude data from a separate file. Allow decimation of input.
Mbmosaic: Augmented azimuth priority mode so that the azimuth alone can be specified, in which case the azimuth priority factor is one.
Mbpreprocess: Now outputs integrated navigation for all sensors producing mapping data.
Formats 56 (MBF_EM300RAW) and 57 (MBF_EM300MBA): Fixed catastrophic bug introduced in 5.7.9beta50 that treated many signed values (like acrosstrack distance) as unsigned.
Formats 56 (MBF_EM300RAW) and 57 (MBF_EM300MBA): Fixed catastrophic bug introduced in 5.7.9beta50 that treated many signed values (like acrosstrack distance) as unsigned.
MBgrdviz: Added ability to export routes as TECDIS LST files for display in a variety of marine chart display software.
Autotools build system: Altered Makefile.am files in third_party/googlemock and third_party/googletest to eliminate benign but alarming error messages during make install and make clean commands.
Mbm_route2mission: Added ability to insert a magnetometer calibration maneuver into an AUV mission spiral descent using the -Naltitude/mode command, where altitude is the spiral descent termination altitude and mode = 0 for no start survey behavior, 1 for start survey behavior alone, and 2 for start survey plus a magnetometer calibration maneuver.
Format 89 (MBF_RESON7k3): Removed debug message inadvertently left active in 5.7.9beta50.
General: Changed many sprintf() calls to snprintf() calls.
General: Fixed many compiler warnings having to do with unused variables, unitialized variables, and possible string overflows.
MBnavadjust: Fixed interface issues for importing multiple reference grids and selecting those while makeing global ties.
Format 261 (MBF_KEMKMALL): Added code to detect and handle gracefully some instances of corruption of MRZ datagrams, particularly due to missing bytes.
Format 201 (MBF_HYSWEEP1): Fixed reading of Hysweep multibeam in which beam angles are stored in spherical coordinates but are not corrected for roll and pitch. Updated support to handle multibeam data with angles in spherical coordinates that have not been corrected for roll and pitch, and to be consistent with the most recent Hypack users manual released February 2023.
Mbm_grdplot, mbm_grd3dplot, mbm_histplot, mbm_plot, mbm_xyplot: Made evince one of the default Postscript viewers because it is commonly installed on Ubuntu machines.
General: Addressed compiler warnings due to uninitialized variables, inconsistent variable typing, and other minor issues.
MBnavadjust: Changed the solution algorithm so that the final stage of LSQR matrix inversion is done in several steps. As before, the first three stages are to construct an initial model by interpolating any global ties, then solve for and apply average offsets for each survey, then conduct an iterative relaxation towards an additional perturbation solution. Each stage produces a perturbation solution, that is, a solution to fit the navigation offsets remaining after applying the existing navigation model. Each perturbation is added to the navigation model, which is then the starting point for the next stage. These three stages build up an approximate navigation solution that solves most of the original mismatch between overlapping and crossing swathes. The final stage is to build and solve an overdetermined least squares matrix problem constrained by all crossing and global times, by any surveys with fixed navigation, and also constrained by a penalty against first and second derivatives of the perturbation. Now, for multi-survey projects the matrix solution stage consists of first solving the full matrix problem, then solving for a perturbation to satisfy the remaining misfit for each of the individual surveys in turn, and finally redoing the full matrix problem. Again, after each solution step the resulting perturbation is added to the navigation solution.
Mbnavadjust: Added two new list options for sorted crossing ties. Now the sorted crossing tie list can be limited to the top 5% or 1% of ties.
Format MBF_MBARIROV (165): Added recognition for new filenaming conventions for MBARI ROV navigation files.
Mbmosaic: Fixed parsing of the -Ypriority_source option when priority_source is a filename.
Mbm_grdplot: Fixed handling of image file min max when color_mode == 6.
Mbnavadjust: Added controls allowing the mode of global ties to be changed interactively.
Mbnavadjust: Changed project file format, adding the the id of the source reference grid used for each global tie.
Mbview library: Fixed problem where mbview did not render the last row and column of a grid (the easternmost and northernmost data). Also attempted to make picking more robust.
Mbnavadjust: Fixed interpolation of global ties to create the starting navigation model during inversions. Fixed several actions in section and reference grid mode.
Mbnavadjust: Individual survey grids are now sized to the region of those surveys rather than the entire project. When the individual surveys are visualized, only the navigation for that survey are loaded into the mbview 2D/3D map instance. Also fixed picking of section navigation in both crossing and section (vs reference grid) modes.
Mbnavadjustmerge: Added options set the mode (XYZ vs XY vs Z) of all global ties.
Mbnavadjust: Added ability to import and use multiple reference grids for picking global ties of individual swath data sections.
FNV files: The fast navigation or *.fnv files are created as ancillary files allowing navigation to be read without reading the full swath files. The *.fnv files are in the MBF_MBPRONAV (166) format. Format 166 has always supported comment records as lines beginning with the '#' character, but fnv files have always been created without any comment records. Many MB-System programs read fnv files directly without using the MBF_MBPRONAV i/o module. Now all format 166 files will be written with a first record documenting the contents of the file:
fprintf(mb_io_ptr->mbfp, "## <yyyy mm dd hh mm ss.ssssss> <epoch seconds> "
"<longitude (deg)> <latitude (deg)> <heading (deg)> <speed (km/hr)> "
"<draft (m)> <roll (deg)> <pitch (deg)> <heave (m)> <portlon (deg)> "
"<portlat (deg)> <stbdlon (deg)> <stbdlat (deg)>\n");
whether they are written by the MBF_MBPRONAV i/o module or by functions in applications like mbprocess or mbpreprocess. All instances reading these files will ignore these file header records.
Mbgrdviz: augmented and corrected the headers of route and site files output by mbgrdviz, better self documenting the formats of these files.
Mbnavadjust: Added ability to import a reference bathymetry grid that can be used to define global ties. Also modified so that when the main display list mode limits what is shown to "with selected survey" or other modifiers, these constraints also limit what navigation is shown in the project visualization. So, if one selects a survey and then sets the list mode to show only the selected survey, then the visualization will also only display the navigation from that survey, the crossing ties or global ties from that survey, and only allow picking on that survey's navigation.
Mbareaclean: Fixed issue in which mbareaclean does not apply filters for files without pre-existing *.esf files.
Mbbackangle: Plots of the backscatter vs grazing angle distribution are no longer histogram equalized.
Mbprocess: Modified the threaded processing function process_file() so that each instance carries a thread id that can be checked during debugging.
Mbphotomosaic: Fixed problem in which an image correction model from mbgetphotocorrection was read but not applied.
Mbeditviz: Fixed display of beam info when picking in info mode in the 3D soundings display.
Mblist and mbnavlist: Fixed failure to deallocate proj object.
Mbtrnpp: Added UTM projection to top level using Proj, but this is not used yet. The UTM projection used within the TRN codebase remains defined in the very old GCTP package, which is embedded with TRN.
TRN execution and plotting scripts (e.g. src/mbtrn/tools/mbtrnpp-plot/trnucli-plot.sh): Changed the shebang call from #!/usr/local/bin/bash to #!/usr/bin/env bash for portability.
Mbnavadjust: Recast global ties to utilize a full 3D covariance model just like the crossing ties, in preparation for allowing graphical picking of global ties relative to a reference bathymetry model.
Mbnavadjustmerge: Added ability to remove disconitinuities in mbnavadjust projects. Recast global ties to utilize a full 3D covariance model just like the crossing ties, in preparation for allowing graphical picking of global ties relative to a reference bathymetry model.
Mbm_trnplot: Added mission names to mbtrnpp result plots.
Cmake Build System: Incorporates an initial attempt at a cmake based build system that will provide an alternative to the existing AutoTools based build system. Updated documentation for both build systems is not included yet.
Format 261 (MBF_KEMKMALL): Fixed bug in handling beam amplitude data from null beams.
Mbtrnpp: Fixed trnu logging.
Mbnavadjust: Altered the navigation adjustment inversion algorithm to apply linear interpolation of global ties to create a starting model for the inversion. Fixed picking on tie offsets in the modelplot window.
Mbm_makedatalist: Fixed to work with *.kmall files, and added -Bsize option to impose a size threshold for files included in the output datalist.
TRN: Several fixes to the TRN (terrain relative navigation) capability.
Mbtrnpp: Fixed decimation algorithm more so it doesn't crash in Linux.
Mbtrnpp: Added option --auv-sentry-em2040 to configuration file and command line options in order to enable use of the special pressure depth encoding in EM2040 data collected on AUV Sentry. Previously this option was hard coded in mbtrnpp.c. By default this option is disabled, so in order for mbtrnpp to work with Sentry EM2040 multibeam either in realtime or playback modes this option must now be specified.
Mbtrnpp: Fixed decimation algorithm.
Mbgrdtilemaker: Fixed building of this new tool.
Mbgrdviz: Fixed export of Risi survey scripts from routes.
Mbm_trnplot: Fixed plotting macro to work when the users path does not include the current directory.
Mbgrdtilemaker: Now copies the source background grid into the directory containing the octree tiles with the name source_grid.grd.
Mbtrnpp: Added options to set the TRN search area on the command line and in cfg files. Fixed wrapper script mbtrnpp.sh so that the number of cycles to be used is set correction.
Mbm_trnplot: Fixed plotting macro to work with the current mbtrnpp output.
Mbgrd2octree: Recast program that translates a topography grid in a projected coordinate system (like UTM) into a TRN octree model. This program now used MB-System-like arguments, e.g. mbgrd2octree --input=grid --output=octree
Mbgrdtilemaker: Added new program to generate a tileset of octrees for TRN from a reference grid in a projected coordinate system (like UTM). This tileset can be used by mbtrnpp.
Mbtrnpp and other elements of the Terrain Relative Navigation infrastructure: Augment mbtrnpp command set to include new commands for forced TRN resets with specified starting navigation offsets and particle filter spread size.
Mbtrnpp and other elements of the Terrain Relative Navigation infrastructure: Test tools and mbtrnpp command set augmented to enable using TRN in an ROV context with realtime bathymetry available via LCM - this development is not complete.
Fixes to src/mbtrnav/Makefile.am to allow successful build of TRN tools on Mac Homebrew.
Fixes to the Autotools build system allowing MB-System to be built in full on Arm architecture Mac computers running the Monterey OS and fixing the build of the TRN tools on Linux.
MBnavadjust: Incremental changes towards handling global ties relative to a reference grid - defined a single section naverr mode but don't have it working yet.
Fixes to the Autotools build system allowing MB-System to be built in full on Arm architecture Mac computers running the Monterey OS and fixing the build of the TRN tools on Linux.
Mbm_trnplot: Added --display option that immediately displays the plots.
General: Reduced the internal maximum file path name length from 4096 to 1024 characters.
Format MBF_RESON7K3 (89): Fixed reading/writing of the PingMotion (7012), Beamformed (7018), and FileCatalog (7300) records.
Mbnavadjust: Changed default range for z-offsets in calculating the 3D misfit from +/- 5 m to +/- 1 m. Made progress towards allowing interactive picking of global ties relative to a reference topography grid.
Mbtrnpp: Improved TRN result logging, including having all log files from a session placed in the same directory named according to the start time. Also added automated plotting of the TRN results using a new plot macro mbm_trnplot.
Mbm_trnplot: New plotting macro that generates two map views of the results from an mbtrnpp session.
Mbeditviz: Supports selective editing or ignoring of multipick soundings.
Mbm_route2mission: Added new battery behavior that turns off the mapping sonars after data logging has been turned off at the end of the survey, before ascent to the surface.
Mbvoxelclean: fixed memory management fault.
General: Increased the size of MB_PATH_MAX to 4096 bytes to allow for longer file paths - this now conforms to the common file path maximum for Linux distributions.
Terrain Relative Navigation: Many changes to mbrnpp and TRN related code by Kent Headley
Mbphotomosaic: Fixed further issues with specifying options within the imagelist.
Mbnavadjust: Changed inversion - the relaxation stage now terminates if it starts to diverge, a mod that reduces the tendency of the inversion to blow up.
Mbmakeplatform: Fixed header file array definition issue that caused compile failures when testing cmake based builds.
Mbphotomosaic: Augmented available commands that can be specified in imagelist files with --priority-weight and section-length-max. The --priority-weight allows one to up-weight or down-weight sets of images in a photomosaic. The --section-length-max command allows one to exclude groups of pixels that are projected into too large of an extent when projected onto the seafloor topography model.
Mbm_makeimagelist: Augmented to comment out the first five image pairs in each image survey directory, as the first three or four images are usually quite dark.
Mbphotomosaic: Fixed problem specifying the image correction table file in an imagelist structure.
Mbphotomosaic and mbgetphotocorrection: Altered the image correction table file generated by mbgetphotocorrection and read by mbphotomosaic to include correction tables for color as well as intensity. Since we are using the YCbCr color space this means generating tables of average chroma (color) difference in red and blue as well as a 3D table of average luma (intensity). If RGB and YCbCr values have ranges 0-255, then:
Y = 0.299R + 0.587G + 0.114B (Luminance, intensity, B/W signal)
Cb = 0.564(B - Y) + 128 (blue color difference)
Cr = 0.713(R - Y) + 128 (red color difference)
and
B = (Y + 1.773 * (Cb - 128));
G = (Y - 0.714 * (Cr - 128) - 0.344 * (Cb - 128));
R = (Y + 1.403 * (Cr - 128));
If the specified color correction file includes the Cr and Cb tables, then the --correct-color command will cause mbphotomosaic to use those tables to correct for color. Each source image pixel being corrected has a lateral location within the source image and a standoff (altitude) relative to the seafloor; these 3D positions correspond to locations in the 3D correction tables. As with the intensity, the Cr and Cb corrections are a multiplicative factor calculated to map the the value in the relevant location in the table to a reference value. The reference value may be the average central values in the correction tables or a value specified by the user with the --reference-intensity=intensity and --reference-crcb=cr/cb commands.
Mbphotomosaic and mbgetphotocorrection: Altered the image correction table file generated by mbgetphotocorrection and read by mbphotomosaic to include the reference gain and exposure settings used by mbgetphotocorrection. This means that these settings no longer have to be explicitly set in the mbphotomosaic command.
Mbphotomosaic: Added an option --reference-intensity=intensity that sets the reference intensity used by mbphotomosaic when mbgetphotocorrection image correction tables are being used. The algorithm now works as follows: Before correction the pixel values are transformed from BGR colorspace into the YCbCr color space, that is from blue, green, red triples into Y (intensity), Cb (blue difference chroma), Cr (red difference chroma) triples. The correction involved changing the intensity, and then the YCbCr triples are transformed back into BGR triples for use in the photomosaic. The correction applied to each source pixel (or section) is a value that is multiplied by the source pixel intensity - a value of 1.0 will leave the source pixel unchanged, a value > 1.0 will make the pixel lighter, and a value < 1.0 will make the pixel darker. Each source pixel or section has an x-y location in the source image and a vertical standoff relative to the seafloor topographic model - these coordinates specify a location in the image correction table for the relevant camera. The value in the lookup table at that spot is the average intensity of all pixels with that location. The correction value is calculated as the multiplier that would transform the lookup table value to a desired reference intensity: C = reference_intensity / table_intensity
Mbphotomosaic and mbgetphotocorrection: Another iteration trying to get image gain and exposure correction to work correctly. Altered the imagelist file format to include camera gain and exposure settings. These can be extracted from the metadata embedded into images written by the MBARI Prosilica driver code (adapted from URI/WHOI/UM).
Mbm_makeimagelist: Altered the imagelist file format to include camera gain and exposure settings. These can be extracted from the metadata embedded into images written by the MBARI Prosilica driver code (adapted from URI/WHOI/UM). Added --check-bayer option to allow checking the bayer images for the original camera gain and exposure settings when those are not carried over to the derived color images.
Mbphotomosaic and mbgetphotocorrection: Another iteration trying to bet image gain and exposure correction to work correctly.
Mbphotomosaic, mbgetphotocorrection, mbphotogrammetry, mbm_makeimagelist: Altered imagelist file format and functions reading recursive imagelist structures. Now each stereo rig dataset has a single imagelist that can include both stereo pairs and single images (when one photo from a stereo pair is missing). Also, the imagelists created by mbm_makeimagelist now include the camera gain and exposure settings.
Mbphotomosaic, mbgetphotocorrection: Now can correct for image gain and exposure settings.
Mblist: Added K and k options to the output, where K prints the fraction of non-null beams that are good (unflagged) and k prints the fraction of all possible beams that are good. These fractions are by definition bounded by 0 and 1.
Mbphotomosaic, mbgetphotocorrection, mbphotogrammetry: Added capability to load a time series of image quality values through new options:
- --image-quality-file=file
- --image-quality-threshold=value
- --image-quality-filter-length=value
Format 89 (MBF_RESON7K3): Increased the maximum possible number of beams from 512 to 1024.
Mbgrid: Enabled shifting of output grid bounds using a new -Yshiftx/shifty option.
Mbtrnpp: Fixed build issue TRN libraries.
Mbgrid and mbmosaic: Fixed setting output grid format with the -G option. The definition and parsing of the options is now consistent with GMT 6.
Mbnavadjust: Added option to unset skipped crossings.
Mbnavadjust: Changed vertical scaling of the time series model plot and the tie plots so that these are centered on the midpoint values rather than zero.
Mbgrdviz: Changed how routes are output as Risi survey scripts - now the lateral positions of waypoints are relative east and north meters in UTM rather than local x,y calculated using mtodeglon and mtodeglat from a simple spheroid.
Mbm_grdplot: Fixed so that it does not crash if the input grid has either no valid values (all are NaN) or all valid values are the same.
Mbnavadjust: Made listing of survey vs survey blocks much faster.
Mbnavadjust: Speeded up model tie plots and insured that changes to projects will be saved when users quit.
Mbview (mbgrdviz, mbeditviz, mbnavadjust): Addressed a number of code style issues particularly using bool rather than int for true/false values.
Mbm_route2mission: added acoustic modem status signal to MBARI AUV missions immediately at the end of the "start survey" behavior.
Most programs: Fixed possible overflow associated with code that sets user, host, and date information to be included in output files. This functionality has been concentrated into a function mb_user_host_date() found in src/mbio/mb_defaults.c
Many programs and i/o modules: Increased use of assert() to prevent overflow conditions when using sprintf to construct strings.
Mbextractsegy - fixed plotting so that the last plot is correct.
TRN: updated TRN documentation.
Build system: Fixed location of RPC and XDR headers for Ubuntu 21.
TRN: updated TRN documentation.
Build system: The configure script and the resulting Makefiles are generated using GNU Autotools 2.71 instead of 2.69.
Mbnavadjustmerge: Enabled new options --set-global-tie-relative which allows setting a global navigation tie with offsets calculated relative to the current navigation adjustment model.
Mbphotomosaic: Improved algorithm for mapping the imagery from the source images to the destination image. Now the code loops over all destination pixels in each quadrilateral of interest and obtains the corresponding source image pixels. Therefore no gaps are left in the destination image due to a resolution and sampling mismatch between the source and destination images.
Mbm_grdplot, mbm_grd3dplot, mbm_grdcut, mbm_grdinfo, mbm_grdtiff: Fixed thesemacros to work with the new gmt grdinfo output that changed for GMT 6.2.0.
Mbnavadjust: Fixed importation of swath files, which was failing. Fixed crash that happened when a navigation inversion was performed in the same session as swath data importation.
Mbauvloglist: Fixed parsing of short values in MBARI Dorado AUV MVC log files.
Mbm_grdplot: Fixed histogram equalization in cases where grdhisteq returns an incomplete or short equalized color table.
Mb_rt raytracing functions: Added tracking of travel times in arrays returned by mb_rt() for plotting raypaths. This adds a parameter to the mb_rt() function call, which is used by utilities/mb_process.cc and mbvelocitytool/mbvelocity_prog.c.
Mbm_grdplot: If \fB-MGL\fP\fIF\fP is given in conjunction with \fB-MGL\fP\fIscalebar\fP then the map scale will be surrounded by a white filled, black bounded box on top of the map.
Mbm_grdplot: Chooses more reasonable easting/northing annotation intervals when plotting maps in projected coordinate systems like UTM.
Mbm_grd2arc: Fixed so that the call to gmt convert is actually made.
Mbm_grdtiff: Fixed so that the temporary GMT defaults are actually applied to the output image. By default this enforces a white background on the output GeoTiff image, which enables the new tool mbtiff2png to set the white areas to transparent when it converts a GeoTiff image to a PNG image for import into GIS.
Mbeditviz: Fixed sparse filtering functions, which were inadvertently broken a few months ago.
Mbgetphotocorrection: Made multithreaded.
Mbphotomosaic: (1) Made multithreaded. (2) Added ability to map blocks of pixels from source images to the destination image instead of mapping individual pixels. The size of the square blocks is specified using --section=sizeInPixels. (3) Added PNG format image output, which allows no data regions to be transparent. PNG images cannot have geodetics embedded, and so depend on a *.pgw world file to be importable into GIS. (4) Added image correction modes based on source pixel range or standoff.
Mbtiff2png: New tool that converts GeoTiff images to PNG images while setting no data regions transparent on the basis of being white, lighter than a specified threshold, black, or darker than a specified threshold.
Mbvoxelclean: Fixed application of acrosstrack and range filters.
mbm_histplot: Fixed the use of the -C option to specify cellwidth for the histogram to be plotted.
Formats 232 (MBF_3DWISSLR) and 233 (MBF_3DWISSLP): Changed so that MB_FLAG_SECONDARY is no longer used for multiple picks per laser pulse.
MBnavadjust and MBnavadjustmerge: Restructured the code so that more capability of mbnavadjust can be duplicated in the command line tool mbnavadjust merge. Working to add ability to reimport surveys into a project.
MBvoxelclean: Added --neighborhood option and fixed amplitude range options.
Mblist: Fixed function of the -O%fnv and -O%FNV commands to produce *.fnv files.
Mbpreprocess: Fixed to work with the old s7k format (88) MBF_RESON7KR.
Format 88 (MBF_RESON7KR): Fixed to not recognize collections of ping records that are mission bathymetry and/or travel time records as complete.
Mbnavadjust: When importing files, only export navigation records to the *.mb166 files in the project directory for ping records (previously data were output for input navigation records as well).
Mbauvloglist: Added available output field of speed calculated from the velocity vector in the kearfott.log log file, with tag calcKSpeed. Also added new -C option: in the case that navigation is being merged from an external file specified with the -N option, the -C option suppresses output of records with timestamps from before or after the time bounds of the navigation data. The default remains to output those records with zero values for the merged navigation outside the time bounds.
General: Changed code that deletes temporary files from using a system() call to using the stdio function remove(). Affects src/mbio/mb_process.c, src/utilities/mbdatalist.cc, and src/mbvelocitytool/mbvelocity_prog.c.
TRN: Updates to src/mbtrn, src/mbtrnav, src/mbtrnutils from Kent Headley.
Mbm_grdplot, mbm_3dgrdplot, mbm_grdtiff, mbm_grdinfo: Changed " -r " tests for file readability to " -e " tests for file existence. This is to accommodate filesystems that use ACL rather than old style unix file modes - the old stat based readability test in Perl fails on ACL filesystems.
Mbpreprocess: Fixed handling of data formats that do not have specially defined preprocessing functions. This fix was prompted by problems with SeaBeam 2112 data in format 41 (MBF_SB2100RW).
General changes: More work to achieve thread safety for mbprocess: removed use of static variables in several components of MBIO.
Mbgrid: Fixed error handling so that if the program is shut down by an error, the exit code is nonzero.
MBIO: Added extraction function mb_extract_lonlat(), which returns swath data similar to mb_extract() but with beam and pixel positions defined in longitude and latitude rather than acrosstrack and alongtrack distances relative to the reference point.
Mbareaclean: Fixed memory management bug causing crashes.
General changes: Replacing use of strtok() function with strtok_r(). Strtok() is intrinsically not thread safe or reentrant and is considered poor use under all circumstances. Source files with this change include: src/mbio/mbr_edgjstar.c src/mbio/mbr_hypc8101.c src/mbio/mbr_hysweep1.c src/mbio/mb_format.c src/mbio/mb_get_value.c src/bsio/mbbs_tm.c src/utilities/mblevitus.cc src/mbvelocitytool/mbvelocity_callbacks.c src/mbnavedit/mbnavedit_callbacks.c src/mbnavadjust/mbnavadjust_callbacks.c
General changes: Replace atof() with strtod() for thread safety. Source files with this change include: src/gmt/mbgrdtifforg.c src/bsio/mbbs_tm.c src/mbio/mb_navint.c src/mbio/mbr_edgjstar.c src/mbnavadjust/mbnavadjust_fine.c
General changes: Replace atoi() with strtol() for thread safety. Source files with this change include: src/gmt/mbcontour.c src/gmt/mbgrdtifforg.c src/gmt/mbswath.c src/gsf/gsf.c src/utilities/mbgrid.cc src/utilities/mbprocess.cc
General changes: Protect against overflows copying comments in all of the mbsys_XXX_extract() and mbsys_XXX_insert() functions the in the source files mbsys_XXX.c
MBnavadjust: Fixed bug that failed to save new navigation ties if the program was closed without solving for a new model. Now closing the program will always save any unsaved ties.
MBeditviz and MBview: Removed unneeded functions from mbview/mb3dsoundings_callbacks.c that were breaking test Cmake builds.
Fixed bug in format 58 and 59 support for bathymetry recalculation. The per beam heave values were being calculated incorrectly when bathymetry was recalculated by raytracing.
Fixed bug in format 57 in which reprocessing did not trigger recalculation of multibeam pseudosidescan.
These bugs were introduced during the 2020 code modernization.
Mbedit and mbnavedit: Use extern for Widget definitions in mbedit_creation.h and mbnavedit_creation.h to avoid duplicate symbol link errors when building code according to current C / C++ standards. The other graphical utilities already use this construct.
Version 5.7.8 is now the current release of MB-System. Changes since the 5.7.6 release include:
Configure: Fixed handling of X11 libraries and header files in the autotools build system in order to circumvent more changes to dependencies installed on Macs using the Homebrew package manager. The first attempt at this turned out to cause X11 runtime failures on Linux systems, and so release 5.7.7 was rapidly superceded by this 5.7.8 release.
mbdatalist: Fixed memory leak in src/mbio/mb_check_info.c that could occur when parsing *.inf files.
Formats 88 (MBF_RESON7KR) and 89 (MBF_RESON7K3): Fixed bug in handling of PingMotion data records (7012) that caused memory overruns and seg faults.
Mbclean: Fixed two bugs. The first involved setting the left/right bounds of flagging by acrosstrack distance using the -Y option, and the other resulted in slope flagging being applied when not requested when the -Y option was used alone.
Mbpreprocess: Added option to set directory where output files are written instead of writing the output files parallel to the input swath files.
Format 121 (MBF_GSFGENMB): Modified handling of multibeam snippet backscatter so that samples associated with beams flagged as bad are nulled, and so that modified backscatter is written to the output file by mbprocess.
Mbeditviz: Modified 3D sounding view so that the depth buffering is actually used.
Mbm_makedatalist: Now ignores the most recent file when the -L option is used.
Mbprocess: Fixed raytracking library used by mbprocess so that it is thread safe. The relevant code is in mbsystem/src/mbaux/mb_rt.c
Format 261 (MBF_KEMKMALL): Fixed bug in handling version 0 MWC datagrams.
Mbphotomosaic: Fixed bug in pixel processing that occasionally produced overflows leading to seg faults.
Mbphotomosaic: Fixed bug in imagelist processing that prevented use of images taken with the right camera of a stereo pair.
Mbimagecorrect: New program that performs some simple brightness and contrast corrections using standard OpenCV algorithms.
Mbprocess: Recast the program to process files in parallel using separate threads. This was implemented in the C++ main code using the C++11 standard thread API. The default is to use a single processing thread and therefore to process the files serially; the new -Cthreads option enables the use of multiple threads. For now, the built-in record keeping of memory allocation/deallocation is disabled for mbprocess because this functionality is not thread-safe.
Mbnavadjust: The navigation adjustment inversion has been improved by tuning the parameters used for the overdetermined least squares solution.
Mbswath2las: Shell for not-yet-working program to export soundings from swath data to some variant of the LAS format used for point cloud data.
Mbvoxelclean: Added option to filter based on beam amplitude minimum and maximum values.
Mbeditviz: Fixed coloring of soundings using beam amplitude values (colormap was applied incorrectly).
Mbeditviz: Added option to display the selected sounding point cloud with soundings colored according to associated amplitude value. Also added the sounding amplitude value to the information listed when soundings are selected in the "info" mode.
Mbedit: Added the sounding amplitude value to the information listed when soundings are selected in the "info" mode.
Mbnavadjust: Previously autopicking of crossings skipped crossings including short sections where short was defined as less than 0.25 times the length of the first section of the associated file. This is problematic when the survey platform is stationary at the beginning of a file, resulting in a first section with a short track length (sections are terminated either on track length or total number of soundings). Now short is defined as less than 0.25 times the current desired section length for the project.
Format 58 (MBF_EM710RAW): This format supports third generation Kongsberg multibeam data as recorded in *.all files; the augmented format 59 (MBF_EM710MBA) is used for processing. Data are translated from format 58 to 59 using mbpreprocess. Data have been collected using a partially nonfunctional EM122 such that most of the backscatter snippet records are missing. The existing code treats pings for which the snippet records are missing as incomplete and drops them. The format 58 i/o module has been modified so that if a special flag is set, any snippet records will be ignored and all pings will be treated as having an empty but existing snippet record. Users can set this flag with a special --kluge-ignore-snippets argument to mbpreprocess.
Mbpreprocess and i/o modules with defined preprocessing functions: All existing preprocess functions have been augmented so that a call with a null pointer to the data structure will trigger an option to set i/o flags after reading from a file is initialized but before any data are read. The only case at present where this is used is format 58 (MBF_EM710RAW), where the mbpreprocess option --kluge-ignore-snippets causes the reading code to treat pings with bathymetry as complete whether snippet records exist or not, and to zero the snippet information for those pings.
Mbm_makedatalist: Added -L option which will omit the last file found from the output datalist. The intent of this option is to exclude the most recent file in an actively data logging context, since the most recent file is still being logged. This presumes that filenames sort in time order as listed by the ls command, an assumption that does not hold for all file naming conditions or if the -T option has been used to disable time ordering. Also added a behavior particular to Kongsberg multibeam data as originally logged - files named "9999.all" are now ignored.
Mbotps: Modified mbotps to place temporary files in the user's home directory instead of the current working directory when the latter case results in file paths greater than 80 characters long. This is because OTPS has it's filename variables defined as 80 character strings.
Format 88 (MBF_RESON7KR): Fixed handling of the various attitude data record types by function mb_extract_nnav(), which in turn allows mbnavlist to work correction with format 88 data when keyed to those data record types.
Mblist: Added output option 'n' for survey line number. This value is only defined for SEGY format data files (format 160).
The autoconf build system had been changed so that libXt and libX11 come before libXm in the link commands. This fixes runtime errors in all of the graphical utilities on Linux systems. This problem probably relates more directly to the use of the gcc compiler system.
The version 5.7.7 was fatally flawed in that the graphical tools would not run on Linux (or more probably, when built using gcc rather than llvm). The problem was that the autoconf build system had been changed in order to fix build failures in the Homebrew package manager, and these changes inadvertently including changing the library link order so that libXt and libX11 came before libXm. This problem was fixed rapidly and a new major release 5.7.8 put the same day.
mbdatalist: Fixed memory leak in src/mbio/mb_check_info.c that could occur when parsing *.inf files.
Configure: Fixed handling of X11 libraries and header files in the autotools build system in order to circumvent more changes to dependencies installed on Macs using the Homebrew package manager.
Formats 88 (MBF_RESON7KR) and 89 (MBF_RESON7K3): Fixed bug in handling of PingMotion data records (7012) that caused memory overruns and seg faults.
Mbclean: Fixed two bugs. The first involved setting the left/right bounds of flagging by acrosstrack distance using the -Y option, and the other resulted in slope flagging being applied when not requested when the -Y option was used alone.
Mbpreprocess: Added option to set directory where output files are written instead of writing the output files parallel to the input swath files.
Format 121 (MBF_GSFGENMB): Modified handling of multibeam snippet backscatter so that samples associated with beams flagged as bad are nulled, and so that modified backscatter is written to the output file by mbprocess.
Mbeditviz: Modified 3D sounding view so that the depth buffering is actually used.
Mbm_makedatalist: Now ignores the most recent file when the -L option is used.
Mbprocess: Fixed raytracking library used by mbprocess so that it is thread safe. The relevant code is in mbsystem/src/mbaux/mb_rt.c
Format 261 (MBF_KEMKMALL): Fixed bug in handling version 0 MWC datagrams.
Mbphotomosaic: Fixed bug in pixel processing that occasionally produced overflows leading to seg faults.
Mbphotomosaic: Fixed bug in imagelist processing that prevented use of images taken with the right camera of a stereo pair.
Mbimagecorrect: New program that performs some simple brightness and contrast corrections using standard OpenCV algorithms.
Mbprocess: Recast the program to process files in parallel using separate threads. This was implemented in the C++ main code using the C++11 standard thread API. The default is to use a single processing thread and therefore to process the files serially; the new -Cthreads option enables the use of multiple threads. For now, the built-in record keeping of memory allocation/deallocation is disabled for mbprocess because this functionality is not thread-safe.
Mbnavadjust: The navigation adjustment inversion has been improved by tuning the parameters used for the overdetermined least squares solution.
Mbswath2las: Shell for not-yet-working program to export soundings from swath data to some variant of the LAS format used for point cloud data.
Mbvoxelclean: Added option to filter based on beam amplitude minimum and maximum values.
Mbeditviz: Fixed coloring of soundings using beam amplitude values (colormap was applied incorrectly).
Mbeditviz: Added option to display the selected sounding point cloud with soundings colored according to associated amplitude value. Also added the sounding amplitude value to the information listed when soundings are selected in the "info" mode.
Mbedit: Added the sounding amplitude value to the information listed when soundings are selected in the "info" mode.
Mbnavadjust: Previously autopicking of crossings skipped crossings including short sections where short was defined as less than 0.25 times the length of the first section of the associated file. This is problematic when the survey platform is stationary at the beginning of a file, resulting in a first section with a short track length (sections are terminated either on track length or total number of soundings). Now short is defined as less than 0.25 times the current desired section length for the project.
Format 58 (MBF_EM710RAW): This format supports third generation Kongsberg multibeam data as recorded in *.all files; the augmented format 59 (MBF_EM710MBA) is used for processing. Data are translated from format 58 to 59 using mbpreprocess. Data have been collected using a partially nonfunctional EM122 such that most of the backscatter snippet records are missing. The existing code treats pings for which the snippet records are missing as incomplete and drops them. The format 58 i/o module has been modified so that if a special flag is set, any snippet records will be ignored and all pings will be treated as having an empty but existing snippet record. Users can set this flag with a special --kluge-ignore-snippets argument to mbpreprocess.
Mbpreprocess and i/o modules with defined preprocessing functions: All existing preprocess functions have been augmented so that a call with a null pointer to the data structure will trigger an option to set i/o flags after reading from a file is initialized but before any data are read. The only case at present where this is used is format 58 (MBF_EM710RAW), where the mbpreprocess option --kluge-ignore-snippets causes the reading code to treat pings with bathymetry as complete whether snippet records exist or not, and to zero the snippet information for those pings.
Mbm_makedatalist: Added -L option which will omit the last file found from the output datalist. The intent of this option is to exclude the most recent file in an actively data logging context, since the most recent file is still being logged. This presumes that filenames sort in time order as listed by the ls command, an assumption that does not hold for all file naming conditions or if the -T option has been used to disable time ordering. Also added a behavior particular to Kongsberg multibeam data as originally logged - files named "9999.all" are now ignored.
Mbotps: Modified mbotps to place temporary files in the user's home directory instead of the current working directory when the latter case results in file paths greater than 80 characters long. This is because OTPS has it's filename variables defined as 80 character strings.
Format 88 (MBF_RESON7KR): Fixed handling of the various attitude data record types by function mb_extract_nnav(), which in turn allows mbnavlist to work correction with format 88 data when keyed to those data record types.
Mblist: Added output option 'n' for survey line number. This value is only defined for SEGY format data files (format 160).
Version 5.7.6 is now the current release of MB-System. Changes since the 5.7.5 release include:
Many bug fixes to programs and data format i/o modules.
New programs in optional photomosaicing section:
- mbgrd2obj
- mbphotomosaic
- mbgetphotocorrection
- mbphotogrammetry
- mbgrd2octree
- mbm_makeimagelist
New program in optional Terrain Relative Navigation section: mbtrnpp
Continuous Integration testing: Continuous integration testing has been implemented using the Travis CI service integrated with Github. The tests are performed by running make check and are executed automatically whenever commits are made to the Github repository.
Partial migration to C++: The source code for programs in the src/utilities directory has been migrated to C++. Also, much of the C and C++ code has been updated to be consistent with the C11 and C++11 standards.
Deprecated programs: Several programs that are no longer part of the current data processing approach have been declared deprecated and have been moved from src/utilities to a new directory src/deprecated. These programs are:
- mb7k2jstar
- mb7k2ss
- mb7kpreprocess
- mbauvnavusbl
- mbhsdump
- mbhysweeppreprocess
- mbinsreprocess
- mbkongsbergpreprocess
- mbneptune2esf
- mbrollbias
- mbrphsbias
- mbstripnan
- mbswplspreprocess
The deprecated programs have also been converted to C++ and are still built and installed as part of MB-System. We tentatively plan to remove these programs entirely from MB-System distributions at the time of the 6.0 release.
Mbnavlist: Fixed bug in parsing -O option that sometimes resulting in the output of undesired values.
Mbm_makeimagelist: New macro that constructs imagelist files of stereo photograph pairs as collected by MBARI's low altitude survey system. This is the first Python3 macro in MB-System.
Format 88 (MBF_RESON7KR): Fixed calculation of speed when using the mb_extract_nav() function for navigation records.
Mbpreprocess: Fixed problems with the --kluge-time-jumps option for fixing jumps in timestamps.
Mbsslayout: Add blanking interval to option --altitude-bottompick-threshold=threshold[/blank] so that when picking the bottom return in the sidescan time series, nearfield backscatter can be ignored out to the time interval in seconds given by the value blank.
Mbsegylist: Add print option of 'l' for the line number contained in the segy file header.
Format 132 (MBF_EDGJSTAR): Edgetech Jstar format. The i/o module has been modified to handle broken records gracefully by searching byte by byte for the next valid start of record.
Mbnavadjust: Reinstated use of both first and second derivitive penalty function in the final stage of inversion for a navigation adjustment model.
Mbnavadjustmerge: Now copies triangle files along with section swath files when copying a project. This means these triangle files will not need to be remade in the new project.
Mbtrnpp: Fix potential variable overflow and incorrect metrics value assignment in netif code.
Mbnavadjust: Changed "Zero All Z Offsets" action to apply to only the crossings or ties currently displayed in the list, not literally all set ties.
Mbtrnpp: Fixed TRN content of TRN updates when TRN processing fails due to insufficient or inconsistent data.
Mbtrnpp: Add support for trnu client reset callback (does reset using best offset) and supporting metrics, add file swap event to reinit plot
Format 261 (MBF_KEMKMALL): Fix to AUV Sentry mode for kmall format - zero heave in processed ping records (XMT) when platform is an AUV.
Mbnavedit: fixed handling of interpolation/extrapolation when timestamps are repeated.
TRN plotting scripts - changed hard coded bash location to /usr/local/bash
mbtrnpp: Added tide model correction. Added metrics covering non-survey data publishing.
Mbnavadjust: Now ignores pings with zero navigation values on import.
Format 261 (MBF_KEMKMALL): Fixed embedding of changed navigation and sensordepth values by mbprocess - these values needed to be changed in both MRZ and XMT records.
mbtrnpp: Added time stamp and position to TRN status messages generated for pings with no valid soundings. Bug fix: stats and cycle exec time metrics get incorrect values on some platforms, because of mixed reference to real time and precision clocks; now use consistent references
mbtrnpp: Now outputs TRN status messages even when the input data do not include valid soundings and so do not get processed by TRN. Also reduced the debug level of the network interface code.
mbtrnpp: Fixed bugs in parsing commands and also in management shellscript mbtrnpp.sh
mbtrnpp: Fixed bug that opened a new log file at each reinitialization without closing the old log file, eventually using up all of the available file descriptors and crashing. Added some diagnostic output. Updated related test clients and servers used to demonstrate socket based i/o to and from mbtrnpp.
mbtrnpp: Modified the socket based TRN output packet and the related internal representation.
mbtrnpp: Now reinitializes the Terrain Relative Navigation (TRN) filter using the best available position rather than the last estimated navigation offset. If no good convergence has been reached, then the center of the particle filter cloud will be offset from the current navigation by zero. If a good convergence has been found at some point, the most recent good convergence offset value will be used to center the new particle filter cloud. Good convergence is not defined by the convergence criteria within the TRN filter code, but is instead defined by mbtrnpp according to a maximum standard deviation magnitude (by default 5.0 meters) and a minimum number of successive iterations that achieve better than that threshold (by default 200)
Format 261 (MBF_KEMKMALL): Added hook to allow a program (currently on mbtrnpp) to set a flag that enables a correction specific to EM2040 data collected on AUV Sentry. The sensor depth value is recorded in a nonstandard location within the *.kmall data on AUV Sentry. In post processing this is handled with a special kluge option to mbpreprocess. The program mbtrnpp can now force the i/o module to make this same correction when reading raw *.kmall data.
Format 72 (MBF_MBARIMB1): Fixed bug in handling sensordepth values.
Mbtrnpp: Changed most shell output from stdout to stderr. Altered logic for triggering TRN reinits.
Formats 12 (MBF_SBSIOCEN), 13 (MBF_SBSIOLSI), 14 (MBF_SBURICEN), 15 (MBF_SBURIVAX): Fixed string overrun while writing long comment records.
Format 89 (MBF_RESON7K3): Fixed handling and processing of backscatter data, which had a variety of problems. Now, the pseudo-sidescan reported by MB-System as sidescan can be recalculated by mbprocess from the desired backscatter source. The default is to use the best source of backscatter available, with the order of "bestness" being:
- Calibrated snippets
- Snippets
- Calibrated sidescan
- Sidescan
You can force mbpreprocess to use a desired backscatter source with the --multibeam-sidescan-source option, where:
- --multibeam-sidescan-source=C ==> Calibrated snippet records
- --multibeam-sidescan-source=S ==> Snippet records
- --multibeam-sidescan-source=W ==> Calibrated sidescan records
- --multibeam-sidescan-source=B ==> Sidescan records
Format 89 (MBF_RESON7K3): Added support for additional informational data records.
Mbsegylist: Fixed formatting time strings.
Mbnavlist: Fixed formatting time strings.
Mbextractsegy: Fixed embedding the seafloor depth value correctly into output segy trace headers when the data are being extracted from Edgetech Jstar format data (MBIO format 132).
Mbnavadjust: Changed the inversion control parameters such that the second phase of the navigation adjustment solution, a coarse progressive relaxation intended to achieve large scale shifts between surveys, now has a maximum iteration count of 10000 (previously 1000) and a convergence criterea of 0.00001 (previously 0.0001).
Mbgrd2octree: New program to translate a GMT bathymetry grid to an octree representation in the form used by the Stanford/MBARI Terrain Relative Navigation software. The octree files have a suffix convention of *.ob for octree binary. The input bathymetry grids are assumed to be in UTM coordinates with square cells.
Mbtrnpp: Made the --platform-target-sensor option functional. Added options --reinit-qain --reinit-xyoffset=max --reinint-zoffset=min/max
Mbeditviz: Now outputs error message to shell when a file can't be imported because it lacks an *.inf file.
Mbsvplist: Added capability to extract sound velocity profile (SVP) models from MB_DATA_CTD type records as well as MB_DATA_SOUND_VELOCITY_PROFILE type records (which is the default). This is controlled with the -A option: -AS specifies use of SVP records, and -AC specifies use of CTD records. At present, the only relevant data formats are the old Reson (88) and current Teledyne (89) *.s7k formats.
Mbvelocitytool: Fixed the -B and -E options to specify the allowed begin and end times of swath data used for modeling; previously these options were ignored. Also fixed a memory leak involving the display SVP profiles.
Mbgetphotocorrection: The --show-images option now uses the OpenCV imshow() function to briefly display the images being read and processed.
Mbphotomosaic: The --show-images option now uses the OpenCV imshow() function to briefly display the images being read and processed.
Mbphotogrammetry: The --show-images option now uses the OpenCV imshow() function to briefly display stereo pairs being read and processed, along with the disparity function calculated for the image pair.
Mbtrn and mbtrnav: Updates and bug fixes to replay-trn_server.
Mbphotomosaic, mbgetphotocorrection, mbphotogrammetry: Added image quality value to the parameters returned by function mb_imagelist_read(), and augmented the definition of an imagelist entry to optionally include a quality column that has values in the range 0.0 to 1.0. Augmented mbphotogrammetry to output an imagelist of all image pairs it processes, and to populate the new quality field with the fraction of all possible bathymetry values that are successfully calculated, a number 0.0 >= quality >= 1.0. Also augmented mbphotomosaic and mbgetphotocorrection with new options "--image-quality-threshold=value" that set a threshold quality value (by default 0.0) below which images or image pairs are ignored.
Format 89 (MBF_RESON7K3): Fixed calculation and use of azimuthal beam angles in RawDetection and SegmentedRawDetection records. This bug resulted in bathymetry recalculated by raytracing in mbprocess having the acrosstrack and alongtrack distances transposed. To fix the problems caused by this bug mbpreprocess and then mbprocess should be rerun.
Mblist: Fixed bug in which output in the CDL format was broken, which in turn broke output in netCDF.
Mbphotomosaic: Fixed generation of photomosaics in projected coordinate systems (e.g. UTM).
Mbphotomosaic, mbgetphotocorrection, mbphotogrammetry: Changed source file names from the *.cpp suffix to the *.cc suffix to be consistent with other C++ source files in MB-System.
Mbphotomosaic, mbgetphotocorrection, mbphotogrammetry: Added three programs used for processing seafloor photography collected during seafloor mapping surveys (i.e. from a survey platform with navigation and attitude data). These programs depend on the OpenCV version 4 package, and so add a large and complex dependency to MB-System. The source files are in the new directory src/photo. These programs are not currently built by default - the configure script must be run with a --enable-opencv option in order to enable building the photo tools. No documentation exists at this point for these tools. A key aspect is that the photography data are referenced through recursive imagelist structures (introduced in 5.7.6beta32) analagous to the datalists used for sonar and lidar data. The photomosaicing and photo correction tools will work with both single and stereo camera datasets. The photogrammetry tools works only with stereo pair data. These tools also depend on camera calibrations - the tool(s) for that are not yet included in MB-System.
Qt based tool prototypes: Improved the build system handling of Qt5 and OpenGL programs. The test libraries and programs enabled by running configure with the --enable-qt option are now located in four directories: src/qt-mbgui, src/qt-mbgrdviz-1, src/qt-mbgrdviz-2, and src/qt-mbgrdviz-3.
GMT integration: The GMT 6.1.0 release contains a change to the API that broke the build of the GMT module mbswath. It also contained changes to the module initialization code that caused mbswath, mbcontour, and mbgrdtiff to crash. The code has been modified with (more) proprocessor directives determined by the installed GMT version to build with GMT versions 5.2, 5.4, 6.0, 6.1, and the current master that will become 6.2. For GMT versions >= 6.0 the MB-System code no longer depends on either the gmt/src/gmt_mb.h header file or the obsolete gmt_begin_module() function.
Mblist: Fixed problem in which the centermost (nadir) beam was generally set to 0.
Format MBF_KEMKMALL (261): Brought reading and writing of *.kmall files up to revision G of the Kongsberg data format specification. Also fixed problems in the logic relating calculated depths as stored in the format to the depth values reported by the MB-System API functions, and with the beam angles calculated for use in recalculating bathymetry through raytracing. However, problems remain with extracting the installation bias parameters and time latencies that must be applied to the asynchronous ancillary data in order to properly calculate these values. At present, recalculation of bathymetry by raytracing still does not work correctly with this format - in some cases additional attitude biases and time latencies must be applied, and in others the result is simply not right.
Formats MBF_EM710RAW (58) and MBF_EM710MBA (59): Added allowed sonar models
- unexpectedly we are seeing *.all files from some current generation sonar installations, so we have to allow EM304 and EM712 sonar models with the obsolete format.
Mbnavadjust: Fixed problems in the inversion algorithm. The complexity of this algorithm results from the tendency of overdetermined least squares solutions to work best at providing uniform scale, zero mean solutions. Consequently we construct the solution in three steps. First we solve for the average offsets between continuous surveys, and make this the starting model for the second step. Then we solve for a coarse ("chunk") perturbation model in which each chunk is a dataset consisting of about five sections worth of continuous survey data. This is done through an iterative damped relaxation procedure, and the resulting perturbation model is added to the starting model for the third and final step. The final step is to solve for a perturbation satisfying all of the navigation ties at full resolution. The problem is set up as an overdetermined least squares matrix problem and is solved using LSQR. The regularization is just penalizing the first derivative of the perturbation at present - we are not currently penalizing the second derivative.
Mbnavadjust: Fixed crash on Linux when executing the Auto Set Vertical Offset function (didn't dimension arrays large enough).
Writing GMT grids: Fixed crash reported by Joaquim Luis on Windows when writing GMT grids - the problem was a function call that caused GDAL to allocate a string but then it allowing that pointer to be freed in GMT functions. The solution is to ensure that memory allocated with GMT or GDAL libraries is freed from those same libraries. I also had to alter the configure.ac to add a conditional HAVE_GDAL that mimics one used in the GMT build system so that GDAL related headers are included by gmt_dev.h. The relevant code is only used if GDAL is available. If GMT version is >= 6.1.1 then the function gmt_strdup_noquote() is called to allocate a PROJ4 string stored in the grid header; otherwise strdup() is called. Building on Windows will now require GMT 6.1.1 or later.
Mblevitus: Fixed errors that had been inadvertently created as part of commit #448. Thanks to Joaquim Luis for finding and fixing this.
Mbgrd2obj: Had to add #ifdef's on GMT version because the number of parameters passed to gmt_init_module() changes between GMT 5.3 through 6.0 and 6.1.
Mbnavadjust: Changed calculation of overlap for a crossing so that the value is not small in the case that a small section (by area) is entirely inside the bounds of a much larger section. This case happens when adjusting navigation from surveys at at two very different scales (e.g. AUV survey with ship hull mounted survey, or ROV survey with AUV survey).
Mbnavadjustmerge: Added function to merge two adjacent surveys into one with an internal discontinuity.
Mbgrd2obj: New GMT module that converts GMT topographic grids to OBJ format 3D model files that can be imported to visualization software or printed on 3D printers.
Mbset and mbmakeplatform: Joaquim Luis reports that these programs will not
compile on Windows Visual Studio "because of the too many nested if-else problem."
I have attempted to fix this problem two ways. In mbset.cc I now use a switch
statement instead of many if {} else if {} statements to find the meanings of
all the input options. In mbmakeplatform I now have many separate if {} statements
testing the input arguments, but each first also tests a bool that indicates
if a prior if {} statement matched the argument. We will find out from Joaquim
if either, neither, or both methods work.
Tests: The Travis-CI tests of new checkins to the repository are failing for one of the many builds - the Ubuntu Xenial (16.04) build. The failures are occuring on all programs that call GMT grid io, but the existing logs do not tell me why. I have added print statements to the tests in mbsystem/test/utilities/mbbackangle_test.py and mbsystem/test/utilities/mbgrid_test.py. I don't know how to get that output into the log that Travis-CI makes available.
TRN tools: Kent Headley have added a config file mechanism to mbtrnpp, and fixed a number of other issues in a series of commits. These changes are in src/mbtrn, src/mbtrnav, and src/mbtrnutils.
Mbnavadjust: Changed handling of fixed surveys when updating the project grid or applying the solution. Previously the files of fixed surveys were ignored, even if they previously had been adjusted before being set to fixed. Now, the unchanged *.na0 file will be output and the navadjust state will be updated so that mbprocess will apply the unchanged navigation.
Mbcopy: A compile failure occurs for src/utilities/mbcopy.cc on Windows as reported by Joaquim Luis. The issue is that under Visual Studio C++ some external symbols referenced in the mbsys_simrad.h header file are not available to the C++ code in mbcopy.cc. This is not true for clang or gcc. The symbols in question are double arrays holding the beam angles for different operation modes of the Simrad multibeams supported by this i/o module. The solution attempted here is to move the array definitions to mbsys_simrad.c and to provide a non-standard function to access pointers to those arrays. By non-standard I mean this does not fit with the normal set of MBIO API functions, and does not exist for i/o modules generally. The function mbsys_simrad_beamangles() has been added to mbsys_simrad.c and the prototype in mbsys_simrad.h is wrapped with extern "C" so it can be called from mbcopy.cc.
Mbcopy: The current processing model for old Simrad multibeam data in format 51 is to first use mbcopy to translate it the extended second generation Kongsberg format 57, and then process it as one would more modern data. It was discovered that this translation was failing to properly copy navigation records. This was fixed.
Format MBF_EMOLDRAW (51): Because the compile error referenced above involved 1990's era Simrad multibeam data in format 51, it was necessary to test processing of such data. This revealed that recent changes to program logic from using MB_YES/MB_NO/MB_MAYBE values to bool variables (true/false) had broken the basic data record reading logic for the MBF_EMOLDRAW i/o module. This has been fixed.
Build system for Qt5 based tools: Improved the build system handling of Qt5 programs. The test program enabled by running configure with the --enable-qt option has been renamed mbgrdvizqt, but still resides in src/qttest. The approach now is to do the following: (1) The configure script creates the Qt project file src/qttest/mbgrdvizqt.pro and then modifies the values of variables specifying the required MB-System and GMT libraries and headers. (2) The configure script runs qmake in src/qttest to generate a Makefile named src/qttest/Makefile.qmake (3) The configure script generates a Makefile in src/qttest that in turn will run make itself using Makefile.qmake for targets all, install, uninstall, and clean. This approach now works on a Mac. It's time to test on Linux.
Mbgrid: Fixed failure of the two gridding algorithm using beam footprints in which the footprint size blows up at low grazing angles. The fix is to not use soundings for which the grazing angle is less than five degrees.
Mbgrid and mbmosaic: Replaced int values with bool values where appropriate.
Build system: Added option to enable building tools based on Qt5 to the autotools build system. If the configure script is given the --enable-qt option, it checks if Qt5 has been installed, and if so, determines the compiler and linker flags required to build tools using Qt5. At present, the only Qt5 based code is in the directory src/qttest, and this code does not successfully compile and run. Therefore it is not recommended to run configure with the --enable-qt option. However, the build system is now ready to support Qt5 based tools as they are developed.
Mbgrdtiff: Paul Wessel contributed a new version of mbgrdtiff that constructs the image by a direct call to the grdimage module. This version will only build and work with GMT 6.1 and later. The original code included code building the image, duplicating functionality in grdimage. The new version is now mbsystem/src/gmt/mbgrdtiff.c and the original version mbsystem/src/gmt/mbgrdtifforg.c. The build system has been augmented to check the GMT version and build mbgrdtiff from the original when that is <6.1 and the new file when that is >= 6.1.
General (mb_define.h, mb_format.c, mb_format.h): Added definition of format=-2 as recursive imagelists. Analagous to datalists, this construct supports timestamped lists of single or stereo photographs. Like datalists, the imagelists can be recursive. This is a precursor to bringing into MB-System tools for processing seafloor photography collected during surveys, particularly for photomosaicing.
Mbsslayout and future photomosaicing: The parameters use to define convergence when intersecting a vector with a topography model in mb_intersectgrid.c have been improved, yielding more accurate intersection locations for backscatter samples or source image pixels when laying out sidescan or photography data.
Mbnavedit: Changed minimum range of draft (sensordepth) plot to be +/- 0.05 meters.
Mbeditviz: Fixed problem with preserving changes to edits that are recorded in *.esf files.
Mbtrnpp: merged recent changes by Kent Headley to the source files in src/mbtrn, src/mbtrnav, and src/mbtrnutils.
Mbset: changed output to clearly indicate when parameter files are created (or not) or modified (or not). This involved adding a function mb_pr_compare() to mb_process.c that can be used in mbset.c to check whether the modified process parameter structure actually differs from the original structure.
Formats MBF_OICGEODA (141) and MBF_OICMBARI (142): Fixed support for old OIC format DSL120 interferometric sonar data. Processing of these data now works with mbpreprocess and mbprocess again. The sidescan data were compromised by treating unsigned amplitude values as signed, and treating null samples as valid.
Testing: Reinstated OSX test build as part of the Travis CI runs triggered by commits to the Github repository.
Code style: Kurt Schwehr is systematically altering the code to conform to best practices and adding build tests. The improvements included in this beta release include work on mbview and programs using mbview, the auxilliary library in src/mbaux, particularly including mb_cheb.c, mb_intersectgrid.c, and mb_zgrid.c, and on mbedit.
Code style: Tom O'Reilly and David Caress added README.md files in each of the subdirectories under src/.
Mbvoxelclean: Fixed memory leak. Added --acrosstrack-minimum and --acrosstrack-maximum filters. Cleaned up shell informational output.
Mbeditviz: The program now keeps only a limited number of esf (edit save file) files open for writing rather than opening esf files for all loaded swath files. The program was failing when the total number of open files exceeded the operating system maximum (1024 on MacOs and CentOs). The default maximum number of open esf files is now 25.
Mbeditviz: Colorized flagged soundings the same as for mbedit (filtered == blue, manually edited == red).
Format 233 (MBF_WISSLR): Corrected use of ev_offset and az_offset (across and alongtrack distance offsets at the optical head) in preprocessing. Also added a capability to apply Snell's law type tweak to the lidar pulse angles throuhg mbpreprocess (--kluge-beam-tweak=value).
Code style: Kurt Schwehr is systematically altering the code to conform to best practices and adding build tests. The improvements included in this beta release include work on mbview and programs using mbview.
Code style: Github user abnj contributed some code cleanup by removing $Id tags used when the code was in a Subversion repository.
Mbprocess, mbfilter, mbvoxelclean, mbclean, mbinfo, mbdatalist: Fixed bugs in handling of status values returned by functions that caused early program termination.
Code style: Kurt Schwehr is systematically altering the code to conform to best practices and adding build tests. The improvements included in this beta release include work on mbview and programs using mbview.
Mbnavadjust: Fixed bugs in mbnavadjust creating by modifying the handling of function status returns.
Mbcopy: Fixed bug in parsing the end time values specified with the -E option.
Code style: Kurt Schwehr is systematically altering the code to conform to best practices and adding build tests. The improvements included in this beta release include work on mbview and programs using mbview: mbgrdviz, mbeditviz, mbnavadjust.
Format 89 (MBF_RESON7K3): Added support for data record type 7058. Also added ability to handle s7k data files missing the file header record.
Format 233 (MBF_WISSLR): Embedded fix for timing glitch in early WiSSL data.
Mbotps: Discovered that the path length for the temporary files written by mbotps must be less than 100 characters or the OTPS program predict_tide will fail. Altered the filenames used for these temporary files to be as short as possible.
mbvoxelclean: Fixed datalist reading logic.
mbprocess: Fixed bug introduced in 5.7.6beta27 that caused mbprocess to exit in the middle of processing files referenced by a datalist.
Code style: Kurt Schwehr is systematically altering the code to conform to best practices and adding build tests. The improvements included in this beta release include work on mbedit, mbnavedit, and mbnavadjust.
mbpreprocess: Corrected prior fix to error in calculating lever arms, which didn't include all of the sign changes needed in mb_platform.c.
mbgrid: Fixed flaw in min or max weighted mean algorithm that produced array overflows in mbgrid.
Format 181 (MBF_SAMESURF): Fixed compiler warnings, including warnings from a mismatch of 32 bit and 64 bit integer pointers due to the early 1990's vintage of this contributed library.
mbpreprocess: Fixed error in calculating lever arms that resulted in incorrect static offsets to bathymetry calculated at the preprocess stage using platform models. Fixes are in src/mbio/mb_platform.c.
mbotps: The tidal correction program has been recast to use the current global atlas tidal model from the Oregon State University Tide Group. This model is called tpxo9_atlas - the model files must be obtained from OSU now as they are no longer available for anonymous download. When the MB-System documentation is updated to include the steps required to obtain and install the tidal model, we will output a formal 5.7.6.
Code style: Kurt Schwehr is systematically altering the code to conform to best practices and adding build tests. The improvements included in this beta release include cleaning up the SURF format library, work on mbedit, mbnavadjust, and the GMT modules mbswath, mbcontour, and mbgrdtiff.
Info files: The top level information files README, ChangeLog, and GPL have been removed. The Markdown format versions (README.md, ChangeLog.md, GPL.md) remain and have been updated.
Mbeditviz: Fixed a bug recently introduced (inadvertently) that caused a crash when bringing up the sounding 3D cloud.
Mbm_grd2arc: Fixed failure with GMT 6. Basically, there is a GMT module grdconvert that accomplishes exactly the same task, so this macro is unnecessary. It has been recast to simply call gmt grdconvert. It will be listed as deprecated, but left in the distribution to maintain the viability of old processing scripts.
Code style: Kurt Schwehr is systematically altering the code to conform to best practices and adding build tests. The tests are performed by running make check and are executed automatically by the Travis CI service integrated with Github whenever commits are made to the Github repository. The current changes mostly consist of cleaning up the code of the graphical utilities such as mbedit, mbnavedit, mbnavadjust.
Build system: The configure.ac file now uses the AX_CXX_COMPILE_STDCXX(11) macro to require that the code conform to the C++11 standard. Some preprocessor directives have been added to src/utilities/mbprocess.cc to handle the case of building with gcc 4.8.1 through 4.8.5, which has errors in implementing structure constructors consistent with this standard. Also, instances of isnan() calls throughout the codebase have been changed to std::isnan(), and in these cases the "#include <math.h>" has been replaced by "#include <cmath". The order of libraries in src/mbtrn/Makefile.am has been changed so that libmframe.la is installed before libr7kr.la (which depends on libmframe.la). With respect to libproj, configure.ac now checks for Proj 4 vs Proj 6 using proj_normalize_for_visualization() for the Proj 6 API and pj_init_plus() for the Proj 4 api. Since proj_normalize_for_visualization() did not get added to the Proj 6 API until release 6.1.0, this means that the deprecated Proj 4 api will continue to be used when building with Proj releases 5.0 through 6.0. In practice, the build system sets preprocessor values that determine at compile time which Proj API is used by the functions in src/mbio/mb_proj.c.
Code style: Kurt Schwehr is systematically altering the code to conform to best practices and adding build tests. The tests are performed by running make check and are executed automatically by the Travis CI service integrated with Github whenever commits are made to the Github repository.
MBprocess, mbpreprocess, mb_make_info(): Altered mbprocess and mbpreprocess so that both run about half as slow (twice as fast) as before. This optimization is accomplished by having mbprocess and mbpreprocess generate fbt and fnv files directly rather than by system() calls to mbcopy and mblist, and by having the system() call to mbinfo include the overall area bounds so that mbinfo only reads the output file once while generating inf files (instead of reading the data twice).
MBnavadjust: Added GUI elements related to defining a reference bathymetry model. In the future, it will be possible to tie swath files to a reference bathymetry imported from a grid file.
MBbackangle: Fixed error in datalist read logic that was preventing it reading more than the first file (problem created by changing the handling of status and error values from MBIO calls).
MBextractsegy: Fixed error in the milliseconds of traceheader timestamps.
MBlist: Improved calculation and handling of swath bounds values.
MBinfo: Augmented the -M data mask option to allow pre-definition of the file's area bounds. Previously, the data mask has been requested using -Mmask_nx/mask_ny where mask_nx/mask_ny are the dimensions of the mask. In this case, the file is read twice - first to get the area bounds of all data while getting the other data statistics output by mbinfo, and second to populate the data mask defined by the area bounds and the dimensions mask_nx and mask_ny. Now, if the the option is given by -Mmask_nx/mask_ny/lonmin/lonmax/latmin/latmax, then the last four values define the area bounds and the data need only be read once. Mbprocess now calls mbinfo in this way, allowing a speedup of the mbprocess execution.
MBgrid: Added data min max values to the per file shell output when verbose > 0
MBsvpselect: This program depends on geodesic calculations that are now part of the Proj software package (from version 6 onwards). Previously the src/utilities directory had included the files geodetic.h and geodetic.c to provide this capability; those are now not included. Consequently, if MB-System is built with Proj versions 4 or 5, then mbsvpselect will not be built.
Code style: Kurt Schwehr is systematically altering the code to conform to best practices and adding build tests. The tests are performed by running make check and are executed automatically by the Travis CI service integrated with Github whenever commits are made to the Github repository.
src/utilities: All programs in src/utilities have been migrated to C++.
Deprecated programs: Several programs that are no longer part of the current data processing approach have been declared deprecated and have been moved from src/utilities to a new directory src/deprecated. These programs are:
- mb7k2jstar
- mb7k2ss
- mb7kpreprocess
- mbauvnavusbl
- mbhsdump
- mbhysweeppreprocess
- mbinsreprocess
- mbkongsbergpreprocess
- mbneptune2esf
- mbrollbias
- mbrphsbias
- mbstripnan
- mbswplspreprocess
The deprecated programs have also been converted to C++ and are still built and installed as part of MB-System. We tentatively plan to remove these programs entirely from MB-System distributions at the time of the 6.0 release.
GMT modules (mbcontour, mbswath, mbgrdtiff): modified the #ifdefs to allow building with GMT 6.1 and later.
MBnavadjustmerge: augmented --set-tie option to allow changing the z-offset value of an existing tie.
MBprocess: Change behavior when reading grid files for backscatter correction fails - the functions in mb_readwritegrd.c used to wait 1 millisecond before trying to read again; now the code waits for 25 milliseconds.
Code stye: Kurt Schwehr is systematically altering the code to conform to best practices
Mbprocess: Fix to handle temporary failures to read GMT grd files. The GMT grid reading code will now return with an error rather than causing the program to exit. This allows the code to keep trying to read the grid file until it succeeds.
Code stye: Kurt Schwehr is systematically altering the code to conform to best practices regarding header inclusion and reduced variable scope, particularly for loop indices. Current changes include replacing MB_YES/MB_NO with boolean true and false, and changing the type of the associated variables from int to bool.
mbtrnpp: Changes by Kent Headley to mbtrnpp in src/mbtrnutils and supporting source directories src/mbtrn and src/mbtrnav.
Mbprocess: Attempting to fix processing of format 71 files within an mbnavadjust project.
Everything: Now fully compatible with PROJ 6.X. The configure script will detect the presence or absence of PROJ 6 or later - if the PROJ installation predates PROJ 6 then the old header files and API are used. PROJ 6 and later include a comprehensive database of coordinate reference systems (e.g. projected coordinate systems and/or datums), making the projected coordinate system list kept in the file src/share/Projections.dat unnecessary. For now this file will continue to be part of the MB-System distribution to support installation with obsolete versions of PROJ.
mbtrnpp: Removed some unnecessary test data and code from the src/mbtrnav/gctp/ directory.
mbtrnpp: Fixed a number for formatting and type issues hampering building the TRN code on MacOs.
MBeditviz: Added option to display 3D soundings colored according to the map's coloring (including selected colortabel and any histogram equalization).
MBeditviz: Added GUI elements to support multiple modes of gridding.
Mbm_route2mission: Modified to output waypoint_bottom behaviors with the current suite of options specified.
Format 72 (MBF_MBARIMB1): Fixed handling of heading (degrees not radians).
Code stye: Kurt Schwehr is systematically altering the code to conform to best practices regarding header inclusion and reduced variable scope, particularly for loop indices. Current changes include replacing MB_YES/MB_NO with boolean true and false, and changing the type of the associated variables from int to bool.
mbtrnpp: Many changes by Kent Headley to this in src/mbtrnutils and supporting source directories src/mbtrn and src/mbtrnav.
MBnavadjust: Fixed bug in calculating the range of contour values and the size of the memory allocation for contours.
Code stye: Kurt Schwehr is systematically altering the code to conform to best practices regarding header inclusion and reduced variable scope, particularly for loop indices. Current changes include replacing MB_YES/MB_NO with boolean true and false, and changing the type of the associated variables from int to bool.
Format 261 (MBF_KEMKMALL): Fixed preprocessing of Kongsberg multibeam data in the kmall format, particularly with regard to merging WHOI-NDSF processed navigation for surveys by AUV Sentry and ROV Jason.
Format 72 (MBF_MBARIMB1): Added support for a format used to store filtered and decimated multibeam bathymetry as generated by mbtrnpp for use by the terrain relative navigation module.
Mbpreprocess: Added an option named --kluge-auv-sentry-sensordepth that causes mbpreprocess to replace the sensor depth value with the antenna height recorded in the position record. This allows processing of AUV Sentry Kongsberg EM2020 using the embedded navigation, attitude, and sensor depth. At this time the Kongsberg EM2040 is not accepting the input depth datagrams, and so the sensor depth field is populated with incorrect values. Once a post-processed navigation, attitude, and sensor depth model is available for merging, this kluge option is no longer needed.
Terrain Aided Navigation (TRN) tools: Working towards supporting realtime UDP based reading of Kongsberg kmall format data into program mbtrnpp. Removed test data from the gctp projection package embedded within the TRN server source tree.
mbtrnpp: Augmented this tool to acquire realtime Kongsberg multibeam data over a UDP port. Note that configure must be invoked with the --enable-mbtrn and --enable-mbtnav options for the terrain relative navigation tools to be built. We do encourage general users to avoid building with these options - the TRN tools are experimental, changing rapidly, and for now specific to MBARI AUVs.
Code stye: Kurt Schwehr is systematically altering the code to conform to best practices regarding header inclusion and reduced variable scope, particularly for loop indices. Current changes include replacing MB_YES/MB_NO with boolean true and false, and changing the type of the associated variables from int to bool.
MBnavadjustmerge: Added options --unset-short-section-ties=min_length and --skip-short-section-crossings=min_length that allow the deletion or prevention of ties made using short sections of data. This increases the reliability of the autopicking of ties. The track length threshold is specified with the command.
MBnavadjust: Restrict autopicking of ties incorporating short sections of data. The track length threshold is 1/4 of the target segment track length specified in the options dialog.
Format 88 (MBF_RESON7KR) and Format 89 (MBF_RESON7K3): Corrected handling of reverse-mounted receive and/or transmit arrays.
MBpreprocess: Fixed handling of --filter-apply-nav option.
MBclean: Added flagging/unflagging by beam angle as part of the -Y option -Yangle_left/angle_right/3 to flag outside angle_left to angle_right -Yangle_left/angle_right/4 to unflag outside angle_left to angle_right
Terrain Aided Navigation (TRN) tools: The TRN related code has been refactored and reorganized by Kent Headley. There are now three related directories under src: src/mbtrn src/mbtrnav src/mbtrnutils. The former program mbtrnpreprocess is now mbtrnpp. The source for mbtrnpp is now in src/mbtrnutils rather than src/utilities.
Code stye: Kurt Schwehr is systematically altering the code to conform to best practices regarding header inclusion and reduced variable scope, particularly for loop indices.
Mbset: Fix to mbset so that the mbp_navadj_mode is set to MBP_NAVADJ_OFF instead of MBP_NAV_OFF and MBP_NAVADJ_LLZ instead of MBP_NAV_ON.
Mbminirovnav: Fix so that variations in the NAV* and CTD* files are handled properly.
Mbnavadjustmerge: Fixed handling of --unset-skipped-crossings-by-block=survey1/survey2 commands.
Code stye: Kurt Schwehr is systematically altering the code to conform to best practices regarding header inclusion and reduced variable scope, particularly for loop indices.
Mbnavadjust: Changed the contouring displayed during analysis of crossings to be based on a triangular mesh representation of the bathymetry data for each section. The Delauney set of triangles used for each section is saved to a file in the project directory. These can be made the first time each section is displayed by mbnavadjust, or they can be made offline using the program mbnavadjustmerge.
Mbnavadjustmerge: Added options to pre-generate the triangular mesh files for each section in an mbnavadjust project (--triangulate, --triangulate-all, --triangulate-section=file:section, and --triangulate-scale=scale).
Mbtrn library: Updated to current code written by Kent Headley.
Code stye: Kurt Schwehr is systematically altering the code to conform to best practices regarding header inclusion and reduced variable scope, particularly for loop indices.
MBIO library beam flagging and detect types: The handling of multi-pick soundings has been modified. This refers to sensors that can report more than one sounding per beam, including both multibeam sonars and lidars. At present the relevant data format are MBF_RESON7K3 (89), MBF_3DWISSLR (232), and MBF_3DWISSLP (233). There are two major changes. First, the detects array returned by mb_detects() now packs two parameters into the 32-bit values: the detect type uses bits 0-7 and the detect priority uses bits 8-11. The priority value will be 0 except when a sensor is reporting multiple sounding per beam (sonar) or pulse (lidar); in that case the primary (best) sounding will have a priority of 0, and other secondary soundings (less than best) will have priorities > 0. If the sensor ranks the soundings then the priorities will reflect the ranking order with lower = better. Second, all secondary soundings will initially be assigned beamflags with a new value indicating that status (MB_FLAG_FLAG + MB_FLAG_SECONDARY). At this time, the bathymetry editing programs mbedit, mbeditviz, and mbclean will treat secondary soundings as not-to-be-used, which means those soundings will not be displayed or available for unflagging. Eventually these editors will be enabled to optionally display and unflag secondary soundings.
Mblist: The output of beam flag values now includes secondary soundings. The possible output characters representing the beam flags are now: '-'=null, 'G'=good, 'M'=manual, 'F'=filter, 'S'=sonar, 'N'=secondary (multi-pick), and 'I'=interpolated.
Mbminirovnav: Rewritten to handle the actual variability of MBARI MiniROV raw navigation, attitude, depth, and DVL data logs.
Formats MBF_3DWISSLR (232) and MBF_3DWISSLP (233): Augmented to handle a new version of the 3D at Depth RAA swath file format generated by the WiSSL (wide swath subsea lidar).
Mbnavadjust: The navigation adjustment optimization algorithm has been modified. The problem is to find a perturbation (adjustment) to the original navigation that matches features in overlapping and crossing swath bathymetry data. The first stage of the inversion is to solve for the average position offsets between different surveys, and then remove that signal out of the navigation offset observations. The second stage of the inversion involves an iterative relaxation towards a coarse navigation adjustment model. The third stage is to obtain a full resolution perturbation model by solving a large, sparse, overdetermined least squares problem that satisfies the remaining navigation offset signal. The algorithm change is that the coarse stage 2 solution is linearly interpolated over the gaps between directly constrained navigation points before proceeding to the third stage. This reduces the tendency of the overall solution to trend towards zero adjustment along unconstrained sections of survey lines.
Mbtrn library: Updated to current code written by Kent Headley.
Code stye: Kurt Schwehr is systematically altering the code to conform to best practices regarding header inclusion and reduced variable scope, particularly for loop indices.
Mbm_route2mission: AUV spiral descent option now includes a behavior to disable DVL aiding of the INS during the descent.
Formats MBF_3DWISSLR (232) and MBF_3DWISSLP (233): these i/o modules have been updated to handle both a new version (1.3) of the 3D at Depth Wide Swath Lidar (WiSSL) *.raa format data.
Mbtrn library: Updated to current code written by Kent Headley.
Code stye: Kurt Schwehr is systematically altering the code to conform to best practices regarding header inclusion and reduced variable scope, particularly for loop indices.
Integration with PROJ: Reverted to use of deprecated PROJ4 API due to problems with use of projections by the mbview library. This will get fixed, but it's more complicated than first thought.
Mbtrn library: Updated to current code written by Kent Headley.
Code stye: Kurt Schwehr is systematically altering the code to conform to best practices regarding header inclusion and reduced variable scope, particularly for loop indices.
Format MBF_GSFGENMB (format 121, Generic Sensor Format, GSF): The version of libgsf used to read and write Generic Sensor Format (GSF) files has been updated to version 3.0.9. The libgsf library code is released by Leidos under a LGPL2.1 license, and is included directly into the MB-System source code with minor changes. For 3.0.9 the only changes required are to avoid redefinition of several key system functions (e.g. fseek); these redefinitions are avoided using a preprocessor command that is only activated in the MB-System build system. The command mbformat -F121 now outputs the version of the GSF library embedded in MB-System as a part of the format description.
Integration with PROJ: The API for the PROJ coordinate transformation library libproj has changed with the release of version 6. The build system now tests which version of PROJ is installed and builds MB-System using the available API.g
Mbgrid: Mbgrid had an undocumented ability to set the interpolation tension using a third argument to the -C option. This has been removed. The tension value is set with the -T option, consistent with the documentation.
Mbgrid and mbmosaic: The functions used by mbgrid and mbmosaic to integrate with GMT's i/o capabilities to write the output grids have been augmented to embed the geographic coordinates in the fashion supported by GDAL and many software packages that utilize it.
Mbcontour, mbswath, mbgrdtiff: The preprocessor commands in the source files for the GMT modules in MB-System have been updated to handle the existence of versions 5.0 through 6.0+.
Code stye: Kurt Schwehr is systematically altering the code to conform to best practices regarding header inclusion and reduced variable scope, particularly for loop indices.
Formats MBF_3DWISSLR (232) and MBF_3DWISSLP (233): these i/o modules have been updated to handle both the original (v1.1) and updated (v1.2) 3D at Depth Wide Swath Lidar (WiSSL) *.raa format data.
Code stye: Kurt Schwehr is systematically altering the code to conform to best practices regarding header inclusion and reduced variable scope, particularly for loop indices.
MBnavadjust: Fixed bug that resulted in Naverr window contours not being displayed when the diference between the minimum and maximum depth of a section is less than one meter.
Formats MBF_3DWISSLR (232) and MBF_3DWISSLP (233): working towards the code successfully reading and writing the 3D at Depth WiSSL *.raa format version 1.2.
Version: Set for release 5.7.5
Code stye: Kurt Schwehr is systematically altering the code to conform to best practices regarding header inclusion and reduced variable scope, particularly for loop indices.
mb_platform.c: Fixed problem introduced in code style changes
mbpreprocess: Fixed problem introduced in code style changes
mbfilter: update man page
Code stye: Kurt Schwehr is systematically altering the code to conform to best practices regarding header inclusion and reduced variable scope, particularly for loop indices.
Format 89 (MBF_RESON7K3): Fixed bug in support of the Teledyne 7k version 3 format that caused mbpreprocess to crash.
Mbnavadjustmerge: Fixed bug due to failure to initialize new project structures.
Code stye: Kurt Schwehr is systematically altering the code to conform to best practices regarding header inclusion and reduced variable scope, particularly for loop indices.
Build system: Set Autotools build system to force use of standard C (i.e. C99).
Format 89 (MBF_RESON7K3): The Teledyne 7k version 3 format is now supported as format 89. This format is used for all multibeam sonars built by Teledyne, including Reson, Blueview, and Hydrosweep. By default, MB-System now treats files with the *.s7k suffix as format 89 rather than 88. However, old Reson data, specifically Reson data that does not store the bathymetry soundings in 7028 RawDetection records, should still be processed using format 88.
Format 261 (MBF_KEMKMALL): Support for Kongsberg multibeam data in the kmall format is functional excepting for the recalculation of bathymetry by raytracing.
Mbprocess: Fixed problem with backscatter correction of sidescan and amplitude data
General: Incorporates a large number of changes by Kurt Schwehr that nudge this codebase towards some level of compliance with software development best practices.
Unit testing: Incorporates code contributed by Kurt Schwehr in the directories mbsystem/test, mbsystem/third-party, and mbsystem/travis that will achieve automated build testing and unit testing.
Build system: Added enable-test option to configure.ac so that the default configure command does not try to compile the unit test code contributed by Kurt.
Mbvelocitytool: Fixed memory leak.
Format 89 (MBF_RESON7K3): Progress towards support of Teledyne 7k version 3 format. The i/o module builds but is not fully functional yet. Most records parse correctly but the bathymetry calculation is incomplete.
Format 261 (MBF_KEMKMALL): We are close to complete with support for the new Kongsberg kmall format. Testing and debugging continues.
Windows compatibility: A number of changes from Joaquim Luis that allow building under Windows.
Reson 7k version 3 support: Mods to mbsys_reson7k3.c and mbsys_reson7k3.h from Christian Ferreira working towards new i/o module supporting version of the 7k format from Teledyne now used for Teledyne Reson abnd Teledyne Atlas multibeams.
Build system: Modified configure.ac to fix a problem building with the new Proj 6.0.0. MB-System uses a longstanding Proj API that is deprecated in Proj 6. The relevant header file is proj_api.h, which can only be used if compiled with the preprocessor macro ACCEPT_USE_OF_DEPRECATED_PROJ_API_H set. This compiler flag has been added to the autoconf test for usability of this header file.
Mbm_grdplot, mbm_grd3dplot, mbm_grdtiff, mbm_histplot, mbm_plot, mbm_xyplot: Set these plot macros to use "open" on Macs and on Linux to use "gio open" if available, "xdg-open" if "gio" is not available. Also got rid of another instance of orphan file creation by the plotting shellscripts (e.g. gmt.conf$$).
Mbm_grid: Fixed problem in which execution of mbm_grid left behind an orphaned datalist file. Also changed this macro to output a bash shellscript rather than a csh shellscript.
Mbm_bpr: Added support for various variants of Sonardyne AMT pressure data.
Mbm_grdtiff: Changed this macro to output a bash shellscript rather than a csh shellscript.
Mbm_route2mission: Fixed handling of the user specified time to first waypoint in the output MBARI AUV mission script.
Mbextractsegy: Recast output section plot generation script to call mbm_grdplot using the arguments -MIE300 -MITg that cause that macro to render the output postscript files into 300 dpi png image files.
Mbm_grdplot, mbm_grd3dplot, mbm_grdtiff, mbm_histplot, mbm_plot, mbm_xyplot: These plot macros now embed the user, computer, and time of creation associated with the output plot generation shellscript.
Mbcopy: Fixed problem with fbt file generation by mbcopy that was introduced with 5.7.5beta2
Format 261 (MBF_KEMKMALL): There is progress towards support for the new Kongsberg kmall format. Only EM2040 data supplied by Kongsberg is being used for testing with mbinfo, mbcopy, and mbprocess, so far. The memory management faults are fixed, but it isn't all working yet.
Mbcopy: Changed logic so that in a full copy all data records are passed on to the output even if they generate nonfatal errors (e.g. out of time or location bounds).
Mbm_bpr: Augmented to work with Sonardyne AMT pressure data using PRS data records in addition to PR2 records.
Mbotps: Fixed some issues with applying a tide station correction to time models.
Format 261 (MBF_KEMKMALL): Added support for new Kongsberg kmall format with MBIO id 261 and name MBF_KEMKMALL. At this point the support has memory management problems resulting in sporadic and inconsistent crashing.
Plotting macros (mbm_grdplot, mbm_grd3dplot, mbm_plot, mbm_xyplot, mbm_histplot): Fixed problem with plotting macro mbm_plot that caused failure of the plotting shellscript.
Plotting macros (mbm_grdplot, mbm_grd3dplot, mbm_plot, mbm_xyplot, mbm_histplot): This version changes how automatically displaying the Postscript plot is handled. Previously these plotting macros written in perl hard coded the user defined Postscript viewer program into the plot generation csh shellscripts they generate, where the Postscript viewer was defined by mbdefaults or by an environment variable. Now the plot macros write plot generation shellscripts using bash rather than csh, and code is embedded that executes a Postscript viewer defined at run time. This Postscript viewer can still be defined by the user's mbdefaults or environment variables, but otherwise will be the default application for viewing Postscript files on that computer, determined by the programs xdg-open (Linux, OpenBSD), open (Mac), or cygstart (Cygwin). Thus, the Postscript viewer program is determined at runtime by the plot generation shellscript rather than at the time the shellscript is generated.
Formats 58 (MBF_EM710RAW) and 59 (MBF_EM710MBA): Fixed bug reported by Steve Roberts in which some beams that have NaN values for depth in the original *.all files are treated as null during the first read, but are reset to valid but NaN during preprocessing. This fix works with data already processed through prior versions of MB-System as well as data newly processed from *.all files.
All files: Updated copyright to 2019.
Mbdumpesf: Fixed the application of the ignore options, applying fixes provided by Povl Abrahamsen of the British Antarctic Survey in October 2017 (!)
Mbclean: Fixed problem with heading-change-rate based flagging.
Mbm_grdplot: supported generating plots of images (ie. Geotiffs) in addition to grids. Added two plot modes: -G6 will plot the image using the embedded georeferencing, and -G7 will plot the image using the bounds specified with the -R option as the bounds of the image.
Format 56/57 (MBF_EM300RAW MBF_EM300MBA): Fixed crashing with some EM122 data by disabling attempted parsing of "extraparameters" datagrams, which appear to not conform to the format specification.
Mbdefaults, Mbm_* plotting macros: Changed the definition of the programs used to view Postscript plots generated through the mbm_* plotting macros and for images (e.g. geotiffs generated using mbgrdtiff). Previously, the programs used by MB-System to view postscript files and images were explicitly defined using mbdefaults. Defining the viewing programs is still possible with mbdefaults, but the default is now to use the operating system's command line program that automatically opens a specified file using the user's default application for that kind of file. On Linux systems, this program is "xdg-open". On MacOs, this program is "open". On Cygwin systems, this program is "cygstart".
Initiated use of version tagging in Git.
- Version 5.6.20181218 December 18, 2018
- Version 5.6.20181217 December 17, 2018
- Version 5.6.20181214 December 14, 2018
- Version 5.6.20181129 November 29, 2018
- Version 5.6.20181016 October 16, 2018
- Version 5.6.002 September 14, 2018
- Version 5.6.002 September 11, 2018
Generated release package using github
mbm_vrefcheck: Removed, never completed, never worked.
mbm_dslnavfix: Removed, obsolete.
Memory management: Fixed memory leak associated with allocation and deallocation of edit save file (*.esf) data.
Format 121 (MBF_GSFGENMB): Changed GSFlib version to 3.08. MB-System also now builds and installs the program dump_gsf. Fixed several array overruns in the GSFlib source code distributed by Leidos.
MBgrid: Added two new gridding algorithms, minimum weighted mean and maximum weighted mean. These are both implementations of Gaussian weighted mean in which only valid soundings that are close to the minimum (or maximum) value in each grid cell are used. A threshold value in meters defines what close means; only soundings no further from the minimum (or maximum) than the threshold are used. These algorithms are useful when bathymetry data include areas that are not truly representable with a 2D grid because of vertical walls or multiple values (e.g. overhangs). These algorithms allow one to choose to follow the shallowest or deepest surfaces in the gridded model. These algorithms were specifically added to handle subsea lidar data that maps animals as well as the seafloor.
MBgrdtiff, mbm_grdtiff: Added -Nnudge_x/nudge_y option to apply a positional offset in meters relative to the input grid or mosaic.
MBgrdviz, mbeditviz: Changed mechanism by which files selected from navigation in mbgrdviz are opened into mbeditviz. Previously the selection of too many files in mbgrdviz would cause a crash when the pulldown menu item to open those into mbeditviz was selected (too many == something like >10). Now an arbitrarily large number of files can be selected because a temporary datalist is written by mbgrdviz and then opened into mbeditbiz.
MBpreprocess: Added options --head1-offsets=x/y/z/heading/roll/pitch and heading2-offsets=x/y/z/heading/roll/pitch which allow one to set the positional and angular offsets between the separate heads on a dual head sonar or lidar. These offset values are used in calculating bathymetry from raw travel times and angles. The values specified with the new options generally override values embedded in either the i/o module source code or the input data files. The initial usage is for lidar bathymetry in the MBF_3DWISSLR and MBF_3DWISSLP formats.
MBclean: Added -Nthreshold option to detect and remove pings affected by significant interference. This option works by calculating the rms deviation between the soundings of each ping and the pings immediately before and after. When the rms deviation exceeds the specified threshold, all unflagged soundings in that ping are flagged as bad.
Many files: Changed type of pingnumber variable from int to unsigned int.
MBprocess: Fixed problem with the creation of *.resf files in which the edit events did not properly include the multiplicity factor required for data from multi-head sensors.
MBvoxelclean: New program mbvoxelclean identifies and flags artifacts in swath bathymetry data using a 3D density filter. The notion applied is that true targets (e.g. the seafloor) result in dense regions of soundings while sparse soundings in the water column or the subsurface are erroneous and can be flagged as bad. This technique is more appropriate for lidar data than multibeam sonar data. The resulting sounding edit events are output to edit save files which can be applied to the data by the program mbprocess. These are the same edit save files created and/or modified by mbedit, mbeditviz, mbedit, and \fBmbclean\fP.
Format 88 (MBF_RESON7KR): Corrected application of attitude offsets to bathymetry calculation in mbsys_reson7k_preprocess().
Format 88 (MBF_RESON7KR): Fixed problem in the mbsys_reson7k_preprocess() function in which the interpolated and time latency corrected attitude values calculated for each beam bottom return time were not fully corrected for the receive head angular offsets.
- Version 5.5.2350 September 6, 2018
- Version 5.5.2348 August 20, 2018
- Version 5.5.2347 August 17, 2018
- Version 5.5.2346 August 13, 2018
- Version 5.5.2345 August 10, 2018
- Version 5.5.2344 August 3, 2018
- Version 5.5.2343 July 10, 2018
- Version 5.5.2342 June 29, 2018
- Version 5.5.2340 June 26, 2018
- Version 5.5.2339 June 25, 2018
- Version 5.5.2336 June 6, 2018
- Version 5.5.2335 May 6, 2018
- Version 5.5.2334 April 18, 2018
- Version 5.5.2333 April 18, 2018
- Version 5.5.2332 April 17, 2018
- Version 5.5.2331 April 10, 2018
- Version 5.5.2330 March 7, 2018
- Version 5.5.2329 February 12, 2018
- Version 5.5.2328 January 31, 2018
- Version 5.5.2327 January 23, 2018
- Version 5.5.2324 January 18, 2018
- Version 5.5.2323 December 7, 2017
- Version 5.5.2322 November 25, 2017
- Version 5.5.2321 October 26, 2017
- Version 5.5.2320 October 18, 2017
- Version 5.5.2319 October 16, 2017
- Version 5.5.2318 September 29, 2017
- Version 5.5.2314 August 24, 2017
- Version 5.5.2313 August 9, 2017
- Version 5.5.2312 July 14, 2017
- Version 5.5.2311 June 20, 2017
- Version 5.5.2309 June 4, 2017
- Version 5.5.2306 May 27, 2017
- Version 5.5.2305 May 13, 2017
- Version 5.5.2304 May 6, 2017
- Version 5.5.2303 April 28, 2017
- Version 5.5.2302 April 20, 2017
- Version 5.5.2301 April 17, 2017
- Version 5.5.2300 April 15, 2017
- Version 5.5.2299 April 10, 2017
- Version 5.5.2297 April 5, 2017
- Version 5.5.2296 March 31, 2017
- Version 5.5.2295 March 26, 2017
- Version 5.5.2294 March 21, 2017
- Version 5.5.2293 March 6, 2017
- Version 5.5.2290 January 2, 2017
- Version 5.5.2289 December 2, 2016
- Version 5.5.2287 November 29, 2016
- Version 5.5.2286 November 8, 2016
- Version 5.5.2285 November 3, 2016
- Version 5.5.2284 October 23, 2016
- Version 5.5.2282 August 25, 2016
- Version 5.5.2281 August 7, 2016
- Version 5.5.2279 July 8, 2016
- Version 5.5.2278 July 1, 2016
- Version 5.5.2277 June 25, 2016
- Version 5.5.2275 May 17, 2016
- Version 5.5.2274 May 5, 2016
- Version 5.5.2271 April 1, 2016
- Version 5.5.2270 March 24, 2016
- Version 5.5.2268 March 14, 2016
- Version 5.5.2267 February 11, 2016
- Version 5.5.2265 February 11, 2016
- Version 5.5.2264 February 2, 2016
- Version 5.5.2263 January 7, 2016
- Version 5.5.2260 December 22, 2015
- Version 5.5.2259 October 27, 2015
- Version 5.5.2258 October 5, 2015
- Version 5.5.2257 September 1, 2015
- Version 5.5.2256 August 24, 2015
- Version 5.5.2255 August 11, 2015
- Version 5.5.2254 July 23, 2015
- Version 5.5.2252 July 1, 2015
- Version 5.5.2251 June 30, 2015
- Version 5.5.2250 June 29, 2015
- Version 5.5.2249 June 26, 2015
- Version 5.5.2248 May 31, 2015
- Version 5.5.2247 May 29, 2015
- Version 5.5.2246 May 27, 2015
- Version 5.5.2243 May 22, 2015
- Version 5.5.2242 May 16, 2015
- Version 5.5.2241 May 12, 2015
- Version 5.5.2240 May 8, 2015
- Version 5.5.2239 May 6, 2015
- Version 5.5.2238 April 14, 2015
- Version 5.5.2237 March 23, 2015
- Version 5.5.2234 March 5, 2015
- 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
Mbnavadjust: Added a sorted ties list view for which the list of ties is ordered from largest misfit magnitude to smallest where the misfit is measured between the tie offset and the offset of the most recent inversion. This allows one to easily inspect the most poorly fit ties. Also augmented stored information about global ties. Also made some changes to the inversion algorithm.
Reson 7k V3 support: Added files mbr_reson7k3.c mbsys_reson7k3.c mbsys_reson7k3.h while working towards support of version 3 7k data (by Christian Ferreira).
Mbtrnpreprocess: precruise update of mbtrnpreprocess and related tools used for optional install of AUV terrain relative navigation. Excepting for a few debug print statement changes, this matches the 20180814 mbtrnpreprocess installation of Kent Headly on MBARI Mapping AUV 2.
Mbauvloglist: augmented dimensioning of fields array to allow up to 500 data fields.
Mbnavadjust: Changed output of project so a single navigation offset model file is output that can be parsed to get x, y, and z offset components for plotting etc.
Format MBF_SBURIVAX (format id 15): Augmented the i/o module to handle negative longitude values (the format should use unsigned shorts but clearly data exist using signed values).
Mbmakeplatform: Fixed segmentation fault when modifications to the platform model are specified before a command that initializes the platform.
Mbcopy and Format 88 (MBF_RESON7KR): Added hook to mbcopy so that it can output bathymetry only records when copying format 88 (*.s7k) data. This option is enabled by using the -N argument twice, and is used to generate data files that mimic the minimal data record stream requested by mbtrnpreprocess.
Mbnavadjust: Undid the modification of 5.5.2340 that stores only valid, unflagged soundings in the section files, which are format 71. This turned out to be a very bad idea because it sometimes breaks the contouring used for display of the navigation crossings.
Mbnavadjust: Changed so that sensordepth values are included in the navigation points stored in the project file (*.nvh file).
Mbcontour, mbswath, mbgrdtiff, mbbackangle, mbprocess, mbgrid, mbmosaic, libmbaux, mbgrdviz, mbeditviz, mbnavadjust, libmbview: Implemented a number of low level changes suggested by Paul Wessel and Joaquim Luis in order to maintain compatibility with GMT versions >= 5.5.4 and achieve compatibility with the coming GMT6.
Format 88 (MBF_RESON7KR): Fixed handling data from a Reson 7125 installation with the receive head mounted backwards (this is something one might do in an AUV context in order to achieve a desired cable run).
Mbtrnpreprocess: Changes from Kent Headley (this program is being actively developed).
src/mbtrn: Changes from Kent Headley (these tools and library are being actively developed).
Mbgpstide: New program contributed by Gordon Keith. This program generates tide files from the height above ellipsoid data in the 'h' datagrams of Simrad files. There is an option to include fixed offsets and geoid differences. This development was funded by Geoscience Australia with the understanding that the code would be made available to the general MB-System distribution.
Autoconf build system: Restructured to build successfully with the mbtrn capability enabled using the --enable-mbtrn option of the configure script.
Mb_input_init() in src/mbio/mb_read_init.c: Allows calling program to initialize arbitrary input method by supplying functions to open, read bytes, and close the input. This capability is used by mbtrnpreprocess to read multibeam data over a socket directly from a sonar.
Binary file i/o functions in src/mbio/mb_fileio.c: Can now read from an arbitrary input method defined by the mb_input_init() function.
Mbtrnpreprocess: moved from src/mbtrn to src/utilities.
Mbnavadjust: now stores only valid, unflagged soundings in the section files, which are format 71. Previously all soundings, including null and flagged, were stored.
Mbgrid: Modified to use correct gridding algorithm when reading fbt files lacking the sonar type value.
Mbcopy: Modified to ensure that the sonar type value is embedded in fbt files written by mbcopy.
Format MBF_LDEOIH (MBIO format id 71): I/O module modified to ensure the sonar type value is embedded in fbt files.
Mbm_bpr: added generic data input format
src/mbtrn: added directory under src named mbtrn that contains code to enable terrain relative navigation (TRN) on autonomous underwater vehicle (AUV) platforms. These programs and library, particularly including mbtrnpreprocess, are built optionally providing the configure script is run with the --enable-mbtrn option.
Mbtrnpreprocess: Program to read multibeam data from a Reson 7K sonar in realtime, decimate and filter the bathymetry data, and provide the data to a terrain relative navigation (TRN) client that localizes the AUV position relative to a pre-existing map using the current bathymetry data.
Mbpreprocess and format MBF_3DWISSLR (232): Add option --kluge-fix-wissl-timestamps to fix a timestamp problem with the initial version of the 3D at Depth WiSSL (wide swath lidar).
Mbbackangle and mbprocess: Lidar intensity correction calculations now appropriate for linear data instead of log-scaled data.
src/mbaux/mb_intersectgrid.c: Added function mb_topogrid_bounds() that returns the lon-lat bounds of a topography grid previously loaded using the mb_topogrid_init() function.
Mbm_bpr: Added ability to parse pressure data from Sonardyne AMT beacons. Also added optional smoothing of the BPR depth data used to calculate tides.
Mbotps: Made the options -Ctidestationformat, -Ntidestationfile, and -Utidestationlon/tidestationlat introduced last month actually work. One can now use nearby tide station data to correct tide models calculated for the location and time of survey data.
Mbm_route2mission: Altered to reflect the increased mission duration possible for MBARI Mapping AUVs.
Format 88 (MBF_RESON7KR): Fixed handling of beams when using the version 2 raw detection data records.
Mbprocess, mbareaclean, mbclean, mbedit, mbeditviz, mbrphsbias, mbneptune2esf: Reset MB_ESF_MAXTIMEDIFF_X10 value in mb_process.h to 0.0011 to handle old beamflags with millisecond truncated timetags.
Mbareaclean, mbclean, mbrphsbias: Fixed the previous fixes .
Mbprocess, mbareaclean, mbclean, mbedit, mbeditviz, mbrphsbias, mbneptune2esf: Decreased time range where multiplicity of pings will consider close records as the same from 100 to 1 microsecond.
Mbprocess, mbareaclean, mbclean, mbedit, mbeditviz, mbrphsbias, mbneptune2esf: Fixed problem recocognizing multiplicity of pings when ping times are close to but not exactly the same. This problem was recognized in XSE data from a SeaBeam 3020 multibeam, but could potentially have impacted data from other sensors.
Mbm_makedatalist: Fixed problem with use of perl sort function when handling Kongsberg multibeam data. Also fixed problem with specifying a directory using the -I option.
Mbotps: Added new options -Ctidestationformat, -Ntidestationfile, and -Utidestationlon/tidestationlat. Together these commands allow users to input observations from a tide station; these observations can be used to calculate corrections to tidal model values in the vicinity of the tide station. If tide station data are specified, then MBotps calculates the difference between the observed and modeled tide at that station for each data point in the input tide station data. This difference time series is then used as a correction to the output tide models, whether at a location specified with the -Rlon/lat option or for swath data specified with the -Idatalist option.
Mbmakeplatform: Fixed initialization of the organization and documentation_url fields.
Mbtrnpreprocess: Continued development of this new tool, particularly adding interprocess communication via TCP-IP sockets.
Proj: Removed the embedded Proj source package from the MB-System archive and distribution. From now on Proj is strictly a prerequisite for building MB-System.
Mbtrnpreprocess: Added initial version of new tool for real-time multibeam data filtering as part of the implementation of terrain aided navigation on MBARI AUVs. Specifically, mbtrnpreprocess accesses realtime s7k data from a Reson 7125 multibeam sonar, decimates and filters the bathymetry, and than passes the decimated and filtered soundings on to an application that attempts to locate the AUV in real time relative to a pre-existing multibeam bathymetry survey. This allows repeat AUV surveys to execute exactly the desired survey tracks.
Format MBF_3DWISSLP (233): Many fixes to the code supporting WiSSL lidar data.
Format MBF_3DWISSLP (233): Rewrote the processing format for the 3D at Depth wide swath lidar (WiSSL) system delivered to MBARI in December 2017. The new version of the format is more compact and is read and written much faster.
Edit Save Files (*.esf) and mbedit, mbclean, mbareaclean, mbeditviz: Fixed problem in which flags were sometimes not applied to all soundings in pings that are less than 0.1 milliseconds earlier or later than another ping or scan.
MBeditviz: Replaced use of the global edit files (.gef) by mbeditviz with use of new edit files called reverse edit save files (.resf). The *.gef files were generated by mbpreprocess using mbgetesf. The *.resf files are generated by mbprocess.
Mbm_route2mission: Fixed generation of Dorado AUV missions with waypoint_bottom behaviours.
Edit Save Files (*.esf): The edit save file format has been augmented to include a mode value that can include implicitly setting all soundings not set by a beamflag in the file to a null value (mode == 1) or a valid value (mode = 2). The default remains to change sounding beamflag values only for beams explicitly set by an edit event. The only means to create ESF files with implicit beamflag modes is using mbgetesf with -M4 or -M5, and the only use of implicit beamflag modes is in the MBedtiviz *.gef files. The new ESF files have a version 3 tag; old ESF files will continue to work fine.
MBgetesf: Augmented to output edit save files in two new modes. If -M4 is specified, the beamflags of null beams will not be output, but the ESF mode is set so that the beamflags of any soundings not specified will be set null. If -M5 is specified, the beamflags of valid beams will not be output, but the ESF mode is set so that the beamflags of any soundings not specified will be set valid.
MBpreprocess: Generates *.gef files using mbgetesf with the -M4 rather than -M2 option.
MBinfo: Fixed memory allocation problem that led to crashes reading data in formats MBF_3DWISSLR (232) and MBF_3DWISSLP (233).
Build system: Restructure the use of the mb_config.h file so that compiling on Ubuntu 17 succeeds (issue related to stdint.h includes)
MBinfo: Fixed bug in JSON output (Christian Ferreira)
MBpreprocess: Added support for the 3D at Depth wide swath lidar (WiSSL) system delivered to MBARI in December 2017.
Formats MBF_3DWISSLR (232) and MBF_3DWISSLP (233): Added support for the 3D at Depth wide swath lidar (WiSSL) system delivered to MBARI in December 2017.
MBm_route2mission: Fixed implementation of inserting surfacing events into missions at line start and end waypoints.
Many source files: Changes to variable names in GMT grid header and CPT structures for GMT 6.
MBnavadjust: fixed crashes that happened when files or surveys are held fixed.
Mbpreprocess: Now set so that input Imagenex DeltaT data in the vendor format MBF_IMAGE83P (191) will be output in the processing format MBF_IMAGEMBA (192) after pre-processing.
Mb7k2jstar: Now outputs in the current jstar format rather than a >10 year old variant.
Formats MBF_EDGJSTAR (132) and MBF_EDGJSTR2 (133) supporting Edgetech Jstar (*.jsf) files: Changed code to support recent and current versions of Jstar format files. The code should recognize and convert older variants, particularly those written by past versions of MB-System.
Various source files (mk_cheby.c, geod_for.c, mbsys_xse.c, mbsys_sb2100.c, mbsys_elacmk2.c, mbsys_elac.c, mbr_xtfr8101.c, mbbs_defines.h): Added curly brackets, changed beamflag setting calculations, and reformatted some lines in order to silence compiler warnings.
Mbgrdviz: fixed bug in displaying overlays.
Mbpreprocess: Added some kluge fixes to time jumps in ancillary data. New commands are --kluge-ancilliary-time-jumps and --kluge-mbaripressure-time-jumps.
Mbextractsegy: fixed bug in the output plotting script.
Format 88 (MBF_RESON7KR): Fixed confusion between Depth and Height s7k data records.
Mbgrdviz: Now, when overlays are displayed in mbgrdviz, the only areas rendered are those where both the primary and overlay grids are defined.
Mbprocess: Fixed bug that caused mbprocess to (sometimes) never finish while continuing to write to the output file.
Mbnavadjust: Fixed bug that often, but not always, caused the inversion to blow up and crash the program.
General: Fixed problem with data record type informational messages
General: Fixed problem with time gap nonfatal error detection
MBpreprocess: Added --skip-existing option that causes MBpreprocess to skip preprocessing of files referenced in the input datalist that have already been preprocessed. This allows efficiently adding new files to a survey, particularly in a shipboard context where one is trying to process new data as they are collected.
MBotps: Added -S option that causes MBotps to skip calculating a tidal correction model for files referenced in the input datalist that already have models calculated by mbotps. The skipped files will not be viewed as out-of-date by mbprocess, and thus will not be reprocessed if mbprocess or mbm_multiprocess are run. This allows efficiently adding new files to a survey, particularly in a shipboard context where one is trying to process new data as they are collected.
MBgrdviz: Added capability to output site data as Winfrog waypoint (*.WPT) files.
MBeditviz: Added capability to optimize an additional bias parameter (sort of...) in the 3D sounding view. The new parameter is a "snell correction", referring to adjusting the receive beam angles of multibeam data by applying a Snell's law correction equivalent to changing the speed of sound used for beam forming. This parameter is expressed as a ratio of the new to original sound speed, so that a snell correction value of 1.00 corresponds to no change, a value of 0.995 corresponds to a slight reduction in the sound speed, and a value 1.005 corresponds to a slight increase in the sound speed. This correction is intended for near-bottom surveys from submerged platforms (ROVs or AUVs) where sound speed is calculated from CTD data (and values may plausibly be slightly erroneous) and where errors due to raytracing through an incorrect model of the water column sound speed are unlikely to be significant. This correction is generally not useful for multibeam data collected from a surface vessel.
MBminirovnav: Added new program that processes raw MBARI MiniROV data logs to produce standard MBARI ROV navigation files (format MBF_MBARIROV) MBpreprocess: Add option to skip preprocessing files in the input datalist that have already been fully preprocessed.
MBsegygrid: Added a trace mode=2 to the -Smode[/start/end[/schan/echan]] command for which start and end refer to shot numbers and all traces within that range of shot numbers are plotted. Effectively the channel numbers are ignored by setting all trace channels to 0 and plotting channel 0.
MBsslayout: Changed arguments to have '-' rather than '_' characters between words in multiword commands (e.g. --topo_grid_file is now --topo-grid-file). Also now have code identifying the fileroot of the input file and using that in the construction of output file names so that the input format suffix is not embedded in the middle of the output filename. Also improved the swathplotting script generated by mbsslayout.
Formats 132 (MBF_EDGJSTAR) and 133 (MBF_EDGJSR2): Fixed preprocessing function in the i/o module so that altitude values read in by mbpreprocess are actually applied in the output file.
Format 160 (MBF_SEGYSEGY): Added recognition of this format by file suffixes *.SEG and *.seg (in addition to *.SEGY and *.segy).
MBm_makedatalist and Formats 56, 57, 58 59 (MBF_EM300RAW, MBF_EM300MBA, MBF_EM710RAW, MBF_EM710MBA): The mbm_makedatalist macro will now attempt to sort Kongsberg data into time order based on filenames when the file suffixes follow the MB-System convention (*.mb56, *.mb57, *.mb58, *.mb59). Previously this functionality was only applied to files with the *.all suffix. This capability is applied by default but can be disabled with the -T option.
Mbprocess: Fixed bug in which mbprocess sometimes crashed for files that have not had bathymetry edited or filtered.
Mbprocess: Code used to read GMT grid files modified so that if the GMT API call to read a grid fails, that call will be repeated every 0.1 seconds for 10 seconds until it succeeds. This should allow multiple instances of mbprocess to read the same grid files used for processing without interfering (the current GMT libraries have problems with multiple simultaneous reading of a grid file over some network mounted filesystems).
Format 88 (MBF_RESON7KR): Augmented the preprocess function to properly implement a correction to the sound speed value used for beamforming, with consequential changes to the recalculated bathymetry.
Mbpreprocess: Changed so that it ancillary data is specified to be read from external file(s) but one of those files does not exist, the program terminates with an error message.
Format 88 (MBF_RESON7KR): Fixed problem handling Reson data preprocessed or processed using a version older than 5.3.2004 which in some cases causes the alongtrack and acrosstrack values to be swapped.
MBedit: Added togglebutton to the View menu that allows to control whether flagged soundings are displayed (previously flagged but valid soundings were always displayed).
MBauvloglist: Added ability to recalculate MBARI Mapping AUV CTD data using corrected calibration coefficients. This allows one to output a corrected time series of sound speed.
Proj: Removed the embedded Proj library from MB-System. One must now have Proj installed separately in order to build MB-System (which is always the case anyway).
MBpreprocess: Added several new options.
MBgrdtiff, mbcontour, mbswath, mbps: Changed defines in *.c files to reflect the versioning of GMT 6
MBnavadjust: Fixed bug that preventing importing data into a new project.
Applied reformatting to all *.c and *.h files using the tool clang-format as suggested by Joaquim Luis.
Updated copyright statements to 2017.
Updated mbotps to use the current best OSU tidal model (atlas_tpxo8_1).
Format 88 (MBF_RESON7KR): Fixed a couple of bugs in the i/o module identified by Kurt Schwehr.
Format 121 (MBF_GSFGENMB): Fixed handling of attitude records.
MBdatalist: Fixed bug involving operating on datalist files other than the default datalist.mb-1.
MBpreprocess: Added option --kluge-soundspeed-tweak=factor that applies a multiplicative correction to the water sound speed at the sonar arrays. This both changes the beam angles by a Snell's law correction and affects the calculation of bathymetry using the travel times.
MBconfig: Added options to print out the installation location, the compile flags needed to compile code using MB-System libraries, and the linker flags needed to link programs that call functions in MB-System libraries.
MBextractsegy: Force jpeg renderings of the section plots to be portrait style.
MBinfo: Fix bug in XML output disabling output of minimum good beam counts in some cases.
MBpreprocess: Fixed generation of *.baa, *.bsa, and *.bah files so they include only data relevant to the associated swath file, which means samples from 10 seconds before the first survey data through 10 seconds after the last survey data. The program now removes any pre-existing *.ata, *.sta, *.ath, *.baa, *.bsa, and *.bah files.
MBconfig: New program to provide command line access to the ### MB-System Version and the locations of the Levitus database and the OTPS tide prediction software.
MBlevitus: The variable storing the location of the Levitus database file has been changed from "ifile" to "levitusfile".
Datalist parsing: The mb_datalist_read() function changed with the 5.5.2299 revision, including adding a new argument. The old version of that function is now available within the API as mb_datalist_readorg().
MBpreprocess and MBeditviz: Changed the ancillary files used to store the asynchronous attitude and heading data used by MBeditviz for time latency modeling from text to binary. The text *.ata, *.sta, and *.ath files generated by mbpreprocess (and formerly by mb7kpreprocess and mbkongsbergpreprocess) are replaced by *.baa, *.bsa, and *.bah files respectively. The size of the the binary files is about half of the previous text files; the i/o speed for loading data is improved as well.
Configure script: Fixed problems with specifying the location of the netCDF, GDAL, and GMT config programs.
MBswath: Fixed bug that caused occasional crashes.
Formats 56 and 57 (MBF_EM300RAW and MBF_EM300MBA): Fixed handling of sensordepth and heave data by mbpreprocess and mbprocess. Tide correction and recalculation by raytracing work correctly again. Added preprocessing function to the i/o module. Users should now use mbpreprocess for preprocessing old Kongsberg multibeam data so that navigation is properly interpolated and beam flagging works correctly.
Mbm_plot, mbm_grdplot, mbm_xyplot: The plotting macros now handle negative scaled (reverse) axes properly (e.g. sound speed plots with depth increasing downwards).
Mbdatalist: Now supports long command line options (old short options are deprecated but still work).
Mbpreprocess and Format 88 (MBF_RESON7KR): Fixed application of kluge-beam-tweak option for Reson 7k (format 88) data.
Formats 58 and 59 (MBF_EM710RAW and MBF_EM710MBA): Fixed memory leak.
Formats 59 (MBF_EM710MBA): Fixed calculation of interpolated heave when recalculating bathymetry by raytracing.
Format 88 (MBF_RESON7KR): Fixed memory leaks.
Mbm_arc2grd: Rewritten to use GMT modules grdconvert and grdedit.
Formats 58 and 59 (MBF_EM710RAW and MBF_EM710MBA): Fixed handling of sensordepth and heave data during preprocessing. Program mbkongsbergpreprocess is now deprecated and will be removed from the distribution soon. Users should now use mbpreprocess for preprocessing Kongsberg multibeam data.
Format 88 (MBF_RESON7KR): Fixed bug in handling of TVG data records.
Mbdatalist: Added a new option -D that causes mbdatalist to list the unique datalist files referenced as a recursive datalist structure is parsed. The recursion level of each datalist file is indicated in the listing.
Mblist and mbnavlist: Augmented the -Zsegmenttag option for printing out segment start lines in the output. Normally the string segmenttag is a single character that is recognized by GMT as a segment beginning when parsing tabular data. Now, if segmenttag == "swathfile" the segment start lines will consist of the character '#' followed by the path to the source swath file, and if segmenttag == "datalist" the segment start lines will consist of the character '#' followed by the path to the source datalist file
All i/o modules: Added sensordepth_source to the arguments of the mbr_info_XXXXXXXX() functions in the i/o modules.
Mbpreprocess: Added ability to define default sources (in terms of data record types) for the various asynchronous ancillary data types in Kongsberg and Reson data.
Formats 58 (MBF_EM710RAW) and 59 (MBF_EM710MBA): Kongsberg reports some bathymetry bottom picks that are interpolated or extrapolated from valid soundings. Until now MB-System has treated these interpolated soundings as valid but flagged. MB-System now recognizes interpolated soundings as a different type, neither valid nor null. These soundings can no longer be seen or edited with MBedit or MBeditviz.
Mbm_makedatalist: Added option to suppress processed files (e.g. *p.mb88) from inclusion in the output datalist.
Mbm_makedatalist: Major capability augmentation for this tool, preparing for automated setup of the processing environment. This macro will now construct datalists from files matching a user specified filename suffix, and will attempt to sort raw Kongsberg multibeam data files into time order.
Formats 58 (MBF_EM710RAW) and 59 (MBF_EM710MBA): Fixed to handle EM712 data and other Kongsberg multibeams now generating more than 512 beams.
Mbm_grd2arc: Fix provided by Monica Schwehr for compatibility to *.grd files generated with the current GMT.
Mbm_plot, mbm_grdplot, mbm_xyplot, mbm_3dgrdplot: Changes to the manual pages to reflect the new syntax for map scales (the -MGL option in the MB-System plot macros) in GMT 5.3.X
Mbnavadjust: Fixed bug in calling scripts within the project directory for users that do not include "." in their path environment variable. Problem identified by Monica Schwehr.
Mbpreprocess: Added functionality to handle specialized, format-specific preprocessing tasks and to handle changes to data timestamps. Currently set to work with generic data, Reson 7k data (format 88), and 3DatDepth Lidar data (format 231). Code written for mbpreprocess to work with Kongsberg data, but not yet tested.
Format 88 (MBF_RESON7KR) and Mb7kpreprocess: Mb7kpreprocess is deprecated, with preprocessing of Reson 7k data to be done by mbpreprocess.
Format 121 (MBF_GSFGENMB): Integrated latest release of GSF from Leidos (3.07)
Mbsvpselect: Fixes by Ammar Aljuhne and Christian Ferreira of MARUM.
Mb7kpreprocess: Fixed bug in handling old MBARI Mapping AUV with navigation and attitude data in deprecated "Bluefin" records.
Mbnavlist: Added ability to output positions in a projected coordinate system.
Mblist: Use ping count as ping number when the data format does not include ping or shot number.
Format 21 (MBF_HSATLRAW): Fixed bug in handling zero length comments.
Format 231 (MBF_3DDEPTHP): Fixed bug in handling angular offset values in preprocessing.
Mblist: Added ability to output positions in a projected coordinate system, to output positions of the sensor instead of soundings or pixels, or to output positions relative to the sensor in the world frame.
Mbm_route2mission: Fixed handling of waypoint spacing for constant depth segments of missions.
Mbnavadjust: Now outputs the altered project less frequently (every tenth new tie instead of every tie).
Mbnavedit: interpolation of selected navigation values now also flags the original values so they are not used in calculating a navigation model.
General: fixed a number of memory leaks by switching all remaining mb_malloc(), mb_realloc(), and mb_free() calls to mb_mallocd(), mb_reallocd(), and mb_freed().
Mbnavadjust: prevent occasional corruption of the mbnavadjust project by not allowing excessively large offset values to result from unstable inversions.
Mbinfo: applied fixes from Suzanne O'Hara to JSON output from mbinfo.
Mbnavadjust: Fixed problem in which tie snav times became incorrect - these values are now reset when the project is read.
Mbgrid and mbmosaic: added code to mbaux/mb_readwritegrd.c that will enable use of new GMT5 grid mode flags, solving the problem of creating geographic grids that can be directly read into ESRI ArcGIS. These modes will appear in GMT 5.3.2 sometime early in 2017. Thanks to Paul Wessel for diagnosing and fixing this longstanding issue.
Mbgrid and mbmosaic: implemented suggestion by Paul Wessel that the calculation of grid dimensions be done with a lrint() rounding call rather than implicit truncation. This will change the behavior of the -Edx/dy/units option, but the resulting grid dimensions will be more consistent with users expectations.
Mbnavadjust: Fixed auto set vertical level function to use the same block inversion now used for the first stage of the main inversion. Also set this function so that for z offset changes less than a threshold (currently 0.10 m) the x and y offsets are not repicked.
Mbnavadjustmerge: Fixed import and export of tie lists to allow moving ties between projects.
Mbm_makesvp: added capability to extract sound speed values from survey data records as well as ctd data records, and to optionall produce sound speed models extending to the surface and the deep ocean even if the data are available only for a limited depth range.
Mbnavadjust: Modified the inversion algorithm to once again have a first stage solution for "block" (survey) average offsets followed by the main inversion to satisfy all of the navigation tie offsets in detail.
Mbnavadjust: updated the documentation of the inversion algorithm.
Mbprocess: fixed rare singularity in the raytracing code.
Mbsvplist: Added -R command to set longitude-latitude bounds within which the -S option will cause ssv values to be output.
Mbgrdviz: Added start5 and end5 waypoint types to routes.
Mbnavadjust: Added a first step in the inversion in which mbnavadjust solves for average offsets for each survey ("block"). The offsets associated with this average model are removed from the tie offsets before the full inversion. The smoothing penalty is thus applied to deviations from the average model rather than the full navigation adjustment model.
Fixed some typos preparing for full release.
mbmakeplatform: fixed bug that caused core dumps when built with gcc.
mbaux/mb_cheb.c: Added open source least squares solver LSQR by Michael A. Saunders (in C version translated from Fortran by Michael P. Friedlander),
Mbnavadjust: Switch navigation matrix solution algorithm to LSQR.
Mbnavadjust: Fixed bug that reset the z-offset-width value to 5-m every time a project was read.
Mb7kpreprocess: Now will use complete platform description when reading older Reson 7k data.
Mb7kpreprocess: Now allows users to specify the the sources of asynchronous ancillary data (position, sensor depth, heading, attitude) to be merged with the survey data.
Mbgrdviz, mbeditviz, mbnavadjust: pick actions will now print out positions to the shell in both decimal degrees and degrees + minutes.
Mbextractsegy: Now uses psconvert from GMT instead of convert from imagemagick.
mbm_grdplot: Once again handles section plots from mbextractsegy properly.
mbm_arc2grd, mbm_dslnavfix, mbm_grd2arc, mbm_grd2geovrml, mbm_grd3dplot, mbm_grdcut, mbm_grdinfo, mbm_grdplo, mbm_grdtiff, mbm_grid, mbm_histplot, mbm_plot, mbm_utm, mbm_xyplot: Modified to work properly with GMT 5.3
mbprocess: fixed correction of sidescan and amplitude data using topographic grid so that the correction is actually calculated and applied.
Mbnavadjustmerge: Added --set-ties-xyonly-by-time=timethreshold option.
Mbnavadjust: Improved program behavior with respect to generating the grid used for the project visualization view.
Mbedit: Changed behavior so that using the slider to change the number of pings viewed also changes the number of pings to step proportionately.
Mbnavadjustmerge: Added --unset-skipped-crossings-by-block=survey1/survey2 and --unset-skipped-crossings-between-surveys options, and made the --import-tie-list=filename and --export-tie-list=filename options work correctly.
Mbclean: Added option to flag outer beams and/or unflag inner beams by acrosstrack distance (-Y option).
Bathymetry editing (mbedit, mbeditviz, mbclean, mbareaclean): fixed problem in which mbprocess failed to successfully apply new edits generated using mbeditviz on files with existing, old esf (edit save files) files. Yet another consequence of adapting to very short ping intervals... Existing edit save files can now be fixed using mbclean -T0.0011.
Mbm_grdtiff: Added support for image display program feh.
Mbkongsbergpreprocess (Formats 58 & 59): Fixed modification of png_xducer_depth value to not include lever arms or heave, as SIS records sensor depth value in height datagrams that are already compensated for lever arms and heave.
Mbm_xyplot, mbm_grdplot: fixed problem generating plots using linear axes. Recent changes to GMT cause gmt mapproject to generate an error when passed non-map (e.g. non lon lat) values with a linear projection (after three decades of working just fine....). Created a workaround by treating linear plots as a special case.
Mbeditviz, mbedit, mbclean: Fixed problem with edit save files in which old format *.esf files where generated by mbeditviz. This does not work well with data where separate ping timestamps differ by less than 10 milliseconds (e.g. current generation Kongsberg multibeams reporting fore and aft pings from each ping cycle and 3DatDepth lidar data).
Mbkongsbergpreprocess (Formats 58 & 59): Fixed handling of sonar depth and heave values in Kongsberg multibeam data logged using SIS on a submerged platform.
Format 201 (MBF_HYSWEEP1): Changed handling of file header data to enable the extraction of platform definition data by the program mbmakeplatform.
MBmakeplatform: Now capable of extracting the list of sensors and the associated offsets from Hypack HSX files, and outputting an MB-System platform file.
MBhysweeppreprocess: Now allows for sensor offsets to be defined by an MB-System platform file, which can be extracted from HSX data files with mbmakeplatform, and can be modified and augmented using the same program.
MBeditviz: Added a new sounding filter mode that calculates the sounding density for a 3D "voxel" representation of the selected volume, and then flags soundings in voxels containing less than a threshold of soundings. This algorithm flags isolated soundings, an approach that is particularly useful for submarine lidar data. This filter is accessible from the "action" menu of the 3D sounding window.
MBeditviz: Added algorithm to flag isolated soundings by analyzing the 3D distribution of currently selected soundings. Soundings are flagged in voxels containing less than a desired threshold of soundings. This option is accessed from the menu of the 3D sounding view.
Format 201 (MBF_HYSWEEP1) and mbhysweeppreprocess: Fixed handling of data that have beam takeoff angles calculated without attitude correction. Changed the default heave sign convention.
Format 231 (MBF_3DDEPTHP): Now handles files with broken data records a bit more gracefully.
MBnavadjust: Fixed display of navigation in visualization view. Fixed overwriting of zoffsetwidth value when projects are read in. Fixed autopicking when view mode is survey-vs-survey blocks.
MBkongsbergpreprocess: Added capability to merge sonardepth from a separate ascii file consisting of Unix time and sonardepth pairs.
Makefiles and mbr_gsfgenmb.c: Fixed typos noted by Joaquim Luis.
General: Fixed several warnings generated by the new gcc version in Ubuntu 16.
Configure.cmd and "How to Get" web page: Updated with instructions for installing in Ubuntu, including Ubuntu 16.04.
MBgrdviz, MBeditviz: New radiobox in the Controls->Projections dialog allows user to change interactive pick annotations so that longitude and latitude values are shown as degrees + decimal minutes or decimal degrees, as desired
MBeditviz: Fixed bug involving some isnan calls according to suggestion by Gordon Keith - MB-System now builds on Ubuntu 16.04.
Mbswath: Fixed bug in handling format for single input files, as suggested by Joaquim Luis.
Mbnavadjustmerge: Added commands to set the mode of all ties as XYZ, XY only, or Z only.
Many source files: Added a number of #ifdef preprocessor statements to handle building on Windows, generally following suggestions by Joaquim Luis.
Many source files: Fixed a number of warnings related to typing and prototyping issues.
MBnavadjust: Added numbers of crossings and ties to the table listing of survey-vs-survey blocks.
Formats 58 and 59 (MBF_EM710RAW & MBF_EM710MBA): added EM850 to supported third generation Kongsberg multibeams.
MBnavadjust: Now plots ties within missions (surveys) in dark blue and ties between mission in light blue in the bathymetry visualization.
Mbm_route2mission: Calculates AUV ascent time with a 1.5 safety factor instead of a 1.2 safety factor to ensure the new Mapping AUV always makes it to the surface before timing out.
MBkongsbergpreprocess, and formats 58 (MBF_EM710RAW) and 59 (MBF_EM710MBA) for current generation Kongsberg multibeam data: Changed so that the default source for attitude data used in recalculating bathymetry from travel times and angles is the "active" source originally used by the sonar rather than always being motion sensor 1.
MBnavadjust: Fixed creation of bathymetry grid (gridding scripts were not being set executable). Removed data from fixed files from the bathymetry grid.
MBkongsbergpreprocess: Now by default uses the same attitude data stream used by the sonar in realtime, as opposed to using data from "motion sensor 1" regardless of whether that was the active realtime sensor.
Bathymetry editing programs (MBedit, MBeditviz, MBareaclean, MBclean): fixed beam edit code so that no attempt is made to sort zero length arrays of beam flags.
Mbnavadjust: Added integrated mbgrdviz-style visualization of the bathymetry in an Mbnavadjust project. Users can select crossings or ties by clicking on the navigation in the map view. If two selected sections do not already have a defined crossing, a crossing can be created and analyzed. The new version of mbnavadjust will upgrade old projects to include the bathymetry grid. The new GUI commands include under the menu, and under the menu. The documentation, such as it is, does not yet cover these new features.
Mbm_multicopy and mbm_multidatalist: Fixed bugs identified (along with fixes) by Martin Ernst of HafenCity University in Hamburg, Germany.
Mbswath, mbcontour, mbgrdtiff: added #ifdefs for compatibility with the upcoming GMT 5.3 release. A number of GMT functions called by the MB-System GMT modules are being renamed.
Format 21 (MBF_HSATLRAW): Added some logic to handle problems in a very old HSDS dataset collected on the R/V Ewing and available at the archive formally known as NGDC.
Mbeditviz: Added capability to do automated optimization for bias parameters from the 3D soundings view. Optimization options are accessed from the "Action" menu.
Mb7kpreprocess: Added capability to tweak beam angles through a Snell's law type correction (kluge mode 9).
Mbgetesf, mbdumpesf, mbedit, mbeditviz, mbareaclean, mbclean, mbprocess: Fixed problem handling certain old ESF files (edit save files) that had timestamps truncated to milliseconds instead of microseconds. New ESF files now have a header indicating the version and time of creation. Version 2 ESF files are presumed to have timestamps consistent with datafiles to a +/-1 microsecond precision.
Documentation: Corrected instructions for building MB-System on Ubuntu machines.
Mbgrid, mbm_dslnavfix, mbm_grd2arc, mbm_grd3dplot, mbm_grdplot, mbm_grdtiff, mbm_histplot, mgm_plot, mbm_utm, mbm_xyplot: Replaced call to "grdinfo" with call to "gmt grdinfo" for compatibility with GMT5 installations that do not include soft links to the old GMT4 programs.
Mbauvloglist: Added ability to calculate and output potential temperature when parsing an MBARI Dorado AUV CTD log. Includes adding a potential temperature calculation function to src/mbio/mb_absorption.c
Mbpreprocess: Fixed problem with application of changes to roll and pitch values.
MBnavadjustmerge: Enabled exporting and importing lists of ties.
Formats 58 (MBF_EM710RAW) and 59 (MBF_EM710MBA) for current generation Kongsberg multibeam data: Fixed problems handling tide correction and applying heave when recalculating bathymetry through raytracing.
Format 59 (MBF_EM710MBA): Worked on preprocessing function called by mbpreprocess. Not done yet...
Format 88 (MBF_RESON7KR): Worked on preprocessing function called by mbpreprocess. Not done yet...
mbio/mb_access.c: Added explicitly setting the target sensor id to the mb_preprocess() function call.
Mbm_grdtiff: Fixed bug in grdinfo call.
GMT integration: Removed GMT header files from mbsystem/gmt because GMT 5.2.1 now installs full development headers. MB-System is now not compatible with any version of GMT prior to 5.2.1.
Configure build system: Now uses built in configuration tools in GMT and netCDF so that command line arguments to the configure script specifying GMT and netCDF library locations are no longer necessary.
mbio/mb_io.h and mbio/mb_platform.c: Added fields to platform structure: mb_longname documentation_url; double start_time_d; double end_time_d; int start_time_i[7]; int end_time_i[7];
Mbmakeplatform: Added commands: --platform-documentation-url=string --platform-start-time=yyyy/mm/dd/hh/mm/ss.ssssss --platform-end-time=yyyy/mm/dd/hh/mm/ss.ssssss
Mbpreprocess: Now called format-specific preprocess function if available and applied generic preprocessing otherwise. The first format specific preprocessing to be defined is for Reson 7k data (MBIO format 88).
Mb7kpreprocess: Modified optional fixing of multibeam ping times assuming a specified constant ping interval.
Mbmakembplatform: Added manual page.
mbio/mb_navint.c: Added MBIO API functions mb_apply_time_latency() and mb_apply_time_filter().
Mbeditviz: Fixed application of time latency to sonardepth.
Mbnavadjust: Added output of route files including all unfixed ties for each survey and all crossings for each survey.
Mbmakeplatform: Added new program to create or modify platform files.
Format 58 (MBF_EM710RAW): Added functions needed for mbmakeplatform to automatically extract a platform model with sensor offsets.
Format 59 (MBF_EM710MBA): Added functions needed for mbmakeplatform to automatically extract a platform model with sensor offsets.
Format 88 (MBF_RESON7KR): Added functions needed for mbmakeplatform to automatically extract a platform model with sensor offsets.
Mb7kpreprocess: Added kluge mode (-K6) to fix a time stamp problem with recent MBARI Mapping AUV data. Specifically, due to the application of time disciplining to the Reson computer clock using two occasionally inconsistent time sources, sometimes there are abrupt shifts in the ping time stamps for one to three pings. This mode detects and corrects these time tears.
Mbpreprocess: Using platform functions to handle sensor offsets. Read platform file or command line offsets and calculate sensor offsets. Updated bathymetry calculations.
General: Added functions mb_platform_orientation and mb_platform_orientation_target on mbio/mb_platform. Cleaned mb_platform_orientation_offset. Change all MB_PLATFORM_MATH* functions to DEEGREES inputs/outputs on mbio/mb_platform_math. Fixed bug on mb_platform_lever.
Mbeditviz: Improved the way to handle sensor offsets. Improved mbeditviz_apply_timelag the way to handle angles corrections. Cleaned mbeditviz_beam_position to make it more clear.
mbio/mb_platform_math.c: Added new math functions mb_platform_math_attitude_offset_corrected_by_nav and mb_platform_math_attitude_rotate_beam to handle sensor offset corrections.
Mbnavadjust: Set limits on application of smoothing via penalizing the first and second derivatives of the navigation pertuturbation (particularly the second derivative) in the inversion algorithm. This change has been implemented to prevent the inversion from becoming unstable as the smoothing parameter is made larger.
Mbprocess: Fixed problem with handling of sensor depth changes due to tide correction or lever arm correction.
Autotools build system: Disabled dist and distclean targets in the makefiles produced by the configure script. We do not use the autotools system to generate production distributions, so the existence of these targets defined by default caused some confusion.
Mbset and mbprocess: Added NAVSHIFTX and NAVSHIFTY options to the mbprocess parameter file definition.
Mbgrid: Fixed the -Kbackground option for the case of producing grids in projected coordinate systems.
General: Improved the way to handle sensor offsets on mbio/mb_platform.c and changed the way is currently used in mb7kpreprocess. Added mbio/mb_platform_math.c to the archive. This source file includes math functions to calculate angular offsets.
Mbedit, mbnavedit, mbnavadjust, mbvelocitytool: Fix X11 font initialization problem created in the 2251 commit.
Mblist, mbnavlist, mbctdlist: Changed time outputs so that decimal second values will be formatted according to the locale (e.g. decimal delineation by commas in Europe).
Mbedit, mbnavedit, mbnavadjust, mbvelocitytool, mbgrdviz, mbeditviz: Set up preprocessor defines to allow fonts to be defined using the CFLAGS environment variable.
Mbedit, mbnavedit, mbvelocitytool, mbgrdviz, mbeditviz: Removed call to X11 function XtSetLanguageProc() in all graphical tools. This call apparently causes the program locale to be reset according system defaults, even if the program implicitly begins in the standard C locale. If the system locale uses "," rather than "." as the decimal point marker (e.g. a normal European locale), then a GMT 5 initialization will probably fail on reading fonts, at least on many if not all Linux distributions. Thanks to Giancarlo Troni for figuring this one out.
General: Added mbio/mb_platform.c to the archive. This source file includes the functions to read, write, and use platform, sensor, and sensor offset definitions. At this time the mb_platform_*() functions are only used in mb7kpreprocess, but they will soon be used in mbprocess and all the preprocess programs.
Mbprocess: changed application of tide corrections so that these corrections are applied to the platform depth values rather than the bathymetry values. The result is the same, but now the navigation (or trajectory) of the processed files is corrected in addition to the bathymetry.
Format 121 (MBF_GSFGENMB): Kluge added to the GSF format i/o module to handle beam angles incorrectly constructed so that angles from vertical are negative for port side beams when all aziumuthal angles are uniformaly zero (=starboard).
General: Added platform, sensor, and sensor offset definitions to mb_io.h for use in flexibly defining a platform consisting of many sensors with relative positional and angular offsets. Also added functions to read and write platform files using these definitions. Have not completed the function to perform lever arm calculations using this platform definition. Initially these functions will be used in mb7kpreprocess, but ultimately these will be used generally in MB-System.
Mb7kpreprocess: initial implementation using the new platform file and structure definitions.
Mbgrdviz and mbview: Fixed casts between int and pointer that seem to be responsible for mbgrdviz crashes.
General: Cleaned up missing function prototypes through much of the codebase (excepting externally written libraries gsf, sapi, bsio) in an effort to fix crashes of mbgrdviz and other programs.
Mbswath, mbcontour, mbgrdtiff: Updated GMT5 header files in src/gmt to enable building on Ubuntu Linux, CentOs Linux, and CygWin while maintaining compatibility with GMT 5.1.2.
Mbedit, mbnavedit, mbvelocitytool, mbgrdviz, mbeditviz: Incomplete tweaks to font handling to enable use of fonts other than Helvetica, Times, and Courier.
Rewrote the configure.ac file to fix logic flaws in the configure script.
Mbswath, mbcontour, mbgrdtiff: Updated files in src/gmt for compatibility with GMT 5.1.2.
Format 59 (MBF_EM710MBA): Fixed flag causing erroneous warning that beam flags are not supported for this format (beam flags are supported).
Many source files: further changes to precompiler directives suggested by Joaquim Luis in order to enable building under Windows.
Format 241 (MBF_WASSPENL): Fixed recognition of *.nwsf suffix.
Mbclean: fixed bug in beam position calculation identified by Joaquim Luis.
Format 241 (MBF_WASSPENL): Now supports WASSP multibeam data conforming to the WASSP ICD 2.4. MB-System is storing beam flags in unused bytes in the existing CORBATHY data records (specifically the "empty" field in the CORBATHY beam data specified in ICD 2.4).
Many source files: changes to precompiler directives suggested by Joaquim Luis in order to enable building under Windows.
Mbnavadjust: Modified the inversion to separate the vertical and lateral covariance so that lateral offsets do not bleed into the vertical offset model.
Mb7kpreprocess: Fixed bug that treated null soundings as good for datasets without detection records.
Mbdumpesf: Added capability to output in the edit save file format in addition to ASCII text, and to ignore specified types of edit events (e.g. copy an esf file while removing all beam null events).
Build system: Fixed bug that caused configure to fail if netCDF has a pkg-config installation while GMT5 is in a specified but nonstandard location.
Mbnavadjust: Recast and improved the inversion. Added a "perturbation" model display which does not include the average offsets between the individual surveys in projects involving multiple surveys.
Mbcontour, mbswath, mbgrdtiff: Included fixes suggested by Joaquim Luis for compatibility with the next GMT5 release.
Mbclean: Removed -M3 and -M4 options that previously caused the program to null (or zero) rather than flag bad soundings. This is an obsolete feature that only made sense prior to existence of mbprocess.
Mbbackangle: Fixed mbm_grdplot call to no longer use an obsolete option.
Mbnavadjust, mbnavedit: Removed references to GMT and netCDF in the Makefile.am file in both source directories.
Mbnavadjust, mbnavadjustmerge: Added a new type of constraint referred to as a global tie. Each data section can have one of its navigation points tied to the fixed global frame of reference with a specified x, y, z offset (or just x and y, or just z) and x, y, and z uncertainties in the offset values. These global ties are set using mbnavadjustmerge. The relevant mbnavadjustmerge commands are: --set-global-tie=file:section[:snav]/xoffset/yoffset/zoffset[/xsigma/ysigma/zsigma] --set-global-tie-xyz=file:section[:snav] --set-global-tie-xyonly=file:section[:snav] --set-global-tie-zonly=file:section[:snav]
Mbnavadjustmerge: Added ability to unset (delete) global ties and crossing ties. The relevant mbnavadjustmerge commands are: --unset-global-tie=file:section --unset-tie=file1:section1/file2:section2
Mbnavadjust, mbnavadjustmerge: Explicitly added references to libgmt and libpsl in the src/mbnavadjust/Makefile.am file so that the mbnavadjust and mbnavadjustmerge executables are linked to those libraries. This is to solve a mysterious dependency of mbnavadjust on libgmt on CentOs6 - the program was failing due inability to find libgmt.so.5 even though the code does not reference any GMT or GMT5 function or header file. Presumably this change will go away when the mystery is solved.
Mbsslayout: fixed automatically generated plottin script.
Mbm_route2mission: Added multibeam maximum range value.
Plot macros (mbm_grdplot, mbm_grd3dplot, mbm_grdtiff, mbm_histplot, mbm_plot, mbm_xyplot): Now generate plotting scripts that will not attempt to display the plot on the screen if invoked with a "-N" command line argument.
Format 64 (MBF_MR1PRVR2): Added include of <sys/time.h> in mbbs_defines.h to facilitate building under cygwin.
Multi-macros (mbm_multiprocess, mbm_multicopy, mbm_multidatalist): Changed to use datalist.mb-1 as default input and to use 4 as the default number of CPUs.
Mbedit: Added fast scroll through a file if the forward or back mouse buttons are held down more than 2 seconds.
Mbextractsegy, mbsslayout: Changed output section/line plotting script so that it will not attempt to display the plot on the screen if invoked with a "-N" command line argument.
Mbprocess: Reduced informational output when not in verbose mode to make the output from use of mbm_multiprocess cleaner.
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
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.
Mb7kpreprocess: Switched beam angle calculation to the mb_beaudoin() function already used by mbkongsbergpreprocess (contributed by Jonathan Beaudoin).
Mbm_bpr: Made compatible with GMT5.
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 latitude values from the tables used for interpolation onto ping times.
Mbrolltimelag: Fixed automatically generated roll-slope correlation plot.
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 existence 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.
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.
- Version 5.4.2220 January 22, 2015 (Last GMT4-compatible archive revision)
- 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
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.
Mbinfo: Fixed JSON format output to file (previously missed final closing bracket).
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.
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.
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).
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.
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.
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.
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.
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.
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 palette 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.
Format 121 (MBF_GSFGENMB): Fixed bug in which null sensor depth and altitude values are handled incorrectly.
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.
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.
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.
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.
Install_makefiles: Fixed old build system so that it successfully compiles and links the new, unfinished program mbsslayout.
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.
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.
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.
MBeditviz: Fixed interactive application of pitch bias and heading bias changes.
MBnavadjustmerge: New program to merge two existing MBnavadjust projects.
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.
Several programs: Fixed formatting 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).
src/bsio/Makefile.in: Added to archive (previously mistakenly left out).
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.
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.
Release 5.4.2181
htmlsrc/mbsystem_home.html & htmlsrc/mbsystem_faq.html: Actually committed pictures of Christian Ferreira and Krystle Anderson to the archive
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.
Release 5.4.2176
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.
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.
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.
Mbinfo: Fixed bug in variance calculation (memory overwrites of the relevant arrays).
Format 241 (MBF_WASSPENL): Made format suffix ".000" recognizable as format 241.
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.
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.
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.
MBedit: fixed use of beamflag setting macros that were messed up yesterday.
General: fixed many compiler warnings.
General: implemented changes suggested by Joaquim Luis in order to enable building MB-System on Windows systems.
Release 5.4.2159.
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.
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.
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.
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.
Format 201 (Hysweep HSX): fixed sign error in handling of pitch values.
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.
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.
Src directories src/mbio and src/utilities: Fixed a number of debug print statements that treated pointer values as %ul rather than %p.
Buildsystem: More tweaking of configure.ac file, including making the comments output more sensible.
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.
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.
MBsxppreprocess: Added nonfunctional stub for program mbsxppreprocess to be developed by David Finlayson.
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.
Build system: Further modification to the src/mbview/Makefile.am file.
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).
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).
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.
Mbdatalist: Fixed generation of old-format fbt files.
Web page documentation: Updated basic web pages included in the distribution.
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.
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).
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.
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.
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.
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.
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).
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.
- 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 November 14, 2012
- Version 5.3.1999 November 13, 2012
- Version 5.3.1998 November 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
Mbprocess: Fixed a couple more mistakes on lines 5659 and 5662 in mbprocess.c.
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.
Mbsvplist: Added -N option to limit the number of SVP profiles that can be output. (contributed by Suzanne O'Hara)
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)
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
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
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.
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.
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.
Mb7k2ss: Program exits if topography grid specified but reading the file fails.
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.
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.
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.
Mbkongsbergpreprocess: Fixed bug causing seg faults on Linux
Format 88 (mbf_reson7kr): Removed debug messages left in by mistake
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.
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.
Mbkongsbergpreprocess: Fixed -O option to direct all output to a single file. Mb7kpreprocess: Fixed -O option to direct all output to a single file.
Mbkongsbergpreprocess: Fixed -D option to put output files in the specified directory.
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.
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.
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.
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.
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.
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%.
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.
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).
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)
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 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.
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.
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.
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.
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.
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.
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.
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.
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.
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 ancillary 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 ancillary records will be identified as MB_DATA_ATTITUDE1 (55), MB_DATA_ATTITUDE2 (56), or MB_DATA_ATTITUDE3(57).
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 ancillary 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 should 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.
- Version 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).
- 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
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 original bathymetry by modifying both the takeoff angles and the travel time measurement - this achieves matching of the original bathymetry to about 0.02% of altitude. Use of the second algorithm is not recommended because modifying the fundamental observations (travel times) to match the sonar's calculation is, well, unsatisfying and wrong. The bad option is there because I took the time to code it to see how well it would work.
The function mb_get_info() now properly applies the lonflip value. This in turn allows mbgrid to infer correct bounds in situations where the lonflip is important (e.g. data across the +/-180 degree boundary when lonflip is -1 or 1).
Changed MBnavadjust so that an "Inversion Smoothing" value replaces a no-longer-used "Inversion Precision" value. This value, accessible under the Options dialog, sets the importance of smoothing in the adjusted navigation model. The default is 4.00, and possible ranges are 0.10 to 10.0, where the smoothing penalty weight applied to the first and second derivatives of the adjusted navigation perturbation is ten raised to this power.
Added support for Kongsberg EM2040 multibeam in formats 58 and 59.
Changed MBnavadjust so that default settings for section length and contour interval are appropriate for high resolution surveys such as those produced by AUV's equipped with >100 kHz multibeams.
Fixed plotting macros mbm_plot, mbm_grdplot, mbm_xyplot, mbm_grd3dplot so that the calls to display postscript graphics using gv in the output plotting scripts scale plots to fit on the screen.
Fixed mbm_route2mission to use proper camera control when generating mission scripts for the MBARI Benthic Imaging AUV.
Added -W option to set the desired swath width of sidescan output from 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 ancillary and survey data records.
Update GSF code to version 3.02, released 28 September 2010.
Set MBeditviz to resolve format id's in output parameter files when filenames do not follow known suffix conventions.
Added support for a number of new data records in the Reson 7k data format, following the 19 June 2009 addendum to the 7k format version 1.00 specification.
Changed mb_malloc() calls in mb_format.c and mb_buffer.c to mb_mallocd() calls for greater debugging capability.
Added some debugging statements to mbprocess.c.
Changed mbm_grdplot macro to use the variable names embedded in seismic section GMT grid files generated by mbsegygrid.
Improved autopicking in MBnavadjust to the point where it is actually useful. Also fixed bug that caused eventual seg faults when analyzing many crossings in a single session.
Fixes to Reson s7k (format 88) support allowing mbnavlist to use position records as navigation channel 3. This in turn allows mbrolltimelag to work with Reson 7k data collected by MARUM (University of Bremen).
Added file name and line output to debug messages in mbr_l3xseraw.c to aid in later work to fully support the current XSE data format.
Set mbrolltimelag to only attempt to generate a variable time lag model plot if more than one robust time lag values have been generated.
Updating in preparation for beta release version 5.1.3beta1874.
Moved src/mbaux/mb_rt.c to src/mbio/mb_rt.c and made this raytracing code part of libmbio rather than libmbaux.
Fixed deallocation of raytracing data in mbprocess.
Added source type flag (CW or chirp) definition to src/mbio/mb_status.h
Add mb_io_pulses() function definition to src/mbio/mb_io.h as a pointer for functions in i/o modules that extract source type (CW or chirp) for individual beams. Added mb_pulses() function calls to src/mbio/mb_define.h 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.
Further changes to mbnavadjust:
- The inversion stops if it is diverging rather than converging on a navigation adjustment model solution.
- The program will insure that all crossings have the later section second by flipping the order of crossings if necessary while reading an old project.
- The program also resorts the crossings when it reads a project.
Slight modification to mbm_grdplot map annotation scheme (degrees + minutes for maps up to 4 degrees across where only degrees shown before for maps wider than 1 degree).
Changes to mbm_route2mission to accommodate new capability of MBARI Mapping AUV to record full water column data from the Reson 7125 multibeam.
Move mb_mergesort() function prototype from mb_esf.c to mb_define.h.
MBnavadjust augmented with capability to check for new crossings and to recalculate overlap coverage of existing crossings after inversions. Users can also toggle previously analyzed crossing to "unset" status.
MB7kpreprocess augmented to handle Reson 7111 data sample from NGDC.
Fixed incorrect listing MB_DATA defines in mb_status.h.
Added per-beam heave data to mbsys_simrad3 ping structure to support bathymetry recalculation for EM710, EM302, EM122 data. Defined new processed bathymetry record for use in format 59, and set code to transparently read the old record and write only the new record. Mostly fixed handling of attitude data in bathymetry recalculation. There still seems to be a problem with handling heading data.
Fixed error in beam angle calculation for third generation Simrad multibeam data (formats 58 and 59, EM710, EM302, EM122) that made bathymetry recalculation by raytracing badly wrong.
Fixed problem where mb7kpreprocess made beams that should have been null valid but flagged.
Fixed bug that caused mbclean to fail to actually flag some beams identified for flagging.
Added button to zero all z offsets on crossings for cases where tidal corrections have been made before data were imported into a mbnavadjust 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.
Fixed yet another bug in MBnavadjust - this time getting the importation of old project files correct and, more importantly, getting the z-offset sign correct in the Naverr display.
Updated mb7k2ss man page.
Fixed bug in mbrolltimelag regarding popen/pclose use.
Fixed bug in mb_process.c file locking.
Fixed mbotps man page.Fixed bug in MBeditviz and added hot keys for editing (only partially successful because it's hard to reliably get the keyboard focus onto the rendering OpenGL widget.
Fixed mbotps man page.
Augmented MBnavadjust to allow referencing high resolution bathymetry (e.g. AUV surveys) to lower resolution bathymetry (e.g. hull mounted multibeam surveys). The navigation of specified files (typically the data collected from the surface where GPS is available) can be fixed so that everything else floats and is adjusted relative to those data.
mbprocess - improved error reporting to show why files are not being processed.
mbmosaic - fixed aspects of the footprint calculation, particularly fixing a bug that prevented footprints from being fully covered.
Added -S option to mbprocess for debugging file status values used to determine whether processed data files are "out of date".
Greatly improved mbnavadjust by adding a interim solution for a smooth navigation adjustment model fitting ties to fixed (immovable) data and by making all of the internal crossing and tie conventions consistent. MBnavadjust now outputs version 3.0 nvh project files, but will transparently read and translate earlier version nvh project files.
From now on beta releases will be named according to the corresponding source archive revision in the MB-System Subversion source code archive. This will allow us (and users) to more precisely track code changes relative to the beta releases.
Fixed support of Reson 7k data (format 88) to work with MARUM AUV data. Includes changes to mb7kpreprocess.
Fixed 64 bit issues with Simrad, Reson 7k, and L3 XSE data (formats 58, 59, 88, 94).
Fixed 64 bit issues with mbnavedit, mbclean, and mbneptune2esf.
Added buttons to MBedit to immediately go to the start or end of the data.
Fixed sidescan beamwidths used by the Edgetech Jstar format i/o modules (formats 132 & 133).
Fixed memory management errors in MBgrdviz and mbfilter.
Fixed more 64 bit and memory management issues in MBeditviz and MBgrdviz.
Added a plot reset button and an ability to autoscale on unflagged soundings only in the MBeditviz 3D sounding cloud display.
Fixed handling of site and route points far from the display view in MBgrdviz.
Put actual (but still incomplete) text into the MBeditviz man page.
Changed print format for unsigned long values from %ld to %lu to avoid copious warning messages in Ubuntu.
--
--
Fixed pixel calculation algorithm in mbmosaic. Previously, sidescan data from each pixel were being treated as extending over a larger area than is correct.
Resurrected 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 ancillary 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.
Fixed MB-System compatibility with GMT 4.5.0
Fixed mbps memory handling.
MBgrdviz now displays ping/shot numbers when navigation is picked. MBextractsegy now embeds line numbers into the output segy files.
Fixed mbauvloglist to work with all MBARI AUV logs.
Fixed mbm_route2mission so that the AUV mission segment duration always corresponds to the actual mission segment length.
Added file locking to the mbprocess system. Now, when mbprocess starts working on a swath file, it creates a *.lck file parallel to the swath file and deletes the *.lck file when processing is complete. Other instances of mbprocess will skip a locked file. This allows users to run multiple instances of mbprocess on multiple machines on the same datalist structure. This crude sort of parallel processing can greatly speed up reprocessing of large datasets. This locking functionality will be extended to the processing tools mbedit, mbeditviz, and mbnavedit in the future.
Fixed bug in SeaBeam 2112 support that misplaced some sidescan data on little-endian machines.
Fixed the mbview library so that MBgrdviz will enable display of routes, sites, and navigation on all open windows when such data is loaded into one of the windows.
Fixed cause of frequent MBgrdviz crashes when displaying multiple windows.
Implemented timed background plotting in MBgrdviz so that full resolution displays automatically appear within a few seconds of the end of mouse interactions. Previously one had to click the "Full" button to get a full resolution view. At this point, the redisplay fails to happen occasionally.
Greatly increased speed of reading third generation Simrad data (formats 58 & 59, EM710, EM302, EM122).
Fixed mb7k2ss to avoid creating shadow zones in the extracted sidescan.
Fixed support for dual-head Simrad EM3002 data (formats 56 and 57).
Changed mbdatalist so that the -Z option (create datalistp.mb-1 datalist file referencing an input datalist with the $PROCESSED tag set) can be executed in conjunction with creating ancillary files with the -O or -N options.
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.
Fixed many more issues relating to clean compiles on 64 bit machines. In particular, store GSF and netCDF data stream id's in their own int-size variables rather than a pointer-size FILE variable, and declare mbview instance parameters as size_t rather than int so that passing these values through Xt event notify function calls as pointer values is clean. Also changed casting of pointer values to long for debug printing so that the pointer values are now casted to size_t values. This should allow for compatibility with Windows 64 bit builds, as Windows 64 bit C has a different type model than the rest of the universe (e.g. long = 32 bit on Windows but long = 64 bit for gcc).
Fixed a few more issues relating to clean compiles on 64 bit machines. We're iterating towards a working version by getting problem reports from people like Hamish Bowman, Bob Arko, and Bob Covill.
Fixed EM3002 support to reliably detect whether data comes from a single or double head sonar (formats 56 & 57).
Fixed problem with EM710 support (formats 58 & 59).
Incorporates all changes listed above.
Fixed memory management bug for formats 56 and 57 (Simrad EM3002 etc).
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
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 comments 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.
- 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
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.
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 latitude.
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.
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.
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.
--
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.
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).
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.
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).
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.