# Map algebra

Map algebra is a set-based algebra for manipulating geographic data, proposed by Dr. Dana Tomlin in the early 1980s. It is a set of primitive operations in a geographic information system (GIS) which allows two or more raster layers ("maps") of similar dimensions to produce a new raster layer (map) using algebraic operations such as addition, subtraction etc.

Depending on the spatial neighborhood, GIS transformations are categorized into four classes: local, focal, global, and zonal. Local operations works on individual raster cells, or pixels. Focal operations work on cells and their neighbors, whereas global operations work on the entire layer. Finally, zonal operations work on areas of cells that share the same value. The input and output for each operator being map, the operators can be combined into a procedure, script, to perform complex tasks.[1]

Here are some examples:

```# demo for Brown's Pond data set
# Give layers
#  altitude
#  development – 0: vacant, 1: major, 2: minor, 3: houses, 4: buildings, 5 cement
#  water – 0: dry, 2: wet, 3: pond

# calculate the slope at each location based on altitude

# identify the areas that are too steep
toosteep = LocalRating of slope
where 1 replaces 4 5 6
where VOID replaces ...

# create layer unifying water and development
occupied = LocalRating of development
where water replaces VOID

notbad = LocalRating of occupied and toosteep
where 1 replaces VOID and VOID
where VOID replaces ... and ...

where 1 replaces 1 2
where VOID replaces ...

aspect = IncrementalAspect of altitude

southface = LocalRating of aspect
where 1 replaces 135 ... 225
where VOID replaces ...