Releases: dwcaress/MB-System
5.7.9beta60
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.
5.7.9beta59
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.
5.7.9beta58
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.
5.7.9beta57
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.
5.7.9beta56
More changes to the Cmake build system.
5.7.9beta55
Fixed build problem in bsio library regarding the inclusion of #include <stdint.h> in both Autotools and CMake build systems.
5.7.9beta54
Fixed bugs in both Autotools and CMake build systems
5.7.9beta53
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.
5.7.9beta52
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.
5.7.9beta51
Removed problematic debug message inadvertently left in 5.7.9beta50.