MB-System: An Open-source Bathymetric Processing Solution

A 876Kb PDF of this article as it appeared in the magazine complete with images is available by clicking HERE

LiDAR has long been a fast and cost-effective means for visualizing the surface of the ocean floor, but while the shape of the seafloor can be accurately found, depths are usually shallower than they are in reality–a very critical aspect when mapping harbor channels for navigation. Hydrographers and other researchers studying the ocean often require a much higher level of granularity for seafloor imagery than what can be provided by current LiDAR intensity algorithms, thus requiring the use of multibeam echosounders to attain high resolution imagery. This comes at a higher cost, both financially and temporally, but for applications such as navigation, habitat mapping, and transoceanic cable-laying, multibeam remains a precise and valuable remote sensing tool. The open source software in question, created to handle this multibeam data is a comprehensive suite of programs known as MB-System.

MB-System is a software suite comprised of a variety of command-line-based programs used for processing bathymetric and backscatter data collected from multibeam, interferometric, and sidescan sonars. The software is distributed for free under the GNU General Public License for Unix-based operating systems. This allows individual users to create their own customized modules or integrate community-developed add-ons to enhance the software without dealing with the red tape associated with proprietary commercial software.

Before proceeding further, I have a tongue-in-cheek confession to make. A mere three months ago, I was but a simple college student and disciple to the Church of Point-and-Click. My fellow classmates marveled at the speed and accuracy of my mouse pointer, how it could so elegantly find the icon for our university’s big-box bathymetric editor and open it with nary a wasted second. Would you like to open an existing project? Yes, click.

Would you like to calculate uncertainty and generate a CUBE surface? Sure, why not, all the cool bathymetry kids are–click. Yet another click opened a visual sounding editor, a depraved place where anyone who has cleaned bathymetric data knows is no place for gentlemen or honor. After choosing your weapon, usually an area select or lasso tool, you drag your pointer across the field of view, culling bad soundings with the cold, calculating precision of a 9-year-old fragging other players in Halo.

The impetus behind this article occurred after I graduated, drove 3000 miles across the country to Seattle for an internship, and was thrust right in the middle of an office of non-Window users, i.e. geeks, and told to learn everything I could about MB-System.

Work: "By the way, it doesn’t run on Windows."
Me: "Then what does it run on?"
Work: "Linux"
Me: "Linus…?"
Work: "Linux. L-I-N-U-X."
Me: "Oh…what?"

Facetiousness aside, I had actually heard of MB-System before my internship, but like other command-line-based utilities I was aware of; it was spoken of in hushed, sinister tones among my fellow undergraduates (and a professor or two). What I hope to convey by the end of this article is not so much a call to burn our mice, grow beards, and march on Redmond, but rather to realize that there is a valid alternative to pricey proprietary software. Alternatives can sometimes be different from what some of us are used to, but provide exciting new ways to optimize workflows and give us more time to view pictures of cats online.

As experienced Unix/Linux users already know, some of the huge advantages of using open source software lie in the very animus governing its existence: code flexibility and free availability. It’s no small surprise then that MB-System was initially developed and directed at the academic research community where such virtues are widely desired. MB-System has several characteristics to distinguish itself from other similar software including, but not limited to, parallel processing (utilizing any tool at any point in the workflow), the ability to deal with huge datasets by using recursive lists of data files (or lists of datalists, i.e. multiple surveys), or format independence (all processing tools are applied in the same way regardless of sonar format).

Quick history and background
MB-System was originally developed at the Lamont-Doherty Earth Observatory (LDEO) of Columbia University in 1993 and is currently administered and updated by original developers Dale Chayes of LDEO and David Caress of the Monterey Bay Aquarium Research Institute. As a non-commercial venture, MB-System depends on external support in the form of grants provided by the National Science Foundation, Packard Foundation, NOAA, and others. They maintain a listserv where a global community of users help troubleshoot issues that arise1. For much of its lifecycle, MB-System has been used mostly within the academic community, namely in such oceanographic stalwart institutions such as Woods Hole, Scripps, and Columbia University, but has seen increased use in industry and international institutions over the past few years.

The following tutorial is brief and easy to understand, even for non-Linux users, so it isn’t required to have MB-System installed to follow along. If you are interested in playing around with MB-System though (and I encourage it) the easiest way (especially for non-Linux or non-technical users) is to download an ISO of Poseidon Linux2, burn it to a DVD, and then boot the OS as a live disk. Poseidon is a free, full-featured OS built on an Ubuntu backbone optimized for marine GIS applications. The version of Poseidon I linked to has MB-System and its dependencies pre-installed which should save you a great deal of time (and headaches). However, if you would like to install MB-System on your native Linux installation for long-term use, follow the installation instructions3 on the MB-System homepage.

A quick and dirty tutorial
For the purpose of this tutorial, I’ll be using an abridged version of the MB-System Cookbook4 tutorial so feel free to use that as a reference and/or the MB-System UNIX Manual5, in a separate window if you would like a more in depth explanation of the processes used. Let’s say we just received a dataset6 containing some point cloud data and we want to generate a surface to ascertain areas that require further processing, i.e. areas with flyers and/or holidays.

MB-System reads files from a native format that combines bathymetry, navigation, and other information into a more efficient, compact format. For this tutorial our raw data files are already converted to .mb files, but for other applications you may need to convert raw data using the mbcopy command first. Widely-used sonar manufacturers such as Reson, Kongsberg, and Atlas are supported as well as a number of other manufacturers–a comprehensive list of supported sonar types can be found by visiting the MBIO link on the MB-System UNIX Manual page.

