Link to USGS home USGS Home
Contact USGS
Search USGS
USGS Hydroacoustics

Stationary Moving-Bed Analysis (SMBA)


Teledyne RD Instruments introduced the StreamPro acoustic Doppler current profiler in 2003, which did not include an internal compass. During a stationary moving-bed test, the StreamPro and float often tend to swim or kite from the end of the tether (the instrument rotates then moves laterally in the direction of the rotation, see video of Streampro and resulting shiptrack). Because the StreamPro does not have an internal compass, it cannot compensate for instrument rotation. This rotation and lateral movement of the StreamPro on the end of the tether generates a false upstream velocity and an incorrect moving bed bias velocity. The vector dot product of the boat velocity and the unit vector of the depth-averaged water velocity has been shown (Mueller and others 2007) to be an effective method to account for the effect of the rotation and lateral movement. SMBA was written to apply the dot product computations to raw data files collected using the StreamPro software, WinRiver, or WinRiver II and to provide the user with the mean moving-bed velocity, the mean water velocity for the processed stationary measurement, and now in version 4.20 and later the ability to correct a discharge measurement for moving-bed bias based on one or more moving-bed tests.

The algorithms used in SMBA are documented in (Mueller 2007)


USGS Software Users Rights Notice

Version Status Changes and Known Issues

Recommended - No code changes.
- Requires Matlab Runtime Libraries Version 9.0, either 32-bit version or 64-bit version depending on which version of SMBA you download.
- Compiled with Matlab 2015b.

Allowed - Improved sidelobe cutoff computations.
- Added warning when using raw (pd0) data for RiverRay, RiverPro, and RioPro.
- Requires Matlab Runtime Libraries Version 8.5, either 32-bit version or 64-bit version depending on which version of SMBA you download.
- Compiled with Matlab 2015a.
6.25 Allowed - Requires Matlab Runtime Libraries Version 7.17, 32-bit version (even on 64-bit operating systems)
- Fixed inconsistent version numbers in code.
- Checks for bottom track reference
- Checks for files no valid data
- Improved speed with new file reader functions
6.12 Allowed - Fixed bug associated with handling of RiverRay surface cells.
6.11 Allowed - Requires Matlab Runtime Libraries Version 7.17, 32-bit version (even on 64-bit operating systems)
- Change use of tfile to tfile_nbs to avoid reading the backscatter data. WinRiver II occasionlly put .$ in the backscatter data fields causing the tfile reader to crash.
- Minor bug fixes.
- Compiled with Matlab 2012a and requires Matlab Compiler Runtime 7.17.
6.00 Allowed - Changed dot product from depth-averaged velocity to near-bed velocity (this may result in some changes in values from version 4.4 and earlier).
- Added support for ASCII files for the moving-bed test.
- Added support for RiverSurveyor 1.0 files (*.mat).
- Added support for RiverSurveyor Live 1.5 or later (*.mat).
- Added support for RiverRay *.pd0 files.
- Corrected sign on bottom track for RiverSurveyor Live data.
- Only 4-beam solutions are used for all TRDI data formats.
- Cleaned up and commented code.
4.40 Do Not Use as of 8/2/2010 - Fixed a bug that would allow a negative moving-bed.
- Modified the handling of multiple moving-bed test to a true linear regression approach.
4.20 Do Not Use as of 9/30/2008 - Supports both WinRiver and WinRiver II.
- Added the capability of correcting the measured discharge for the moving-bed bias measured in the moving-bed tests.
3.40 Do Not Use as of 3/5/2008 - Fixed problem with SMBA reading files that had lost or corrupted ensembles.
3.32 Do Not Use as of 12/21/2007 - INITIAL RELEASE

How to Download the Software

The latest version of SMBA can be downloaded by clicking on the version number in the table above. In order to provide support for extrap and to provide an efficient means to communicate with users and allow users an efficient and organized means of providing suggestions and comments, you are encouraged to register for the OSW Hydroacoustic Forum. In the forum you will find an "SMBA" board under Hydroacoustics Software. Open both the SMBA board and click "Notify" to automatically receive emails on any bug fixes or issues identified with extrap. This is the only way of being automatically notified if there has been an identified problem or if a new version has been released.

Register for access to OSW Hydroacoustics Forums

Registered Users

