Vector Field Data Model and Operations - CiteSeerX

29 downloads 4059 Views 2MB Size Report
ble in those software packages. ... field is an assembly of vectors, one for each cell. .... basic concept where the scalar field has a constant value of one. Line and ...
Vector Field Data Model and Operations Xingong Li Department of Geography, University of Kansas, Lawrence, Kansas 66045

Michael E. Hodgson Department of Geography, University of South Carolina, Columbia, South Carolina 29208

Abstract: The completeness and versatility of spatial data models and associated operations serve as the foundation of any GIS. The raster data model and the cartographic modeling framework provide the representation and operations for analyzing geographic fields. The current GIS raster data model and cartographic modeling operations are limited in that all the attributes measured at each location in fields are scalar quantities. This research proposes a new raster data model for representation and analysis of spatially distributed vector measurements. It extends the cartographic modeling framework by identifying new operations specific to vector fields and by extending existing operations to vector fields. Applications of the data model and operations are also provided.

INTRODUCTION Data models and operations are the essence of any GIS. The representation and analysis capabilities of GIS are often limited by the completeness and versatility of its data models and operations. This research proposes a data model and associated operations to represent and analyze geographic fields where the measurement at each location may be a vector. Examples of such fields are wind and flow fields. The raster data model is one approach for representing geographic fields. It represents fields through a tessellation of space as locations (also known as cells), each of which is associated with a value indicating the class, rank, identity, or quantity of the phenomenon that occupies it. The proposed data model tessellates space the same way as the raster data model does. However, the value at each cell in the proposed data model is a vector instead of a scalar. Operations are defined and organized following the cartographic modeling framework. Cartographic modeling is a framework that defines and organizes analytic GIS operations in the raster data model. This framework attempts to generalize and standardize a modeling language for geographic information systems (Tomlin, 1990). It decomposes spatial analytic tasks into elementary operations that can be flexibly recombined. Primitive operations are grouped into local, neighborhood (i.e., focal), and zonal classes based on the spatial scope of the operations. 1 GIScience and Remote Sensing, 2004, 41, No. 1, pp. 1-24. Copyright © 2004 by V. H. Winston & Son, Inc. All rights reserved.

2

LI AND HODGSON

In the following sections, vector measurements and vector fields are introduced, followed by a discussion of operations on vector fields. We then demonstrate the application of the proposed data model and operations, followed by conclusions. VECTOR MEASUREMENTS AND VECTOR FIELDS In the raster data model, the quantities that can be measured at each location are characterized by only one piece of information—their magnitude. Such quantities are called scalar quantities or simply scalars. Traditionally, scalar quantities are further classified into four levels of measurements—nominal, ordinal, interval, and ratio (Stevens, 1946). Distinctions among these four levels become quite significant when these values are processed mathematically (Tomlin, 1990). The inadequacy of Stevens’ levels of measurements for other quantities has been pointed out by Coombs (1964) and Chrisman (1997). In addition to scalar quantities, there are quantities that require two “pieces” of information, such as their magnitude and direction. These quantities are called vector quantities or simply vectors. For example, the wind velocity at a point is characterized by both direction and the speed of wind. Data describing the movement of mass or people across space, such as overland or groundwater flow, are often measured using vectors. Spatially distributed vector quantities are called vector fields. Taxonomy of Fields A taxonomy of fields could be based on the concept of function. A function in mathematics is a mapping from a domain to a range. Let f be a function whose domain is a subset A of Rn and with a range contained in Rm, where Rn refers to the set of all ordered n-tuples (x1, x2, …, xn) of real numbers. To each x = (x1, x2, …, xn) ∈ A, f assigns a value f(x), a m-tuple in Rm. A function f is a scalar-valued function if m = 1, and a vector-valued function if m > 1. Functions from Rn to Rm are not just mathematical abstractions; they arise naturally in problems studied in all sciences. For example, to specify the temperature T in a region A of a space requires a function f: A ⊂ R3 → R (n = 3, m = 1). Since m = 1, f is a scalar-valued function. To specify the instantaneous velocity of the surface water in a river requires a mapping f: A ⊂ R2 → R2 (n = 2, m = 2) and because m > 1, f is a vector-valued function. From the function definition and examples above, fields are essentially mathematical functions that map points in spatial domains to ranges. The spatial domain may vary from one-dimension to n-dimension space, although this discussion will focus on a two-dimensional spatial domain. The range can be a scalar or a vector of two or more dimensions. Based on this functional view, fields can be classified into two categories—scalar and vector fields—depending on whether the dimension of their ranges is one- or two-dimensional. Scalar fields could also be further classified into integer and float fields depending on whether the range (value) is an integer or a floating-point number. Vector fields can also be further classified into two-dimensional and three-dimensional vector fields depending on the dimensionality of the vectors (Fig. 1).

VECTOR FIELD DATA MODEL

3

Fig. 1. Taxonomy of fields.

Research on Vector Fields Theory on fields, in physics, is well developed (McQuistan, 1965). Most fields in physics and engineering could be expressed as pure mathematical functions. Field analysis becomes the manipulation of mathematical functions. For most geographical fields, the fact that the value at a point cannot be evaluated from a mathematical function makes it impossible to represent them as pure mathematical functions. The mapping (or function) from a spatial domain to a range, therefore, has to be explicitly stored as a tuple consisting of a position and a value. Most geographical fields (e.g., raster) are stored functions because the mappings are stored explicitly. Stored functions require a sampling or tessellation of the spatial domain to accommodate the discrete nature of computer systems. Analysis on stored functions is different from manipulations on pure mathematical functions. Geographers make use of directional statistics for a variety of studies, including patterns of mobility (Clark, 1971; Costanzo et al., 1986), cartography comparisons (Tobler, 1978), digital elevation modeling (Hodgson, 1995, 1998; Hodgson and Gaile, 1996), vector interpolation, solar insolation (Hodgson and Gaile, 1999), and evaluation of sand dunes (Blumberg and Greeley, 1996). Directional and vector statistical primers also have appeared in the geographical literature (Gaile and Burt, 1980). Most of these studies, however, deal with directional vectors where the vector has a constant, unit magnitude. Whole vector (i.e., vector has non-unit magnitude) analysis appears in the study of wind, currents, and other fluids. Weber and Blanton (1980) evaluated vector means and Hsueh and Romea (1983) correlated wind velocities. Hardy and Walton (1978), Legler (1983), and Servain and Legler (1986) computed the principal components of wind fields. Expanding on these latter studies, Klink and Willmott (1989) demonstrated that isolated analysis of the surface wind field component (i.e., direction or speed) could lead to incomplete or biased results and interpretations. Hanson et al. (1992) introduced vector correlation among vector fields into the geographic literature and identified a particularly useful vector correlation coefficient. Klink (1998) later reviewed the complementary use of scalar, directional, and vector statistics with an application to surface wind. Despite the potential for widespread applicability, the use of spatially distributed vector data in the geographic research community is still uncommon. Hanson et al. (1992) found that “our limited use of directional and vector statistics reveals more about the relative unavailability of such

