| Field | Type | Required | Description |
|---|---|---|---|
| obs_id | STRING | true | Unique observation identifier. Format: {ISO3}_{YEAR}_blt_{DIVER_INITIALS}_{SEQUENCE} |
| ps_station_id | STRING | true | Station identifier (FK → uvs.fish_stations) |
| exp_id | STRING | true | Expedition identifier. Format: {ISO3}_{YEAR} |
| diver | STRING | true | Observer name |
| depth_m | FLOAT | true | Recorded depth (m) |
| station_label | STRING | true | Field-assigned relative stratum (e.g., shallow, deep) |
| transect | STRING | true | Transect label (A, B, OFF) |
| transect_length_m | INTEGER | true | Transect length (m). Standard = 20 |
| transect_width_m | INTEGER | true | Transect width (4m for fish ≥20cm, 2m for fish <20cm) |
| accepted_name | STRING | true | Valid scientific name |
| accepted_aphia_id | INTEGER | true | WoRMS AphiaID (FK → taxa_info.fish) |
| rank | STRING | true | Taxonomic rank: species, genus, or family |
| family | STRING | false | Family name |
| trophic_group | STRING | true | Trophic group classification (e.g., herbivore | detritivore, top_predator) |
| count | INTEGER | true | Number of individuals observed in this size class |
| length_cm | FLOAT | true | Estimated total length (cm) |
| biomass_g | FLOAT | false | Total biomass (g), calculated using length–weight relationship |
| terminal_phase | BOOLEAN | false | TRUE if identified as terminal phase (e.g., parrotfishes) |
| notes | STRING | false | Optional comments or QA annotations |
Fish Belt Transects (BLT)
Overview
The fish belt transect (BLT) protocol is the primary method used to quantify reef fish assemblages at UVS sites. Divers swim standardized belt transects, visually identifying and sizing all fishes observed within a defined area. This method yields robust estimates of fish abundance, biomass, and community structure across depth strata and regions (see SOP for full methods).
Data Architecture
Fish BLT data are organized across three interlinked tables:
uvs.blt_stations- Station metadata and summary metricsuvs.blt_observations- Raw fish observationsuvs.blt_biomass_by_station_taxa- Aggregated biomass by species per station
All tables link via ps_station_id. Taxonomy uses accepted_aphia_id as the canonical key to taxa_info.fish; accepted_name is denormalized for convenience. Site context (region, subregion, locality, habitat, exposure) mirrors uvs.sites.
Tables
Observations
This table stores individual fish observations from belt transects. Each row represents a single species-size combination observed by a diver on a specific transect.
In addition to raw counts, it includes derived metrics such as biomass (biomass_g) and biomass per unit area (biomass_gm2), calculated using species-specific length–weight parameters from taxonomy.fish. Observations are linked to their parent station via ps_station_id, and taxonomic identity is standardized using accepted_aphia_id.
- Fish ≥ 20 cm are recorded along a 25 m × 4 m belt (100 m²)
- Fish < 20 cm are recorded along a 25 m × 2 m belt (50 m²)
Fish observed outside of standard transects (e.g., large pelagics, megafauna) are recorded using transect = "OFF". These are included for completeness but should be treated separately in standardized analyses.
Stations
This table contains one record per depth-stratified fish survey station. Each row represents a discrete sampling unit where belt transects were conducted, including survey conditions and summary metrics.
Stations are linked to uvs.sites via ps_site_id, and uniquely identified using a depth-binned ps_station_id. This table provides the context and summary metrics for interpreting observation-level data.
All UVS stations are binned into standardized depth strata:
- Supershallow (
<= 6 m) →05m
- Shallow (
7–14 m) →10m
- Deep (
>= 15 m) →20m
Example: A survey at 5.8 m → FJI_2025_uvs_001_05m
| Field | Type | Required | Description |
|---|---|---|---|
| ps_station_id | STRING | true | Unique station identifier. Format: {ps_site_id}_{depth} |
| ps_site_id | STRING | true | Site identifier (FK → uvs.sites) |
| exp_id | STRING | true | Expedition identifier. Format: {ISO3}_{YEAR} |
| region | STRING | true | Geographic region (from uvs.sites) |
| subregion | STRING | true | Geographic subregion (from uvs.sites) |
| locality | STRING | false | Specific locality (from uvs.sites) |
| habitat | STRING | true | Habitat classification (from uvs.sites) |
| exposure | STRING | true | Wave exposure category (from uvs.sites) |
| depth_strata | STRING | true | Depth category: supershallow, shallow, or deep |
| depth_m | FLOAT | true | Mean recorded depth (m) |
| divers | STRING | true | Pipe-delimited list of observer names |
| n_transects | INTEGER | true | Number of transects completed |
| survey_dist_m | FLOAT | true | Total linear distance surveyed (m) |
| survey_area_m2 | FLOAT | true | Total area surveyed (m²) |
| n_taxa | INTEGER | false | Total unique fish taxa observed |
| avg_taxa | FLOAT | false | Mean taxa richness per transect |
| total_count | INTEGER | false | Total number of individuals recorded |
| avg_count | FLOAT | false | Mean number of individuals per transect |
| avg_density_m2 | FLOAT | false | Mean fish density (individuals/m²) |
| avg_biomass_gm2 | FLOAT | false | Mean biomass (g/m²) |
| pct_top_predator | FLOAT | false | Mean % biomass from top predators |
| pct_shark | FLOAT | false | Mean % biomass from sharks |
| pct_lower_carni | FLOAT | false | Mean % biomass from lower carnivores |
| pct_herbi_detri | FLOAT | false | Mean % biomass from herbivores/detritivores |
| pct_plankti | FLOAT | false | Mean % biomass from planktivores |
| notes | STRING | false | Field notes or QA comments |
Biomass by Station & Taxa
This table contains station-level summaries of fish abundance and biomass by species. It is the primary analysis-ready table for community structure assessments. Key spatial and taxonomic fields are denormalized here for query performance.
| Field | Type | Required | Description |
|---|---|---|---|
| ps_station_id | STRING | true | Station identifier (FK → uvs.inverts_stations) |
| ps_site_id | STRING | true | Site identifier (FK → uvs.sites) |
| exp_id | STRING | true | Expedition identifier. Format: {ISO3}_{YEAR} |
| region | STRING | true | Geographic region (from uvs.sites) |
| subregion | STRING | true | Geographic subregion (from uvs.sites) |
| habitat | STRING | true | Habitat classification (from uvs.sites) |
| exposure | STRING | true | Wave exposure category (from uvs.sites) |
| depth_strata | STRING | true | Depth category: supershallow, shallow, or deep |
| depth_m | FLOAT | true | Mean recorded depth (m) |
| divers | STRING | true | Pipe-delimited list of observer names |
| n_transects | FLOAT | true | Number of transects completed |
| survey_area_m2 | FLOAT | true | Total area sampled (m²) |
| accepted_name | STRING | true | Scientific name (Genus species) |
| accepted_aphia_id | INTEGER | true | WoRMS AphiaID — foreign key to taxonomy.fish |
| rank | STRING | true | Taxonomic rank |
| family | STRING | true | Family of the observed taxon |
| trophic_group | STRING | true | Trophic group classification |
| total_count | INTEGER | false | Total individuals observed across all transects |
| avg_count | FLOAT | false | Mean individuals per transect |
| avg_length_cm | FLOAT | false | Weighted mean total length (cm) |
| min_length_cm | FLOAT | false | Minimum total length (cm) observed |
| max_length_cm | FLOAT | false | Maximum total length (cm) observed |
| avg_density_m2 | FLOAT | false | Mean density (individuals/m²) |
| avg_biomass_gm2 | FLOAT | false | Mean biomass (g/m²), with zeros imputed for missing transects |