380 likes | 491 Views
Flow Simulation in TINs. Drainage Queries in TINs: from local to global and back again S. Yu, M. van Kreveld, and J. Snoeylink. Motivation. Provide important information on water resources, flood areas, erosion and other natural processes Natural resource management
E N D
Flow Simulation in TINs Drainage Queries in TINs: from local to global and back again S. Yu, M. van Kreveld, and J. Snoeylink
Motivation • Provide important information on water resources, flood areas, erosion and other natural processes • Natural resource management • Road building, logging, or other activities have potential to affect defining stream • Manual quantification of terrain drainage is time consuming
TINs • Piecewise-planar approximation to a terrain where each facet of the approximation is a triangle
Assumptions • At any point, water follows the steepest descent • Watercourses can merge, forming trees • Watercourses end only at local minimum • At any point there is a unique direction of steepest descent (no flat faces)
General Definitions trickle path(p): path beginning at point p, following steepest descent and ending at local minimum watershed(p): set of points which drain to p watercourse network: all points that form watersheds
Observations • steepest descents in a triangle lie on parallel lines (planar object) • edge become channels when flow comes from both adjacent triangles • trickle paths cannot cross • drain objects: faces edges vertices faces faces edges
Definitions • peak – local maximum (vertex) • pit – local minimum (vertex) • basin – watershed of a pit Method • Approximate steepest descent by passing flow triangle to triangle in direction of steepest descent
Observations • point p collects flow from region bounded by steepest ascent in adjacent triangles • trickle paths from local channels determine the watershed network Lemma: Watercourse network is a collection of disjoint trees rooted at pits whose leaves are local channels
Watercourse Definitions • junction – point of the network that has at least two separate incoming parts • segment – maximal part that doesn’t contain junctions • catchment area – the part of the terrain that drains directly into the segment
Processing a TIN Queries/Operations • What is the area of the watershed of point q? • What is the flow rate through q if water falls at uniform rate r? • Construct the watershed of point q • What points have watershed area of size A?
Idea • Partition a TIN surface into pieces, for which simple functions summarize drainage behavior
Partitioning a TINTailored Definitions • drain(p) – the point where trickle path(p) meets the network • catchment area(s) – all points that drain(p) is on s • set of basins (one per pit) – form a (coarse) partition • set of catchment areas (per segment) – form a finer partition
base segments – for every vertex v define a node drain(v) which cut segments into base segments (further refinement) • right/left strips – set of points p such that drain(p) lies on s and trickle path(p) comes from the right/left Lemma: A strip is a region bounded by a base segment from a local channel, a segment of a local ridge, and two steepest descent paths.
Corollary: Basins, watersheds, and catchment areas are bounded by local ridges and steepest descents Proof: all are composed of left/right strips of segments Corollary: Watershed area, projected area, or steady-state flow rate can be summarized by piecewise quadratic functions on base segments
Proof: For a query point q, base segment s determines left and right strips that are partially inside the watershed of q Every other strip is either entirely outside or inside and contributes a constant amount contribution(s) – at^2 + bt + c t is a parameter indicating the position of q on s
Computation of Flow Network For each triangle t, Calculate the center point p, Call t.trickle path(p) Locate tree in network (forest) Add (sub)path as branch to tree
FlowSimulation Query: Given a discrete set of points P each with a corresponding mm/hour rain value, and a point q, approximate the flow at q according to time. Init: T = find flow tree containing query point q For each triangle t containing p in P, set inflow, slope, flow speed, out capacity
run(): For each time frame, Start with any leaf triangle t in T, t.flow = t.inflow t.outflow = min(t.flow, t.outcapacity) t.flow -= t.outflow Until t is a pit, t.flow += t.inflow + t.sources.outflow t.outflow = min(t.flow, t.capacity) t.flow -= t.outflow Continue up the tree merging sub-trees and summing input flow
TIN created from 237606 grid points containing 79998 triangles
TIN created from 372006 grid points containing 124998 triangles
TIN created from 496008 grid points containing 166498 triangles
TIN created from 537840 grid points containing 180484 triangles
Extensions and Future Research • Absorption of water by different ground types • Account water volume (spilling, pruning) • Horizontal triangles, stream bifurcation
Conclusions • TINs can provide a good, efficient approximation of drainage networks • Large maps require significant optimizations/approximations