CalCOFI CalCOFI CalCOFI.io open data ecosystem

Hydrographic Bottle

CalCOFI Bottle Database

calcofi_bottleCalCOFIv2026.09.05ingested

years
1949–2021
observations
11,135,600
sampling events
35,644
stations
213
variables
26
depth
0–5351 m
observations per year, 1949–2021
st0-ln10_hist · 722 obsst20-ln10_hist · 2,075 obsst40-ln10_hist · 2,159 obsst60-ln10_hist · 3,567 obsst80-ln10_hist · 3,615 obsst100-ln10_hist · 1,871 obsst0-ln20_hist · 571 obsst20-ln20_hist · 6,278 obsst40-ln20_hist · 4,450 obsst60-ln20_hist · 8,315 obsst80-ln20_hist · 6,187 obsst100-ln20_hist · 3,002 obsst120-ln20_hist · 5,274 obsst20-ln30_hist · 2,791 obsst40-ln30_hist · 9,685 obsst60-ln30_hist · 8,205 obsst80-ln30_hist · 8,169 obsst100-ln30_hist · 5,318 obsst120-ln30_hist · 337 obsst140-ln30_hist · 527 obsst40-ln40_hist · 18,951 obsst60-ln40_hist · 15,726 obsst80-ln40_hist · 20,289 obsst100-ln40_hist · 11,935 obsst120-ln40_hist · 5,149 obsst140-ln40_hist · 2,624 obsst100-ln50_hist · 11,973 obsst120-ln50_hist · 13,870 obsst140-ln50_hist · 10,199 obsst140-ln60_hist · 13,499 obsst160-ln60_hist · 5,495 obsst180-ln60_hist · 7,043 obsst200-ln60_hist · 6,983 obsst140-ln70_hist · 25,849 obsst160-ln70_hist · 1,455 obsst180-ln70_hist · 1,298 obsst200-ln70_hist · 7,221 obsst140-ln80_hist · 9,191 obsst160-ln80_hist · 3,317 obsst180-ln80_hist · 697 obsst200-ln80_hist · 7,792 obsst120-ln90_hist · 6,187 obsst140-ln90_hist · 24,669 obsst160-ln90_hist · 13,497 obsst180-ln90_hist · 11,356 obsst200-ln90_hist · 11,429 obsst20-ln100_hist · 15,235 obsst40-ln100_hist · 294,261 obsst60-ln100_hist · 227,629 obsst80-ln100_hist · 166,283 obsst100-ln100_hist · 63,429 obsst120-ln100_hist · 22,687 obsst140-ln100_hist · 2,835 obsst160-ln100_hist · 4,075 obsst180-ln100_hist · 1,237 obsst200-ln100_hist · 1,129 obsst0-ln110_hist · 9,411 obsst20-ln110_hist · 5,711 obsst40-ln110_hist · 248,216 obsst60-ln110_hist · 195,835 obsst80-ln110_hist · 144,325 obsst100-ln110_hist · 43,307 obsst120-ln110_hist · 16,018 obsst140-ln110_hist · 5,173 obsst160-ln110_hist · 2,775 obsst180-ln110_hist · 942 obsst0-ln120_hist · 37,266 obsst20-ln120_hist · 24,813 obsst40-ln120_hist · 193,328 obsst60-ln120_hist · 181,647 obsst80-ln120_hist · 107,149 obsst100-ln120_hist · 37,633 obsst120-ln120_hist · 14,772 obsst140-ln120_hist · 570 obsst160-ln120_hist · 1,054 obsst-20-ln130_hist · 55 obsst0-ln130_hist · 27,113 obsst20-ln130_hist · 19,563 obsst40-ln130_hist · 166,126 obsst60-ln130_hist · 119,856 obsst80-ln130_hist · 29,770 obsst100-ln130_hist · 8,995 obsst120-ln130_hist · 11,425 obsst140-ln130_hist · 3,361 obsst-20-ln140_hist · 1,359 obsst0-ln140_hist · 21,394 obsst20-ln140_hist · 30,120 obsst40-ln140_hist · 97,051 obsst60-ln140_hist · 51,940 obsst80-ln140_hist · 16,018 obsst100-ln140_hist · 4,092 obsst120-ln140_hist · 602 obsst-20-ln150_hist · 4,871 obsst0-ln150_hist · 17,037 obsst20-ln150_hist · 41,543 obsst40-ln150_hist · 30,914 obsst60-ln150_hist · 15,623 obsst80-ln150_hist · 5,227 obsst100-ln150_hist · 2,467 obsst-40-ln160_hist · 99 obsst-20-ln160_hist · 10,251 obsst0-ln160_hist · 14,348 obsst20-ln160_hist · 10,710 obsst40-ln160_hist · 7,742 obsst60-ln160_hist · 4,900 obsst80-ln160_hist · 1,441 obsst70-ln60 · 37,423 obsst80-ln60 · 33,832 obsst90-ln60 · 32,111 obsst70-ln63.3 · 20,257 obsst100-ln60 · 21,130 obsst80-ln63.3 · 11,516 obsst90-ln63.3 · 9,340 obsst70-ln66.7 · 24,119 obsst100-ln63.3 · 3,483 obsst80-ln66.7 · 17,828 obsst90-ln66.7 · 13,334 obsst70-ln70 · 46,323 obsst100-ln66.7 · 4,048 obsst80-ln70 · 45,665 obsst90-ln70 · 57,286 obsst70-ln73.3 · 22,774 obsst100-ln70 · 19,406 obsst80-ln73.3 · 15,357 obsst90-ln73.3 · 15,423 obsst70-ln76.7 · 102,904 obsst100-ln73.3 · 3,628 obsst80-ln76.7 · 93,007 obsst90-ln76.7 · 88,079 obsst70-ln80 · 137,983 obsst100-ln76.7 · 73,659 obsst80-ln80 · 123,436 obsst90-ln80 · 121,822 obsst70-ln83.3 · 113,677 obsst100-ln80 · 97,785 obsst80-ln83.3 · 103,729 obsst90-ln83.3 · 100,514 obsst70-ln86.7 · 108,200 obsst100-ln83.3 · 88,537 obsst80-ln86.7 · 100,311 obsst110-ln83.3 · 70,004 obsst90-ln86.7 · 94,254 obsst70-ln90 · 153,831 obsst100-ln86.7 · 79,464 obsst80-ln90 · 131,614 obsst110-ln86.7 · 69,957 obsst90-ln90 · 136,060 obsst70-ln93.3 · 119,832 obsst100-ln90 · 115,809 obsst80-ln93.3 · 125,259 obsst110-ln90 · 89,783 obsst90-ln93.3 · 115,248 obsst120-ln90 · 101,845 obsst100-ln93.3 · 101,547 obsst110-ln93.3 · 85,822 obsst120-ln93.3 · 86,771 obsst60-ln60 · 38,755 obsst50-ln60 · 4,287 obsst55-ln60 · 15,305 obsst50-ln63.3 · 8,843 obsst55-ln63.3 · 17,335 obsst60-ln63.3 · 30,971 obsst50-ln66.7 · 22,920 obsst55-ln66.7 · 32,215 obsst60-ln66.7 · 34,823 obsst50-ln70 · 11,149 obsst55-ln70 · 37,393 obsst60-ln70 · 47,226 obsst50-ln73.3 · 8,242 obsst55-ln73.3 · 31,650 obsst60-ln73.3 · 54,434 obsst50-ln76.7 · 94,878 obsst55-ln76.7 · 109,367 obsst60-ln76.7 · 100,318 obsst45-ln80 · 842 obsst50-ln80 · 53,391 obsst55-ln80 · 127,163 obsst35-ln83.3 · 28 obsst60-ln80 · 143,556 obsst40-ln83.3 · 88,802 obsst45-ln83.3 · 139,151 obsst50-ln83.3 · 55,085 obsst30-ln86.7 · 2,515 obsst55-ln83.3 · 109,234 obsst35-ln86.7 · 144,308 obsst60-ln83.3 · 124,389 obsst40-ln86.7 · 128,636 obsst45-ln86.7 · 108,151 obsst25-ln90 · 99 obsst50-ln86.7 · 39,383 obsst30-ln90 · 206,026 obsst55-ln86.7 · 94,384 obsst35-ln90 · 223,351 obsst60-ln86.7 · 116,418 obsst40-ln90 · 8,820 obsst45-ln90 · 148,875 obsst25-ln93.3 · 51,095 obsst50-ln90 · 10,167 obsst30-ln93.3 · 256,468 obsst55-ln90 · 139,871 obsst35-ln93.3 · 87,131 obsst60-ln90 · 146,113 obsst40-ln93.3 · 129,574 obsst45-ln93.3 · 91,670 obsst50-ln93.3 · 134,201 obsst55-ln93.3 · 84,993 obsst60-ln93.3 · 124,433 obsst110-ln60_hist · 27,326 obsst110-ln70_hist · 26,551 obsst110-ln80_hist · 40,744 obsst80-ln55_hist · 28,481 obsst60-ln55_hist · 109,188 obsst40-ln55_hist · 6,295 obs135°W130°W125°W120°W115°W110°W105°W20°N25°N30°N35°N40°N45°Nextent continues beyond the frame
213 CalCOFI stations sampled, sized by observations, over the survey grid; the record’s extent continues beyond the frame.