4

LI AND HODGSON

methods than about the number of geographic problems that could make appropriate use of such statistics.” Kemp (1997a, 1997b) proposed the possible usefulness of a vector field data type as a natural extension to scalar fields in the integration of GIS and environmental modeling. The vector field was discussed under the general terminology of physics. Operations on vector fields in a geographic context, however, were not further explored. Also, in the synthesis of GIS and environmental modeling, Maidment (1993) noticed that it would be helpful to have functions to analyze vector fields of motion, such as the divergence, gradient, and curl of fields (McQuistan, 1965). Tauxe (1994) noted the lack of vector field constructs at the same level as cartographic modeling operations. Van Deursen (1995) and Wesseling et al. (1996) recognized the directional field, local drain direction, and vector field data types in their efforts to develop dynamic modeling in a GIS. In their work, a directional field is a unit vector field and a local drain direction field is a discrete direction field. Operations on vector fields and the applications of the data type, however, were not discussed in their research. Hodgson and Gaile (1996) identified the lack of appropriate analysis functions in GIS to deal with directional field data. Based on the existing constructs in cartographic modeling and the fundamentals of directional statistics, Hodgson and Gaile (1999) implemented the fundamental directional operators and demonstrated their usefulness in several applications. Their implementation required a decomposition of vectors into fields of vector components (i.e., x, y, and z of a 3D vector). Although implementing the fundamental statistical operations on directional fields by using constructs from cartographic modeling and component scalar fields is elegant, it may not be appropriate to implement complex operations such as correlation between two vector fields. In addition, the authors noted there is no formalized method for encapsulation of modeling code segments into operators. The provided implementation must rely on separation of embedded models using separate script files (Hodgson and Gaile, 1999). Current GIS and image processing systems also lack the data model and operations for vector fields. Some GIS and image processing systems do provide ad hoc functions for topography related problems, such as topographic normalization and surface distance calculation, where vector concepts are used. However, those functions are strictly limited to specific problems and are not incorporated in the cartographic modeling framework. In fact, users of the GIS and image processing systems will note that no operations (such as the LocalMean of two vector fields) are accessible in those software packages. Vector classes (or data types) were introduced only recently into some commercial GIS. However, the vector classes refer to point vectors. There are other data types, such as grid stacks and image catalogs, where vector fields could be stored. However, none of them provides operations on vector fields. The lack of data models and operations for vector fields has forced researchers to handle vector fields using data models and operations only appropriate for scalar fields. The lack of analytical tools for spatially distributed vector measurements was noted and the concept of vector field was proposed in the literature. However, except for the research on surface orientation and wind direction, operations on vector fields have not been fully explored. The next section discusses representations of vector fields and the extension of the cartographic modeling framework to vector fields.

VECTOR FIELD DATA MODEL

5

