CalCOFI.io CalCOFI.io Storage

ducklake/releases/v2026.10.19 / RELEASE_NOTES.md · raw markdown ↗

CalCOFI integrated database release v2026.10.19

RELEASE_NOTES.md on gs://calcofi-db/ducklake/releases/v2026.10.19

Release date: 2026-10-19 · promoted (latest.txt)

Each measurement key has an authored short title

measurements.json gains short_label per key (calcofi.io issue #30, decision D13): the name a measurement page head shows beside its picture, such as "Dissolved oxygen (ml/L)", while label keeps the full name with its method notes. It is authored in a new short_label column of metadata/measurement_face.csv and validated by calcofi4db 4.26.0: at most 48 characters, unique across keys, no trailing punctuation. Until now calcofi.io cut label at its first comma or colon. Keys that would have shared a title are told apart by where they were measured, for example "Surface PAR (CTD cast)" and "Surface PAR (underway)". dissolved_iron, which had no row in the face registry, now has one (face_kind none: dissolved iron is defined by the filter, a mix of Fe(II), Fe(III) and organically bound iron, so there is no single thing to draw).

The euphausiid dataset credits Mark D. Ohman as its PI

cce-lter_euphausiids listed Rasmus Swalethorp and Linsey Sala as PIs and Mark D. Ohman and Moira Decima as creators. Mark D. Ohman's correction: PI Mark D. Ohman; creators Mark D. Ohman and Linsey Sala. The calcofi_bottle description now says what its "Cast" file is (the rosette cast the bottles came up on), since a reader took it for the CTD Cast Files dataset.

A # inside a registry field is no longer cut off as a comment

The registry readers skipped comments with readr::read_csv(comment = "#"), which cuts every line at its first #. The two measurement_chem.csv rows for chlorophyll-a's method product (pheophytin a, on chlorophyll_a and btl_chlorophyll_a) cite a calcofi.org URL with a text fragment (#:~:text=…), so they lost the fragment and their note ("what acid turns it into"). calcofi4db 4.26.0 skips only the leading block of # lines, and both rows now read whole.

Contents (generated)

table rows
climatology 1,828,215 partitioned
cruise 845
dataset 19
dataset_taxon 1,940
fish 10,796
grid 225
grid_crosswalk 673
lookup 26
measurement_type 231
obs 33,326,406 deprecated → obs_bio, obs_env (objects removed in next)
obs_attribute 455,300
obs_bio 1,586,795
obs_env 31,739,611 partitioned
region 4
sample 1,467,016
sample_measurement 658,009
sample_spatial 1,994,263
ship 49
spatial 3,390
spatial_attribute 37,943
taxon 2,606
taxon_group 438
obs_ctd_full 281,888,334 supplemental
obs_mets_full 19,926,523 supplemental
sample_root 419,050 supplemental

25 tables, 375,348,707 rows, 2.75 GB.

Datasets (19): calcofi_2022-edna, calcofi_bottle, calcofi_ctd-cast, calcofi_ctd-derived, calcofi_dic, calcofi_mets, calcofi_phyllosoma, calcofi_phytoplankton, cce-lter_euphausiids, cce-lter_iron, cce-lter_picoplankton-bacteria, cce-lter_zoodb, cce-lter_zooscan, cdfw_dungeness-crab, farallon_bird-mammal, sio_mesopelagic-fish, sio_pic-zooplankton, swfsc_cufes, swfsc_ichthyo

Validation: 97 pass / 0 fail / 4 skip (consumer-contract suite, 2026-10-19T20:00:36Z).

Software: calcofi4db 4.26.0, calcofi4r 1.28.0.

How to cite

CalCOFI (2026). CalCOFI Integrated Database, release v2026.10.19 [Data set]. Scripps Institution of Oceanography, NOAA Fisheries, and California Department of Fish and Wildlife. https://doi.org/10.5281/zenodo.23484176

Cite the source datasets you use alongside the release:

Access

con <- calcofi4r::cc_get_db(version = "v2026.10.19")
con = calcofi4py.cc_get_db("v2026.10.19")

Parquet: https://storage.googleapis.com/calcofi-db/ducklake/releases/v2026.10.19/parquet/{table}.parquet; full history: RELEASES.md.