Underway Meteorological (METS)
CalCOFI METS (Underway TSG/Meteorology)
calcofi_metsCalCOFIunstatedv2026.09.11metadata
- years
- 2004–2022
- observations
- 511,395
- sampling events
- 77,791
- stations
- 98
- variables
- 17
- depth
- 0–0 m
Overview
Shipboard underway thermosalinograph (TSG) and meteorology data, ~1-minute resolution, recorded continuously along the cruise track.
Open with the provider
- Q29 license — proposed
- Q30 pi_names — proposed
- Q31 citation_main — proposed
calcofi.org page ↗source ↗ingest notebook ↗record JSON JSON-LD
Coverage
17 variables
air_temp_c deg_Catm_pressure_mb mbbottom_depth_m mchl_fluor ug/Llong_wave_rad W/m2oxygenpar_surfrel_humidity_pct percentshort_wave_rad W/m2sss_psu PSUsst_c deg_Csw_phtsg1_salinity_psu PSUtsg1_temp_c deg_Cuws_flow L/minwind_dir_deg degreesall 17
wind_speed_ms m/s
Full resolution only · 37
Series this dataset carries that are not canonical for any measurement, so the catalog draws no page for them: they ride the full-resolution table (obs_mets_full) at every scan, behind the headline series above.
- atm_pressure_slc_mb Atmospheric pressure (sea-level corrected)
- bottom_depth_mb_m Bottom depth (multibeam)
- dic_pco2_raw Underway DIC raw pCO2
- dic_ph_raw Underway DIC raw pH
- dic_salinity_psu Underway DIC system salinity
- dic_temp_c Underway DIC system temperature
- dic_valve Underway DIC valve state
- oxygen_sat_pct Dissolved oxygen saturation
- oxygen_temp_c Oxygen sensor temperature
- pred_chl Estimated chlorophyll-a
- pred_sal_psu Model-predicted salinity
- pred_sst_c Model-predicted sea-surface temperature (distinct from Pred_TSGTemp)
- pred_temp_c Model-predicted temperature
- ss_conductivity Sea surface conductivity (independent sensor)
- sss_psu_corrected Corrected sea surface salinity
- sst_c_corrected Corrected sea surface temperature
- transmissometer_v Transmissometer voltage
- tsg1_conductivity TSG unit 1 conductivity
- tsg1_density TSG unit 1 density
- tsg1_salinity_psu_calibrated Calibrated salinity
- tsg1_sound_velocity TSG unit 1 sound velocity
- tsg1_temp_c_calibrated Calibrated temperature
- tsg2_conductivity TSG unit 2 conductivity
- tsg2_density TSG unit 2 density
- tsg2_salinity_psu TSG unit 2 salinity
- tsg2_sound_velocity TSG unit 2 sound velocity
- tsg2_temp_c TSG unit 2 temperature (physical sensor unconfirmed -- mets_03)
- tsg2b_temp_c A SECOND unit-2 temperature appearing alongside TSG_Temp_2 in one file
- tsg3_conductivity TSG unit 3 conductivity
- tsg3_density TSG unit 3 density
- tsg3_salinity_psu TSG unit 3 salinity
- tsg3_sound_velocity TSG unit 3 sound velocity
- tsg3_temp_c TSG unit 3 temperature (physical sensor unconfirmed -- mets_03)
- tsg5_salinity_psu TSG unit 5 salinity
- tsg5_temp_c TSG unit 5 temperature (physical sensor unconfirmed -- mets_03)
- unknown_measurement_1 Unidentified measurement (NaN in every file inspected)
- unknown_measurement_2 Unidentified measurement (NaN in every file inspected)
Also contributes to
- Carbonate System — sw_ph
- Physical Oceanography — bottom_depth_m, oxygen, sss_psu, sst_c, tsg1_salinity_psu, tsg1_temp_c, uws_flow
- Productivity & Pigments — chl_fluor, par_surf
Access
Every endpoint this dataset can be reached through, grouped by how you would use it. Each name is the link; the copy button beside it copies the address. Everything is in the release record and was answered when the release was cut.
Apps that read this dataset from the release. The icons after a name are the app’s lenses — the spatial grain it shows the data at.
Every way to have the bytes, by source. Nothing here asks you to register first.
Tables from the release (Parquet)
The release’s own tables, as the parquet objects it is frozen from — the same bytes every app and package below reads. A table this dataset shares with others holds every dataset’s rows, so filter on dataset_key; a partition holds only this dataset’s. since is the release whose rows these are: an unchanged table keeps its object.
CF netCDF
One self-describing file, for a tool that reads netCDF.
how far this file is CF
Fully CF: an underway series on a moving platform is a CF trajectory. One trajectory per cruise; time, latitude and longitude vary along the observation dimension rather than being fixed per instance.
ERDDAP (erddap.calcofi.io)
One ERDDAP dataset per grain. Subset in the browser or query it from a script; for netCDF take the CF file above.
- full resolution (pre-thinning)
- the unthinned series — every bin as the instrument recorded it, before the release's depth thinning
- observations
- one row per measurement — value, units and quality flag — joined to the sampling event it was taken on
- sampling events
- one row per cast, tow or transect: when, where and how it was sampled, with the effort that scales it
From the provider
The dataset as its provider publishes it, before CalCOFI ingested it.
The same release, from a script or a browser SQL shell.
Packages
The whole release, pinned to a version, with the citation one call away.
con <- calcofi4r::cc_get_db()
calcofi4r::cc_cite("calcofi_mets")
con = calcofi4py.cc_get_db()
calcofi4py.cite("calcofi_mets")
DuckDB, anywhere
No CalCOFI package needed: each table above is a plain parquet object, readable by any DuckDB (or Arrow, pandas, Spark) from its URL. The path carries a content hash — a table whose rows did not change between releases keeps the same object, so nothing unchanged is stored or downloaded twice. Swap in any table above; one shared with other datasets needs WHERE dataset_key = 'calcofi_mets'. Every object of every release is listed in db-schema.
SELECT *
FROM read_parquet('https://storage.googleapis.com/calcofi-db/ducklake/tables/obs/dataset_key=calcofi_mets/c97c1263d39b25a2c0f7b823/data_0.parquet')
LIMIT 100;
db-query, in the browser
__TBL:obs__ is db-query’s name for the pinned release’s obs object — the hashed path above, resolved for you — so the same SQL keeps working when a release changes the object.
-- calcofi_mets in the CalCOFI release v2026.09.11
SELECT *
FROM __TBL:obs__
WHERE dataset_key = 'calcofi_mets'
LIMIT 100;
Records about the data, in the standards each portal harvests.
Where this dataset is registered outside calcofi.io: each portal’s role, what it is for, the dataset’s status there and the identifier it is known by. The policy — which portal is the archive of record and why — is in Portals.
Policy Archive of record: none yet — a CalCOFI program dataset. EDI is the planned archive (package built and staged each release); NCEI planned through the SWFSC data manager. OBIS does not apply (no occurrences).
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
This dataset's own citation. What to cite, and how, is a chapter of the docs book.
CalCOFI. Underway (METS) TSG/Meteorology Data. CalCOFI.org.
BibTeX
@misc{calcofi_mets,
title = {CalCOFI METS (Underway TSG/Meteorology)},
howpublished = {CalCOFI. Underway (METS) TSG/Meteorology Data. CalCOFI.org.}
}
…and the release it came from
CalCOFI (2026). CalCOFI Integrated Database, release v2026.09.11 [Data set]. Scripps Institution of Oceanography, NOAA Fisheries, and California Department of Fish and Wildlife. https://calcofi.io/db-schema/?v=v2026.09.11
BibTeX
@misc{calcofi_release_v2026_09_11,
title = {CalCOFI Integrated Database, release v2026.09.11},
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.11}
}