REPRESENTATIONS OF AND OPERATIONS ON VECTOR FIELDS Representations of vector fields start with vector representations. We then briefly introduce vector algebra and how vector calculus is used to manipulate vector fields in physical science and engineering, followed by operations for geographic vector fields based on the cartographic modeling framework. Representations of Vector Fields A vector, defined geometrically as a directed line segment, begins at the origin of a coordinate system and terminates at a point in the coordinate system. The terminal point uniquely describes the vector. The problem of representing vectors, therefore, becomes the problem of describing the positions of points in space. Two-dimensional vectors can be represented as pairs of numbers, (x, y) in the Cartesian coordinate system and (p, θ) in the polar coordinate system. Three-dimensional vectors can be represented as triples of numbers, (x, y, z) in the Cartesian, (p, θ, z) in the cylindrical, and (p, θ, ø) in the spherical coordinate system (McQuistan, 1965). Vectors are typically represented in the Cartesian coordinate system mainly because the mathematics for vector manipulation (vector algebra) is based on the system. Various data models, such as rasters, TINs, and isolines, can be used to represent scalar fields (Goodchild, 1992). Although some of the data models can be extended to vector fields (Kemp 1997a, 1997b), the raster representation is still the simplest and most practical representation for vector fields. In the raster representation, a vector field is an assembly of vectors, one for each cell. Assuming the vectors are in the Cartesian coordinate system, this assembly of vectors can be stored in at least two ways. A vector field can be stored as a sequence of two-number or three-number tuples as we traverse the cells of the vector field, left to right and top to bottom. This is similar to the band interleaved by pixel file (BIP) format in digital image processing (Jensen, 1996). An alternate approach would store the vector field as a stack of two or three scalar fields which store the x, y, or the z components of the vectors (Hodgson and Gaile, 1999). Stacks of raster layers have been used to represent multivalued rasters and time-series images. Vector Algebra and Vector Calculus In general, vector algebra assumes vectors are represented in the Cartesian coordinate system (McQuistan, 1965). Vectors in three-dimensional space are used as examples in the following discussion. Vector a in 3D can be represented by an ordered triple (a1, a2, a3), where a1, a2, a3, are the x, y, z coordinates of the corresponding point. The length (also called magnitude and norm) of vector a is defined as || a || = sqrt(a12 + a22 + a32). Given two vectors, a = (a1, a2, a3) and b = (b1, b2, b3) are equal if and only if a1 = b1, a2 = b2, and a3 = b3. The sum and difference of vector a and b are defined as a + b = (a1 + b1, a2 + b2, a3 + b3) and a – b = (a1 – b1, a2 – b2, a3 – b3), respectively. Vector addition is both commutative and associative. Given a scalar m and a vector a, the scalar multiplication of vector a by scalar m is defined as ma = (ma1, ma2, ma3). Given two vectors, a = (a1, a2, a3) and b = (b1,

6

LI AND HODGSON

b2, b3), the dot or inner product of vector a and b is defined as a scalar a · b = a1b1 + a2b2 + a3b3. The cross product or vector product of vector a and b is defined as a vector a × b = (a2b3 – a3b2, a1b3 – a3b1, a1b2 – a2b1). It can be proven that the dot product of vector a and b can also be written as a · b = || a || || b || cos(θ), where θ is the angle between vector a and b and 0 ≤ θ ≤ π. From this definition, if vector a and b are nonzero, the angle θ between them can be expressed as θ = arccos (a · b/(|| a || || b ||)). Division of a vector a by a scalar m can be defined as the multiplication of a by the scalar 1/m. Given two vectors, a = (a1, a2, a3) and b = (b1, b2, b3), the division between them leads to an ambiguous result except when vector a and b are parallel. Vector division is permissible only when the vectors are parallel. The mean vector characterizes the central tendency of a set of vectors. Let a be a 3D vector. A sample has n observation vectors denoted by a1, a2, …, an, where ai = [ai1, ai2, ai3]. The sample mean vector a can be obtained as a = 1/n Σ ai = [ a 1, a 2, a 3] where a i is the mean of the n observations on the ith element, and 1 ≤ i ≤ 3. Since it is impossible to order points beyond a one-dimensional linear scheme, the concepts of maximum, minimum, and ordering are not applicable to vectors. Vector fields in physical science and engineering are described as vector-valued mathematical functions. Vector calculus is the mathematical language for manipulating the functions. The basic concepts of vector calculus are similar in many respects to the corresponding principles in scalar calculus. There is also a close relationship between scalar and vector fields through calculus. Differentiation and integration are central to both scalar and vector calculus. Differentiation of a scalar field enables us to locate maximum and minimum and, more importantly, to compute the spatial rate-of-change of the field. The term gradient is often used when a differentiation operation is performed on a scalar field. The gradient of a scalar field is a vector field that represents the direction and magnitude of the greatest rate of change. The gradient of a vector field is more complex. The reason is that direction as well as magnitude may change from one point to another point in a vector field. There are two differentiation operations, divergence and curl, which characterize the spatial rate of change of vector fields. The divergence of a vector field is a scalar field that calculates the potential of a vector field and describes the amount added or subtracted at a location in the field. The curl of a vector field is a vector field that measures the net tangent component of the field, that is, the rotation at every location of the field. The concept of integration comes from the calculation of arc length and surface area. Line and surface integrals on scalar fields are a natural generalization of the basic concept where the scalar field has a constant value of one. Line and surface integrals are also applicable to vector fields. A wide variety of physical concepts, such as the notion of work and the motion and flux of fluids, can be analyzed with the help of line and surface integrals. Differentiation and integration operations in calculus are based on the fundamental concept of infinitely small displacement. This concept has to be approximated, as it is not appropriate for geographic vector fields that are stored functions involving sampling of the spatial domain. Cartographic modeling (Tomlin, 1990) provides a simple and convenient framework to define and organize GIS operations in the raster data model. The framework organizes the operations on scalar fields into local, focal, and zonal functions based on the spatial scope of the operations. Local operations compute a new value for each

VECTOR FIELD DATA MODEL

7

location as a function of one or more existing values associated only with that location. Focal operations compute each location’s new value as a function of existing values within its neighborhood. Zonal operations compute each location’s new value as a function of existing values within a common zone. Complex analysis can be formed by controlling the order in which operations are performed and by using the output from one as input to another. In the following discussion, the cartographic modeling operations are presented in the context of vector fields. Local Operations Local operations compute a new value for every location as a function of one or more values at the same location (Table 1). Operation LocalRating, also variously referred to as reclassification, assigns new values to each location through a look-up table that indicates the relationship between new values and existing values or ranges of existing values. Vector fields can be reclassified to new vector fields or scalar fields based on direction, magnitude, or both. However, since no order exists among vectors, using a linear range of vectors in a look-up table for reclassification is not appropriate. LocalCombination assigns to each location a value representing the unique combinations of input values. Locations with the same combination have the same value. This is a local operation where the combinations at other locations have to be examined before a new value is assigned. Theoretically, the LocalCombination operation could be extended to handle vector combinations. Operation LocalRoot requires scalar values while trigonometric operations LocalSine, LocalCosine, LocalTangent, LocalArcSine, LocalArcCosine, and LocalArcTangent process angular measurements. Those specific requirements on input values make the operations inappropriate to vector fields. Operation LocalVariety, LocalMajority, and LocalMinority calculate a new value indicating the diversity in input values at each location. Since equality is defined and can be tested between two vectors, those operations are applicable to vector fields. LocalMaximum, LocalMinimum, and LocalMean are the operations that calculate descriptive statistics at each location. LocalMaximum and LocalMinimum are not applicable to vector fields because orders among vectors are not defined. LocalMean is applicable to vector fields but vector algebra must be used to obtain mean vectors (Hodgson and Gaile, 1996). LocalSum and LocalDifference are extensible to vector fields using vector algebra. Two operations, LocalDotProduct and LocalCrossProduct, represent the product of two vector fields. LocalDotProduct calculates the dot product of two vectors at each location and creates a scalar field. LocalCrossProduct calculates the cross product of two vectors and creates a vector field. LocalCrossProduct is only appropriate for 3D vector fields. LocalRatio is not applicable to two vector fields because division between two vectors is undefined. Since the ratio between a vector and a scalar does exist, LocalRatio is applicable only when the second field is a scalar field. There are many other possible local mathematical operations. These may include rounding and truncation functions, absolute values, modular differences, factorials, exponentials, logarithms, and so on. Most of these operations are only applicable to scalar fields on the interval/ratio scale.

8

LI AND HODGSON

Table 1. Local Operations on Scalar and Vector Fields Operation

Scalar field

Vector field

LocalRating LocalCombination LocalRoot LocalSine LocalCosine LocalTangent LocalArcSine LocalArcCosine LocalArcTangent LocalVariety LocalMajority LocalMinority LocalMaximum LocalMinimum LocalMean LocalSum LocalDifference LocalProduct LocalDotProduct LocalCrossProduct LocalRatio LocalMagnitude LocalAngle LocalNorm

Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes

Yes Yes

aMust

Yes

Yes Yes Yes

Yes Yes Yes Yes Yesa Yesb Yes Yes Yes