Overview

Hydrographic bottle data including temperature, salinity, oxygen, nutrients, pigments, and C14 from CalCOFI cruises.

Keywords
EARTH SCIENCE > OCEANS > OCEAN TEMPERATURE > WATER TEMPERATUREEARTH SCIENCE > OCEANS > SALINITY/DENSITY > OCEAN SALINITYEARTH SCIENCE > OCEANS > OCEAN CHEMISTRY > OXYGENEARTH SCIENCE > OCEANS > OCEAN CHEMISTRY > NUTRIENTSEARTH SCIENCE > OCEANS > OCEAN CHEMISTRY > CHLOROPHYLL

Open with the provider

  • Q10 license — proposed
  • Q11 pi_names — proposed

Coverage

26 variables

alkalinity_rep1ammoniac14_darkc14_meanc14_rep1c14_rep2chlorophyll_adic_rep1light_pctnitratenitriteoxygen_ml_loxygen_saturationoxygen_umol_kgphaeopigmentphosphate

all 26r_ammoniumr_depthr_dynamic_heightr_oxygen_umol_kgr_salinity_svar_temperaturesalinitysigma_thetasilicatetemperature

Also contributes to

  • Carbonate System — alkalinity_rep1, dic_rep1
  • Nutrients & Chemistry — ammonia, nitrate, nitrite, phosphate, r_ammonium, silicate
  • Productivity & Pigments — c14_dark, c14_mean, c14_rep1, c14_rep2, chlorophyll_a, light_pct, phaeopigment

