Core/Scripts/DrainageAnalysis.cs is the reference's DrainageAnalysis ported verbatim: the Barnes priority-flood routing fill (8-connected, seeded from the four borders, index tiebreak, pit fills ONE ULP above the parent so every filled cell keeps a strictly descending path to its spill; the terrain heightmap itself is never written - the fill lives in its own array), terminal-basin qualification (depth >= 2 m AND area >= 10,000 px; the rest are pits filled through), D8 flow directions on the routing surface - FOR ANALYSIS ONLY, the reverted-as-carving landmine stated in the file - Kahn accumulation, the memoised destination walk crediting a terminal basin with TOTAL inflow, sea-reaching outlets ranked by drainage area with the outlet separation, main stems by max accumulation, mountain exits from the along-stem grade, lean tributaries, lean endorheic terminals, and the promoted giants (provisional routes computed as the reference did, not drawn - routing is a later task). WorldScale-denominated; Dir / Acc / Filled / FullFilled / BasinId / BasinInflow exposed so the caller can prove the invariants. "The sea" is the OCEAN body from the region layer: RegionLabeling.OceanMask - the 4-connected water component touching the border, on the CLASSIFY field (the water-side complement of the land contract). Enclosed lagoons, lake beds and island-fringe pockets are ordinary terrain to the router. DrainageTool (4 task-11 seeds at 8192, the eroded fields bit-identical to the 11 dumps) renders the log-scaled accumulation map and the promoted-candidates overlay (trunks cyan, endorheic giants orange, lean terminals red; nothing carved) and writes the accumulation .f32. Oracle, all passing: render AND classify fields bit-identical before/after the analysis (zero terrain cells written), no water added, full fill >= original everywhere with a non-ascending path to the border from every cell, ocean mask all below sea and on the border, dir/acc/candidates identical across two runs. Endorheic basins are the expected first-class output: on every seed the top giants out-drain the top trunks - the biggest drainages pool inland because erosion delivers the upland network only and cannot cross the flats. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013EY3ZTF6NwzF8ukBHQXSK7
1 line
20 B
Text
1 line
20 B
Text
uid://dp11721l40ixx
|