Sea state from a phone in a coat pocket

Wave heights on the Cleggan – Inishbofin ferry

18 September 2026. Vertical motion recorded by a hand-held phone during the crossing, turned into heave, wave height and a wave spectrum.

Hm0 is the significant wave height, the standard 4√m₀ measure. Periods are as encountered by a vessel making 11 knots, not true wave periods.

Where the motion was measured

The full 35-minute GNSS track in grey; the 19.6 minutes with IMU data coloured by significant wave height in four-minute windows. Hover or tap a coloured segment for that window's numbers.

significant wave height
Show the window-by-window data

Vertical motion through the crossing

Heave: the deck's vertical displacement, band-passed to 2–14 second waves. The dashed lines mark ±Hm0/2 — most crests and troughs should sit inside them.

Line chart of heave displacement in metres against UTC time.
Show the largest 40 waves

Sea state through the crossing

Significant wave height and the largest single wave, both in four-minute windows, over the individual zero-up-crossing waves.

Line chart of significant wave height and largest wave per window, in metres, against UTC time.

Wave energy spectrum

Where the energy sat. Below 0.07 Hz the double integration is noise-dominated and nothing there is real; the clean minimum at 0.047 Hz separates that floor from the wave peak.

Log-log line chart of heave energy density against encounter frequency.

How this was measured

A phone held by hand, approximately level, top pointing aft, recording with strixie_mobile_service: accelerometer at 90 Hz, gyroscope at 52 Hz, magnetometer at 50 Hz, alongside a separate 1 Hz GNSS NMEA log.

  1. Attitude. A Mahony complementary filter tracks the world "up" vector in the device frame — the gyroscope carries the fast, wave-band rotation and the accelerometer only trims slow drift, with a 50 s time constant. This matters: a plain low-passed "gravity" vector absorbs wave-band roll and pitch, and the residual tilt error injects g·θ of horizontal acceleration into the vertical channel — one degree of error is 0.17 m/s².
  2. Vertical acceleration is the measured acceleration projected onto that up vector, minus its mean.
  3. Heave by double integration in the frequency domain, with a −1/(2πf)² transfer function rolled off outside 0.07–0.50 Hz.
  4. Statistics from the spectral moments (Hm0 = 4√m₀) and from zero-up-crossing analysis of the heave series.
  5. Time alignment. The IMU clock is boot-relative and its wall-clock sidecar was not exported, so the offset was recovered by correlating tilt-compensated magnetometer heading against GNSS course over ground. Clear minimum, ±15 s ≈ ±85 m along track.

Why the numbers hold up

What it is not

Files