Access

Every endpoint this dataset can be reached through, grouped by how you would use it. Every URL is in the release record and answered when the release was cut.

Explore

Apps that read this dataset from the release. A row marked “this dataset” opens with it already selected.

CalCOFI Explorerthis datasetAcross datasets

https://calcofi.io/explore/?datasets=calcofi_bottle

Station Explorerthis datasetAcross datasets

https://app.calcofi.io/station/?dataset=calcofi_bottle

Hexagon Explorerthis datasetAcross datasets

https://app.calcofi.io/hex/?datasets=calcofi_bottle

Cruise Explorerthis datasetAcross datasets

https://app.calcofi.io/cruise/?datasets=calcofi_bottle

Contour Explorerthe appAcross datasets

https://app.calcofi.io/contour/

Hypoxia Storythe appstudent contribution

https://calcofi.io/hypoxia-story/

Capstone Appthe appstudent contribution

https://app.calcofi.io/capstone/

Query

SQL against the release itself, in the browser — nothing to install and nothing downloaded until a query asks for it. __TBL:obs__ resolves to the pinned release’s parquet.

db-query — the saved query for this datasetDuckDB-WASM over the released parquet, in your browser

https://calcofi.io/db-query/#datasets--bottle

Code

The same release, from a script.

con <- calcofi4r::cc_get_db()
calcofi4r::cc_cite("calcofi_bottle")
con = calcofi4py.cc_get_db()
calcofi4py.cite("calcofi_bottle")
DuckDB, anywhereno CalCOFI package needed — the object is a plain parquet file
SELECT * FROM read_parquet('https://storage.googleapis.com/calcofi-db/ducklake-staging/tables/obs/dataset_key=calcofi_bottle/d03af38fd79897c03bb7ee59/data_0.parquet') LIMIT 100;

Get the data

Every way to have the bytes, by source. Nothing here asks you to register first.

Files from the release (Parquet)

The frozen objects this release is made of. A partition holds only this dataset’s rows; a shared table holds every dataset’s, so filter on dataset_key.

obsthis dataset’s rows · 72.5 MB · since v2026.09.04sha256 8435c672d28e…

https://storage.googleapis.com/calcofi-db/ducklake-staging/tables/obs/dataset_key=calcofi_bottle/d03af38fd79897c03bb7ee59/data_0.parquet

CF netCDF

