Skip to content

Settle the r≈2 mass per roll: half is a wrong scale, not a mislabelled lens (#72) - #77

Merged
NewGraphEnvironment merged 4 commits into
mainfrom
72-near-upper-scale-wrong
Sep 28, 2026
Merged

NewGraphEnvironment merged 4 commits into
mainfrom
72-near-upper-scale-wrong

Conversation

@NewGraphEnvironment

Copy link
Copy Markdown
Owner

Summary

  • Half the r ≈ 2 mass was a wrong scale, not a mislabelled lens. The logbooks and adjacent-frame spacing were read per roll-height over all 252 sampled frames beyond the band. 24 roll-heights (120 frames) carry the height the crew flew beside a scale recorded too small. They now ship in flying_height_rolls.csv at factor 1 (scale_wrong) under a new tail = "near_upper". Their keys reach at most 3,227 catalogue frames. The nominal fallback drew these frames at 1/r of their width (half at r = 2); they are now corrected_roll_table and sized from their height.
  • On 21 roll-heights (82 frames) the logbook writes a 12" lens. That confirms the lens reading there with a witness spacing never saw (bc78051, bc79072 and bc80122 are among them), and those frames stay on nominal scale. Every roll-height left out is listed in flying_height_rolls_excluded.csv with its reason.
  • fly_footprint() needs no logic change: the table lookup already works on both sides of the band. Only comments and roxygen change, along with the note, NEWS and CLAUDE.md.

Related Issues

The rule, which is the load-bearing part

The plan review found that the logbook height cannot separate the two defects. A wrong lens and a wrong scale both mean the crew flew the catalogued height, so factor 1 "agrees" on lens rolls too. For this tail the rule therefore also requires spacing to reject nominal scale, not merely fit the reported height. On a lens roll the reported height implies about 0.80 overlap, against a window top of 0.78, so fitting alone would have accepted lens rolls. This was fixed before the run.

A legible logbook scale equal to the catalogue's would veto a row. No sampled page writes a scale, so the veto never fired.

Logbooks

  • 144 pages were fetched for 53 rolls. One page (bc80048_4.jpg) returns 404 upstream.
  • Three unnamed readers transcribed them blind, given only the images and one control sheet each. All three controls read back as catalogued, and I spot-checked two sheets against the images myself.
  • The logbook CSV gains 185 rows. Two kinds of row were added at merge, and each says so in its note:
    • 18 whole-feet heights on 1984–86 sheets;
    • 2 interior-strip rows.
  • focal_mm on these pages is filled only where a focal length is written, never inferred from a camera model, because on this set the lens is the question.

Review

  • Plan review: 15 findings, recorded in the archive. Three of them (A1–A3) were folded into the rule before the run.
  • Code-check, 3 rounds:
    • Round 1: the reach claim had terrain's direction backwards; the scale parser read scales out of remarks.
    • Round 2: the parser fix still swallowed trailing digits, a defect inside a fix; the bc80048 wording was wrong; bc7223 shipped as "no page" when its page covers it but its height is unread.
    • Round 3: named the mechanism (claims written from a picture of the data rather than recomputed) and enumerated all 43 claims in the new prose. Two were false, and both were fixed and verified directly:
      • NEWS row counts went stale after the round-2 fix.
      • The bound paragraph missed 1,534 frames on nine 1985 rolls that sit just under the sampled stratum's floor. They are likely the same class and are unmeasured; this is stated in the note.

Test plan

  • devtools::test(): FAIL 0 | SKIP 0 | PASS 2537
  • The generator reruns byte-identically. Lower and upper rows of both tables are unchanged; the diff adds near_upper rows only.
  • Restore-the-bug: with the near_upper rows removed from the table (mocked), the bc5509 frame falls back to implausible at nominal width.
  • pkgdown::check_pkgdown() clean

Version bump and NEWS heading are left for /gh-pr-merge.

🤖 Generated with Claude Code

https://claude.ai/code/session_0115csb82i78r86GWFzwPzis

NewGraphEnvironment and others added 4 commits September 27, 2026 23:41
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0115csb82i78r86GWFzwPzis
Transcribe the logbook pages of the 53 rolls beyond the band in the
near_upper sample (185 rows, read blind), settle every sampled
roll-height with fly#60's witnesses under a new tail, near_upper, and
ship 24 roll-heights (120 frames) at factor 1, scale_wrong. The logbook
height cannot separate a wrong lens from a wrong scale, so this tail
also requires spacing to reject nominal. 21 roll-heights log a 12" lens
and stay on nominal. Tests pin the three-tail census and a near_upper
frame sized from its height, with the table row removed as the control.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0115csb82i78r86GWFzwPzis
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0115csb82i78r86GWFzwPzis
@NewGraphEnvironment
NewGraphEnvironment merged commit fa774ba into main Sep 28, 2026
4 checks passed
@NewGraphEnvironment
NewGraphEnvironment deleted the 72-near-upper-scale-wrong branch September 28, 2026 13:51
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.

Half the r≈2 mass is a wrong scale, not a mislabelled lens, and the fallback draws it at half width

1 participant