Chris Collins

Tools · ocean

Ocean lab

Predict tides from NOAA harmonic constituents and check them against NOAA's own predictions; solve the wave dispersion relation, grow wind waves, shoal and break them; compute TEOS-10 seawater properties with a T–S diagram and CTD profiles; work out Coriolis, Ekman and geostrophic currents; and plot NDBC buoy observations.

Added

How to use it

Five tabs. Each plot has a Full screen button (or press F); ◫ Panels hides the inputs in full screen.

How to use it

  • Tides — pick a NOAA CO-OPS station (a common one, its id, or search the 1,300+ stations with harmonic constants), a start date and a number of days. The tool fetches the station’s harmonic constituents and datums and computes the tide itself:

    h(t) = Z + Σ fᵢ·Hᵢ·cos(Vᵢ(t) + uᵢ(t) − κᵢ)

    where H and κ (Greenwich phase) come from NOAA, V is the equilibrium argument from the Moon’s and Sun’s mean longitudes (Meeus' polynomials), and f and u are the 18.6-year nodal corrections from Schureman’s Manual of Harmonic Analysis and Prediction of Tides (1958). NOAA’s own prediction is plotted as dots, with the maximum and RMS difference, and the high/low table lists both. Heights are relative to MSL and shifted to the datum you choose (MLLW is the US chart datum). The form number F = (K1 + O1)/(M2 + S2) classifies the tide: semidiurnal, mixed or diurnal.

  • Waves — linear (Airy) wave theory for any depth: the dispersion relation ω² = gk·tanh(kh) is solved exactly (Newton’s method), giving wavelength, phase and group speed, the deep, intermediate or shallow regime, energy E = ρgH²/8 and power E·cg per metre of crest, the Miche and depth-limited (H = 0.78 h) breaking heights, shoaling Ks = √(cg0/cg) and refraction over straight parallel contours (Snell’s law). The chart follows the wave from deep water to where it breaks. Wind waves grows a sea from wind speed, fetch and duration with the Shore Protection Manual (USACE 1984) deep-water equations (JONSWAP-based): fetch-limited, duration-limited or fully developed.

  • Seawater (TEOS-10) — practical salinity, in-situ temperature and pressure give Absolute Salinity, Conservative Temperature, potential temperature, in-situ and potential density (σ₀ to σ₄), α, β, sound speed, the freezing point and depth. The functions are a port of GSW-C, the TEOS-10 Gibbs SeaWater toolbox (75-term density polynomial). The T–S diagram draws σ₀ isopycnals; import a CTD cast as CSV (or use the demo cast) to plot it there and as profiles of Θ, SA, σ₀ and sound speed, with the sound-speed minimum (the SOFAR channel).

  • Currents — the Coriolis parameter f = 2Ω·sin φ, β, the inertial period 2π/|f|, wind stress (Large and Pond drag), Ekman transport τ/(ρf) at 90° to the wind, Ekman depth and surface current (empirical, from Stewart’s Introduction to Physical Oceanography, or from an eddy viscosity), an animated Ekman spiral, and the geostrophic current from a sea-surface slope.

  • Buoys — NOAA National Data Buoy Center realtime observations for a station: significant wave height, dominant and average period, wave and wind direction, wind and gust, water and air temperature. NDBC’s files can’t be read by a web page directly (no CORS headers), so live data comes through the gitwebsite app’s companion; without it the tab shows a recorded sample from buoy 46026 off San Francisco.

Metric or imperial units and local time or UTC are remembered; a CTD cast you import stays in this browser and never goes into a share link.

Checks

  • TEOS-10: every check value in GSW-C’s gsw_check_data.h (version 3.05) for the functions used — CT from t, t and θ from CT, ρ, specific volume, σ₀, α, β, sound speed, freezing point, z ↔ p, SR — agrees to within GSW’s own tolerance.

  • Tides: for San Francisco, Boston and Pensacola (17–18 Oct 2026) the hourly heights agree with NOAA’s predictions to within 2 cm (RMS about 1 cm), high and low water times within 10 minutes; the constituent speeds match NOAA’s listed speeds and M2’s node factor swings between 0.963 and 1.038 over the nodal cycle, as Schureman tabulates.

  • Waves: h/L against the h/L₀ table of the Shore Protection Manual (Appendix C), deep and shallow limits, and the shoaling minimum Ks = 0.913.

  • Ekman depths against Stewart’s Table 9.2 (75 m at 15° and 45 m at 45° for a 5 m/s wind).

Limits

  • No storm surge, wind set-up, river flow or pressure effects — astronomical tide only, like any tide table. Constituents beyond NOAA’s standard 37 are skipped. Subordinate stations (with offsets rather than harmonic constants) aren’t supported.

  • Absolute Salinity needs the SAAR atlas (a large data file); here SA = SR + the δSA you enter (0 by default). Not for the Baltic (its own composition).

  • Waves are linear and monochromatic over straight, parallel contours; no friction, diffraction or wave–current interaction. Wind-wave growth is the 1984 SPM method in deep water; expect ±20%.

  • Ekman theory assumes steady wind, constant eddy viscosity and deep water, and fails near the equator.

  • NDBC data is provisional and the buoy may be adrift or off station; check NDBC’s station page.

Linking to an example

Add the tab after #: tides, waves, seawater, currents or buoys.

Parameter Meaning Example

station

NOAA CO-OPS station id (Tides)

station=9414290

days, datum

Days to show (1–31) and datum: MLLW, MSL, MHHW, MTL, NAVD88, …

days=7&datum=MLLW

T, h, H, theta

Wave period (s), depth and height (your units), deep-water angle (°)

T=12&h=8&H=1.5

U, fetch, dur

Wind-wave wind speed, fetch (km or nmi) and duration (h)

U=15&fetch=200&dur=12

sp, t, p

Practical salinity, in-situ temperature, sea pressure (dbar)

sp=34.7&t=2&p=3000

lat, uc

Currents: latitude and wind speed

lat=30&uc=8

buoy

NDBC station id

buoy=46042

units

metric or imperial

units=imperial

example

One of the presets below

example=eastport

example= Shows

sf-tides

San Francisco tides for a week on MLLW

eastport

Eastport, Maine — a 5–6 m range near the Bay of Fundy

pensacola

Pensacola — a diurnal tide, one high and one low a day

swell-10s

A 10 s, 2 m swell arriving at 30° and shoaling to breaking

gale-100km

Wind waves from 20 m/s over a 100 km fetch

surface-35

Standard surface seawater, SP 35 at 15 °C

deep-4000

Deep water at 4000 dbar

ekman-45n

The Ekman spiral for a 10 m/s wind at 45°N

buoy-46026

NDBC 46026 off San Francisco

Related: fluids (buoyancy, pressure, flow), physics (waves and units), sun and moon (moon phase and position — what drives the spring–neap cycle), flight tracker (another live-data map tool), Meshtastic toolkit (off-grid messaging at sea and on land).

Runs entirely in your browser; nothing you type leaves this page.