Repository navigation
Lake km: should 1450 connection lines count as lake rearing? #317
Description
If done: default's lake km count only lines that trace a lake's flow, so rearing km stop scaling with how many tributaries a lake has. If never: a big lake's km stay dominated by FWA connection lines. Adams Lake alone puts ADMS CH at +91 % rearing against bcfishpass.
Problem (link@4580717, v0.61.0)
- Default lake and wetland rearing: connected to spawning, centrelines kept, km and ha broken out #310 admits lake and reservoir lines to the
defaultlake rear rule:1000/1100/1200/1250/1300/1350/1400/1450/1475. - Edge type 1450 ("Construction line, connection") joins each tributary mouth to the main-flow line (1200) across the lake. It is not a flow path through the lake.
- Measured (
data-raw/logs/lake_connected_310/):- Adams Lake (13,229 ha) holds 211.6 km of ADMS CH / CO rearing lines: 62.8 km of 1200 and 148.8 km of 1450.
- On NATR, BT's lake km are 275.0 km of 1450 and 227.6 km of 1200.
- Province-wide, lakes hold 54,402 km of 1200 and 44,528 km of 1450.
- Against bcfishpass, ADMS CH rearing goes from +14 % to +91 %, and CO from +3 % to +75 %. Without Adams Lake those would be about +22 % / +15 %.
The issue named 1450 among the lake edge types, so #310 kept it.
Decision and result (2026-10-08)
Lake km are flow lines. Connection lines stay in rearing, and the rollups report them apart. Measured in data-raw/logs/lake_connection_317/; write-up in research/habitat_thresholds.md, "Lake connection lines".
- Connectors only: 1450. 1400 is "other flow / inferred connection", a construction flow line, so it stays in the km. The first cut also excluded 1400 and was narrowed before merge (operator, 2026-10-08: "construction and connector are totally different"). Lake 1400 is at most 1.4 km of rearing.
- The rules are unchanged. 1400 / 1450 stay in the L rule, so
cluster_rearingstill joins inlet rearing to the lake, and nothing re-classifies. - The compare rollups split them out.
lnk_compare_rollup()/lnk_compare_wsg()reportrearing_lake_connection(km) and leave it out ofrearingandrearing_lakekm. - The rule runs on both sides. bcfishpass counts these lines in BT and SK rearing too, so the bcfishpass side gets the same rule.
lnk_rollup_wsg()'s defaultrearing_kmstays the flag total, for the validator and the parity scripts.- ADMS against bcfishpass: CH +91.1 % → +38.9 %, CO +75.0 % → +28.7 %, BT +16.4 % → +2.0 %. CH / CO stay high because bcfishpass has no CH / CO lake rearing on ADMS. The residual is lake flow lines, Default lake and wetland rearing: connected to spawning, centrelines kept, km and ha broken out #310's call.
- SK rearing km fall 55–95 % (seven WSGs) on both sides, so SK parity stays 0.0 %. KO falls 62 % on NATR, with no bcfishpass reference.
The proposal below, dropping 1400 / 1450 from the rule, was not taken.
Proposal
Decide whether lake km are "centrelines" (1200 / 1250 / 1300 / 1350 / 1475, the lines that trace flow) or "every line in the polygon".
If centrelines, drop 1400 / 1450 from the lake edge set in R/lnk_rules_build.R. That set is one list, used in both edge-type modes. Then rebuild the rules and re-measure with data-raw/logs/lake_connected_310/run.R.
1450 lines may still matter for connectivity: they join inlet clusters to the lake. Dropping them from rearing could disconnect inlet rearing from outlet spawning. Measure that before deciding.
Relates to #310.
Activity
CLAUDE.md: point #310's open items at #317 and fresh#250
Narrow lake connectors to 1450; 1400 is construction flow (#317)
Merge pull request #318 from NewGraphEnvironment/317-lake-km-should-1…