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 |
|---|---|---|
|
NOAA CO-OPS station id (Tides) |
|
|
Days to show (1–31) and datum: |
|
|
Wave period (s), depth and height (your units), deep-water angle (°) |
|
|
Wind-wave wind speed, fetch (km or nmi) and duration (h) |
|
|
Practical salinity, in-situ temperature, sea pressure (dbar) |
|
|
Currents: latitude and wind speed |
|
|
NDBC station id |
|
|
|
|
|
One of the presets below |
|
example= |
Shows |
|---|---|
San Francisco tides for a week on MLLW |
|
Eastport, Maine — a 5–6 m range near the Bay of Fundy |
|
Pensacola — a diurnal tide, one high and one low a day |
|
A 10 s, 2 m swell arriving at 30° and shoaling to breaking |
|
Wind waves from 20 m/s over a 100 km fetch |
|
Standard surface seawater, SP 35 at 15 °C |
|
Deep water at 4000 dbar |
|
The Ekman spiral for a 10 m/s wind at 45°N |
|
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).
Feedback is a gift. Something to improve, a feature to add, or a bug? Tell me.
Runs entirely in your browser; nothing you type leaves this page.