# Ocean Metrics gazetteer

Marine place polygons (NOAA sanctuaries, MarineRegions MRGID, ProtectedSeas PSGID) as GeoParquet + PMTiles, plus ERDDAP dataset descriptions for computing place statistics in the browser (DuckDB-WASM).

Published at `https://storage.oceanmetrics.io/gazetteer/`.

## Collections

- [`places/`](places/collection.json) — the 18 NOAA National Marine Sanctuaries (`NMS:<code>`) as GeoParquet
  (`places.parquet`) and PMTiles (`places.pmtiles`). License: CC-BY-4.0 (our derived files). Upstream
  source: NOAA Office of National Marine Sanctuaries (public domain).
- [`erddap/dhw_5km/`](erddap/dhw_5km/collection.json) — NOAA Coral Reef Watch daily 5km SST + DHW
  (live, PacIOOS ERDDAP).
- [`erddap/jplMURSST41/`](erddap/jplMURSST41/collection.json) — JPL MUR SST v4.1, 0.01° daily
  (upstream NOAA CoastWatch is live; our re-serving mirror is not yet live).
- [`stats/`](stats/collection.json) — **precomputed** statistics: one Parquet per (dataset,
  variable, place) for the last 365 days (the full record for the monthly sanctuaries series on the
  18 NMS places), refreshed weekly, computed with exactly the mask and SQL
  the browser app runs live.

- [`rasters/`](rasters/collection.json), [`climatology/`](climatology/collection.json),
  [`series/`](series/collection.json) — **Then vs Now**: daily CRW SST since 1985 per sanctuary as
  366-band COGs (band = day of year), 1985–2005 and 2003–2012 day-of-year climatologies, and daily
  polygon area means as Parquet. See [`rasters/README.md`](rasters/README.md).

## How to read

- Places: `SELECT * FROM read_parquet('https://storage.oceanmetrics.io/gazetteer/places/places.parquet')`
  in DuckDB; load `places.pmtiles` into MapLibre GL for rendering.
- ERDDAP: read a `collection.json`'s `griddap` asset template and build a query URL — see
  [`AGENTS.md`](AGENTS.md).
- Statistics, precomputed (cheapest):
  `SELECT * FROM read_parquet('https://storage.oceanmetrics.io/gazetteer/stats/dhw_5km/CRW_SST/NMS:HIHWNMS.parquet')`
  — note the colon in `place_id` is kept in the object key. See [`stats/README.md`](stats/README.md).
- Then vs Now: one day of one year is one band of
  `rasters/dhw_5km/CRW_SST/NMS:FKNMS/2024.tif` (geotiff.js range read, ~6 kB); the daily area means
  are `series/dhw_5km/CRW_SST/NMS:FKNMS.parquet`.

---

*Generated by [Portolan](https://github.com/portolan-sdi/portolan-cli) from STAC metadata and .portolan/metadata.yaml*
