OverviewFilesCommitsIssuesDocsReleasesPeers

terrain-lookdev commits / 15e9426

compare_reference: key the verdict on slope, not concavity
It printed "the unit conversion is NOT the explanation" while the slope column in the same table showed 0.559/0.368 for the reference against 0.020 for ours. The conclusion was false and the evidence refuting it was already on screen — an instrument stating a wrong verdict is worse than no instrument, because the table gets skimmed and the verdict gets believed. Concavity was the wrong question. NEITHER implementation deepens ground that is already a valley, so "enhances existing lines" is not what the reference does. It cuts HARDER ON STEEPER GROUND, and that is what reads as following the terrain.
15e942686d40d83b71e8a9bdb8e39a7a9ebb8ddb
by plankatron <fleeky@gmail.com> · 2026-09-02T14:13:39.000Z

Changed files (1) +25 -9

compare_reference.py +25 -9
……@@ -111,15 +111,31 @@ def main():
111111 for name, rms, cc, cs, sh in rows:
112112 print(f"{name:>34} {rms:>8.2f} {cc:>12.3f} {cs:>11.3f} {sh:>9.3f}")
113113
114 ref_best = max(abs(r[2]) for r in rows[:2])
115 our_best = max(abs(r[2]) for r in rows[2:])
116 print(f"\nreference best |corr concav| {ref_best:.3f} ours {our_best:.3f}")
117 if ref_best > 0.15 and our_best < 0.10:
118 print("CONFIRMED: the reference follows the field's existing valleys and\n"
119 " our path does not. The difference is the unit conversion.")
120 elif ref_best < 0.15:
121 print("NOT CONFIRMED: the reference does not score high either, so the\n"
122 " unit conversion is NOT the explanation. Look elsewhere.")
114 # THE VERDICT KEYS ON SLOPE, NOT CONCAVITY.
115 #
116 # The first version of this keyed on concavity and printed "the unit
117 # conversion is NOT the explanation" -- while the slope column in the SAME
118 # table showed 0.559/0.368 for the reference against 0.020 for ours. The
119 # conclusion was false and the evidence refuting it was already on screen.
120 #
121 # Concavity was the wrong question: NEITHER implementation deepens ground
122 # that is already a valley, so "enhances existing lines" is not what the
123 # reference does either. What it does is cut HARDER ON STEEPER GROUND, and
124 # that is what reads as following the terrain.
125 ref_s = max(abs(r[3]) for r in rows[:2])
126 our_s = max(abs(r[3]) for r in rows[2:])
127 ref_c = max(abs(r[2]) for r in rows[:2])
128 our_c = max(abs(r[2]) for r in rows[2:])
129 print(f"\ncorr SLOPE reference {ref_s:.3f} ours {our_s:.3f}"
130 f" ({ref_s/our_s if our_s else float('inf'):.1f}x)")
131 print(f"corr CONCAV reference {ref_c:.3f} ours {our_c:.3f}"
132 " (both ~0 -- neither follows existing valleys)")
133 if our_s < 0.5 * ref_s:
134 print("\nREADS AS: ours cuts far more uniformly than the reference. The\n"
135 " erosion is placed without regard to the terrain under it.")
136 else:
137 print("\nREADS AS: ours now follows the terrain's slope comparably to the\n"
138 " reference.")
123139
124140
125141if __name__ == "__main__":