Abstract

Environmental modeling is a complex process involving large spatio- temporal datasets, many variables, and intricate computer programs. The process of running the model is a task that is often non- automated, undocumented, and difficult to change. What is needed is an overall framework to perform the spatial analysis and the modeling within. Such a framework is well handled by a GIS, a system specifically designed to handle spatial data. This project involves the implementation of STAMP, the Spatial Temporal Modeling Program. STAMP is a loosely coupled system that integrates a GIS (ArcInfo), a data visualization package (Data Explorer), and an environmental model (PnET) in the one modular system. It handles spatio-temporal data of different resolutions, and controls the interface between the spatial data processes of model input and output. Each run of the model encapsulates its parameters, input and output in the one system.


Section 1 : Introduction to the Project


1.1 : Introduction

Environmental modeling is a complex process. It involves large spatio-temporal datasets, many variables, and intricate computer programs. The actual process of running the model is a task that in often non-automated, undocumented, and difficult to change. What is needed is an overall framework to perform the spatial analysis and the modeling within. This framework is well handled by a GIS (ArcInfo), a system specifically designed to handle spatial data.

The idea for such a framework evolved into STAMP, the Spatial Temporal Modeling Program. The advantage of such a system is that it can handle both the spatial analysis needed to run the model, and the interface between the GIS and the model. As well as ease of use, the path from the selection of model inputs to the analysis of model outputs can be traced, allowing repeatability and verification of model results. Model input, output, and runtime parameters are encapsulated within a model-object which describes it completely. In addition to these features, STAMP also provides a link to the Data Explorer visualization package, which allows the animation of temporal grid series, a feature not available from within the GIS environment. The graphing of the time-series output from the model is handled from within the GIS.

1.2 : Environmental modeling and GIS

In today's world of environmental decision making it is important to have an understanding of the natural processes that are being disturbed. Decision making organizations often follow economic guidelines and must produce solutions that are cost effective and backed by scientific method. There must be a thorough understanding of the existing environmental situation as well as a mechanism for predicting the outcome of future scenarios. The natural environment is too fragile for costly experimentation, but it can be approximated using numerical models run on computers, and using site data. .

One of the strengths of a GIS lies in its ability to handle large volumes of data from diverse sources and formats. If the GIS and modeling system is to be used effectively for decision making and planning, high quality data and tools are needed. As the commercial market focuses on inventory and management of spatial data rather than analysis and modeling, most existing modeling systems were developed for specific applications. There is a need for software tools which are flexible enough for a variety of modeling situations.

Another problem is the misuse of computing tools and the misunderstanding of computer generated output. If environmental models are to be used in planning decisions there must be a high degree of confidence in results, or a good description of uncertainty. Software should specify constraints for both inputting data and results, and tasks should be automated to reduce human error. As datasets become larger, expert and knowledge systems have a growing role in the automation of analysis and decision procedures as well as decision support. The use of such tools helps bring order to the previous informal methods of data analysis in environmental modeling. One of the biggest problems in performing analysis is not the use of the tools themselves, but the management of the data and its output in a coherent manner between the variety of tools used to produce the results.

1.3 : The aims of the project

The aim of this project was to create a reusable software environment which uses a GIS (ArcInfo) for the handling and processing of spatio-temporal data for an environmental model (PnET), but uses other computer systems where appropriate for specific tasks. The system is more general than modeling just with PnET. The actual numerical modeling is handled external to the GIS, with model input and output being passed back and forth between systems.

