Thrust Maritime Sea State Explorer

← Back to the explorer

Methodology and sources

What the Sea State Explorer computes, from which data, by what rule. Written for metocean engineers, naval architects and anyone, human or automated, who needs to understand or cite what the tool shows.

This page describes how the dataset is built and how the explorer works out each figure. Checked against the site on 23 October 2026. Where a figure depends on the deployed dataset, the page says where to read it on the explorer instead of stating it.

1. What the tool answers, and what it does not

Click a point at sea, choose calendar months, and the tool reports how the sea behaved at the nearest data cell over the whole record, month by month. Everything shown is a long term statistic of a numerical reanalysis: a wave model run for decades and constrained by observations, sampled every 3 hours on a global grid. Nothing on the page is a measurement at your point, and nothing is a forecast.

What it answers, for the selected point and months:

What it does not do:

2. Data sources

2.1 Wave reanalysis: ERA5 or WAVERYS

Two builders exist and write the same tile format, so the explorer runs on either. Which one a deployment uses is named in the Data sources table at the foot of the explorer, in the licence wording under it, and in the PDF's data basis line (for example "ERA5 reanalysis (ECMWF / Copernicus C3S)" or "WAVERYS wave reanalysis (Copernicus Marine) + ERA5 wind", with the period and sample count). The data point line under the location gives the cell centre, the grid spacing and the distance from your click. This page describes both builders.

ERA5 (builder tools/build_dataset_era5.py)

WAVERYS (builder tools/build_dataset_waverys.py)

Both builders write a download ledger (audit.jsonl: one line per source file with its SHA256, size and the samples it added) and are covered by tools/verify_dataset.py, which reconciles the ledger to the checkpoint, re-emits the tiles and requires them to be bit-identical to the deployed files, recomputes sampled cells with independent code and runs invariants over every tile. tools/validate_waves.py compares the served tile against measured buoy records where those are available.

2.2 Hs against Tp occurrence tables

The scatter table is its own tile set (joint/, written by tools/emit_joint_tiles.py) from the ERA5 checkpoint, aggregated over 1.0 degree blocks. It carries its own source label and period, printed in the note under the table on the explorer, and these can differ from the wave backbone's. See 3.13.

2.3 Currents and tides (Copernicus Marine)

Builder tools/build_currents_cmems.py. Two products, one tile set (cur/, 5 degree tiles; a click uses the nearest cell within 25 km when the tidal solution is present, 60 km otherwise):

2.4 Water depth: ETOPO 2022

Builder tools/grab_depth.py. The ETOPO 2022 Global Relief Model, 60 arc-second surface elevation grid from NOAA National Centers for Environmental Information, block-averaged (6 by 6 cells) to 0.1 degree and stored as integer metres in 10 degree tiles of 100 by 100 cells (depth/). Tiles with no sea at all are not written.

2.5 Coastlines, depth contours, borders and place names

2.6 Tropical cyclones: IBTrACS

Builder tools/build_cyclones.py. IBTrACS version 4 (release v04r01), the "since 1980" list CSV from NOAA NCEI, which merges every agency's best tracks. Wind is read from USA_WIND (1-minute sustained, the basis of the Saffir-Simpson thresholds used on the page) and only where that is absent from WMO_WIND.

2.7 ENSO phase: NOAA ONI

NOAA Climate Prediction Center's Oceanic Niño Index (oni.ascii.txt: the 3-month running mean sea surface temperature anomaly in the Niño 3.4 region, ERSSTv5). The table is archived with each build and its SHA256 written to the ledger, so a classification can be reproduced after NOAA revises the series.

2.8 Oil and gas asset registers

Builder tools/build_assets.py with ga_ingest.py, anp_ingest.py and fetch_intl.py. Each source is optional; a source that cannot be fetched is a log line, not a missing build. The deployed assets.json lists exactly the sources it contains, and the explorer prints each one's attribution sentence in its footer. The identifiers below are the source ids the builder writes.

