This paper provides a new representation for fields (continuous surfaces) in Geographical Information Systems (GIS), based on the notion of spatial functions and their combinations. Following Tomlin’s (1990) Map Algebra, the term “Map Calculus” is used
Map Calculus in GIS
Page 17 of 26
This, of course, is a basic Euclidean distance function. However, the syntax \$x tells Perl
not to evaluate the variable x when constructing the string, but rather to postpone
evaluation to a later stage. Thus, for the point (14,-128), this code segment returns the
function:
sqrt(($x-(14))**2+($y-(-128))**2)
When the display function is activated, this segment of code is evaluated for every pair of
co-ordinates in the display area, assigning them as $x and $y. Finally, it is worth noting
the way in which composite layers are handled. This is done by recursively bringing up
the function that constructs the “Lambda Function” in the following way:
return constructFunc($layer2) . " $layer_id->{operation} " .
constructFunc($layer2);
Apart from the code, the server produces a raster layer according to the function of the
specific combination. The client then reads the file and it is possible to display the result
for the area currently displayed. This communication between client and server is grossly
inadequate in terms of speed, but it is good enough to demonstrate the visualisation
advantages of the approach. Figure 3 provides a demonstration of the output that is
expected from a Map Calculus-enabled GIS. Figures 3a-3c emulate the process of zoom-
in to a specific segment of the map and the creation of a finer raster for the area of
interest that the user has zoomed into. It is important to note that the two rasters that are
on display here contain exactly the same number of cells.