You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
GR (Arctic Grayling), KO (Kokanee), and RB (Rainbow Trout) all have rule blocks emitted in default/rules.yaml and rows in default/parameters_fresh.csv (KO + GR added in #106; RB pre-existing). bcfishobs has substantive observations for each (RB: 117,593; KO: 9,535; GR: 3,298). Per-species fresh habitat thresholds exist for all three. But no end-to-end proof exists yet that the pipeline actually classifies habitat for any of them in any WSG.
What we need to prove (per species)
For GR, KO, RB on the default bundle:
lnk_pipeline_classify consumes the species' rule block without error
fresh.streams_habitat contains rows for the species with non-zero spawning_ / rearing_ values in a WSG where presence is flagged
KO's lake-only rear (no rear_edge_types in fresh thresholds) correctly produces lake_rearing_ha > 0 in a WSG with a known Kokanee lake
GR's stream+lake rear produces both rearing_stream and lake_rearing values
RB's wetland (1 ha min) + lake (10 ha min) rears both fire
frs_cluster runs cleanly for GR + KO (cluster_rearing = TRUE); KO also gets cluster_spawning = TRUE
Observation lift fires for each species (per-species barrier_overrides table has rows when bcfishobs has observations upstream of natural barriers)
Approach
Pick one WSG per species where presence is well-attested:
Species
Test WSG
Rationale
GR
PARS, NATR (Mackenzie basin)
Authoritative GR presence per wsg_species_presence
Run compare_bcfishpass_wsg(wsg, lnk_config("default")) for each — assert species rows present in the rollup tibble, assert non-zero values, spot-check the <schema>.streams_habitat table for spawning_<sp> = 1 and rearing_<sp> = 1 flags.
Acceptance
All 3 species produce non-zero spawning_km in their test WSGs
All 3 species produce non-zero rearing values (stream / lake / wetland depending on dimensions)
No errors in lnk_pipeline_* phases when these species are active
Observation lift fires (per-species barrier_overrides has rows)
Verification log committed to data-raw/logs/
Out of scope
bcfishpass-bundle parity for GR/KO/RB — bcfishpass doesn't model these species, so there's nothing to compare against. This is default-bundle methodology proof only.
Per-species access methodology refinement — accept the dimensions.csv settings as-is; tune later if numbers look off.
Relates to #106 (the spp_cols hardcode fix that enabled GR/KO end-to-end)
Relates to NewGraphEnvironment/bcfishpass#12 (KO presence column)
Relates to NewGraphEnvironment/sred-2025-2026#24
Problem
GR (Arctic Grayling), KO (Kokanee), and RB (Rainbow Trout) all have rule blocks emitted in
default/rules.yamland rows indefault/parameters_fresh.csv(KO + GR added in #106; RB pre-existing). bcfishobs has substantive observations for each (RB: 117,593; KO: 9,535; GR: 3,298). Per-species fresh habitat thresholds exist for all three. But no end-to-end proof exists yet that the pipeline actually classifies habitat for any of them in any WSG.What we need to prove (per species)
For GR, KO, RB on the default bundle:
lnk_pipeline_classifyconsumes the species' rule block without errorfresh.streams_habitatcontains rows for the species with non-zero spawning_ / rearing_ values in a WSG where presence is flaggedrear_edge_typesin fresh thresholds) correctly produces lake_rearing_ha > 0 in a WSG with a known Kokanee lakefrs_clusterruns cleanly for GR + KO (cluster_rearing = TRUE); KO also getscluster_spawning = TRUEbarrier_overridestable has rows when bcfishobs has observations upstream of natural barriers)Approach
Pick one WSG per species where presence is well-attested:
wsg_species_presenceRun
compare_bcfishpass_wsg(wsg, lnk_config("default"))for each — assert species rows present in the rollup tibble, assert non-zero values, spot-check the<schema>.streams_habitattable forspawning_<sp> = 1andrearing_<sp> = 1flags.Acceptance
lnk_pipeline_*phases when these species are activedata-raw/logs/Out of scope
Relates to #106 (the spp_cols hardcode fix that enabled GR/KO end-to-end)
Relates to NewGraphEnvironment/bcfishpass#12 (KO presence column)
Relates to NewGraphEnvironment/sred-2025-2026#24