Source idWhat it contributesProvider and licence
gogetOffshore field unit centroids (rows marked offshore only)Global Oil & Gas Extraction Tracker, Global Energy Monitor, CC BY 4.0
gem-ggitGas pipeline routes, offshore segments onlyGlobal Gas Infrastructure Tracker, Global Energy Monitor, CC BY 4.0
gem-goitOil and NGL pipeline routes, offshore segments onlyGlobal Oil Infrastructure Tracker, Global Energy Monitor, CC BY 4.0
gem-lngLNG terminals, one per site (floating units marked FSRU or FLNG)Global Gas Infrastructure Tracker, Global Energy Monitor, CC BY 4.0
osmOffshore platforms (man_made=offshore_platform) via OverpassOpenStreetMap contributors, ODbL
osm-pipelinesSubmarine pipelines (man_made=pipeline with an offshore, seabed, underwater or sea location, or submarine=yes)OpenStreetMap contributors, ODbL
sodir-wells, sodir-facilitiesNorwegian wellbores and fixed facilitiesNorwegian Offshore Directorate FactPages, Norwegian Licence for Open Government Data
bsee-platforms, bsee-wells, bsee-pipelinesGulf of Mexico standing structures, boreholes and pipeline arcs; borehole statuses joined from the eWell raw data by API numberUS BOEM / BSEE, public domain
gaAustralian offshore wells, platforms, facilities and pipelines from Geoscience Australia's ArcGIS services (Oil_Gas_Infrastructure, NOPIMS wells), filtered to 48° S to 8° S and 95° E to 170° E; water bores droppedGeoscience Australia, CC BY 4.0
anp-wells, anp-fieldsBrazil: the Tabela de Poços wells table (offshore rows only) and Campos de Produção field polygons as bounding-box centre markersANP (Agência Nacional do Petróleo, Gás Natural e Biocombustíveis) open data

A source is listed in the explorer footer only when it is included in the deployed data.

3. Definitions and derivations

Notation: m is a calendar month (January to December), nm the number of valid 3-hourly samples the cell holds for that month over the whole record, T a wave height threshold in metres.

3.1 Grid and nearest cell

3.2 Samples, ice and the validity mask

3.3 Exceedance

Each builder keeps, per cell and calendar month, a histogram of Hs in 0.25 m bins from 0 to 15 m: bin k holds samples with 0.25k ≤ Hs < 0.25k + 0.25, and the top bin also takes everything from 15 m up. The thresholds are 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 6, 7, 8, 9 and 10 m, all bin edges, so the count at or above a threshold is exact:

E_m(T) = (number of samples in month m with Hs ≥ T) / n_m

stored as a rounded whole-number permille and shown as a percentage. It is the probability that a 3-hourly sample is at or above T; the page wording says "exceeds". Percentages are printed to one decimal below 10 percent, as whole numbers above, and as "<0.1%" below 0.05 percent.

The threshold table and the exceedance curve stop at 6 m unless your operational limit is higher; the data keeps all fifteen thresholds and the interpolation and extremes use them all.

3.4 Combining months

Selected months are combined by weighting each month's value by its length in days, D = [31, 28.25, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], over the months that carry data:

E(T) = Σ_m D_m × E_m(T) / Σ_m D_m        (m over the selected valid months)

The sample count given in the PDF's data basis is the sum of nm over those months. The same day weighting is used for the wave and wind roses, the peak period distribution, the wind mean and P90, the daily cycle and the background current statistics. Mean Hs (3.6) is the one figure weighted by sample count instead.

3.5 Operational limit

3.6 Mean Hs

Per cell and month, meanm = Σ Hs / nm, stored to 0.1 m. The prevailing conditions line combines the selected months by sample count: Σm meanm × nm / Σm nm, printed to 0.1 m. The map shading raster is a sample-weighted mean over 2 degree blocks.

3.7 Peak period

