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 metrics
  • uvs.blt_observations - Raw fish observations
  • uvs.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.

Standard transect dimensions
  • 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²)
Table 1: uvs.blt_observations Table Schema
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
Off-transect observations

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.

Standard UVS depth strata

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

Table 2: uvs.blt_stations Table Schema
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.

Table 3: uvs.blt_biomass_by_station_taxa Table Schema
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