marine-atlas

118,017 object(s), 21.3 GB
root / marine-atlas

marine-atlas

One folder per public MST release (v1 … v7 today), the two shared stores every release draws on (cog/, native/) with their catalog (assets.parquet), and three registry files that describe what exists. Releases are immutable; the registry is what changes. A release under review (prerelease, restricted — v7b, v8, v9 as of 2026-10) is listed in versions.json and served to its reviewers on the preview host, but has no folder page here until it becomes public.

file what it settles
latest.txt the promoted release — what an app shows when the URL says nothing
versions.json every release, its status (released / prerelease / retired) and date
{ver}/manifest.json everything needed to render that release

Resolve the current release, then read its manifest:

VER=$(curl -sL https://storage.marinesensitivity.org/marine-atlas/latest.txt)
curl -sL https://storage.marinesensitivity.org/marine-atlas/$VER/manifest.json | jq .
# R
remotes::install_github("MarineSensitivity/msens")
m <- msens::atlas_manifest()          # "latest"; or atlas_manifest("v7")
m$capabilities; head(m$metrics)

Do not hardcode a version in anything you want to keep working — resolve latest.txt. Pin one deliberately (v7) when you need reproducibility.

cog/ and native/ are shared by every release: every distribution file is content-addressed and stored once, so a surface that did not change between releases is referenced by both rather than copied. A release owns only pointers to them — {ver}/tables/native_asset.parquet (v8+) and tables/model_asset.parquet (v1–v7b) — and assets.parquet is the catalog of everything stored (key, content hash, size, first release that used it).

Finding data without browsing

This bucket denies anonymous listing, so do not try to enumerate it — query a catalog instead.

STAC API (searchable, spatial) — one Item per model, with its raster as an asset: https://stac-api.marinesensitivity.org

# R: rstac
library(rstac)
s <- stac("https://stac-api.marinesensitivity.org")
it <- s |> stac_search(bbox = c(-98, 25, -80, 31), limit = 5) |> get_request()
it$features[[1]]$assets                      # -> COG href, readable via /vsicurl
# Python: pystac-client
from pystac_client import Client
cat = Client.open("https://stac-api.marinesensitivity.org")
items = cat.search(bbox=[-98, 25, -80, 31], limit=5).item_collection()
print(items[0].assets)
# plain HTTP
curl -s "https://stac-api.marinesensitivity.org/search?bbox=-98,25,-80,31&limit=2" | jq '.features[].assets'

Parquet tables (tabular, exact) — resolve a species or metric to its raster via {ver}/tables/native_asset.parquet (v8+; model_asset.parquet for v1–v7b) or score_cog.parquet, then read the COG in place with GDAL:

gdalinfo /vsicurl/<cog_url>
gdal_translate /vsicurl/<cog_url> local.tif -projwin -98 31 -80 25
nameitemssize
assets.parquet4.1 MB
cog/73,91110.6 GB
grid/270.1 MB
latest.txt3 B
native/35,9838.4 GB
README.md2 KB
v1/959164.1 MB
v2/959235.4 MB
v3/960172.2 MB
v4/960170.5 MB
v4b/960171.1 MB
v5/960171.4 MB
v6/960170.4 MB
v7/1,389965.0 MB
versions.json2 KB
zones/10112.4 MB