Skip to content

docs: running.md said the azimuth level was still owed, three weeks after it landed - #61

Merged
esamoun merged 1 commit into
mainfrom
running-md-says-the-shift-was-corrected
Sep 8, 2026
Merged

esamoun merged 1 commit into
mainfrom
running-md-says-the-shift-was-corrected

Conversation

@esamoun

@esamoun esamoun commented Sep 8, 2026

Copy link
Copy Markdown
Owner

Two pages told a reader opposite things about what the chain does.

README.md:51 level 3 complete, "with the azimuth shift of a moving ship compensated before matching"
docs/running.md:162 "Predicting the shift from each vessel's own declared course and speed is a level of its own"

The code settles it: src/darkvessel/fusion/azimuth.py landed 2026-08-17 in 1e62deb, is imported by pipeline.py:27 and fusion/match.py:24, writes azimuth_shift_m onto every classified detection, and is held by 13 tests in tests/test_azimuth.py. The decision is docs/decisions.md under 2026-08-16.

running.md's sentence was true when it was written — the section is headed What the first run on the lane showed, 2026-08-14 — and stopped being true three days later. docs/failures.md survives this on its own because it is a chronological log: its 2026-08-14 entry says "recorded, and nothing else" and its 2026-08-16 entry records the correction. running.md is not a log, and it is the page the README sends a reader to for real runs.

The fix is additive. 10 lines, nothing removed, no measurement touched: the 341–632 m offsets, the implied R/V of 115 s and the table of six vessels stay exactly as recorded, because the correction is only readable against them. The new paragraph says the level was built, what it recovers on this same scene (matches from 2 to 5 of the 6 hulls in frame), that the tolerance stayed at 200 m — which is the point of moving the declaration instead of widening the radius — and points at the entry that carries the approximation (incidence angle declared at mid-swath, a fifth of the correction) and the debt still owed (the per-pixel angle band the export should record).

make lint clean, make test 572 passed / 1 skipped — unchanged.

…fter it landed

The dated account of the first lane run ends with "predicting the shift ... is a
level of its own", which was true on 2026-08-14 and stopped being true on
2026-08-17 when fusion/azimuth.py landed. README.md meanwhile reports level 3
complete with the shift compensated before matching, so the two pages told a
reader opposite things about what the chain does, and running.md is the one the
README sends them to for real runs.

The measurements stay exactly as recorded — the correction is only readable
against them — and a paragraph after them says the level was built, what it
recovers on this same scene (2 matches to 5 of 6 hulls), that the tolerance did
not move, and where the approximation and the remaining debt are written down.
@esamoun
esamoun merged commit d291b0c into main Sep 8, 2026
3 of 6 checks passed
@esamoun
esamoun deleted the running-md-says-the-shift-was-corrected branch September 8, 2026 21:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant