Problem
bcfishpass's SK upstream-spawning rule DBSCAN-clusters candidate
spawning segments and credits only clusters within 2 m of a rearing-lake
polygon (load_habitat_linear_sk.sql lines 137–253).
Reaches separated from the lake by non-spawn connector segments (steep
sections, sub-cw, beaver complexes) get dropped — even when fish can
demonstrably reach them.
Known issue, not a bug surfaced here. Sockeye spawn well above nursery
lakes in tributaries that don't form lake-adjacent clusters.
Behaviour change requested
Default bundle: credit any segment that passes the spawn rule and is
upstream-accessible from a rearing lake. No cluster-must-touch-lake
gate. Distance from the lake is irrelevant — accessibility is the only
constraint.
bcfishpass bundle: unchanged. Continues to mirror bcfp lake-adjacent
clustering for parity testing.
Notes
- The 3 km downstream-of-outlet rule (
spawn_connected_distance_max
etc. in dimensions.csv) is unrelated and continues for both bundles.
- bcfp's lake-adjacency is hard-coded in SQL, not parameterized via
dimensions.csv — a per-bundle switch needs to flow through the rules
pipeline (or fresh's clustering helper).
Versions
- link: 0.19.0
- fresh: 0.25.0
- bcfishpass: 440bc1e (2026-04-28)
- fwapg: local Docker (port 5432)
Problem
bcfishpass's SK upstream-spawning rule DBSCAN-clusters candidate
spawning segments and credits only clusters within 2 m of a rearing-lake
polygon (load_habitat_linear_sk.sql lines 137–253).
Reaches separated from the lake by non-spawn connector segments (steep
sections, sub-cw, beaver complexes) get dropped — even when fish can
demonstrably reach them.
Known issue, not a bug surfaced here. Sockeye spawn well above nursery
lakes in tributaries that don't form lake-adjacent clusters.
Behaviour change requested
Default bundle: credit any segment that passes the spawn rule and is
upstream-accessible from a rearing lake. No cluster-must-touch-lake
gate. Distance from the lake is irrelevant — accessibility is the only
constraint.
bcfishpass bundle: unchanged. Continues to mirror bcfp lake-adjacent
clustering for parity testing.
Notes
spawn_connected_distance_maxetc. in
dimensions.csv) is unrelated and continues for both bundles.dimensions.csv— a per-bundle switch needs to flow through the rulespipeline (or fresh's clustering helper).
Versions