One self-describing file, for a tool that reads netCDF.

CF netCDF404 MBsha256 838f695a5cc6…
how far this file is CF

CF-1.10 where CF applies (coordinates, units, standard names, time). The cast -> bottle -> occurrence hierarchy uses netCDF-4 groups with explicit parent_index links; CF defines no feature type for this nesting.

https://storage.calcofi.io/calcofi-files-public/netcdf/calcofi_bottle/v2026.09.04/calcofi_bottle.nc

ERDDAP (erddap.calcofi.io)

One ERDDAP dataset per grain, each with its own data formats and its own pages. Subset in the browser or query it from a script.

ERDDAP dataset grain data & pagescalcofi_bottle observations CSVnetCDFJSON pageinfograph calcofi_bottle_sample sampling events CSVnetCDFJSON pageinfograph
observations
one row per measurement, joined to the event it was taken on
sampling events
one row per cast, tow or transect — when, where and how it was sampled

Legacy ids, still answering until 2026-12-04: calcofi_casts (replaced by calcofi_bottle)

From the provider

The dataset as its provider publishes it, before CalCOFI ingested it.

sourceexternalCalCOFI.org

https://calcofi.org/downloads/database/CalCOFI_Database_194903-202105_csv_16October2023.zip

Metadata records

Records about the data, in the standards each portal harvests.

ISO 19115-3XML, from the ERDDAP WAF

https://erddap.calcofi.io/erddap/metadata/iso19115/xml/calcofi_bottle_iso19115.xml

https://erddap.calcofi.io/erddap/metadata/fgdc/xml/calcofi_bottle_fgdc.xml

JSON-LD (schema.org/Dataset)what this page publishes to Google Dataset Search

https://calcofi.io/datasets/calcofi_bottle.jsonld

the record, verbatimthe release’s own entry for this dataset — everything on this page comes from it

https://calcofi.io/datasets/calcofi_bottle.json

DCAT-US 1.1the whole catalog, for data.gov and any CKAN

https://calcofi.io/data.json

STAC collectionone Collection per dataset, an Item per release

https://calcofi.io/stac/#/collections/calcofi_bottle/collection.json

Archives & portals

Where this dataset is registered outside calcofi.io, by the identifier each portal knows it as.

ERDDAP (calcofi.io)calcofi_bottlepublished

https://erddap.calcofi.io/erddap/info/calcofi_bottle/index.html

OBISn/a
EDIn/a
NCEIplanned
CalOOSplanned
Zenodo10.5281/zenodo.22281994publishedas part of the integrated database release

https://doi.org/10.5281/zenodo.22281994

NOAA CoastWatch ERDDAPsiocalcofiHydroCastexternalCalCOFI SIO Hydrographic Cast DataNOAA CoastWatch mirror of the bottle database's cast table (CalOOS module source)

https://coastwatch.pfeg.noaa.gov/erddap/tabledap/siocalcofiHydroCast.html

NOAA CoastWatch ERDDAPsiocalcofiHydroBottleexternalCalCOFI SIO Hydrographic Bottle DataNOAA CoastWatch mirror of the bottle database's bottle table

https://coastwatch.pfeg.noaa.gov/erddap/tabledap/siocalcofiHydroBottle.html

Everything here is open — nothing on calcofi.io asks you to register first. If this dataset ends up in something you build or publish, register your use so it can be credited and linked back; to hear when a release changes it, stay informed. Questions: data@calcofi.io.

Cite

CalCOFI. (2023). CalCOFI Bottle Database 194903-202105. CalCOFI.org.
BibTeX
@misc{calcofi_bottle,
  title        = {CalCOFI Bottle Database},
  howpublished = {CalCOFI. (2023). CalCOFI Bottle Database 194903-202105. CalCOFI.org.},
  year         = {2023}
}

…and the release it came from

CalCOFI (2026). CalCOFI Integrated Database, release v2026.09.05 [Data set]. Scripps Institution of Oceanography, NOAA Fisheries, and California Department of Fish and Wildlife. https://calcofi.io/db-schema/?v=v2026.09.05
BibTeX
@misc{calcofi_release_v2026_09_05,
  title     = {CalCOFI Integrated Database, release v2026.09.05},
  author    = {CalCOFI},
  year      = {2026},
  publisher = {Scripps Institution of Oceanography, NOAA Fisheries, and California Department of Fish and Wildlife},
  url       = {https://calcofi.io/db-schema/?v=v2026.09.05}
}