be 3D vector fields. field must be a scalar field.

bSecond

There are several new operations specific to vector fields. Operation LocalMagnitude computes the magnitude (length) of the vector at each location and creates a scalar field. The angle between two vectors is an important measurement. LocalAngle is used to compute angle(s) between two vector fields and generates a field with angular measurement(s). This operation is especially useful when comparing two directional fields. LocalNorm is another new operation that normalizes the vector at each location and creates a unit vector field. LocalNorm can be achieved through operation LocalRatio and LocalMagnitude, i.e., LocalNorm(V) = LocalRatio(V, LocalMagnitude(V)), where V is a vector field. Focal Operations Unlike local operations which calculate a new value using the values at the same location, focal operations compute the value as a function of the values in its

9

VECTOR FIELD DATA MODEL

Table 2. Focal Operations of Immediate and Extended Neighborhoods Operation FocalRating FocalCombination FocalVariety FocalMajority FocalMinority FocalMaximum FocalMinimum FocalSum FocalProduct FocalMean FocalPercentage FocalPercentile FocalRanking IncrementalLinkage IncrementalPartition IncrementalLength IncrementalFrontage IncrementalArea IncrementalVolume IncrementalDrainage IncrementalGradient IncrementalAspect IncrementalDiv IncrementalCurl FocalProximity FocalBearing FocalNeighbor FocalGravitation FocalPosition

Immediate neighborhood

Extended neighborhood

Scalar field

Vector field

Scalar field

Vector field

Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes

Yes Yes Yes Yes Yes

Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes

Yes Yes Yes Yes Yes

Yes Yes Yes

Yes Yes Yes

Yes Yes Yes Yes Yes Yes Yes

Yes Yes

neighborhood. A neighborhood is a set of locations related to a particular location called the neighborhood focus. There are two types of neighborhoods in cartographic modeling. An immediate neighborhood is limited to the eight locations immediately adjacent to the neighborhood focus. An extended neighborhood is defined as a set of locations within specified distances and/or direction(s) with respect to its neighborhood focus (Tomlin 1990). Operations of immediate neighborhoods. Based on the same reasoning as their local counterparts, operations FocalRating, FocalCombination, FocalVariety, FocalMajority, FocalMinority, FocalSum, and FocalMean are extendable to vector fields,

10

LI AND HODGSON

while FocalMaximum, FocalMinimum, and FocalProduct are not applicable to vector fields (Table 2). The operations LocalDotProduct and LocalCrossProduct are not extendable to immediate neighborhoods. Operation FocalPercentage, FocalPercentile, and FocalRanking contrast the value of its focus to those in its neighborhood. Only the FocalPercentage is applicable to vector fields since the equality relationship can be verified between two vectors. Both FocalPercentile and FocalRanking involve the ordering of the vectors within a neighborhood, and thus are not applicable to vector fields. Operation IncrementalLinkage and IncrementalPartition characterize the form of linear and area features within the neighborhood, respectively. These operations operate on input fields representing linear or area features with nominal data, and are thus not applicable to vector fields. Operation IncrementalVolume, IncrementalDrainage, IncrementalGradient, and IncrementalAspect characterize surface conditions. IncrementalVolume and IncrementalDrainage are limited to scalar fields. Cartographic modeling defines IncrementalGradient and IncrementalAspect as two operations that characterize the slope and aspect of a surface in the immediate neighborhood. The operations, however, could be endowed with the concept of derivative. A derivative of different orders may be applied to fields. The first derivative of a surface represents the greatest rate of change that is a vector quantity and can only be fully described by its direction (aspect) and magnitude (rate). Theoretically, only one operation, IncrementalGradient, is needed. When it is applied to a scalar field, the result is a vector field that indicates the greatest rate of change at every location.1 Several methods for deriving gradient in an immediate neighborhood have been empirically evaluated in the literature (Hodgson, 1998). Although operation IncrementalGradient is typically defined on immediate neighborhoods, it may be calculated using 24 (or more), instead of 8, neighbors. While operation IncrementalGradient calculates the magnitude and direction of the greatest rate of change, the rates of changes in any direction could also be computed. This is called directional differentiation in mathematics. A new operation IncrementalGradientIn, which calculates the rate of change in a specific direction, could be added. The result from IncrementalGradientIn is a scalar field storing just the magnitude of a vector field where all the vectors have the same direction. Extending the concept of a derivative to vector fields, two new operations, IncrementalDivergence and IncrementalCurl, can be introduced. While IncrementalDivergence computes a scalar field that represents the amount added or subtracted at the focus based on the flow within its neighborhood operation IncrementalCurl computes a vector field that represents the rotation vector at the focus. The two operations are the discrete approximation of the divergence and curl operations in vector calculus. Operations of extended neighborhoods. By extended neighborhoods, we mean the locations at a specified distance and/or direction in the Euclidean or a non-Euclidean space, or the locations that have a certain relationship with the focus. While immediate neighborhoods are normally defined in Euclidean space, extended neighborhoods may be defined in a non-Euclidean space where distance between two 1Actually, it is an approximation of the greatest rate of change because of the sampling on the surface in the raster data model.

VECTOR FIELD DATA MODEL

11

locations is expressed in terms of the quickest time or least cost associated with the motion between them. The path of the motion in a non-Euclidean space may not confirm to a straight line. Extended neighborhoods may also be defined as locations that exhibit certain functional relationships with the neighborhood focus. This type of neighborhood need not be contiguous. Examples of such neighborhoods are viewsheds and watersheds. Incremental operations are limited to immediate neighborhoods and are not applicable to extended neighborhoods. All other focal operations discussed above can be applied to extended neighborhoods. Their applicability to vector fields (Table 2) follows the same reasons as that for immediate neighborhoods. Operation FocalProximity, FocalBearing, and FocalNeighbor characterize, respectively, the distance, direction, and value of the nearest target within its neighborhood. Targets in the input field typically represent point, line, or polygon features. Because of this, they are generally not applicable to vector fields. However, when operation FocalProximity is applied in a non-Euclidean space, the distance between a location and its nearest target is calculated based on movement cost on a friction field that could be a vector field. The third application example in the next section demonstrates such a case. A new operation, FocalPosition, would calculate the distance and direction to the nearest neighborhood and store them as a vector in a vector field. Operation FocalGravitation calculates a new value for the focus as a distance weighted average of the target values within its neighborhood. It is also generally known as the inverse distance weighted interpolation method. Directional isolation interpolation (Shepard, 1984) is based on angles between observations. With vector measurements as targets in vector fields, directional isolation could be included in the FocalGravitation operation. The diversity and challenge of constructing neighborhoods are an interesting and useful part of the cartographic modeling framework. The framework does provide several extended neighborhoods (through the spreading and radiating options) implemented as black-box options for some focal operations. However, the cartographic modeling framework neither provides for user-defined neighborhoods nor does it supply elementary operations for neighborhood construction. FocalInsularity was originally listed as an operation of immediate neighborhoods in the cartographic modeling framework (Tomlin, 1990). We suggest this operation as a method of delineating neighborhoods where the locations in a neighborhood are contiguous and have the same value as the focus. Zonal Operations Zonal operations compute a new value for each location as a function of the values within a zone containing the location. Zonal operations require two input fields, the value field and the zonal field. Integer numbers are most conveniently used to define zones. Theoretically, real numbers as well as vectors could also be used to define zones. For example, all the cells having a magnitude of 7.56 and a direction of 204.89 may define a zone in a vector field. Zones provide all-inclusive but mutually exclusive coverage of a spatial domain. Zones are not necessarily contiguous.

