Skip to content

Seascape v0.1.0

Choose a tag to compare

@bkeepers bkeepers released this 05 Jul 19:01
· 653 commits to main since this release
6d7df37

First public release of Seascape: free bathymetry tiles for MapLibre and Mapbox GL, built from 23 global and regional sources.

Try it: demo viewer · openwaters.io/charts/seascape

Two tile sets come off the same merged depth model. The raster set is a Terrarium-encoded DEM for depth shading, hillshade, and 3D terrain. The vector set carries depth contours, spot soundings, and drying areas.

new maplibregl.Map({
  container: "map",
  style: "https://tiles.openwaters.io/seascape/style.json",
});

What's included

  • /style.json is a complete nautical style: depth shading in chart colors, isobaths with labels, spot soundings, and drying areas. ?unit=m|ft|fm picks the depth unit, and ?safety=<metres> shades water shallower than your safety depth as a hazard.
  • The endpoint at https://tiles.openwaters.io/seascape serves raster (raster.json) and vector (vector.json) TileJSON. No API key, no signup.
  • The vector tiles carry four layers. contours has metric and feet/fathom isobath sets at the usual chart intervals. soundings has the shoalest depth per cell, so a printed depth is never deeper than the data behind it. drying has the foreshore that dries at low water, and coverage has each source's footprint.
  • The style is generated by the @openwaters/seascape npm package, which also exports the sources and layer groups for composing into your own style, plus runtime controls for units and safety depth.

Coverage

GEBCO 2026 covers the whole planet at about 450 m (through z8). Where finer open data exists it takes over, down to z14 in the best-surveyed areas. Where sources overlap, the ones already on a chart datum win first, then the finer resolution. The 23 sources:

  • Global: GEBCO 2026 Grid
  • United States: NOAA S-102, CUDEM 1/9″ and 1/3″, NOS estuarine DEMs, Great Lakes, Lake Tahoe
  • Europe: EMODnet 2024, Danmarks Dybdemodel, Vaklodingen (NL), INFOMAR 10 m and 25 m (IE), UK SurfZone, Lac Léman, Lac de Neuchâtel, Bodensee
  • Canada: GSC Atlantic 100 m, GSC Pacific 10 m
  • Australia: AusBathyTopo 250 m, Great Barrier Reef 30 m
  • Elsewhere: BATNAS (Indonesia), SW Indian Ocean Bathymetric Compilation, African Great Lakes

Producers and licenses for each:
openwaters.io/charts/seascape#sources

Not for navigational use

Depths are not reduced to a chart datum and do not account for tides or water level, so they are not charted depths. The data is interpolated and merged from surveys of different ages, resolutions, and datums, and a gridded model omits the rocks, wrecks, and obstructions an official chart shows. Use official nautical charts for navigation.

License

The tiles are CC BY 4.0. MapLibre's attribution control displays the credit carried in the TileJSON, which covers both the tile license and each underlying source's own terms. The code is BSD-3-Clause.

Updates

Tiles rebuild as the sources update: GEBCO once a year, the regional sources on their own schedules. Each data release is tagged here, so watch the repo if you want a ping. The hosted endpoint is best-effort with no SLA. If you need offline data or guaranteed availability, build the archives yourself with this pipeline.

What's next

The aim is bathymetry good enough for a nautical chart. What stands between here and there:

  1. Chart datums. Depths need referencing to a conservative low-water datum (LAT/MLLW) rather than mean sea level, applied as a spatially varying correction.
  2. Provenance. Carry each source's identity and a confidence grade into the tiles, so you can tell surveyed 3 m data from interpolated GEBCO, and validate depths against official soundings.
  3. More sources and more coverage. The next release will look at adding more open sources to the pipeline. Open an issue if you know of a source that should be included.

The full plan is in ROADMAP.md.