Installation Instructions

  1. Install the appropriate Matlab Component Runtime libary, if necessary. For instuctions on how to determine if you have the needed library and/or to install the library see Matlab Component Runtime Library Download and Installation
  2. Download the SMBA executable from above.
  3. Select a directory and unzip the SMBA to store the SMBA*.exe file.
  4. Run the program by double-clicking on SMBA*.exe in Windows Explorer or My Computer. You may wish to create a shortcut to SMBA*.exe in a convenient location in the Start Menu or on the Desktop.

Operational Instructions

  1. If you created a shortcut to SMBA*.exe during the installation, you can run the program using the shortcut. Otherwise you can run the program by double-clicking on SMBA*.exe in Windows Explorer or My Computer.
  2. Select the units you wish to have the results displayed in. The units used to collect the data are independent of the units displayed in SMBA. This selection can only be made prior to processing the first moving-bed test.
  3. Click the 'Load MB Test' button and select the stationary moving bed test raw data file (*r.000 or *.pd0), WinRiver II classic ASCII output file, or RiverSurveyor Matlab file (*.mat) you wish to process. You may process multiple moving-bed tests but you must do them one test at a time. The name of the file you selected will be displayed in a box near the center of the window and a message indicating that the file is being read is displayed in red below the file name. When the processing is complete the graphs and results will be displayed. Be patient it takes some time for SMBA to read and decode the raw data file.
  4. Image of the SMBA user interface

  5. If a moving bed is detected a warning message will be displayed. You should read the warning and then click OK to close the message window. The main window will display the graphs and results from the computations. If a moving bed was detected the 'Adjust Q' button will become active to allow you to correct the discharge in the transects that comprise the measurement associated with the moving-bed test(s).
  6. To adjust the discharge in the transects associated with the processed moving-bed tests, click the 'Adjust Q' button and select all of the transects that comprise the measurement. You may use click and drag, shift click, or control click to select multiple files. All of the files should be selected. NOTE: The transect files must be ASCII output files (*t.000 or *ASC.TXT) or RiverSurveyor Matlab files (*.mat).
  7. A separate window will open to show the results of the discharge adjustment. If the window is not visible click the 'Show Results' button or if it says 'Hide Results' click it twice. The data shown in the Output Display window has also been place in the Windows clipboard so that it can be pasted into another application, such as, Word or Excel.
  8. You may process another measurement without exiting SMBA by clicking the 'Clear All' button. This resets the program to accept a new measurement beginning with the moving-bed test(s).
  9. Exit the program by Clicking the Close button.
  10. Image of the SMBA user interface

Interpreting the Results

Distance Moved Upstream:
This is the distance the dot product algorithm has determined the instrument moved upstream relative to the measured water velocity. A negative number indicates the instrument moved downstream. This includes both real and preceived (moving bed) instrument motion.
Duration of Test:
This is the amount of time during which valid data were collected. Invalid bottom track data are not included in this duration.
Mean Moving-Bed Velocity:
The mean moving-bed velocity is computed as the numeric average of the moving-bed velocities computed for each ensemble. (Algorithms used in processing)
Mean Water Velocity:
The mean water velocity corrected for any detected moving-bed velocity. If the moving-bed velocity is negative, no correction is applied. The mean velocity for each ensemble is computed from the mean of the velocity vector components. The mean velocity of the entire measure is computed as the mean of the mean velocity magnitude for each ensemble, because the Streampro has not compass to measure velocity direction for each ensemble.. are averaged for each ensemble and the mean velocity. (Algorithms used in processing)
Mean Range from Xducer:
The mean depth for measurement is computed as the simple mean of thethe depth-weighted mean depth of each ensemble.
Potential Error (%):
The potential error is computed as the ratio of the mean moving-bed velocity and the mean water velocity expressed as a percentage. If the mean moving-bed velocity is negative this value defaults to 0.00. The user should consider a means to correct the measurement for bias caused by a moving bed when the potential error is greater than 1 percent. (See Oberg and others 2005)
Shiptrack Plot
The shiptrack plot is the resulting boat motion determined from the dot product of the boat velocity and water velocity unit vector. The reference is distance upstream along the y-axis and distance cross-stream along the x-axis relative to the water velocity. Note all the water velocity sticks are pointing straight down.
Cumulative Moving-Bed Velocity Time Series
This plot shows the cumulative mean moving bed velocity (y-axis) versus the duration of the data collected (x-axis). This plot can be used to ensure that sufficient data were collected for the mean moving-bed velocity to have reached an equilibrium value.