Lecture 4, Aug 30: Lines and Line Simplification
"Everything is related to everything else, but near things are more related than distant things." Waldo Tobler’s First Law of Geography
Generalization applied to cartographic lines
Today we encounter the simplest form of one of the recurring themes for dealing with large models: simplifications that preserve the essential features of the models. In cartography, the term for the process of replacing entities by readable symbols at a particular scale is generalization. We focus on line simplification.
Barbara Buttenfield’s paper lists five ways to think about a line
- a set of equiprobable points
- a linear feature (problems of length with geographic features)
- an areal feature of finite width (convolutions and epsilon neighborhoods)
- a spectral feature (most simplification methods)
- a perceptual phenomenon
She also discusses corresponding generalization procedures; I’ve added some others.
- If points are equiprobable, we can remove points uniformly or at random. (How many? Use Tobler’s radical law: information reduced proportional to square root of scale change.)
- Sliding window approaches: Reumann-Witkam, Opheim, Lang, Jenks (Linear time algorithms that do not back up)
- Douglas-Peucker (recursive selection; O(n2) worst case, but O(n log n) best and average.)
http://aix1.uottawa.ca/~ddouglas/research/reduce/reduce.htm
Imai & Iri’s optimal algorithms (O(n3) in the worst case)
Wavelet methods (to be described later)
Problem Set #2, Due Weds, Sept 15.
Do two of the following three problems, and hand in your solutions either in class or anytime before midnight at my office sn333. Collaboration is permitted; good scholarship requires that collaborations be acknowledged.
- For the recursive selection procedure of Douglas and Peucker, analyze the expected running time under the assumption that whenever a fragment of a polygonal line is split, the splitting vertex is chosen with equal probability from the interior points of the fragment.
- Design an algorithm and data structure for line simplification that, given a tolerance, will produce a polygonal line that meets that tolerance. Ideally, the data structure should have linear size and the algorithm should produce a line with k segments in O(k) time.
- Consider the problem of simplifying either a river represented by two lines for its two banks, or a set of contour lines. Design an algorithm (at least at the pseudocode level, but if you want to implement it, then I’ll provide data) that will simplify, but guarantee that the simplified curves do not intersect.
Preview for Weds lecture:
Topology, from a GIS perspective:
http://www.gisca.adelaide.edu.au/~bbryan/lectures/conc_vec_gis/