{
  "schema_version": "1.2",
  "release_version": "v2026.07.16",
  "release_date": "2026-07-16",
  "datasets": {
    "calcofi_bird_mammal_census": {
      "provider": "calcofi",
      "dataset": "bird_mammal_census",
      "dataset_name": "CalCOFI Bird & Mammal Census",
      "description": "Bird and mammal observations along CalCOFI (and NMFS, CPR) cruise transects, 1987-2021. Transect effort + counts + species/behavior lookups. Curated via CCE-LTER DataZoo 255 (PI Bill Sydeman).\n",
      "citation_main": null,
      "link_calcofi_org": null,
      "link_data_source": "https://oceaninformatics.ucsd.edu/datazoo/catalogs/ccelter/datasets/255",
      "coverage_temporal": "1987 to 2021",
      "coverage_spatial": "CalCOFI region (California Current)",
      "license": null,
      "pi_names": "Bill Sydeman",
      "tables": [
        "bird_mammal_transect",
        "bird_mammal_observation",
        "bird_mammal_species",
        "bird_mammal_behavior"
      ],
      "workflow_url": "https://calcofi.io/workflows/ingest_calcofi_bird_mammal_census.html",
      "coverage_temporal_observed": "1987-05 to 2021-08"
    },
    "calcofi_bottle": {
      "provider": "calcofi",
      "dataset": "bottle",
      "dataset_name": "CalCOFI Bottle Database",
      "description": "Hydrographic bottle data including temperature, salinity, oxygen, nutrients, pigments, and C14 from CalCOFI cruises.\n",
      "citation_main": "CalCOFI. (2023). CalCOFI Bottle Database 194903-202105. CalCOFI.org.",
      "link_calcofi_org": "https://calcofi.org/data/oceanographic-data/bottle-database/",
      "link_data_source": "https://calcofi.org/downloads/database/CalCOFI_Database_194903-202105_csv_16October2023.zip",
      "coverage_temporal": "1949-03 to 2021-05",
      "coverage_spatial": "23-51°N, -170 to -117°W",
      "license": null,
      "pi_names": null,
      "tables": [
        "casts",
        "bottle",
        "bottle_measurement",
        "cast_condition",
        "measurement_type"
      ],
      "workflow_url": "https://calcofi.io/workflows/ingest_calcofi_bottle.html",
      "coverage_temporal_observed": "1949-02 to 2021-05"
    },
    "calcofi_ctd-cast": {
      "provider": "calcofi",
      "dataset": "ctd-cast",
      "dataset_name": "CalCOFI CTD Cast Files",
      "description": "CTD downcast profiles with temperature, salinity, oxygen, fluorescence, and other sensors at standard depths.\n",
      "citation_main": "CalCOFI. (2023). CalCOFI CTD Cast Files. CalCOFI.org.",
      "link_calcofi_org": "https://calcofi.org/data/oceanographic-data/ctd-cast-files/",
      "link_data_source": "https://calcofi.org/data/oceanographic-data/ctd-cast-files/",
      "coverage_temporal": "1993-01 to 2021-05",
      "coverage_spatial": "28-37°N, -125 to -117°W",
      "license": null,
      "pi_names": null,
      "tables": [
        "ctd_cast",
        "ctd_thin",
        "ctd_measurement",
        "ctd_summary",
        "ctd_wide",
        "measurement_type"
      ],
      "workflow_url": "https://calcofi.io/workflows/ingest_calcofi_ctd-cast.html",
      "coverage_temporal_observed": "1998-01 to 2026-04"
    },
    "calcofi_dic": {
      "provider": "calcofi",
      "dataset": "dic",
      "dataset_name": "CalCOFI DIC",
      "description": "Discrete profile dissolved inorganic carbon (DIC) and total alkalinity (TA) from CalCOFI Niskin bottle samples, quality-controlled using WOCE flagging.\n",
      "citation_main": "Keeling, C.D.; Lueker, T.J.; Emanuele, G.; Dickson, A.G.; Martz, T.R.; Wolfe, W.H.; Mau, A. (2025). Discrete profile dissolved inorganic carbon, total alkalinity, water temperature and salinity measurements for CalCOFI (NCEI Accession 0301029). NOAA NCEI. https://doi.org/10.25921/3w9f-jd72",
      "link_calcofi_org": "https://calcofi.org/data/oceanographic-data/dic/",
      "link_data_source": "https://www.ncei.noaa.gov/access/metadata/landing-page/bin/iso?id=gov.noaa.nodc:0301029",
      "coverage_temporal": "1983-03 to 2021-07",
      "coverage_spatial": "28-37°N, -125 to -117°W",
      "license": "CC BY 4.0",
      "pi_names": "Todd Martz; Aaron Mau",
      "tables": [
        "dic_sample",
        "dic_measurement",
        "dic_summary",
        "measurement_type"
      ],
      "workflow_url": "https://calcofi.io/workflows/ingest_calcofi_dic.html",
      "coverage_temporal_observed": "1983-03 to 2021-07"
    },
    "calcofi_phyllosoma": {
      "provider": "calcofi",
      "dataset": "phyllosoma",
      "dataset_name": "CalCOFI Lobster Phyllosoma",
      "description": "Spiny lobster (Panulirus interruptus) phyllosoma larvae counts by developmental stage from CalCOFI net tows, 1951-2008. Source: EDI knb-lter-cce.188.4 (Koslow).\n",
      "citation_main": null,
      "link_calcofi_org": null,
      "link_data_source": "https://portal.edirepository.org/nis/mapbrowse?packageid=knb-lter-cce.188.4",
      "coverage_temporal": "1951 to 2008",
      "coverage_spatial": "CalCOFI region",
      "license": null,
      "pi_names": "J. Anthony Koslow",
      "tables": [
        "phyllosoma_tow",
        "phyllosoma_measurement",
        "measurement_type"
      ],
      "workflow_url": "https://calcofi.io/workflows/ingest_calcofi_phyllosoma.html",
      "coverage_temporal_observed": "1951-07 to 2009-07"
    },
    "calcofi_phytoplankton": {
      "provider": "calcofi",
      "dataset": "phytoplankton",
      "dataset_name": "CalCOFI Phytoplankton (Venrick)",
      "description": "Abundance and species composition of phytoplankton (385 taxonomic categories) in the California Current, 1996-2022, by inverted-microscope counts (E. Venrick). Samples from the near-surface \"second depth\" are pooled across stations into four regions (NE, SE, Alley, Offshore; Hayward & Venrick 1998) before counting, so the grain is cruise x region, not per-station. Source: EDI knb-lter-cce.254.4.\n",
      "citation_main": null,
      "link_calcofi_org": "https://calcofi.org/data/marine-ecosystem-data/phytoplankton-bacterioplankton/",
      "link_data_source": "https://portal.edirepository.org/nis/mapbrowse?packageid=knb-lter-cce.254.4",
      "coverage_temporal": "1996 to 2022",
      "coverage_spatial": "CalCOFI region (4 pooled sub-regions)",
      "license": null,
      "pi_names": "Elizabeth L. Venrick",
      "tables": [
        "phyto_sample",
        "phyto_measurement",
        "phyto_taxon",
        "region",
        "measurement_type"
      ],
      "workflow_url": "https://calcofi.io/workflows/ingest_calcofi_phytoplankton.html"
    },
    "cce-lter_euphausiids": {
      "provider": "cce-lter",
      "dataset": "euphausiids",
      "dataset_name": "CCE-LTER Euphausiid Abundance",
      "description": "Euphausiid (krill) abundance from CalCOFI / CCE-LTER net tows, 1951-2019, one row per tow. Provisional pending provider answers on abundance units and taxonomic scope (see Questions for Data Providers).\n",
      "citation_main": null,
      "link_calcofi_org": null,
      "link_data_source": "https://portal.edirepository.org/ (EDI package TBD)",
      "coverage_temporal": "1951-01 to 2019-04",
      "coverage_spatial": "CalCOFI grid incl. Baja lines",
      "license": null,
      "pi_names": "Rasmus Swalethorp; Linsey Sala",
      "tables": [
        "euphausiids_tow",
        "euphausiids_measurement",
        "euphausiids_summary",
        "measurement_type"
      ],
      "workflow_url": "https://calcofi.io/workflows/ingest_cce-lter_euphausiids.html",
      "coverage_temporal_observed": "1951-01 to 2019-04"
    },
    "cce-lter_zoodb": {
      "provider": "cce-lter",
      "dataset": "zoodb",
      "dataset_name": "ZooDB Holoplankton Community",
      "description": "Holoplankton abundance and carbon biomass by 33 higher taxa (copepods to family, plus amphipods, chaetognaths, salps, pyrosomes, pteropods, ostracods, foraminifera, radiolaria and more) from CalCOFI net tows, 1951-2021, enumerated by microscopy (Ohman Lab / SIO Pelagic Invertebrate Collection). One row per (sample, taxon, measurement_type); unpooled tows are station-resolved, pooled samples are per-cruise regional composites. Raw (uncorrected) abundance per 1000 m3 and per m2, plus biomass mg C/m2.\n",
      "citation_main": null,
      "link_calcofi_org": "https://calcofi.org/data/marine-ecosystem-data/zooplankton/",
      "link_data_source": "https://oceaninformatics.ucsd.edu/zoodb/",
      "coverage_temporal": "1951-03 to 2021-05",
      "coverage_spatial": "CalCOFI lines 60-93 (Southern + Central California)",
      "license": null,
      "pi_names": "Mark D. Ohman; Bertha Lavaniegos; Linsey Sala",
      "tables": [
        "zoodb_sample",
        "zoodb_measurement",
        "zoodb_taxon",
        "measurement_type"
      ],
      "workflow_url": "https://calcofi.io/workflows/ingest_cce-lter_zoodb.html",
      "coverage_temporal_observed": "1951-03 to 2015-04"
    },
    "cce-lter_zooscan": {
      "provider": "cce-lter",
      "dataset": "zooscan",
      "dataset_name": "ZooScan PRPOOS Zooplankton",
      "description": "Zooplankton abundance, carbon biomass, and size (Feret diameter, individual carbon content) from ZooScan optical imaging of CalCOFI / CCE-LTER PRPOOS net tows on lines 80, 87 and 90, 2005-present, machine-classified into 23 bioclasses (copepod groups, euphausiids, chaetognaths, appendicularians, salps, doliolids, pteropods, rhizaria and more). One row per (sample, taxon, measurement_type); per-station tows. Source: SIO Ocean Informatics ZooScan portal (Ohman Lab; interface by Marina Frants).\n",
      "citation_main": null,
      "link_calcofi_org": "https://calcofi.org/data/marine-ecosystem-data/zooplankton/",
      "link_data_source": "https://oceaninformatics.ucsd.edu/zooscandb/",
      "coverage_temporal": "2005-07 to 2026-04",
      "coverage_spatial": "CalCOFI lines 80, 87, 90 (Southern California)",
      "license": null,
      "pi_names": "Mark D. Ohman; Marina Frants",
      "tables": [
        "zooscan_sample",
        "zooscan_measurement",
        "zooscan_taxon",
        "measurement_type"
      ],
      "workflow_url": "https://calcofi.io/workflows/ingest_cce-lter_zooscan.html",
      "coverage_temporal_observed": "2005-07 to 2026-04"
    },
    "pic_zooplankton": {
      "provider": "pic",
      "dataset": "zooplankton",
      "dataset_name": "SIO PIC Zooplankton Net Tows",
      "description": "Zooplankton net-tow sample registry from the SIO Pelagic Invertebrate Collection, filtered to the CalCOFI region. Position, time, depth, and gear metadata per tow. Biovolume measurements are not in the source file and are pending from the provider (see Questions for Data Providers).\n",
      "citation_main": null,
      "link_calcofi_org": null,
      "link_data_source": "SIO Pelagic Invertebrate Collection DB (CSV export)",
      "coverage_temporal": "1926 to present (CalCOFI-region subset)",
      "coverage_spatial": "CalCOFI grid (~23-51N, -135 to -117W incl. Baja)",
      "license": null,
      "pi_names": "Rasmus Swalethorp; Ed Weber; Linsey Sala",
      "tables": "zooplankton_tow",
      "workflow_url": "https://calcofi.io/workflows/ingest_pic_zooplankton.html",
      "coverage_temporal_observed": "1926-06 to 2024-04"
    },
    "swfsc_cufes": {
      "provider": "swfsc",
      "dataset": "cufes",
      "dataset_name": "CalCOFI Underway CUFES Fish Eggs",
      "description": "Continuous Underway Fish Egg Sampler (CUFES) egg counts (sardine, anchovy, jack mackerel, hake, squid, other) with underway environmental conditions, from CalCOFI cruises (1996-present). Source: NOAA CoastWatch ERDDAP erdCalCOFIcufes.\n",
      "citation_main": null,
      "link_calcofi_org": null,
      "link_data_source": "https://coastwatch.pfeg.noaa.gov/erddap/tabledap/erdCalCOFIcufes.html",
      "coverage_temporal": "1996 to present",
      "coverage_spatial": "CalCOFI region (underway)",
      "license": null,
      "pi_names": "Noelle Bowlin",
      "tables": [
        "cufes_sample",
        "cufes_measurement",
        "measurement_type"
      ],
      "workflow_url": "https://calcofi.io/workflows/ingest_swfsc_cufes.html",
      "coverage_temporal_observed": "1996-03 to 2022-04"
    },
    "swfsc_ichthyo": {
      "provider": "swfsc",
      "dataset": "ichthyo",
      "dataset_name": "SWFSC Ichthyoplankton",
      "description": "Ichthyoplankton (fish eggs and larvae) collected by bongo and manta net tows on CalCOFI cruises, processed by SWFSC.\n",
      "citation_main": "NOAA Fisheries SWFSC. CalCOFI Ichthyoplankton Database.",
      "link_calcofi_org": "https://calcofi.org/data/biology/ichthyoplankton/",
      "link_data_source": null,
      "coverage_temporal": "1951 to present",
      "coverage_spatial": "23-51°N, -170 to -117°W",
      "license": null,
      "pi_names": null,
      "tables": [
        "cruise",
        "ship",
        "site",
        "tow",
        "net",
        "ichthyo",
        "species",
        "taxon",
        "taxa_rank",
        "lookup",
        "grid",
        "segment",
        "invert"
      ],
      "workflow_url": "https://calcofi.io/workflows/ingest_swfsc_ichthyo.html",
      "coverage_temporal_observed": "1951-01 to 2023-01"
    }
  },
  "tables": {
    "dataset": {
      "name_long": "Dataset",
      "description_md": "",
      "provider": "swfsc",
      "dataset": "ichthyo",
      "workflow": "https://calcofi.io/workflows/ingest_swfsc_ichthyo.html"
    },
    "grid": {
      "name_long": "Grid",
      "description_md": "CalCOFI survey grid polygons with standard and historical station patterns",
      "provider": "swfsc",
      "dataset": "ichthyo",
      "workflow": "https://calcofi.io/workflows/ingest_swfsc_ichthyo.html"
    },
    "measurement_type": {
      "name_long": "Measurement Type",
      "description_md": "reference table for CTD measurement types with units and descriptions",
      "provider": "calcofi",
      "dataset": "ctd-cast",
      "workflow": "https://calcofi.io/workflows/ingest_calcofi_ctd-cast.html"
    },
    "region": {
      "name_long": "Region",
      "description_md": "The 4 pooled regions defined on the CalCOFI grid (Hayward & Venrick 1998), with member station codes and a provisional centroid (Q01).",
      "provider": "calcofi",
      "dataset": "phytoplankton",
      "workflow": "https://calcofi.io/workflows/ingest_calcofi_phytoplankton.html"
    },
    "cruise": {
      "name_long": "Cruise",
      "description_md": "unique by ship and year-month",
      "provider": "swfsc",
      "dataset": "ichthyo",
      "workflow": "https://calcofi.io/workflows/ingest_swfsc_ichthyo.html"
    },
    "lookup": {
      "name_long": "Lookup",
      "description_md": "Unified vocabulary lookup table for egg stages, larva stages, and tow types",
      "provider": "swfsc",
      "dataset": "ichthyo",
      "workflow": "https://calcofi.io/workflows/ingest_swfsc_ichthyo.html"
    },
    "ship": {
      "name_long": "Ship",
      "description_md": "unique ship with many cruises",
      "provider": "swfsc",
      "dataset": "ichthyo",
      "workflow": "https://calcofi.io/workflows/ingest_swfsc_ichthyo.html"
    },
    "taxon": {
      "name_long": "Taxon",
      "description_md": "Taxonomic hierarchy for species via WoRMS and ITIS authorities (built from spp.duckdb via recursive CTEs)",
      "provider": "swfsc",
      "dataset": "ichthyo",
      "workflow": "https://calcofi.io/workflows/ingest_swfsc_ichthyo.html"
    },
    "_spatial": {
      "name_long": "Spatial Layers",
      "description_md": "Geometries for ancillary spatial layers (CA jurisdictions NOAA boundaries marine protected areas etc.) keyed by layer + feature_id. Sourced from metadata/spatial_layers.csv. Companion to _spatial_attr.",
      "provider": "calcofi",
      "dataset": "spatial"
    },
    "_spatial_attr": {
      "name_long": "Spatial Layer Attributes",
      "description_md": "Non-geometry attributes for features in _spatial in long form (layer feature_id attr_name attr_value). Allows attribute schemas to differ across layers without column proliferation.",
      "provider": "calcofi",
      "dataset": "spatial"
    },
    "obs": {
      "name_long": "Observations",
      "description_md": "Consolidated occurrence-headline observations across every dataset in tidy long form (one scalar per row) with realm (env or bio) and dataset_key provenance. Carries a namespaced sample_key (dataset:type:id) grid_key cruise_key position/time/depth taxon_id + life_stage for biology measurement_type/value/qual/prec and a computed H3 hex_id. Replaces the per-dataset {ds}_measurement tables. Environmental CTD comes via the thinned ctd_thin; full scans live in obs_ctd_full.",
      "provider": "calcofi",
      "dataset": "calcofi-db-release"
    },
    "sample": {
      "name_long": "Samples",
      "description_md": "Unified sampling-event dimension (adjacency list) spanning every dataset with one row per physical event (site tow net cast bottle underway transect region_pool). parent_sample_key + root_sample_key encode the site to tow to net and cast to bottle hierarchies without attribute inheritance. Holds position/time/depth and geometry and subsumes the per-dataset event tables (site tow net casts ctd_cast dic_sample and the various *_tow and *_sample tables).",
      "provider": "calcofi",
      "dataset": "calcofi-db-release"
    },
    "sample_measurement": {
      "name_long": "Sample Measurements",
      "description_md": "Event-level effort measurements that apply to all taxa in a sampling event such as net volume_sampled std_haul_factor prop_sorted and plankton biomass plus bottle cast conditions. Tidy long form keyed by sample_key and stored once per event (not repeated per taxon).",
      "provider": "calcofi",
      "dataset": "calcofi-db-release"
    },
    "obs_ctd_full": {
      "name_long": "Full CTD Observations",
      "description_md": "Supplemental full-resolution CTD scans (~216M rows) with the same schema as obs and all realm=env dataset_key=calcofi_ctd-cast. Opt-in for deep CTD work; the default obs carries CTD via the thinned ctd_thin. Overlap rule: for full resolution filter CTD out of obs and UNION obs_ctd_full (never sum both).",
      "provider": "calcofi",
      "dataset": "calcofi-db-release",
      "supplemental": true
    }
  },
  "columns": {
    "dataset.provider": {
      "name_long": "Provider",
      "units": null,
      "description_md": "",
      "data_type": "VARCHAR"
    },
    "dataset.dataset": {
      "name_long": "Dataset",
      "units": null,
      "description_md": "",
      "data_type": "VARCHAR"
    },
    "dataset.dataset_name": {
      "name_long": "Dataset Name",
      "units": null,
      "description_md": "",
      "data_type": "VARCHAR"
    },
    "dataset.description": {
      "name_long": "Description",
      "units": null,
      "description_md": "",
      "data_type": "VARCHAR"
    },
    "dataset.citation_main": {
      "name_long": "Citation Main",
      "units": null,
      "description_md": "",
      "data_type": "VARCHAR"
    },
    "dataset.citation_others": {
      "name_long": "Citation Others",
      "units": null,
      "description_md": ""
    },
    "dataset.link_calcofi_org": {
      "name_long": "Link Calcofi Org",
      "units": null,
      "description_md": "",
      "data_type": "VARCHAR"
    },
    "dataset.link_data_source": {
      "name_long": "Link Data Source",
      "units": null,
      "description_md": "",
      "data_type": "VARCHAR"
    },
    "dataset.link_others": {
      "name_long": "Link Others",
      "units": null,
      "description_md": ""
    },
    "dataset.tables": {
      "name_long": "Tables",
      "units": null,
      "description_md": ""
    },
    "dataset.coverage_temporal": {
      "name_long": "Coverage Temporal",
      "units": null,
      "description_md": ""
    },
    "dataset.coverage_spatial": {
      "name_long": "Coverage Spatial",
      "units": null,
      "description_md": ""
    },
    "dataset.license": {
      "name_long": "License",
      "units": null,
      "description_md": "",
      "data_type": "VARCHAR"
    },
    "dataset.pi_names": {
      "name_long": "Pi Names",
      "units": null,
      "description_md": "",
      "data_type": "VARCHAR"
    },
    "grid.grid_key": {
      "name_long": "Grid Key",
      "description_md": "Natural primary key (e.g. st60-ln80 or st60-ln80_hist for historical)",
      "data_type": "VARCHAR"
    },
    "grid.station": {
      "name_long": "Station",
      "description_md": "Offshore component of CalCOFI coordinate system",
      "data_type": "DOUBLE"
    },
    "grid.line": {
      "name_long": "Line",
      "description_md": "Alongshore component of CalCOFI coordinate system",
      "data_type": "DOUBLE"
    },
    "grid.shore": {
      "name_long": "Shore",
      "description_md": "Shore classification (nearshore, offshore, etc.)",
      "data_type": "VARCHAR"
    },
    "grid.pattern": {
      "name_long": "Pattern",
      "description_md": "Station pattern: 'standard' or 'historical'",
      "data_type": "VARCHAR"
    },
    "grid.spacing": {
      "name_long": "Spacing",
      "description_md": "Station spacing in nautical miles",
      "data_type": "INTEGER"
    },
    "grid.zone": {
      "name_long": "Zone",
      "description_md": "Combined shore-pattern zone label",
      "data_type": "VARCHAR"
    },
    "grid.area_km2": {
      "name_long": "Area",
      "units": "km^2",
      "description_md": "Grid cell area",
      "data_type": "DOUBLE"
    },
    "grid.geom": {
      "name_long": "Geometry",
      "description_md": "Polygon geometry (WGS84 EPSG:4326) of grid cell",
      "data_type": "GEOMETRY"
    },
    "grid.geom_ctr": {
      "name_long": "Geometry Center",
      "description_md": "Point geometry (WGS84 EPSG:4326) of grid cell centroid",
      "data_type": "GEOMETRY"
    },
    "measurement_type.measurement_type": {
      "name_long": "Measurement Type",
      "description_md": "PK: measurement type code",
      "data_type": "VARCHAR"
    },
    "measurement_type.description": {
      "name_long": "Description",
      "description_md": "human-readable description",
      "data_type": "VARCHAR"
    },
    "measurement_type.units": {
      "name_long": "Units",
      "description_md": "measurement units",
      "data_type": "VARCHAR"
    },
    "measurement_type.is_canonical": {
      "name_long": "Is Canonical",
      "description_md": "TRUE for canonical measurement types kept in ctd_thin and ctd_summary",
      "data_type": "BOOLEAN"
    },
    "measurement_type._source_column": {
      "name_long": "Source Column",
      "description_md": "original column name in wide-format CTD CSV",
      "data_type": "VARCHAR"
    },
    "measurement_type._source_table": {
      "name_long": "Source Table",
      "description_md": "provenance: wide-format DuckDB table the measurement was pivoted from",
      "data_type": "VARCHAR"
    },
    "measurement_type._source_datasets": {
      "name_long": "Source Datasets",
      "description_md": "provenance: semicolon-delimited list of datasets that produce this measurement type",
      "data_type": "VARCHAR"
    },
    "measurement_type._qual_column": {
      "name_long": "Quality Column",
      "description_md": "provenance: quality flag column name in source wide-format table (blank if none)",
      "data_type": "VARCHAR"
    },
    "measurement_type._prec_column": {
      "name_long": "Precision Column",
      "description_md": "provenance: precision column name in source wide-format table (blank if none)",
      "data_type": "VARCHAR"
    },
    "measurement_type.provider": {
      "name_long": "Provider",
      "units": null,
      "description_md": ""
    },
    "measurement_type.dataset": {
      "name_long": "Dataset",
      "units": null,
      "description_md": ""
    },
    "region.region_key": {
      "name_long": "Region",
      "description_md": "Pooled-region code: NE, SE, Alley, or Offshore (primary key).",
      "data_type": "VARCHAR"
    },
    "region.description": {
      "name_long": "Description",
      "description_md": "Region description (Northern Inshore, Southern Inshore, California Current, Central Pacific).",
      "data_type": "VARCHAR"
    },
    "region.latitude": {
      "name_long": "Latitude",
      "units": "decimal degrees",
      "description_md": "Provisional region centroid latitude (mean of member CalCOFI stations; Q01).",
      "data_type": "DOUBLE"
    },
    "region.longitude": {
      "name_long": "Longitude",
      "units": "decimal degrees",
      "description_md": "Provisional region centroid longitude (mean of member CalCOFI stations; Q01).",
      "data_type": "DOUBLE"
    },
    "region.n_stations": {
      "name_long": "Number of Stations",
      "description_md": "Count of CalCOFI grid stations defining the region.",
      "data_type": "INTEGER"
    },
    "region.station_codes": {
      "name_long": "Station Codes",
      "description_md": "Member CalCOFI line.station codes (Hayward & Venrick 1998).",
      "data_type": "VARCHAR"
    },
    "cruise.cruise_uuid": {
      "name_long": "Cruise Uuid",
      "units": null,
      "description_md": "CalCOFI species identifier, primary key in species table",
      "data_type": "UUID"
    },
    "cruise.date_ym": {
      "name_long": "Date Ym",
      "units": null,
      "description_md": "",
      "data_type": "DATE"
    },
    "cruise.ship_key": {
      "name_long": "Ship Key",
      "units": null,
      "description_md": "",
      "data_type": "VARCHAR"
    },
    "cruise._source_file": {
      "name_long": " Source File",
      "units": null,
      "description_md": "",
      "data_type": "VARCHAR"
    },
    "cruise._source_row": {
      "name_long": " Source Row",
      "units": null,
      "description_md": "",
      "data_type": "INTEGER"
    },
    "cruise._ingested_at": {
      "name_long": " Ingested At",
      "units": null,
      "description_md": "",
      "data_type": "TIMESTAMP"
    },
    "cruise._source_uuid": {
      "name_long": " Source Uuid",
      "units": null,
      "description_md": "",
      "data_type": "VARCHAR"
    },
    "cruise.cruise_key": {
      "name_long": "Cruise Key",
      "description_md": "Natural primary key in YYMMKK format (2-digit year + 2-digit month + ship_key)",
      "data_type": "VARCHAR"
    },
    "lookup.lookup_id": {
      "name_long": "Lookup ID",
      "description_md": "Sequential integer primary key",
      "data_type": "INTEGER"
    },
    "lookup.lookup_type": {
      "name_long": "Lookup Type",
      "description_md": "Category: 'egg_stage', 'larva_stage', or 'tow_type'",
      "data_type": "VARCHAR"
    },
    "lookup.lookup_num": {
      "name_long": "Lookup Number",
      "description_md": "Numeric code for the lookup value",
      "data_type": "INTEGER"
    },
    "lookup.lookup_chr": {
      "name_long": "Lookup Character",
      "description_md": "Character code for the lookup value (e.g. YOLK, PREF)",
      "data_type": "VARCHAR"
    },
    "lookup.description": {
      "name_long": "Description",
      "description_md": "Human-readable description of the lookup value",
      "data_type": "VARCHAR"
    },
    "lookup._source_file": {
      "name_long": " Source File",
      "units": null,
      "description_md": "",
      "data_type": "VARCHAR"
    },
    "lookup._source_row": {
      "name_long": " Source Row",
      "units": null,
      "description_md": "",
      "data_type": "INTEGER"
    },
    "lookup._ingested_at": {
      "name_long": " Ingested At",
      "units": null,
      "description_md": "",
      "data_type": "VARCHAR"
    },
    "lookup._source_uuid": {
      "name_long": " Source Uuid",
      "units": null,
      "description_md": "",
      "data_type": "VARCHAR"
    },
    "ship.ship_key": {
      "name_long": "Ship Key",
      "units": null,
      "description_md": "",
      "data_type": "VARCHAR"
    },
    "ship.ship_name": {
      "name_long": "Ship Name",
      "units": null,
      "description_md": "",
      "data_type": "VARCHAR"
    },
    "ship.ship_nodc": {
      "name_long": "Ship Nodc",
      "units": null,
      "description_md": "",
      "data_type": "VARCHAR"
    },
    "ship._source_file": {
      "name_long": " Source File",
      "units": null,
      "description_md": "",
      "data_type": "VARCHAR"
    },
    "ship._source_row": {
      "name_long": " Source Row",
      "units": null,
      "description_md": "",
      "data_type": "INTEGER"
    },
    "ship._ingested_at": {
      "name_long": " Ingested At",
      "units": null,
      "description_md": "",
      "data_type": "TIMESTAMP"
    },
    "ship._source_uuid": {
      "name_long": " Source Uuid",
      "units": null,
      "description_md": "",
      "data_type": "VARCHAR"
    },
    "taxon.authority": {
      "name_long": "Authority",
      "description_md": "Taxonomic authority source: 'WoRMS' or 'ITIS'"
    },
    "taxon.taxonID": {
      "name_long": "Taxon ID",
      "description_md": "Integer identifier within the authority (AphiaID for WoRMS; TSN for ITIS). Compound PK with authority."
    },
    "taxon.acceptedNameUsageID": {
      "name_long": "Accepted Name Usage ID",
      "description_md": "ID of the leaf (species-level) taxon this hierarchy row was built from"
    },
    "taxon.parentNameUsageID": {
      "name_long": "Parent Name Usage ID",
      "description_md": "ID of the immediate parent taxon in the hierarchy"
    },
    "taxon.scientificName": {
      "name_long": "Scientific Name",
      "description_md": "Scientific name at this taxonomic rank"
    },
    "taxon.taxonRank": {
      "name_long": "Taxon Rank",
      "description_md": "Taxonomic rank (e.g. Kingdom; Phylum; Class; Order; Family; Genus; Species). FK to taxa_rank."
    },
    "taxon.taxonomicStatus": {
      "name_long": "Taxonomic Status",
      "description_md": "Taxonomic status (accepted)"
    },
    "taxon.scientificNameAuthorship": {
      "name_long": "Scientific Name Authorship",
      "description_md": "Authority string for the scientific name"
    },
    "cruise.year": {
      "name_long": "Year",
      "units": null,
      "description_md": "Cruise year extracted from date_ym.",
      "data_type": "INTEGER"
    },
    "cruise.month": {
      "name_long": "Month",
      "units": null,
      "description_md": "Cruise month extracted from date_ym.",
      "data_type": "INTEGER"
    },
    "cruise.ship_name": {
      "name_long": "Ship Name",
      "units": null,
      "description_md": "Ship name as resolved against NODC ship registry.",
      "data_type": "VARCHAR"
    },
    "cruise.ship_nodc": {
      "name_long": "Ship NODC",
      "units": null,
      "description_md": "NODC ship code.",
      "data_type": "VARCHAR"
    },
    "cruise.ichthyo": {
      "name_long": "Ichthyo Sites",
      "units": "count",
      "description_md": "Distinct sites sampled by SWFSC ichthyo on this cruise.",
      "data_type": "BIGINT"
    },
    "cruise.bottle": {
      "name_long": "Bottle Sites",
      "units": "count",
      "description_md": "Distinct sites sampled by CalCOFI bottle casts on this cruise.",
      "data_type": "BIGINT"
    },
    "cruise.ctd_cast": {
      "name_long": "CTD Sites",
      "units": "count",
      "description_md": "Distinct sites sampled by CTD casts on this cruise.",
      "data_type": "BIGINT"
    },
    "cruise.dic": {
      "name_long": "DIC Sites",
      "units": "count",
      "description_md": "Distinct sites with NCEI DIC samples on this cruise.",
      "data_type": "BIGINT"
    },
    "_spatial.layer": {
      "name_long": "Layer",
      "units": null,
      "description_md": "Spatial layer slug from metadata/spatial_layers.csv (e.g. ca_county_boundaries).",
      "data_type": "VARCHAR"
    },
    "_spatial.feature_id": {
      "name_long": "Feature ID",
      "units": null,
      "description_md": "Stable feature identifier within the layer."
    },
    "_spatial.geom": {
      "name_long": "Geometry",
      "units": null,
      "description_md": "Feature geometry in WGS84 (EPSG:4326).",
      "data_type": "GEOMETRY"
    },
    "_spatial_attr.layer": {
      "name_long": "Layer",
      "units": null,
      "description_md": "Spatial layer slug matching _spatial.layer.",
      "data_type": "VARCHAR"
    },
    "_spatial_attr.feature_id": {
      "name_long": "Feature ID",
      "units": null,
      "description_md": "Feature identifier matching _spatial.feature_id."
    },
    "_spatial_attr.attr_name": {
      "name_long": "Attribute Name",
      "units": null,
      "description_md": "Source-attribute column name."
    },
    "_spatial_attr.attr_value": {
      "name_long": "Attribute Value",
      "units": null,
      "description_md": "Source-attribute value cast to text."
    },
    "obs.obs_id": {
      "name_long": "Observation ID",
      "units": null,
      "description_md": "Surrogate integer key assigned at release assembly.",
      "data_type": "BIGINT"
    },
    "obs.realm": {
      "name_long": "Realm",
      "units": null,
      "description_md": "Observation realm: env (environmental) or bio (biological).",
      "data_type": "VARCHAR"
    },
    "obs.dataset_key": {
      "name_long": "Dataset Key",
      "units": null,
      "description_md": "Provenance stamp provider_dataset (e.g. calcofi_bottle).",
      "data_type": "VARCHAR"
    },
    "obs.sample_key": {
      "name_long": "Sample Key",
      "units": null,
      "description_md": "Namespaced FK to sample (dataset:type:id); the true sampling-event leaf.",
      "data_type": "VARCHAR"
    },
    "obs.grid_key": {
      "name_long": "Grid Key",
      "units": null,
      "description_md": "FK to grid station cell (nullable; NULL for region-pooled phytoplankton).",
      "data_type": "VARCHAR"
    },
    "obs.cruise_key": {
      "name_long": "Cruise Key",
      "units": null,
      "description_md": "FK to cruise (natural key YYYY-MM-NODC) denormalized for rollups.",
      "data_type": "VARCHAR"
    },
    "obs.latitude": {
      "name_long": "Latitude",
      "units": "degrees_north",
      "description_md": "Observation latitude (WGS84).",
      "data_type": "DOUBLE"
    },
    "obs.longitude": {
      "name_long": "Longitude",
      "units": "degrees_east",
      "description_md": "Observation longitude (WGS84).",
      "data_type": "DOUBLE"
    },
    "obs.datetime": {
      "name_long": "Datetime",
      "units": null,
      "description_md": "Observation timestamp (UTC).",
      "data_type": "TIMESTAMP"
    },
    "obs.depth_min_m": {
      "name_long": "Minimum Depth",
      "units": "m",
      "description_md": "Shallow end of the observation depth (equals depth_max_m for point env readings).",
      "data_type": "DOUBLE"
    },
    "obs.depth_max_m": {
      "name_long": "Maximum Depth",
      "units": "m",
      "description_md": "Deep end of the observation depth (a range for tow-integrated biology).",
      "data_type": "DOUBLE"
    },
    "obs.taxon_id": {
      "name_long": "Taxon ID",
      "units": null,
      "description_md": "Taxon identifier for biological rows (nullable; NULL when the taxon is encoded in measurement_type)."
    },
    "obs.life_stage": {
      "name_long": "Life Stage",
      "units": null,
      "description_md": "Developmental life stage for biological rows (nullable).",
      "data_type": "VARCHAR"
    },
    "obs.measurement_type": {
      "name_long": "Measurement Type",
      "units": null,
      "description_md": "FK to measurement_type vocabulary; bio headline rows use abundance.",
      "data_type": "VARCHAR"
    },
    "obs.measurement_value": {
      "name_long": "Measurement Value",
      "units": null,
      "description_md": "The measured scalar (for abundance this is the count).",
      "data_type": "DOUBLE"
    },
    "obs.measurement_qual": {
      "name_long": "Measurement Qualifier",
      "units": null,
      "description_md": "Quality flag or qualifier (nullable).",
      "data_type": "VARCHAR"
    },
    "obs.measurement_prec": {
      "name_long": "Measurement Precision",
      "units": null,
      "description_md": "Reported measurement precision (bottle only; nullable).",
      "data_type": "DOUBLE"
    },
    "obs.hex_id": {
      "name_long": "H3 Hex ID",
      "units": null,
      "description_md": "H3 cell index at the finest stored resolution; aggregate coarser via h3_cell_to_parent(hex_id res).",
      "data_type": "UBIGINT"
    },
    "sample.sample_key": {
      "name_long": "Sample Key",
      "units": null,
      "description_md": "Namespaced primary key (dataset:type:id) globally unique across datasets and event levels.",
      "data_type": "VARCHAR"
    },
    "sample.sample_type": {
      "name_long": "Sample Type",
      "units": null,
      "description_md": "Event grain: site tow net cast bottle underway transect or region_pool.",
      "data_type": "VARCHAR"
    },
    "sample.parent_sample_key": {
      "name_long": "Parent Sample Key",
      "units": null,
      "description_md": "Self-FK to the containing event (nullable; e.g. a net points at its tow).",
      "data_type": "VARCHAR"
    },
    "sample.root_sample_key": {
      "name_long": "Root Sample Key",
      "units": null,
      "description_md": "The station-occupation root of this event (self for single-level datasets).",
      "data_type": "VARCHAR"
    },
    "sample.dataset_key": {
      "name_long": "Dataset Key",
      "units": null,
      "description_md": "Provenance stamp provider_dataset.",
      "data_type": "VARCHAR"
    },
    "sample.grid_key": {
      "name_long": "Grid Key",
      "units": null,
      "description_md": "FK to grid station cell (nullable).",
      "data_type": "VARCHAR"
    },
    "sample.cruise_key": {
      "name_long": "Cruise Key",
      "units": null,
      "description_md": "FK to cruise.",
      "data_type": "VARCHAR"
    },
    "sample.latitude": {
      "name_long": "Latitude",
      "units": "degrees_north",
      "description_md": "Event latitude (WGS84).",
      "data_type": "DOUBLE"
    },
    "sample.longitude": {
      "name_long": "Longitude",
      "units": "degrees_east",
      "description_md": "Event longitude (WGS84).",
      "data_type": "DOUBLE"
    },
    "sample.datetime": {
      "name_long": "Datetime",
      "units": null,
      "description_md": "Event timestamp (UTC).",
      "data_type": "TIMESTAMP"
    },
    "sample.depth_min_m": {
      "name_long": "Minimum Depth",
      "units": "m",
      "description_md": "Shallow end of the event depth range.",
      "data_type": "DOUBLE"
    },
    "sample.depth_max_m": {
      "name_long": "Maximum Depth",
      "units": "m",
      "description_md": "Deep end of the event depth range.",
      "data_type": "DOUBLE"
    },
    "sample.geom": {
      "name_long": "Geometry",
      "units": null,
      "description_md": "Point geometry of the sampling event (WGS84).",
      "data_type": "GEOMETRY"
    },
    "sample_measurement.sample_measurement_id": {
      "name_long": "Sample Measurement ID",
      "units": null,
      "description_md": "Surrogate integer key.",
      "data_type": "BIGINT"
    },
    "sample_measurement.sample_key": {
      "name_long": "Sample Key",
      "units": null,
      "description_md": "FK to sample; the event these effort measures apply to.",
      "data_type": "VARCHAR"
    },
    "sample_measurement.dataset_key": {
      "name_long": "Dataset Key",
      "units": null,
      "description_md": "Provenance stamp provider_dataset.",
      "data_type": "VARCHAR"
    },
    "sample_measurement.measurement_type": {
      "name_long": "Measurement Type",
      "units": null,
      "description_md": "FK to measurement_type (e.g. volume_sampled std_haul_factor).",
      "data_type": "VARCHAR"
    },
    "sample_measurement.measurement_value": {
      "name_long": "Measurement Value",
      "units": null,
      "description_md": "The event-level measured scalar.",
      "data_type": "DOUBLE"
    },
    "sample_measurement.measurement_qual": {
      "name_long": "Measurement Qualifier",
      "units": null,
      "description_md": "Quality flag (nullable).",
      "data_type": "VARCHAR"
    },
    "dataset.dataset_key": {
      "data_type": "VARCHAR"
    },
    "dataset_taxon.ds_taxon_key": {
      "data_type": "VARCHAR"
    },
    "dataset_taxon.dataset_key": {
      "data_type": "VARCHAR"
    },
    "dataset_taxon.taxon_key": {
      "data_type": "VARCHAR"
    },
    "dataset_taxon.ds_scientific_name": {
      "data_type": "VARCHAR"
    },
    "dataset_taxon.ds_common_name": {
      "data_type": "VARCHAR"
    },
    "dataset_taxon.ds_taxa_code": {
      "data_type": "VARCHAR"
    },
    "measurement_type.grain": {
      "data_type": "VARCHAR"
    },
    "obs.taxon_key": {
      "data_type": "VARCHAR"
    },
    "obs_attribute.obs_attribute_id": {
      "data_type": "BIGINT"
    },
    "obs_attribute.dataset_key": {
      "data_type": "VARCHAR"
    },
    "obs_attribute.sample_key": {
      "data_type": "VARCHAR"
    },
    "obs_attribute.taxon_key": {
      "data_type": "VARCHAR"
    },
    "obs_attribute.life_stage": {
      "data_type": "VARCHAR"
    },
    "obs_attribute.measurement_type": {
      "data_type": "VARCHAR"
    },
    "obs_attribute.bin_value": {
      "data_type": "DOUBLE"
    },
    "obs_attribute.bin_label": {
      "data_type": "VARCHAR"
    },
    "obs_attribute.count": {
      "data_type": "INTEGER"
    },
    "obs_attribute.measurement_qual": {
      "data_type": "VARCHAR"
    },
    "obs_ctd_full.obs_id": {
      "data_type": "BIGINT"
    },
    "obs_ctd_full.realm": {
      "data_type": "VARCHAR"
    },
    "obs_ctd_full.dataset_key": {
      "data_type": "VARCHAR"
    },
    "obs_ctd_full.sample_key": {
      "data_type": "VARCHAR"
    },
    "obs_ctd_full.grid_key": {
      "data_type": "VARCHAR"
    },
    "obs_ctd_full.cruise_key": {
      "data_type": "VARCHAR"
    },
    "obs_ctd_full.latitude": {
      "data_type": "DOUBLE"
    },
    "obs_ctd_full.longitude": {
      "data_type": "DOUBLE"
    },
    "obs_ctd_full.datetime": {
      "data_type": "TIMESTAMP"
    },
    "obs_ctd_full.depth_min_m": {
      "data_type": "DOUBLE"
    },
    "obs_ctd_full.depth_max_m": {
      "data_type": "DOUBLE"
    },
    "obs_ctd_full.taxon_key": {
      "data_type": "VARCHAR"
    },
    "obs_ctd_full.life_stage": {
      "data_type": "VARCHAR"
    },
    "obs_ctd_full.measurement_type": {
      "data_type": "VARCHAR"
    },
    "obs_ctd_full.measurement_value": {
      "data_type": "DOUBLE"
    },
    "obs_ctd_full.measurement_qual": {
      "data_type": "VARCHAR"
    },
    "obs_ctd_full.measurement_prec": {
      "data_type": "DOUBLE"
    },
    "obs_ctd_full.hex_id": {
      "data_type": "UBIGINT"
    },
    "taxon.taxon_key": {
      "data_type": "VARCHAR"
    },
    "taxon.worms_id": {
      "data_type": "INTEGER"
    },
    "taxon.itis_id": {
      "data_type": "INTEGER"
    },
    "taxon.gbif_id": {
      "data_type": "INTEGER"
    },
    "taxon.ncbi_id": {
      "data_type": "INTEGER"
    },
    "taxon.inat_id": {
      "data_type": "INTEGER"
    },
    "taxon.scientific_name": {
      "data_type": "VARCHAR"
    },
    "taxon.common_name": {
      "data_type": "VARCHAR"
    },
    "taxon.rank": {
      "data_type": "VARCHAR"
    },
    "taxon.rank_order": {
      "data_type": "INTEGER"
    },
    "taxon.taxonomic_status": {
      "data_type": "VARCHAR"
    },
    "taxon.parent_taxon_key": {
      "data_type": "VARCHAR"
    },
    "taxon.kingdom": {
      "data_type": "VARCHAR"
    },
    "taxon.phylum": {
      "data_type": "VARCHAR"
    },
    "taxon.class": {
      "data_type": "VARCHAR"
    },
    "taxon.order_taxon": {
      "data_type": "VARCHAR"
    },
    "taxon.family": {
      "data_type": "VARCHAR"
    },
    "taxon_group.taxon_group_key": {
      "data_type": "VARCHAR"
    },
    "taxon_group.description": {
      "data_type": "VARCHAR"
    },
    "taxon_group.taxon_key": {
      "data_type": "VARCHAR"
    },
    "_spatial.id": {
      "data_type": "INTEGER"
    },
    "_spatial.name": {
      "data_type": "VARCHAR"
    },
    "_spatial_attr.id": {
      "data_type": "INTEGER"
    },
    "_spatial_attr.fld": {
      "data_type": "VARCHAR"
    },
    "_spatial_attr.val_dbl": {
      "data_type": "DOUBLE"
    },
    "_spatial_attr.val_int": {
      "data_type": "INTEGER"
    },
    "_spatial_attr.val_chr": {
      "data_type": "VARCHAR"
    },
    "_spatial_attr.val_date": {
      "data_type": "DATE"
    },
    "_spatial_attr.val_lgl": {
      "data_type": "BOOLEAN"
    }
  },
  "measurement_types": {
    "temperature": {
      "description": "Water temperature (QC'd)",
      "units": "degC",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "salinity": {
      "description": "Salinity - Practical Salinity Scale 1978 (QC'd)",
      "units": "PSS-78",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "oxygen_ml_l": {
      "description": "Dissolved oxygen (QC'd)",
      "units": "ml/L",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "sigma_theta": {
      "description": "Potential density (Sigma Theta)",
      "units": "kg/m3",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "oxygen_saturation": {
      "description": "Oxygen percent saturation",
      "units": "%",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "oxygen_umol_kg": {
      "description": "Dissolved oxygen (QC'd)",
      "units": "umol/kg",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "chlorophyll_a": {
      "description": "Chlorophyll-a measured fluorometrically",
      "units": "ug/L",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "phaeopigment": {
      "description": "Phaeopigment measured fluorometrically",
      "units": "ug/L",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "phosphate": {
      "description": "Phosphate concentration",
      "units": "umol/L",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "silicate": {
      "description": "Silicate concentration",
      "units": "umol/L",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "nitrite": {
      "description": "Nitrite concentration",
      "units": "umol/L",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "nitrate": {
      "description": "Nitrate concentration",
      "units": "umol/L",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "ammonia": {
      "description": "Ammonia concentration (QC'd)",
      "units": "umol/L",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "c14_rep1": {
      "description": "14C assimilation replicate 1",
      "units": "mgC/m3/hld",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "c14_rep2": {
      "description": "14C assimilation replicate 2",
      "units": "mgC/m3/hld",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "c14_dark": {
      "description": "14C assimilation dark/control bottle",
      "units": "mgC/m3/hld",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "c14_mean": {
      "description": "Mean 14C assimilation of replicates 1 and 2",
      "units": "mgC/m3/hld",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "light_pct": {
      "description": "Light intensity of incubation tubes",
      "units": "%",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "r_depth": {
      "description": "Reported depth from pressure (pre-QC)",
      "units": "m",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "r_temperature": {
      "description": "Reported potential temperature (pre-QC)",
      "units": "degC",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "r_salinity_sva": {
      "description": "Reported Specific Volume Anomaly (pre-QC); WARNING: different parameter/scale than salinity PSS-78",
      "units": "10^-8 m3/kg",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "r_dynamic_height": {
      "description": "Reported dynamic height (no QC'd counterpart)",
      "units": "dyn m",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "r_ammonium": {
      "description": "Reported ammonium concentration (pre-QC)",
      "units": "umol/L",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "r_oxygen_umol_kg": {
      "description": "Reported oxygen (pre-QC)",
      "units": "umol/kg",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "dic_rep1": {
      "description": "Dissolved inorganic carbon replicate 1",
      "units": "umol/kg",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "dic_rep2": {
      "description": "Dissolved inorganic carbon replicate 2",
      "units": "umol/kg",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "alkalinity_rep1": {
      "description": "Total alkalinity replicate 1",
      "units": "umol/kg",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "alkalinity_rep2": {
      "description": "Total alkalinity replicate 2",
      "units": "umol/kg",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "ph_rep1": {
      "description": "pH replicate 1",
      "units": "pH",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "ph_rep2": {
      "description": "pH replicate 2",
      "units": "pH",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "wave_direction": {
      "description": "Wave direction (abbreviated 360 degree azimuth)",
      "units": "degrees",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "wave_height": {
      "description": "Wave height",
      "units": "feet",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "wave_period": {
      "description": "Wave period",
      "units": "seconds",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "wind_direction": {
      "description": "Wind direction (abbreviated 360 degree azimuth)",
      "units": "degrees",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "wind_speed": {
      "description": "Wind speed",
      "units": "knots",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "barometric_pressure": {
      "description": "Barometric pressure",
      "units": "millibars",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "dry_air_temp": {
      "description": "Dry air temperature from sling psychrometer",
      "units": "degC",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "wet_air_temp": {
      "description": "Wet air temperature from sling psychrometer",
      "units": "degC",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "weather_code": {
      "description": "WMO weather code (WMO 4501)",
      "units": null,
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "cloud_type": {
      "description": "WMO cloud type code (WMO 0500)",
      "units": null,
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "cloud_amount": {
      "description": "Cloud amount in oktas (WMO 2700)",
      "units": "oktas",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "visibility": {
      "description": "WMO visibility code (WMO 4300)",
      "units": null,
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "secchi_depth": {
      "description": "Secchi disk depth",
      "units": "meters",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "water_color": {
      "description": "Water color on Forel-Ule scale",
      "units": "Forel-Ule",
      "is_canonical": true,
      "datasets": [
        "calcofi_bottle"
      ]
    },
    "stage": {
      "description": "Egg or larva developmental stage (obs_freq binned attribute; labeled via lookup)",
      "units": null,
      "is_canonical": true,
      "datasets": [
        "swfsc_ichthyo"
      ]
    },
    "body_length": {
      "description": "Larva body length (obs_freq binned attribute)",
      "units": "mm",
      "is_canonical": true,
      "datasets": [
        "swfsc_ichthyo"
      ]
    },
    "abundance": {
      "description": "Specimen count per net tow (headline occurrence; standardize via std_haul_factor)",
      "units": "count",
      "is_canonical": true,
      "datasets": [
        "swfsc_ichthyo"
      ]
    },
    "volume_sampled": {
      "description": "Volume of water filtered by the net (event-level effort)",
      "units": "m3",
      "is_canonical": true,
      "datasets": [
        "swfsc_ichthyo"
      ]
    },
    "std_haul_factor": {
      "description": "Standardized haul factor (Smith & Richardson 1977; event-level effort)",
      "units": "dimensionless",
      "is_canonical": true,
      "datasets": [
        "swfsc_ichthyo"
      ]
    },
    "prop_sorted": {
      "description": "Fraction of the sample sorted (event-level effort)",
      "units": "dimensionless",
      "is_canonical": true,
      "datasets": [
        "swfsc_ichthyo"
      ]
    },
    "small_plankton_biomass": {
      "description": "Small plankton displacement-volume biomass (event-level)",
      "units": "mL",
      "is_canonical": true,
      "datasets": [
        "swfsc_ichthyo"
      ]
    },
    "total_plankton_biomass": {
      "description": "Total plankton displacement-volume biomass (event-level)",
      "units": "mL",
      "is_canonical": true,
      "datasets": [
        "swfsc_ichthyo"
      ]
    },
    "count": {
      "description": "Organism count per survey transect",
      "units": "count",
      "is_canonical": true,
      "datasets": [
        "calcofi_bird_mammal_census"
      ]
    },
    "temperature_1": {
      "description": "Temperature sensor 1",
      "units": "degC",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "temperature_2": {
      "description": "Temperature sensor 2",
      "units": "degC",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "temperature_ave": {
      "description": "Average temperature",
      "units": "degC",
      "is_canonical": true,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "potential_temperature_1": {
      "description": "Potential temperature sensor 1",
      "units": "degC",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "potential_temperature_2": {
      "description": "Potential temperature sensor 2",
      "units": "degC",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "salinity_1": {
      "description": "Salinity sensor 1",
      "units": "PSU",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "salinity_1_corr": {
      "description": "Salinity sensor 1 cruise-corrected",
      "units": "PSU",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "salinity_2": {
      "description": "Salinity sensor 2",
      "units": "PSU",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "salinity_2_corr": {
      "description": "Salinity sensor 2 cruise-corrected",
      "units": "PSU",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "salinity_ave_corr": {
      "description": "Average salinity corrected",
      "units": "PSU",
      "is_canonical": true,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "salinity_btl": {
      "description": "Bottle salinity",
      "units": "PSU",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "oxygen_ml_l_1": {
      "description": "Dissolved oxygen sensor 1",
      "units": "ml/L",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "oxygen_ml_l_1_cruise_corr": {
      "description": "DO sensor 1 cruise-corrected",
      "units": "ml/L",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "oxygen_ml_l_1_sta_corr": {
      "description": "DO sensor 1 station-corrected",
      "units": "ml/L",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "oxygen_ml_l_2": {
      "description": "Dissolved oxygen sensor 2",
      "units": "ml/L",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "oxygen_ml_l_2_cruise_corr": {
      "description": "DO sensor 2 cruise-corrected",
      "units": "ml/L",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "oxygen_ml_l_2_sta_corr": {
      "description": "DO sensor 2 station-corrected",
      "units": "ml/L",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "oxygen_ml_l_ave_sta_corr": {
      "description": "DO average station-corrected",
      "units": "ml/L",
      "is_canonical": true,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "oxygen_umol_kg_1": {
      "description": "DO sensor 1",
      "units": "umol/kg",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "oxygen_umol_kg_1_cruise_corr": {
      "description": "DO sensor 1 cruise-corrected",
      "units": "umol/kg",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "oxygen_umol_kg_1_sta_corr": {
      "description": "DO sensor 1 station-corrected",
      "units": "umol/kg",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "oxygen_umol_kg_2": {
      "description": "DO sensor 2",
      "units": "umol/kg",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "oxygen_umol_kg_2_cruise_corr": {
      "description": "DO sensor 2 cruise-corrected",
      "units": "umol/kg",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "oxygen_umol_kg_2_sta_corr": {
      "description": "DO sensor 2 station-corrected",
      "units": "umol/kg",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "oxygen_umol_kg_ave_sta_corr": {
      "description": "DO average station-corrected",
      "units": "umol/kg",
      "is_canonical": true,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "oxygen_saturation_1": {
      "description": "Oxygen saturation sensor 1",
      "units": "%",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "oxygen_saturation_2": {
      "description": "Oxygen saturation sensor 2",
      "units": "%",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "oxygen_btl_ml_l": {
      "description": "Bottle dissolved oxygen",
      "units": "ml/L",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "oxygen_btl_umol_kg": {
      "description": "Bottle dissolved oxygen",
      "units": "umol/kg",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "fluorescence_v": {
      "description": "Fluorescence voltage",
      "units": "V",
      "is_canonical": true,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "est_chlorophyll_a_cruise_corr": {
      "description": "Est. chlorophyll-a cruise-corrected",
      "units": "ug/L",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "est_chlorophyll_a_sta_corr": {
      "description": "Est. chlorophyll-a station-corrected",
      "units": "ug/L",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "isus_v": {
      "description": "ISUS nitrate voltage",
      "units": "V",
      "is_canonical": true,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "est_nitrate_cruise_corr": {
      "description": "Est. nitrate cruise-corrected",
      "units": "umol/L",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "est_nitrate_sta_corr": {
      "description": "Est. nitrate station-corrected",
      "units": "umol/L",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "sigma_theta_1": {
      "description": "Potential density sensor 1",
      "units": "kg/m3",
      "is_canonical": true,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "sigma_theta_2": {
      "description": "Potential density sensor 2",
      "units": "kg/m3",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "dynamic_height": {
      "description": "Dynamic height",
      "units": "dyn m",
      "is_canonical": true,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "specific_volume_anomaly": {
      "description": "Specific volume anomaly",
      "units": "10^-8 m3/kg",
      "is_canonical": true,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "par": {
      "description": "Photosynthetically active radiation",
      "units": "uE/m2/s",
      "is_canonical": true,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "spar": {
      "description": "Surface PAR",
      "units": "uE/m2/s",
      "is_canonical": true,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "beam_attenuation": {
      "description": "Beam attenuation coefficient",
      "units": "1/m",
      "is_canonical": true,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "transmissometer": {
      "description": "Light transmissometer",
      "units": "%",
      "is_canonical": true,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "ph": {
      "description": "pH",
      "units": "pH",
      "is_canonical": true,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "btl_depth": {
      "description": "Bottle trip depth",
      "units": "m",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "btl_temperature": {
      "description": "Bottle temperature",
      "units": "degC",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "btl_chlorophyll_a": {
      "description": "Bottle chlorophyll-a",
      "units": "ug/L",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "btl_phaeopigment": {
      "description": "Bottle phaeopigment",
      "units": "ug/L",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "btl_nitrate": {
      "description": "Bottle nitrate",
      "units": "umol/L",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "btl_nitrite": {
      "description": "Bottle nitrite",
      "units": "umol/L",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "btl_ammonium": {
      "description": "Bottle ammonium",
      "units": "umol/L",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "btl_phosphate": {
      "description": "Bottle phosphate",
      "units": "umol/L",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "btl_silicate": {
      "description": "Bottle silicate",
      "units": "umol/L",
      "is_canonical": false,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "pressure": {
      "description": "Pressure",
      "units": "dbar",
      "is_canonical": true,
      "datasets": [
        "calcofi_ctd-cast"
      ]
    },
    "dic": {
      "description": "Dissolved inorganic carbon",
      "units": "umol/kg",
      "is_canonical": true,
      "datasets": [
        "calcofi_dic"
      ]
    },
    "alkalinity": {
      "description": "Total alkalinity",
      "units": "umol/kg",
      "is_canonical": true,
      "datasets": [
        "calcofi_dic"
      ]
    },
    "ctdtemp_its90": {
      "description": "CTD temperature (ITS-90 scale)",
      "units": "degC",
      "is_canonical": true,
      "datasets": [
        "calcofi_dic"
      ]
    },
    "salinity_pss78": {
      "description": "Practical salinity (PSS-78)",
      "units": "PSS-78",
      "is_canonical": true,
      "datasets": [
        "calcofi_dic"
      ]
    },
    "phytoplankton_abundance": {
      "description": "Phytoplankton abundance by inverted-microscope count (cells/L)",
      "units": "cells/L",
      "is_canonical": false,
      "datasets": [
        "calcofi_phytoplankton"
      ]
    },
    "zooplankton_abundance": {
      "description": "Zooplankton numerical abundance (volumetric density) per net tow, by higher taxon. Raw (uncorrected for net type).",
      "units": "count/1000m3",
      "is_canonical": true,
      "datasets": [
        "cce-lter_zoodb"
      ]
    },
    "zooplankton_abundance_areal": {
      "description": "Zooplankton areal abundance (depth-integrated density) per net tow, by higher taxon. Raw (uncorrected).",
      "units": "count/m2",
      "is_canonical": false,
      "datasets": [
        "cce-lter_zoodb"
      ]
    },
    "zooplankton_biomass_carbon": {
      "description": "Zooplankton carbon biomass per net tow, by higher taxon. Raw (uncorrected for net type).",
      "units": "mgC/m2",
      "is_canonical": true,
      "datasets": [
        "cce-lter_zoodb"
      ]
    },
    "zooscan_abundance": {
      "description": "Zooplankton areal abundance from ZooScan optical imaging, by image-classified bioclass.",
      "units": "count/m2",
      "is_canonical": true,
      "datasets": [
        "cce-lter_zooscan"
      ]
    },
    "zooscan_biomass_carbon": {
      "description": "Estimated zooplankton carbon biomass from ZooScan optical imaging, by bioclass.",
      "units": "mgC/m2",
      "is_canonical": true,
      "datasets": [
        "cce-lter_zooscan"
      ]
    },
    "zooscan_feret_diameter": {
      "description": "Mean Feret diameter (organism size) from ZooScan optical imaging, by bioclass.",
      "units": "mm",
      "is_canonical": false,
      "datasets": [
        "cce-lter_zooscan"
      ]
    },
    "zooscan_carbon_individual": {
      "description": "Mean individual carbon content from ZooScan optical imaging, by bioclass.",
      "units": "ugC",
      "is_canonical": false,
      "datasets": [
        "cce-lter_zooscan"
      ]
    },
    "behavior": {
      "description": "Seabird/marine-mammal behavior category (obs_attribute; e.g. Flying, Feeding)",
      "units": null,
      "is_canonical": true,
      "datasets": [
        "calcofi_bird_mammal_census"
      ]
    }
  },
  "contributions": {
    "measurement_type": {
      "total_rows": 120,
      "over_attributed": true,
      "by_dataset": [
        {
          "provider_dataset": "calcofi_bottle",
          "rows": 106,
          "pct": 88.3,
          "workflow": "https://calcofi.io/workflows/ingest_calcofi_bottle.html"
        },
        {
          "provider_dataset": "calcofi_ctd-cast",
          "rows": 106,
          "pct": 88.3,
          "workflow": "https://calcofi.io/workflows/ingest_calcofi_ctd-cast.html"
        },
        {
          "provider_dataset": "calcofi_dic",
          "rows": 106,
          "pct": 88.3,
          "workflow": "https://calcofi.io/workflows/ingest_calcofi_dic.html"
        },
        {
          "provider_dataset": "calcofi_phyllosoma",
          "rows": 124,
          "pct": 103.3,
          "workflow": "https://calcofi.io/workflows/ingest_calcofi_phyllosoma.html"
        },
        {
          "provider_dataset": "calcofi_phytoplankton",
          "rows": 125,
          "pct": 104.2,
          "workflow": "https://calcofi.io/workflows/ingest_calcofi_phytoplankton.html"
        },
        {
          "provider_dataset": "cce-lter_euphausiids",
          "rows": 106,
          "pct": 88.3,
          "workflow": "https://calcofi.io/workflows/ingest_cce-lter_euphausiids.html"
        },
        {
          "provider_dataset": "cce-lter_zoodb",
          "rows": 132,
          "pct": 110,
          "workflow": "https://calcofi.io/workflows/ingest_cce-lter_zoodb.html"
        },
        {
          "provider_dataset": "cce-lter_zooscan",
          "rows": 132,
          "pct": 110,
          "workflow": "https://calcofi.io/workflows/ingest_cce-lter_zooscan.html"
        },
        {
          "provider_dataset": "swfsc_cufes",
          "rows": 112,
          "pct": 93.3,
          "workflow": "https://calcofi.io/workflows/ingest_swfsc_cufes.html"
        }
      ]
    },
    "region": {
      "total_rows": 4,
      "over_attributed": false,
      "by_dataset": [
        {
          "provider_dataset": "calcofi_phytoplankton",
          "rows": 4,
          "pct": 100,
          "workflow": "https://calcofi.io/workflows/ingest_calcofi_phytoplankton.html"
        }
      ]
    },
    "cruise": {
      "total_rows": 691,
      "over_attributed": false,
      "by_dataset": [
        {
          "provider_dataset": "swfsc_ichthyo",
          "rows": 691,
          "pct": 100,
          "workflow": "https://calcofi.io/workflows/ingest_swfsc_ichthyo.html"
        }
      ]
    },
    "ship": {
      "total_rows": 49,
      "over_attributed": false,
      "by_dataset": [
        {
          "provider_dataset": "swfsc_ichthyo",
          "rows": 48,
          "pct": 98,
          "workflow": "https://calcofi.io/workflows/ingest_swfsc_ichthyo.html"
        }
      ]
    },
    "taxon": {
      "total_rows": 3580,
      "over_attributed": false,
      "by_dataset": [
        {
          "provider_dataset": "swfsc_ichthyo",
          "rows": 3385,
          "pct": 94.6,
          "workflow": "https://calcofi.io/workflows/ingest_swfsc_ichthyo.html"
        }
      ]
    },
    "lookup": {
      "total_rows": 26,
      "over_attributed": false,
      "by_dataset": [
        {
          "provider_dataset": "swfsc_ichthyo",
          "rows": 26,
          "pct": 100,
          "workflow": "https://calcofi.io/workflows/ingest_swfsc_ichthyo.html"
        }
      ]
    },
    "grid": {
      "total_rows": 218,
      "over_attributed": false,
      "by_dataset": [
        {
          "provider_dataset": "swfsc_ichthyo",
          "rows": 218,
          "pct": 100,
          "workflow": "https://calcofi.io/workflows/ingest_swfsc_ichthyo.html"
        }
      ]
    },
    "obs": {
      "total_rows": 17705061,
      "over_attributed": false,
      "by_dataset": [
        {
          "provider_dataset": "calcofi_bottle",
          "rows": 11037615,
          "pct": 62.3,
          "workflow": "https://calcofi.io/workflows/ingest_calcofi_bottle.html"
        },
        {
          "provider_dataset": "calcofi_ctd-cast",
          "rows": 5551551,
          "pct": 31.4,
          "workflow": "https://calcofi.io/workflows/ingest_calcofi_ctd-cast.html"
        },
        {
          "provider_dataset": "swfsc_ichthyo",
          "rows": 459286,
          "pct": 2.6,
          "workflow": "https://calcofi.io/workflows/ingest_swfsc_ichthyo.html"
        },
        {
          "provider_dataset": "swfsc_cufes",
          "rows": 270593,
          "pct": 1.5,
          "workflow": "https://calcofi.io/workflows/ingest_swfsc_cufes.html"
        },
        {
          "provider_dataset": "calcofi_phytoplankton",
          "rows": 159804,
          "pct": 0.9,
          "workflow": "https://calcofi.io/workflows/ingest_calcofi_phytoplankton.html"
        },
        {
          "provider_dataset": "cce-lter_zooscan",
          "rows": 126692,
          "pct": 0.7,
          "workflow": "https://calcofi.io/workflows/ingest_cce-lter_zooscan.html"
        },
        {
          "provider_dataset": "calcofi_bird_mammal_census",
          "rows": 65578,
          "pct": 0.4,
          "workflow": "https://calcofi.io/workflows/ingest_calcofi_bird_mammal_census.html"
        },
        {
          "provider_dataset": "cce-lter_zoodb",
          "rows": 18276,
          "pct": 0.1,
          "workflow": "https://calcofi.io/workflows/ingest_cce-lter_zoodb.html"
        },
        {
          "provider_dataset": "cce-lter_euphausiids",
          "rows": 10140,
          "pct": 0.1,
          "workflow": "https://calcofi.io/workflows/ingest_cce-lter_euphausiids.html"
        },
        {
          "provider_dataset": "calcofi_dic",
          "rows": 3708,
          "pct": 0,
          "workflow": "https://calcofi.io/workflows/ingest_calcofi_dic.html"
        },
        {
          "provider_dataset": "calcofi_phyllosoma",
          "rows": 1818,
          "pct": 0,
          "workflow": "https://calcofi.io/workflows/ingest_calcofi_phyllosoma.html"
        }
      ]
    },
    "sample": {
      "total_rows": 1385959,
      "over_attributed": false,
      "by_dataset": [
        {
          "provider_dataset": "calcofi_bottle",
          "rows": 931015,
          "pct": 67.2,
          "workflow": "https://calcofi.io/workflows/ingest_calcofi_bottle.html"
        },
        {
          "provider_dataset": "swfsc_ichthyo",
          "rows": 213122,
          "pct": 15.4,
          "workflow": "https://calcofi.io/workflows/ingest_swfsc_ichthyo.html"
        },
        {
          "provider_dataset": "pic_zooplankton",
          "rows": 99530,
          "pct": 7.2,
          "workflow": "https://calcofi.io/workflows/ingest_pic_zooplankton.html"
        },
        {
          "provider_dataset": "calcofi_bird_mammal_census",
          "rows": 60715,
          "pct": 4.4,
          "workflow": "https://calcofi.io/workflows/ingest_calcofi_bird_mammal_census.html"
        },
        {
          "provider_dataset": "swfsc_cufes",
          "rows": 49572,
          "pct": 3.6,
          "workflow": "https://calcofi.io/workflows/ingest_swfsc_cufes.html"
        },
        {
          "provider_dataset": "calcofi_ctd-cast",
          "rows": 14336,
          "pct": 1,
          "workflow": "https://calcofi.io/workflows/ingest_calcofi_ctd-cast.html"
        },
        {
          "provider_dataset": "cce-lter_euphausiids",
          "rows": 10150,
          "pct": 0.7,
          "workflow": "https://calcofi.io/workflows/ingest_cce-lter_euphausiids.html"
        },
        {
          "provider_dataset": "calcofi_dic",
          "rows": 3262,
          "pct": 0.2,
          "workflow": "https://calcofi.io/workflows/ingest_calcofi_dic.html"
        },
        {
          "provider_dataset": "calcofi_phyllosoma",
          "rows": 1859,
          "pct": 0.1,
          "workflow": "https://calcofi.io/workflows/ingest_calcofi_phyllosoma.html"
        },
        {
          "provider_dataset": "cce-lter_zooscan",
          "rows": 1483,
          "pct": 0.1,
          "workflow": "https://calcofi.io/workflows/ingest_cce-lter_zooscan.html"
        },
        {
          "provider_dataset": "cce-lter_zoodb",
          "rows": 506,
          "pct": 0,
          "workflow": "https://calcofi.io/workflows/ingest_cce-lter_zoodb.html"
        },
        {
          "provider_dataset": "calcofi_phytoplankton",
          "rows": 409,
          "pct": 0,
          "workflow": "https://calcofi.io/workflows/ingest_calcofi_phytoplankton.html"
        }
      ]
    },
    "obs_attribute": {
      "total_rows": 452682,
      "over_attributed": false,
      "by_dataset": [
        {
          "provider_dataset": "swfsc_ichthyo",
          "rows": 369978,
          "pct": 81.7,
          "workflow": "https://calcofi.io/workflows/ingest_swfsc_ichthyo.html"
        },
        {
          "provider_dataset": "calcofi_bird_mammal_census",
          "rows": 82338,
          "pct": 18.2,
          "workflow": "https://calcofi.io/workflows/ingest_calcofi_bird_mammal_census.html"
        },
        {
          "provider_dataset": "calcofi_phyllosoma",
          "rows": 366,
          "pct": 0.1,
          "workflow": "https://calcofi.io/workflows/ingest_calcofi_phyllosoma.html"
        }
      ]
    },
    "sample_measurement": {
      "total_rows": 555623,
      "over_attributed": false,
      "by_dataset": [
        {
          "provider_dataset": "swfsc_ichthyo",
          "rows": 320110,
          "pct": 57.6,
          "workflow": "https://calcofi.io/workflows/ingest_swfsc_ichthyo.html"
        },
        {
          "provider_dataset": "calcofi_bottle",
          "rows": 235513,
          "pct": 42.4,
          "workflow": "https://calcofi.io/workflows/ingest_calcofi_bottle.html"
        }
      ]
    }
  },
  "erd_legend": [
    {
      "provider_dataset": "calcofi_bird_mammal_census",
      "color": "#f0d2e8"
    },
    {
      "provider_dataset": "calcofi_bottle",
      "color": "#f5cad9"
    },
    {
      "provider_dataset": "calcofi_ctd-cast",
      "color": "#e0ccf0"
    },
    {
      "provider_dataset": "calcofi_dic",
      "color": "#ffd2bb"
    },
    {
      "provider_dataset": "calcofi_phyllosoma",
      "color": "#e0bbf0"
    },
    {
      "provider_dataset": "calcofi_phytoplankton",
      "color": "#b5e8b0"
    },
    {
      "provider_dataset": "cce-lter_euphausiids",
      "color": "#d2f0bb"
    },
    {
      "provider_dataset": "cce-lter_zoodb",
      "color": "#d9c2f0"
    },
    {
      "provider_dataset": "cce-lter_zooscan",
      "color": "#c2e8f0"
    },
    {
      "provider_dataset": "pic_zooplankton",
      "color": "#bbe0f0"
    },
    {
      "provider_dataset": "swfsc_cufes",
      "color": "#f0e8bb"
    },
    {
      "provider_dataset": "swfsc_ichthyo",
      "color": "#cdebc6"
    }
  ]
}