3.8 Wave and wind direction

3.9 Wind speed

3.10 Extremes

3.11 Weather windows

3.12 Across the day

3.13 Hs against peak period

3.14 ENSO phase

The El Niño and La Niña panel is switched off on the explorer (SHOW_ENSO = false); the data keeps being built. The rule, for the record: each calendar month is tagged from the single ONI season centred on it (DJF for January through NDJ for December) by anomaly ≥ +0.5 °C = El Niño, ≤ -0.5 °C = La Niña, else neutral, with no persistence requirement. A whole month sits in one phase. Tiles carry per-phase sample counts, mean Hs and exceedance at every threshold; cyclone tiles carry per-phase storm counts and storm-days with per-phase-year denominators. On WAVERYS the phase fields are ERA5 statistics grafted from the nearest 0.5 degree cell.

3.15 Tropical cyclone exposure

3.16 Water depth

4. Currents and tides

4.1 Harmonic analysis of the tidal stream

4.2 Springs and neaps

The constituents other than N2 and the constant term are reconstructed over 35 days at 10 minute steps (a full spring-neap cycle at mean tide). The peak speed of each day is taken; spring is the largest daily peak and neap the smallest. Both are depth-averaged (barotropic) rates, stored to 0.01 m/s. N2 is left out by the usual mean-springs convention and the constant term is not a tidal peak.

4.3 Form factor and cadence

F = (K1 + O1) / (M2 + S2) from the constituent amplitudes (99 where the semidiurnal sum is under 0.0001 m/s; stored capped at 99). The panel reads it as: F < 0.25 "semidiurnal: it peaks roughly every 6.2 hours"; 0.25 ≤ F ≤ 1.5 "mixed, mainly semidiurnal: peaks roughly every 6 hours, alternating stronger and weaker"; 1.5 < F ≤ 3 "mixed, mainly diurnal: one strong and one weak peak most days"; F > 3 "diurnal: it peaks roughly every 12.4 hours".

4.4 Slack water

4.5 The 1/7 power profile for the tidal stream

The source statistic is the depth mean. People work at the surface or at the bed, so both are shown through a power-law profile with exponent 1/7 at the site's ETOPO depth d:

surface        = 8/7 × depth mean        (a 1/7 profile averages to 7/8 of its surface value)
bottom metre   = surface × (1 / d)^(1/7)

applied to both the spring and the neap rate. The lines read "Tidal stream at the surface: typical peak about X m/s (N kn) at springs, Y m/s at neaps" and "Near the seabed (bottom metre, at ~d m depth): about ...". With no depth available the seabed line falls back to "Near the seabed expect roughly two thirds of the surface stream". The figure note on the explorer states the assumption and that measured profiles vary.

4.6 Background current statistics

4.7 The combined profile table (DNVGL-RP-C205)

The table "Through the water column" combines three components the way DNVGL-RP-C205, Environmental conditions and environmental loads, edition August 2017, describes in its section 4.1.4, Design current profiles. The clause numbers below were checked against that edition's text; only the definitions the text states are repeated here.

The same section of the standard, in 4.1.4.5 to 4.1.4.8, says that the variation of current over depth depends on the local oceanographic climate, the vertical density distribution and the flow into or out of the area, may vary from season to season, that deep water profiles may be complex with current direction changing 180 degrees with depth, that long term measured profiles can be parametrised with empirical orthogonal functions, and that conditions close to the sea bed are the subject of DNVGL-RP-F105. The tool does none of that; its column is a screening picture from climatological statistics.

5. Assets layer

What is shown

How registers are merged

Pipelines: the offshore cut and three-level dedupe

The in-service filter

"In service only" is on by default and applies to wells only. A well is hidden when its status matches abandon, plug, p&a, paa, junk, dry, cancel, wildcat, apprais, explor, soil, stratigraphic; otherwise it is shown when the status matches produc, inject, develop, operat, online, in service, active, completed, suspend, shut, drill. A well with no usable status is hidden by this filter; untick it to see everything. The other filters are type, a water depth range (assets with no known depth are hidden while a range is set) and free text over status, operator and name; a count states how many assets match.