12

LI AND HODGSON

Table 3. Zonal Operations on Scalar and Vector Fields Operation ZonalRating ZonalVariety ZonalMajority ZonalMonority ZonalMaximum ZonalMinimum ZonalProduct ZonalSum ZonalMean ZonalPercentage ZonalPercentile ZonalRanking

Scalar field

Vector field

Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes

Yes Yes Yes Yes

Yes Yes Yes

Operations ZonalCombination, ZonalRating, ZonalVariety, ZonalMajority, ZonalMinority, ZonalMaximum, ZonalMinimum, ZonalSum, ZonalProduct, and ZonalMean summarize the values from within a zone (Table 3). For the same reasons as their counterparts in the local and focal groups, some of those zonal operations are applicable to vector fields. Operations ZonalPercentage, ZonalPercentile, and ZonalRanking contrast the value at each location to those in the zone. As their counterparts in the focal group, ZonalPercentage is applicable to vector fields while ZonalPercentile and ZonalRanking are not appropriate for vector fields. Both neighborhoods and zones are not required to be contiguous. It could be argued that zones are special neighborhoods that do not overlap. Zonal operations are therefore essentially focal operations where the non-overlapping zonal field stores neighborhood definitions for each location. Global Operations Some commercial GIS also offer an additional group of global operations that the original cartographic modeling framework does not provide. Some of those operations, for example, component labeling, cost distance calculation, and watershed delineation, are the operations for constructing extended neighborhoods. Other global operations might be considered as either focal operations where the neighborhoods cover the entire area or zonal operations where a single-zone represents the entire area. The mathematical functions involved in those global operations can be much more complex than the operations listed in the focal and zonal groups. Examples of such mathematical functions are histogram equalization, principal component transformation, and supervised or unsupervised classifications in digital image processing. Principal component transformation on vector fields has been developed by Klink and Willmott (1989). A method of calculating the correlation between two vector fields has already been developed (Hanson et al., 1992). The correlation method, however,

VECTOR FIELD DATA MODEL

13

should be used cautiously because the sample size influencing the degrees of freedom can be artificially varied by creating grids with different cell spacing. In addition, correlation in traditional statistical methods assumes that the observations are taken as independent samples from the larger population. This assumption may be difficult to accommodate with the exhaustive sampling method implied in the raster representation of fields. To the best of our knowledge, no research on spatial autocorrelation and geostatistics of vector fields has been conducted. It becomes clear at this point that the cartographic modeling approach only provides a convenient framework for organizing operations. It fails to identify elemental operations as applications constantly introduce new operations. EXAMPLE APPLICATIONS This section demonstrates the applications of the proposed vector data model and vector operators. The examples presented focus on the problems related to a digital elevation model (DEM). The cartographic model procedures given in the examples adopt the common syntax of object-oriented languages. A typical statement in those procedures has the form of NewField = Field.Method(Arguments), where Field and NewField are either scalar or vector field objects and Method is one of the operations applicable to the Field object. A method (i.e., an operation) may require zero or many arguments. Surface Normal Calculation The terrain surface normal is widely used in shaded relief mapping, topographic normalization, solar radiation calculation, and surface comparisons (Hodgson, 1998). The terrain surface normal is a three-dimensional vector field, which could be computed using the operations on vector fields. The following method of calculating a terrain surface normal is based on Fleming and Hoffer’s algorithm (Ritter, 1987) using 4-neighbors. The normal vector, n, at cell pc, is calculated using the elevation values of the four immediately adjacent locations (Fig. 2). Vector new, which originates at the center of cell pw and ends at the center of pe, represents the spatial rate of change along the west-east direction. Another vector nsn, which originates at the center of cell ps and ends at the center of cell pn, represents the spatial rate of change along the south-north direction. In mathematics, vectors new and nsn are the directional differentiation of the DEM in the west-east and south-north directions, respectively. From Figure 2, both new and nsn are three-dimensional vectors. In the Cartesian coordinate system, new is the triple (2d, 0, ee-ew) and nsn is the triple (0, 2d, en - es), where d is cell size and ee, ew, en, and es are the elevations at the center of the cell pe, pw, pn, and ps, respectively. The cross product of vector new and nsn is the vector that is perpendicular to the plane formed by vector new and nsn (Fig. 2). The norm of the cross product is the surface normal at the center of cell pc. It is worth noting that the choice of vector new and nsn is arbitrary. Vectors representing the spatial rate of change along the diagonal directions of the cell pc could also be used in the calculation. The surface normal vector field could be constructed using the following vector cartographic modeling procedure:

14

LI AND HODGSON

Fig. 2. Surface normal calculation from two vectors.

