Software Development At CTI

Chesapeake Times, Vol 11 | Oct 2022

Software development has been on my mind lately. SonarWiz V7.10.00 is a big release and has been under development since June 2022. In this version of SonarWiz we made a significant change by updating our geodesy engine. This update took a significant amount of the development time. During development we had to replace the current code while trying to not rewrite significant parts of SonarWiz and to keep SonarWiz’s backwards compatibility. While rewriting code can be good we have to approach it with a bit of thought. As a programmer I have an instinct to rewrite sections of code that I see. The old code might be at first glance hard to understand. It might be ugly. It might just be part of a section of code that we are trying to debug. As attractive as rewriting the code to our liking might be, we have to remember that code doesn’t wear out. It is not like a shoe that gets dirty and the sole wears through. Old code has many hours of development and testing time invested in it. It has been tested by users and has worked for a while. Sometimes for a long time. Time has been put into it to make it sturdy and run correctly. Rewriting it might get rid of the old bug and make it nice and pretty, but it costs time to write it and like a mythical hydra it could introduce new bugs.

Our next major improvement centers around rethinking our CSF data format that is used to store side scan and sub-bottom sonar data. At the time the CSF format came about (SonarWiz V1.0 – 1998), hard drives were mechanical and disk access in small sequential chunks was fast. Times have changed and now our hard drives are solid state and some are networked. Reading and writing files in small sequential chunks is now slower. While we have made many improvements to the CSF code in order to make disk access faster and more efficient it is clear that we need to rethink it from the ground up. In the new CSF format we will optimize disk access to dramatically speed up drawing in the plan view, signal processing, and exporting data. In addition to an increase in speed we will add space for additional data to add more features to side scan sonar and sub-bottom post processing.

SonarWiz has gone through many large changes over the years. In 1998 SonarWiz V1.0 was introduced. It started life as a recording and playback program for analog side scan sonar systems. In 2003 SonarWiz became SonarWiz.Map and added real time mosaicing. In 2006 SonarWiz added sub-bottom processing. In 2010 SonarWiz received a major rewrite and face lift when CTI updated the user interface by adding the ribbon bar and the project explorer in SonarWiz 5. Along the way SonarWiz 5 added 3D bathymetry processing. SonarWiz V6 was introduced in 2015. It added many improvements including floating point samples, higher mosaicing resolution, and much improved data coloring. SonarWiz 7 was introduced in 2017. It added dongle free licenses and hundreds of other improvements.  As we enter the last quarter of 2022 we will continue to improve SonarWiz for the future.  To visually show the changes through time I have gathered some screen captures of different versions of SonarWiz and presented them in miniature below.

SonarWiz.MAP SonarWiz.Map + SBP
SonarWiz 5 SonarWiz 6
SonarWiz 7