instruments · return-level atlas · the paper's map, decided

Every cell a certificate.

Reis, Guimarães et al. (Ocean Engineering, 2026) map, across the ocean, which of six families fits significant wave height best, block by block, and the 100- and 1000-year wave each implies. Here is that map with every cell certified: at 2,589 open-sea cells of the paper's own hindcast the six families are fitted and proved maxima of their likelihood, the choice is DECIDED or REFUSED, and the paper's regional claims are decided as boxes — 6 hold, 2 do not, 2 the refusals leave open. Click any cell and certify it again in your own tab, from the pinned data, with the same code.

The paper's claims, decided as boxes

Each claim below is quoted from the paper's §3 and read as a region, the blocks it speaks of, and a rule over the certified cells there. A cell counts for a family only where the choice is DECIDED; a REFUSED cell counts for nobody and could count for anybody, so a claim holds when it is true however the refused cells fell, does not hold when it is false however they fell, and is undecided when they could make it either. Click a claim to see its box.

What is certified, and what is not

At every cell and block, each family's fit is a box the Krawczyk operator proves holds exactly one zero of the score, with the Hessian proved negative definite over it — the likelihood's one maximum there — or it is refused with the reason: the generalized gamma is left out only where its likelihood is proved to peak at its lognormal limit beside the lognormal fit; any other refusal blocks the choice. The four criteria and the levels are enclosures over the box; a family is chosen only where its enclosure lies wholly below every other's. That no better maximum lies elsewhere in a family is the search's claim, as it is any optimiser's. Not certified: that a family is the true law of the sea, the sampling width of a 100-year level, or the model's own error against the sea it simulates. A cell certified in your tab also draws its return-level plot from the same certificates: each family's quantile over return periods from two blocks to 10,000 years, every point an enclosure narrower than the line, beside the block maxima and the record.

The data: the Ifremer WAVEWATCH III hindcast GLOBMULTI_ERA5_GLOBCUR_01 (0.5°, 3-hourly, 1993-01-01 to 2024-12-31), the paper's own, CC BY-SA 4.0. Every hs chunk of every monthly file was read by byte range and hashed as read (the same hashes corpus/ww3-points pinned for the same files), and each UTC day's largest value kept at the nodes of a 4° global lattice, a 1° lattice of the Brazilian margin and the report's thirteen nodes; a cell is the node's series, not an area mean. 679 cells that the hindcast's own sea-ice field touches at some 3-hourly step of the 32 years are shown and not certified: under ice the model damps the waves to millimetres rather than leaving a gap, so the series is partly the ice's. The daily, weekly and monthly blocks are here; the unfiltered 3-hourly block is certified at the thirteen nodes of the return-level report, where six fits of 93,504 values take minutes each. Land: Natural Earth 1:50m, public domain.

What this opens

The map answers where the paper's selection is a decision and where it is not, and two of the six families needed other coordinates to be decided at all. Where the exponentiated Weibull's climb runs past α = 104, write θ = λk and β = θ ln α: the family reads F = exp(eβ/θ ln(1 − e−xk/θ)), a Gumbel law of Hsk with location β and scale θ once e−xk/θ is small over the data. The runaway α is a regime the (α, k, λ) coordinates place in the millions or beyond, not an edge: in (k, θ, β) the family's maximum is an ordinary point, certified here at 219 cell-blocks. At 53 more the family is still refused, 45 of them because the climb runs on even there, toward k → 0 — a Gumbel law of ln Hs, the Fréchet tail the family reaches only in a double limit: that is where a seventh family would decide what six cannot, the Fréchet itself or the extended generalized Pareto of Naveau et al. (Water Resources Research, 2016), which is the exponentiated Weibull’s own construction — a power of a distribution function — on a Pareto base. The exp. Weibull view maps where each coordinate system holds. The generalized gamma's maximum sits beside its lognormal limit (α above 500) at 444 cell-blocks and is certified there, in Prentice's coordinates; its likelihood is proved to peak at the limit itself at 5,751. A fitter that stops at a threshold and calls it the limit names another family, or none, at 544 cell-blocks. And the choice the statistic makes is not a sanity check: the decided family’s 100-year wave reaches 18.7× the largest day on record (the exponentiated Weibull, 128.5 m against 6.87 m, 15° N 62° E, daily). The other way round proves less: the 100-year wave lies below the record at 2,607 of the 7,663 decided cell-blocks with a level (34%), and a 32-year record exceeds even a correct 100-year level with probability 1 − e−0.32 ≈ 27%. A standard for marginal fits can be read off this map — which choices it must fix, and where a certificate, not an optimiser, has to say what the fit is.

The code in your tab: playground/return-level-atlas/app.js 00ebc1b6b8fd · playground/return-level-atlas/worker.js 373958751dea · instruments/interval/interval.js 59556ef98bdd · instruments/interval/rational.js 59e97fc40328 · instruments/interval/transcendental.js 29da890cec15 · instruments/interval/radii.js 38f29dfe4d5e · instruments/hseva/special.js cdfa6ac130b8 · instruments/hseva/ad2.js 39e88af94e66 · instruments/hseva/families.js 74d45794767a · instruments/hseva/fit.js da704cc844a0 · instruments/hseva/blockrule.js 375250f46ae1 · instruments/hseva/atlas.js 36233968b8fe. Cell files served from the public repository at commit 628072d7b237, each checked against its sha256 before it is used; the whole ledger is certs/hseva-atlas.json at the same commit.

instruments/hseva/.venv/bin/python3 tools/fetch-ww3-grid.py
instruments/hseva/.venv/bin/python3 tools/build-ww3-atlas-corpus.py
node tools/run-hseva-atlas.js
node instruments/hseva/battery.js