WEVField = aDEM.IncrementalGradientIn(#WESTEAST); SNVField = aDEM.IncrementalGradientIn(#SOUTHNORTH); VField = WEVField.LocalCrossProduct(SNVField); SurfaceNormal = VField.LocalNorm(). In the procedure, WEVField, SNVField, VField, and SurfaceNormal are four 3D vector fields, and aDEM is a scalar field representing the terrain. The spatial rates of changes on elevation in the west-east and south-north directions are derived using the operation IncrementalGradientIn on aDEM. The results of those two operations are two 3D vector fields WEVField and SNVField. The LocalCrossProduct operation applied to vector fields WEVField and SNVField creates another vector field VField. The LocalNorm operation on VField creates the terrain surface normal vector field SurfaceNormal. Surface Comparison A common method for assessing the accuracy of a DEM is to compare the surface derived from a specific technique (e.g., softcopy photogrammetry) to the reference data for the same study area. The common practice in accuracy assessment is to conduct separate evaluations of the errors in elevation, slope, and aspect. Two DEMs for the Bethel, TN study area are shown in Figure 3A and 3B. The errors in elevation could be simply derived by calculating the difference between the DEM in question and the reference DEM. Deriving errors in aspect, however, are not as straightforward as in elevation. Hodgson and Gaile (1996) pointed out that aspect difference could not be correctly obtained by directly applying the LocalDifference operation to two aspect fields (Fig. 3C). The bright and dark areas in Figure 3C indicate the locations with large differences between the two aspect fields. The gradient of a DEM should be represented as a vector field (Chrisman, 1997)

VECTOR FIELD DATA MODEL

15

Fig. 3. Bethel Valley quad represented by two different stereophotography-derived DEMs—a USGS DEM 30m DEM (A) and high resolution reference 30m DEM (B). Aspect difference based on difference in scalar fields (C) and bidirectional difference between vector fields (D).

instead of two scalar fields (i.e., conventionally represented as slope and aspect). The difference in the direction of the two gradients could be calculated, correctly, through the following vector cartographic modeling procedure: USGSGradient = USGSDEM.IncrementalGradient(); ReferenceGradient = ReferenceDEM.IncrementalGradient(); DirectionDifference = ReferenceGradient. LocalAngle(USGSGradient). In the procedure, USGSGradient and ReferenceGradient are two 2D vector fields derived from the USGSDEM and ReferenceDEM, which are scalar fields, using the IncrementalGradient operation. Operation LocalAngle generates an angular field, DirectionDifference, which contains the angles between two gradient vector fields.

16

LI AND HODGSON

Fig. 4. Three-dimensional angular difference between surface normal vectors from the two Bethel Valley DEMs.

The correct aspect differences (Fig. 3D), when calculated using the vector cartographic modeling procedure, are not as large as the ones incorrectly calculated in Figure 3C. With the presented concept of vector fields and associated operations, errors in surface normals from two different DEMs could also be calculated. Knowledge of the errors in surface normal is important for applications where solar radiation or topographic normalization will be conducted. A similar procedure could be applied to derive the surface normal difference between two DEMs: USGSSurfaceNormal = USGSDEM.SurfaceNormal(); ReferenceSurfaceNormal = ReferenceDEM.SurfaceNormal(); Difference = ReferenceSurfaceNormal. LocalAngle(USGSSurfaceNormal). In the above procedure, USGSSurfaceNormal and ReferenceSurfaceNormal are 3D vector fields. Both could be derived from the DEMs using the procedure discussed earlier. Local operation LocalAngle calculates the angular difference between the two surface normal fields. Figure 4 illustrates the result when the procedure is applied to the USGS DEM and the reference DEM in Figures 3A and 3B. Cost Distance FocalProximity is an operation that calculates the distance between a focus and the nearest target in its neighborhood. In a non-Euclidean space, distance reflects the cost of movement across a friction field, which could be measured as time, dollars, or energy. Finding the shortest distance from a location to its nearest target views the raster data model as a network. The centers of the cells are network nodes while the

VECTOR FIELD DATA MODEL

17

line segments connecting the center of a cell to the centers of its eight immediate neighbors are network links. Travel cost through the links is determined from the values in the friction field. Dijkstra’s (1959) shortest path algorithm on graphs and variations of the algorithm (Dreyfus, 1969) are typically used to compute the leastcost path. This example demonstrates how the least-cost path could be calculated when the friction is a vector field, whereas most GIS only deal with scalar friction. A hypothetical DEM based on a 2D Gaussian distribution function (Fig. 5A) is generated. The least cost path between a source cell and a destination cell on the Gaussian DEM is desired (Fig. 5A). Cost in this example has two components, horizontal distance and vertical distance. Slope of the DEM (Fig. 5B) is the friction field, which actually measures the cost of vertical movement. It is further assumed that the vertical movement costs 10 times more than horizontal movement, and moving down a slope costs the same as moving up a slope. With those inputs and assumptions, the least-cost path derived using a commercial GIS in shown in Figure 5C. Common sense would suggest the least cost path would be parallel to isolines (e.g., contours) as they minimize vertical movement. The problem lies in the way the vertical cost is calculated from the slope friction field. When movement is up/down slope, friction is encountered (represented as angle a in Figure 6A). If the movement is perpendicular to the slope direction (i.e., across slope), there is no friction. Thus, friction changes with movement direction. The relationship between the amount of friction and the projected angle between a movement direction and the slope direction is shown in Figure 6B. When both the movement and the slope friction are represented as vectors, the relationship in Figure 6B could be mathematically described as the dot product of the two vectors. To correctly derive the least-cost distance, the slope friction field should be represented as a vector field, in which its magnitude has a unit of meters per unit distance. The calculation of movement cost from cell-to-cell requires a new method involving vector algebra when the friction is a vector field (Fig. 7). The friction field for the topographic surface contains a vector in each cell where the magnitude represents the slope and the direction indicates aspect. The incremental cost of moving from the center cell (A) to the northeast cell (B) has two parts. The first part, horizontal distance (COSTd in Fig. 7), is the distance between cell A and B. Vector C represents the movement vector from cell A to cell B. The magnitude of vector C is the distance between cell A and B and its direction is 45°. The friction vector Fm, which introduces vertical cost to the movement vector C, is approximated as the mean vector of the friction vectors at cell A and B. The second part, vertical distance (COSTf in Fig. 7), is the dot product of the movement vector C and the mean friction vector Fm. The total cost is the sum of COSTd and COSTf. This new method, which represents the slope friction field as a vector field (Fig. 8A) and uses vector algebra in the cost calculation, is applied to the Gaussian DEM. The gray path in Figure 8B is the least-cost path derived by the new method and the black path is the one derived by the traditional method. By overlaying the least-cost paths on top of the friction vector field (Fig. 8C), it is obvious that the traditional method does not consider cost differences in different movement directions. Because of this, the least-cost path derived by the traditional method follows slope direction (Fig. 8C) while the path derived by the new method is almost always perpendicular to slope direction.

18

LI AND HODGSON

Fig. 5. Least-cost path between A and B where slope is treated as a scalar friction field. The hypothetical DEM is shown in (A) while the slope is in (B). The incorrectly calculated “leastcost” path is shown in (C).

VECTOR FIELD DATA MODEL

19

Fig. 6. Friction, slope direction, and movement direction angles are shown in (A). Slope angle (a), movement slope angle (b) and projected angular difference between slope direction and movement direction (c). Relationship between projected angular difference and friction are shown in (B).

Fig. 7. Computation of incremental cost (i.e., COST) for moving from the focus cell to a diagonal neighbor cell.

20

LI AND HODGSON

Fig. 8. Least-cost paths on the hypothetical DEM. Slope friction as a vector field (A). Leastcost paths (B). Least-cost paths overlain on the vector friction field (C).

The slope vector friction field in this example has a physical meaning, the vertical distance introduced by a movement. The concept and method of calculating vector friction, however, is general in nature and should not be limited to this example. In our example, we assume that moving uphill would cost the same as moving downhill. Removing this assumption would introduce negative impedance in the calculation of least-cost path that Dijkstra’s algorithm cannot handle. The authors are exploring other shortest path algorithms that can include a negative friction. Applications of the proposed data model and operations are not limited to the demonstrated examples. In the analysis of mean surface winds in the contiguous United States (Klink, 1998), the mean surface wind vector field could be interpolated from weather stations using the FocalGraviation operation. Monthly wind differences could be derived using the LocalDifference operation. Zonal operations, such as ZonalMean, could also be used to calculate mean wind characteristics for climatic zones or states. Wind steadiness index (Klink, 1998) could also be computed by first using the LocalMagnitude and then the LocalRatio operation. In the atmospheric moisture study (Maidment, 1996), operation IncrementalDivergence could be applied to the moisture flow vector field. The divergence of the moisture flow vector field, which is a scalar field, is the net rate of additional vapor to the flow field by evaporation less precipitation. In groundwater modeling, Darcy’s law is the governing equation that predicts average fluid volume flux rates through porous media. A fluid velocity vector field could be derived by applying the IncrementalGradient operation to a head field. CONCLUSIONS While the approach to measurements in GIS is still strongly influenced by Stevens’ four levels of measurements, there are other measurements that are not handled by the taxonomy (Chrisman, 1998). As demonstrated by this research, vector measurements, which require both direction and magnitude to completely describe them, are another example that is beyond Stevens’ four levels. Existing GIS data

21

VECTOR FIELD DATA MODEL

Table 4. New Operations Applicable Only to Vector Fields Local operations LocalMagnitude LocalNorm LocalDotProduct LocalCrossProduct LocalAngle

Focal operations

Zonal operations

IncrementalDivergence IncrementalCurl FocalPosition

models and operations are inadequate and must be expanded to represent and analyze spatially distributed vector measurements (vector fields). The cartographic modeling framework provides a convenient way of organizing GIS operations. This research adopted an evolutionary, instead of revolutionary, approach of extending the cartographic modeling concept to vector fields. Vector algebra, which is different from the traditional arithmetic on scalar measurements, serves as the mathematical foundation for manipulating vector measurements. This difference leads to the identification of existing operations that are inappropriate for vector measurements and new operations that are only appropriate for vector measurements (Table 4). The concept of vector fields and associated operations were used in three DEM-related applications. The examples demonstrated the usefulness of the data model and operations in spatial analysis involving vector fields. The cartographic modeling framework adopts a reductionist approach in its attempt to identify the most elementary GIS operations and to operate complex tasks by combining the fundamental operations. Operations must perform on attributes or measurements. The originally conceptualized and implemented cartographic modeling framework is limited to Stevens' four levels of measurements. This research demonstrates that as new measurements (vectors) are introduced, there are both new operations specific to and old operations inapplicable to the measurements. It is conceivable that cartographic modeling operations on fuzzy measurements could also be developed in the future. A complete set of elementary cartographic modeling operations, if ever possible, will not be available until all measurement types are identified. Cartographic modeling operations do not adequately provide needed constructs for process-based environmental modeling, especially when the models are built on physical principles. The mathematical equations that characterize the movement of mass and energy across space reflect fundamental physical principles, such as the conservation of mass, energy, and monument (Hodgson and Gaile, 1999). Most of those equations do not have analytic solutions and numerical approximations are necessary. The incorporation of these elementary numerical methods in cartographic modeling is the first step in the development of process-based models within GIS. The cartographic modeling framework relies on the raster representation of geographic phenomena. Although extensions to cartographic modeling on point sets (Chan, 1988) and networks (Armstrong and Densham, 1997) have been done, it is still not clear whether the cartographic modeling framework can be fully extended to alternative representation schemes, such as the classical vector data model. Alternative taxonomies of GIS operations exist (Goodchild, 1987; Maguire and

22

LI AND HODGSON

Dangermond, 1991; Burrough, 1992; Giordano et al., 1994; Chrisman, 1997, 1999). These different taxonomies may also be appropriate for the organization of GIS operations. REFERENCES Armstrong, M. P. and P. J. Densham, 1997, “Toward a Network Map Algebra,” in Proceedings of the 13th International Symposium on Computer-Assisted Cartography, Auto-Carto 13, Seattle, WA: ASPRS and ACSM, 1-10. Blumberg, D. G. and R. Greeley, 1996, “A Comparison of General Circulation Model Predictions to Sand Drift and Dune Orientations,” Journal of Climate, 9(12II):3248-3259. Burrough, P. A., 1992, “Development of Intelligent Geographic Information Systems,” International Journal of Geographical Information Systems, 6(1):1-11. Chan, K. K. L., 1988, Evaluating Descriptive Spatial Models for Prescriptive Inference, Ph.D. dissertation, Department of Urban and Regional Planning, Harvard University, Cambridge, MA. Chrisman, N., 1997, Exploring Geographic Information Systems, New York, NY: John Wiley and Sons, 298 p. Chrisman, N., 1998, “Rethinking Levels of Measurement for Geography,” Cartography and Geographic Information Systems, 25(4):231-242. Chrisman, N., 1999, “A Transformational Approach to GIS Operations,” International Journal of Geographic Information Science, 13(7):617-637. Clark, W. A. V., 1971, “A Test of Directional Bias in Residential Mobility,” in Perspectives in Geography 1: Models of Spatial Variation, Dekalb, IL: Northern Illinois University Press, 2-27. Coombs, C. H., 1964, A Theory of Data, New York, NY: John Wiley and Sons, 585 p. Costanzo, C. M., Halperin, W. C., and N. Gale, 1986, “Criminal Mobility and the Directional Component in Journeys to Crime,” in Metropolitan Crime Patterns, Monsey, NY: Willow Tree Press, 73-95. Dijkstra, E. W., 1959, “A Note on Two Problems in Connexion with Graphs,” Numerische Mathematik, 1:269-271. Dreyfus, S., 1969, “An Appraisal of Some Shortest Path Algorithms,” Operations Research, 17:395-412. Gaile, G. L. and J. E. Burt, 1980, Directional Statistics, Northwich, UK: University of East Anglia, 350 p. Giordano, A., Veregin, H., Borak, E. and D. Lanter, 1994, “A Conceptual Model of GIS-Based Spatial Analysis,” Cartographica, 31(1):44-51. Goodchild, M. F., 1987, “A Spatial Analytical Perspective on Geographical Information Systems,” International Journal of Geographic Information Science, 1(1):327-334. Goodchild, M. F., 1992, “Geographical Data Modeling,” Computers & Geosciences, 18(4):401-408. Hanson, B., Klink, K., Matsuura, K., Robeson, S. M., and C. J. Wilhnott, 1992, “Vector Correlation: Review, Exposition, and Geographic Application,” Annals of the Association of American Geographers, 82(1):103-116.

