Raster algorithms and data structures

Wise Chapter 6: Raster Data structures

Array data structure

Raster is the RESULT of having a two-dimensional array in even the most primitive of computer languages. [Why do all languages have it?] Ask a harder question: "where is the "object"? Is a raster consistent with an "object" model? (philosophically I would argue NOT...)

DATA [i,j] maps from a linear memory to two dimensional by a simple formula. Either it is "row-major" or "column major" (depends on compiler!).

i and j are some function of X and Y (which is which depends on convention...) In old-time raster systems the origin is at the UPPER left corner (beginning of line printer movement?). In SYMAP, the rows were positive on the DOWN axis (leading to substantial confusion, you can imagine...)

Compression:

Quadtrees and run length encoding, see discussion in Exploring GIS on representation Chapter 3.

Area or Point:

does a raster refer to an area or to a point. Yes. Often authors think of it both ways simultaneously, as required to avoid the unpleasantness that it makes a difference...

Is "grid cell" any differrent from a "pixel"? some argue it is...

Wise Chapter 7: Raster Algorithms

Run-length encoding

This is a primitive loss-less compression.

Quadtrees: access

There are a MILLION forms of quadtree, and Hanan Samet has named them all...

Area calculation

Count the occurrences of each value.


What I should have added:

Raster data structures are basically about "interleaving" - organization of pixel data with respect to each other. Consider a spectrum from totally separate files for each raster to a single record for each pixel with all layers "interleaved".

Band sequential: each "band" (in RS terminology) or grid separate, perhaps sequential on the tape. Basis for Tomlin's MAP Package (built originally on IMGRID), thus ArcGRID and Spatial Analyst.

Band interleaved by Line (.bil) each row has each "band" then the next row.

Band interleaved by Pixel (the landsat format, with some sillyiness about pairs of pixels?)

Pixel records: IMGRID

Pixel records are great to process HUGE grids for overlay, fall apart for neighborhood operations

Neighborhood operations made identical to overlay by changing OFFSETs to calculate relevant pixel.


Index from here: Next Lecture | Schedule

Version of 18 Feb 2003