ForHosting KIT · Science

Significant wave height calculator

Paste the wave heights from a record and get Hs, the average of the highest third: nine waves topped by 2.4, 2.1 and 1.8 give an Hs of 2.1 in the same unit. Handy for buoy logs, coastal checks and oceanography homework. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon

Significant wave height, written Hs, is the standard summary of sea state used in marine forecasting, coastal engineering, ship routing, and offshore design. In the individual-wave (zero-crossing) definition, Hs is not the tallest crest in the record and not the arithmetic mean of every wave: it is the average of the highest one third of the measured wave heights after the series is sorted from largest to smallest. That definition matches how trained observers historically estimated “the height of the significant waves” and remains the quantity many standards and design codes refer to when they say significant wave height. This significant wave height calculator accepts a list of individual wave heights in any consistent linear unit (metres, feet, or centimetres), returns Hs together with the sample size, how many waves entered the highest-third average, and simple supporting stats (max, min, mean of all waves).

What significant wave height means and how Hs is computed

Start from a time series of surface elevation and identify successive individual waves by a standard zero-crossing method, or simply collect already-extracted crest-to-trough heights from a sensor log. You then hold a list of N non-negative heights H1…HN in one linear unit. Sort that list into descending order so the largest height comes first.

The highest third of the sample is the first n heights where n equals floor(N divided by three), except that when N is one or two the calculator still uses at least one height so a non-empty record always yields a defined Hs. Significant wave height is the arithmetic mean of those n largest values. For a nine-wave record sorted as 2.4, 2.1, 1.8, 1.6, 1.5, 1.2, 1.1, 0.9, 0.8, n is three and Hs is the mean of 2.4, 2.1 and 1.8, which is 2.1 in the same unit.

Hs is typically larger than the mean of all waves because the lower two thirds of the distribution are discarded before averaging. It is usually smaller than the single maximum height unless the top third collapses to that one crest. Spectral definitions of Hs from the zeroth moment of the variance spectrum are closely related in deep water for narrow-banded seas, but this capability implements the time-domain individual-wave average only: you supply the heights, it returns the mean of the highest third, with no spectrum estimation and no external bathymetry.

Buoy and sensor post-processing

Turn a list of zero-crossing wave heights from a burst into a single Hs for logs, alerts, and coastal monitoring dashboards.

Oceanography labs and homework

Let students verify the highest-one-third definition of significant wave height against hand calculations on short records.

Marine ops and design checks

Feed measured individual heights into scripts that need a reproducible Hs without a full spectral wave model.

How is significant wave height Hs calculated from a record?

Sort the non-empty list of individual wave heights from largest to smallest, take the highest floor(N/3) values (at least one), and average them. That average is Hs in the same unit as the input heights.

Can wave heights be negative?

No. Each height must be a finite non-negative number.

Is this the same as spectral Hm0?

No. This tool implements the time-domain individual-wave definition (mean of the highest one third). Spectral Hm0 from the variance spectrum is related but computed differently and is not estimated here.

Why is significant wave height bigger than the average wave?

Because the lower two thirds of the record are dropped before averaging. In the nine-wave example the mean of all waves stays under 1.5, while Hs, the mean of the three tallest, is 2.1.

Do I need to convert my wave heights to metres first?

No. Enter the heights in metres, feet or centimetres, as long as every value in the list uses the same unit. The result comes back in that same unit, with no conversion.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/earth/significant-wave-height

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/earth/significant-wave-height \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"wave_heights":[0.8,1.2,1.5,0.9,2.1,1.8,1.1,2.4,1.6]}'
{
  "wave_heights": [
    0.8,
    1.2,
    1.5,
    0.9,
    2.1,
    1.8,
    1.1,
    2.4,
    1.6
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "earth.significant_wave_height",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

An empty record fails with invalid_input instead of inventing a height.

Input contract, response fields, and error behaviour

Units are not converted: if you send metres you get metres; if you send feet you get feet. Do not mix units in one list. POST a JSON body with one required field, wave_heights: a non-empty array of finite non-negative numbers (aliases heights, waves, H, and values are accepted). Each entry may be a JSON number or a numeric string; the free text form also accepts a comma- or whitespace-separated list. Empty arrays, missing fields, non-numeric tokens, and negative heights fail with invalid_input and are not billed. There is a hard upper bound of one hundred thousand values per call so a runaway paste cannot monopolise a worker. On success the response includes wave_count (N), highest_third_count (n used in the Hs average), significant_wave_height (Hs rounded to twelve decimal places for stable goldens), max_height and min_height of the full sample, mean_all over every height, and a short formula string restating the rule. Pair the output with your own plots or spectral tools if you need Hm0, peak period, or directional spectra—this endpoint only answers the classic Hs-from-record average.

Where a significant wave height API earns its keep

Coastal engineers and marina operators post-process pressure or acoustic sensor bursts into individual heights and need a reproducible Hs for logs, dashboards, and design checks without opening a full oceanographic suite. Marine-forecast training materials and university oceanography labs use a live calculator so students can verify that the highest-third mean really sits above the sample mean and below the extreme crest. Shipping and offshore operations scripts that already store zero-crossing heights can call a tiny API instead of re-implementing sort-and-slice logic in every language. Failed validation—especially the empty-record case—does not consume balance, so health checks that probe bad payloads stay cheap.

What happens if the wave-height sample is empty?

The task fails with invalid_input. Significant wave height is undefined for an empty record, so the API does not invent a height and the call is not billed.

What does the significant wave height calculator cost?

The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.

Read the full KIT documentation →