Skip to content

Swap Omniscan 450 Channels

VGroshkov edited this page Sep 23, 2026 · 2 revisions
image

The Cerulean OmniScan 450 side-scan sonar records port and starboard as two separate ping streams inside the same SVLOG file. If the sonar was mounted upside-down, or the port/starboard cabling was crossed during a survey, every ping ends up labelled with the wrong side, and the waterfall / imagery come out mirrored left-to-right. The Swap Omniscan 450 channels script fixes this directly in the SVLOG file, without needing to re-record or re-process the survey.

Since the script declares the SVLOG template, it appears in the Scripts drop-down only for opened Cerulean SVLOG files.

Note: this script only runs on Windows — its metadata restricts it to that platform, so it will not appear in the Scripts drop-down on macOS or Linux.

Workflow summary.
An OmniScan 450 SVLOG file is a stream of packets, each carrying a b'BR' magic header, a packet id and a checksum. The script walks the file packet by packet and, for every side-scan ping packet it finds:

  • Reads the transducer look-angle stored in the payload — +90.0 for starboard, -90.0 for port.
  • Flips its sign, which relabels the ping to the opposite side.
  • Recomputes the packet's checksum, since the payload changed.

Only that one field is touched per ping — the raw sample data is never modified, and packets that are not side-scan pings (navigation, attitude, bathymetry, …) are left completely untouched. The script has no third-party dependencies.



  1. Use the "Open files" toolbar button or drag & drop the OmniScan 450 SVLOG file that needs its channels swapped.
chart
  1. In the Scripts panel, choose Swap Omniscan 450 channels. The script has no parameters — it always processes the whole file.
script
  1. Click "Apply".


One small technical note!

This script rewrites the SVLOG file in place as soon as it finishes reading it — unlike most GeoHammer scripts, it does not work on a private copy that only gets written back on success. Always keep a backup of the original file before running it, and keep in mind that running it a second time by mistake simply swaps the channels back.

Clone this wiki locally