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
and f3 are basic functions (i.e. they relate directly to objects in the GIS), then we can have
a set of complex composite functions that might include, amongst others:
f4 = Minimum(f1,f2,f3)+Maximum(f1,f2,f3)
f5=f4*f1
For many operations of the GIS, such as changes in the underlying data set or deletion of
a certain function (for example, f1), the system must follow the current set of
relationships, alter subsequent functions and manage the computer memory. Since
function-based layers rely on extensive computation (during visualisation, numerical
analysis, construction of layer trees, etc.) a successful implementation must handle this in
an efficient way. Furthermore, the system must identify problems such as circular
references, where a function refers to itself. However, as such issues are well established
in many computer packages – such as spreadsheets and programming languages – this
should not pose an obstacle to implementation.
Functions optimiser
While many functions are simple and straightforward to compute, others represent a
computational challenge that can be partially resolved through optimisation of the
symbolic representation. For example, the calculation of slope in a common raster-based
GIS is carried out as a neighbourhood operation, where the value of the surrounding
cells is examined to elicit the value of the current cell. As many have noted, slope is in
effect the first derivative of the original surface (Evans, 1972; Berry, 1993b). Thus, it is
analytically possible to compute the first derivative from the symbols of the function (a
practice that is common in mathematical analysis tools) and then store the resulting
function. In case of piecewise functions, the original array of functions with their
associated domains will be replaced by new array with the derivatives. Another
optimisation can be done on the basis of the characteristics of the computational process
itself, in a similar way to query optimisers in SQL-based databases (such as Oracle). For
example, if the computed function is:
KDE(Set X, employment) + Dist(Road network) + KDE(Set X, revenue)
where KDE is a Kernel Density Estimator function, which, in this case are defined on a
specific set of points (Set X), and Dist is a distance function from the Road Network (a
set of vectors), the optimiser first retrieves the neighbourhood function and calculates