CalCOFI.io CalCOFI.io open data ecosystem

Potential density (TEOS-10)

Potential density anomaly (sigma-theta, TEOS-10) per bottle, from the bottle's own temperature and salinity

kg/m³key sigma_theta_teos10NERC P01 SIGTPR03P06 units UKMCseries sigma_theta_teos10

CalCOFI holds 841,673 values of it from 34,790 sampling events in one dataset, 1949–2021, from the surface to 5,351 m. At 10–50 m it has fallen 0.02 per decade since 1984.R

841,673
values
0
flagged
1949–2021
years
1
dataset
0–5,351 m
depth
every month
months
The difference between the density of a water parcel and a density of 1000 kg/m^3, if the water parcel were moved adiabatically to 0 decibars. Calculated from the corresponding absolute salinity and conservative temperature values using the algorithm from IOC, SCOR and IAPSO (2010). TEOS-10: Thermodynamic Properties of Seawater Calculation and Use. UNESCO, Paris.

Measured in 1 dataset
i

One row per series, one cell per year, darker with more values — the same strip the front door draws per dataset and a species page draws per taxon. Each row is one dataset's own measurement_type; the label is written once, in the title above.

  • 841,673 values · 34,790 sampling events · 1949–2021 · 0–5,351 m · 222 grid cells · 649 cruises
    series sigma_theta_teos10 · source column temperature; salinity; depth no flag at this grain

Explorera depth section vs normaldb-queryThis page as JSON R · Python · Parquet

Every way in 7 ways · Parquet · R · Python · JSON

Read from measurements.json of release v2026.10.21, written at release by calcofi4db::build_measurements_catalog() beside taxa.json. The catalog's index is /measurements/; the JSON-LD on this page is a schema.org/DefinedTerm in the NERC P01 term set with a PropertyValue per series.

ExplorerExplorer · a depth section vs normaldb-query
Parquetobs_env is partitioned by measurement_type in the content-addressed store — resolved through the release catalog, never a path built by hand
SELECT * FROM read_json('…/v2026.10.21/catalog.json')
-- objects[] WHERE table = 'obs_env'
--   AND partition_value = 'sigma_theta_teos10'
How it is measured Computed from the bottle's own temperature and salinity (TEOS-10)
rosette bottle
Bottle Derived Products · rosette bottle
Computed from the bottle's own temperature and salinity (TEOS-10)

Potential density anomaly referenced to 0 dbar (sigma-theta) by TEOS-10, from each bottle's own temperature and salinity at the sea pressure of its depth; the modern value beside the bottle database's legacy DECODR sigma_theta. A bottle whose temperature or salinity the provider flags 8 or 9 has none. (the record's own derivation (measurement_type.csv; calcofi4db::bottle_spice_sigma0()))

  • gsw_p_from_z
  • gsw_SA_from_SP
  • gsw_CT_from_t
  • gsw_sigma0
no flag at this grain
Why it matters no reason registered yet

The record’s own history 7 depth bands against the 1993–2013 normal

Each year against the normal
i

Deeper than the climatology reaches: 3,962 values at 2000+ m have no normal to depart from, because the release’s climatology stops at its deepest built bin. Carrying it to the bottom is one argument of build_climatology() and puts these bands on the page too.

Units and range kg/m³ · -8 … 37 declared · 0 flagged

kg/m³ (kg/m3 in metadata/measurement_type.csv) · P06 units UKMC

bounds-8 … 37 kg/m³observed20.94 … 28.15 kg/m³flagged0baselineclimatology ✓
details
bounds
The registry declares -8 … 37 kg/m³ for sigma_theta_teos10; a value outside it is dropped at the ingest (drop_out_of_bounds()).
observed
Bottle Derived Products sigma_theta_teos10 20.94 · median 25.99 · 28.15 kg/m³ (5th–95th percentile 24.12–27.2)
flags
Bottle Derived Products sigma_theta_teos10 carries no quality code at the release grain; qual_ok keeps all 841,673.
baseline
A monthly climatology exists for this measurement (the release's climatology table: 1993–2013, dataset × station × the cruise's month × 10 m bin), so the Explorer can draw anomalies against it rather than values.
derivation
calcofi4db::bottle_spice_sigma0(): sea pressure gsw_p_from_z(-depth, latitude), then gsw_SA_from_SP, gsw_CT_from_t, gsw_sigma0 (TEOS-10, IOC/SCOR/IAPSO 2010) on the bottle's own temperature (T_degC) and salinity (Salnty); a bottle whose T_qual or S_qual is 8 or 9 has none. The bottle database's own sigma_theta is DECODR's legacy value, kept beside it

The familiar scale
i

Bars are each series' 5th–95th percentile, the line its minimum to maximum, the ring its median; the marks are metadata/measurement_scale.csv's, each hovering to its own source.

By depth · by month 0–5,351 m · every month

By depth
i

Values per depth band at the release grain, one thin bar per series. The bands are the record's own (0-10 … 2000+ m).

By month
i

Values per calendar month, one row per series: CalCOFI's quarterly cruises show as peaks in the months the ships sail.

Cite the release, v2026.10.21

Cite the release; each dataset's own citation, licence and DOI are on its page — Bottle Derived Products. The Explorer's Share → Cite writes it for the view you make.