Salinity sensor 2
Salinity sensor 2 (uncorrected)
PSUkey salinity_2NERC P01 PSALST02P06 units PSUXseries salinity_2
CalCOFI holds 572,885 values of it from 8,210 sampling events in one dataset, 1998–2026, from the surface to 3,630 m. At 200–500 m it has fallen 0.00 per decade since 1998.R Salinity tags the water masses: the California Current carries fresher Subarctic water south and the Undercurrent carries saltier water from the south; with temperature it sets density.C
- 572,885
- values
- 389
- flagged
i
389 of these 572,885 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). - 1998–2026
- years
- 1
- dataset
- 1–3,630 m
- depth
- every month
- months
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.
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
salinity_2· source columnsalt2· flag columnsalt2q389 flagged
Explorera depth section vs normaldb-queryERDDAPThis page as JSON R · Python · Parquet
Every way in 8 ways · ERDDAP · Parquet · R · Python · JSON
Read from measurements.json of release v2026.11.05, 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-querySELECT * FROM read_json('…/v2026.11.05/catalog.json')
-- objects[] WHERE table = 'obs_env'
-- AND partition_value = 'salinity_2'library(calcofi4r)
con <- cc_get_db() # the promoted release
tbl(con, "obs_env") |> filter(measurement_type %in% c("salinity_2"))import calcofi4py as cc
con = cc.cc_get_db()
con.sql("SELECT * FROM obs_env WHERE measurement_type IN ('salinity_2')").df()The structure 2 structures
ChEBI: “A sulfur oxoanion obtained by deprotonation of both OH groups of sulfuric acid.” · 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 Sea-Bird CTD, conductivity sensor 2
A Sea-Bird CTD's dual conductivity cells profile in situ; the pumped flow keeps water moving past the sensors regardless of ship roll, and the bottle salts confirm each Niskin closed at its target depth and help select the better-performing sensor for the published series. (calcofi.org Bottle sampling methods)
Bottle sampling methods on calcofi.org ↗Why it matters 4 ways to say it · EOV Subsurface salinity
the GOOS specification sheet for this Essential Ocean Variable lists it
other ways to say why · 3
- Salinity and temperature together set seawater’s density, which drives the currents and decides how deep winter mixing reaches. needs a citation before it can be the pick
- Wikipedia Water mass source
- Wikipedia Salinity is the saltiness or amount of salt dissolved in a body of water, called saline water. It is usually measured in g/L or g/kg. Salinity · CC BY-SA 4.0 · rev. 1368851206
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,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,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.
Units and range PSU · 0 … 45 declared · 389 flagged
PSU · P06 units PSUX
details
- bounds
- The registry declares
0 … 45 PSUforsalinity_2; a value outside it is dropped at the ingest (drop_out_of_bounds()). - observed
- CTD Cast Files
salinity_26.794 · median 34 · 37.69 PSU (5th–95th percentile 33.09–34.3) - flags
- CTD Cast Files
salinity_2salt2qon 791 of 572,885 rows:0402 ·8194 ·9195; qual_ok keeps 572,496. 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 × 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.
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 1–3,630 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).
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.
Cite the release, v2026.11.05
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.