A sonar does not take photographs. What comes off the array is a complex time series per channel per ping: pressure against time, with no image in it. The image is constructed afterwards, by asserting where the platform was when each of those returns was recorded and summing them so that energy from the same patch of seabed arrives in phase. Get the platform position wrong by a fraction of a wavelength and the image blurs.
The chain
The pipeline runs in a fixed order, and each stage is checkable against the file's own recorded attributes rather than against an assumption made at the top.
Three beamformers
Time-domain back-projection is the production path. It makes no assumption that the platform flew straight: it handles continuous motion, six-degree-of-freedom attitude, curved tracks, and circular collections, and because it is geometry-driven rather than band-specific it also focuses airborne radar.
Wavenumber (omega-k) processing is the exact inverse of the Fourier-wavefield forward model, which makes the pair a useful consistency check on each other, at the cost of assuming stop-and-hop motion.
Real-aperture stacking forms conventional side-scan imagery, so one scene can be compared across both imaging regimes.
Micronavigation
Inertial navigation is not accurate enough to focus a synthetic aperture. At 300 kHz the wavelength is 5 mm, and the platform position has to be known to a small fraction of that over an aperture several metres long. No affordable instrument delivers it.
So the track is recovered from the data. Every ping lays down a row of phase centres, the transmitter-receiver midpoints, spaced half a channel apart; the vehicle advances a whole number of those spacings between pings, two short of the array, so consecutive pings share two phase centres. On the instrument the fidelity page measures, that is 36 phase centres per ping and an advance of 34 spacings: the two fore-most centres of one ping are re-occupied by the two aft-most of the next. Those repeated centres observed the same patch of seabed from the same place, so comparing the phase of the two recordings measures how far the vehicle really moved, not how far it was commanded to. Those per-pair delay estimates are then fitted, with a Huber-robust least squares that keeps a handful of bad correlations from dragging the whole track, into a per-ping sway and heave history that the beamformer uses instead of the nominal line.
Even a perfectly measured track leaves one error behind: it corrects the path exactly only for points on the surface being imaged. How motion then blurs objects that stand above that surface is shown interactively in The surface of focus.
You can see this fail on purpose: the sound-speed slider on the walkthrough page introduces exactly this kind of error and blurs the image in front of you.
Display
The beamformer's real output is the single-look complex image: phase intact, suitable for coherent change detection, interferometry, and sub-aperture analysis. That is the product to train on.
The picture is derived from it for human eyes: magnitude, an adaptive Schlick tone map to pull a very large dynamic range into a displayable one, and a perceptual colour map. There is no logarithm in that chain, which matters if you are reproducing the display or comparing levels against it.