All Things Spatial
ATS Labs · Esri SDK Showcase · Calcite · experimental

ATS Ghost Fleet

Every charted wreck and obstruction in U.S. waters — 12,660 of them — on one dark map.

What it is

ATS Ghost Fleet puts every charted shipwreck and obstruction in U.S. waters on a single map: 12,660 point features from NOAA's AWOIS (Automated Wreck and Obstruction Information System) database, served live from a public ArcGIS Online FeatureLayer and explored over the Esri Oceans basemap, whose bathymetry does the visual storytelling. The chrome is nautical-noir — ghost-cyan wrecks, amber obstructions, an ink-dark shell.

Its distinction is under the hood: every filter runs server-side through SQL definitionExpressions, including a depth-range slider that normalizes feet, meters, and fathoms to feet inside the WHERE clause itself, and a free-text search that scans vessel names and the raw survey-history narratives together. A live count chip tracks every active filter, a density heatmap toggle reveals where the seafloor is most crowded, and a 'notable wrecks' list surfaces the 110 named vessels with a recorded sinking year — USS New Jersey and USS Virginia, sunk in Billy Mitchell's 1923 aerial-bombing demonstration, both make the cut.

It rewards marine historians, wreck divers, coastal researchers, and anyone who enjoys primary-source narratives — each record carries the original AWOIS survey logbook text. It is also, for ATS, the reference demonstration of building a query-smart front end over a large hosted feature service.

The experience

On load, roughly 12,600 dots wash across the oceans basemap and the count chip reads "12,660 of 12,660". From there, every control narrows the fleet — and the chip follows:

The custom popup presents a fielded table — depth, position quality, chart number, year sunk — with graceful handling of the many nulls in a 12,660-record archival file, followed by the raw AWOIS survey-history narrative, reproduced as the surveyors wrote it.

The data — where it comes from

The app carries no bundled data; everything comes live from one public feature service plus the basemap.

Data-currency caveat: the layer is a community-hosted snapshot of NOAA's archived AWOIS database, not a live NOAA service. NOAA has superseded AWOIS with the ENC Direct / wrecks-and-obstructions products. Positions inherit the original AWOIS quality codes (High / Med / Low / Poor). Not for navigation.

SourceWhat it providesRefreshCostAttribution
NOAA AWOIS — community-hosted ArcGIS Online FeatureLayer (Wrecks_and_Obstructions, services5.arcgis.com)12,660 wreck/obstruction points: record number, vessel term, depth + sounding type, position quality, chart, year sunk, survey-history narrativeStatic snapshot — AWOIS was archived by NOAA; histories end in the early 2010s and yearSunk tops out at 2009Free (public, query-only)Credit NOAA Office of Coast Survey / AWOIS; community-hosted snapshot; not for navigation
Esri Oceans basemap (anonymous)Bathymetric base that gives the wrecks their contextVendor-managedFree (no API key)Esri attribution renders in-map automatically

How it was assembled

The application is a fully static single-page app — no backend, no database, no server-side rendering. The stack: TypeScript, ArcGIS Maps SDK for JavaScript 5.0.x, Calcite Design System 5.0.x, and Vite 8.

Module map — the codebase is small and deliberate; each file owns one concern:

Key engineering decisions