Names

Names are missing from some registers. Records without one carry a placeholder ("Unnamed platform", "Unnamed well", "Unnamed unit"), and the pipelines from Geoscience Australia and BSEE currently carry "Pipeline" for every line because the published layers we use do not include pipeline names. GOGET names are trimmed of their bracketed country and "Oil and Gas Field" suffix so the hover shows type and country separately.

6. Limitations and known gaps

7. Citing, sharing, and asking for a study

How to cite

The explorer's terms line reads: "Free to use for individual planning reference, and free to cite: Thrust Maritime, Sea State Explorer, the location and the date you read it, with a link to the result. Automated bulk extraction of the tool's data tiles is not permitted; the underlying open datasets are available from the original providers credited below, and the methodology page states every source and derivation."

A citation therefore carries four things: the publisher, the tool, the location as shown on the page, and the date, plus the link to the result. For example:

Thrust Maritime, Sea State Explorer, [location as shown on the page], read [date],
[link copied with "Copy link to this result"]

If the underlying dataset matters to your reader, add the source and period from the PDF's data basis or the Data sources table (for example "WAVERYS wave reanalysis (Copernicus Marine) + ERA5 wind, 1980-2023, 3 hourly") and the provider's own attribution sentence from section 8. The PDF summary carries the same link under "Interactive version of this page" and lists every source in its Sources section.

Sharing a location

Every result has a URL that reproduces it. "Copy link to this result" writes the state into the URL fragment, and the address bar updates in place as you change anything:

https://seastate.thrustm.com/#loc=25.00,-90.00&m=5,6,7&h=1.5&wt=1.5&wd=48

loc   latitude,longitude in decimal degrees (WGS84), two decimals
m     selected months, 1 to 12, comma separated (omitted when all twelve are on)
h     operational limit in metres (omitted at the default of 2 m)
wt    weather window threshold in metres
wd    weather window minimum duration in hours

m and h are written only when they differ from the defaults; wt and wd are written whenever the tile set carries weather windows. The query form ?loc=... with the same keys is accepted on read. An inbound link centres the map on the point, selects it and applies the months, limit and window pickers; editing the fragment in an open tab re-applies it. Because the state rides the fragment, links work on the static host, inside the embedding page and in the PDF.

Planning a subsea lift?

Weather windows decide when a lift can go. Thrust Maritime provides specialist lifting solutions for subsea operations. This tool is the screening step; a project-specific metocean study, extreme value analysis and vessel response work are what comes next.

Talk to us at thrustm.com

8. Licences and attributions

The sentences below are the ones the site carries in its data manifests and prints in the explorer footer and the PDF. The footer lists exactly the layers a deployment contains; this page lists every sentence a build can produce.

ERA5 (Copernicus Climate Change Service, ECMWF), licence CC BY 4.0. "Contains modified Copernicus Climate Change Service information [period]. ERA5 hourly data on single levels (significant height of combined wind waves and swell, peak wave period, mean wave direction, 10 m wind). Hersbach, H. et al. (2023), ERA5 hourly data on single levels from 1940 to present, doi:10.24381/cds.adbb2d47. Neither the European Commission nor ECMWF is responsible for any use of this information."

WAVERYS (Copernicus Marine Service, Mercator Ocean), free including commercial use with credit. "Generated using E.U. Copernicus Marine Service Information: WAVERYS global wave reanalysis [period], 3 hourly significant wave height, peak period and direction. Wind statistics from the ERA5 reanalysis (Copernicus C3S) on its 0.5 degree grid [span]. Neither the European Commission nor ECMWF nor Mercator Ocean is responsible for any use of this information." Product: Global Ocean Waves Reanalysis WAVERYS, doi:10.48670/moi-00022.

