CalCOFI.io CalCOFI.io open data ecosystem
Measurement · Physical Oceanography · µmol/kg · one key across 2 datasets

Dissolved oxygen (µmol/kg)

Dissolved oxygen (QC'd)

NERC P01 DOXMZZXXP06 units KGUM umol/kgkey oxygen_umol_kg series oxygen_umol_kg · oxygen_umol_kg_ave_sta_corr
1,317,091
values
1,286
flagged
i
1,286 of these 1,317,091 values (under 0.1 %) are flagged by their provider as questionable or bad. The Explorer, the climatology and its anomalies leave them out; do the same when you read the data yourself (cc_qual_ok_sql() in calcofi4r, qual_ok_sql() in calcofi4py). The oxygen_umol_kg_ave_sta_corr series from CTD Cast Files is an average of two sensors, rebuilt with any sensor its provider flags questionable or bad left out, so it carries no flag of its own.
35,642
sampling events
1949–2025
years
2
datasets
0–5,351 m
depth
every month
seasons
What

O2 · dioxygen · 31.998 g/mol · CHEBI:15379

Concentration of dissolved oxygen per unit mass of the water column. Oxygen may be expressed in terms of mass, volume or quantity of substance.

How
rosette bottle

Automated Winkler titrator, UV end-point detector

350 nm

Bottle sampling methods on calcofi.org ↗

How large are the ocean’s “dead zones” and how fast are they changing?

CalCOFI holds 1,317,091 values of it from 35,642 sampling events in 2 datasets, 1949–2025, from the surface to 5,351 m. At 200–500 m it has fallen 7.26 per decade since 1984.R Below the mixed layer off Southern California oxygen has fallen since the 1980s and the hypoxic boundary has risen toward the shelf, squeezing the habitat of fish and invertebrates.C

other ways to say why · 6
  • authored Oxygen is the balance of what the ocean takes in at the surface and what animals and bacteria use below; a warmer ocean holds less and mixes less, so it is losing oxygen. needs a citation before it can be the pick
  • authored Warming thins the oxygen the surface layer can hold, and the upper ocean has been losing it for decades across the North Pacific, not only here. needs a citation before it can be the pick
  • GOOS asks How large are the ocean’s “dead zones” and how fast are they changing? source
  • GOOS asks Is the biomass of the ocean changing? source
  • Wikipedia Hypoxia (environmental) source
  • Wikipedia Ocean deoxygenation is the reduction of the oxygen content in different parts of the ocean due to human activities. There are two areas where this occurs. Ocean deoxygenation · CC BY-SA 4.0 · rev. 1354922617

The measurement

Measured in
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.

  • Hydrographic Bottle 690,697 values · 26,995 sampling events · 1949–2021 · 0–5,351 m · 210 grid cells · 558 cruises
    series oxygen_umol_kg · source column oxy_umol_kg · flag column o_qual 1,286 flagged · 0.2 %
  • CTD Cast Files 626,394 values · 8,647 sampling events · 1993–2025 · 1–3,630 m · 92 grid cells · 121 cruises
    series oxygen_umol_kg_ave_sta_corr · source column ox_aveu_m_sta_corr sensor mean no flag at this grain
    DO average station-corrected

The structure

O2 dioxygen CHEBI:15379 · 31.998 g/mol · the_thing

RDKit 2026.03.6 from the ChEBI molfile, in the page’s ink · CC BY 4.0. ChEBI’s roles are never shown.

How it is measured

Hydrographic Bottle · rosette bottle
Automated Winkler titrator, UV end-point detector

Carpenter's (1965) modification of Winkler's 1889 method: manganous hydroxide is oxidised by the sample's dissolved oxygen, acid frees iodine from iodide in proportion, thiosulfate titrates the iodine, and an automated titrator reads the end point by the UV absorbance of tri-iodide rather than the visible starch-iodine color. (calcofi.org Bottle sampling methods)

  • Mn2+ + 2OH- -> Mn(OH)2
  • 2Mn(OH)2 + O2 -> 2MnO(OH)2
  • MnO(OH)2 + 4H+ + 2I- -> Mn2+ + I2 + 3H2O
  • I2 titrated with thiosulfate
flag o_qual1,286 flagged
Bottle sampling methods on calcofi.org ↗

Why it matters

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.

The record’s own history
i

Deeper than the climatology reaches: 16,274 values at 1000–2000 m, 6,649 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.

Essential Ocean Variable
Oxygen

the GOOS specification sheet for this Essential Ocean Variable lists it, and asks

GOOS asks

  • How large are the ocean’s “dead zones” and how fast are they changing?
  • Is the biomass of the ocean changing?

GOOS specification sheet ↗ · quoted, not copied

The record

Ways in
i

Read from measurements.json of release v2026.09.11, 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
ERDDAP · Hydrographic BottleCalCOFI's own server, the Hydrographic Bottle table constrained to this series
https://erddap.calcofi.io/erddap/tabledap/calcofi_bottle.html?&measurement_type=%22oxygen_umol_kg%22
ERDDAP · CTD Cast FilesCalCOFI's own server, the CTD Cast Files table constrained to this series
https://erddap.calcofi.io/erddap/tabledap/calcofi_ctd-cast.html?&measurement_type=%22oxygen_umol_kg_ave_sta_corr%22

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.

Range & quality

bounds-20 … 700 µmol/kgobserved-0.4349 … 691.4 µmol/kgflagged1,286baselineclimatology ✓
details
bounds
The registry declares -20 … 700 µmol/kg for oxygen_umol_kg · oxygen_umol_kg_ave_sta_corr; a value outside it is dropped at the ingest (drop_out_of_bounds()).
observed
Hydrographic Bottle oxygen_umol_kg -0.4349 · median 151.5 · 485.7 µmol/kg (5th–95th percentile 15.65–264)
CTD Cast Files oxygen_umol_kg_ave_sta_corr 0 · median 107.3 · 691.4 µmol/kg (5th–95th percentile 13.95–262.2)
flags
Hydrographic Bottle oxygen_umol_kg o_qual on 29,722 of 690,697 rows: 6 28,436 · 8 1,285 · 9 1; qual_ok keeps 689,411. The codes are this dataset's own vocabulary, uninterpreted.
CTD Cast Files oxygen_umol_kg_ave_sta_corr carries no quality code at the release grain; qual_ok keeps all 626,394.
baseline
A monthly climatology exists for this measurement (the release's climatology table: 1993–2013, dataset × grid cell × calendar month × 10 m bin), so the Explorer can draw anomalies against it rather than values.

Related measurements
i

The same quantity from another platform or another kind of sample, each its own page and never merged into this one: a dataset's own bottle samples would count that dataset twice, an underway intake is not a cast, and a replicate is not a mean. The reason is the record's (related[].why).

  • Bottle dissolved oxygen oxygen_btl_umol_kg · CTD Cast Files · 1993–2025 · 127,192 values · P01 DOXMZZXX the same quantity from the CTD files' own bottle samples — plausibly the same physical bottles, so merging them would count the bottle dataset twice
  • DO sensor 1 (uncorrected) oxygen_umol_kg_1 · CTD Cast Files · 1993–2026 · 671,055 values · P01 DOXMZZXX one sensor of the pair beside the mean the file publishes
  • DO sensor 2 (uncorrected) oxygen_umol_kg_2 · CTD Cast Files · 1999–2026 · 328,625 values · P01 DOXMZZXX one sensor of the pair beside the mean the file publishes
  • Reported oxygen (pre-QC) r_oxygen_umol_kg · Hydrographic Bottle · 1949–2021 · 690,698 values · P01 DOXMZZXX the source's own reported value before its QC — this page is the QC'd twin

Cite

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