Skip to content

Measure coastal frames' sea surface: an elevation, not an error (#65) - #81

Merged
NewGraphEnvironment merged 10 commits into
mainfrom
65-a-coastal-frame-is-sized-from-sea-level
Sep 30, 2026
Merged

NewGraphEnvironment merged 10 commits into
mainfrom
65-a-coastal-frame-is-sized-from-sea-level

Conversation

@NewGraphEnvironment

Copy link
Copy Markdown
Owner

Summary

  • No behaviour change. fly#65's premise — MRDEM's ~0.14 m near-shore sea is an error — was measured before any remedy was built. Over water the sea is the imaged surface. A ray-cast of the true footprint on bare earth (1,242 coastal frames) shows the package's land-and-sea mean (W) is closer on area (0.34% vs 0.67% of width), while the land-only mean (L) is closer on the land edge (3.67% vs 4.43% of land misplaced). The pre-registered pooled test found no remedy warranted.
  • Two qualifications, recorded not acted on: matched for relief, the sea does worsen W's land edge (not its area); and a canopy can reverse the area verdict (first-order; package-wide, filed as Footprints are sized from bare earth, but over forest the camera sees the canopy #80).
  • Adds data-raw/dem_measure-coastal_water.R (ray-cast with flat and step synthetic controls, stratified sample of 240 runs), ships inst/extdata/dem_coastal_*.csv, and tests/testthat/test-fly_footprint_coastal.R rebuilds every table in the new note section row by row. Retracts the fly#58 "Ocean" bullet; adds a fly#65 section to inst/notes/terrain-correction.md; NEWS, CLAUDE.md, roxygen.

Related Issues

Decision for review

Relief-matched, W misplaces more coastal land than inland. The rule fixed before the run tested pooled, and passed. Whether to act is a schema decision:

  1. Ship as is, docs only (this PR) — recommended; W stays right for area, which is what coverage sums, and a land-edge remedy needs its own design (a per-side rectangle recovers only 16% of the edge error).
  2. Add a sea/land-fraction column so callers testing a land AOI can flag mostly-sea frames.
  3. Offer a land-only sizing option for land-edge use.

Test plan

  • devtools::test() — 2,691 pass, 0 fail
  • Note tables mutation-checked: changing one figure in any rebuilt row fails the suite
  • Measurement deterministic: three runs re-measured, CSVs byte-identical
  • /code-check — 4 rounds, ended by an enumeration of 136 published claims (no wrong figure)
  • CI (R-CMD-check, pkgdown)

Notes

Rule history is in planning/archive/2026-09-issue-65-coastal-sea-surface/: the decision rule, two amendments made before any frame was measured (the planned spacing instrument measures shutter timing, not coverage), and every correction the reviews forced.

🤖 Generated with Claude Code

https://claude.ai/code/session_0115csb82i78r86GWFzwPzis

NewGraphEnvironment and others added 10 commits September 29, 2026 17:38
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0115csb82i78r86GWFzwPzis
… the true footprint (#65)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0115csb82i78r86GWFzwPzis
The ray-cast of 2,124 admitted frames: W (the package) is right for area,
L and per-side sizing for the land edge, and neither is worse on a coastal
frame than on an inland one, so no remedy is warranted.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0115csb82i78r86GWFzwPzis
…fiers (#65)

Four code-check rounds: an exclusion mislabelled, 23 frames uncounted,
a promised control missing, and published causes written from a story
rather than read off the log. Matched for relief the pooled land-edge
pass disappears; a canopy can reverse the area verdict (fly#80). The
note's six tables are rebuilt row by row by the test.

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 c5a62f3 into main Sep 30, 2026
4 checks passed
@NewGraphEnvironment
NewGraphEnvironment deleted the 65-a-coastal-frame-is-sized-from-sea-level branch September 30, 2026 04:29
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.

A coastal frame is sized from sea level and reports full DEM coverage

1 participant