VECTOR FIELD DATA MODEL

23

Hardy, D. M. and J. J. Walton, 1978, “Principal Components Analysis of Vector Wind Measurements,” Journal of Applied Meteorology, 17(11):1153-1162. Hodgson, M. E., 1995, “What Cell Size Does the Computed Slope/Aspect Angle Represent,” Photogrammetric Engineering and Remote Sensing, 60(2):513-517. Hodgson, M. E., 1998, “Comparison of Bi-Directional Angles from Surface Slope/ Aspect Algorithms,” Cartography and Geographic Information Systems, 25(3):173-187. Hodgson, M. E. and G. L. Gaile, 1996, “Characteristic Mean and Dispersion in Surface Orientations for a Zone,” International Journal of Geographical information Systems, 10(7):817-830. Hodgson, M. E. and G. L. Gaile, 1999, “A Cartographic Modeling Approach for Surface Orientation-Related Applications,” Photogrammetric Engineering and Remote Sensing, 65(1):85-96. Hsueh, Y. and R. D. Romea, 1983, “A Comparison of Observed and Geostrophically Calculated Wintertime Surface Winds over the East China Sea,” Journal of Geophysics Review, 88(10):9588-9594. Kemp, K. K., 1997a, “Fields as a Framework for Integrating GIS and Environmental Process Models. Part One: Representing Spatial Continuity,” Transactions in GIS, 1(1):219-234. Kemp, K. K., 1997b, “Fields as a Framework for Integrating GIS and Environmental Process Models. Part Two: Specifying Field Variables,” Transactions in GIS, 1(1):235-246. Klink, K., 1998. “Complementary Use of Scalar, Directional, and Vector Statistics with an Application to Surface Winds,” The Professional Geographer, 50:3-13. Klink, K. and C. J. Willmott, 1989, “Principal Components of the Surface Wind Field in the United States: A Comparison of Analysis Based upon Wind Velocity, Direction, and Speed,” International Journal of Climatology, 9(2):293-308. Jensen, J. R., 1996, Introductory Digital Image Processing, Upper Saddle River, NJ: Prentice-Hall, 318 p. Legler, D. M., 1983, “Empirical Orthogonal Analysis of Wind Vectors over the Tropical Pacific Region,” Bulletin of American Meteorology Society, 64(1):234-241. Maidment, D. R., 1993, “GIS and Hydrologic Modeling,” in Environmental Modeling with GIS, Oxford UK: Oxford University Press, 147-167. Maidment, D. R., 1996, “Environmental Modeling within GIS,” in GIS and Environmental Modeling: Progress and Research Issues, Fort Collins, CO: GIS World, 315-323. Maguire, D. J. and J. Dangermond, 1991, “The Functionality of GIS,” in Geographical Information Systems: Principles and Applications, Harlow, UK: Longman, 319-335. McQuistan, R. B., 1965, Scalar and Vector Fields: A Physical Interpretation, New York, NY: John Wiley & Sons. Ritter, P., 1987, “A Vector-Based Slope and Aspect Generation Algorithm,” Photogrammetric Engineering and Remote Sensing, 53(11):1109-1111. Servain, J. and D. M. Legler, 1986, “Empirical Orthogonal Function Analysis of Tropical Atlantic Sea Surface Temperature and Wind Stress: 1964-1979,” Journal of Geophysics Review, 91(10):14181-14191.