The temporal data layers at various resolutions used by the model are handled in a unified manner within the GIS. Animation of spatio-temporal data is handled by a visualization package (IBM's Data Explorer) external to the GIS. It handles missing and erroneous data, as well as suggesting default values. The whole system is encapsulated within a modular framework that is simple and reusable. To implement an environmental model other than PnET, the model used as an example by this project, it should only be necessary to change those parts of the system that are specific to that environmental model.


Section 2 - Background to the project


2.1 : Why use a Geographical Information System ?

GIS and environmental modeling are closely linked, with a common interest in spatial data and processes. The basic concepts in a GIS are location, spatial distribution and relationships. In environmental modeling the basic concept is of states; expressed by numbers, mass, energy, interaction and dynamics, and biological, chemical and environmental species. The question here is not just the use of computers for environmental modeling, that is an established practice, but of the integration of environmental modeling with GIS technology (Fedra, 1993). It is because ecological modeling attempts to model the environment that it has to handle the wide variety of data models used to describe phenomena. Examples include using the point data model to describe lakes, the line data model to describe rivers, the polygon data model to describe watersheds, data-networks to describe stream networks, and Triangulated Irregular Networks to describe topography. This is where a GIS is useful, but the current technology often falls short of modeling needs. The selection of the data model used to represent the real world is constrained by the method of gathering data (some data is only available via satellite), the spatial extent of the data, and by the approximate nature of describing the real world in a computer database. Despite this, a GIS can handle these varying data types and a larger range of spatial analysis tasks than a purely numerical model (Goodchild, Parks & Steyaert, 1993).

One major problem with current numerical models is that they are very difficult to use. They often involve tedious data handling and inflexible data formats. This is true in the PnET environmental model which currently requires five cryptically formatted ascii files of constants and input data. The preparation of this input data requires modelers to examine site and historic data in database and spreadsheet programs before exporting data to the format required by the model. It is the difficulty of handling such data that forces the user to focus on the software and not the modeling task. If a GIS were to be used in the preprocessing stage of modeling it could bring data from a variety of formats into a common system. This is not merely a task of using a universal database or implementing a common user interface. The key then is the ability of a GIS to analyze spatial data. For example, to examine trends and to select sensitive regions for further research, and to prepare data for input to an environmental model. Preprocessing tasks that are appropriate for the GIS include overlay analysis, presenting a spatial view of tabular data, the selection of input sites who's attributes fulfill certain criteria, the generation of proximal polyons, and some spatial statistics. Post-model analysis can include any analysis that is incorporated within the scope of the GIS. There is a need for software tools which can be used within a variety of modeling situations. These tools must be modular so they can be reused for different modeling tasks.

2.2 : Time and Environmental Modeling

Goodchild et al (1993) agree that a temporal, non-two dimensional approach is needed in current GIS technology. Most current usage though concentrates on the two dimensional aspects of GIS because this is considered to be where GIS is currently useful.

The time component in spatial data should be included as an integral part of the appropriate spatial data and processes. Choosing a data model to effectively represent time depends on the aspect of time that should be emphasized. Langran (1992) discusses several ways that time is represented within a GIS, particularly having a complete base state with snapshot amendments which represent the change since the previous snapshot. In practice, because of the thematic nature of how data is captured and stored, the most common representation is sequential snapshots , each representing the state of the system, both spatial and aspatial data, at a particular instant in time (Figure 1).

The sequential snapshots 
representation of temporal data

Figure 1 The sequential snapshots representation of temporal data This example could represent the growth of a sea-grass bed on the ocean floor over time


The data for PnET, for example, was gathered at intervals, with a temporal resolution of days to months, and so translates readily to a snapshot model. At the time of implementing this project this was one of the few temporal methods available within existing GISs, so this simple snapshot representation was used for the temporal input and output data for the PnET model.

In practice, for example, a time series of yearly temperature grids could be referred to as a single dataset and, with the addition of descriptive metadata, handled by the GIS in this manner. The STAMP system handles the temporal snapshot data of the PnET model in this manner using temporal-objects. A temporal- object is a collection of data snapshots which can be considered as one data layer. For example, the precipitation dataset over the Adirondack region for 1985, 1986, 1987 and 1988 could be described as a temporal-object 'Precipitation 1985-1988', with a temporal resolution of one year (Figure 2). When this object is viewed with the GIS, each layer would be shown sequentially. Alternatively, within STAMP, animation techniques are be used to view the data by using an interface to the Data Explorer Visualization package.

An example of a temporal object

Figure 2 An example of a temporal object

2.3 : The concept of a model object

The implementation of the PnET environmental model with the STAMP system follows the concept of a model object. In an object-oriented system objects are a combination of variables defining the object characteristics, and routines to perform object specific functions. By using model objects, it is relatively easy for the system to be built for a number of environmental models. Only the model object (code and variables) would need to be changed.

In STAMP, a particular instance of a model object is a collection of the parameters and other characteristics of the environmental model described as a series of variables and software tools within the GIS framework (Figure 3). Software tools developed for use in environmental modeling must be modular so they can be reused for different modeling tasks. Changes to the model should not have to involve changes to non model-specific software tools. As the model object is specified for every environmental model, in theory, it is only the unique parts of the environmental model interface code that needs to be changed when a new environmental model is to be interfaced by STAMP. The rest of the system is composed of non- model specific software tools for the analysis, and display of the spatial data.

An instance of a model object

Figure 3 An instance of a model object

2.4 : The Environmental model - PnET

The results of atmospheric deposition are evident in the environmental problems being experienced in temporate and boreal forest ecosystems such as the Adirondack mountains in New York State, USA. The questions that are asked of this and similar regions often take the form of 'if this course of action is taken, what will be the effect on the lakes?' To help investigate such problems the PnET environmental model of carbon and nitrogen cycles was developed by a team from Syracuse University, University of New Hampshire and the University of Toronto (Driscoll & Van Dreason, 1993) (Aber & Federer, 1992). It fulfilled the need for an environmental model which can be used to examine various scenarios of 'atmosphere deposition and/or land management policies on forest and aquatic ecosystems' (Csillag, 1995).

PnET is 'a generalized lumped-parameter model of photosynthesis, evapotranspiration and net primary production' (Aber & Federer, 1992 : 463). It is an empirical model, spatially integrating the entire site being modeled and spatially and temporal averaging its properties to smooth small variations. The presentation by Aber and Federer (1992) of the PnET model applied to ten temperate and boreal forest ecosystems shows how this simple nitrogen and carbon model is successfully implemented. PnET runs over monthly time steps using historical and site data as input. This input includes maximum temperature, minimum temperature, solar radiation, precipitation as well as a variety of other parameters environmental constants. There are optional routines for calculating maximum temperature, minimum temperature, solar radiation and precipitation from elevation. Climatic conditions for a month are calculated based on mean values. The version of PnET discussed by Aber and Federer is composed of 5 compartments and eleven fluxes, calculated monthly (except for the carbon allocation to wood and fine roots where the excess carbon from net photosynthesis is accumulated yearly).

The four major steps in running the version of PnET discussed by Aber and Federer (1992) start with performing the climate calculations for the first day of the month to compute vapor pressure deficit, day length, mean day and night temperatures and the radiation per second of daylight. This is followed by the foliage routines to calculate the foliar mass and the potential gross photosynthesis for the canopy. Maximum photosynthetic rate is considered a function of the foliar nitrogen concentration. The carbon and water balance routines calculate the available water over the month, the change in water storage, the degree of water stress on vegetation, realized transpiration and net photosynthesis. Finally the carbon canopy gain over the year is accumulated and net primary production of wood and root is calculated (Aber & Federer, 1992).

The study area considered in this project is a watershed in the Adirondack mountains in northern New York state , USA. It is a largely forested area containing many lakes, and is prone to the effects of acidic deposition (Driscoll & Van Dreason, 1993).

PnET can also be run in Monte-Carlo mode, producing statistics describing the average and standard deviation of model variables. This is the form of PnET implemented in this version of STAMP. Also, out of a number of possible output variables, 'Net Photosynthesis' and 'Nitrogen in Drainage Waters' are the 2 variables available for display within STAMP.

The PnET model itself will not be examined in further detail as this is beyond the scope of this paper. Instead, a 'black box' approach is used, where the STAMP system passes data to the environmental model, and receives output back, but has no contact with the actual modeling system beyond a necessary knowledge of input and output data structures.

2.5 : Data

An interesting trend in current data modeling incorporates concepts of 'object orientation'. This includes encapsulating objects and their operations together in the database, and allowing objects to inherit attributes from parent objects. An example is an airport hanger which would inherit characteristics from the airport parent object (Goodchild, 1993). This concept is extended in this project to the model object which encapsulated both the constants and parameters of the PnET model with the computational routines necessary to implement the running of the model.

The dataset being used in this project is composed of temporal snapshots of lake acidification and climatic data from the Adirondack region. This includes both historical and site data. The tabular data is input into the relational database INFO and linked to a base ArcInfo point lake coverage using ArcInfo relational links. Other supporting data themes are input as ArcInfo coverages and grids. To run PnET with the specific set of model flags used in this version of STAMP, only DEM elevation data specific to the region, and a point coverage of site locations is needed. Proximal polygons are created around point locations, or alternately a spatial layer such as watershed boundaries can be used. This is the only spatial data that must be selected at each model run.

2.6 : System Framework

STAMP is described as being a loosely coupled system. The term loose coupling is used when simulation models and a GIS have enough coupling, or linkage between systems, to allow the transfer of data for pre-processing and displaying results (Figure 4). This is the case with the STAMP system. To have close coupling would require that the GIS and the model share the same data structures, which may not be appropriate for disparate systems (Lammers & Band, 1994) (Fedra, 1993).

STAMP : A loosely coupled system

Figure 4 STAMP : A loosely coupled system

2.7 : The need for Visualization

Today's environmental modeling produces vary large volumes of data. Data demands have grown along with computing power in terms of increasingly fine data resolutions and the increasing spatial and temporal extents of the model's expectations. Effective visualization techniques such as animation are necessary exploratory data analysis techniques to extract the important information from this data. As the visualization of temporal data is not a GIS specific task it was decided to handle this visualization using an animation and data visualization package (Data Explorer) external to the GIS. This solution is implemented within STAMP by allowing coverage data to be viewed in either ARC/PLOT or IBM's Data Explorer.


Section 3 : The STAMP system


The GIS component of STAMP is the driver that links the environmental model and the visualization package into a loosely coupled system. This utilizes the strengths of each system as the GIS alone is not optimized for numerical modeling or complex visualization. It can be described as being loosely coupled because the system modules do not share data structures. Data can be viewed either in the GIS or in the visualization package (as temporal data layers). This includes existing data layers, model output and data layers created in the GIS. This has opened up a range of data visualization techniques that are available from within Data Explorer

3.1 : Software and Hardware

I specify here the software packages integrated within the STAMP system. The GIS, ArcInfo Rev 7.0.3, from Environmental Systems Research Institute (E.S.R.I.) is used in this project because it is a high level GIS well able to handle the large volume of data and the complex analysis procedures needed in environmental modeling. The INFO database component of ArcInfo is used to contain the Adirondack attribute database, while the ARC/PLOT sub-module is used to display data. The STAMP system and user interface was programmed using AML, the Arc Macro Language.

The animation and data visualization package used in STAMP for the animation of time-series is Data-Explorer by IBM Systems. This is a separate system with its own scripting language for defining 'Visual Programs'. The user can control the animation using 'VCR' style controls. Besides being an excellent animation package with scope for future developments, there is growing interest in the use of such a system for the visualization of GIS data. This was evident in some of the pre-developed Data-Explorer tools available (IBM, 1993).

As discussed in detail previously, the environmental model used with this implementation of STAMP is PnET, created by a team from Syracuse University, University of New Hampshire and the University of Toronto.

3.2 : The system Structure

STAMP is created using ArcInfo's AML programming language. It is developed using an initial system for viewing data themes created by Val MacDuff of GeoSys. This initial system includes an object oriented hierarchy created using AML which handles object creation and passing up and down the object hierarchy, error handling, displaying and coverage themes and legends, pan and zoom functions, and the initial graphical user interface.

STAMP is a multi-user system with routines in a main code directory, and each user having a directory in their home directory where temporary files, system files, and object and themes files are stored. The actual data for the program can be stored anywhere in the operating system hierarchy.

The object oriented style of coding a system (not the abstract object hierachy), is a programming methodology which considers the system's components as a collection of objects rather than functions which perform a task. Each object consists of the variables that defines that object, and the routines for performing operations on that object. This concept of encapsulating object descriptions and methods together means that any and all changes to an object are made by internal routines. It is not possible for another module to alter an object. The result is that object-oriented code is highly modular. Changes to an object can be made independent of other objects, and objects are reusable in other systems. The down side is that object-oriented systems are inefficient because of the added processing overheads (Sommerville, 1989).

3.3 : Coding Considerations

Important aspects of object oriented coding are the concepts of instantiation, and of inheritance. The process of instantiation refers to when a object is assigned values as a particular occurrence of an object. For example, a plotting object could have a variable that contains the font style. In one instantiation of that object called Plot_1 this variable could be set to 'Courier', while the instantiated object Plot_2 has the value of 'Geneva' for this variable.

The concept of inheritance refers to how objects can be composed of other objects, and inherit characteristic from a parent object. When an object does not know how to implement a method it asks its parent objects how to, passing the request recursively up the object tree until it is can be processed. The base object in the object tree contains methods common to all objects such as opening and saving. Above the base object are only error routines for handling rogue object methods. See Appendix 2 for the Object Hierarchy diagram.

AML is a functional computer language, but the initial system shell described previously implements a method for programming in the object oriented style for STAMP. Every object has a name, a title, a parent object, and a list of methods that govern operations on that object. When objects are called with a method, if that method is not found then the parent object is searched recursively up to the base object.

3.4 : The STAMP Interface

The original graphical user interface component of the system is based on the ArcInfo interface shell described previously. As well as the new AML code that makes up STAMP, some templates were used from ARC/toOLS (distributed with ArcInfo). In addition, some ARC/toOLS for transforming data into Data-Explorer format were obtained from the Cornell Data Repository Site over the Internet. Figure 5 shows the basic STAMP interface. This includes a message menu for informing the user of actions, an ARC/PLOT display window, and a series of buttons on the message window which each change the spatial extent of the display (for example zoom and pan). Context dependent help can be obtained by selecting button and menu options with the right mouse button.

The Basic STAMP Interface

Figure 5 The Basic STAMP Interface

The STAMP system works on the concepts of views and themes. A theme is an object that is defined on a data layer. It contains variables that define how that theme is displayed, and any other information associated with that theme. An example of a theme is shown in Figure 6. Themes are modified using the property sheet for that theme. The property sheet is a menu that contains all of the variables associated with that object and allows the user to change and save new objects.

An example of a properties sheet for a 
theme in the STAMP system

Figure 6 An example of a properties sheet for a theme in the STAMP system

A view is a collection of themes. The concept of a current-view is the view that is currently being displayed and updated. It is this current-view as a list of data themes that could be submitted to Data-Explorer for animation as an alternative to being displayed in ARC/PLOT. An example of a view is given in Figure 5. It contains a point theme of lakes, a line theme of the boundary of the Adirondack Park, and a Digital Elevation Model (DEM) for the region.

Data themes can be moved between views, deleted and created as a subset of an existing theme. To summarize, a theme is a collection of variables defining how a dataset is manipulated and drawn. A view is a list of themes, and is used to group themes.

In addition to the features discussed here, the STAMP system also includes modules for changing Session Preferences such as plotting options and the current model being run. Routines also exist for selecting subsets, and creating and querying themes

3.5 : The Model-Object

As discussed previously, in an object-oriented system, objects are a combination of variables defining the object characteristics, and routines to perform object specific functions. The concept of a model object refers to the encapsulating of the characteristics of an environmental model within a collection of variable definitions and methods. Each instantiation of a model object represents values for variable and pointers to datasets that a particular run of the model uses when it is initiated from within the GIS. By using model objects it is relatively easy for the system to be built for another environmental model. Only the model object (code and variables) will need to be changed.

An environmental mode (PnET) is run from STAMP by creating a new model object. This brings up a menu interface (Figure 7) that steps the user through the required steps and data selection needed to create the model object. Input data are selected from existing STAMP coverage themes. Model constants can be identified and updated from a scrolling list of variables. This menu structure restricts the data that the user can input to the model, and ensures consistency and repeatability between model runs. Some pre-processing of input data, such as the creation of proximal polygons, may occur at this stage so that the user can observe their effects.

An example of creating a model object

Figure 7 An example of creating a model object

Once all model input has been selected, the created instance of the model can then be run. At this point any pre-processing needed to convert the ArcInfo data to the correct model format will occur. In the case of PnET, this involved creating statistics from the elevation data supplied by the DEM for the proximal region surrounding each selected lake. In addition, all input files of variables and constants are recreated. Once all input has been created the model is run, and the output converted back into the INFO files associated with this instance of the model.

To view the output from the model, it can be placed in the current view just like any other theme. When the current view is drawn, the model object will draw itself by displaying times series graphs of selected output variables. If Monte-Carlo runs are selected then the lines of standard deviation and average values of the output variable will be displayed. A menu can be displayed for each model object to allow output variables to be selected, and to show what input data were used to run the model. An example of the output from PnET can be be seen in Figure 8.

Output of 'Nitrogen in Drainage 
Waters' from a Monte Carlo run of PnET

Figure 8 Output of 'Nitrogen in Drainage Waters' from a Monte Carlo run of PnET

3.6 : Visualizing Time

As described previously, the Data Explorer visualization package was used to display an animation of time series data. An example of a spatio-temporal theme of monthly maximum temperature implemented within STAMP is show in Figure 9. A GRID spatio-temporal theme is composed of a series of data grids, and information about the start and end time, the temporal increment, and how missing data will be extrapolated.

A spatio-temporal theme of monthly 
maximum temperature

Figure 9 A spatio-temporal theme of monthly maximum temperature

Figure 10 shows the themes from the view shown in Figure 5 being displayed using Data Explorer animation. In ARC/PLOT this theme would display just as its minimum bounding rectangle. Note that it is difficult to represent animation of temporal data in a static medium.

Displaying a spatio-temporal theme 
of monthly maximum temperature in Data Explorer

Figure 10 Displaying a spatio-temporal theme of monthly maximum temperature in Data Explorer


Section 4- Conclusion



In summary, STAMP is a loosely coupled system incorporating the GIS ArcInfo, the PnET environmental model, and the Data Explorer visualization package, for the purpose of viewing the spatio-temporal data required for environmental modeling. There is some sharing of data structures between the systems. Also, much of the spatial analysis necessary in preprocessing model input data is handled from within the GIS. There is a common graphical user interface that is used to initiate model runs and control their execution. This is all included within a modular system framework developed under the GIS. This governs not only interaction with the model, but with the visualization system that is coupled within STAMP.

The advantages of such a configuration are subsystems that are linked closely enough to allow data sharing transparent to the end-user, but a system that is flexible enough to be used within a range of modeling environments.

This project was successful in implementing the PnET interface, model objects, temporal and graphing objects, and the link to the visualization package as specified for the STAMP project. The STAMP system is currently being used to help analyse spatial data for input to PnET, to run the model, and to visualize spatio-temporal data. In this framework the STAMP system will enable modelers to explore environmental situations with increased flexibility of time and space. It is hoped that future work will ensure it is a useful tool for environmental decision making.


Appendix 1 : About STAMP


Appendix 2 : Object Hierarchy of STAMP

Object Hierarchy of STAMP



Bibliography

Aber, J.D. & Federer, C.A. 1992. "A generalized, lumped-parameter model of photosynthesis, evapotranspiration and net primary production in temperate and boreal forest ecosystems". Oecologia. 92 , pp 463-474

Csillag, F. 1995. "Biogeochemical effects of acid deposition : A geographic perspective on spatio-temporal computer modeling." WWW Document

Driscoll, C.T. & Van Dreason, R. 1993. "Seasonal and Long-Term Temporal Patterns in the Chemistry of Adirondack Lakes". Water, Air, and Soil Pollution 67: 319-344

Fedra, K. 1993. " and Environmental Modeling". In Goodchild, M.F., Parks, B.O. & Steyaert, L.T. (eds). Environmental Modeling with GIS. Oxford University Press, Oxford : Chapter 5, pp 35-50

Goodchild, M.F. 1993. "The State of GIS for Environmental Problem- Solving." In Goodchild, M.F., Parks, B.O. & Steyaert, L.T. (eds). Environmental Modeling with GIS. Oxford University Press, Oxford : Chapter 2, pp 8-15

Goodchild, M.F., Parks, B.O. & Steyaert, L.T. 1993. "Environmental Modeling with GIS". Oxford University Press, Oxford

IBM. 1993. "IBM Visualization Data Explorer. User's Guide Forth Edition". IBM Corporation : Yorktown Heights : New York

Lammers, R.B. & Band, L.E. 1994. "The Effects of Scale on a Regional Hydro-Ecological Model over Mountainous Terrain." Paper presented at the Ass. of American Geographers Annual Meeting, San Francisco, March 30th 1994.

Langran, G. 1992. "Time in geographic information systems." Taylor & Francis, London

Sommerville, I. 1989. "Software Engineering (3rd ed.)." Addison - Wesley, Wokingham. England

Acknowledgment

This study is based on work completed as part of my M.Sc. at the University of Toronto (1995). I gratefully acknowledge the help of my supervisor Prof. F. Csillag, and my M.Sc. committee members, Prof. L Band, Prof. V. Robinson, Prof. K. Devito. My thanks also to Val. MacDuff who allowed me to develop her initial system that became STAMP, and to Scott Mitchell who helped with PnET.


Author Information:

Rebecca N. Handcock
Geography Department , University of Toronto

Address: Phone: (416) 535-0511
Fax: (416) 978-6729
Email : handcock@geog.utoronto.ca
WWW http://eratos.erin.utoronto.ca/handcock/bechome.html