feat(simulation): T-1156 — quantized river_class on RiverNetwork (trunk/tributary/stream)
The one additive server change of wave 1 per Tyre's carrier ruling: river_class: Vec<u8> parallel to river_cells, serde-default-safe, no new wire field. Log-scaled binning between RIVER_THRESHOLD and the RIVER-RESTRICTED max accumulation (max over cells passing the is_river elevation filter — NOT the grid-wide max, which peaks past the coastline on wet large-ocean bodies and would starve the trunk class exactly where Araminta's District-shows-trunk-only table needs it; caught in lead review of round 1, fixed round 2). Log not linear because accumulation grows combinatorially downstream. By construction every body with rivers has trunk cells — pinned by a non-synthetic regression on the committed GJ1c heightmap at the golden's exact downsample. cascade_layer1.json regenerated: every pre-existing field byte-identical (python-verified), only the new river_class arrays added — GJ1c distribution stream 72 / tributary 18 / trunk 3. drainage 16/16 (+10), layer1 3/3, layer_proxy 50/50, build --tests clean; revert-verified (non-monotonic binning fails the monotonicity test by name). Tickets: T-1156 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -557,6 +557,7 @@ fn generate_atlas_layer_response_fixtures() {
|
||||
river_cells: vec![(12, 58), (12, 59)],
|
||||
confluences: vec![],
|
||||
mouths: vec![(12, 58)],
|
||||
river_class: vec![1, 2],
|
||||
},
|
||||
drainage_basins: vec![DrainageBasin {
|
||||
basin_id: 1,
|
||||
|
||||
@@ -8216,6 +8216,101 @@
|
||||
124,
|
||||
239
|
||||
]
|
||||
],
|
||||
"river_class": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user