The first step when processing data is to compile our data into a recursive datalist which contains the files to be processed. This is done by using a pair of commands. A quick note: this isn’t a UNIX tutorial, but I’ll quickly describe the UNIX operators I used as I go for clarity.

$ ls *.mb183 > tmplist && mbdatalist -F-1 -I tmplist > datalist.mb-1

In English, we’ve told our system to take all files in our working directory that end in ".mb183" in and write them to a file named tmplist. The "&&" causes the next command to be run after the previous one has finished assuming the first completes successfully–it’s included to chain the "ls" and "mbdatalist" commands into one line. In this case, we’ve created a simple list then invoked the mbdatalist command to create a list that MB-System can use as a guide for which files to process. If you open datalist.mb-1 you’ll see that it looks something like this:

00020504100010.mb183 183 1.000000 00020504101010.mb183 183 1.000000 and so on…

The first column is the filename, followed by the file format, and finally a default grid weight which serves as a quality flag and can be manually edited if so desired.

The next step is to create a list of ancillary files that are useful for speeding operation of other MB-System programs and extracting survey statistics. The following command will suffice for our purposes.

$ mbdatalist -F-1 -I datalist.mb-1 -O -V

The -V option is common in many MB-System programs and simply provides verbose output as a progress indicator or potential debug aid. The -O option tells mbdatalist to create missing ancillary files and skip those already created. Alternatively, you could substitute -N in place of -O if you want to create new ancillary files regardless of whether they are already present or not.

After this finishes you should have additional files in your directory with the extensions .inf, .fbt, and .fnv. In order, these represent an information file which contains simple summary statistics for each file, and a fast bathymetry and fast navigation file used to create quick visual plots of data and speed operation in certain MB-System utilities.

We have a few options from here: we could use a script provided with MB-System named mbm_plot to generate a surface of data we have or we could create a gridded surface using mbgrid instead. There are options for spline interpolation of ungridded data points and a few other options if going with mbgrid, but we want to look at a rough surface to identify problematic areas so we’ll go with mbm_plot for this exercise. The syntax is simple:

$ mbm_plot -F-1 -I datalist.mb-1 -G1 && ./datalist.mb-1.cmd

The part of the command before "&&" generates a shell script to create a GMT7 Postscript plot of the data and -G1 tells it the program to fill swaths with a bathymetry shaded fill. The part of the command after the "&&" simply runs the shell script and creates the color plot.

In summary, we have a measly 3 lines of code that operated on a 46.1 MB directory in only 13.3 seconds on my not-so-impressive laptop. The image itself isn’t so impressive at first glance, but blowouts formed where the ship turned and inconsistencies in ping depth are readily evident.

This was a small dataset and didn’t involve other common tasks such applying corrections, changing projections, or cleaning of data, but it’s easy to see that a user with even a modicum of command-line knowledge can perform powerful operations faster than with a point-and-click interface. As a matter of fact, the process from start to finish (extracting code to a folder, writing out the commands and running them) took less than a minute of physical working time.

Visual tools
Despite the emphasis on command-line functionality in this article, visual tools are available in MB-System to edit SVP/SSP files, gridded data, and navigation when necessary. Even with ever-increasing precision in automated processing logic, there still isn’t a viable substitute for the human eye when it comes to finalizing bathymetric edits. The backend toolkit governing these tools, Motif/X11 is being switched to QT in future builds which will be a nice upgrade as well as opening the door for potential Windows functionality.

Future developments and final thoughts
Other exciting developments in the works for future versions include a water column processing module, support for newer sonar types (from EIVA, QPS, and others) used outside US academia and government, and an open-source implementation of the CUBE algorithm.

In summary, MB-System provides an excellent alternative for surveyors or anyone else working with marine-related geophysical data. As a research-oriented geologist myself, one of the major advantages of MB-Systems over commercial bathymetric-processing software is that it is scientific software that is written for scientists. While this may sound a bit circular and vague to some, this aspect cannot be understated for scientists who value the complete set of data rather than a subset i.e. analyzing water column data for the presence of bubble plumes. MB-System is practical for commercial applications as well. An oil-and-gas company assessing a potential pipe-laying route would only need an accurate bathy surface and/or a side-scan data to ascertain bottom hardness, both non-academic operations easily accomplished with MB-System.

J. Ryan Rembert is a GIS Analyst and Geologist working with OneOcean Corporation in Seattle, WA. He recently graduated with a B.S. in Geology from the College of Charleston where his research centered on various marine geology, GIS, bathymetric surveying, and carbonate geochemistry projects. His current projects encompass an array of research interests ranging from AUV submersible creation and hydrothermal vent field remote sensing to karst geomorphology and studying white-nose syndrome in North American bat populations.

1 http://listserver.mbari.org/sympa/info/mbsystem
2 http://ftp.marum.de/pub/christian/Poseidon_MBSystem_edition_64bit/
3 http://www.mbari.org/data/mbsystem/MB-README_5_3_1982.txt
4 http://www.ldeo.columbia.edu/res/pi/MB-System/mb-cookbook/#d0e1401
5 http://www.mbari.org/data/mbsystem/html/mbsystem_man_list.html
6 ftp://ftp.ldeo.columbia.edu/pub/MB-System/mbexamples.tgz
7 http://www.localhost:10018/content/view/8970/

A 876Kb PDF of this article as it appeared in the magazine complete with images is available by clicking HERE