24

LI AND HODGSON

Shepard, D. S., 1984, “Computer Mapping: The SYMAP Interpolation Algorithm,” in Spatial Statistics and Models, Dordrecht, Netherlands: D. Reidel, 133-145. Stevens, S. S., 1946, “On the Theory of Scales of Measurement,” Science, 103:677680. Tauxe, J. D., 1994, Porous Medium Advection-Dispersion Modeling in a Geographic Information System, Ph.D. dissertation, Department of Civil Engineering, University of Texas, Austin, TX. Tobler, W. R., 1978, “Comparison of Plane Forms,” Geographical Analysis, 10(2):154-162. Tomlin, C. D., 1990, Geographic Information Systems and Cartographic Modeling, Englewood Cliffs, NJ: Prentice Hall, 249 p. Van Deursen, W. P. A., 1995, Geographical Information Systems and Dynamic Models. Development and Application of a Prototype Spatial Modeling Language, Ph.D. dissertation, University of Utrecht. Weber, A. H. and L. O. Blanton, 1980, “Monthly Mean Wind Fields for the South Atlantic Bight,” Journal of Physical Oceanography, 10(8):1256-1263. Wesseling, C. G., Karssenberg, D., Burrough, P. A., and W. P. A. van Deursen, 1996, “Integrating dynamic environmental models in GIS: The development of a dynamic modeling language,” Transactions on GIS, 1(1):40-48.