diff --git a/client/tests/fixtures/msgpack/atlas_response_ready.msgpack b/client/tests/fixtures/msgpack/atlas_response_ready.msgpack index 17afc26fa..39e40b709 100644 Binary files a/client/tests/fixtures/msgpack/atlas_response_ready.msgpack and b/client/tests/fixtures/msgpack/atlas_response_ready.msgpack differ diff --git a/server/src/atlas/drainage.rs b/server/src/atlas/drainage.rs index b9b2d62f2..6e48eebcd 100644 --- a/server/src/atlas/drainage.rs +++ b/server/src/atlas/drainage.rs @@ -543,43 +543,16 @@ fn build_basins(labels: &[i32], w: usize, h: usize) -> Vec { let cells = &basin_map[&basin_id]; let area_pct = cells.len() as f32 / n as f32; - // Boundary cells: in this basin, adjacent to a different basin or edge. - let mut boundary: Vec<(u16, u16)> = Vec::new(); - for &idx in cells { - let r = idx / w; - let c = idx % w; - let mut on_boundary = false; - for &(dr, dc) in &D8 { - let nr = r as i32 + dr; - let nc = (c as i32 + dc).rem_euclid(w as i32) as usize; - if nr < 0 || nr >= h as i32 { - on_boundary = true; - break; - } - if labels[nr as usize * w + nc] != basin_id { - on_boundary = true; - break; - } - } - if on_boundary { - boundary.push((r as u16, c as u16)); - } - } - - // Sort boundary by angle from centroid for a coherent polygon. - if !boundary.is_empty() { - let cr = boundary.iter().map(|&(r, _)| r as f32).sum::() / boundary.len() as f32; - let cc = boundary.iter().map(|&(_, c)| c as f32).sum::() / boundary.len() as f32; - boundary.sort_by(|&(r1, c1), &(r2, c2)| { - let a1 = (r1 as f32 - cr).atan2(c1 as f32 - cc); - let a2 = (r2 as f32 - cr).atan2(c2 as f32 - cc); - a1.partial_cmp(&a2).unwrap_or(std::cmp::Ordering::Equal) - }); - // Subsample to ≤500 points. - if boundary.len() > 500 { - let step = boundary.len() / 500; - boundary = boundary.into_iter().step_by(step).collect(); - } + // Outer boundary as an ordered, non-self-crossing contour via Moore- + // neighbour tracing from the basin's first (row-major) cell. The previous + // angle-from-centroid sort produced star-shaped, self-crossing polygons for + // concave basins, which rendered as straight chords across the map (#960). + let start = cells.iter().copied().min().unwrap_or(0); + let mut boundary = trace_outer_boundary(labels, w, h, basin_id, start); + // Decimate to ≤500 points, preserving traversal order (and thus shape). + if boundary.len() > 500 { + let step = boundary.len() / 500; + boundary = boundary.into_iter().step_by(step).collect(); } basins.push(DrainageBasin { @@ -592,6 +565,67 @@ fn build_basins(labels: &[i32], w: usize, h: usize) -> Vec { basins } +/// Trace the outer boundary of the connected component of `basin_id` containing +/// `start` (a row-major cell index), clockwise, via Moore-neighbour tracing. +/// Produces an ordered, 8-connected, non-self-crossing perimeter. The grid edge is +/// treated as background (no x-wrap) — this is for atlas visualization, not flow. +fn trace_outer_boundary(labels: &[i32], w: usize, h: usize, basin_id: i32, start: usize) -> Vec<(u16, u16)> { + // Moore-neighbourhood offsets in clockwise order: N, NE, E, SE, S, SW, W, NW. + const DIRS: [(i32, i32); 8] = [ + (-1, 0), + (-1, 1), + (0, 1), + (1, 1), + (1, 0), + (1, -1), + (0, -1), + (-1, -1), + ]; + let is_fg = |r: i32, c: i32| -> bool { + r >= 0 + && r < h as i32 + && c >= 0 + && c < w as i32 + && labels[r as usize * w + c as usize] == basin_id + }; + let dir_index = |dr: i32, dc: i32| -> usize { DIRS.iter().position(|&o| o == (dr, dc)).unwrap_or(0) }; + + let sr = (start / w) as i32; + let sc = (start % w) as i32; + let s = (sr, sc); + let mut boundary: Vec<(u16, u16)> = vec![(sr as u16, sc as u16)]; + let mut p = s; + // Backtrack starts west of `start`: it is the first cell in scan order, so its + // western neighbour is background. Consecutive Moore neighbours are 8-adjacent, + // so the new backtrack stays adjacent to the new boundary cell each step. + let mut b = (sr, sc - 1); + let max_steps = w * h * 8 + 16; + for _ in 0..max_steps { + let b_idx = dir_index(b.0 - p.0, b.1 - p.1); + let mut prev = b; + let mut advanced = false; + for k in 1..=8 { + let d = (b_idx + k) % 8; + let cand = (p.0 + DIRS[d].0, p.1 + DIRS[d].1); + if is_fg(cand.0, cand.1) { + if cand == s { + return boundary; // closed the loop (start already at index 0) + } + boundary.push((cand.0 as u16, cand.1 as u16)); + b = prev; + p = cand; + advanced = true; + break; + } + prev = cand; + } + if !advanced { + break; // isolated cell — no foreground neighbour + } + } + boundary +} + // --------------------------------------------------------------------------- // Tests // --------------------------------------------------------------------------- @@ -616,6 +650,33 @@ mod tests { .collect() } + #[test] + fn trace_outer_boundary_is_an_adjacent_contour() { + // Concave (L-shaped) basin (id=1) in a 4x4 grid; -1 is background. + let labels: Vec = vec![ + 1, 1, -1, -1, // + 1, 1, -1, -1, // + 1, 1, 1, 1, // + 1, 1, 1, 1, // + ]; + let boundary = trace_outer_boundary(&labels, 4, 4, 1, 0); + assert!(boundary.len() >= 8, "expected a real perimeter, got {boundary:?}"); + // The defining property the angle-sort violated: consecutive boundary + // points are 8-adjacent (a genuine contour walk, not crossing chords). + for w in boundary.windows(2) { + let dr = (w[0].0 as i32 - w[1].0 as i32).abs(); + let dc = (w[0].1 as i32 - w[1].1 as i32).abs(); + assert!( + dr <= 1 && dc <= 1 && dr + dc > 0, + "non-adjacent step {:?} -> {:?}", + w[0], + w[1] + ); + } + // Deterministic (D-010): same input → same trace. + assert_eq!(boundary, trace_outer_boundary(&labels, 4, 4, 1, 0)); + } + #[test] fn flat_grid_produces_single_basin() { let elev = flat_grid(16, 8, 0.5); diff --git a/server/src/atlas/layer1.rs b/server/src/atlas/layer1.rs index 96a3b7051..f8d91b344 100644 --- a/server/src/atlas/layer1.rs +++ b/server/src/atlas/layer1.rs @@ -32,6 +32,12 @@ pub struct Layer1Output { /// Geographic attractors (D-209) with sub-biome + cost (D-210), sorted by /// `(attractor_type, row, col)`. pub attractors: Vec, + /// Working-grid dimensions every position in this output (river cells, basin + /// boundaries, attractor positions) is expressed in — equals the downsampled + /// heightmap size. The client maps these onto the displayed heightmap (#960), + /// so the overlay scale stays correct for any source resolution (mod-safe). + pub grid_w: u32, + pub grid_h: u32, } /// Run the Layer-1 topography pipeline for a single body. @@ -60,6 +66,8 @@ pub fn run_layer1(hm: &BodyHeightmap) -> Layer1Output { river_network: drainage.river_network, drainage_basins: drainage.drainage_basins, attractors, + grid_w: hm.width, + grid_h: hm.height, } } diff --git a/server/src/atlas/layer_proxy.rs b/server/src/atlas/layer_proxy.rs index f8ef16eb4..33267c1b1 100644 --- a/server/src/atlas/layer_proxy.rs +++ b/server/src/atlas/layer_proxy.rs @@ -70,6 +70,10 @@ pub fn handle_atlas_request( river_network: state.river_network.clone(), drainage_basins: state.drainage_basins.clone(), attractors: state.attractors.clone(), + // The cascade ran on the downsampled heightmap, so its dims are the + // working grid all Layer-1 positions are expressed in (#960). + grid_w: state.heightmap_width, + grid_h: state.heightmap_height, }; return AtlasLayerResponse { body_id: req.body_id.clone(), diff --git a/server/tests/gen_fixtures.rs b/server/tests/gen_fixtures.rs index 8aadb5ac8..804c1220a 100644 --- a/server/tests/gen_fixtures.rs +++ b/server/tests/gen_fixtures.rs @@ -561,6 +561,8 @@ fn generate_atlas_layer_response_fixtures() { sub_biome: SubBiomeVariant::CoastalLowland, terrain_modification_cost: 1.7, }], + grid_w: 512, + grid_h: 256, }; let ready = AtlasLayerResponse { body_id: "GJ1c".into(), diff --git a/server/tests/golden/cascade_layer1.json b/server/tests/golden/cascade_layer1.json index 7d45e2675..99541ef19 100644 --- a/server/tests/golden/cascade_layer1.json +++ b/server/tests/golden/cascade_layer1.json @@ -2573,724 +2573,1392 @@ "basin_id": 0, "boundary": [ [ - 80, - 79 - ], - [ - 80, - 114 - ], - [ - 79, - 80 - ], - [ - 78, - 81 - ], - [ - 77, - 81 - ], - [ - 76, - 82 - ], - [ - 78, - 114 - ], - [ - 75, - 84 - ], - [ - 74, - 85 - ], - [ - 73, - 85 - ], - [ - 73, - 87 - ], - [ - 76, - 110 - ], - [ - 76, - 112 - ], - [ - 72, - 88 - ], - [ - 76, - 114 - ], - [ - 75, - 110 - ], - [ - 71, - 90 - ], - [ - 74, - 108 - ], - [ - 73, - 104 - ], - [ - 70, - 90 - ], - [ - 73, - 105 - ], - [ - 72, - 101 - ], - [ - 72, - 102 - ], - [ - 72, - 103 - ], - [ - 69, - 91 - ], - [ - 69, - 92 - ], - [ - 70, - 99 - ], - [ - 68, - 93 - ], - [ - 69, - 98 - ], - [ - 67, - 93 - ], - [ - 67, - 94 - ], - [ - 67, - 96 + 0, + 0 ], [ 0, 1 ], + [ + 0, + 2 + ], [ 0, 3 ], + [ + 0, + 4 + ], [ 0, 5 ], + [ + 0, + 6 + ], [ 0, 7 ], + [ + 0, + 8 + ], [ 0, 9 ], + [ + 0, + 10 + ], [ 0, 11 ], + [ + 0, + 12 + ], [ 0, 13 ], + [ + 0, + 14 + ], [ 0, 15 ], + [ + 0, + 16 + ], [ 0, 17 ], + [ + 0, + 18 + ], [ 0, 19 ], + [ + 0, + 20 + ], [ 0, 21 ], + [ + 0, + 22 + ], [ 0, 23 ], + [ + 0, + 24 + ], [ 0, 25 ], + [ + 0, + 26 + ], [ 0, 27 ], + [ + 0, + 28 + ], [ 0, 29 ], + [ + 0, + 30 + ], [ 0, 31 ], + [ + 0, + 32 + ], [ 0, 33 ], + [ + 0, + 34 + ], [ 0, 35 ], + [ + 0, + 36 + ], [ 0, 37 ], + [ + 0, + 38 + ], [ 0, 39 ], + [ + 0, + 40 + ], [ 0, 41 ], + [ + 0, + 42 + ], [ 0, 43 ], + [ + 0, + 44 + ], [ 0, 45 ], + [ + 0, + 46 + ], [ 0, 47 ], + [ + 0, + 48 + ], [ 0, 49 ], + [ + 0, + 50 + ], [ 0, 51 ], + [ + 0, + 52 + ], [ 0, 53 ], + [ + 0, + 54 + ], [ 0, 55 ], + [ + 0, + 56 + ], [ 0, 57 ], + [ + 0, + 58 + ], [ 0, 59 ], + [ + 0, + 60 + ], [ 0, 61 ], + [ + 0, + 62 + ], [ 0, 63 ], + [ + 0, + 64 + ], [ 0, 65 ], + [ + 0, + 66 + ], [ 0, 67 ], + [ + 0, + 68 + ], [ 0, 69 ], + [ + 0, + 70 + ], [ 0, 71 ], + [ + 0, + 72 + ], [ 0, 73 ], + [ + 0, + 74 + ], [ 0, 75 ], + [ + 0, + 76 + ], [ 0, 77 ], + [ + 0, + 78 + ], [ 0, 79 ], + [ + 0, + 80 + ], [ 0, 81 ], + [ + 0, + 82 + ], [ 0, 83 ], + [ + 0, + 84 + ], [ 0, 85 ], + [ + 0, + 86 + ], [ 0, 87 ], + [ + 0, + 88 + ], [ 0, 89 ], + [ + 0, + 90 + ], [ 0, 91 ], + [ + 0, + 92 + ], [ 0, 93 ], + [ + 0, + 94 + ], [ 0, 95 ], + [ + 0, + 96 + ], [ 0, 97 ], + [ + 0, + 98 + ], [ 0, 99 ], + [ + 0, + 100 + ], [ 0, 101 ], + [ + 0, + 102 + ], [ 0, 103 ], + [ + 0, + 104 + ], [ 0, 105 ], + [ + 0, + 106 + ], [ 0, 107 ], + [ + 0, + 108 + ], [ 0, 109 ], + [ + 0, + 110 + ], [ 0, 111 ], + [ + 0, + 112 + ], [ 0, 113 ], + [ + 0, + 114 + ], [ 0, 115 ], + [ + 0, + 116 + ], [ 0, 117 ], + [ + 0, + 118 + ], [ 0, 119 ], + [ + 0, + 120 + ], [ 0, 121 ], + [ + 0, + 122 + ], [ 0, 123 ], + [ + 0, + 124 + ], [ 0, 125 ], + [ + 0, + 126 + ], [ 0, 127 ], + [ + 0, + 128 + ], [ 0, 129 ], + [ + 0, + 130 + ], [ 0, 131 ], + [ + 0, + 132 + ], [ 0, 133 ], + [ + 0, + 134 + ], [ 0, 135 ], + [ + 0, + 136 + ], [ 0, 137 ], + [ + 0, + 138 + ], [ 0, 139 ], + [ + 0, + 140 + ], [ 0, 141 ], + [ + 0, + 142 + ], [ 0, 143 ], + [ + 0, + 144 + ], [ 0, 145 ], + [ + 0, + 146 + ], [ 0, 147 ], + [ + 0, + 148 + ], [ 0, 149 ], + [ + 0, + 150 + ], [ 0, 151 ], + [ + 0, + 152 + ], [ 0, 153 ], + [ + 0, + 154 + ], [ 0, 155 ], + [ + 0, + 156 + ], [ 0, 157 ], + [ + 0, + 158 + ], [ 0, 159 ], + [ + 0, + 160 + ], [ 0, 161 ], + [ + 0, + 162 + ], [ 0, 163 ], + [ + 0, + 164 + ], [ 0, 165 ], + [ + 0, + 166 + ], [ 0, 167 ], + [ + 0, + 168 + ], [ 0, 169 ], + [ + 0, + 170 + ], [ 0, 171 ], + [ + 0, + 172 + ], [ 0, 173 ], + [ + 0, + 174 + ], [ 0, 175 ], + [ + 0, + 176 + ], [ 0, 177 ], + [ + 0, + 178 + ], [ 0, 179 ], + [ + 0, + 180 + ], [ 0, 181 ], + [ + 0, + 182 + ], [ 0, 183 ], + [ + 0, + 184 + ], [ 0, 185 ], + [ + 0, + 186 + ], [ 0, 187 ], + [ + 0, + 188 + ], [ 0, 189 ], + [ + 0, + 190 + ], [ 0, 191 ], + [ + 0, + 192 + ], [ 0, 193 ], + [ + 0, + 194 + ], [ 0, 195 ], + [ + 0, + 196 + ], [ 0, 197 ], + [ + 0, + 198 + ], [ 0, 199 ], + [ + 0, + 200 + ], [ 0, 201 ], + [ + 0, + 202 + ], [ 0, 203 ], + [ + 0, + 204 + ], [ 0, 205 ], + [ + 0, + 206 + ], [ 0, 207 ], + [ + 0, + 208 + ], [ 0, 209 ], + [ + 0, + 210 + ], [ 0, 211 ], + [ + 0, + 212 + ], [ 0, 213 ], + [ + 0, + 214 + ], [ 0, 215 ], + [ + 0, + 216 + ], [ 0, 217 ], + [ + 0, + 218 + ], [ 0, 219 ], + [ + 0, + 220 + ], [ 0, 221 ], + [ + 0, + 222 + ], [ 0, 223 ], + [ + 0, + 224 + ], [ 0, 225 ], + [ + 0, + 226 + ], [ 0, 227 ], + [ + 0, + 228 + ], [ 0, 229 ], + [ + 0, + 230 + ], [ 0, 231 ], + [ + 0, + 232 + ], [ 0, 233 ], + [ + 0, + 234 + ], [ 0, 235 ], + [ + 0, + 236 + ], [ 0, 237 ], + [ + 0, + 238 + ], [ 0, 239 ], + [ + 0, + 240 + ], [ 0, 241 ], + [ + 0, + 242 + ], [ 0, 243 ], + [ + 0, + 244 + ], [ 0, 245 ], + [ + 0, + 246 + ], [ 0, 247 ], + [ + 0, + 248 + ], [ 0, 249 ], + [ + 0, + 250 + ], [ 0, 251 ], + [ + 0, + 252 + ], [ 0, 253 ], + [ + 0, + 254 + ], [ 0, 255 ], + [ + 1, + 255 + ], + [ + 2, + 255 + ], + [ + 3, + 255 + ], + [ + 4, + 255 + ], + [ + 5, + 255 + ], + [ + 6, + 255 + ], + [ + 7, + 255 + ], + [ + 8, + 255 + ], + [ + 9, + 255 + ], + [ + 10, + 255 + ], + [ + 11, + 255 + ], + [ + 12, + 255 + ], + [ + 13, + 255 + ], + [ + 14, + 255 + ], + [ + 15, + 255 + ], + [ + 16, + 255 + ], + [ + 17, + 255 + ], + [ + 18, + 255 + ], + [ + 19, + 255 + ], + [ + 20, + 255 + ], + [ + 21, + 255 + ], + [ + 22, + 255 + ], + [ + 23, + 255 + ], + [ + 24, + 255 + ], + [ + 25, + 255 + ], + [ + 26, + 255 + ], + [ + 27, + 255 + ], + [ + 28, + 255 + ], + [ + 29, + 255 + ], + [ + 30, + 255 + ], + [ + 31, + 255 + ], + [ + 32, + 255 + ], + [ + 33, + 255 + ], + [ + 34, + 255 + ], + [ + 35, + 255 + ], + [ + 36, + 255 + ], + [ + 37, + 255 + ], + [ + 38, + 255 + ], + [ + 39, + 255 + ], + [ + 40, + 255 + ], + [ + 41, + 255 + ], + [ + 42, + 255 + ], + [ + 43, + 255 + ], + [ + 44, + 255 + ], + [ + 45, + 255 + ], + [ + 46, + 255 + ], + [ + 47, + 255 + ], + [ + 48, + 255 + ], + [ + 49, + 255 + ], + [ + 50, + 255 + ], + [ + 51, + 255 + ], + [ + 52, + 255 + ], + [ + 53, + 255 + ], + [ + 54, + 255 + ], + [ + 55, + 255 + ], + [ + 56, + 255 + ], + [ + 57, + 255 + ], + [ + 58, + 255 + ], + [ + 59, + 255 + ], + [ + 60, + 255 + ], + [ + 61, + 255 + ], + [ + 62, + 255 + ], + [ + 63, + 255 + ], + [ + 64, + 255 + ], + [ + 65, + 255 + ], + [ + 66, + 255 + ], + [ + 67, + 255 + ], + [ + 68, + 255 + ], + [ + 69, + 255 + ], + [ + 70, + 255 + ], + [ + 71, + 255 + ], + [ + 72, + 255 + ], + [ + 73, + 255 + ], + [ + 74, + 255 + ], + [ + 75, + 255 + ], + [ + 76, + 255 + ], + [ + 77, + 255 + ], + [ + 78, + 255 + ], + [ + 79, + 255 + ], + [ + 80, + 255 + ], + [ + 81, + 255 + ], [ 82, - 198 + 255 ], [ 83, - 201 - ], - [ - 83, - 199 - ], - [ - 83, - 196 - ], - [ - 83, - 185 - ], - [ - 83, - 184 - ], - [ - 83, - 183 - ], - [ - 83, - 181 + 255 ], [ 84, - 195 + 255 ], [ 85, - 203 - ], - [ - 84, - 188 - ], - [ - 84, - 186 + 255 ], [ 86, - 209 + 255 ], [ - 86, - 207 + 87, + 255 ], [ - 86, - 206 + 88, + 255 ], [ - 86, - 205 + 89, + 255 ], [ - 86, - 204 + 90, + 255 ], [ - 86, - 203 - ], - [ - 85, - 191 - ], - [ - 84, - 179 + 91, + 255 ], [ 91, @@ -3304,14 +3972,6 @@ 91, 252 ], - [ - 87, - 209 - ], - [ - 91, - 243 - ], [ 92, 251 @@ -3329,17 +3989,37 @@ 248 ], [ - 88, - 210 + 92, + 247 + ], + [ + 92, + 246 ], [ 92, 245 ], + [ + 92, + 244 + ], [ 92, 243 ], + [ + 91, + 242 + ], + [ + 91, + 241 + ], + [ + 92, + 240 + ], [ 92, 239 @@ -3352,10 +4032,6 @@ 92, 237 ], - [ - 89, - 211 - ], [ 93, 236 @@ -3365,33 +4041,17 @@ 235 ], [ - 93, + 94, 234 ], [ - 97, - 255 - ], - [ - 91, - 213 + 94, + 233 ], [ 94, 232 ], - [ - 94, - 231 - ], - [ - 98, - 255 - ], - [ - 92, - 215 - ], [ 95, 231 @@ -3401,56 +4061,28 @@ 230 ], [ - 93, - 217 - ], - [ - 99, - 253 - ], - [ - 93, - 216 - ], - [ - 93, - 215 - ], - [ - 100, - 253 - ], - [ - 87, - 177 - ], - [ - 101, - 253 + 95, + 229 ], [ 95, - 218 + 228 ], [ - 102, - 253 - ], - [ - 103, - 255 + 95, + 227 ], [ 96, - 218 + 226 ], [ - 104, - 255 + 97, + 226 ], [ - 88, - 176 + 98, + 226 ], [ 99, @@ -3460,125 +4092,153 @@ 100, 226 ], - [ - 100, - 225 - ], [ 101, 225 ], - [ - 99, - 215 - ], [ 102, 225 ], - [ - 100, - 215 - ], [ 103, - 224 + 225 ], [ 104, 224 ], [ - 90, - 174 - ], - [ - 102, - 214 - ], - [ - 90, - 173 - ], - [ - 103, - 214 - ], - [ - 104, - 214 - ], - [ - 118, - 255 - ], - [ - 107, - 221 - ], - [ - 119, - 255 - ], - [ - 91, - 172 - ], - [ - 108, - 220 + 105, + 223 ], [ 106, - 214 + 222 ], [ - 91, - 171 + 107, + 222 ], [ - 121, - 253 + 108, + 221 ], [ - 121, - 252 - ], - [ - 91, - 170 - ], - [ - 122, - 252 + 109, + 220 ], [ 110, 219 ], [ - 123, - 252 + 111, + 219 + ], + [ + 112, + 220 + ], + [ + 112, + 221 + ], + [ + 113, + 222 + ], + [ + 113, + 223 + ], + [ + 114, + 224 + ], + [ + 114, + 225 + ], + [ + 115, + 226 + ], + [ + 115, + 227 + ], + [ + 116, + 228 + ], + [ + 116, + 229 + ], + [ + 117, + 230 + ], + [ + 118, + 231 + ], + [ + 118, + 232 + ], + [ + 118, + 233 + ], + [ + 119, + 234 + ], + [ + 120, + 235 + ], + [ + 121, + 236 ], [ 122, - 249 - ], - [ - 123, - 251 - ], - [ - 123, - 250 + 237 ], [ 122, - 247 + 238 ], [ - 110, - 216 + 123, + 239 + ], + [ + 123, + 240 + ], + [ + 123, + 241 + ], + [ + 123, + 242 + ], + [ + 122, + 243 + ], + [ + 122, + 244 + ], + [ + 122, + 245 ], [ 122, @@ -3586,115 +4246,111 @@ ], [ 122, - 245 + 247 ], [ - 112, - 220 + 122, + 248 ], [ - 115, - 227 + 122, + 249 ], [ - 92, - 170 - ], - [ - 116, - 229 - ], - [ - 112, - 219 - ], - [ - 113, - 221 - ], - [ - 111, - 216 - ], - [ - 118, - 233 - ], - [ - 114, - 223 - ], - [ - 115, - 225 - ], - [ - 118, - 232 - ], - [ - 119, - 234 - ], - [ - 117, - 229 + 122, + 250 ], [ 123, - 243 + 251 + ], + [ + 122, + 252 + ], + [ + 121, + 252 + ], + [ + 120, + 253 ], [ 119, - 233 - ], - [ - 120, - 235 - ], - [ - 112, - 216 + 254 ], [ 118, - 230 + 255 + ], + [ + 119, + 255 ], [ 120, - 234 + 255 + ], + [ + 121, + 255 + ], + [ + 122, + 255 + ], + [ + 123, + 255 + ], + [ + 124, + 255 + ], + [ + 125, + 255 + ], + [ + 126, + 255 + ], + [ + 127, + 255 + ], + [ + 127, + 254 + ], + [ + 127, + 253 + ], + [ + 127, + 252 + ], + [ + 127, + 251 ], [ 127, 250 ], - [ - 122, - 238 - ], [ 127, 249 ], - [ - 92, - 168 - ], - [ - 123, - 239 - ], [ 127, 248 ], [ - 123, - 238 - ], - [ - 113, - 215 + 127, + 247 ], [ 127, @@ -3721,36 +4377,40 @@ 241 ], [ - 92, - 166 + 127, + 240 ], [ - 115, - 214 + 127, + 239 ], [ 127, 238 ], [ - 90, - 161 + 127, + 237 ], [ - 92, - 165 + 127, + 236 ], [ - 116, - 213 + 127, + 235 ], [ 127, 234 ], [ - 117, - 213 + 127, + 233 + ], + [ + 127, + 232 ], [ 127, @@ -3760,17 +4420,21 @@ 127, 230 ], + [ + 127, + 229 + ], [ 127, 228 ], [ - 91, - 161 + 127, + 227 ], [ - 119, - 212 + 127, + 226 ], [ 127, @@ -3789,20 +4453,24 @@ 222 ], [ - 121, - 210 + 127, + 221 ], [ 127, 220 ], [ - 121, - 209 + 127, + 219 ], [ - 122, - 209 + 127, + 218 + ], + [ + 127, + 217 ], [ 127, @@ -3817,8 +4485,8 @@ 214 ], [ - 123, - 207 + 127, + 213 ], [ 127, @@ -3833,45 +4501,41 @@ 210 ], [ - 124, + 127, + 209 + ], + [ + 127, + 208 + ], + [ + 127, + 207 + ], + [ + 127, + 206 + ], + [ + 127, 205 ], [ - 124, + 127, 204 ], [ - 124, + 127, 203 ], [ - 124, + 127, 202 ], [ - 124, + 127, 201 ], - [ - 94, - 160 - ], - [ - 125, - 201 - ], - [ - 125, - 200 - ], - [ - 125, - 199 - ], - [ - 95, - 160 - ], [ 127, 200 @@ -3888,322 +4552,974 @@ 127, 197 ], + [ + 127, + 196 + ], + [ + 126, + 197 + ], + [ + 126, + 198 + ], + [ + 125, + 199 + ], + [ + 125, + 200 + ], + [ + 124, + 201 + ], + [ + 124, + 202 + ], + [ + 124, + 203 + ], + [ + 124, + 204 + ], + [ + 124, + 205 + ], + [ + 124, + 206 + ], + [ + 123, + 207 + ], + [ + 122, + 208 + ], + [ + 121, + 209 + ], + [ + 120, + 210 + ], + [ + 120, + 211 + ], + [ + 119, + 212 + ], + [ + 118, + 213 + ], + [ + 117, + 213 + ], + [ + 116, + 213 + ], + [ + 115, + 214 + ], + [ + 114, + 214 + ], + [ + 113, + 215 + ], + [ + 112, + 216 + ], + [ + 111, + 216 + ], + [ + 110, + 215 + ], + [ + 109, + 214 + ], + [ + 108, + 213 + ], + [ + 107, + 213 + ], + [ + 106, + 214 + ], + [ + 105, + 214 + ], + [ + 104, + 214 + ], + [ + 103, + 214 + ], + [ + 102, + 214 + ], + [ + 101, + 215 + ], + [ + 100, + 215 + ], + [ + 99, + 215 + ], + [ + 98, + 216 + ], + [ + 97, + 217 + ], + [ + 96, + 218 + ], + [ + 95, + 218 + ], + [ + 94, + 218 + ], + [ + 93, + 217 + ], + [ + 93, + 216 + ], + [ + 93, + 215 + ], + [ + 92, + 214 + ], + [ + 91, + 213 + ], + [ + 90, + 212 + ], + [ + 89, + 211 + ], + [ + 88, + 210 + ], + [ + 87, + 209 + ], + [ + 86, + 208 + ], + [ + 86, + 207 + ], + [ + 86, + 206 + ], + [ + 86, + 205 + ], + [ + 86, + 204 + ], + [ + 86, + 203 + ], + [ + 85, + 202 + ], + [ + 84, + 201 + ], + [ + 83, + 200 + ], + [ + 83, + 199 + ], + [ + 82, + 198 + ], + [ + 83, + 197 + ], + [ + 83, + 196 + ], + [ + 84, + 195 + ], + [ + 85, + 194 + ], + [ + 85, + 193 + ], + [ + 85, + 192 + ], + [ + 85, + 191 + ], + [ + 85, + 190 + ], + [ + 85, + 189 + ], + [ + 85, + 188 + ], + [ + 84, + 187 + ], + [ + 84, + 186 + ], + [ + 84, + 185 + ], + [ + 83, + 184 + ], + [ + 83, + 183 + ], + [ + 83, + 182 + ], + [ + 83, + 181 + ], + [ + 84, + 180 + ], + [ + 85, + 179 + ], + [ + 86, + 178 + ], + [ + 87, + 177 + ], + [ + 88, + 176 + ], + [ + 89, + 175 + ], + [ + 90, + 174 + ], + [ + 91, + 173 + ], + [ + 91, + 172 + ], + [ + 91, + 171 + ], + [ + 92, + 170 + ], + [ + 92, + 169 + ], + [ + 92, + 168 + ], + [ + 92, + 167 + ], + [ + 92, + 166 + ], + [ + 92, + 165 + ], + [ + 91, + 164 + ], + [ + 90, + 163 + ], + [ + 90, + 162 + ], + [ + 91, + 161 + ], + [ + 92, + 161 + ], + [ + 93, + 161 + ], + [ + 94, + 160 + ], + [ + 95, + 160 + ], [ 96, 159 ], [ 96, - 157 - ], - [ - 117, - 177 - ], - [ - 115, - 175 - ], - [ - 113, - 173 - ], - [ - 118, - 177 - ], - [ - 116, - 175 - ], - [ - 114, - 173 - ], - [ - 112, - 171 - ], - [ - 120, - 178 - ], - [ - 112, - 170 - ], - [ - 121, - 177 - ], - [ - 112, - 169 - ], - [ - 110, - 167 - ], - [ - 122, - 177 - ], - [ - 107, - 164 - ], - [ - 123, - 177 - ], - [ - 110, - 166 - ], - [ - 124, - 177 + 158 ], [ 97, - 155 + 157 ], [ - 125, - 177 - ], - [ - 99, + 97, 156 ], [ 98, 155 ], - [ - 127, - 176 - ], - [ - 107, - 161 - ], [ 99, - 155 + 156 ], [ - 102, - 157 + 100, + 156 ], [ 101, 156 ], [ - 107, - 160 + 102, + 157 ], [ - 106, - 159 - ], - [ - 105, + 103, 158 ], - [ - 107, - 159 - ], [ 104, 157 ], [ 105, - 157 + 158 + ], + [ + 105, + 159 + ], + [ + 106, + 159 + ], + [ + 107, + 160 + ], + [ + 107, + 161 + ], + [ + 107, + 162 + ], + [ + 107, + 163 + ], + [ + 107, + 164 + ], + [ + 108, + 165 + ], + [ + 109, + 166 + ], + [ + 110, + 167 + ], + [ + 111, + 168 + ], + [ + 112, + 169 + ], + [ + 112, + 170 + ], + [ + 112, + 171 + ], + [ + 113, + 172 + ], + [ + 113, + 173 + ], + [ + 114, + 174 + ], + [ + 115, + 175 + ], + [ + 116, + 176 + ], + [ + 117, + 177 + ], + [ + 118, + 178 + ], + [ + 119, + 178 + ], + [ + 120, + 178 + ], + [ + 121, + 178 + ], + [ + 122, + 177 + ], + [ + 123, + 177 + ], + [ + 124, + 177 + ], + [ + 125, + 177 + ], + [ + 126, + 177 + ], + [ + 127, + 177 + ], + [ + 127, + 176 + ], + [ + 127, + 175 + ], + [ + 127, + 174 + ], + [ + 127, + 173 + ], + [ + 127, + 172 + ], + [ + 127, + 171 + ], + [ + 127, + 170 ], [ 127, 169 ], + [ + 127, + 168 + ], [ 127, 167 ], + [ + 127, + 166 + ], [ 127, 165 ], + [ + 127, + 164 + ], [ 127, 163 ], + [ + 127, + 162 + ], [ 127, 161 ], + [ + 127, + 160 + ], [ 127, 159 ], + [ + 127, + 158 + ], [ 127, 157 ], + [ + 127, + 156 + ], [ 127, 155 ], + [ + 127, + 154 + ], [ 127, 153 ], + [ + 127, + 152 + ], [ 127, 151 ], + [ + 127, + 150 + ], [ 127, 149 ], + [ + 127, + 148 + ], [ 127, 147 ], + [ + 127, + 146 + ], [ 127, 145 ], + [ + 127, + 144 + ], [ 127, 143 ], + [ + 127, + 142 + ], [ 127, 141 ], + [ + 127, + 140 + ], [ 127, 139 ], + [ + 127, + 138 + ], [ 127, 137 ], + [ + 127, + 136 + ], [ 127, 135 ], + [ + 127, + 134 + ], [ 127, 133 ], + [ + 127, + 132 + ], [ 127, 131 ], + [ + 127, + 130 + ], [ 127, 129 ], + [ + 127, + 128 + ], [ 127, 127 ], + [ + 127, + 126 + ], [ 127, 125 ], + [ + 127, + 124 + ], [ 127, 123 ], + [ + 127, + 122 + ], [ 127, 121 ], + [ + 127, + 120 + ], [ 127, 119 ], + [ + 127, + 118 + ], [ 127, 117 ], + [ + 127, + 116 + ], [ 127, 115 ], + [ + 127, + 114 + ], [ 127, 113 ], + [ + 127, + 112 + ], [ 127, 111 ], + [ + 127, + 110 + ], [ 127, 109 ], + [ + 127, + 108 + ], [ 127, 107 ], + [ + 127, + 106 + ], [ 127, 105 ], + [ + 127, + 104 + ], [ 127, 103 ], + [ + 127, + 102 + ], [ 127, 101 ], + [ + 127, + 100 + ], [ 127, 99 ], + [ + 127, + 98 + ], [ 127, 97 ], + [ + 127, + 96 + ], [ 127, 95 ], + [ + 127, + 94 + ], [ 127, 93 ], + [ + 127, + 92 + ], [ 127, 91 ], + [ + 127, + 90 + ], [ 127, 89 ], + [ + 127, + 88 + ], [ 127, 87 ], + [ + 127, + 86 + ], [ 127, 85 ], + [ + 127, + 84 + ], [ 127, 83 ], + [ + 127, + 82 + ], [ 127, 81 ], + [ + 127, + 80 + ], [ 127, 79 @@ -4217,37 +5533,25 @@ 77 ], [ - 101, - 113 - ], - [ - 98, - 117 + 127, + 76 ], [ 127, 75 ], - [ - 99, - 115 - ], [ 127, 74 ], [ - 98, - 116 + 127, + 73 ], [ 127, 72 ], - [ - 97, - 117 - ], [ 127, 71 @@ -4276,17 +5580,25 @@ 127, 65 ], + [ + 127, + 64 + ], [ 127, 63 ], [ - 100, - 108 + 127, + 62 ], [ - 93, - 120 + 127, + 61 + ], + [ + 127, + 60 ], [ 127, @@ -4297,24 +5609,32 @@ 58 ], [ - 100, - 106 + 127, + 57 + ], + [ + 127, + 56 ], [ 127, 55 ], [ - 100, - 105 + 127, + 54 ], [ 127, 53 ], [ - 100, - 104 + 127, + 52 + ], + [ + 127, + 51 ], [ 127, @@ -4324,6 +5644,10 @@ 127, 49 ], + [ + 127, + 48 + ], [ 127, 47 @@ -4333,69 +5657,101 @@ 46 ], [ - 99, - 103 + 127, + 45 + ], + [ + 127, + 44 ], [ 127, 43 ], [ - 99, - 102 + 127, + 42 ], [ - 91, - 119 + 127, + 41 + ], + [ + 127, + 40 ], [ 127, 39 ], + [ + 127, + 38 + ], [ 127, 37 ], [ - 91, - 118 + 127, + 36 ], [ 127, 35 ], [ - 98, - 101 + 127, + 34 + ], + [ + 127, + 33 ], [ 127, 32 ], [ - 98, - 100 + 127, + 31 + ], + [ + 127, + 30 ], [ 127, 29 ], [ - 98, - 99 + 127, + 28 + ], + [ + 127, + 27 ], [ 127, 26 ], [ - 90, - 118 + 127, + 25 + ], + [ + 127, + 24 ], [ 127, 23 ], + [ + 127, + 22 + ], [ 127, 21 @@ -4412,6 +5768,10 @@ 127, 18 ], + [ + 127, + 17 + ], [ 127, 16 @@ -4420,18 +5780,34 @@ 127, 15 ], + [ + 127, + 14 + ], [ 127, 13 ], + [ + 127, + 12 + ], [ 127, 11 ], + [ + 127, + 10 + ], [ 127, 9 ], + [ + 127, + 8 + ], [ 127, 7 @@ -4445,40 +5821,68 @@ 5 ], [ - 96, - 96 + 127, + 4 + ], + [ + 127, + 3 ], [ 127, 2 ], [ - 96, - 95 + 127, + 1 ], [ - 96, - 94 + 127, + 0 ], [ - 96, - 92 + 126, + 0 ], [ - 88, - 117 + 125, + 0 ], [ - 95, - 90 + 124, + 0 + ], + [ + 123, + 0 + ], + [ + 122, + 0 + ], + [ + 121, + 0 + ], + [ + 120, + 0 + ], + [ + 119, + 0 ], [ 118, - 5 + 0 ], [ 118, - 4 + 1 + ], + [ + 118, + 2 ], [ 118, @@ -4486,11 +5890,15 @@ ], [ 118, - 2 + 4 ], [ - 116, - 8 + 118, + 5 + ], + [ + 117, + 6 ], [ 116, @@ -4506,100 +5914,76 @@ ], [ 113, - 8 - ], - [ - 112, 7 ], [ - 93, - 88 - ], - [ - 111, + 112, 6 ], [ - 86, - 117 + 111, + 5 ], [ 110, 4 ], - [ - 93, - 82 - ], [ 109, 3 ], - [ - 93, - 81 - ], [ 108, 3 ], - [ - 92, - 82 - ], [ 107, 2 ], [ - 91, - 86 - ], - [ - 91, - 85 + 107, + 1 ], [ 106, 1 ], - [ - 85, - 117 - ], [ 105, - 1 + 0 ], [ - 91, - 79 + 104, + 0 ], [ - 91, - 78 + 103, + 0 ], [ - 90, - 77 + 102, + 0 ], [ - 84, - 116 + 101, + 0 ], [ - 89, - 76 + 100, + 0 + ], + [ + 99, + 0 + ], + [ + 98, + 0 ], [ 97, 0 ], - [ - 96, - 1 - ], [ 96, 0 @@ -4612,25 +5996,21 @@ 94, 2 ], - [ - 83, - 116 - ], - [ - 83, - 115 - ], [ 93, 3 ], [ - 86, - 73 + 92, + 4 + ], + [ + 91, + 4 ], [ 90, - 4 + 3 ], [ 90, @@ -4638,31 +6018,367 @@ ], [ 90, + 1 + ], + [ + 90, + 0 + ], + [ + 89, + 0 + ], + [ + 88, + 0 + ], + [ + 87, + 0 + ], + [ + 86, + 0 + ], + [ + 85, + 0 + ], + [ + 84, + 0 + ], + [ + 83, 0 ], [ 82, - 115 - ], - [ - 83, - 73 - ], - [ - 82, - 75 - ], - [ - 82, - 73 + 0 ], [ 81, - 79 + 0 ], [ - 81, - 77 + 80, + 0 + ], + [ + 79, + 0 + ], + [ + 78, + 0 + ], + [ + 77, + 0 + ], + [ + 76, + 0 + ], + [ + 75, + 0 + ], + [ + 74, + 0 + ], + [ + 73, + 0 + ], + [ + 72, + 0 + ], + [ + 71, + 0 + ], + [ + 70, + 0 + ], + [ + 69, + 0 + ], + [ + 68, + 0 + ], + [ + 67, + 0 + ], + [ + 66, + 0 + ], + [ + 65, + 0 + ], + [ + 64, + 0 + ], + [ + 63, + 0 + ], + [ + 62, + 0 + ], + [ + 61, + 0 + ], + [ + 60, + 0 + ], + [ + 59, + 0 + ], + [ + 58, + 0 + ], + [ + 57, + 0 + ], + [ + 56, + 0 + ], + [ + 55, + 0 + ], + [ + 54, + 0 + ], + [ + 53, + 0 + ], + [ + 52, + 0 + ], + [ + 51, + 0 + ], + [ + 50, + 0 + ], + [ + 49, + 0 + ], + [ + 48, + 0 + ], + [ + 47, + 0 + ], + [ + 46, + 0 + ], + [ + 45, + 0 + ], + [ + 44, + 0 + ], + [ + 43, + 0 + ], + [ + 42, + 0 + ], + [ + 41, + 0 + ], + [ + 40, + 0 + ], + [ + 39, + 0 + ], + [ + 38, + 0 + ], + [ + 37, + 0 + ], + [ + 36, + 0 + ], + [ + 35, + 0 + ], + [ + 34, + 0 + ], + [ + 33, + 0 + ], + [ + 32, + 0 + ], + [ + 31, + 0 + ], + [ + 30, + 0 + ], + [ + 29, + 0 + ], + [ + 28, + 0 + ], + [ + 27, + 0 + ], + [ + 26, + 0 + ], + [ + 25, + 0 + ], + [ + 24, + 0 + ], + [ + 23, + 0 + ], + [ + 22, + 0 + ], + [ + 21, + 0 + ], + [ + 20, + 0 + ], + [ + 19, + 0 + ], + [ + 18, + 0 + ], + [ + 17, + 0 + ], + [ + 16, + 0 + ], + [ + 15, + 0 + ], + [ + 14, + 0 + ], + [ + 13, + 0 + ], + [ + 12, + 0 + ], + [ + 11, + 0 + ], + [ + 10, + 0 + ], + [ + 9, + 0 + ], + [ + 8, + 0 + ], + [ + 7, + 0 + ], + [ + 6, + 0 + ], + [ + 5, + 0 + ], + [ + 4, + 0 + ], + [ + 3, + 0 + ], + [ + 2, + 0 + ], + [ + 1, + 0 ] ] }, @@ -4670,178 +6386,18 @@ "area_pct": 0.02642822265625, "basin_id": 1, "boundary": [ - [ - 85, - 74 - ], - [ - 84, - 74 - ], - [ - 83, - 74 - ], - [ - 83, - 75 - ], - [ - 83, - 76 - ], - [ - 83, - 77 - ], - [ - 82, - 77 - ], - [ - 82, - 78 - ], - [ - 82, - 79 - ], - [ - 82, - 80 - ], - [ - 81, - 80 - ], - [ - 81, - 81 - ], - [ - 80, - 81 - ], - [ - 79, - 81 - ], - [ - 79, - 82 - ], - [ - 78, - 82 - ], - [ - 78, - 83 - ], - [ - 77, - 83 - ], - [ - 77, - 84 - ], - [ - 76, - 84 - ], - [ - 76, - 85 - ], - [ - 75, - 85 - ], - [ - 75, - 86 - ], - [ - 74, - 86 - ], - [ - 74, - 87 - ], - [ - 74, - 88 - ], - [ - 74, - 89 - ], - [ - 73, - 89 - ], - [ - 73, - 90 - ], - [ - 72, - 90 - ], - [ - 72, - 91 - ], - [ - 71, - 91 - ], - [ - 71, - 92 - ], - [ - 70, - 92 - ], - [ - 70, - 93 - ], - [ - 69, - 93 - ], - [ - 69, - 94 - ], [ 68, 94 ], - [ - 69, - 95 - ], [ 68, 95 ], - [ - 70, - 96 - ], [ 69, 96 ], - [ - 71, - 97 - ], [ 70, 97 @@ -4852,14 +6408,6 @@ ], [ 72, - 98 - ], - [ - 72, - 99 - ], - [ - 73, 99 ], [ @@ -4874,10 +6422,6 @@ 73, 102 ], - [ - 74, - 102 - ], [ 74, 103 @@ -4894,10 +6438,6 @@ 74, 106 ], - [ - 75, - 106 - ], [ 75, 107 @@ -4908,14 +6448,6 @@ ], [ 76, - 108 - ], - [ - 76, - 109 - ], - [ - 77, 109 ], [ @@ -4946,10 +6478,6 @@ 80, 113 ], - [ - 81, - 113 - ], [ 81, 114 @@ -4964,14 +6492,6 @@ ], [ 84, - 114 - ], - [ - 84, - 115 - ], - [ - 85, 115 ], [ @@ -5002,74 +6522,38 @@ 91, 117 ], - [ - 91, - 116 - ], [ 92, 118 ], - [ - 92, - 117 - ], [ 93, 119 ], - [ - 93, - 118 - ], [ 94, 119 ], - [ - 94, - 118 - ], [ 95, 118 ], - [ - 95, - 117 - ], [ 96, 117 ], - [ - 96, - 116 - ], [ 97, 116 ], - [ - 97, - 115 - ], [ 98, 115 ], - [ - 98, - 114 - ], [ 99, 114 ], - [ - 99, - 113 - ], [ 100, 113 @@ -5086,10 +6570,6 @@ 100, 110 ], - [ - 99, - 109 - ], [ 100, 109 @@ -5106,10 +6586,6 @@ 99, 106 ], - [ - 98, - 105 - ], [ 99, 105 @@ -5118,10 +6594,6 @@ 98, 104 ], - [ - 97, - 103 - ], [ 98, 103 @@ -5134,10 +6606,6 @@ 97, 101 ], - [ - 96, - 100 - ], [ 97, 100 @@ -5146,10 +6614,6 @@ 96, 99 ], - [ - 95, - 98 - ], [ 96, 98 @@ -5184,78 +6648,46 @@ ], [ 94, - 91 - ], - [ - 94, - 90 - ], - [ - 93, 90 ], [ 93, 89 ], - [ - 92, - 89 - ], [ 92, 88 ], [ 91, - 88 - ], - [ - 91, - 87 - ], - [ - 90, 87 ], [ 90, 86 ], - [ - 92, - 81 - ], [ 90, 85 ], - [ - 91, - 82 - ], [ 90, 84 ], - [ - 91, - 81 - ], [ 90, 83 ], [ 91, - 80 - ], - [ - 90, 82 ], [ - 90, + 92, + 81 + ], + [ + 91, 80 ], [ @@ -5264,14 +6696,6 @@ ], [ 89, - 79 - ], - [ - 89, - 78 - ], - [ - 88, 78 ], [ @@ -5284,19 +6708,103 @@ ], [ 87, - 76 - ], - [ - 87, - 75 - ], - [ - 86, 75 ], [ 86, 74 + ], + [ + 85, + 74 + ], + [ + 84, + 74 + ], + [ + 83, + 74 + ], + [ + 83, + 75 + ], + [ + 83, + 76 + ], + [ + 82, + 77 + ], + [ + 82, + 78 + ], + [ + 82, + 79 + ], + [ + 81, + 80 + ], + [ + 80, + 81 + ], + [ + 79, + 81 + ], + [ + 78, + 82 + ], + [ + 77, + 83 + ], + [ + 76, + 84 + ], + [ + 75, + 85 + ], + [ + 74, + 86 + ], + [ + 74, + 87 + ], + [ + 74, + 88 + ], + [ + 73, + 89 + ], + [ + 72, + 90 + ], + [ + 71, + 91 + ], + [ + 70, + 92 + ], + [ + 69, + 93 ] ] }, @@ -5304,6 +6812,442 @@ "area_pct": 0.05499267578125, "basin_id": 2, "boundary": [ + [ + 83, + 198 + ], + [ + 84, + 199 + ], + [ + 84, + 200 + ], + [ + 85, + 201 + ], + [ + 86, + 202 + ], + [ + 87, + 203 + ], + [ + 87, + 204 + ], + [ + 87, + 205 + ], + [ + 87, + 206 + ], + [ + 87, + 207 + ], + [ + 87, + 208 + ], + [ + 88, + 209 + ], + [ + 89, + 210 + ], + [ + 90, + 211 + ], + [ + 91, + 212 + ], + [ + 92, + 213 + ], + [ + 93, + 214 + ], + [ + 94, + 215 + ], + [ + 94, + 216 + ], + [ + 94, + 217 + ], + [ + 95, + 217 + ], + [ + 96, + 217 + ], + [ + 97, + 216 + ], + [ + 98, + 215 + ], + [ + 99, + 214 + ], + [ + 100, + 214 + ], + [ + 101, + 214 + ], + [ + 102, + 213 + ], + [ + 103, + 213 + ], + [ + 104, + 213 + ], + [ + 105, + 213 + ], + [ + 106, + 213 + ], + [ + 107, + 212 + ], + [ + 108, + 212 + ], + [ + 109, + 213 + ], + [ + 110, + 214 + ], + [ + 111, + 215 + ], + [ + 112, + 215 + ], + [ + 113, + 214 + ], + [ + 114, + 213 + ], + [ + 115, + 213 + ], + [ + 116, + 212 + ], + [ + 117, + 212 + ], + [ + 118, + 212 + ], + [ + 119, + 211 + ], + [ + 119, + 210 + ], + [ + 120, + 209 + ], + [ + 121, + 208 + ], + [ + 122, + 207 + ], + [ + 123, + 206 + ], + [ + 123, + 205 + ], + [ + 123, + 204 + ], + [ + 123, + 203 + ], + [ + 123, + 202 + ], + [ + 123, + 201 + ], + [ + 124, + 200 + ], + [ + 124, + 199 + ], + [ + 125, + 198 + ], + [ + 125, + 197 + ], + [ + 126, + 196 + ], + [ + 127, + 195 + ], + [ + 127, + 194 + ], + [ + 127, + 193 + ], + [ + 127, + 192 + ], + [ + 127, + 191 + ], + [ + 127, + 190 + ], + [ + 127, + 189 + ], + [ + 127, + 188 + ], + [ + 127, + 187 + ], + [ + 127, + 186 + ], + [ + 127, + 185 + ], + [ + 127, + 184 + ], + [ + 127, + 183 + ], + [ + 127, + 182 + ], + [ + 127, + 181 + ], + [ + 127, + 180 + ], + [ + 127, + 179 + ], + [ + 127, + 178 + ], + [ + 126, + 178 + ], + [ + 125, + 178 + ], + [ + 124, + 178 + ], + [ + 123, + 178 + ], + [ + 122, + 178 + ], + [ + 121, + 179 + ], + [ + 120, + 179 + ], + [ + 119, + 179 + ], + [ + 118, + 179 + ], + [ + 117, + 178 + ], + [ + 116, + 177 + ], + [ + 115, + 176 + ], + [ + 114, + 175 + ], + [ + 113, + 174 + ], + [ + 112, + 173 + ], + [ + 112, + 172 + ], + [ + 111, + 171 + ], + [ + 111, + 170 + ], + [ + 111, + 169 + ], + [ + 110, + 168 + ], + [ + 109, + 167 + ], + [ + 108, + 166 + ], + [ + 107, + 165 + ], + [ + 106, + 164 + ], + [ + 106, + 163 + ], + [ + 106, + 162 + ], + [ + 106, + 161 + ], + [ + 106, + 160 + ], + [ + 105, + 160 + ], + [ + 104, + 159 + ], + [ + 104, + 158 + ], [ 103, 159 @@ -5312,18 +7256,10 @@ 102, 158 ], - [ - 102, - 159 - ], [ 101, 157 ], - [ - 101, - 158 - ], [ 100, 157 @@ -5340,10 +7276,6 @@ 98, 157 ], - [ - 98, - 158 - ], [ 97, 158 @@ -5352,18 +7284,10 @@ 97, 159 ], - [ - 97, - 160 - ], [ 96, 160 ], - [ - 96, - 161 - ], [ 95, 161 @@ -5372,46 +7296,34 @@ 94, 161 ], - [ - 94, - 162 - ], [ 93, 162 ], - [ - 93, - 164 - ], [ 92, 162 ], + [ + 91, + 162 + ], + [ + 91, + 163 + ], + [ + 92, + 164 + ], [ 93, 165 ], - [ - 92, - 163 - ], [ 93, 166 ], - [ - 92, - 164 - ], - [ - 91, - 162 - ], - [ - 91, - 163 - ], [ 93, 167 @@ -5428,10 +7340,6 @@ 93, 170 ], - [ - 93, - 171 - ], [ 92, 171 @@ -5444,66 +7352,34 @@ 92, 173 ], - [ - 92, - 174 - ], [ 91, 174 ], - [ - 91, - 175 - ], [ 90, 175 ], - [ - 90, - 176 - ], [ 89, 176 ], - [ - 89, - 177 - ], [ 88, 177 ], - [ - 88, - 178 - ], [ 87, 178 ], - [ - 87, - 179 - ], [ 86, 179 ], - [ - 86, - 180 - ], [ 85, 180 ], - [ - 85, - 181 - ], [ 84, 181 @@ -5516,10 +7392,6 @@ 84, 183 ], - [ - 85, - 184 - ], [ 84, 184 @@ -5532,10 +7404,6 @@ 85, 186 ], - [ - 86, - 187 - ], [ 85, 187 @@ -5572,637 +7440,13 @@ 85, 195 ], - [ - 86, - 195 - ], [ 84, 196 ], - [ - 85, - 196 - ], [ 84, 197 - ], - [ - 83, - 198 - ], - [ - 84, - 198 - ], - [ - 84, - 199 - ], - [ - 84, - 200 - ], - [ - 85, - 200 - ], - [ - 85, - 201 - ], - [ - 86, - 201 - ], - [ - 86, - 202 - ], - [ - 87, - 202 - ], - [ - 87, - 203 - ], - [ - 87, - 204 - ], - [ - 87, - 205 - ], - [ - 87, - 206 - ], - [ - 87, - 207 - ], - [ - 87, - 208 - ], - [ - 88, - 208 - ], - [ - 88, - 209 - ], - [ - 89, - 209 - ], - [ - 89, - 210 - ], - [ - 90, - 210 - ], - [ - 90, - 211 - ], - [ - 91, - 211 - ], - [ - 91, - 212 - ], - [ - 92, - 212 - ], - [ - 92, - 213 - ], - [ - 93, - 213 - ], - [ - 93, - 214 - ], - [ - 94, - 214 - ], - [ - 94, - 215 - ], - [ - 94, - 216 - ], - [ - 94, - 217 - ], - [ - 95, - 217 - ], - [ - 96, - 216 - ], - [ - 96, - 217 - ], - [ - 97, - 215 - ], - [ - 97, - 216 - ], - [ - 98, - 214 - ], - [ - 98, - 215 - ], - [ - 99, - 214 - ], - [ - 100, - 214 - ], - [ - 101, - 213 - ], - [ - 101, - 214 - ], - [ - 102, - 213 - ], - [ - 103, - 213 - ], - [ - 104, - 213 - ], - [ - 105, - 213 - ], - [ - 106, - 213 - ], - [ - 106, - 212 - ], - [ - 107, - 212 - ], - [ - 108, - 212 - ], - [ - 109, - 213 - ], - [ - 109, - 212 - ], - [ - 110, - 214 - ], - [ - 110, - 213 - ], - [ - 111, - 215 - ], - [ - 111, - 214 - ], - [ - 112, - 215 - ], - [ - 112, - 214 - ], - [ - 113, - 214 - ], - [ - 113, - 213 - ], - [ - 114, - 213 - ], - [ - 115, - 213 - ], - [ - 115, - 212 - ], - [ - 116, - 212 - ], - [ - 117, - 212 - ], - [ - 118, - 212 - ], - [ - 118, - 211 - ], - [ - 119, - 211 - ], - [ - 119, - 210 - ], - [ - 119, - 209 - ], - [ - 120, - 209 - ], - [ - 120, - 208 - ], - [ - 121, - 208 - ], - [ - 121, - 207 - ], - [ - 122, - 207 - ], - [ - 122, - 206 - ], - [ - 123, - 206 - ], - [ - 123, - 205 - ], - [ - 123, - 204 - ], - [ - 123, - 203 - ], - [ - 123, - 202 - ], - [ - 123, - 201 - ], - [ - 123, - 200 - ], - [ - 124, - 200 - ], - [ - 124, - 199 - ], - [ - 124, - 198 - ], - [ - 125, - 198 - ], - [ - 125, - 197 - ], - [ - 125, - 196 - ], - [ - 126, - 196 - ], - [ - 126, - 195 - ], - [ - 127, - 195 - ], - [ - 127, - 194 - ], - [ - 127, - 193 - ], - [ - 127, - 192 - ], - [ - 127, - 191 - ], - [ - 127, - 190 - ], - [ - 127, - 189 - ], - [ - 127, - 188 - ], - [ - 127, - 187 - ], - [ - 127, - 186 - ], - [ - 127, - 185 - ], - [ - 127, - 184 - ], - [ - 127, - 183 - ], - [ - 127, - 182 - ], - [ - 127, - 181 - ], - [ - 127, - 180 - ], - [ - 127, - 179 - ], - [ - 127, - 178 - ], - [ - 126, - 178 - ], - [ - 125, - 178 - ], - [ - 124, - 178 - ], - [ - 122, - 179 - ], - [ - 123, - 178 - ], - [ - 121, - 179 - ], - [ - 122, - 178 - ], - [ - 120, - 179 - ], - [ - 119, - 179 - ], - [ - 118, - 179 - ], - [ - 117, - 179 - ], - [ - 117, - 178 - ], - [ - 116, - 178 - ], - [ - 116, - 177 - ], - [ - 115, - 177 - ], - [ - 115, - 176 - ], - [ - 114, - 176 - ], - [ - 114, - 175 - ], - [ - 113, - 175 - ], - [ - 113, - 174 - ], - [ - 112, - 174 - ], - [ - 112, - 173 - ], - [ - 112, - 172 - ], - [ - 111, - 172 - ], - [ - 111, - 171 - ], - [ - 111, - 170 - ], - [ - 111, - 169 - ], - [ - 110, - 169 - ], - [ - 110, - 168 - ], - [ - 109, - 168 - ], - [ - 109, - 167 - ], - [ - 108, - 167 - ], - [ - 108, - 166 - ], - [ - 107, - 166 - ], - [ - 107, - 165 - ], - [ - 106, - 165 - ], - [ - 106, - 164 - ], - [ - 106, - 163 - ], - [ - 106, - 162 - ], - [ - 106, - 161 - ], - [ - 106, - 160 - ], - [ - 105, - 160 - ], - [ - 104, - 160 - ], - [ - 104, - 159 - ], - [ - 104, - 158 ] ] }, @@ -6210,42 +7454,6 @@ "area_pct": 0.02691650390625, "basin_id": 3, "boundary": [ - [ - 106, - 0 - ], - [ - 95, - 0 - ], - [ - 94, - 0 - ], - [ - 94, - 1 - ], - [ - 93, - 1 - ], - [ - 93, - 2 - ], - [ - 92, - 0 - ], - [ - 92, - 2 - ], - [ - 92, - 3 - ], [ 91, 0 @@ -6262,617 +7470,39 @@ 91, 3 ], - [ - 93, - 237 - ], [ 92, - 241 - ], - [ - 92, - 242 - ], - [ - 93, - 238 - ], - [ - 93, - 239 - ], - [ - 94, - 235 - ], - [ - 96, - 227 - ], - [ - 93, - 240 - ], - [ - 94, - 236 - ], - [ - 95, - 232 - ], - [ - 96, - 228 - ], - [ - 93, - 241 - ], - [ - 94, - 237 - ], - [ - 95, - 233 - ], - [ - 96, - 229 - ], - [ - 93, - 242 - ], - [ - 95, - 234 - ], - [ - 93, - 243 - ], - [ - 96, - 230 - ], - [ - 95, - 235 - ], - [ - 93, - 244 - ], - [ - 96, - 231 - ], - [ - 93, - 245 - ], - [ - 97, - 227 - ], - [ - 96, - 232 - ], - [ - 93, - 246 - ], - [ - 93, - 247 - ], - [ - 92, - 252 - ], - [ - 93, - 248 - ], - [ - 92, - 253 - ], - [ - 93, - 249 - ], - [ - 92, - 254 - ], - [ - 93, - 250 - ], - [ - 92, - 255 - ], - [ - 93, - 251 - ], - [ - 93, - 252 - ], - [ - 98, - 227 - ], - [ - 99, - 227 - ], - [ - 95, - 255 - ], - [ - 100, - 227 - ], - [ - 96, - 254 - ], - [ - 96, - 255 - ], - [ - 97, - 253 - ], - [ - 97, - 254 - ], - [ - 101, - 226 - ], - [ - 101, - 227 - ], - [ - 98, - 252 - ], - [ - 98, - 253 - ], - [ - 99, - 252 - ], - [ - 102, - 226 - ], - [ - 100, - 252 - ], - [ - 103, - 226 - ], - [ - 101, - 252 - ], - [ - 102, - 252 - ], - [ - 104, - 225 - ], - [ - 104, - 226 - ], - [ - 103, - 252 - ], - [ - 103, - 253 - ], - [ - 105, - 224 - ], - [ - 104, - 253 - ], - [ - 105, - 225 - ], - [ - 104, - 254 - ], - [ - 105, - 254 - ], - [ - 105, - 255 - ], - [ - 106, - 223 - ], - [ - 106, - 224 - ], - [ - 106, - 255 - ], - [ - 107, - 223 - ], - [ - 108, - 223 - ], - [ - 108, - 222 - ], - [ - 109, - 222 - ], - [ - 109, - 221 - ], - [ - 110, - 221 - ], - [ - 110, - 220 - ], - [ - 111, - 222 - ], - [ - 111, - 221 - ], - [ - 111, - 220 - ], - [ - 112, - 224 - ], - [ - 112, - 223 - ], - [ - 112, - 222 - ], - [ - 117, - 255 - ], - [ - 117, - 254 - ], - [ - 113, - 226 - ], - [ - 113, - 225 - ], - [ - 113, - 224 - ], - [ - 118, - 254 - ], - [ - 118, - 253 - ], - [ - 114, - 228 - ], - [ - 114, - 227 - ], - [ - 114, - 226 - ], - [ - 119, - 253 - ], - [ - 119, - 252 - ], - [ - 115, - 230 - ], - [ - 115, - 229 - ], - [ - 115, - 228 - ], - [ - 120, - 252 - ], - [ - 120, - 251 - ], - [ - 116, - 231 - ], - [ - 116, - 230 - ], - [ - 117, - 234 - ], - [ - 117, - 233 - ], - [ - 121, - 251 - ], - [ - 117, - 232 - ], - [ - 121, - 250 - ], - [ - 121, - 249 - ], - [ - 117, - 231 - ], - [ - 118, - 235 - ], - [ - 121, - 248 - ], - [ - 121, - 247 - ], - [ - 118, - 234 - ], - [ - 122, - 251 - ], - [ - 121, - 246 - ], - [ - 121, - 245 - ], - [ - 119, - 236 - ], - [ - 121, - 244 - ], - [ - 119, - 235 - ], - [ - 121, - 243 - ], - [ - 121, - 242 - ], - [ - 120, - 237 - ], - [ - 120, - 236 - ], - [ - 121, - 239 - ], - [ - 122, - 242 - ], - [ - 121, - 238 - ], - [ - 122, - 241 - ], - [ - 121, - 237 - ], - [ - 122, - 240 - ], - [ - 122, - 239 - ], - [ - 117, - 5 - ], - [ - 117, - 4 - ], - [ - 117, 3 ], [ - 117, + 93, 2 ], [ - 117, + 94, 1 ], [ - 117, + 95, 0 ], [ - 116, - 6 - ], - [ - 116, - 5 - ], - [ - 115, - 7 - ], - [ - 115, - 6 - ], - [ - 114, - 7 - ], - [ - 114, - 6 - ], - [ - 113, - 6 - ], - [ - 113, - 5 - ], - [ - 112, - 5 - ], - [ - 112, - 4 - ], - [ - 111, - 4 - ], - [ - 111, - 3 - ], - [ - 110, - 3 - ], - [ - 110, - 2 - ], - [ - 109, - 2 - ], - [ - 108, - 2 - ], - [ - 108, - 1 - ], - [ - 108, + 94, 0 ], [ - 107, + 93, + 0 + ], + [ + 92, 0 ] ] } ], + "grid_h": 128, + "grid_w": 256, "river_network": { "confluences": [], "mouths": [