Algorithms in GIS (cs3225): Schedule

Test grids here.

Here is a detailed schedule of the class, to be updated as the semester progresses:

9/3 Class introduction.
Lab: Unix warmup | Using make | Emacs and vim | C 101 | BasicsI | BasicsII
Sean's unix tutorial.

Programming 0 [max malloc()'ed memory]

9/8, 9/10 Spatial data models and representation.
  • Raster and vector models.
  • ata structures for meshes (winged-edge; half-edge).
Slides: Data models and representation
Programming 1 [read an ascii grid] (due Tue 9/15)
9/15, 9/17, 9/22 Lab: brief intro on rendering (terrains) with OpenGL 1.x. graphics1 | graphics1.tar

Programming 2 [render an ascii grid 2d] (due Tue 9/22)
Programming 3 (render grid 3d) (due Tue 9/29)

9/24, 9/29, 10/1, 10/6 Flow on terrains.
  • Flow direction and flow accumulation.
  • Flat areas.
  • Watersheds. Drainage basins.
  • Watershed partitioning and Pfafstetter hierarchy.
  • Flooding.
Slides: Flow | Flooding
Programming 4 (flow direction and accumulation))
Project 1: Flooding.
10/8, 10/15, 10/20, 10/22 Visibility on terrains.
  • Basic algorithm for viewshed.
  • From the straightforward algorithm to a radial sweep.
  • A detour through augmenting RB-trees.
  • Visibility and horizons. Viewshed via a concentric sweep.
  • Interpolation effects.
  • Computing all viewsheds on grid DEMs.
Slides: Visibility
Project 2: Visibility.
10/29 Line simplification.
  • The problem, its weak and strong versions.
  • Douglas Peucker's algorithm.
  • The Imai-Iri idea: Computing the smallest epsilon-approximation via the shortcut graph.
Slides: (not yet..)
11/3, 11/5 Terrain simplification.
Slides: Terrain simplification
Reading: Fast polygonal approximations of terrain and height fields (Garland and Heckbert 1995) | Garland's Terra, Scape, QSlim | Jonathan Shewchuck's website;
Project 3: Simplification
11/10 Quadtrees.
Slides: Quadtrees
11/12 Invited lecture: Using ArcGis in EOS, by Eileen Johnson, EOS.
11/17 Space-filling curves.
Slides: Space-filling curves
11/19 Paper reading.
11/24 Paper reading.
12/1 Project 3.
12/3 Project 3.
12/8 Project 3.
12/10 Project 3.

Additional readings: