DO sensor 1 cruise-corrected
- 667,356
- values
- 1,396
- flagged
i
1,396 of these 667,356 values (0.2 %) 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). - 9,213
- sampling events
- 1993–2025
- years
- 1
- dataset
- 1–3,630 m
- depth
- Jan · Feb · Mar · Apr · May · Jun · Jul · Aug · Sep · Oct · Nov
- seasons
O2 · dioxygen · 31.998 g/mol · CHEBI:15379
Concentration of dissolved oxygen per unit volume of the water column. Oxygen may be expressed in terms of mass, volume or quantity of substance.
How large are the ocean’s “dead zones” and how fast are they changing?
CalCOFI holds 667,356 values of it from 9,213 sampling events in one dataset, 1993–2025, from the surface to 3,630 m. At 200–500 m it has fallen 0.18 per decade since 1993.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
- 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
- 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.
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.
-
series
oxygen_ml_l_1_cruise_corr· source columnox1_cruise_corr· flag columnox1q1,396 flagged · 0.2 %
The structure
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
A Sea-Bird SBE 43 membrane oxygen sensor on the pumped CTD line, soaked at 10 m for a few minutes before the downcast so its temperature-dependent response stabilises; the raw sensor reading is then corrected against the Winkler-titrated bottle oxygens at that station (or averaged over the cruise). (calcofi.org CTD FAQ circa 2020)
CTD FAQ circa 2020 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.
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: 3,200 values at 1000–2000 m, 3,237 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.
i
Deeper than the climatology reaches: 3,200 values at 1000–2000 m, 3,237 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.
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-queryi
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.
SELECT * FROM read_json('…/v2026.09.11/catalog.json')
-- objects[] WHERE table = 'obs_env'
-- AND partition_value = 'oxygen_ml_l_1_cruise_corr'library(calcofi4r)
con <- cc_get_db() # the promoted release
tbl(con, "obs_env") |> filter(measurement_type %in% c("oxygen_ml_l_1_cruise_corr"))import calcofi4py as cc
con = cc.cc_get_db()
con.sql("SELECT * FROM obs_env WHERE measurement_type IN ('oxygen_ml_l_1_cruise_corr')").df()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).
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.
i
Values per calendar month, one row per series: CalCOFI's quarterly cruises show as peaks in the months the ships sail.
Range & quality
details
- bounds
- The registry declares
0 … 15 ml/Lforoxygen_ml_l_1_cruise_corr; a value outside it is dropped at the ingest (drop_out_of_bounds()). - observed
- CTD Cast Files
oxygen_ml_l_1_cruise_corr0.0012 · median 2.684 · 13.71 ml/L (5th–95th percentile 0.4136–6.039) - flags
- CTD Cast Files
oxygen_ml_l_1_cruise_corrox1qon 1,396 of 667,356 rows:81,310 ·986; qual_ok keeps 665,960. The codes are this dataset's own vocabulary, uninterpreted. - 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.
- derivation
- Sensor oxygen corrected by regression against the bottle oxygens. Bottle-corrected with ONE regression per cruise, fitted from 4-second-averaged sensor data against all the cruise's bottles (n ~ 1400, fliers omitted).
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).
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_ml_l · CTD Cast Files · 1993–2025 · 141,750 values · P01 DOXYZZXX the same quantity from the CTD files' own bottle samples — plausibly the same physical bottles, so merging them would count the bottle dataset twice
- Dissolved oxygen (ml/L) oxygen_ml_l · oxygen_ml_l_ave_sta_corr · Hydrographic Bottle · CTD Cast Files · 1949–2025 · 1,378,860 values · P01 DOXYZZXX one sensor of the pair beside the mean the file publishes
- DO sensor 1 (uncorrected) oxygen_ml_l_1 · CTD Cast Files · 1993–2026 · 689,050 values · P01 DOXYZZXX the other sensor of the pair, logged alongside
- DO sensor 1 station-corrected oxygen_ml_l_1_sta_corr · CTD Cast Files · 1993–2025 · 652,793 values · P01 DOXYZZXX the other sensor of the pair, logged alongside
- DO sensor 2 (uncorrected) oxygen_ml_l_2 · CTD Cast Files · 1999–2026 · 347,747 values · P01 DOXYZZXX the other sensor of the pair, logged alongside
- DO sensor 2 cruise-corrected oxygen_ml_l_2_cruise_corr · CTD Cast Files · 1999–2025 · 325,671 values · P01 DOXYZZXX the other sensor of the pair, logged alongside
- DO sensor 2 station-corrected oxygen_ml_l_2_sta_corr · CTD Cast Files · 1999–2025 · 320,905 values · P01 DOXYZZXX the other sensor of the pair, logged alongside
Cite
Cite the release; each dataset's own citation, licence and DOI are on its page — CTD Cast Files. The Explorer's Share → Cite writes it for the view you make.