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
decides to stop tracking one of the vehicles, this must spread through the “layer tree” to
each function that uses the altered one. The GIS can maintain links forward – from a
function-based layer towards composite layers that represent mathematical operations in
which the function participates – and backwards. There are also requirements to manage
the memory efficiently and to deal with issues such as garbage collection, as function-
based layers will generate more computations and temporary data structures, thereby
making memory management critical to the performance of the computer.
This section has provided a description of the main elements of Map Calculus-enabled
GIS. The next section considers the computational concepts that underpin the creation
and management of such a GIS, and explains why the implementation of such a GIS is
feasible today.
Concepts and consideration for the implementation
of Map Calculus-enabled GIS
Many of the building blocks of Map Calculus-enabled GIS, both theoretically and
practically, are based on the field of functional computer languages and are used in many
applications. Hence, the development of the underlying mechanisms to support Map
Calculus-enabled GIS should not represent a major theoretical challenge. This section
begins with a discussion of the main theoretical elements that enable the creation of such
a GIS: functional computer languages and the Lambda Calculus. After discussing these
aspects, some of the computational elements required to implement Map Calculus-
enabled GIS are explored. These include the ability to manage relationships amongst
functions, the ability to carry out the numerical analysis of mathematical functions with
computers, and the need for a computing environment that supports rapid and complex
computations.
Functional Computer Languages and Lambda Calculus
To enable a GIS to handle and manipulate function-based layers, it must be capable of
creating functions from other functions and hold “suspended” functions, where some of
the variables have been assigned while the rest will be evaluated at run-time. These
capabilities exist in functional computer languages, and originate from Church’s (1941)
Lambda Calculus. This section provides a brief description of the main principles of the
Lambda Calculus and functional languages that are relevant for the current discussion; it