Methodology
This tool implements the three-wave-probe reflection analysis used by Lamsal, Haus & Rhode-Barbarigos (2026), An experimental study on wave transmission over submerged SEAHIVE® breakwaters, Coastal Engineering Journal (doi:10.1080/21664250.2026.2661171).
Following the methodology of Goda & Suzuki (1976) and Kobayashi, Cox & Wurjanto (1990), incident and reflected wave heights are separated from co-linear capacitance wave-probe records using linear wave theory. The free surface is modeled at each frequency as a superposition of incident and reflected linear waves; the Fourier coefficients of each gauge are combined to solve a 2×2 system for the incident and reflected amplitudes ai, ar: Aj = aie−ikxj + are+ikxj. The wave number k follows from the linear dispersion relation ω² = gk tanh(kd), solved by Newton–Raphson iteration from a Fenton–McKee seed. A Bluestein-algorithm DFT handles records of arbitrary length.
The method is valid when the probe spacing Δx satisfies 0.05 ≤ Δx/L ≤ 0.45, where L is the local wavelength. The tool checks this band and the 2×2 inversion conditioning at every frequency and discards bins that fail either test; the fraction of measured spectral energy that survives this filter is reported as the retained-energy fraction. Incident and reflected spectra are integrated to the spectral significant wave heights Hm0 = 4√m0, and the coefficients are defined as Kr = Hr/Hi and (when two arrays are present) Kt = Hi,2/Hi,1.
Method selection. The default analysis is the
redundant three-probe array of spectral.js
(reflectionAnalysis): the three probe pairs are
averaged at every valid frequency, and the result is reported
as long as it retains at least 80 % of the spectral
energy. When the three-probe inversion is ill-conditioned, the
tool falls back to the best admissible two-probe pair and
flags the row with a small "2P" badge in the results table
(otherwise a "3P" badge is shown). The
Analysis method dropdown in the settings panel
lets the user override this selection: force three-probe with
no fallback, force two-probe on the best pair, or force a
specific two-probe pair (1–2, 1–3 or 2–3)
— useful for cross-checking a published result with a
different method.
Input files: 2, 3 or 6 numeric columns, detected
automatically. Two columns run two-probe Goda–Suzuki on
the single pair (only X12 is used); three
columns run a three-probe array (with automatic two-probe
fallback); six columns run two three-probe arrays in the same
file (channels 1–3 seaward, channels 4–6
shoreward). Water depth is set below and may be overridden per
file (auto-read from "Depth=d" in the file name when
present). The browser tool calls the same per-frequency
Goda–Suzuki routines as the Python WaveLabX package
(two_probe_goda, three_probe_array
and reflection_analysis); an automated
cross-implementation test in the WaveLabX test suite confirms
that the two interfaces produce numerically equivalent results
on identical inputs.
Settings
What does this do?
- Auto — runs the three-probe redundant array; if its retained-energy fraction falls below 80 %, falls back to the best admissible two-probe pair.
- Three-probe only — forces the three-probe routine and never falls back, even if the inversion is ill-conditioned (the row is flagged in the warning panel).
- Two-probe (best admissible pair) — skips three-probe entirely and reports the two-probe pair with the highest retained-energy fraction.
- Two-probe (gauges 1–2 / 1–3 / 2–3) — forces that specific probe pair; intended for cross-checking a published result with one method.
For 2-channel CSVs the method is always two-probe Goda–Suzuki regardless of this setting.
Array 1 — ch 1–3 (seaward)
Array 2 — ch 4–6 (shoreward)
Each array is defined by two gauge spacings; gauge positions are taken as 0, X12, X12+X23. Water depth and gauge layout apply to every file; wave frequency is detected per file and is editable in the table. The number of gauges per file is auto-detected from the CSV: 2-column CSVs run two-probe Goda–Suzuki on the single pair (only X12 is used); 3-column CSVs run three-probe on Array 1 only; 6-column CSVs run two three-probe arrays.
Drop CSV files here · or click to browse
2, 3, or 6 columns of wave-gauge time series (auto-detected)
Visualization
Load CSV files, then pick one to plot its wave-probe time series.
Results
| File | d (m) | f (Hz) | T (s) | Hi1 (m) | Hr1 (m) | Kr1 | Hi2 (m) | Hr2 (m) | Kr2 | Kt |
|---|