Skip to content

Default bundle: drop lake-adjacency requirement on SK upstream spawning #87

@NewGraphEnvironment

Description

@NewGraphEnvironment

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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions