CalCOFI.io CalCOFI.io open data ecosystem

Temperature

Water temperature (QC'd)

°Ckey temperatureNERC P01 TEMPPR01P06 units UPAAone key across 2 datasetsseries temperature · temperature_ave

CalCOFI holds 1,587,539 values of it from 45,250 sampling events in 2 datasets, 1949–2026, from the surface to 5,351 m. At 200–500 m it has risen 0.06 per decade since 1984.R Temperature sets the water’s density, and so the layering that decides whether deep nutrients reach the sunlit surface; off California the warm years are El Niño years and marine heatwaves.C

1,587,539
values
575
flagged
i
575 of these 1,587,539 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).
1949–2026
years
2
datasets
0–5,351 m
depth
every month
months
The degree of hotness of the water column expressed against a standard scale. Includes both IPTS-68 and ITS-90 scales.

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

  • 884,400 values · 35,389 sampling events · 1949–2021 · 0–5,351 m · 222 grid cells · 657 cruises
    series temperature · source column t_deg_c · flag column t_qual 575 flagged
  • 703,139 values · 9,861 sampling events · 1993–2026 · 1–3,630 m · 113 grid cells · 142 cruises
    series temperature_ave · source column temp_ave · flag column temp_ave_q sensor mean
    Average temperature

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

Every way in 9 ways · ERDDAP · 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
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=%22temperature%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=%22temperature_ave%22
How it is measured Reversing thermometers on the bottles, then the CTD
rosette bottle
Hydrographic Bottle · rosette bottle
Reversing thermometers on the bottles, then the CTD

Originally reversing thermometers on the 20 Nansen/Niskin bottles, read on deck after about 45 minutes of equilibration; the CTD arrived in the early 1990s under protocols built to keep its readings comparable to the bottle-thermometer series. (calcofi.org CTD FAQ circa 2020)

flag t_qual575 flagged
CTD FAQ circa 2020 on calcofi.org ↗
Why it matters 4 ways to say it · EOV Subsurface temperature

Essential Ocean Variable
Subsurface temperature

the GOOS specification sheet for this Essential Ocean Variable lists it

GOOS specification sheet ↗

other ways to say why · 3
  • authored A warm year off California is usually a lean one: warmer, more layered water brings fewer nutrients up, and the plankton the rest of the food web eats decline. needs a citation before it can be the pick
  • Wikipedia Marine heatwave source
  • Wikipedia Sea surface temperature is the temperature of ocean water close to the surface. The exact meaning of surface varies in the literature and in practice. Sea surface temperature · CC BY-SA 4.0 · rev. 1374459881
The record’s own history 7 depth bands against the 1993–2013 normal

Each year against the normal
i

Deeper than the climatology reaches: 7,758 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 °C · -2 … 40 declared · 575 flagged

°C (degC in metadata/measurement_type.csv) · P06 units UPAA

bounds-2 … 40 °Cobserved1.44 … 36.22 °Cflagged575baselineclimatology ✓
details
bounds
The registry declares -2 … 40 °C for temperature · temperature_ave; a value outside it is dropped at the ingest (drop_out_of_bounds()).
observed
Hydrographic Bottle temperature 1.44 · median 10.07 · 31.14 °C (5th–95th percentile 4.7–18.2)
CTD Cast Files temperature_ave 1.508 · median 9.004 · 36.22 °C (5th–95th percentile 5.819–16.53)
flags
Hydrographic Bottle temperature t_qual on 13,047 of 884,400 rows: 0 170 · 1 118 · 2 135 · 3 104 · 4 53 · 5 129 · 6 11,756 · 7 7 · 8 575; qual_ok keeps 883,825. The codes are this dataset's own vocabulary, uninterpreted.
CTD Cast Files temperature_ave carries no quality code at the release grain (its source column is temp_ave_q); qual_ok keeps all 703,139.
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.

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 — Hydrographic Bottle, CTD Cast Files. The Explorer's Share → Cite writes it for the view you make.