Hs against Tp tables. "ERA5 reanalysis (ECMWF / Copernicus C3S)", with the joint set's own period, under the ERA5 sentence above.

Currents and tides (Copernicus Marine Service). "Generated using E.U. Copernicus Marine Service Information: Global Ocean Physics Reanalysis GLORYS12 (background currents, tides excluded) and the Global Ocean hourly merged surface currents (barotropic tidal streams). Tidal statistics are harmonic estimates from six constituents (M2 S2 N2 K1 O1 M4) with nodal factors applied for the fit window; spring and neap rates are the largest and smallest daily peak of a mean-tide reconstruction (N2 excluded); slack windows average turn-bounded runs only; tidal stream statistics are the mean over the water column." The FES tide model itself is licence restricted for commercial use, which is why the tides come through the Copernicus Marine product.

ETOPO 2022 (NOAA NCEI), public domain. "Water depths: ETOPO 2022 Global Relief Model, NOAA National Centers for Environmental Information (public domain)."

Natural Earth, public domain. "Depth contours and depth bands: Natural Earth 1:10m bathymetry (public domain)." The world-view coastline, country borders and place names are Natural Earth 1:50m and 1:10m data, also public domain.

GSHHG, GNU LGPL v3. Where the zoomed-in coast tiles are the GSHHG build: Wessel, P., and W. H. F. Smith, A Global Self-consistent, Hierarchical, High-resolution Shoreline Database, J. Geophys. Res., 101, 8741-8743, 1996. GSHHG is distributed under the GNU Lesser General Public License v3 (soest.hawaii.edu/pwessel/gshhg).

IBTrACS (NOAA NCEI), public domain. "Tropical cyclone exposure: IBTrACS v04 best tracks (NOAA NCEI, public domain), tropical-storm strength and above, satellite era (1980 on). Storm counts and storm-days are long-term averages by calendar month within fixed great-circle rings of the point."

NOAA Climate Prediction Center. Oceanic Niño Index (ERSSTv5), used for the ENSO phase tagging.

OpenStreetMap, ODbL. "Platform locations: OpenStreetMap contributors (ODbL, openstreetmap.org/copyright)."

Global Energy Monitor, CC BY 4.0. "Field locations: Global Oil & Gas Extraction Tracker, Global Energy Monitor (CC BY 4.0). Positions are indicative unit centroids." "Gas pipeline routes: Global Gas Infrastructure Tracker, Global Energy Monitor (CC BY 4.0). Offshore segments only." "Oil/NGL pipeline routes: Global Oil Infrastructure Tracker, Global Energy Monitor (CC BY 4.0). Offshore segments only." "LNG terminals: Global Gas Infrastructure Tracker, Global Energy Monitor (CC BY 4.0)."

Norwegian Offshore Directorate, NLOD. "Norwegian wellbores and facilities: Norwegian Offshore Directorate FactPages (Norwegian Licence for Open Government Data)."

US BOEM / BSEE, public domain. "Gulf of Mexico structures and boreholes: US BOEM/BSEE (public domain)."

Geoscience Australia, CC BY 4.0. "Australian offshore wells and infrastructure: Geoscience Australia (CC BY 4.0)."

ANP Brazil, open data. "Brazil well and field data: ANP (Agencia Nacional do Petroleo, Gas Natural e Biocombustiveis) open data. Positions are indicative."

Standards referenced. DNVGL-RP-C205, Environmental conditions and environmental loads, edition August 2017, section 4.1 (clauses 4.1.3.3 and 4.1.4.1 to 4.1.4.8 as described in 4.7). DNV-ST-N001 11.12.2.3 is cited for the 20 m/s figure from Thrust Maritime's own calculation practice and is not checked against the text.

Software. The PDF summary is built in the browser with pdf-lib (MIT licence), vendored unmodified. The site itself is static files: no tile servers, no tracking, no backend.

Version and build note

← Back to the explorer